- All products
- Sensors & Modules
- Heart + ECG
- Heart Rate MAX30102 PPG Oximeter Sensor I2C/UART (Gravity DFRobot) - SEN0518
- Heart + ECG
Features
- Based on the Maxim Integrated MAX30102 biometric sensor.
- Measures heart rate and blood oxygen saturation (SpO₂).
- Integrated MCU performs onboard biometric algorithm processing.
- Uses Photoplethysmography (PPG) optical sensing technology.
- Supports both I²C and UART communication interfaces.
- Compatible with Arduino, ESP32, Raspberry Pi, STM32, and similar platforms.
- Gravity interface enables quick plug-and-play connections.
- Built-in desktop software for real-time monitoring.
- Low power consumption suitable for battery-powered projects.
- Compact design for wearable and portable applications.
Principle of Operation
The MAX30102 combines red and infrared LEDs with a highly sensitive photodetector. As blood flows through the fingertip, it changes the amount of light absorbed by the blood vessels. These tiny variations are detected using Photoplethysmography (PPG).

The onboard microcontroller processes the raw optical data using built-in heart rate and blood oxygen algorithms before transmitting the calculated values over the I²C or UART interface. This greatly simplifies software development while improving measurement stability.
Applications
- Heart rate monitoring
- Blood oxygen (SpO₂) monitoring
- Wearable electronics
- Fitness tracking devices
- Health monitoring projects
- IoT healthcare systems
- Biomedical education
- Portable diagnostic prototypes
- Human presence detection
- Embedded biometric systems
Pinout

| Pin | Function |
|---|---|
| VCC | 3.3V–5V Power Supply |
| GND | Ground |
| SDA (D) / RX | I²C Data / UART Receive |
| SCL (C) / TX | I²C Clock / UART Transmit |
Wiring
The module can communicate using either the I²C interface (recommended) or UART.
Arduino UNO (I²C)

| Sensor Pin | Arduino UNO |
|---|---|
| VCC | 5V |
| GND | GND |
| SDA | A4 |
| SCL | A5 |
Raspberry Pi (I²C)

Library Required
- DFRobot MAX30102 Library
- Wire (I²C) Library Included in Arduino IDE
Simple Arduino Example
#include <Wire.h>
#include "DFRobot_BloodOxygen_S.h"
DFRobot_BloodOxygen_S_I2C sensor(&Wire);
void setup() {
Serial.begin(115200);
while(sensor.begin() != 0){
Serial.println("Sensor init failed");
delay(1000);
}
}
void loop() {
sensor.getHeartbeatSPO2();
Serial.print("Heart Rate: ");
Serial.print(sensor._sHeartbeatSPO2.Heartbeat);
Serial.print(" bpm SpO2: ");
Serial.print(sensor._sHeartbeatSPO2.SPO2);
Serial.println("%");
delay(1000);
}
Specifications
| Product Model | SEN0518 |
| Sensor IC | MAX30102 |
| Measurement Type | Heart Rate & Blood Oxygen (SpO₂) |
| Measurement Technology | Photoplethysmography (PPG) |
| Communication | I²C / UART |
| I²C Address | 0x57 |
| UART Baud Rate | 9600 bps |
| Operating Voltage | 3.3V / 5V |
| Current Consumption | <15mA |
| Operating Temperature | -40°C to +85°C |
| Dimensions | 25.5 × 32 mm |
| Interface | Gravity 4-Pin |
Resources
- DFRobot Product Wiki: https://wiki.dfrobot.com/Gravity_MAX30102_Heart_Rate_and_Oximeter_Sensor_SKU_SEN0518
- DFRobot MAX30102 Arduino Library: https://github.com/DFRobot/DFRobot_BloodOxygen_S
- MAX30102 Datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/MAX30102.pdf
- DFRobot Schematic: https://github.com/DFRobot/DFRobot_BloodOxygen_S/tree/master/hardware
- Arduino Wire Library: https://docs.arduino.cc/learn/communication/wire/
- Arduino IDE: https://www.arduino.cc/en/software
Features
- Based on the Maxim Integrated MAX30102 biometric sensor.
- Measures heart rate and blood oxygen saturation (SpO₂).
- Integrated MCU performs onboard biometric algorithm processing.
- Uses Photoplethysmography (PPG) optical sensing technology.
- Supports both I²C and UART communication interfaces.
- Compatible with Arduino, ESP32, Raspberry Pi, STM32, and similar platforms.
- Gravity interface enables quick plug-and-play connections.
- Built-in desktop software for real-time monitoring.
- Low power consumption suitable for battery-powered projects.
- Compact design for wearable and portable applications.
Principle of Operation
The MAX30102 combines red and infrared LEDs with a highly sensitive photodetector. As blood flows through the fingertip, it changes the amount of light absorbed by the blood vessels. These tiny variations are detected using Photoplethysmography (PPG).

