Skip to content
Intermediate 3 hours

Arduino Pulse Oximeter and Heart Rate Monitor

By Amit1379
• July 13, 2026

The MAX30102 uses red and infrared LEDs to shine light through your fingertip and measure how much is absorbed by oxygenated vs deoxygenated haemoglobin — calculating both pulse rate and blood oxygen saturation (SpO2). This project pairs it with an OLED display for real-time readout. Note: for clinical use always use a certified medical device; this is for educational purposes.

What You’ll Need

  • Arduino Nano or Uno
  • MAX30102 pulse oximeter sensor module
  • SSD1306 0.96″ OLED (I2C)
  • Breadboard and jumper wires
  • USB power

Step-by-Step Instructions

  1. Install library: Search for “MAX30105” by SparkFun in Library Manager. Install it along with “Adafruit SSD1306” and “Adafruit GFX”.
  2. Wire MAX30102: VIN → 3.3 V, GND → GND, SDA → A4, SCL → A5. The module also has INT pin — leave unconnected for now.
  3. Wire OLED: Share the same I2C bus (A4/A5), VCC → 3.3 V or 5 V.
  4. Use SparkFun example: Open File → Examples → SparkFun MAX3010x → Example6_SpO2. This example reads both HR and SpO2 using the built-in algorithm. Modify it to display results on the OLED instead of Serial.
  5. Display layout: OLED top half: large BPM number. Bottom half: SpO2 percentage. Add a small scrolling pulse waveform using raw IR values if space allows.
  6. Test: Place fingertip firmly (not pressing hard) over the sensor. Allow 5–10 seconds for reading to stabilise. Normal HR: 60–100 BPM. Normal SpO2: 95–100%.

Safety Notes

  • This project is for educational purposes only — do not use it to make medical decisions.
  • Keep fingers dry and still for accurate readings — movement causes motion artefacts.

Tips & Troubleshooting

  • If readings show 0 BPM, ensure your finger covers both LEDs fully and the sensor window faces upward into your fingertip.
  • Ambient light can interfere — shade the sensor and fingertip from bright light when taking readings.
  • The MAX30102 runs hot during extended use — it’s normal and not harmful at these power levels.

Leave a Comment

Your email address will not be published. Required fields are marked *