Main Content

ATtiny85 Pulse Oximeter and Photoplethysmograph

Displays your pulse rate, blood oxygen level and a moving graph of each heart beat, the photoplethysmogram (PPG).

This project implemented on an ATtiny85 displays a moving Photoplethysmogram together with pulse rate and estimates of SpO2 - blood oxygen percentage. It uses an SSD1306 128x32 OLED display and a MAX30102 sensor. It is emphasised that this should not be used for medical purposes. The computation of SpO2 is very approximate and not calibrated in any way. The project is an exercise in seeing how much functionality can be implemented using a processor with only 512 bytes of RAM. This means that samples from the MAX30102 sensor must be processed on the fly. Most of the existing Arduino programs read in a block of 100 or so samples and then process them.


I have put another version of the software in the Github repository sub-directory nanoPulsePPG that runs on a standard AVR Arduino - tested on a Nano but should also work on an Uno so that you can easily experiment with the software and sensor. See Schematics section.”

Link to article