Overview

The MAX30105 is a high-sensitivity optical sensor module manufactured by Maxim Integrated (Analog Devices). Optimized for particle sensing, smoke/fire alarm detection, and PPG biometric monitoring, it integrates three internal LEDs (Red 660 nm, Infrared 880 nm, Green 537 nm), a high-sensitivity photodetector, ambient light rejection optics, and a low-noise 18-bit Delta-Sigma ADC.

While similar to biometrics-only chips like the MAX30102, the MAX30105 includes a Green LED that provides superior sensitivity for measuring smoke particles, airborne dust, and high-resolution heart-rate/pulse-oximetry (SpO2SpO_2) readings over I2CI^2C (0x57).

Quick reference

Operating voltage (VCC)3.3 V to 5.0 V DC (breakout includes 1.8V & 5V LDO regulators)
IC supply voltage (VDD)1.7 V to 2.0 V DC (1.8 V nominal)
LED supply voltage (VLED)3.1 V to 5.25 V DC (5.0 V nominal)
InterfaceI2CI^2C (Fast Mode up to 400 kHz)
Fixed I2CI^2C address0x57
Integrated LEDs660 nm Red, 880 nm Infrared, 537 nm Green
ADC resolution18-bit (up to 262,144 counts per channel)
Programmable sample rate50 SPS to 3,200 SPS (Samples Per Second)
Internal FIFO buffer32-sample FIFO buffer

Pinout

Breakout module header & Qwiic / STEMMA QT connectors:

PinNameTypeDescription
1VINPowerSupply input (+3.3 V to +5.0 V DC)
2GNDPowerGround reference (0 V)
3SCLDigital InputI2CI^2C Serial Clock
4SDADigital Input / OutputI2CI^2C Serial Data
5INTDigital OutputActive-Low interrupt output (FIFO almost full / Data ready)

Specifications

ParameterSymbolMinTypMaxUnitConditions
Supply Voltage (Module)VVINV_{VIN}3.33.3 / 5.05.5VPower rail with LDO
Operating CurrentICCI_{CC}0.61.2mAContinuous sampling state
Shutdown CurrentIsdI_{sd}0.72.0µASoftware shutdown mode
LED Peak Wavelength (Red)λRed\lambda_{Red}650660670nmRed pulse LED
LED Peak Wavelength (IR)λIR\lambda_{IR}870880890nmIR pulse LED
LED Peak Wavelength (Green)λGreen\lambda_{Green}520537550nmGreen smoke/particle LED
LED Current RangeILEDI_{LED}0.050.0mAProgrammable 8-bit DAC (0.2 mA0.2\text{ mA} step)

Multi-LED Optical Particle Detection Logic

  • Airborne Particle / Smoke Detection: When dust or smoke enters the optical chamber, light emitted by the Red, IR, and Green LEDs scatters off particles onto the photodetector (Mie scattering).
  • Particle Size Discrimination: The short wavelength of the Green LED (537 nm537\text{ nm}) scatters strongly off fine smoke particles (1.0 μm\le 1.0\ \mu\text{m}), whereas IR (880 nm880\text{ nm}) scatters off larger dust grains (2.5 μm\ge 2.5\ \mu\text{m}). Comparing channel ratios allows distinguishing smoke from dust.

Wiring

MAX30105 PinArduino / MCUESP32Notes
VIN5V / 3.3V3.3VPower rail
GNDGNDGNDSystem ground
SCLA5GPIO 22I2CI^2C Clock
SDAA4GPIO 21I2CI^2C Data

Example (SparkFun MAX30105 Particle Sensor Library)

cpp
#include <Wire.h>
#include "MAX30105.h"

MAX30105 particleSensor;

void setup() {
  Serial.begin(115200);
  Wire.begin();

  Serial.println("SparkFun MAX30105 Particle Sensor Test");

  if (!particleSensor.begin(Wire, I2C_SPEED_FAST)) {
    Serial.println("MAX30105 not found! Check I2C wiring.");
    while (1);
  }

  // Setup sensor for particle sensing: 411us pulse width, 100 SPS, 400x ADC range
  byte ledBrightness = 0x1F; // Options: 0=Off to 255=50mA
  byte sampleAverage = 4; // Options: 1, 2, 4, 8, 16, 32
  byte ledMode = 3; // Options: 1 = Red only, 2 = Red + IR, 3 = Red + IR + Green
  int sampleRate = 100; // Options: 50, 100, 200, 400, 800, 1000, 1600, 3200
  int pulseWidth = 411; // Options: 69, 118, 215, 411
  int adcRange = 4096; // Options: 2048, 4096, 8192, 16384

  particleSensor.setup(ledBrightness, sampleAverage, ledMode, sampleRate, pulseWidth, adcRange);
  Serial.println("MAX30105 Particle Sensor Active.");
}

void loop() {
  uint32_t red = particleSensor.getRed();
  uint32_t ir = particleSensor.getIR();
  uint32_t green = particleSensor.getGreen();

  Serial.print("Red: "); Serial.print(red);
  Serial.print(" | IR: "); Serial.print(ir);
  Serial.print(" | Green: "); Serial.println(green);

  delay(200);
}

Common mistakes

  • Covering sensor glass with opaque enclosures: The optical window must remain un-obstructed or protected by high-transmittance clear glass (>90%>90\% light transmission across 500900 nm500\text{--}900\text{ nm}).
  • Overdriving LED currents: Operating all 3 LEDs at max current (50 mA50\text{ mA}) causes PCB thermal heating (+2C+4C+2^\circ\text{C}\dots +4^\circ\text{C}). Keep LED brightness values under 0x1F0x1F (6.4 mA6.4\text{ mA}) for continuous particle monitoring.

Notes

  • MAX30105 vs MAX30102 vs MAX30100: MAX30105 includes 3 LEDs (Red, IR, Green) for particle/smoke sensing; MAX30102 includes 2 LEDs (Red, IR) for pulse oximetry.

Assets & downloads