I don't see the RED LED light up when getting pulse ox values for my widget instead I see the GREEN LEDs light up

I have enabled the pulse ox sensor on my Vivoactive 4

Sensor.setEnabledSensors([Sensor.SENSOR_HEARTRATE,Sensor.SENSOR_PULSE_OXIMETRY]);

But when I run the widget on the device I don't see the IR LED light up and only the GREEN ones do. When using the PulseOx app that comes with the watch I see the IR LED light up. Any reason this doesn't happen for me? 
Would this affect my accuracy?

  • Keep an eye on 

    Sensor.getInfo().oxygenSaturation

    Unlike the OHR (green) the O2 sensor (red) isn't on all the time - it just takes a reading every hour or so.  If you want to be able to watch it for a while, change your widget to a device app so it won't time out after a minute or so.

    Make sure you are wearing the watch.

    The native widget is different, in that it's native in the FW (not CIQ) and can do things that aren't possible in CIQ.

  • Thank you I will try out the changes you had mentioned. Just curious but is there a way to have the O2 sensor (red) on all the time ? 

  • Doubtful, as even the way it is has warnings about battery consumption.

  • I'm running it as an app but I'm not sure if I've run into a bug or am doing something wrong. The SpO2 values which I get from Sensor.getInfo().oxygenSaturation don't seem to be updating. It is just displaying the last recorded value from the native pulse ox widget 

    I have the sensor enabled here and I checked if SENSOR_PULSE_OXIMETRY exists 

    function onShow() {
    if (Sensor has :SENSOR_PULSE_OXIMETRY) {
    Sensor.setEnabledSensors([Sensor.SENSOR_HEARTRATE,Sensor.SENSOR_PULSE_OXIMETRY]);
    }
    Sensor.enableSensorEvents(method(:onSensor));
    _timer = new Timer.Timer();
    _timer.start(method(:timerCallback), 1000, true);
    }

    I have a timer calling onUpdate every sec (1000ms) 

    function onSensor(sensor_info) {
    _lastSp02 = sensor_info.oxygenSaturation;
    _lastHR = sensor_info.heartRate;
    }

    I see the HR value update perfectly where it goes to null when I remove the watch but `sensor_info.oxygenSaturation;` is still showing the value from the native pulse ox widget. 

    I see it working fine on the simulator where the values constantly change. My question is whether Sensor.SENSOR_PULSE_OXIMETRY the pulse ox is a sensor that records values in real time or does it just get historic data from the pulse ox widget

  • Just curious but is there a way to have the O2 sensor (red) on all the time ?

    Unfortunately, no.

    But when I run the widget on the device I don't see the IR LED light up and only the GREEN ones do.

    In order for the PulseOx functionality to work, the heart rate sensor must be enabled. This is why you see the green light. When we enable PulseOx, the sensor is put into periodic mode, which means it should come on for a few seconds every 15 minutes.

    I see the HR value update perfectly where it goes to null when I remove the watch but `sensor_info.oxygenSaturation;` is still showing the value from the native pulse ox widget

    This is expected. We don't show the instantaneous PulseOx value. It is an average of recent samples.