The onboard microcontroller processes the raw optical data using built-in heart rate and blood oxygen algorithms before transmitting the calculated values over the I²C or UART interface. This greatly simplifies software development while improving measurement stability.
Applications
- Heart rate monitoring
- Blood oxygen (SpO₂) monitoring
- Wearable electronics
- Fitness tracking devices
- Health monitoring projects
- IoT healthcare systems
- Biomedical education
- Portable diagnostic prototypes
- Human presence detection
- Embedded biometric systems
Pinout

| Pin | Function |
|---|---|
| VCC | 3.3V–5V Power Supply |
| GND | Ground |
| SDA (D) / RX | I²C Data / UART Receive |
| SCL (C) / TX | I²C Clock / UART Transmit |
Wiring
The module can communicate using either the I²C interface (recommended) or UART.
Arduino UNO (I²C)

| Sensor Pin | Arduino UNO |
|---|---|
| VCC | 5V |
| GND | GND |
| SDA | A4 |
| SCL | A5 |
Raspberry Pi (I²C)

Library Required
- DFRobot MAX30102 Library
- Wire (I²C) Library Included in Arduino IDE
Simple Arduino Example
#include <Wire.h>
#include "DFRobot_BloodOxygen_S.h"
DFRobot_BloodOxygen_S_I2C sensor(&Wire);
void setup() {
Serial.begin(115200);
while(sensor.begin() != 0){
Serial.println("Sensor init failed");
delay(1000);
}
}
void loop() {
sensor.getHeartbeatSPO2();
Serial.print("Heart Rate: ");
Serial.print(sensor._sHeartbeatSPO2.Heartbeat);
Serial.print(" bpm SpO2: ");
Serial.print(sensor._sHeartbeatSPO2.SPO2);
Serial.println("%");
delay(1000);
}
Specifications
| Product Model | SEN0518 |
| Sensor IC | MAX30102 |
| Measurement Type | Heart Rate & Blood Oxygen (SpO₂) |
| Measurement Technology | Photoplethysmography (PPG) |
| Communication | I²C / UART |
| I²C Address | 0x57 |
| UART Baud Rate | 9600 bps |
| Operating Voltage | 3.3V / 5V |
| Current Consumption | <15mA |
| Operating Temperature | -40°C to +85°C |
| Dimensions | 25.5 × 32 mm |
| Interface | Gravity 4-Pin |
Resources
- DFRobot Product Wiki: https://wiki.dfrobot.com/Gravity_MAX30102_Heart_Rate_and_Oximeter_Sensor_SKU_SEN0518
- DFRobot MAX30102 Arduino Library: https://github.com/DFRobot/DFRobot_BloodOxygen_S
- MAX30102 Datasheet: https://www.analog.com/media/en/technical-documentation/data-sheets/MAX30102.pdf
- DFRobot Schematic: https://github.com/DFRobot/DFRobot_BloodOxygen_S/tree/master/hardware
- Arduino Wire Library: https://docs.arduino.cc/learn/communication/wire/
- Arduino IDE: https://www.arduino.cc/en/software

