Simple pulsoximeter

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:

Pulseoximeter PCBs

The schematic is very simple. The more light the photodiode sees, the stronger it pulls the resistor to the ground:

Pulseoximeter schematic

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:

Pulseoximeter readout

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).