

The MAX30102 is a pulse oximeter and heart-rate sensor module designed for non-invasive health monitoring applications. It utilizes photoplethysmography (PPG) technology to measure blood oxygen saturation (SpO2) and heart rate. The module integrates red and infrared LEDs, a photodetector, optical elements, and low-noise electronics in a compact package, making it ideal for wearable devices, fitness trackers, and medical monitoring systems.








| Parameter | Value |
|---|---|
| Supply Voltage | 1.8V (core) and 3.3V (LED driver) |
| Operating Current | 600 µA (typical) |
| Standby Current | 0.7 µA |
| Measurement Method | Photoplethysmography (PPG) |
| LED Wavelengths | Red: 660 nm, Infrared: 880 nm |
| Communication Interface | I2C |
| Operating Temperature Range | -40°C to +85°C |
| Dimensions | 5.6 mm x 3.3 mm x 1.55 mm |
The MAX30102 module typically comes with the following pinout:
| Pin Name | Pin Number | Description |
|---|---|---|
| VIN | 1 | Power supply input (3.3V recommended) |
| GND | 2 | Ground |
| SDA | 3 | I2C data line |
| SCL | 4 | I2C clock line |
| INT | 5 | Interrupt output (active low) |
Below is an example of how to interface the MAX30102 with an Arduino UNO using the Adafruit MAX30102 library:
#include <Wire.h>
#include "Adafruit_MAX30102.h"
// Create an instance of the MAX30102 sensor
Adafruit_MAX30102 max30102;
void setup() {
Serial.begin(9600); // Initialize serial communication
while (!Serial); // Wait for the serial monitor to open
// Initialize the I2C communication
if (!max30102.begin()) {
Serial.println("MAX30102 not detected. Check connections.");
while (1); // Halt execution if the sensor is not found
}
Serial.println("MAX30102 initialized successfully.");
}
void loop() {
// Variables to store sensor readings
int redValue, irValue;
// Read data from the sensor
if (max30102.check() == true) {
redValue = max30102.getRed(); // Get red LED value
irValue = max30102.getIR(); // Get infrared LED value
// Print the readings to the serial monitor
Serial.print("Red: ");
Serial.print(redValue);
Serial.print(" | IR: ");
Serial.println(irValue);
} else {
Serial.println("No data available.");
}
delay(100); // Delay for stability
}
Sensor Not Detected:
Inaccurate Readings:
No Data Available:
Q: Can the MAX30102 be powered with 5V?
A: No, the MAX30102 requires a 3.3V power supply. Using 5V can damage the module.
Q: What is the maximum I2C clock speed supported?
A: The MAX30102 supports I2C clock speeds up to 400 kHz.
Q: Can the MAX30102 measure SpO2 and heart rate simultaneously?
A: Yes, the MAX30102 can measure both parameters simultaneously using its red and infrared LEDs.
Q: How do I improve measurement accuracy?
A: Ensure proper sensor placement, minimize ambient light interference, and use a stable power supply.
This concludes the documentation for the MAX30102. For further assistance, refer to the official datasheet or community forums.