BME680 Pinout (4-in-1 Digital Sensor)

The BME680 is a digital 4-in-1 environmental sensor by Bosch Sensortec that measures gas (VOCs), humidity, pressure, and temperature — all over a single I²C or SPI connection. It takes everything the BME280 measures and adds a metal oxide gas sensor on top, making it capable of detecting volatile organic compounds in the surrounding air and outputting an indoor air quality index when paired with Bosch’s BSEC software library.

It is designed for handsets, wearables, smart home devices, and any application where understanding air quality matters alongside standard environmental data.

What is BME680?

The BME680 is a digital 4-in-1 sensor with gas, humidity, pressure, and temperature measurement based on proven sensing principles, housed in an extremely compact 3.0 × 3.0 × 0.93mm metal-lid LGA package.

The BME680 is a metal oxide-based sensor that detects VOCs by adsorption and subsequent oxidation or reduction on its sensitive layer, reacting to most volatile organic compounds as well as many other gases polluting indoor air — one exception being CO2. In contrast to sensors selective for one specific component, the BME680 measures the sum of nearly all VOCs and contaminants in the surrounding air, enabling it to detect outgassing from paint, furniture and garbage, high VOC levels due to cooking, food consumption, exhaled breath, and sweating.

Note on IAQ output: IAQ parameters only apply when the BME680 is used together with the Bosch Software Environmental Cluster (BSEC) library, available separately. The raw output from the sensor is a gas resistance value, not an air quality index — BSEC handles the conversion.

BME680 overview

ParameterValue
Sensor TypeDigital Gas, Humidity, Pressure & Temperature Sensor
Operating Voltage (VDD)1.71V – 3.6V
Interface Voltage (VDDIO)1.2V – 3.6V
Current (humidity + temp @ 1Hz)2.1µA
Current (pressure + temp @ 1Hz)3.1µA
Current (all three @ 1Hz)3.7µA
Current (with gas sensor)0.09 – 12mA (depending on mode)
Sleep Current0.15µA
Temperature Range−40°C to +85°C
Humidity Range0% to 100% RH
Pressure Range300 to 1100 hPa
Gas DetectionVOCs, ethanol, CO, breath-VOC
Output TypeDigital
CommunicationI²C (up to 3.4MHz) / SPI (3 and 4-wire, up to 10MHz)
I²C Address0x76 (SDO → GND) or 0x77 (SDO → VDDIO)
Package8-pin LGA, 3.0 × 3.0 × 0.93mm
Compatible BoardsArduino Uno, ESP32, Raspberry Piy

Pinout

Bme680 pinout

The BME680 is commonly available as a 6-pin breakout module, making it easy to interface with microcontrollers such as Arduino, ESP32, and Raspberry Pi. The module supports both I²C and SPI communication protocols.

PinDescription
VINPower supply input (3.3V–5V)
GNDGround
SCLI²C Clock / SPI Clock
SDAI²C Data / SPI MOSI
SDOI²C Address Select / SPI MISO
CSSPI Chip Select

Note: When using the BME680 in I²C mode, the SDO pin determines the device address. Connecting SDO to GND sets the address to 0x76, while connecting it to VCC sets the address to 0x77. The CS pin is typically pulled high when operating in I²C mode.

Working principle

The BME680 operates in two low-level power modes: sleep mode and forced mode. No measurements are performed during sleep mode for minimal power consumption. In forced mode, temperature, pressure, humidity, and gas conversion are performed sequentially. The sensor automatically returns to sleep mode afterwards, with the gas sensor heater only operating during the gas sub-measurement. .

Gas measurement works differently from the other three parameters. As a raw signal, the BME680 outputs gas sensor resistance values — the higher the concentration of reducing VOCs, the lower the resistance. Since this raw signal is also influenced by humidity, the raw values are transformed into an Index for Air Quality (IAQ) by the BSEC software library.

The IAQ scale ranges from 0 (clean air) to 500 (heavily polluted air). During operation, the algorithms automatically calibrate and adapt themselves to the typical environments where the sensor is operated — home, workplace, inside a car, and so on. This automatic background calibration considers the recent measurement history of up to four days to ensure consistent IAQ performance.

The gas sensor requires a warm-up period. Running the sensor for 48 hours when first received is recommended to burn it in, and then 30 minutes in the desired mode every time the sensor is used, because the sensitivity levels change during early use and resistance rises slowly as the MOX warms to its baseline reading.

The temperature, humidity, and pressure channels work identically to the BME280 — oversampling, IIR filtering, and OTP calibration compensation all apply in the same way.

BME680 internal components

Inside the BME680 module

(Image source)

The BME680 breakout module adds a small set of supporting components around the sensor IC that handle power conditioning and interface configuration.

BME680 Sensor IC The metal-lid LGA chip at the centre of the board. At 3.0 × 3.0mm, it is slightly larger than the BME280 to accommodate the additional metal oxide gas sensing element alongside the existing pressure, humidity, and temperature circuitry. All four sensing elements, their ADCs, the heater control circuit for the gas sensor, OTP calibration memory, and the full I²C/SPI interface logic are contained within this single package.

Filter Capacitors Suppress voltage spikes and high-frequency noise on the VDD and VDDIO supply lines. This is especially important for the BME680 because the gas sensor heater draws up to 12mA during operation — a significant current spike relative to the microampere-level draws of the other sensors — which can induce supply noise that affects pressure and humidity readings if not properly decoupled.

Pull-up Resistors Hold the SDA and SCL lines at a high logic level when idle, as required by the I²C protocol. Included onboard so no external resistors are needed for standard I²C operation.

Pull-down Resistor Holds the SDO pin at GND by default, setting the I²C address to 0x76. Bridging SDO to VCC on one module shifts it to 0x77, allowing two BME680 modules to share the same I²C bus.

Specifications

The table below outlines the detailed specifications of the BME680 module.

ParameterValue
Supply Voltage (VDD)1.71V – 3.6V
Interface Voltage (VDDIO)1.2V – 3.6V
Current (hum + temp @ 1Hz)2.1µA
Current (pres + temp @ 1Hz)3.1µA
Current (hum + pres + temp @ 1Hz)3.7µA
Current (gas sensor active)0.09 – 12mA
Sleep Current0.15µA
Temperature Range−40°C to +85°C
Temperature Accuracy±1.0°C
Temperature Resolution0.01°C
Humidity Range0% to 100% RH
Humidity Accuracy±3% RH
Humidity Response Time (τ0-63%)~8 seconds
Humidity Hysteresis±1.5% RH
Pressure Range300 to 1100 hPa
Pressure Absolute Accuracy±1 hPa (0°C to 65°C)
Pressure RMS Noise0.12 Pa (equiv. 1.7cm altitude)
Pressure TCO±1.3 Pa/K (equiv. ±10.9cm/°C)
Gas Sensor Response Time (τ33-63%)<1 second (new sensors)
Gas Sensor-to-Sensor Deviation±15%
Gas Power (ultra-low power mode)<0.1mA
IAQ Scale0 (clean) to 500 (heavily polluted)
I²C SpeedUp to 3.4MHz
SPI SpeedUp to 10MHz
I²C Address0x76 or 0x77
Chip ID0x61
Package8-pin LGA
Dimensions3.0 × 3.0 × 0.93mm
Operating Temperature−40°C to +85°C
RoHSCompliant, halogen-free, MSL1

Helpful resource

Leave a Comment