TecnoMate logo

Heart Rate and SpO2 Monitor using MAX30100

Measuring human vital signs using electronics is a fascinating challenge. The Heart Rate and SpO2 monitor project utilizes the MAX30100 (or MAX30102) pulse oximetry sensor to detect your pulse and calculate blood oxygen saturation. This is an exceptional mini-project for students exploring medical electronics and biomedical engineering.

Why This Project Is Popular

Pulse oximeters became household items in recent years. Building one from scratch demystifies how they work. This project teaches students about optical sensing (photoplethysmography), I2C communication, and complex algorithms required to filter out noise from human movement to extract a clean heartbeat signal.

Project Ideas or Guide

Understanding the optical principles is key to this project:

  • How it works: The sensor shines two LEDs (Red and Infrared) through the skin of your finger. A photodetector measures how much light bounces back.
  • Heart Rate (BPM): As your heart pumps, blood volume in your capillaries changes, causing tiny fluctuations in the absorbed light. The Arduino counts these optical pulses over time to calculate Beats Per Minute.
  • Oxygen (SpO2): Oxygenated blood absorbs more Infrared light, while deoxygenated blood absorbs more Red light. By comparing the ratio of absorption between the two LEDs, the algorithm calculates the SpO2 percentage.
  • The Build: Connect the MAX30100 to the I2C pins of an Arduino or ESP32, run the signal processing library, and output the data to an OLED screen.

Recommended TecnoMate Kits

Dive into medical sensing with these specialized kits:

Components Used

To build your own pulse oximeter, you will need:

  • Arduino Nano or ESP32
  • MAX30100 or MAX30102 Pulse Oximeter Sensor Module
  • 0.96 inch I2C OLED Display
  • Jumper wires and Breadboard

FAQ

Q: My MAX30100 module isn't being detected by the I2C scanner. Why?

A: This is a notorious issue with cheap MAX30100 breakout boards. The onboard pull-up resistors for the SDA/SCL lines are incorrectly tied to a 1.8V regulator instead of the 3.3V line, making the logic levels too low for the Arduino to read. You usually need to cut the trace on the board and solder a wire to bypass the 1.8V regulator for the pull-ups to 3.3V.

Q: Why does the BPM jump around so much when I move my finger?

A: Optical heart rate sensors are extremely sensitive to motion artifacts. Even slight finger movements change the capillary blood pressure and optical path, disrupting the algorithm. You must hold your finger perfectly still against the sensor with gentle, consistent pressure.

Conclusion

The MAX30100 Heart Rate monitor is a rewarding project that bridges the gap between digital electronics and human biology. It requires careful coding and hardware debugging, making it an excellent learning experience. Order your biomedical sensors from TecnoMate today and start measuring the pulse of technology!


Ready to start building?

Explore our collection of DIY kits and components. All project components mentioned in this guide are available in our store.

Browse All Projects