

The MAX30102 is a pulse oximeter and heart-rate sensor module designed for non-invasive health monitoring. It uses photoplethysmography (PPG) technology to measure blood oxygen saturation (SpO2) and heart rate. The module integrates an LED driver, photodetector, and ambient light rejection circuitry, ensuring accurate and reliable measurements even in challenging lighting conditions.








The MAX30102 is a compact and highly integrated sensor module. Below are its key technical details:
The MAX30102 module has the following pinout:
| Pin Name | Pin Number | Description |
|---|---|---|
| GND | 1 | Ground connection |
| VIN | 2 | Power supply input (3.3V) |
| SDA | 3 | I²C data line |
| SCL | 4 | I²C clock line |
| INT | 5 | Interrupt output (active low) |
| RD | 6 | Reset/disable pin (active low, optional) |
| NC | 7-14 | No connection (leave unconnected) |
The MAX30102 is straightforward to use in a circuit, especially with microcontrollers like the Arduino UNO. Below are the steps to integrate and use the sensor:
Below is an example Arduino sketch to read data from the MAX30102 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
Serial.println("Initializing MAX30102...");
// Initialize the MAX30102 sensor
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 red and IR values from the sensor
if (max30102.check() == true) {
redValue = max30102.getRed();
irValue = max30102.getIR();
// 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 from MAX30102.");
}
delay(100); // Delay to avoid overwhelming the serial monitor
}
Sensor Not Detected
Inaccurate Readings
No Data Output
Q: Can the MAX30102 be powered with 5V?
A: No, the MAX30102 operates at 3.3V. Using 5V may damage the sensor.
Q: What is the maximum distance between the sensor and the microcontroller?
A: The I²C bus typically supports distances up to 1 meter. For longer distances, consider using I²C bus extenders.
Q: Can the MAX30102 measure SpO2 and heart rate simultaneously?
A: Yes, the MAX30102 can measure both parameters simultaneously, as it uses separate red and infrared LEDs for SpO2 and heart rate detection.
Q: Is the MAX30102 suitable for continuous monitoring?
A: Yes, the MAX30102 is designed for continuous monitoring applications, but ensure proper thermal management to avoid overheating.
By following this documentation, you can effectively integrate and use the MAX30102 in your projects for accurate health monitoring.