There are dozens of Android apps that measure heart rate, some using the camera and some using dedicated sensors, but I've searched through them and they all measure for only long enough to display the BPM, and show only a few seconds of the graph on the screen.

What I'd like is an app that plots the graph over a long period of time, so I can hold my finger on my Samsung S7's dedicated sensor for, say, 5 minutes, and it will plot my heart beats over that time and show how often I'm having "skipped" beats, similar to a Holter monitor:

enter image description here

It should be the real waveform direct from the sensor:

screenshot screenshot

and not a fake graph generated from the data:

screenshot screenshot


Because heart activity is electrical in nature, it is unlikely that you will discover the means to generate the results you seek.

I found an instructable for creating a monitor using an oscilloscope and contact electrodes, but before I could build one, I discovered a product called Kardia, now called KardiaMobile.

I have the iOS version, but there is an Android version as well.

Additionally, it records only 30 seconds of heart activity. The above linked site shows one placing one finger of each hand on the external sensor, but that also allows muscle impulses from the arms to be included in the recording. I follow the recommended method of placing the contacts against my chest to achieve more consistent and cleaner traces.

Kardia trace photo

The recorded beats per minute are the electrically interpreted count, rather than the ones that would be heard through a stethoscope. The irregularity can be seen by the uneven spacing of the peaks as well as a few that appear to be malformed or missing.

kardia normal recording

I've added a "normal" reading, although my resting pulse is usually in the 70s. I'm not sure why it's high here, but the pulse recording shows regular spacing and uniform heights. The beginning of the traces may be irregular due to software factors involved in calibration.

If you are willing to modify your requirements slightly, this device and software may work for you.

  • Smartphones measure your pulse optically, from the color change in your finger. (You can even measure it from minute changes in face color.) They work fine and I've already seen the heart skips on the apps I've tried, but the display doesn't show the graph for a long enough time, since they're focused entirely on measuring the pulse rate, as I said in the question. – endolith Jun 29 '18 at 2:55
  • This is not specifically nor exclusively a pulse rate monitor, it is a low cost electrocardiogram device, measuring the electrical activity of your heart and if you use your fingers on the sensor, also the electrical activity of your arm and chest muscles. A holter monitor will have electrodes (more than one!) to read the electrical activity. Any other device will require electrodes, and this removes a single finger phone mounted sensor from the equation. – fred_dot_u Jun 29 '18 at 13:20
  • Yes I've had a Holter monitor before. I'm looking for something that uses the phone's sensor – endolith Jun 29 '18 at 13:45
  • The phone sensor is a single point of contact. You will NOT FIND something that works in that manner. If you do, it's hokey/fake/scam, because electricity has to be measured and has to flow from one location to another to be measured. – fred_dot_u Jun 29 '18 at 13:48
  • As I've said, I already know that the phone's sensor works fine. Pulse oximetry is not fake. The problem is the amount of waveform displayed on the screen, not the sensor technology. – endolith Jun 29 '18 at 14:20

I found one that does this: Heart Rate Analyzer

You can set the measuring time in Options to 1|2|3|5 minutes, and it records the whole waveform and shows it in a scrollable way, with the skips clearly visible:

Heart Rate Analyzer showing a skipped heartbeat

Edit: I thought this could export to a spreadsheet, but I can't find that option. It actually saves as a binary file of the raw sensor data, which does not fix the offsets, etc.

Your Answer

