Preview build — page text is a draft awaiting human review. Code badges come from real compiles. The flasher is real but not yet hardware-tested; the Playground is still a preview.

MAX30102 pulse oximeter module

MAX30102 module pinout, address 0x57, the 1.8 V pull-up problem on cheap purple boards, finger placement, and why it is not a medical device.

I2C

Community draft — report a mistake

CategorySensor
InterfaceI2C
Voltage3.3–5 V (module regulators)
Typical price₹200

3.3 V or 5 V? Many purple modules pull SDA/SCL up to 1.8 V. That usually still reads on 3.3 V boards, but some don't — if the scanner can't find 0x57, use a module whose pull-ups go to 3.3 V.

The MAX30102 shines red and infrared LEDs into your fingertip and measures the reflected light. The pulsing signal gives heart rate, and the ratio between red and IR gives an estimate of blood oxygen (SpO₂).

It’s a favourite student exhibition project, paired with an OLED.

Not a medical device. Readings from a DIY sensor are for learning only. Never use them to make health decisions — use a certified pulse oximeter.

Prices are indicative (Oct 2026) and vary by seller.

Pinout

PinWhat it does
VIN3.3–5 V supply
SDAI2C data
SCLI2C clock
INTInterrupt output (active LOW)
IRDIR LED driver pin — leave unconnected
RDRed LED driver pin — leave unconnected
GNDGround

I2C address:0x57

Library

SparkFun MAX3010x Pulse and Proximity Sensor Library by SparkFun Electronics
Arduino IDE → Library Manager → search the name above. Each guide lists the exact version we compile against.

Use it with

Common errors

Values jump wildly

Press the finger lightly and keep it still — pressure stops blood flow. Shield it from room light.

Scanner finds nothing at 0x57

The 1.8 V pull-up issue: try another module, or on purple boards fix the pull-ups to 3.3 V as described by the seller.

Heart rate takes 10+ seconds to settle

The algorithm needs several seconds of clean samples. Average over a few beats before showing a number.

↑↓ to move · Enter to open