Overview

The BME680 is an advanced 4-in-1 digital environmental sensor manufactured by Bosch Sensortec. It integrates a metal-oxide (MOX) gas sensor for Volatile Organic Compound (VOC) air quality monitoring alongside high-precision relative humidity, barometric pressure, and ambient temperature sensors.

Designed for smart home air quality monitoring (ESPHome BSEC integration, Home Assistant), HVAC systems, and wearable devices, the gas sensor detects airborne VOCs (paints, lacquers, cleaning supplies, tobacco smoke), breath VOCs, and hydrogen sulfide.

Quick reference

Module VCC3.3 V to 5.0 V DC (onboard 3.3V LDO)
Chip VDD / VDDIO1.71 V to 3.6 V DC
Gas sensorMOX gas sensor detecting Volatile Organic Compounds (VOCs)
Indoor Air Quality (IAQ)0 to 500 IAQ index (via Bosch BSEC software library)
Temperature range40C-40^\circ\text{C} to +85C+85^\circ\text{C} (±0.5 C\pm 0.5\text{ }^\circ\text{C} accuracy)
Humidity range0% to 100% RH (±3.0% RH\pm 3.0\%\text{ RH} accuracy)
Pressure range300 hPa to 1100 hPa (±0.6 hPa\pm 0.6\text{ hPa} absolute accuracy)
Communication interfacesI2C (address 0x77 or 0x76), 3-wire / 4-wire SPI

Pinout

Standard 6-Pin Breakout Module Header

PinNameTypeDescription
1VCCPowerSupply voltage (+3.3 V to +5.0 V DC)
2GNDPowerGround (0 V)
3SCL / SCKDigital InputI2C Serial Clock / SPI Clock pin
4SDA / SDIDigital I/OI2C Serial Data / SPI Serial Data Input
5CSB / CSDigital InputChip Select (HIGH = I2C mode, LOW = SPI mode)
6SDO / ADRDigital I/OI2C Address select (HIGH = 0x77, LOW = 0x76)

Specifications

ParameterSymbolMinTypMaxUnitConditions
Supply Voltage (Chip)VDDV_{DD}1.711.83.6VDC
Gas Sensor Heater PowerPgasP_{gas}1218mWTarget heater temperature 300C300^\circ\text{C}
Response Time (pp)tpt_{p}0.92sPressure measurement
Response Time (hh)tht_{h}2.0sHumidity measurement
Response Time (gg)tgt_{g}<1.0< 1.0sGas measurement
I2C Clock FrequencyfSCLf_{SCL}03400kHzHigh-Speed Mode

MOX Gas Sensor Operation & Bosch BSEC

The BME680 gas sensor operates by heating an internal hot plate to temperatures between 200C200^\circ\text{C} and 400C400^\circ\text{C} and measuring the resistance change of the metal-oxide sensing layer (RgasR_{gas} in Ω\Omega).

  • Raw RgasR_{gas} Value: RgasR_{gas} resistance increases in clean air and decreases in the presence of reducing VOC gases.
  • Bosch BSEC Software Library: Raw RgasR_{gas} values fluctuate with temperature and humidity. Bosch provides the closed-source BSEC (Bosch Software Environmental Cluster) binary library to combine temperature, humidity, pressure, and gas resistance into a calibrated Indoor Air Quality (IAQ) index (0 = Excellent, 500 = Extremely Polluted).

Wiring

BME680 Breakout PinMicrocontroller (Arduino Uno / ESP32)
VCC3.3V (or 5V)
GNDGND
SCLSCL (A5 on Uno, GPIO22 on ESP32)
SDASDA (A4 on Uno, GPIO21 on ESP32)

Common mistakes

  • Expecting raw RgasR_{gas} to equal IAQ directly: Raw RgasR_{gas} resistance varies significantly with relative humidity and temperature. Calculating true IAQ requires temperature/humidity compensation via the Bosch BSEC algorithm.
  • Self-heating shift in temperature readings: Operating the MOX gas heater generates internal heat inside the tiny 3×3 mm3\times 3\text{ mm} package. Temperature readings will read 1 to 2 C1\text{ to }2\text{ }^\circ\text{C} higher than ambient room temperature. Apply a temperature offset correction in software.
  • Skipping initial gas heater burn-in: New BME680 sensors require a 48-hour continuous initial burn-in period to stabilize the MOX gas element.

Notes

  • BME680 vs BME280: The BME680 adds the MOX gas sensor to the temperature/humidity/pressure feature set of the BME280.

Assets & downloads