Wellue / Viatom O2Ring pulse oximeter

I’ve been playing around with a Wellue O2ring, a wearable pulse oximeter. I’m using it to track my blood oxygenation while I’m asleep as a way to understand whether I have sleep apnea. The device works great! Some notes on it after a few days’ use.

Caveat: I’m not a doctor nor do I have any health or medical training. I’m just a software nerd who’s read some stuff about pulse oximeters. My only goal is to get myself better informed so I can talk to a real doctor about my health.


The hardware is remarkable. Tiny little thing, about the length of a finger joint, comfortable and secure to wear. The pictures show it worn around your thumb but I’m a little thick for that and it works fine on most finger joints, I’m wearing it on the middle of my index finger. Note most pulse oximeters are duckbill sensors that fit over your fingertip; this is a little different.

The main sensor in it is the pulse oximeter. This is a fairly standard medtech; your finger is illuminated with a bright LED and the color of your blood is evaluated. Thanks to hemoglobin, oxygen-rich blood is bright red while depleted blood is darker. A simple sensor can measure the percentage of oxygen saturation in your blood reasonably accurately. In addition the O2Ring controls pulse rate and motion. The sensors record data every 4 seconds, or just about once every breath in a normal awake adult.

The device has a nice little OLED screen on it that shows time, current pulse, current SpO2. It also has a vibration function; you can set it to buzz your finger if you’re sleeping and your pulse rate or SpO2 drops to a certain level. It also has both USB and Bluetooth interfaces for exporting data. There’s a small touchscreen button to get its attention. The battery is charged via USB and lasts about twelve hours.

All in all the quality of the product is very, very good. This is a Shenzhen-designed product and it’s an example of the best of that engineering. My favorite feature is the device starts recording automatically when I put it on (sensing my finger) and works entirely standalone; no need to tether to the phone while recording. My only complaint is the rubber finger cuff that holds the product on isn’t replaceable, at least not obviously. But it seems sturdy though, I’ve read reports of people using these things nightly for a year+. I paid about $160 for the device; not cheap, but given the quality not unreasonable.


There are two choices of software from the manufacturer, both of which download and graph data for you. The desktop app “O2 Insight Pro” is the better of the two IMHO; it gives a nicely formatted PDF with an overview on the first page with summary stats like “average pulse rate” and “time below 90% SpO2”. Then detailed graphs showing second-by-second measurements of SpO2%, pulse rate, and motion. The mobile app also shows a summary and a graph but the graph is limited to the device screen so you can’t see detail, just the general pattern.

Both apps have CSV export if you want to do your own graphing and analysis. The desktop app writes data in a binary format to your hard drive. There’s support in OSCAR (an open source sleep apnea app) for importing data under the heading “Import Viatom”. The source code for that is simple; basically a 40 byte header and then a bunch of 5(?) byte records all in basic little endian binary numbers.

What does the data mean?

I like the product but it comes with precious little material telling you what the reports actually mean. Here’s some notes on that.

Normal SpO2% while awake is 94-99%, which is nearly full saturation. Folks who have severe respiratory disease (say, Covid) are below 94% for long periods of time and this is dangerous. From what I’ve read being regularly below 94% is “talk to your doctor” territory and below 90% is “consider the emergency room”.

I’m mostly interested in blood saturation when I’m asleep. I’ve tried reading about that but I get a little confused because there’s three different measures: SpO2%, which the O2Ring gives. Then SaO2% which I think is a measure specifically of arterial blood? And people talk about PaO2, partial oxygen pressure. Various studies quote numbers in terms of one or the other and while I know they’re correlated, I’m not sure in what important ways they are different. But, soldiering on…

When asleep, normal people have a blood saturation of 90-99% most of the time. (Or maybe 93-98%).

People with sleep apnea experience oxygen desaturation events, where SpO2 falls below 88% as they stop breathing. Check out Figure 1 in this paper for a detailed illustration of two minutes of this. In this patient SpO2 is often down below 70% and every 50 seconds or so bumps up to 95% briefly as they take a breath.

Sleep apnea is diagnosed by measuring the number of these apnea events in a score called the AHI, Apnea Hpyopnea Index. An AHI of under 5 events an hour is considered minimal; over 30 is severe.

It’s tempting to think you could diagnose sleep apnea solely by measuring SpO2%. The O2Ring software sort of encourages this, with a simple summary that shows counts of “drops over 3%” and “drops over 4%”. But SpO2% alone is not how sleep apnea is diagnosed. Real sleep studies use pulse oximetry and pulse rate, for sure, but even the simplest at-home type IV tests also measure air flow. Fancy in-lab type II tests also have various EEG measurements. A real sleep study also requires a trained professional to interpret the results, the diagnosis is not reduced to a simple measurement like “X drops in SpO2% per hour”.

However at-home SpO2% monitoring with a consumer device like the O2ring does seem to give someone a relatively easy way to measure at least part of their health in sleeping. Also according to this paper ODI is correlated with apnea, but not perfectly. I’ve already found it a useful tool for understanding things like the effects of different sleeping positions. And like I said, my real goal is to get some insight into what’s happening with me while I’m asleep so I can better inform a doctor.

Bottom line: the O2ring is impressive hardware with adequate software. I’m finding it useful!