Monthly Archives: January 2023

Let your coworkers know how you feel with this stress level indicator

via Arduino Blog

Asking your boss for a raise when they are in a bad mood is not ideal, and this is what prompted Mark from element14 Presents to create a stress level indicating project that could show this mood to everyone else so they could avoid this awkward situation.

Mark started this project by laser cutting several panels from acrylic, including the base, four walls, and a special top cover with cutouts for the stress level lights, speaker holes, and a place for the selection button. After gluing these pieces together, he designed a circuit based on the Arduino Nano board that would let the user set their stress level and display it by illuminating a corresponding compartment within the “dial” portion. In addition to the visual aspect, a unique sound would also play to indicate the change.

In order to make his circuit more compact, Mark designed and fabricated his own PCB that not only contained the required headers for the Arduino, but also pads for the SD card slot, headers for the LEDs and buzzer, and custom power management circuitry to make everything power efficient so that a battery could be used. The end result was a compact box that illuminated one of the five possible compartments in colors ranging from green (relaxed), all the way to bright red (mad).

More information about Mark’s project can be found in the video below!

The post Let your coworkers know how you feel with this stress level indicator appeared first on Arduino Blog.

The CWvox is a simple device that converts voice commands into Morse code keying

via Arduino Blog

While most of us associate Morse code with old-timey telegraphs, it is still in use today. The benefits now are the same as they were a hundred and fifty years ago: it is an incredibly resilient way to encode information that works with a variety of different transmission methods. But what if you have trouble operating a standard Morse code key? This CWvox device, designed by Kevin Loughin (AKA KB9RLW), translates voice commands into Morse code keying.

CWvox could be useful for people with disabilities and for people who have trouble getting Morse code timing right. Morse code relies on tone length to convey information and it isn’t always easy to hold a key for the proper amount of time. CWvox takes care of that for you. Just speak out loud either a “dah” sound or a “dit” sound at something close to the right timing. The device will interpret those utterances and then output perfect keying.

The components to make this work include an Arduino Nano board, an audio input jack, a small transistor amplifier, a potentiometer, an LED, and an output transistor. Users can connect a headset with a condenser microphone, which feeds into the audio jack to the amplifier and then to the Arduino. The Arduino analyzes the incoming audio signal to detect “dahs” and “dits,” then keys the radio using the output transistor. The potentiometer lets the user adjust the sensitivity.

The post The CWvox is a simple device that converts voice commands into Morse code keying appeared first on Arduino Blog.

Lumos finally enables wearable spectroscopy research

via Arduino Blog

Spectroscopy is a field of study that utilizes the measurement of electromagnetic radiation (often visible light) as it reflects off of or passes through a substance. It can, for instance, help researchers determine the composition of a material, as that composition influences how the material reflects light. Spectroscopy is also used in medicine, but traditionally requires that patients visit a lab. To enable long-term spectroscopic analysis, a team of engineers built a wearable spectroscopy sensor called Lumos.

Lumos comes in two forms: a smartwatch-like wearable wristband and a fingertip model that resembles the pulse oximeters that nurses put on your finger when you go in for a checkup. The latter is meant for use in doctor’s offices and labs, but the former was designed for patients to wear as they go about their daily lives. It would continue to collect spectroscopic data as they do, which could provide valuable insight. Such long-term data collection would help physicians observe how conditions progress or to see conditions that don’t present consistently.

The engineers chose an A7341 spectral sensor for Lumos because it is compact, but still has a large sensing range. An Arduino Nano 33 IoT development board provides power to the A7341, receives the data from the A7341 through an I2C connection, and then sends the data to a base station via WiFi. Power comes from a 400mAh lithium-ion battery, which lasts for around five hours before it needs recharging. That’s five hours of spectroscopic data to analyze — far more than can be gathered using traditional in-lab instruments.

Image credit: Watson and Kendel et al.

The post Lumos finally enables wearable spectroscopy research appeared first on Arduino Blog.

Combining computing and maths to teach primary learners about variables

via Raspberry Pi

In our first seminar of 2023, we were delighted to welcome Dr Katie Rich and Carla Strickland. They spoke to us about teaching the programming construct of variables in Grade 3 and 4 (age 8 to 10).

We are hearing from a diverse range of speakers in our current series of monthly online research seminars focused on primary (K-5) computing education. Many of them work closely with educators to translate research findings into classroom practice to make sure that all our younger learners have positive first experiences of learning computing. An important goal of their research is to impact the development of pedagogy, resources, and professional development to support educators to deliver computing concepts with confidence.

Variables in computing and mathematics

