oxullo / Arduino-MAX30100

Arduino library for MAX30100, integrated oximeter and heart rate sensor
GNU General Public License v3.0
190 stars 134 forks source link

SPO2 Detection in other areas of the body #5

Closed slucero1124 closed 7 years ago

slucero1124 commented 7 years ago

Hi, First, thanks for your work here - this is the most complete example of use of this device with an arduino. I can see lots of work went into this!

My question centers around tissue oxygen saturation in other areas of the body (besides the finger)

Do you think this combination of sensor, and code can be adjusted to work against other areas (for example, the lower back)?

If so, any idea what variables I should toy with to make this work?

Thanks! Steven

oxullo commented 7 years ago

Hey Steven, thanks!

I had a similar inquire from a user, asking how to improve readings from the wrist. Generally speaking, the sensor works when its two spectral emissions can filter/reflect thru/on a vascular tissue that has a high arterial blood perfusion. Fingers and ear lobes being the standard sampling points, you can find some more hints in the literature that describes sampling strategies for reflection-mode pulse oximetry.

The current high level code (MAX30100_SpO2Calculator.cpp) is the last component I wrote and definitely the least tested and optimized. The idea comes from this paper: http://www.ti.com/lit/an/slaa274b/slaa274b.pdf

I added a block diagram to help out understanding the principles behind the processing pipeline (see below).

A practical hint: I made heavy use of the extras/rolling_graph tester, which helped me to see the relations of SNR with different sampling approaches and variables (LED current bias adjustments, sampling frequency, red LED pulse width, fingers resting surface, different subjects..).

Let me know if you succeed in any improvement! PR are always welcome.

Block diagram