Perfecting The Pulse Oximeter

Showing pulse oximeter and color sensor combining to measure oxygen in blood and skin tone

We’re always looking for interesting biohacks here on Hackaday, and this new research article describing a calibrated pulse oximeter for different skin tones really caught our attention.

Pulse oximeters are handy little instruments that measure your blood oxygen saturation using photoplethysmography (PPG) and are a topic we’re no strangers to here at Hackaday. Given PPG is an optical technique, it stands to reason that its accuracy could be significantly affected by skin tone and that has been a major topic of discussion recently in the medical field. Given the noted issues with pulse oximeter accuracy, these researchers endeavored to create a better pulse oximeter by quantifying skin pigmentation and using that data to offset errors in the pulse oximeter measurements. A slick idea, but we think their results leave a lot to be desired.

Diagram showing pulse oximeter and color sensor combining to measure oxygen in blood and skin toneTheir idea sounds pretty straightforward enough. They created their own hardware to measure blood oxygen saturation, a smartwatch that includes red and infrared (IR) light-emitting diodes (LED) to illuminate the tissue just below the surface of the skin, and a photosensor for measuring the amount of light that reflects off the skin. But in addition to the standard pulse oximeter hardware, they also include a TCS34725 color sensor to quantify the user’s skin tone.

So what’s the issue? Well, the researchers mentioned calibrating their color sensor to a standard commercially-available dermatology instrument just to make sure their skin pigmentation values match a gold standard, but we can’t find that data, making it a bit hard to evaluate how accurate their color sensor actually is. That’s pretty crucial to their entire premise. And ultimately, their corrected blood oxygen values don’t really seem terribly promising either. For one individual, they reduced their error from 5.44% to 0.82% which seems great! But for another user, their error actually increases from 0.99% to 6.41%. Not so great. Is the problem in their color sensor calibration? Could be.

We know from personal experience that pulse oximeters are hard, so we applaud their efforts in tackling a major problem. Maybe the Hackaday community could help them out?

