There are apps like Instant Heart Rate and Cardiograph which claim to be able to measure heart rate by reading color changes on arterial pressure change. They generally require you to place your finger over the flash led and camera.

From my tests the values don't quite match rates measured traditionally (by feeling arterial pressure changes, counting them over 10 seconds and multiplying by 6) but I'm not a physician so I might be measuring incorrectly.

So, are these apps more precise than I can be or is it the other way around?

  • Hi! I changed my answer a bit to reflect the test I made this weekend with a friend's BPM watch.
    – Coyote
    Mar 26, 2012 at 12:02

8 Answers 8


The operative term here is photoplethysmograph. It's the term for what your phone is acting as.

Basically, your blood vessels rhythmically dilate and contract with every heart beat. This is measurable as either a change in reflectance or transmittance (depending on how the photoplethysmograph is configured. In the case of your phone, it's measuring reflectance, as the light is adjacent to the camera.

In medical instruments, it's generally done with infrared light, because blood absorbs shortwave infrared more then red or white light, and your tissue is more transparent to infrared. However, there is no reason it wouldn't work with a phone camera.

If done properly, it should be as or more accurate then manual measurement. However, a phone is not a proper photoplethysmograph, so the realistic achievable accuracy is likely dependent on a number of factors, including camera performance, proximity of the illuminating LED to the camera lens, and the algorithm used to extract the pulse from the video return.

However, you need to be aware that all photoplethysmographs are very sensitive to mechanical movement. It is essential that you hold your finger as still as possible, and avoid moving the phone relative to the finger.


Very interesting question! I wasn't even aware that these kind of apps exist. In order to answer your question, I decided to put one of them to the test against a chest strap heart rate monitor. (I was using a Garmin brand chest monitor similar to this one.) I was using both heart rate monitors at the same time when I performed my tests and compared their values.

I tried out Instant Heart Rate Monitor, and it turns out that it is remarkably accurate... when it worked.

The main problem was that it only worked about 1 in 30 times. Every other time it would say it could either not detect a finger, or it started detecting the pulse, but then never finished the process.

When it did work, though, the results were surprisingly similar to my other heart rate monitor. After performing 5 (non-scientific) tests, it was off by an average of only 1.26%. Had it worked more consistently, I would have tried it out more than 5 times.

A few notes:

  • While it is beeping and gathering info, the heart rate it shows is usually way off from your actual heart rate. Sometimes it's almost exactly half your real heart rate.
  • The final heart rate it outputs is usually very close to your actual heart rate.

Therefore, you should only trust the last heart rate value it outputs (i.e. the average).

  • Much better experiment! At least you have a point of comparison. Now we just have to assume that the chest strap is itself accurate ;) Incidentally, I have tested this and have pretty much found the same thing as you. I used a Timex T5G941 (which was calibrated to ~6 cardio machines, such as treadmills, stairclimbers, etc.). Like you, I found it was accurate but that wasn't really the issue, it was the reliability. I had a better rate of detection than you did, but it wasn't great that's for sure. The spotty detection really makes it more for entertainment purposes.
    – user10355
    Mar 26, 2012 at 11:04
  • @cksum - I get a very good rate of detection after some practice (>95%). It's a very close tie between this answer and Coyote's, I'll leave the question open a couple more days before accepting.
    – Vlad
    Mar 26, 2012 at 13:56
  • @cksum: That's true, but since the main purpose of this Garmin chest strap is to monitor heart rate, I would hope it's accurate! From what I've read, at least, chest strap monitors tend to be more accurate than the wrist watch variety.
    – Senseful
    Mar 26, 2012 at 22:23

I suspected that apps which rely on the flashlight and camera weren't more precise than a manual check (assuming you are used to checking your BPM regularly). Event if they rely on a technique used by medical apparatus (photoplethysmography).

But then I did some testing.


vs myself

Comparing with my own readings the results seem to be consistent with a ~5 BPM margin based on the approximation due to the multiplication. I actually am less precise than these apps.

2 different iPhones models with flash

The results of some testing using 2 different iPhone models, the iPhone 4 and the iPhone 4S shows that on 6 readings (3 per device), I had a difference of 2 to 0 bpm with less than ideal conditions.

vs a Gamin Forerunner

Testing of one of the apps agains a GPS sports watch with BPM Showed very close results on a dozen readings. A 3 BPM difference was be the least precise it would get in when testing in good conditions, most of the time they are off by 1 or 2.


Convenient and precise

If you don't press hard on the camera (to avoid blocking blood flow), remain calm, not moving and there are no strong variations in lighting around you you should get a decent reading without having to concentrate on feeling the blood flow and counting the heart beats.


Apart from the convenience, I believe the real advantage of these apps is the tracking and history of your bpm.

If you want to use these apps before and after exercising they will be enough. Based on my tests, the accuracy seems very good (better than I believed) if you make sure to place your finger properly, covering the camera without pressing hard as not to stop the blood flow (again this is important).

I think I will trust the iPhone from now on ;)

How To

To properly monitor your heart rate with the iPhone you must:

  • avoid testing in a place where there are high light variations
  • cover the camera and the flashlight with your finger
  • keep your finger from moving around (to avoid making the camera refocus)
  • press only very lightly to properly cover the camera (if you press too hard you will reduce the blood flow and it will be impossible to read the pulse)

