Reading doubled heartrate value from MAX30101+MAX32664 bio sensor

I’ve found that sometimes for periods of time I get an implausibly high heart rate reading from the MAX30101+MAX32664 bio sensor, like 200+ bpm, and I’m pretty sure I’m not dead.

The value appears to be about double what it should be. I just log body.heartRate without any post-processing on my end, so I don’t know of anything that I could be doing that could be causing it.

I taped the sensor to my finger and was walking around outside. Something to do with my finger getting cold? That’s the only thing I can think of.

Attached are the heartRate readings over 1000 seconds

https://i.imgur.com/esoabJa.png

The most common culprit using these is the interface between the finger and the sensor - slight pressure changes/disturbances might ‘throw off’ the running averages during use. It looks like it became disconnected/had a period of false readings ~600-650…did the sensor lose contact and become reattached here?

Lastly, you may be able to modify the code being used to reset, or reject, false readings once they occur? (implement the ‘post-processing’ mentioned :slight_smile: )

Be sure to run through the BPM portion of the hookup guide https://learn.sparkfun.com/tutorials/sp … bpm-mode-1 and see if that gets the ball rollin’

Hope this helps!

I am checking the the ‘status’ and ‘extStatus’ fields that indicate when it isn’t able to read your finger properly, these readings occur when the device says it’s not in one of those error states.

It feels like a simple bug somewhere for it to be exactly double like it seems to be.

The only thing I can do is halve the readings when it seems too high, but 60bpm and 120bpm are reasonably expected heartrates so it isn’t obvious how you would tell whether 120bpm was a false reading or not

I was using non-default configuration PulseWidth=411 and SampleRate=50, maybe that could have something to do with it? I’m going to try leaving those at their defaults and seeing if that makes a difference

I changed the configuration back to default settings and wasn’t able to reproduce the issue again. (shrug)