MAX30102 SpO2 and Heart Rate Sensor
Overview
A sensor module capable of measuring blood oxygen saturation and heart rate. Uses I2C interface.

Specifications
- Power supply 3.3V to 5.5V
- Current draw ~600μA (during measurements)
- ~0.7μA (during standby mode)
- Red LED Wavelength 660nm
- IR LED Wavelength 880nm
- Temperature Range -40˚C to +85˚C
- Temperature Accuracy ±1˚C
Supported GPIO
- Raspberry Pi 0~4
- Raspberry Pi 5
- BeagleBone Black/Green
- Jetson Nano
- FT232H, FT2232H, FT4232H
- MCP2221
Commands
[GET_HR_SPO2]
Reads blood oxygen saturation and heart rate values.
Item | Type | Description |
---|---|---|
Blood Oxygen Saturation (%) | READ | Blood oxygen saturation percentage. |
SpO2 Valid | READ | Blood oxygen saturation is valid only when this value is true. |
Heart Rate (bpm) | READ | Heart rate in beats per minute (bpm). |
Heart Rate Valid | READ | Heart rate is valid only when this value is true. |
[GET_RAW_DATA]
Reads raw data values.
Item | Type | Description |
---|---|---|
Red LED Value | READ | Value measured from the Red LED. |
IR LED Value | READ | Value measured from the IR LED. |
[GET_PLOT_DATA]
Reads raw data for plotting heart rate graphs.
Item | Type | Description |
---|---|---|
IR LED Value | READ | Value measured from the IR LED. |
[READ_TEMP]
Reads the module temperature.
Item | Type | Description |
---|---|---|
Module Temperature (℃) | READ | Temperature of the module. |
Example
Objective
Display blood oxygen saturation and heart rate on dashboard widgets.
Parts
Part | Quantity |
---|---|
Raspberry Pi 4 * | 1 |
MAX30102 | 1 |
* Other hardware can also be used. Refer to Supported GPIO.
Wiring
Connect the following pins horizontally to each other.
MAX30102 | GPIO |
---|---|
VIN | 3.3V |
GND | GND |
SCL | 3 (I2C1 SCL) |
SDA | 2 (I2C1 SDA) |

Project Link