

MAX30100 Pulse Oximeter: Overview, Pinout, Features, Specs, Arduino Interface, and Applications


Catalog
What is the MAX30100 Pulse Oximeter?How Does the MAX30100 Work?MAX30100 Pinout DescriptionKey Features and SpecificationsAlternatives and Equivalent ModulesBenefits and DrawbacksApplications of MAX30100 Pulse OximeterConclusionFrequently Ask QuestionsRelated ArticlesThe MAX30100 is an integrated sensor module used for measuring blood oxygen saturation (SpO2) and heart rate, designed for use in wearable health monitoring systems. Originally invented by electrical engineer Takuo Aoyagi at Nihon Kohden in 1972, the technology behind pulse oximeters has since evolved with enhancements in signal processing and noise filtering. Today, devices like the MAX30100 are widely used in medical settings such as emergency rooms and hospitals.
This article covers the key details about the MAX30100 module including how it works, how to connect it with Arduino, and where it's commonly used.
What is the MAX30100 Pulse Oximeter?
The MAX30100 is a compact sensor that integrates both pulse oximetry and heart rate monitoring in one module. It includes:
- Two LEDs (red and infrared)
- A photodetector
- Optimized optics
- Low-noise analog signal processing
This allows it to detect both blood oxygen levels and pulse rate using a non-invasive optical method. The module operates with supply voltages between 1.8V and 3.3V, and remains efficient thanks to its low power consumption and standby mode capability.
How Does the MAX30100 Work?
The sensor uses photoplethysmography (PPG) to detect changes in light absorption through body tissue. Here's how it works:
- The red (660 nm) and infrared (940 nm) LEDs emit light.
- As the light passes through a finger, oxygenated blood absorbs different wavelengths.
- The photodetector receives the remaining light, and internal processing converts it into readable signals.
- The sensor communicates with a microcontroller using the I2C protocol.
MAX30100 Pinout Description
The module has 7 pins, and here's how each pin functions:
Pin | Name | Description |
---|---|---|
1 | VIN | Power input (3.3V or 5V) |
2 | SCL | I2C Clock (connect to microcontroller I2C SCL) |
3 | SDA | I2C Data (connect to microcontroller I2C SDA) |
4 | INT | Active-low interrupt output (triggered on pulse events) |
5 | IRD | IR LED cathode and driver control |
6 | RD | Red LED cathode and driver control (optional) |
7 | GND | Ground connection |
Key Features and Specifications
- Integrated heart rate and SpO2 sensor
- Operating voltage: 1.8V–3.3V
- Power supply: 3.3V–5.5V
- Typical current draw during operation: ~600μA
- Standby current: 0.7μA
- LED current: 0–50mA
- LED pulse width: 200μs to 1.6ms
- Red LED wavelength: 660nm
- IR LED wavelength: 880nm
- Temperature accuracy: ±1°C
- Operating temperature: -40°C to +85°C
- Integrated ambient light cancellation
- High signal-to-noise ratio and fast data output
Alternatives and Equivalent Modules
- Equivalent: MAX30102 sensor
- Alternatives: Pulse 3+, FSH 7060, ROHM BH1792GLC, ProtoCentral AFE4490
Interfacing MAX30100 with Arduino
You can easily connect the MAX30100 with an Arduino UNO to display live heart rate and SpO2 readings. Here’s what you’ll need:
MAX30100 Pulse Oximeter Interfacing with Arduino
Components:
- Arduino UNO
- MAX30100 Sensor Module
- 16×2 LCD
- 10K Potentiometer
- Breadboard & jumper wires
Wiring:
- MAX30100 VIN → Arduino 3.3V or 5V
- MAX30100 GND → Arduino GND
- MAX30100 SCL → Arduino A5
- MAX30100 SDA → Arduino A4
Arduino Code (Sample):
cppCopyEdit#include <Wire.h>
#include “MAX30100_PulseOximeter.h”
#define REPORTING_PERIOD_MS 1000
PulseOximeter pox;
uint32_t tsLastReport = 0;
void onBeatDetected() {
Serial.println("Beat!");
}
void setup() {
Serial.begin(115200);
Serial.print("Initializing pulse oximeter...");
if (!pox.begin()) {
Serial.println("FAILED");
for (;;);
} else {
Serial.println("SUCCESS");
}
pox.setIRLedCurrent(MAX30100_LED_CURR_7_6MA);
pox.setOnBeatDetectedCallback(onBeatDetected);
}
void loop() {
pox.update();
if (millis() - tsLastReport > REPORTING_PERIOD_MS) {
Serial.print("Heart rate: ");
Serial.print(pox.getHeartRate());
Serial.print(" bpm / SpO2: ");
Serial.print(pox.getSpO2());
Serial.println(" %");
tsLastReport = millis();
}
}
Once uploaded, you can open the Serial Monitor to view real-time readings. Initial values may be unstable but will stabilize after a few seconds.
Benefits and Drawbacks
Advantages:
- Compact and suitable for wearable devices
- Extremely low power usage
- High accuracy with ambient light cancellation
- On-chip temperature sensor
- Simple integration via I2C
- Customizable LED settings for power and accuracy tuning
Limitations:
- Misplacement of the finger can result in inaccurate data
- Motion artifacts can distort readings
- Skin tone, nail polish, or poor circulation may affect sensor performance
- Strong ambient lighting may interfere with measurements
- Low blood pressure or abnormal hemoglobin can result in unreliable readings
Applications of MAX30100 Pulse Oximeter
- Monitoring oxygen levels in patients with respiratory or cardiac conditions
- Real-time tracking of vital signs in clinical and home settings
- Integration into fitness trackers and wearable health monitors
- Bio-signal processing demonstrations in educational settings
- DIY electronics and student projects using Arduino
Conclusion
The MAX30100 is a powerful and efficient sensor solution for non-invasive health monitoring. Its compact size, low power use, and reliable readings make it ideal for wearable medical and fitness devices. Whether you're a developer, student, or healthcare designer, the MAX30100 offers a versatile tool for measuring SpO2 and heart rate.
Question for You:
Have you explored how the MAX30102 differs from the MAX30100? Let’s dive deeper into that next.
Frequently Ask Questions
What is the MAX30100 pulse oximeter and heart rate sensor?
The MAX30100 is an all-in-one optical sensor module designed for monitoring both blood oxygen levels (SpO2) and heart rate. It integrates two LEDs (red and infrared), a photodetector, finely tuned optical elements, and low-noise analog circuitry to accurately track biometric signals.
How accurate is the MAX30100 sensor?
Based on testing data, the MAX30100 offers a high degree of reliability, with heart rate accuracy around 97.11% and SpO2 (oxygen saturation) accuracy close to 98.84% under standard conditions.
What is considered a healthy pulse oximeter reading?
For a person in good health at sea level, normal oxygen saturation typically falls between 95% and 100%. Keep in mind that those living at higher altitudes may see slightly reduced readings due to lower atmospheric oxygen.
How does the MAX30100 differ from the MAX30102?
The MAX30102 is an upgraded version of the MAX30100. It offers enhanced performance and improved signal accuracy, particularly under motion or challenging conditions. Like the MAX30100, it measures both SpO2 and heart rate, but with better efficiency and signal clarity.
Can the MAX30100 be used to monitor blood pressure?
While the MAX30100 is primarily designed for heart rate and SpO2 measurement, some research-based projects explore using its signal output for estimating blood pressure and glucose levels non-invasively. However, these are not standard or clinically validated features.
What is a normal heart rate reading on a pulse oximeter?
For most adults, a resting heart rate between 50 and 90 beats per minute (bpm) is typical. Normal oxygen saturation usually stays between 96% and 99%. Individuals with chronic respiratory conditions may have lower oxygen levels even when stable — it’s best to consult your doctor for personalized guidance.
Which pulse oximeter is known for the best accuracy?
The Nonin Onyx Vantage 9590 is widely regarded as one of the most reliable pulse oximeters available. FDA-approved and frequently used in clinical environments, it’s trusted by healthcare professionals for its consistent performance.
Does the MAX30100 measure body temperature?
The MAX30100 module is primarily used for heart rate and SpO2 monitoring. Some versions of projects or integrations may include external temperature sensors, but temperature measurement is not a built-in feature of the MAX30100 chip itself.
How can I ensure my pulse oximeter gives accurate readings?
To get the best results:
- Stay still during measurement
- Wait until the numbers stabilize
- Record your readings consistently
- Make sure your hands are warm and clean The most accurate readings typically occur when your oxygen level is between 90% and 100%.
Related Articles
What is Limit Switch: Working and Its Applications
Power Transformers: Features, and Types (2025)
555 Timer IC: Construction and Specification
Subscribe to JMBom Electronics !