Dr Katie Rich (American Institutes of Research) and Carla Strickland (UChicago STEM Education) are both part of a team that worked on a research project called Everyday Computing, which aims to integrate computational thinking into primary mathematics lessons. A key part of the Everyday Computing project was to develop coherent learning resources across a number of school years. During the seminar, Katie and Carla presented on a study in the project that revolved around teaching variables in Grade 3 and 4 (age 8 to 10) by linking this computing concept to mathematical concepts such as area, perimeter, and fractions.

Young person using Scratch.

Variables are used in both mathematics and computing, but in significantly different ways. In mathematics, a variable, often represented by a single letter such as x or y, corresponds to a quantity that stays the same for a given problem. However, in computing, a variable is an identifier used to label data that may change as a computer program is executed. A variable is one of the programming constructs that can be used to generalise programs to make them work for a range of inputs. Katie highlighted that the research team was keen to explore the synergies and tensions that arise when curriculum subjects share terms, as is the case for ‘variable’. 

Defining a learning trajectory

At the start of the project, in order to be able to develop coherent learning resources across school years, the team reviewed research papers related to teaching the programming construct of variables. In the papers, they found a variety of learning goals that related to facts (what learners need to know) and skills (what learners need to be able to do). They grouped these learning goals and arranged the groups into ‘levels of thinking’, which were then mapped onto a learning trajectory to show progression pathways for learning.

Four of the five levels of thinking identified in the study: Data storer, data user, variable user, variable creator.
Four of the five levels of thinking identified in the study: Data Storer, Data User, Variable User, Variable Creator. Click to enlarge.

Learning materials about variables

Carla then shared three practical examples of learning resources their research team created that integrated the programming construct of variables into a maths curriculum. The three activities, described below, form part of a series of lessons called Action Fractions. You can read more about the series of lessons in this research paper.

Robot Boxes is an unplugged activity that is positioned at the Data User level of thinking. It relates to creating instructions for a fictional robot. Learners have to pay attention to different data the robot needs in order to draw a box, such as the length and width, and also to the value that the robot calculates as area of the box. The lesson uses boxes on paper as concrete representations of variables to which learners can physically add values.


Ambling Animals is set at the ‘Data Storer’ and ‘Variable Interpreter’ levels of thinking. It includes a Scratch project to help students to locate and compare fractions on number lines. During this lesson, find a variable that holds the value of the animal that represents the larger of two fractions.


Adding Fractions draws on facts and skills from the ‘Variable Interpreter’ and ‘Variable Implementer’ levels of thinking and also includes a Scratch project. The Scratch project visualises adding fractions with the same denominator on a number line. The lesson starts to explain why variables are so important in computer programs by demonstrating how using a variable can make code more efficient. 

Takeaways: Cross-curricular teaching, collaborative research

Teaching about the programming construct of variables can be challenging, as it requires young learners to understand abstract ideas. The research Katie and Carla presented shows how integrating these concepts into a mathematics curriculum is one way to highlight tangible uses of variables in everyday problems. The levels of thinking in the learning trajectory provide a structure helping teachers to support learners to develop their understanding and skills; the same levels of thinking could be used to introduce variables in other contexts and curricula.

A learner does physical computing in the primary school classroom.

Many primary teachers use cross-curricular learning to increase children’s engagement and highlight real-world examples. The seminar showed how important it is for teachers to pay attention to terms used across subjects, such as the word ‘variable’, and to explicitly explain a term’s different meanings. Katie and Carla shared a practical example of this when they suggested that computing teachers need to do more to stress the difference between equations such as xy = 45 in maths and assignment statements such as length = 45 in computing.

The Everyday Computing project resources were created by a team of researchers and educators who worked together to translate research findings into curriculum materials. This type of collaboration can be really valuable in driving a research agenda to directly improve learning outcomes for young people in classrooms. 

How can this research influence your classroom practice or other activities as an educator? Let us know your thoughts in the comments. We’ll be continuing to reflect on this question throughout the seminar series.

You can watch Katie’s and Carla’s full presentation here:

Join our seminar series on primary computing education

Our monthly seminar series on primary (K–5) teaching and learning is of interest to a global audience of educators, including those who want to understand the prior learning experiences of older learners.

We continue on Tuesday 7 February at 17.00 UK time, when we will hear from Dr Jean Salac, University of Washington. Jean will present her work in identifying inequities in elementary computing instruction and in developing a learning strategy, TIPP&SEE, to address these inequities. Sign up now, and we will send you a joining link for the session.

The post Combining computing and maths to teach primary learners about variables appeared first on Raspberry Pi.

