You are reading a single comment by @Gordon and its replies.
Click here to read the full conversation.
-
Maybe you could try - in heartrate_vc31_binary.c - changing
unfortunately no change with that, still ~10BPS below
I even addedjsiConsolePrintf
inside the if likeif (timeDiff*2 > hrmPollInterval*3){ // > 1.5x jsiConsolePrintf("Compensating HRM timediff %d\n",timeDiff); timeDiff/=2;
and it shows approx. every second when starting the HRM monitoring app
2v18.25 (c) 2021 G.Williams Compensating HRM timediff 338 Compensating HRM timediff 136 >Compensating HRM timediff 135 Compensating HRM timediff 136 Compensating HRM timediff 136 Compensating HRM timediff 136 Compensating HRM timediff 136 Compensating HRM timediff 136 Compensating HRM timediff 136 Compensating HRM timediff 135 Compensating HRM timediff 136 Compensating HRM timediff 68 Compensating HRM timediff 67 Compensating HRM timediff 68 Compensating HRM timediff 68 Compensating HRM timediff 67 Compensating HRM timediff 68 Compensating HRM timediff 68 Compensating HRM timediff 67 Compensating HRM timediff 68 Compensating HRM timediff 67 Compensating HRM timediff 67 Compensating HRM timediff 67 Compensating HRM timediff 67 Compensating HRM timediff 68 Compensating HRM timediff 67
Ahh ok, so it may well be an issue with the algorithm expecting almost identical time differences - in their example the HRM is calibrated to give readings at the right rate, not the other way around.
Looking at you file there is some variation - but worryingly I actually see some much bigger gaps every so often - like one sample is being missed which I guess is just due to a difference in frequency between the HRM and the bangle:
But maybe that one long sample throws the algorithm off (when the original one would cope with it).
Well, when I tested the HRM measurements I got against a Bangle running old firmware, they were almost identical.
Maybe you could try - in
heartrate_vc31_binary.c
- changing:to:
So it effectively just splits the double-length gap into 2