Some time ago I was curious to know how the heart beat rate and blood oxygen level are measured by such a simple device. A “pulse oximeter” is basically a red LED and a light sensor, with some thin layer of human flesh in between. It can be for example a finger (this way of measurement is commonly used at hospitals), but you’d probably need an opamp to read the light’s sensor’s output. I wanted a quick and dirty test to verify the theory
The theory is, that when the oxygen level in your blood drops, it gets darker. You probably saw the difference when you cut yourself in different places on different occasions — the so called arterial blood is light red, whereas the venous blood is much darker. It’s darker because it pases/reflects less light — something we should be able to measure with a light intensity sensor — for example a photodiode (or a phototransistor if you will). So I took a red LED and such sensor (I used TEMT6000 from SparkFun), both SMD and put them on tiny pieces of PCB. I decided I will try something thinner than a finger – my earlobe. I screwed together the diode’s PCBs together like that:
The schematic is very simple. The more light the photodiode sees, the stronger it pulls the resistor to the ground:
The change in voltage observed on the OUTPUT is read by an AVR microcontroller’s 10-bit ADC. I asked my overeager “I can hold my breath forever” friend to kindly demonstrate his skills with my device on his ear. Here is a gnu-plot of the data I recorded:
Apart from the big negative peak you can also see some regular variations of a smaller amplitude – this is the pulse.
The vertical scale is just an ADC value <0;1023>, and the horizontal scale should represent seconds.
It took me some time to figure out the measuring circuit. I started with an antic mechanical computer mouse insides. There is a IR LED facing two photodetectors in one die, to act as a transoptor to detect the ball movement over a simple transmission. The PCB placed on ear was somewhat cumbersome, and the readout was not too brilliant, so I built a dedicated circuit.
One of the factors is that it’s good to block other sources of light like sun or in-door lighting. I placed the photodiode on the inner side of the ear, but I guess I could get better results by making something of a case for it.
I found this video on youtube looking for pulsoximeters, you may want to check it out. It looks like Texas Instruments goes back to some good old marketing strategies, using chicks to promote it’s ICs.
And looks like there’s even an android app called Instant Heart Rate that uses the white LED and camera to check your pulse (thx to ajree for the hint).



Hey, I wanted to ask you how you measured blood oxygen with only the red LED? I’ve been reading about it, and everything points that you need a red LED AND an IR LED and then take the difference between the two… I am designing a blood oxygen sensor that needs to be reflective (for use on the wrist). Thank you!
Thanks for your comment. What is shown in the diagram is oxygen blood saturation in arbitrary units. It’s possible to obtain absolute values and for that you likely need at least two wavelengths of light and a good way to calibrate and calculate values.
If pulse rate is all you need, you should be able to get away with a reflective sensor – just shine a strong enough (perhaps directional) LED and see what you get out of a photo-diode located at different distances from the source (be sure to block the direct path of light between the two). I saw one unit designed for forehead (for measuring eye movement rate) with a pulse sensor using two LEDs on the sides and one photo-diode in between.
Wikipedia has a good article on Pulse oximetry (it references an interesting technique: Near-infrared spectroscopy).