The BME680 is the BME280 with one more sense added: temperature, humidity, and barometric pressure, plus a gas sensor that responds to volatile organic compounds. That gas reading gives a rough air-quality index, four environmental readings from one small Bosch part over I²C. The catch worth knowing up front: the “CO₂” some libraries report from it is an estimate, not a real CO₂ measurement.
What it is.
Everything the BME280 does, the BME680 does too: temperature (about ±1 °C), humidity (±3 %), and barometric pressure. On top, it has a small heated plate whose electrical resistance changes when volatile organic compounds, cooking, cleaning products, off-gassing, are in the air. Bosch’s software (the BSEC library) turns that into an air-quality index. So it is a tidy all-in-one environment sensor for a room, with a bonus “is the air getting stale” signal.
The gas reading.
Be clear-eyed about what the gas channel is. It measures a relative mix of volatile compounds, not a specific gas, and it needs a burn-in and ongoing baseline to mean much. Some libraries convert it into an “eCO₂” or “equivalent CO₂” number, and that is not real carbon dioxide: it is the same VOC-based estimate the cheap eCO₂ sensors make, and it is meaningless for CO₂ enrichment or safety in a room full of plants. For an actual CO₂ reading you need an NDIR sensor like the SCD40 or MH-Z19. Treat the BME680 gas channel as an air-freshness trend, nothing more.
Key facts.
How to wire it.
Like the BME280, four wires over I²C: VCC, GND, SDA, SCL to your microcontroller, at address 0x76 or 0x77. In ESPHome the basic BME680 component reports temperature, humidity, pressure, and raw gas resistance; a separate BSEC variant computes the air-quality index but has its own licensing terms. The gas plate wants a burn-in period before its readings settle.
Where it fits, and where it doesn’t.
Where it fits
- An all-in-one room sensor: climate plus a freshness trend.
- Weather and environment, like the BME280, with more.
- A general “is the air stale” signal for ventilation.
- I²C builds wanting four readings from one part.
Where it doesn’t
Resources & where to buy.
ESPHome: BME680 Bosch BME680 Where to buy CO₂ & air overview
Frequently asked questions.
What is the difference between the BME680 and the BME280?
The BME680 measures everything the BME280 does (temperature, humidity, pressure) and adds a gas sensor that responds to volatile organic compounds, giving a rough air-quality index. The BME280 has no gas channel. Both use I2C or SPI.
Does the BME680 measure CO2?
No, not really. It has no CO2 sensor. Some libraries report an estimated eCO2 derived from its gas (VOC) reading, but that is not real carbon dioxide and is meaningless for enrichment or safety in a room full of plants. For real CO2 use an NDIR sensor like the SCD40 or MH-Z19.
Is the BME680 gas reading accurate?
It is a relative indicator, not an absolute measurement. The gas plate responds to a mix of volatile compounds and needs a burn-in period and an ongoing baseline to be useful. Treat it as an air-freshness trend for ventilation, not a precise figure.
Can I use the BME680 with ESPHome?
Yes. ESPHome basic BME680 component reports temperature, humidity, pressure, and raw gas resistance over I2C. A separate BSEC variant computes the air-quality index but carries its own licensing terms.