A previous firmware was meant to fix this issue but it seems to either never have gone or been broken again on certain watches. This works with a strap but fails on optical sensor. The callback is never called.
function SensorSetup() { if (Sensor has :enableSensorType) { var ans_ = false; ans_ = Toybox.Sensor.enableSensorType(Sensor.SENSOR_HEARTRATE); ans_ = ans_ && Toybox.Sensor.enableSensorType(Sensor.SENSOR_ONBOARD_HEARTRATE); Sys.println("Enable ="+ ans_); } else { Toybox.Sensor.setEnabledSensors( [Sensor.SENSOR_HEARTRATE]); } var options = { :period => 1, // 1 second data packets :heartBeatIntervals => {:enabled => true} }; try { Toybox.Sensor.registerSensorDataListener(method(:onHeartRateData), options); } catch (ex) { Sys.println("Failed to set listener"); } Sys.println("Internal SensorSetup()"); }