Clock accuracy Bangle.js 2

Posted on
  • I bought a Bangle.js 2 half a year ago. One thing that been bothering me is how inaccurate the clock is, drifting a minute over a week. At first I thought the 32768Hz xtal were saved to use pins for something else, but recently saw it is mounted on a picture. Failed to find a schematic.
    Now I am wondering why oscillator is configured to internal RC? I know the softdevice can calibrate it to about 250ppm, good enough for BLE with cost of extra power consumption. But seems strange why xtal not used they usually 20ppm if balanced properly.

    Anyone knows reason behind it?

  • I am wondering why oscillator is configured to internal RC?

    I think it is not like that. For bangle 2 32768Hz xtal is used however it is still inaccurate. However when switching to RC (you may try with this line commented out) it becomes much worse so I guess it is what it is. Search this forum, there were some attempts to autoadjust/correct this over time, maybe even some app. It is supposed to be synced periodically when connected to the phone so not the best crystals are used in these smart watches.

  • Thank you for response. In mean time I also figured out I were wrong about setting, had some issues get it to build and didn't have overview where build configs were.
    It look like softdevice setup for 20ppm tolerance, it should be adjusted to more realistic tolerance else it can give random disconnects on Bluetooth.

  • As @fanoush says - it's using the oscillator, it's just not that accurate.

    I think the vast majority of devices do fall within 20ppm (which'd be 2-3 seconds a day I guess) - that seems a pretty standard tolerance for 32kHz oscillators. Are you sure yours is really off by as much as a minute a week?

  • I did not measure it precisely, my reply was based on the example in the app linked which based on 5 sec drift in 24 hours which is over 50ppm.
    I will try measure it more precisely.
    20ppm is 1.7s per day.
    I have two Banglejs 2, the first is where I experienced big drift, only had the 2nd for a week and have feeling it more accurate.

  • For me and my wife "Adjust Clock" solved the issue completely.
    Almost no more drift during the whole year. So the offset seems to be pretty fix and not influenced by temperature much (at least on the wrist when outside and within range of room temperatures inside). Before she had 3-4 minutes a month.

  • OK I did some measurements on my two watches.
    First is about 54 PPM.
    Second is about 20 PPM.
    With the first I experienced many disconnect when connected to my PC to upload new software and such. Especially in beginning. Second watch is much more stable connected. I do believe it would be better to configure softdevice to 50 PPM tolerance on LFCLK.

  • Very interesting - thanks! I've just pushed an update that lowers expected accuracy to 50ppm when using an external crystal - I'd be really interested to see if that solves your connection problems.

    Sorry to hear that Bangle's so far off though - I'm not sure how the crystal used ended up being so out of range.

    One option might actually be to not use the xtal on that watch. Then it'll calibrate using the high speed one which might actually end up being more accurate. The difference in power usage is unlikely to be noticeable

  • Thank you Gordon for building a new version, I only got time to try it yesterday. Updating did not go smooth for some reason first time it fail with an error, so had to update twice before it succeeded. Same happened on both watches.

    While updating the phone with 55ppm often disconnected before it scanned for installed apps. After successful installation of 2v21.9 connection were stable and I had it connected for maybe an hour without disconnects. So for me it an success and I believe the cost is marginal regarding power consumption while connected, 20ppm vs 50ppm but user experience is much better if you were unlucky to get one with inaccurate clock.

    For your suggestion to not use xtal I believe you are incorrect, the calibration accuracy is more like 250ppm and if I remember correct they changed it in newer softdevice versions so it always use 500ppm. Calibration cost power, it wakes up every 1 second to do the calibration. I have worked with Nordic semiconductors in my work, from nRF51822 to nRF52832. We saved the extra xtal to save cost when we do not have power all the time to have a real time clock.

  • Great, glad that helped for you! As you say I think on the Bangle the increased power usage is pretty marginal.

    Interesting about the calibration, thanks! It's just anecdotal from the other devices I sell like Puck.js that don't have an XTAL, they don't seem to drift off loads over time - I run some in the garden the whole summer and they've never drifted off by enough that I notice anything (so must be less than half an hour).

  • Post a reply
    • Bold
    • Italics
    • Link
    • Image
    • List
    • Quote
    • code
    • Preview

Clock accuracy Bangle.js 2

Posted by Avatar for Michael.F @Michael.F