π Introduction
Health monitoring devices are becoming more important in daily life, and the pulse oximeter is one of the most widely used. It measures:
- 
SpO₂ (Blood Oxygen Saturation)
 - 
Pulse Rate (Heart Beats per Minute)
 
In this project, we will build a pulse oximeter using Arduino Uno, MAX30100 sensor, and a 16x2 LED display.
The MAX30100 sensor is specially designed for pulse oximetry. It has two LEDs (red and infrared) and a photodetector to measure how much oxygen is in your blood and your heartbeat rate. However, many MAX30100 modules available online have PCB design errors that cause overheating, unstable readings, or no output. I faced this too — but after fixing the PCB issue, my sensor worked perfectly.
Let’s see how you can build it step by step.
π Components Required
To make this project, you need:
- 
Arduino Uno
 - 
MAX30100 Pulse Oximeter Sensor Module
 - 
16x2 LED Display (with I2C interface)
 - 
Jumper Wires
 - 
Breadboard (optional)
 - 
USB Cable for Arduino
 
⚙️ Working Principle
The MAX30100 sensor works on the principle of Photoplethysmography (PPG).
- 
The sensor has Red (660nm) and Infrared (940nm) LEDs.
 - 
These lights pass through your fingertip.
 - 
Oxygenated blood absorbs more infrared light, while deoxygenated blood absorbs more red light.
 - 
A photodiode detects the remaining transmitted/reflected light.
 - 
As your heart pumps blood, the light absorption changes with each beat.
 - 
The Arduino processes this data to calculate:
- 
Pulse Rate (BPM) → from periodic changes in IR absorption.
 - 
SpO₂ (%) → from the ratio of red to IR absorption.
 
 - 
 - 
The results are displayed on the 16x2 LED screen.
 
π§ How I Fixed the PCB Errorπ To fix it:
- 
Find the small resistor near SDA/SCL lines.
 - 
That resistor is connected wrongly to a transistor.
 - 
Cut the line (trace) going from the resistor to the transistor.
 - 
Then connect the resistor with a small wire to the last pin of the voltage regulator (3.3V output).
 - 
After this, the sensor will get the correct voltage and start working properly.
 
⚠️ In short: Cut wrong line → Join resistor to 3.3V regulator pin → Sensor fixed ✅
π Circuit Connections
MAX30100 → Arduino Uno
- 
VIN → 3.3V
 - 
GND → GND
 - 
SDA → A4
 - 
SCL → A5
 
16x2 LCD Display (I2C) → Arduino Uno
- 
VCC → 5V
 - 
GND → GND
 - 
SDA → A4
 - 
SCL → A5
 
(Both the sensor and display use the same I2C bus.)
π» Arduino Code
π Output
- 
The display shows Heart Rate (BPM) and SpO₂ (%).
 - 
Readings update in real-time.
 - 
The sensor works accurately once the PCB issue is fixed.
 
π Applications
This project can be used for:
- 
Personal health monitoring
 - 
DIY medical devices
 - 
Student electronics projects
 - 
IoT-based health systems
 
✅ Conclusion
In this project, we successfully built a pulse oximeter using Arduino Uno, MAX30100, and a 16x2 LED display.
The biggest challenge was the faulty PCB design in the MAX30100 module, but after fixing it, the sensor worked perfectly. This project is a great way to learn about biomedical sensors, I2C communication, and real-time data display.



No comments:
Post a Comment