28 thoughts on “Perfecting The Pulse Oximeter

  1. Quantifying skin tone? What could possibly go wrong?
    Also, a really cheap ($20) clip on finger pulse ox does just fine on all skin tones, I can personally attest to that having done plenty of work in developing nations. If it super duper maters, we also have co-oximiters that use several different wavelengths and can not only determine oxy-hemoglobin but other stuff that comes up from time to time like CO-Hb (smoke / monoxide inhalation toxicity) and met-Hb.

      1. There is a strong tendency for the skin tone on the underside of the fingertips of dark-skinned people to be lighter than the skin on the rest of the body. That should make the results less sensitive to overall skin tone than the wrist measurement shown in the diagram at the top of the page.

          1. To everyone saying “apparently” and “could..”
            I use them. Personally. A lot. On people with any variety of melanin you could imagine. I’m telling you they are fine for me, a licensed physician. And I’m talking generic ones from Amazon, CVS pharmacy etc. the tech is mature but feel free to get a bunch and try for yourself.
            If that’s not good enough the sniff test doesn’t even work: they work in red/infrared territory IIRC which is not even going to significantly be impacted by skin color.

    1. I was an engineering manager at a pulse oximeter company and I can tell you we took skin tone very seriously and tested with a wide variety of skin tones. The issue, as others have said is that the darker pigment drops the signal level, so you have a lower signal to noise ratio. A very thick finger will drop it further.

      Our oximeters were $500 for a fingertip oximeter (seriously). This was when the Chinese oximeters were just coming out at around $100. Now, obviously they are down to $20. As craig has said, many of the $20 oximeters will work just fine on dark, thick fingers. Some won’t, but I’m surprised anyone would be shocked that a medical device they bought off Amazon for $20 isn’t useable in all situations.

      So long story short, measuring skin tone and trying to compensate for it is completely unnecessary. Trying to do this illustrates a complete lack of understanding of the problem.

      1. I have one that cost $40 at a pharmacy. A bit later I got one for $5 off Temu. Side by side testing they read the same or within one digit of each other.

        The Temu one is nicer with a multi color LED display that can be inverted to read from either direction. The $40 one’s LED display is all red and no fancy inversion trick.

    2. On this topic you’re incorrect. Pulse oximeters are affected by several factors, including melanin, light scattering, and tissue morphology. It’s a well known problem that oximeter accuracy is systematically incorrect with darker skin tones. This has led to treatment disparities. In the peak COVID waves, oximeters reported 1-3% higher oxygen saturation for black as compared to white people, based on blood draws. That was associated with higher mortality in the same patient subset, who were systematically provided with less care than the corresponding white population, because physicians accepted the oximeter readings over the self-reported symptoms and triaged the patients into different levels of care. Physicians generally aren’t aware of the finer limitations on their equipment, and it can lead to quality of care issues.

      1. You have conflated so many things I do not know where to start.
        Correlation is not causation.
        A 1-3% difference in oxygen saturation as measured by pulse ox is clinically meaningless.
        If the patient had “blood draws” measuring oxygen levels, major decisions would be based on that anyway.
        Race based disparity is a real thing, and ignoring symptoms and depending on a pulse ox, right or wrong, is just bad medicine and contradicts training.
        Perhaps by reading my comments above I can try to convince you that I am not “unaware of the limitations on (my) equipment” and maybe by reading the engineer above that actually oversaw the development of the devices and saw to testing re: skin tone as well as my direct observations and clinical use of the devices over thousands if not tens of thousands of patients over more than 10 years.
        This website and comments are great places to get info from the people doing it, not just what you have read. And I assure you, I’m very well read as well. I respect your right to disagree but it is baffling that you are so sure when someone who does critical care daily as well as someone who actually built the devices in question are telling you it is not so.

        1. “A 1-3% difference in oxygen saturation as measured by pulse ox is clinically meaningless.
          If the patient had “blood draws” measuring oxygen levels, major decisions would be based on that anyway.
          Race based disparity is a real thing, and ignoring symptoms and depending on a pulse ox, right or wrong, is just bad medicine and contradicts training.”

          The unfortunate reality however is that you have many peers in your field that are simply bad doctors to begin with. Add to that the chaos and stress of the whole COVID thing and unfortunately there WERE many medical practitioners basing their triage decisions (probably made before they did any blood draws) on simple fingertip pulse-ox measurements.

          I understand what you are saying but even a basic warning and knowledge of “pulse-ox may read slightly high for dark skin” could potentially have led to some physicians taking more caution when using such a reading to make triage decisions. Triage during the peak of COVID didn’t really have the luxury of waiting on lab results or taking the time to observe a patient (and I think as a physician yourself you’ll know patients self-reported symptoms are oftentimes suspect). So shortcuts get taken. And in this case, slight differences in pulse-ox measurement due to skin tone differences might have led to some patients receiving sub-optimal care.

          1. “A 1-3% difference in oxygen saturation as measured by pulse ox is clinically meaningless.
            If the patient had “blood draws” measuring oxygen levels, major decisions would be based on that anyway.

            How on earth do you think we calibrate the devices and test them for FDA compliance? Do you think we just guess at the ground truth for the arterial oxygen saturation?

            And craig is right again. 1-3% is absolutely meaningless. You’re looking for the patient that reads 85% instead of 98%. Absolutely no practitioner is going to make life critical decisions over a range of 3%.

  2. I think the problem cannot be fixed by measuring and numerically compensating for the skin tone here. I suspect the issue in their experiment is simply that darker skin absorbs more IR light and thus it throws off their measurements. This needs to be corrected for in the analog domain, before they even attempt to calculate the oxygen saturation – think automatic gain control of some kind to normalize the response from the sensor.

    E.g. by using the pulse information (which doesn’t depend on the amplitude) and rescaling the waveform until the amplitude matches a standard value. Then they can start doing their saturation measurements.

    Their color sensor is useless for this because, surprise, even dark skinned people have essentially the same skin hue as the whites do – only much darker. Think the HSV color model – H is +/- the same but the V changes. So a fancy RGB sensor is no better than a simple phototransistor here …

  3. If anyone is interested in how these devices work, here goes. Forgive generalizations for brevity.
    They measure two things: the pulse and the oxygen content of blood. They are two separate things.
    A light of at least one wavelength is transmitted through the tissue in question. Hemoglobin (the oxygen carrying molecule in blood) inbound with oxygen is measured at one wavelength and oxy-Hb (hemoglobin bound with oxygen) is measured at a different wavelength. Therefore it is the ratio of those two measurements that determines %saturation of blood. It is, also, self normalizing as the ratio doesn’t change as the absolute signal strength of the two changes. If the transmission is too low you can clip it to a thinner body part like an ear lobe. It’s same as if you take a flashlight and shine it through you hand or finger or whatever.
    The second measurement, the pulse determination, is simply a plot of the light intensity over time and is a periodic waveform. This is because even you finger pulses and changes diameter as it is periodically engorged as the pressure goes up and relaxes as it goes down in lock step with you heart pumping. Conceivably if you put the thing on a body part way too think not enough to light gets through. More typicall bright lights overwhelm it and can be fixed by putting a towel or sheet over to mitigate background light or clip it to a pinky finger or earlobe to increase the amount of light transmitted.

    1. It’s surprising that nobody else has mentioned it, but since that’s a great comment, I’ll add to it:
      Clip on devices measure _transmission_ and are straightforwardly normalizable as described – you just need e.g. 660 nm and 940 nm light, one absorbed by Hb (but not by O2Hb), one absorbed by O2Hb (but not Hb). Very roughly the transmission of both through miscellaneous human tissue is close enough, and you have a ratio you can use.

      Wrist based devices measure (sideways) scattered light, and this is firstly much weaker, and secondly more affected by other effects. It’s no wonder that wrist based devices have been a decade behind clip on devices. Green light is also used now too – it’s much less transmissible than red/IR, but this is a good thing since therefore more of the energy scatters back towards the sensors! Though very clearly it is in the visible region of melanin: skin tone, freckles.

      1. I should clarify here that the topic of wavelength selection is much more complex, and it’s not just a good thing that green light cannot penetrate as deeply into your body where the blood is, instead of the skin. But it should be clear that a shallower depth is going to be more affected by the goings on in the skin – for better and worse.

        Also the article is just about a red/IR sensor (paired with some colour grading), so the green comments don’t apply here – besides that the red/IR sensor is going to see a weaker signal than typical clinical clip on sensors, and be more affected by the skin because it’s a wrist-based device. Still, take a look at off-the-shelf wrist based devices: I’d predict a lot of green!

  4. The calibration solution is super simple. First, ignore skin color, tissue density etc.

    Have a test value permanently built into the device. Start the illumination at X level, ramp it up until the sensor reading matches the pre-set level. If the readings aren’t converging, switch back to the starting level then ramp down.

    Once the light level is adjusted to produce a reading matching the pre-set level – measure continuing difference from there. That would ensure the sensor is seeing the same illumination range no matter what is between it and the light source.

    Would definitely want to test on a wide range of people from albinos to Sudanese. They seem to have the darkest skin of anyone. Should also include people with vitiligo in the test and verification program.

    Simple, works on everyone, no color sensor, complex math etc required.

  5. The body is more or less translucent for IR. Even if the pigmentation has an effekt it should just increase the absorbtion and then its just a dc offset in your signal. And to get to proper measurement result you have to calibrate the sensor anyway, so you have to get a blood sample and measure that.
    Without that your result is a guess at best.

  6. In the book Dragon in the Sea, by Frank Herbert there’s a gadget called a “vampire gauge” that works similar to modern blood glucose monitors. 67-year-old science fiction aside, its a great story and very forward looking for its era. Herbert was so good at speculative fiction that the book hit far closer to reality than he initially thought. Close enough that the U.S. Navy investigated him for being a spy.

    Short version is a pair of needles poke into the skin (like vampire fangs) to measure dissolved nitrogen levels in the blood. They have to measure these levels because they fully pressurize the submarines instead of keeping the internal atmosphere at STP.

    I’ve always wondered what it would take to build something like this for divers to use. We can do some amazing stuff to our bodies but unless there’s a blood gas analyzer on hand taking samples at regular intervals, decompression is a preprogrammed process heavily dependent on good time keeping and dive buddies watching each other for issues. Having a live feed of very accurate blood gas data throughout a dive would be amazing.

Leave a Reply

Please be kind and respectful to help make the comments section excellent. (Comment Policy)

This site uses Akismet to reduce spam. Learn how your comment data is processed.