-
One thing that I guess could be added if you really cared was a way to tell Espruino not to go into the high power mode for some things - for example when sending the health info every 10 minutes, there's no reason it should kick itself into high power mode for the next minute - but really that's something that'd need to be in the firmware.
Actually
NRF.setConnectionInterval
disables it so if some setting on a watch had this optionally forced to some specific value it would override what the firmware does. So the 'no reason to kick itself into high power mode' is doable by this.
@fanoush I forgot about that - the comment above explains the reasoning, but I guess it could be a setting that can be changed by the user...
Honestly, I don't think you'll find this that useful for power saving. Espruino automatically swaps power usage between high(~0.9mA) to low (>0.04mA) after a minute of inactivity, so as long as you're spending >5 minutes between sending data to Gadgetbridge you're not using that much power.
Compare this to other sources of power drain and it's a pretty small amount: https://www.espruino.com/Bangle.js2#power-consumption
So ~0.3mA in every-day use, and 0.04mA of that is BLE.
One thing that I guess could be added if you really cared was a way to tell Espruino not to go into the high power mode for some things - for example when sending the health info every 10 minutes, there's no reason it should kick itself into high power mode for the next minute - but really that's something that'd need to be in the firmware.
If you really want to increase battery life I think we could look at changing the default poll interval from 80ms to maybe 240ms, and to use the accelerometer's FIFO so we can still get all the data, but just wake up and poll 1/3 as often.
That would add a small amount of lag to the 'wake on twist', but realistically I don't think most people use that anyway