Building a MicroPython heart rate monitor


Pulse sensors have become popular due to their use in health-monitors like the Fitbit. The sensors used are cheap, simple and pretty reliable at getting a reasonable indication of heart rate in daily use. They work by sensing the change in light absorption or reflection by blood as it pulses through your arteries — a technique jauntily named photoplethysmography (PPG). The rising and falling light signal can be used to identify the pulse, and subsequently calculate heart rate.

This is a companion discussion topic for the original entry at


Thanks for this awesome post. Just ordered all the materials. Can't wait to try this out with my son.


That's great, let me know you get on!


Thank you for the great post! Do you have experience in doing a 3 or 12-lead ecg? Is there a way to create such a thing with simple components like this? Again, amazing work, thank you!


Hey Noel glad you enjoyed it! I’m familiar with 12-lead ECG but I’ve not tried to implement a system to do it myself — but it’s a good idea, will look into it :slight_smile: If you get anywhere yourself let me know


For 12-lead you’d probably need to an filter/amplifier for the signal (sort of what’s built into the sensor here) one for each lead… definitely doable though.