Most recent activity
Was able to reflash the firmware, same problem on chromebook but I was able to connect to it once from my phone and laptop
And now my phone is having the same problem with immediately disconnecting :/
Now I can't connect to my Bangle on my Chromebook either - it shows up, but just immediately disconnects. Only my phone works (which is inconvenient).
Yeah it was all from GPT-4. Note that it did hallucinate a bit (the arguments are hallucinated given that the decompiler doesn't have the type defs and I didn't provide the type defs, and it got the hex decoding wrong once), but when I tried providing more info I found the other explanations lower quality than the first one.
Interesting - do you still see useful values in raw? As you say it looks almost like it's not set anywhere. It should probably be set with hrmInfo.raw = hrmValue; in heartrate_vc31_binary too.
.raw is always 0 (as such the magenta line is just displaying the inverse of the average). Should I make a PR or do you want to add that line?
I think it works in a different way anyway - by taking blocks of HRM data and examining each block, rather than by 'streaming' it in as our algorithm did.
Decompiled it and yeah I have no idea what it does ¯\_(ツ)_/¯
Also here's the decompiled version for anyone who wants it https://ktibow.github.io/blog/vcareexplanation/
Yes - just Bangle.on("HRM-raw", ...)
It's hard though because the data can be a bit all over the place, even when filtered using our algorithms (see attachments - green: raw, magenta: adjusted for bias, red: filtered). While the new algorithm for measuring BPM is very accurate, it's going to be hard to compete with its ability to count beats.
Also after I spent a bit looking through the Espruino code trying to understand some stuff, I have some questions: Where does raw come from with the vc31? The only place I see raw getting set is in heartrate.c, and I thought heartrate_vc31_binary.c is used instead with the vc31, so raw shouldn't be set. And in theory could you modify the manufacturer code to expose their filtered version?
- Because we switched to the proprietary algorithm, it's going to be harder to calculate this either in the firmware and in userspace. However I think this would be useful to track as it gives information relevant to stress and sleep.
- Gordon: you can get all the absolute heart rate values for each heartbeat so can work out HRV pretty easily with an app. HRV calculations are not built in to the firmware though. What is the model of the heart rate monitor?
- Notes: HRV already has some implementations (an app on github and an app on the store) but they're either broken or don't use the built in HRV monitor.
- Blood pressure
- In order to implement it, the manufacturer code needs to be set up and someone needs to test it. It might also mean worse performance, but it would be nice to have.
- Gordon: The Bangle.js 2 sensor can handle Blood Pressure - hopefully I'll be able to expose that eventually possibilities and potentials of bangle.js.
- Gordon (implying they don't want to use manufacturer code): It's just finding a decent algorithm, which I guess just looks at the rising and falling times. possibilities and potentials of bangle.js.
- Gordon (mentioning manufacturer code): I do have that code as well, yes. [...] I also don't have a blood pressure tester here so it's not something I'd have any confidence in testing - I never had much confidence in using PPG for blood pressure, but if it worked for you maybe there's hope :) Bangle.js 2 Cutting Edge - new heart rate algorithm
- Notes: This requires using the mode with faster readings
Hope this doesn't give off the wrong vibe or anything, just making this post to see what others think and possibly help people looking for a summary.