Oximeter - Sleep as Android

Hello @petr-urbandroid and All,

Having read the whole thread, if I understand correctly:

  1. The Ticwatch Pro 3 is the only device that has been confirmed to support all 3 of HR, movement and SpO2 monitoring, correct?
  2. Theoretically other Wear OS devices with the same sensors should also support monitoring of all 3

So a couple of questions:

  1. Are there any other devices that have been confirmed to support all 3 of HR, movement and SpO2 monitoring and what are they?
  2. When looking at other Wear OS devices, what specs are essential in addition to sensors for HR, movement and SpO2?

Many thanks :smiley:

Bummer…I was told that the sensor data can be extracted through the “stress” section, as it’s not called “spo2” or something to that effect… Definitely going to keep a lookout on this should the API ever be released/supported, especially now that newer models may be based on a suped-up WearOS.


I wonder if there’s a way to extract that data from Samsung Health, instead of from the watch directly?


1a) Yes TicWatch 3 Pro works with HR/HRV or SPO2 (not both at the same time)… I’m using the watch every day fro tracking and this is why I was able to find the sensors and implement it… otherwise there are no standard sensors for SPO2 and SDNN on Android… I can just assume that some other Wear OS watches also have those sensors on the same address… but I do not know… I’m eagerly waiting for some user with another Wear OS device which SPO2 to report if it is working… and if it is not I can determine the address from the log and make it working for the next release of the Wear OS Sleep as Android app…

2a) Yes, exactly… but I would need feedback and logs…

1b) We have implemented SPO2 and HRV on Garmin watches if my colleague @jiri-urbandroid can confirm… but so far we have very little feedback on how is this working, we cannot really test it as we do not have a SPO2 enabled watch at the moment…

2b) The OEM of the watch must have implemented the sensor in the standard Senser interface… I do not think you can learn this from the device specs … we need to to test it on a real device… BTW are there any other Wear OS watches with SPO2? I did not yet made this research…

Many thanks!

@shayaknyc I will check with my other colleague Marcel who is working on the Samsung Health integration… are you actually seeing SPO2 data in Samsung Health for the whole night?

There is no documented SpO2 sensor on Samsung (https://forum.developer.samsung.com/t/how-to-get-spo2-in-my-tizen-web-app/9517/5). The data can be got from HRM sensors but not in a batched manner, so that would be very battery hungry.
There is apparently also an undocumented SpO2 sensor, but I’m not sure whether this is active and if we can use it. This needs some investigation.

Thanks for the feedback @petr-urbandroid.

  1. Is the limitation caused by the watch or by the way it’s integrated into SAA?
  2. Does SAA still show movement data from the watch in each scenario (HR/HRV or SpO2)?
  3. When the TicWatch 3 Pro is used for SpO2 data, what is the easiest & cheapest way to provide SAA with HR/HRV data?

I haven’t yet looked for other Wear OS watches with SpO2 because I first wanted to learn what else to look for. :wink:
I guess the device would have to support some kind of Bluetooth as well - what would be the minimum spec?
But based on your information I can only agree that testing on a real device is the only way to tell for certain.

Many thanks!


  1. This is some limitation on TicWatch IMHO if SPO2 is measured than the LEDs on the sensor are red, when SDNN is measured they are green, for some reason TicWatch doe snot use the PPG data from the red SPO2 sensor for HRV calculation. to get both I would probably need tobe constantly switching…

  2. movement data is there at all settings…

  3. I think BerryMed Oximeter is the only way which I can say will 100% in combination with the TicWatch to get HR HRV and SPO2 at the moment… or maybe I’m missing something? Also some of the 3rd party integrations woudl work but I haven’t tested them…

Thank you!

I have been able to get spo2 from the o2ring and hrv from the mio fuse (ble hr tracker) - the ble heart rate setting overrides the o2ring hr sensor. Movement from a wear OS watch or my current amazfit gts 2 mini. Would be great to build up a list of all the different devices and combinations that can be made to work together?

1 Like

@Michael interesting, many thanks for sharing this… maybe we could gather some similar experienced on this thread and after a while summarize them in the Wearable documentation?

1 Like

Sure thing, however my experience is unfortunately a bit limited.

I have a mio slice, which has very good hrm and that works as a ble hr tracker in SAA but doesn’t provide hrv.

Prior to the gts 2 mini, I used the light phaser for movement and the mio fuse for hr and hrv, which worked well. But as I always wear the o2ring at night, I wanted to link to it for spo2 - unfortunately it doesn’t work with the phaser in SAA, which is where the gts 2 mini comes in.

1 Like

Hi Petr, I’ve seen a couple of mentions for Mi Band and was wondering whether you and the Mi Band Tools guys were having any success integrating its SPO2 sensor?

I’ve got a six coming, not just for this but my 3 finally died. Happy to help out if I can. This has been a fabulous app.

1 Like

Hi @petr-urbandroid,
I’m interested in adding my sensor data the morning after.

If not already implemented, has your team considered adding support in the SAA wearables API for “batch processing” sensor data, including timestamps?

It could overcome the hurdle of not being able to use the O2Ring’s sensors for SPO2, HR, motion (all three at once) with SAA. The ViHealth app provided for this wearable exports sensor data to CSV file.

If I undertstand correctly SAA wearables API currently requires the sensor data arrive in “real-time” as you sleep.

Related forum thread: Wearable integration API - Sleep as Android
Section " Captured data batch syncs".

Reading sensor data from practically any device/ system that supports saving it to file would be a very powerful capability for SAA, for example, comparing the results from two or more devices that recorded the user on the same night. Allowing only real-time data capture and processing/analysis limits this potential.

An even more natural user experience than having the user (external app) call the SAA API might be to add the option in SAA to import a file formatted the way the API wants to see the data.

@Fufu_508 many tanks for the ides… in fact the API does not require the data to arrive constantly through out the night, but most of the wearable implementations also support all the data beeing sent in the morning in one batch…

But the problem is some of the core features won’t work in this scenario - like for instance smart wake up etc…

So maybe a good approach to this is to let the device sync with a health service like Google Fit and we can than receive the data already aggregated from there?

1 Like

Thank you, @petr-urbandroid! Has the API always supported batch arrival of sensor data? I’m running SaA version 20200228 on an Android 5 tablet.
What about the possibility of SaA reading a file for consuming/processing/analyzing the sensor data, instead of receiving it via the SaA wearables API?

I’m interested in learning more about a wearables implementation that uses the batch capabilities. Are you aware of any open ones, say, posted on GithHub?

Thanks to your suggestion @petr-urbandroid, I just came to know that Google fit itself accepts data for upload into the Google fitness store. I’m going to continue reading on topics like this one.


I took a look at this page and I’m curious to learn more: https://docs.sleep.urbandroid.org/services/google_fit.html#what-it-does
“Download 3rd party sleep data from Google Fit into Sleep as Android”

Does this download automatically happen when SaA syncs with Google fit? The documentation at the link above seems to be centered on pushing data to Google fit from SaA.

Hi @petr-urbandroid - quick question/feature request about the O2 alarm. I have a ticwatch pro 3 which integrates really well with SaA, and wakes me on low oxygen events. (Thank you.) However, the alarm is jarring and the vibe goes on way too long. Can you add features to give tune the alarm?

I’m looking for things like:

  • picking my own alarm sound
  • having the alarm sound stop on movement
  • controlling the number of vibes on low oxygen events
  • having the option for the alarm event to be vibe only

Thank you in advance

1 Like