Infant Pulse Oximetry at Home
Or, "How to see your kids O2 levels without selling a kidney"
I just had my first child, and since the commercially available pulse-oxygen meters are expensive and have come under scrutiny recently for being inaccurate, I decided to make my own.
I decided to use a MAX30102 chip to send Infra-red and red light into the skin, and then measures how much of both types of light is reflected back. As blood pulses through the veins, the amount of both light reflected back increase and decreases with the amount of blood present. By comparing the two levels to each other, we can get a very accurate estimate of the amount of blood that is saturated with oxygen. This is due to the fact that red blood cells reflect red light differently when they’re saturated than they do when they’re not.
I decided to use Bluetooth Low-Energy, since it has a very well-tuned sleep function that conserves power. Here are some pictures of my first generation prototype, complete with miniature lithium battery and the MAX30102 sensor attached to the Bluetooth-enabled micro-controller. This micro-controller then sends the data over Bluetooth to my android phone, or to a base station that I built that’s wifi-enabled. That way I can have the oxygen sensor and base station at home, and send updates over the internet and get them even when I’m not home
The bluetooth microcontroller is soldered to the MAX30102 with short wires, intentionally leaving just enough room for a small lithium battery in the middle. The current iteration looks like this :
A block diagram for how it’s currently working with the base station is as follows:
For the web interface, I use the free model from Adafruit.io, which lets me run a passkey-secured, globally accessible MQTT broker.
infant-pulse-oximetry
I also added an IFTTT checker that subscribes to the oxygen topic, and pushes a notification to my phone if the level ever drops below 85 percent. I’d never used IFTTT before, and I was surprised how simple this process was.
I bought a medical grade pulse oximeter to test it against, and so far I can confirm I’m able to get a fairly accurate reading of O2 levels (~4% error), and extremely accurate reading of heart rate (less than 2 beats per minute).
Since each batch of sensor will have slightly different parameters, I’m going to tune the coefficients in the equation for saturation to further improve accuracy. More info coming soon
No comments:
Post a Comment