You are reading a single comment by @Gordon and its replies. Click here to read the full conversation.
  • Glad you got weather working!

    unlike puck.js which always appears in Chromium BT devices list, the watch's BT seems more finicky.

    It definitely doesn't have quite the same Bluetooth signal strength as the Puck, that's for sure.

    Unfortunately the issue with the heart rate monitor seems to be something that can't be solved in software - although I'm pretty sure some work could be done to make the 'confidence' rating more reliable.

    Basically the usually work with two photodiodes for different wavelengths of light - one the blood absorbs, one that blood doesn't. Modern stuff just takes those two signals, converts them to digital, and does some calculations on them to compare the two. It can turn the LED off when not in use, which is why you get the pulsing.

    Better systems use three wavelengths of light and do some really fancy stuff - and can work out blood pressure and stuff like that. The better sensors do all the calculation on-chip so you basically just read heart rate right out as well.

    On Bangle.js you have the two sensors, but there's an analog comparator that compares the two and sends a signal back that's the difference between the two. When you move around, you get wildly different signals from the diodes, and that then actually charges/discharges some capacitors which change the comparator's sensitivity. It takes a significant amount of time for them to discharge enough to produce a useful signal again - if it were a purely digital system you'd be able to account for the movement in code, but in Bangle.js you're stuck.

    I guess potentially you could replace the big capacitor with a smaller one, then try and do some filtering in software - it's not something many people will be up for trying though!

About

Avatar for Gordon @Gordon started