MAX30102 Pulse Oximeter & Heart Rate Sensor
Wearable-grade heart rate and blood oxygen sensing.
Wiring & code for
MAX30102 practical reference
The MAX30102 is an integrated pulse oximetry and heart-rate monitor module that combines red and infrared LEDs, a photodetector, and low-noise analog signal processing into a single package. It measures blood oxygen saturation (SpO2) and heart rate by shining light through the skin and detecting the tiny changes in reflected light caused by blood flow, making it the go-to sensor for wearable health trackers, pulse monitors, and fitness project builds.
Key specifications
- Sensor type: Integrated SpO2 and heart-rate module with red + IR LEDs and photodetector
- Operating voltage: 1.8V logic / 3.3V LED supply (breakout boards regulate from 3.3-5V input)
- Operating current: Configurable LED current, typically 5-10 mA average during active sampling
- ADC resolution: 18-bit internal ADC
- Measurement: Heart rate (BPM) and blood oxygen saturation (SpO2 %) via photoplethysmography
- Interface: I2C, up to 400 kHz (fast mode)
- Sample rate: Programmable, 50-3200 samples per second
- Additional feature: Onboard temperature sensor for optical readout calibration
Pinout and connection notes
The default I2C address is 0x57. Because the sensor is very sensitive to motion and ambient light, best results come from a firm, still fingertip placement (or a wrist strap design) shielded from direct sunlight, and most libraries need a short warm-up period before heart-rate/SpO2 values stabilize.
- VIN: Power, 3.3–5V DC depending on breakout regulator
- GND: Ground
- SCL: I2C clock line
- SDA: I2C data line
- INT: Interrupt output — signals when new sample data is ready, avoiding constant polling
- IRD / RD: Some breakouts expose raw IR/RED LED test points, not typically used in normal designs
Integration checklist
- Confirm the exact part number and breakout-board revision.
- Verify supply voltage, current demand, logic levels, and signal direction against the datasheet.
- Check controller pin assignments and bus address or interface mode against the example code.
- Power up with external loads disconnected, then test signals before full integration.
- If readings or communication fail, check power and ground first, then pin mapping, interface settings, and library initialization.
Troubleshooting and reproducibility
Record the board used, wiring, library/version, supply arrangement, and measured behavior. Use the selected board-specific wiring example as the source of truth. Never assume visually similar modules share identical voltage tolerance or pin order.