Overall, this is awesome! The Alarm ETA widget on Bangle.js is a nice way to see how much time I have left to sleep if I wake up early, too.
However, after some more nights to test, the Bangle.js actigraph data feels like it's less meaningful vs. my phone next to my pillow. So far, Sleep as Android has not detected deep sleep, always triggering the smart wake up alarm at the earliest start time.
My phone next to my pillow (2024-7-2):
Wearing Bangle.js 2 (2024-7-9):
I wonder if there's a difference in how Bangle.js 2 reports accelerometer data..?
At a glance, the accelsender code looks correct, as does the Gadgetbridge handling. If I understand correctly, Bangle.js 2 finds the maximum acceleration over a 1000 ms period (o.put("interval", 1000);), sends that to Gadgetbridge, which then finds the maximum acceleration over a 9999 ms period, sending it to Sleep as Android once it hits batch size.
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.
Overall, this is awesome! The Alarm ETA widget on Bangle.js is a nice way to see how much time I have left to sleep if I wake up early, too.
However, after some more nights to test, the Bangle.js actigraph data feels like it's less meaningful vs. my phone next to my pillow. So far, Sleep as Android has not detected deep sleep, always triggering the smart wake up alarm at the earliest start time.
My phone next to my pillow (2024-7-2):
Wearing Bangle.js 2 (2024-7-9):
I wonder if there's a difference in how Bangle.js 2 reports accelerometer data..?
At a glance, the
accelsender
code looks correct, as does the Gadgetbridge handling. If I understand correctly, Bangle.js 2 finds the maximum acceleration over a 1000 ms period (o.put("interval", 1000);
), sends that to Gadgetbridge, which then finds the maximum acceleration over a 9999 ms period, sending it to Sleep as Android once it hits batch size.