About this project
* We've been getting great questions from our backers and are building a FAQ at the bottom of this page. If your question is not there, send us a message and we'll get back to you!
“Pulse Sensor” is a well-designed plug-and-play heart-rate sensor for Arduino.
It can be used by students, artists, athletes, makers, and game & mobile developers who want to easily incorporate live heart-rate data into their projects.
After a few months of testing a gaggle of techniques, we developed what we think is an innovative pulse sensor. Our prototype (and accompanying code) plugs right into Arduino and easily clips onto a fingertip or earlobe. It’s super small too, button-sized with holes, so it can be sewn into a garment as well. We’d like to manufacturer the actual pulse sensor, making it low-cost, open source, and accessible for students, artists, and developers.
Our Arduino and Processing software graphs heart rate and pulse data instantly. We also made sure that exporting data to your software or web app of choice is simple.
Optical heart-rate monitors are easy to understand in theory. If you’ve ever shined a flashlight through your finger tips and seen your heart-beat pulse (a thing most kids have done) you have a good handle on the theory of optical heart-rate pulse sensors.
In an optical heart-rate pulse sensor, light is shot into a finger tip or ear lobe. The light either bounces back to a light sensor, or gets absorbed by blood cells.
As you continue to shine light (into say a fingertip) and take light sensor readings, you quickly start to get a heart-beat pulse reading.
The theory is easy to understand. In practice, it hard to master DIY optical heart-rate sensors, or get them operational at all. There are many tutorials online and in publications describing how to make DIY heart-rate sensors. Through our own personal interests we’ve tried to follow online guides but have generally failed or had unsatisfactory results. As professors, year after year, we see our students attempt to follow these published guides and also either fail in getting anything to work, or get poor results. It could very well be human/user-error on our parts. But from our view, making an optical pulse sensor is easier said then done.
So, we set out to make our own optical heart-rate pulse senor that can be used in our own creative projects and also available to students, makers, game developers, mobile developers, artists, athletic trainers etc….
We had three goals for our sensor:
1) It had to actually work and be “plug and play” into Arduino (or other microcontroller).
2) It should be super small and easy to place (sew, glue, clip) into wearables, sports, arts, or gaming applications.
3) It could be used as a teaching aid for instruction on working with sensors, data visualization, and bio-feedback.
Over a few months we tested a gaggle of optical sensors and LED colors and found that it was not as easy as many suspect to get reliable heart-rate data through optical means. We could get basic, gross, short-term data, but reliable readings assuming real-world scenarios and real-world user interaction is key. After more experimentation and development, we started to assemble a reliable heart-rate pulse sensor. We fabricated a few test boards and continued to iterate the design.
As we tired to “wear” the sensor, we discovered that we should make it look and feel like a 1/2 inch button. Its size allows it to clip to earlobs or fingertips easily. When we add “button holes” to the design it can be easily sewn or attached to various garments and fashion accessories. The final design turned into a button-sized PCB board that holds all the technology, hit all our goals, and is very cute and accessible to a novice or expert users/developers alike.
Watch our video. See what this is all about. Help us make it reality. Thank you!
Heart Rate Variability refers to changes in the timing between heartbeats. It has medical applications that range from predicting clinical abnormalities, to psychophysiology (measuring emotional states and stress levels). Our Pulse Sensor uses a photodiode to detect the relative reflectivity of blood in capillary tissue. The waveform shown in our video is the raw data from the 12 bit ADC on arduino's ATmega 328. Another good name for our project is "Open Source Photoplethysmography", but it doesn't quite ring. You can measure the difference in time between beats, but I haven't attempted to derive the Heart Rate Variation, clinical or otherwise. The arduino clock runs at 16MHz, so I think you have enough time to figure the variation with high enough resolution by modifying our code, or creating you own, so theoretically the answer is yes... For fun! Clinical HRV is usually derived from ECG data, which is a bit better than using PPG, and it's important to note that accurate HRV detection is susceptible to very small amounts of noise.
We are not trying to make a medical device, and we don't make any claims on applicability to a specific purpose. The only way to reliably test clinical efficacy is to test our Pulse Sensor, and some undefined software that doesn't exist yet, against the most reliable and legitimate ECG rig you can get your hands on.
HRV studies is a fascinating way to lean about non linear dynamics and data mapping. For an introduction to HRV, the Wiki-P is a good resource.
Please check out lastest availability at http://pulsesensor.com/
Our Pulse Sensor uses a photodiode to detect the relative change in blood reflectivity. Attached hemoglobin will reflect a different amount of light than unattached hemoglobin. A 'real' oximeter uses two kinds of light, red and infrared, to measure the reflectivity (or transmission) of light and the %oxygen (attached hemoglobin) level is derived from the ratio of the two readings. Our Pulse Sensor uses one LED, so a clinical reading of attached hemoglobin is not possible with this version (maybe in future versions...?). We are not trying to make a medical device. There are plenty of affordable oximeters out there. We wanted to make a low cost Pulse Sensor that rocks for hackers and electronics enthusiasts. What our sensor does do quite well is output a Photplethysmograph (PPG). For obvious reasons, we disclaim any specific medical or clinical efficacy, or usability for any specific purpose. That said, the ~relative~ level of attached hemoglobin is measurable. A few deep breaths will shift the pulse waveform up about 20 points.
For a good introduction to oximetry and the issues involved, here are some links
The short answer is: Yes!
While we have not tested the sensor in actual vigorous athletic activity, we have tested the stability of the waveform during vigorous movement (head-banging with the ear clip attached to earlobe, for example) and our design is very immune to that kind of noise. This is due to the fact that the sensor has very close contact to the skin, and is shielded from changing ambient light levels.
That said, there are some minor issues regarding signal integrity and sensor functionality when the Pulse Sensor is in contact with sweaty skin. The Pulse Sensor is a 1/2" PCB with a 24" cable attached to it.The components are exposed on the PCB. Sweat is a great conductor of electricity! Sweating on the sensor can distort the signal or do other bad things. When the Pulse Sensor is glued to the ear clip that we provide (hot glue, epoxy, etc) all the electronic parts on the NON sensing side can be protected from getting drenched. Both Yury and I have used hot glue as an electrical insulator to great effect. For the sensor side of the board, you will need to have a different kind of insulating layer to protect from the potential problems that sweat can cause. We have experimented with things like clear nail polish, and clear coat sprayed from an aerosol can. Those methods do not effect the sensror performance while providing a 'water resistant' seal over the sensor. We will provide further details in tutorials for these techniques in the future, and I'm sure the Open Source Hardware community will make and share creative and effective ways to solve all manner of application issues!
No, you don't have to be attached to the computer to use the Pulse Sensor.
But you DO need it to be attached to an Arduino [or another microcontroller of your choice].
There are some very small Arduino models out there. Some are made specifically to be wearable. All have the ability to be battery powered.
We provide the Arduino code that performs all of the computation necessary to find the instantaneous pulse beat, determine Beats Per Minute (BPM), and blink an LED to your Heartbeat. They become clearly marked variables in the code, that you can use as you wish in your own program or project.
You can use just the arduino (or your microcontroller of choice) to read the Pulse Sensor signal and log all the data (to EEPROM or SD card) or send it wirelessly to the cloud. You can make light-up clothing that shows-off your live heartbeat. You can use it a live performance dance to control the lighting or sound effect. No computer required!
Our Pulse Sensor is a "plug-in" sensor for Arduino. See: http://arduino.cc/ .
So, Arduino plugs into your compter (or even your iPhone or Android phone), and the Pulse Sensor plugs-in Arduino.
The makers of Arduino describe it as "open-source electronics prototyping platform based on flexible, easy-to-use hardware and software. It's intended for artists, designers, hobbyists, and anyone interested in creating interactive objects or environments."
In short, being able to hook the Pulse Sensor into the computer (via Arduino) gives even more options for the applications of the Pulse Sensor.
The computer software that we will provide is written in Processing, and functions primarily as a data visualizer. It show sensor data graphically on the screen, as well as, BPM (Beats Per Minute), and average BPM over time.
More about Processing here: http://processing.org/
But you don't have to use Processing for anything. Our Arduino software allows you to send the sensor data into other part applications on your computer, or into the cloud.
We've found that Pulse Sensor works best on the Finger Tips and Earlobes. But there is still lots of room for experimentation. For example one day we got readings from our forehead and nostrils.
Optical pulse sensors (like the sensor we build here) are designed to work on capillary tissue. So theoretically that's where you want to use them.
Support this project
- (51 days)