As a side note. If you want a really good way of keeping track of your bpm and blood pressure this product works great on the iPhone/iPad.

  • Good roundup of usage advice to get a good reading.
    – Vlad
    Mar 22, 2012 at 21:26
  • 2
    Your experiment is flawed and the only thing you've shown is reliability (that the app works across a number of devices). But you haven't shown actual validity (that the app is actually getting an accurate reading of your heart rate).
    – user10355
    Mar 22, 2012 at 22:50
  • 2
    @cksum comparing the reading of the iPhone to my own reading done "by hand" gives me good results. I got 69 and 70 BPM on the iPhone vs approximatively 72 BPM by hand. it seems all right, and seeing that the readings are consistent across devices I feel confident they are not off by too much.
    – Coyote
    Mar 22, 2012 at 23:19
  • @cksum: I tried a test similar to the one you describe. See my answer here.
    – Senseful
    Mar 26, 2012 at 7:35

I have just tried an app claiming to do this and compared it to my Garmin HRM and a manual test and the figures shown on the app are in line with the other tests.

As for inanimate having a heart beat what I believe the app does is increase its sensitivity looking for a regular pulse(change in the image). Once the sensitivity goes high enough it appears to pick up background vibrations causing tiny movements in relation to the object being measured. The changes in the finger are much larger and will therefore be picked up more readily and background vibration becomes insignificant. Therefore I conclude that the claim that it is inaccurate because inanimate objects have a pulse is irrelevant.

For a quick check of heart rate such as for resting heart rate in the mornings then these apps seem good enough


In some senses, the accuracy might be no better than if they had you tap out the pulses with one finger and using your other hand to palpate an easy to find artery like your carotid artery. Also note, for exercise, new low energy bluetooth 4.0 accessories are far superior hardware for detecting and reporting heart rate as well as blood pressure.

There are several technologies for measuring cardiac activity:

  • pulse detection - measures the periods of maximal flow rate from the left ventricle output.
  • blood pressure - measures the volume/flow of fluid in your arteries due to the pumping action of the left ventricle.
  • two lead pulse detection - measures electrical changes at the surface of the skin on the chest
  • 12 lead ECG/EKG - determines actual heard muscle activity in different chambers of the heart by comparing the timing and amplitude of electrical signals from the surface of the skin from multiple measurement sites carefully positioned around your torso.

With the right filtering of the camera input, The motion of your finger (side to side as well as pressing harder or less hard) is pretty easily distinguishable by the camera when all the algorithm needs to do is tell when fresh blood is washing into your fingertips. By the time the blood gets to the extremity - the pulse is less strong so this is one of the worst areas to try to detect pulses (but it's very convenient and the skin is fairly translucent to the LED flash and oxygenated blood does reflect the light so it does work fairly well in some body types).

I like the wahoo fitness blue heart rate belt and especially the Mio Link wrist band, so the market for hardware custom designed for this should overtake any software that runs on iOS directly and uses the camera for measurement. For a quick read on your pulse, these camera apps should be decent enough to get that job done. Apple watch also is a nice alternative to using your iPhone camera to record pulse data.

  • 1
    I only use them for informative purposes and I like the convenience of not having to carry specific equipment or do the reading manually. It's also a great demonstration of technology progress in areas you would least expect. Provided they are accurate enough.
    – Vlad
    Mar 22, 2012 at 21:26
  • They are amazing "flying car" things when they work, and in my experience, once it works for a certain person, they work for that person reliably. It is truly cool that they can use the camera in that manner.
    – bmike
    Mar 22, 2012 at 23:45

Unless for some reason you are not able to count the pulse beats, these apps are never more precise than standard manual check.

The way they work is when you put you finger on the led light and the camera they monitor colour changes of your skin. Your skin colour changes rhythmically as the blood is pumped through veins. This could be a fairly accurate method, but requires very strict behaviour of the person who is being checked. Any move of an arm, hand, or a finger can, and most likely will skew the result.

I believe both apps say, the results provided are not definitive and cannot be used as a source for medical diagnosis.

So, to sum up - they're almost never as accurate as the standard manual check.

  • The apps employ some sort of autocalibration and have a settle time before they give out a reading. Sometimes they report they were unable to get a consistent reading, if you don't use them correctly.
    – Vlad
    Mar 22, 2012 at 21:24

I have downloaded several apps to calculate my pulse I have a very high one anyways but they all came out the same except one said they could not calculate cause it is to high 99bmp

  • So how does this answer the question?
    – Ruskes
    Sep 18, 2014 at 4:49
  • @Buscar웃 As far as I understand the question is ...are these apps more precise than I can be or is it the other way around? So to me this answer is just fine.
    – Vladimir
    Dec 11, 2014 at 21:40

There is no way any built in camera in mobile devices has the accuracy to detect the kind of changes these applications claims to use to detect pulse from your skin. I don´t need to hear all of you claiming it´s +-2, 3 or 5 bpm precise, to put it simply: cameras aren´t that evolved, it´s a hardware limitation!

You can check it just by pointing the camera to any inanimate object to see what the app says it´s heart beat is...

Of course it´s not magic, this app is just playing dices in the inside while painting funny stuff on screen.

  • This is provably incorrect. A trivial algorithm is used to leverage the CCD hardware filters that selectively detect different wavelengths of visible light can detect the flush of red oxygenated blood as it fills the capillary beds. Ridiculously crude cameras like the one in the original iPhone are more than powerful enough to measure pulse in a healthy human with wide skin pigmentation variances. It's not at all about resolution as it is about measuring time differences in the camera data.
    – bmike
    Sep 29, 2015 at 15:44

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .