An Open Heart Rate Monitor

If you spend any time near a gym, you may be familiar with Bluetooth heart rate monitors — a small pack of electronics mounted on a strap round the chest which can relay heart rate data to an external logger or display. We’re pleased to see [Milos Rasic]’s project then, an open-source version of one of those monitors.

The heart rate capture is done by an AD8232, while the Bluetooth part is handled by a Seeed Studio XAIO ESP32 board. Power is provided by a single 3.7 V cell, with a boost converter to push that up to 5 V. The design omits a charge controller to keep things simple, so figuring out how to top off the cell is left as an exercise — no pun intended — for the user. Software is loaded through the Arduino IDE, which raises the possibility that other ESP32 CPUs could be supported with a bit of modification. All in all it’s a surprisingly simple project, and while the manufactured version is cheap enough it’s still very much worth having one that’s open source.

If you’d like to know more about his quest to develop open medical devices, check out the talk [Milos] gave on the intricacies of blood pressure monitoring earlier this year at Hackaday Europe.

Continue reading “An Open Heart Rate Monitor” →

Heart Rate Measurement Via WiFi, The DIY Way

A few weeks back, we reported on a research group that figured out how to measure heartrate using perturbations in WiFi signals. [Nick Bild] was interested in this so-called “Pulse-Fi” technique, but noted the paper explaining it was behind a paywall. Thus, he worked to recreate the technology himself so he could publish the results openly for anyone eager to learn.

[Nick] paid for the research paper, and noted that it was short on a few of the finer details and didn’t come with any code or data from the original research team. He thus was left to figure out the finer details of how to measure heart rate via WiFi in his own way, though he believes his method is quite close to the original work.

The basic concept is simple enough. One ESP32 is set up to transmit a stream of Channel State Information packets to another ESP32, with a person standing in between. As the person’s heart beats, it changes the way the radio waves propagate from the transmitting unit to the receiver. These changes can be read from the packets, and processed to estimate the person’s heart rate. [Nick] explains the various data-massaging steps involved to go from this raw radio data to a usable heart rate readout.

It’s a great effort from [Nick] to recreate this research all on his own in his home lab. Files are on GitHub for the curious. If you’re eager to learn more about these innovative measurement techniques, you might like to read our prior reporting on the tech. Also, it’s worth remembering—don’t use your homebrew prototypes for any serious healthcare purposes. Continue reading “Heart Rate Measurement Via WiFi, The DIY Way” →

Heart Rate Monitoring Via WiFi

Before you decide to click away, thinking we’re talking about some heart rate monitor that connects to a display using WiFi, wait! Pulse-Fi is a system that monitors heart rate using the WiFi signal itself as a measuring device. No sensor, no wires, and it works on people up to ten feet away.

Researchers at UC Santa Cruz, including a visiting high school student researcher, put together a proof of concept. Apparently, your heart rate can modify WiFi channel state information. By measuring actual heart rate and the variations in the WiFi signal, the team was able to fit data to allow for accurate heart rate prediction.

The primary device used was an ESP32, although the more expensive Raspberry Pi performed the same trick using data generated in Brazil. The Pi appeared to work better, but it is also more expensive. However, that implies that different WiFi chipsets probably need unique training, which, we suppose, makes sense.

Like you, we’ve got a lot of questions about this one — including how repeatable this is in a real-world environment. But it does make you wonder what we could use WiFi permutations to detect. Or other ubiquitous RF signals like Bluetooth.

No need for a clunky wristband. If you could sense enough things like this, maybe you could come up with a wireless polygraph.

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” →

This Air Particulate Sensor Can Also Check Your Pulse Rate

The MAX30105 is an optical sensor capable of a great many things. It can sense particulate matter in the air, or pick up the blinking of an eye. Or, you can use it as a rudimentary way to measure your heart rate and blood oxygen levels. It’s by no means a medical grade tool, but this build from [Taste The Code] is still quite impressive.