3D-printed digital clock contains 24 analog clocks

via Arduino Blog

Clocks are fantastic means of creative expression, as they serve a practical purpose and therefore have a reason to exist, but aren’t limited to pure functionality. As such, we see many interesting clock designs. But ihart’s 3D-printed digital clock made from 24 individual analog clocks takes the proverbial cake.

When observed from a distance, this clock looks like it contains large seven-segment displays. But it actually displays the numerical digits of the time using the two hands of 24 individual analog clocks. Those analog clocks don’t show the time, but instead form the segments that make up the “digital” digits. The choreographed dance of the clock hands as the time changes is mesmerizing and the sheer complexity of the system should excite even the most stoic engineers in our audience.

Each of the 24 analog clocks has two hands that move independently, so this clock requires a total of 48 stepper motors. Each hand also requires a Hall effect sensor for finding its home position. While there were many other potential solutions, ihart chose to use one Arduino Nano board for every analog clock. That means that each Arduino controls two stepper motors. To simplify wiring and power distribution, ihart designed a custom PCB to host each of those 24 Arduino boards. A 25th Arduino Nano, paired with an RTC (real-time clock) module, coordinates the operation of the other 24.

All of the mechanical components of the clock were 3D-printed. The design is somewhat modular to keep the unique part count down, which means that this could be expanded into a larger display. But even as it is, the clock is very impressive.

The post 3D-printed digital clock contains 24 analog clocks appeared first on Arduino Blog.

Update your ESP32 boards over-the-air (OTA) with Arduino Cloud

via Arduino Blog

Update your ESP32 devices wirelessly using the Arduino Cloud. After the first programming via USB, you won't need cables any more.

The Arduino Cloud is Arduino’s integrated platform to develop, deploy, monitor and control IoT devices with minimal effort. It enables makers, IoT enthusiasts and professionals to build easily connected projects based on a wide range of hardware including not only Arduino boards, but also ESP32 and ESP8266 boards. Arduino is committed to making all the Arduino Cloud features available to all the supported hardware and as a result of this effort, ESP32 family of chipsets now support over-the-air (OTA) updates.

The Cloud for Makers

Due to their low price, integration and high performance, ESP32-based devices are among the most widely used ones for hobbyists and developers who want to create their small home appliances. 

One of the facts that have contributed to this popularity is the ability to use the Arduino IDE to code and program the devices. You can find tons of resources describing how to get started. There are thousands of projects that will inspire you and help you create and develop your own ideas. You can reuse the code and sketches even if they have been originally developed for other ESP32 or Arduino boards. It is so easy to get started!

But what if you want to go a step further and interact with your devices remotely? That’s what Arduino Cloud was designed for. It is an online platform that enables you 

  • to develop your software online with the zero-touch Web Editor, keep your sketches in the cloud and share them with other users
  • to deploy and manage your devices with the IoT Cloud and your custom dashboards that can be accessible remotely from your browser or the mobile app Arduino IoT Remote

All that with just an integrated unique platform and taking benefit from the rich collection of Arduino’s libraries, examples and tutorials that help developers get at speed with minimum effort.

No cables any more: Update over-the-air

But programming the devices is still tedious work. You need to have the device at hand and connect a USB cable. This is acceptable for the first time you program the device , but it is really annoying when your device is already installed in a place with difficult accessibility. In those situations, you either have to remove the device from its place or bring your laptop as close as possible to its location.

That’s where over-the-air (OTA) is a game-changer. This feature enables you to upload programs wirelessly to your boards. This way, as soon as you have a compatible board connected to a WiFi network and configured to work with OTA, you won’t need to physically connect the board to the computer in order to upload new sketches to it. Instead, everything will work over-the-air.

Over-the-air update is available through both the Arduino IoT Cloud and the Arduino Web Editor for the sketches bound to your IoT Cloud things.

OTA for ESP32 now available

Over-the-air updates have been traditionally constrained only to Arduino boards and this feature has been widely adopted by users. Now, this support is extended to ESP32 boards. This unifies the experience across the most popular platforms.

There are plenty of ESP32 platforms available with different processors and memory sizes. This is an experimental feature that has been tested on the most popular ones, but there could be some limitations on some of the untested ones. We would be delighted to get your feedback.

Get started now

Getting started with over-the-air updates is as simple as following the steps in the tutorial Uploading sketches Over-The-Air (OTA). You can also find some useful tips and tricks in the cheat sheet. Give it a try, and share your experience with the community.

The post Update your ESP32 boards over-the-air (OTA) with Arduino Cloud appeared first on Arduino Blog.