Depends a lot on where / how you wear it, do you move, etc. Like I got the best heart rate signal when I put one of my fingers on top of the hearth rate sensor at a specific way/direction. Not wearing on my wrist...
You are absolutely correct - after placing the watch on my finger the readings went off the charts. Unfortunately that's not applicable for my use-case as the watch needs to be worn on the wrist.
Hi - in that last photo you posted - the one that says 67 - it looks like you're starting to get a really good reading.
I think the problem you might be hitting is that the sensor takes 10-20 seconds to calibrate itself, so if you move the Bangle, it can take a while before the change you made takes effect.
It does get a good reading every now and then but it will just drop to the same levels as shown in the pictures after a couple of seconds. If not else, the readings are inconsistent.
Also, the heart rate monitor app actually uses a different algorithm to the 'internal' heart rate monitor (because it's attempting to show you real-time values). You should find that in all the cases you show, the internal heart rate monitor (that you'd see used on something like the heart rate widget at https://banglejs.com/apps/#widhrm or any other app that uses heart rate) would be able to get a valid heart rate value for you since it works by finding repeating patterns rather than by detecting peaks.
The problem is that I'm trying to implement my own algorithm for detecting R-peaks in the ECG signal, more specifically the Pan Tompkins algorithm. My current implementation seems to work fine with data pulled from PhysioNet but I'm having trouble getting consistent results with the data from my Bangle. My current working theory for why that is is the small difference between the amplitude of noise and R-peaks on Bangle's ECG.
Considering the fact that the signal is much better when placing the sensor on the finger, is there a way to increase the "power"(?) of the sensor?