The MAX30105 contains red, green, and infrared LEDs, and a very sensitive light detector. The way it works is by turning on its different LEDs, and then carefully measuring what gets reflected back. In this way it can measure particles in the air,  such as smoke, which is actually what it was designed for originally. Or, if you press your finger up against it, it can measure the light coming back from your blood and determine its oxygenation level. By detecting the variation in the light over time, it’s possible to pick up your pulse, too.

Getting this data out of the sensor is remarkably easy. One need only hook it up to a suitable microcontroller like the ESP8266 and use the MAX3010X library to talk to it. [Taste The Code] did exactly that, and also hooked up a screen for displaying the captured data. Alternatively, if you want the raw data from the sensor, you can get that too.

It should be noted that this build was done for educational purposes only. You shouldn’t rely on a simple DIY device for gathering useful medical data; there are reasons the real gear is so expensive, after all. We’ve looked at this sensor before, too, not long after it first hit the market. Continue reading “This Air Particulate Sensor Can Also Check Your Pulse Rate” →

Custom-designed photoplethysmogram designed to fit in ear like an ear bud

Breathe Through Your Ears?

With all the attention given to heart rate monitoring and step counting, respiratory rate monitoring is often overlooked. Smartwatches are starting to incorporate respiratory rate monitoring more and more these days. However, current devices often simply look at breaths per minute without extracting more interesting features of the respiratory waveform which could give us more insight into our bodies than breaths per minute could alone. [Davies] and his team decided they wanted to change that by making an earbud that can measure respiratory rate. Continue reading “Breathe Through Your Ears?” →

Webcam Heart Rate Monitor Brings Photoplethysmography To Your PC

It seems like within the last ten years, every other gadget to be released has some sort of heart rate monitoring capability. Most modern smartwatches can report your BPMs, and we’ve even seen some headphones with the same ability hitting the market. Most of these devices use an optical measurement method in which skin is illuminated (usually by an LED) and a sensor records changes in skin color and light absorption. This method is called Photoplethysmography (PPG), and has even been implemented (in a simple form) in smartphone apps in which the data is generated by video of your finger covering the phone camera.

The basic theory of operation here has its roots in an experiment you probably undertook as a child. Did you ever hold a flashlight up to your hand to see the light, filtered red by your blood, shine through? That’s exactly what’s happening here. One key detail that is hard to perceive when a flashlight is illuminating your entire hand, however, is that deoxygenated blood is darker in color than oxygenated blood. By observing the frequency of the light-dark color change, we can back out the heart rate.

This is exactly how [Andy Kong] approached two methods of measuring heart rate from a webcam.

Method 1: The Cover-Up

The first detection scheme [Andy] tried is what he refers to as the “phone flashlight trick”. Essentially, you cover the webcam lens entirely with your finger. Ambient light shines through your skin and produces a video stream that looks like a dark red rectangle. Though it may be imperceptible to us, the color changes ever-so-slightly as your heart beats. An FFT of the raw data gives us a heart rate that’s surprisingly accurate. [Andy] even has a live demo up that you can try for yourself (just remember to clean the smudges off your webcam afterwards).

Method 2: Remote Sensing

Now things are getting a bit more advanced. What if you don’t want to clean your webcam after each time you measure your heart rate? Well thankfully there’s a remote sensing option as well.

For this method, [Andy] is actually using OpenCV to measure the cyclical swelling and shrinking of blood vessels in your skin by measuring the color change in your face. It’s absolutely mind-blowing that this works, considering the resolution of a standard webcam. He found the most success by focusing on fleshy patches of skin right below the eyes, though he says others recommend taking a look at the forehead.

Every now and then we see something that works even though it really seems like it shouldn’t. How is a webcam sensitive enough to measure these minute changes in facial color? Why isn’t the signal uselessly noisy? This project is in good company with other neat heart rate measurement tricks we’ve seen. It’s amazing that this works at all, and even more incredible that it works so well.