Overview

The SPS30 is an industrial-grade optical particulate matter (PM) sensor manufactured by Sensirion. Engineered for HVAC systems, air purifiers, and professional environmental monitoring stations, it measures mass concentration (μg/m3\mu\text{g/m}^3) and number concentration (particles/cm3\text{particles/cm}^3) across four distinct size bins: PM1.0, PM2.5, PM4.0, and PM10.0.

Featuring Sensirion's patented contamination-resistant technology and an automatic fan self-cleaning routine (which spins the fan at maximum speed periodically to blow out accumulated dust), the SPS30 achieves an operational lifetime exceeding 10 years. It supports both I2CI^2C (0x69) and TTL UART (115,200 bps) interface modes.

Quick reference

Operating voltage (VDD)4.5 V to 5.5 V DC (5.0 V nominal)
InterfacesI2CI^2C (Default address 0x69) & TTL UART (115,200 bps)
Mass Concentration binsPM1.0, PM2.5, PM4.0, PM10.0 (0 to 1000 μg/m30\text{ to }1000\ \mu\text{g/m}^3)
Number Concentration binsPM0.5, PM1.0, PM2.5, PM4.0, PM10.0 (particles/cm3\text{particles/cm}^3)
Mass Accuracy (PM2.5)±10 μg/m3\pm 10\ \mu\text{g/m}^3 (0100 μg/m30\dots 100\ \mu\text{g/m}^3) / ±10%\pm 10\% (1001000 μg/m3100\dots 1000\ \mu\text{g/m}^3)
Particle Size LimitMinimum detectable particle size 0.3 μm0.3\ \mu\text{m}
Lifetime>10 years>10\text{ years} continuous 24/7 operation
Self-CleaningAutomatic programmable fan cleaning cycle (default once every 7 days)
Operating current55 mA55\text{ mA} measurement active / 50 μA50\ \mu\text{A} sleep

Pinout (5-Pin JST-ZH 1.5mm Pitch Connector)

text
        ┌─────────────────────────┐
        │  [Sensirion SPS30 Module]│
        └─┬───┬───┬───┬───────────┘
          1   2   3   4   5
         VDD RX  TX  SEL GND
PinNameTypeDescription
1VDDPowerSupply power input (+4.5 V to +5.5 V DC)
2SDA / RXDigital Input / OutputI2CI^2C Serial Data / UART Receive
3SCL / TXDigital Input / OutputI2CI^2C Serial Clock / UART Transmit
4SELDigital InputInterface Select pin (GND = I2CI^2C mode, Floating/High = UART mode)
5GNDPowerGround reference (0 V)

Specifications

ParameterSymbolMinTypMaxUnitConditions
Supply VoltageVDDV_{DD}4.55.05.5VDC
Supply Current (Active)IactiveI_{active}5580mAFan & laser active
Supply Current (Sleep)IsleepI_{sleep}50µASleep mode
Mass Concentration RangeRangePMRange_{PM}01000µg/m³PM1.0, PM2.5, PM4, PM10
Lower Particle LimitSizeminSize_{min}0.3µmLaser scattering threshold
Fan Cleaning Durationtcleant_{clean}10sMax speed fan blow-out
Operating TemperatureToprT_{opr}-1060°CAmbient air

I2CI^2C vs UART Interface Selection

  • I2CI^2C Mode (0x69): Connect Pin 4 (SEL) to GND. Use I2CI^2C Clock on Pin 3 (SCL) and I2CI^2C Data on Pin 2 (SDA).
  • UART Mode (115,200 bps): Leave Pin 4 (SEL) unconnected (Floating). Connect Pin 3 (TX) to MCU RX, and Pin 2 (RX) to MCU TX.

Wiring (I2CI^2C Mode)

SPS30 PinArduino / MCUESP32Notes
1 (VDD)5V5VRequires 5.0V supply
2 (SDA)A4GPIO 21I2CI^2C Data
3 (SCL)A5GPIO 22I2CI^2C Clock
4 (SEL)GNDGNDTie to GND for I2CI^2C mode
5 (GND)GNDGNDSystem ground

Example (ESPHome Configuration)

yaml
sps30:
  id: sps30_sensor
  i2c_id: i2c_bus
  address: 0x69
  auto_cleaning_interval: 86400s # Clean fan once every 24 hours

sensor:
  - platform: sps30
    pm_1_0:
      name: "SPS30 PM1.0"
    pm_2_5:
      name: "SPS30 PM2.5"
    pm_4_0:
      name: "SPS30 PM4.0"
    pm_10_0:
      name: "SPS30 PM10.0"

Common mistakes

  • Leaving SEL floating in I2CI^2C mode: Pin 4 (SEL) must be pulled Low to GND at boot time to select I2CI^2C mode; floating SEL defaults the module to UART mode.
  • Powering with 3.3V: The SPS30 laser diode and internal fan require a regulated 5.0V5.0\text{V} supply. Supplying 3.3V causes communication failures.

Notes

  • SPS30 vs PMS5003 vs SDS011: SPS30 provides 4 PM mass binnings (adds PM4.0), includes hardware fan self-cleaning for a 10-year lifespan, and supports both I2CI^2C and UART natively.

Assets & downloads