2025 One Hertz Challenge: An Arduino-Based Heart Rate Sensor

How fast does your heart beat? It’s a tough question to answer, because our heart rate changes all the time depending on what we’re doing and how our body is behaving. However, [Ludwin] noted that resting heart rates often settle somewhere near 60 bpm on average. Thus, they entered a heart rate sensor to our 2025 One Hertz Challenge!

The build is based around a Wemos D1 mini, a ESP8266 development board. It’s hooked up to a MAX30102 heart beat sensor, which uses pulse oximetry to determine heart rate with a photosensor and LEDs. Basically, it’s possible to determine the oxygenation of blood by measuring its absorbance of red and infrared wavelengths, usually done by passing light through a finger. Meanwhile, by measuring the change in absorption of light in the finger as blood flows with the beat of the heat, it’s also possible to measure a person’s pulse rate.

The Wemos D1 takes the reading from the MAX30102, and displays it on a small OLED display. It reports heart rate in both beats per minute and in Hertz. if you can happen to get your heartrate to exactly 60 beats per minute, it will be beating at precisely 1 Hertz. Perhaps, then, it’s the person using Ludwin’s build that is actually eligible for the One Hertz Challenge, since they’re the one doing something once per second?

In any case, it shows just how easy it is to pick up biometric data these days. You only need a capable microcontroller and some off-the-shelf sensors, and you’re up and running.

Continue reading “2025 One Hertz Challenge: An Arduino-Based Heart Rate Sensor”

2025 One Hertz Challenge: Estimating Pi With An Arduino Nano R4

Humanity pretty much has Pi figured out at this point. We’ve calculated it many times over and are confident about what it is down to many, many decimal places. However, if you fancy estimating it with some electronic assistance, you might find this project from [Roni Bandini] interesting.

[Roni] programmed an Arduino Nano R4 to estimate Pi using the Monte Carlo method. For this specific case, it involves drawing a circle inscribed inside a square. Points are then randomly scattered inside the square, and checked to see if they lie inside or outside the circle based on their position and distance of the circle’s outline from the center point of the square. By taking the ratio of the points inside the circle to the total number of points, you get an approximation of the ratio of the square and circle’s areas, which is equal to Pi/4. Thus, multiply the ratio by 4, and you’ve got your approximation of Pi.

[Roni] coded a program to run the Monte Carlo simulation on the Arduino Nano R4, taking advantage of the mathematical benefits of its onboard Floating Point Unit. It generates 100 new samples for the Monte Carlo approximation every second, improving the estimation of pi as it goes. It then displays the result on a 7-segment display, and beeps as it goes. [Roni] readily admits the project is a little too close in appearance to a classic Hollywood bomb.

We’ve seen some other neat Pi-calculating projects before, too.

Continue reading “2025 One Hertz Challenge: Estimating Pi With An Arduino Nano R4”

Arduino Saves Heat Pump

For home HVAC systems, heat pumps seem to be the way of the future. When compared to electric heating they can be three to four times more efficient, and they don’t directly burn fossil fuels. They also have a leg up over standard air conditioning systems since they can provide both cooling and heating, and they can even be used on water heating systems. Their versatility seems unmatched, but it does come at a slight cost of complexity as [Janne] learned while trying to bring one back to life.

The heat pump here is a Samsung with some physical damage, as well as missing the indoor half of the system. Once the damage to the unit was repaired and refilled with refrigerant, [Janne] used an Optidrive E3 inverter controlled by an Arduino Mega to get the system functional since the original setup wouldn’t run the compressor without the indoor unit attached. The Arduino manages everything else on the system as well including all of the temperature sensors and fan motor control.

With everything up and running [Janne] connected the system to a swimming pool, which was able to heat the pool in about three hours using 60 kWh of energy. The system is surprisingly efficient especially compared to more traditional means of heating water, and repairing an old or damaged unit rather than buying a new one likely saves a significant amount of money as well. Heat pump projects are getting more common around here as well, and if you have one in your home take a look at this project which adds better climate control capabilities. to a wall mount unit.

The underside of the scanner is shown. Four power supply units are visible on the lower side, and assorted electronics are visible on the top side. In the middle, two linear tracks adapted from a 3D printer run along the length of the scanner, and several motors can be seen mounted between the rails.

A Scanner For Arduino-Powered Book Archiving

Scanners for loose papers have become so commonplace that almost every printer includes one, but book scanners have remained frustratingly rare for non-librarians and archivists. [Brad Mattson] had some books to scan, but couldn’t find an affordable scanner that met his needs, so he took the obvious hacker solution and built his own.

The scanning process starts when a conveyor belt removes a book from a stack and drops it onto the scanner’s bed. Prods mounted on a rail beneath the bed straighten the book and move it into position for the overhead camera to take a picture of the cover. Next, an arm with a pneumatic gripper opens the cover, and a metal bar comes down to hold it in place.

