Bangle.js 2 can only set time with one second accuracy but with following trick you can get more accuracy: If current time is e.g. x.3 seconds then wait 700 ms and set time to x+1 seconds. This is somewhat accurate, but the problem is that accuracy varies a bit and after setting time you want to check again how much clock is off becuase it will have changed.
5) keep offset, slowing down shown time, not actual watch time
More accurate solution is to not set watch time but instead keep an offset of how much clock is off and apply that offset to shown time, i.e. don't show actual watch time but time-offset. That 35ms (or whatever) every 10 minutes would then be just added to offset. Unfortunately this would require each app to keep track of that offset.
Hybrid solution is also possible, e.g. one app keeps offset and if offset is over e.g. 300 ms then it changes watch time so other apps will also have correct time.
ps. That 35ms (or whatever) also depends on temperature. If you wear watch on wrist all the time it's not that significant, but if you e.g. like to wear watch over the clothing in winter then temperature should also be taken into account.
Espruino is a JavaScript interpreter for low-power Microcontrollers. This site is both a support community for Espruino and a place to share what you are working on.
4) is not possible that accurately.
Bangle.js 2 can only set time with one second accuracy but with following trick you can get more accuracy: If current time is e.g. x.3 seconds then wait 700 ms and set time to x+1 seconds. This is somewhat accurate, but the problem is that accuracy varies a bit and after setting time you want to check again how much clock is off becuase it will have changed.
5) keep offset, slowing down shown time, not actual watch time
More accurate solution is to not set watch time but instead keep an offset of how much clock is off and apply that offset to shown time, i.e. don't show actual watch time but time-offset. That 35ms (or whatever) every 10 minutes would then be just added to offset. Unfortunately this would require each app to keep track of that offset.
Hybrid solution is also possible, e.g. one app keeps offset and if offset is over e.g. 300 ms then it changes watch time so other apps will also have correct time.
ps. That 35ms (or whatever) also depends on temperature. If you wear watch on wrist all the time it's not that significant, but if you e.g. like to wear watch over the clothing in winter then temperature should also be taken into account.