Table of Contents

LamaPLC: MAX30100/MAX30102 Heart Rate Click Sensor Module

MAX30100/MAX30102 Heart Rate Click Sensor Module The MAX30102 and MAX30100 are integrated pulse oximetry and heart-rate monitor sensor modules commonly used in wearable health devices. While both use red and infrared LEDs to measure blood oxygen (SpO2) and heart rate (BPM), the MAX30102 is the upgraded version with significant technical improvements.

Key Differences

MAX30100MAX30102
FeatureMAX30100MAX30102 (Upgrade)
FIFO Buffer16-deep (smaller storage)32-deep (stores more data)
ADC Resolution14-bit18-bit (higher sensitivity)
Voltage1.8V and 3.3V1.8V (logic) & 3.3V–5.0V (LEDs)
Temperature SensorNo internal temperature sensorIncludes on-chip temperature sensor (±1°C accuracy)
Motion RejectionBasicImproved ambient light and motion rejection
InterfacingBoth use the I²C protocol (SDA/SCL)
The default 7-bit I²C slave address for both sensors is 0x57. This corresponds to an 8-bit write address of 0xAE and an 8-bit read address of 0xAF
AccuracyCalibrated tests show roughly 95.8% to 97% accuracy for heart rate monitoring

If you'd like to support the development of the site with the price of a coffee — or a few — please do so here.

Here's a handy tip: you can quickly save this page as a PDF by clicking “export to PDF” in the menu on the right side of the screen.

2026/02/14 22:38

Working of the MAX30100 Oximeter

The sensor consists of a pair of light-emitting diodes, one emitting monochromatic red light at 660 nm and the other emitting infrared light at 940 nm. These wavelengths are chosen because at these wavelengths, oxygenated and deoxygenated hemoglobin have very different absorption properties. As shown in the graph below, there is a clear difference between HbO2 (oxygenated Hb) and Hb (deoxygenated Hb) when subjected to these specific wavelengths.

Working of the MAX30100 Oximeter

Pinout

Both modules share the same pin layout for common use cases.

Important Pin Notes

Arduino code

For the MAX30102, the most robust library is the SparkFun MAX3010x Pulse and Proximity Sensor Library.

#include <Wire.h>
#include "MAX30105.h" // Works for MAX30102
 
MAX30105 particleSensor;
 
void setup() {
  Serial.begin(115200);
  if (!particleSensor.begin(Wire, I2C_SPEED_FAST)) { // 400kHz speed
    Serial.println("MAX30102 was not found. Check wiring/power.");
    while (1);
  }
  particleSensor.setup(); // Configure with default settings
}
 
void loop() {
  // Get raw infrared and red light data
  Serial.print(" IR: "); Serial.print(particleSensor.getIR());
  Serial.print(" Red: "); Serial.println(particleSensor.getRed());
}

This page has been accessed for: Today: 2, Until now: 50