The page-turning mechanism uses two fans: one fan blows from the side of the book to ruffle the pages and separate them, while the other is mounted on a swiveling arm. This fan blows away from the page, providing a gentle suction that holds the page to the arm as it turns the page over. Finally, a glass plate descends over the book to hold the pages flat, the camera takes a picture, the glass plate retracts, and the scanner moves on to the next page.

It is hard to imagine, but have a look at the video in the post if you really want to see it in action.

Continue reading “A Scanner For Arduino-Powered Book Archiving”

The Mouse Language, Running On Arduino

Although plenty of us have our preferred language for coding, whether it’s C for its hardware access, Python for its usability, or Fortran for its mathematic prowess, not every language is specifically built for problem solving of a particular nature. Some are built as thought experiments or challenges, like Whitespace or Chicken but aren’t used for serious programming. There are a few languages that fit in the gray area between these regions, and one example of this is MOUSE, which can now be run on an Arduino.

Although MOUSE was originally meant to be a minimalist language for computers of the late 70s and early 80s with limited memory (even for the era), its syntax looks more like a more modern esoteric language, and indeed it arguably would take a Python developer a bit of time to get used to it in a similar way. It’s stack-based, for a start, and also uses Reverse Polish Notation for performing operations. The major difference though is that programs process single letters at a time, with each letter corresponding to a specific instruction. There have been some changes in the computing world since the 80s, though, so [Ivan]’s version of MOUSE includes a few changes that make it slightly different than the original language, but in the end he fits an interpreter, a line editor, graphics primitives, and peripheral drivers into just 2 KB of SRAM and 32 KB Flash so it can run on an ATmega328P.

There are some other features here as well, including support for PS/2 devices, video output, and the ability to save programs to the internal EEPROM. It’s an impressive setup for a language that doesn’t get much attention at all, but certainly one that threads the needle between usefulness and interesting in its own right. Of course if a language where “Hello world” is human-readable is not esoteric enough, there are others that may offer more of a challenge.


Image Credit: Maxbrothers2020

Speed Up Arduino With Clever Coding

We love Arduino here at Hackaday; they’ve probably done more to make embedded programming accessible to more people than anything else in the history of the field. One thing the Arduino ecosystem is rarely praised for is its speed. That’s where [Playduino]  comes in, with his video (embedded below) that promises to make everyone’s favourite microcontroller run 50x faster.

You might be expecting an unstable overclocking setup, with swapped crystals, tweaked voltages and a hefty heat sink, but no! This is stock hardware. The 50x speedup comes from one simple hack: don’t use digitalWrite();

If you aren’t familiar, the digitalWrite() function is one of the key functions Arduino gives you to operate its boards– specify the pin and the value (high or low) to drive it. It’s very easy, but it’s also very slow. [Playduino] takes a moment to show just how much is going on under the hood when you call digitalWrite(), and shows you what you can do instead if you have a need for speed. (Hint: there’s no Arduino-provided code involved; hardware registers and the __asm keyword show up.)

If you learned embedded programming in an earlier era, this will probably seem glaringly obvious. If you, like so many of us, got started inside of the Arduino ecosystem, these closer-to-the-metal programming techniques could prove useful tools in your quiver. Big thanks to [Stephan Walters] for the tip.

Of course if you prefer to speed things up by hardware rather than software, you can overclock an Arduino– with liquid nitrogen, even.

Continue reading “Speed Up Arduino With Clever Coding”

Clock Mechanism Goes Crazy For Arduino

You’ve doubtless seen those ubiquitous clock modules, especially when setting clocks for daylight savings time. You know the ones: a single AA battery, a wheel to set the time, and two or three hands to show the time. They are cheap and work well enough. But [Playful Technology] wanted to control the hands with an Arduino directly and, in the process, he shows us how these modules work.

If you’ve never studied the inside of these clock modules, you may be surprised about how they actually work. A crystal oscillator pulses a relatively large electromagnet. A small plastic gear has a magnetic ring and sits near the electromagnet.

Each time the polarity of the electromagnet flips, the ring turns 180 degrees to face the opposite magnetic pole to the electromagnet. This turns the attached gear which is meshed with other gears to divide the rotation rate down to once per 24 hours, once per hour, and once per minute. Pretty clever.

That makes it easy to control the hands. You simply detach the electromagnet from the rest of the circuit and control it yourself. The module he used had a mechanical limitation that prevents the hands from moving well at more than about 100 times normal speed.

We wondered how he made the hands reverse and, apparently, there is a way to get the drive gear to move in reverse, but it isn’t always reliable. Of course, you could also replace the drive mechanism with something like an RC servo or other motor and it sounds like he has done this and plans to show it off in another video.

We’ve seen the opposite trick before, too. If you really want an easy-to-control analog clock, try this one Continue reading “Clock Mechanism Goes Crazy For Arduino”