BME280 vs BME680 vs BME688: Which Is Best?

Choose the BME280 if you only need reliable temperature, humidity and barometric pressure — it is simple, extremely low power and still one of the best choices for ESP32 weather stations and battery sensors. Choose the BME688 for a new indoor-air-quality project because it adds a heated gas sensor, VOC/IAQ measurements and Bosch’s BSEC2/AI gas-processing features. The older BME680 sits between them, but Bosch now marks it “not recommended for new designs”, so it mainly makes sense when you already own one or are maintaining an existing project.

BME280, BME680 and BME688 at a glance

These three Bosch sensors look similar and are often sold on almost identical breakout boards, but they are intended for different jobs.

The BME280 is a 3-in-1 environmental sensor:

  • Temperature
  • Relative humidity
  • Barometric pressure

The BME680 and BME688 are 4-in-1 environmental sensors:

  • Temperature
  • Relative humidity
  • Barometric pressure
  • Gas / air-quality sensing

The BME688 is essentially the more capable evolution of the BME680, adding improved gas-analysis capabilities, application-specific gas scanning and support for Bosch’s BME AI-Studio.

FeatureBME280BME680BME688
TemperatureYesYesYes
HumidityYesYesYes
PressureYesYesYes
Gas resistanceNoYesYes
VOC / IAQNoYes, with BSECYes, with BSEC2
Gas classificationNoLimitedYes
BME AI-StudioNoNoYes
Specific VSC detectionNoNoYes
I²CYesYesYes
SPIYesYesYes
Best forWeather/environmentExisting IAQ projectsNew IAQ/gas projects

BME280: the simple environmental sensor

The BME280 is the easiest sensor of the three to understand.

It measures:

  • temperature
  • humidity
  • atmospheric pressure

There is no gas sensor and no heater.

Bosch specifies a pressure operating range of 300–1100 hPa and a temperature operating range of -40°C to +85°C. Typical humidity accuracy is ±3% RH, and the humidity response time is approximately 1 second.

Its low power consumption is one of its strongest advantages.

At a 1 Hz update rate Bosch specifies approximately:

Temperature + Humidity:
1.8 µA

Temperature + Pressure:
2.8 µA

Temperature + Humidity + Pressure:
3.6 µA

Sleep current is around:

0.1 µA

That makes the BME280 especially attractive for an ESP32 that spends most of its time in deep sleep.

Why the BME280 is still so popular

For a typical weather or room sensor, a gas sensor may provide no useful benefit.

If the goal is simply:

Temperature: 22.4°C
Humidity: 47%
Pressure: 1014 hPa

the BME280 already does everything required.

It is particularly suitable for:

  • ESP32 weather stations
  • Home Assistant room sensors
  • outdoor sensor nodes
  • battery-powered projects
  • altitude/barometric experiments
  • greenhouse monitoring
  • HVAC monitoring

ESPHome supports the BME280 directly over either I²C or SPI, and normally runs it in forced mode: take a measurement, then return the sensor to sleep until the next update.

BME680: BME280 plus gas sensing

The BME680 adds a metal-oxide gas sensor to the temperature, humidity and pressure sensors.

Bosch describes it as a four-in-one environmental sensor capable of measuring:

  • barometric pressure
  • temperature
  • relative humidity
  • air quality

The gas element responds to a broad range of gases, particularly volatile organic compounds, or VOCs.

That means a BME680 can react to environmental changes caused by things such as:

  • cooking
  • cleaning products
  • alcohol
  • fragrances
  • solvents
  • human occupancy
  • poor ventilation

But it is important to understand what the sensor is actually measuring.

The BME680 does not identify individual gases directly

The raw gas measurement from a BME680 is essentially gas resistance.

The resistance of the heated sensing element changes in response to the chemical composition of the surrounding air.

A raw value might look like:

Gas resistance:
126 kΩ

That number alone does not mean:

126 kΩ = bad air

or:

126 kΩ = 500 ppm VOC

To make the gas measurement more useful, Bosch provides its BSEC environmental-processing software, which analyses the gas response together with temperature and humidity history to produce values such as an Indoor Air Quality index. ESPHome’s BSEC2 integration supports both BME680 and BME688.

BME688: the more capable gas sensor

The BME688 retains the environmental sensing functions of the BME680 but adds more advanced gas-analysis capabilities.

Bosch describes it as its first gas sensor with AI capabilities and says it can respond to VOCs, volatile sulfur compounds and gases including carbon monoxide and hydrogen at very low concentrations.

Compared with BME680, Bosch specifically adds:

  • application-specific gas scanning
  • specific VSC detection
  • BME AI-Studio support

This is the main reason to choose a BME688 rather than simply buying another BME680.

What does the “AI” in BME688 actually mean?

The BME688 does not contain a magical neural network that automatically tells you:

Coffee detected

or:

Paint fumes detected

straight out of the box.

The interesting feature is its ability to run gas-scanning heater profiles and work with Bosch’s BME AI-Studio.

Different gases produce different responses as the sensor’s heater is driven through different temperature profiles.

A developer can collect training data and create a classifier for a particular application.

Bosch describes the BME688 as having adjustable gas sensitivity/selectivity and supports application-specific gas recognition through BME AI-Studio.

Potential experimental applications include:

  • distinguishing different VOC mixtures
  • detecting spoiled food signatures
  • detecting sulfur compounds
  • identifying specific environmental changes
  • classifying odours
  • monitoring air-quality patterns

It is therefore much more than simply “a newer BME280.”

BME688 does not measure real COâ‚‚

This point is extremely important.

With BSEC2, a BME680 or BME688 can expose:

COâ‚‚ equivalent

often written as:

eCOâ‚‚

This is not a direct COâ‚‚ measurement.

ESPHome explicitly explains that BSEC derives its estimated COâ‚‚ value using a correlation between VOC behaviour and COâ‚‚ in human breath.

So:

BME688 CO2 Equivalent = 850 ppm

does not mean the sensor has directly measured the room at 850 ppm COâ‚‚.

For real COâ‚‚ measurement, use a dedicated optical COâ‚‚ sensor such as:

  • SCD30
  • SCD40
  • SCD41

The BME688 is primarily a VOC/gas sensor, not a substitute for an NDIR or photoacoustic COâ‚‚ sensor.

BME680 vs BME688 gas capability

For basic Home Assistant air-quality monitoring, both can provide:

  • gas resistance
  • IAQ
  • estimated COâ‚‚
  • estimated breath VOC
  • temperature
  • humidity
  • pressure

when used with BSEC2.

The BME688 becomes more interesting if the application requires:

  • gas scanning
  • trained classifications
  • BME AI-Studio
  • specific gas-response experiments

Bosch currently markets BME688 as the more advanced device and now marks the BME680 as not recommended for new designs.

For a new 2026 project, there is therefore little reason to intentionally choose a BME680 over a similarly priced BME688.

Temperature and humidity performance

The humidity specification is surprisingly similar between the three.

Bosch specifies typical humidity accuracy around:

BME280: ±3% RH
BME680: ±3% RH
BME688: ±3% RH

The major difference is response time.

The BME280 humidity element has a specified response of around 1 second, while Bosch gives approximately 8 seconds for the BME680 and BME688 humidity sensor.

For ordinary Home Assistant climate monitoring, that difference is rarely important.

Pressure performance

All three include a proper barometric pressure sensor.

Bosch specifies:

BME280 pressure RMS noise:
0.2 Pa

BME680 / BME688:
0.12 Pa

and all three have a pressure sensitivity error around ±0.25% in Bosch’s published technical data.

This makes any of them useful for:

  • weather trends
  • barometric pressure
  • approximate altitude
  • atmospheric monitoring

If gas sensing is unnecessary, however, there is little reason to buy a BME688 merely for pressure.

Power consumption

This is where the BME280 has a major advantage for simple environmental sensing.

BME280 measuring temperature, humidity and pressure at 1 Hz consumes only around:

3.6 µA average.

BME680 and BME688 are similarly efficient when only measuring temperature, humidity and pressure:

BME680:
~3.7 µA at 1 Hz

BME688:
~3.7 µA at 1 Hz

But once the heated gas element is used, consumption increases significantly.

Bosch gives BME688 figures of approximately:

ULP air-quality mode:
90 µA

Low-power air-quality mode:
0.9 mA

Standard gas-scan mode:
3.9 mA

That makes a major difference in battery projects.

Best choice for an ESP32 deep-sleep sensor

If the project wakes every few minutes, reads temperature/humidity/pressure, transmits the data and goes back to sleep:

BME280 wins.

The gas heater in the BME680/BME688 needs measurement history and controlled heating cycles to provide meaningful air-quality information.

Switching the entire sensor completely off between widely spaced measurements can reduce the usefulness of the gas-processing algorithms.

ESPHome’s BSEC2 integration provides two standard gas sampling modes:

LP:
every 3 seconds

ULP:
every 5 minutes

and also saves BSEC calibration state periodically so the algorithm does not always have to start from zero after reboot.

For a battery weather sensor, the simpler BME280 therefore makes much more sense.

ESPHome with BME280

A basic ESPHome configuration is very simple.

For a classic ESP32 DevKit:

i2c:
  sda: GPIO21
  scl: GPIO22

sensor:
  - platform: bme280_i2c
    temperature:
      name: "Room Temperature"

    pressure:
      name: "Room Pressure"

    humidity:
      name: "Room Humidity"

    address: 0x76
    update_interval: 60s

Current ESPHome uses the bme280_i2c platform for I²C and bme280_spi for SPI. Supported I²C addresses are 0x76 and 0x77.

Once connected through the ESPHome integration, the three readings appear directly in Home Assistant.

ESPHome with BME680 or BME688

ESPHome provides a BSEC2 integration for both BME680 and BME688.

For a BME688:

i2c:
  sda: GPIO21
  scl: GPIO22

bme68x_bsec2_i2c:
  address: 0x76
  model: bme688
  operating_age: 28d
  sample_rate: LP

sensor:
  - platform: bme68x_bsec2

    temperature:
      name: "Room Temperature"

    humidity:
      name: "Room Humidity"

    pressure:
      name: "Room Pressure"

    gas_resistance:
      name: "Gas Resistance"

    iaq:
      name: "Indoor Air Quality"

    iaq_accuracy:
      name: "IAQ Accuracy"

    co2_equivalent:
      name: "CO2 Equivalent"

    breath_voc_equivalent:
      name: "Breath VOC Equivalent"

ESPHome’s current BSEC2 component supports both models and exposes temperature, humidity, pressure, gas resistance, IAQ, static IAQ, IAQ accuracy, COâ‚‚-equivalent and breath-VOC-equivalent values.

IAQ values explained

BSEC2 produces an Indoor Air Quality index from 0 to 500.

ESPHome documents the interpretation as:

IAQAir quality
0–50Excellent
51–100Good
101–150Lightly polluted
151–200Moderately polluted
201–250Heavily polluted
251–350Severely polluted
>351Extremely polluted

This is usually much easier to use in Home Assistant than displaying raw gas resistance alone.

For example:

IAQ 42
→ Excellent

IAQ 87
→ Good

IAQ 185
→ Moderately polluted

BSEC needs time to calibrate

Do not expect the IAQ value to be perfect immediately after first boot.

ESPHome exposes the BSEC2 calibration state as:

  • Stabilizing
  • Uncertain
  • Calibrating
  • Calibrated

ESPHome notes that the initial stabilizing period typically lasts around five minutes, after which the algorithm continues building its environmental history.

For useful air-quality monitoring, leave the device operating under normal room conditions rather than repeatedly power-cycling it during testing.

BSEC2 has an important licence condition

BSEC2 is Bosch proprietary software.

ESPHome requires users to accept the BSEC licence when enabling the component, and its documentation notes that the licence prohibits distribution of compiled firmware binaries containing BSEC2.

This generally isn’t a problem for someone compiling firmware for their own ESPHome node.

It becomes more important if firmware is being distributed publicly or included in a commercial product.

The gas heater can affect temperature readings

The BME680 and BME688 contain a heater for the gas sensor.

That heat, together with heat generated by the ESP32 and voltage regulator, can make the measured temperature higher than the true room temperature if the PCB is badly designed or enclosed without airflow.

ESPHome’s BSEC2 integration therefore provides a configurable temperature_offset, and also compensates the corresponding humidity reading when the offset is applied.

Good physical placement still matters more than software correction.

Keep the sensor:

  • away from the ESP32 module
  • away from regulators
  • away from direct sunlight
  • exposed to natural room airflow
  • away from other warm components

BME280 can also read warm on ESP32 boards

The same placement rule applies to the BME280.

Even without a gas heater, mounting it immediately beside a warm ESP32 can cause the sensor to read the temperature of the electronics rather than the temperature of the room.

For an accurate Home Assistant climate sensor, put the BME sensor on:

  • the edge of the PCB
  • a small separate breakout
  • a short cable
  • a ventilated section of the enclosure

Sensor positioning can easily make a larger difference than the theoretical differences between these three devices.

BME280 vs BME680

Choose BME280 if the requirement is:

Temperature
Humidity
Pressure

Choose BME680 only if gas resistance / IAQ is also required and a BME680 is already available.

For a completely new design, Bosch’s own current product catalogue says BME680 is not recommended for new designs.

That makes the comparison quite straightforward in 2026.

BME680 vs BME688

For basic environmental measurements, they are very similar.

Both offer:

  • temperature
  • humidity
  • pressure
  • gas resistance
  • I²C/SPI

The BME688 adds the more advanced gas-scanning architecture, VSC-related capability and BME AI-Studio ecosystem.

If prices are close:

buy the BME688.

The BME680 mainly makes sense for existing projects or exceptionally cheap modules.

BME280 vs BME688

This is the decision most new ESP32 projects really need to make.

Choose BME280 for:

  • weather stations
  • outdoor sensors
  • barometric pressure
  • simple Home Assistant climate nodes
  • battery operation
  • deep-sleep projects
  • temperature/humidity monitoring

Choose BME688 for:

  • indoor air quality
  • VOC detection
  • IAQ dashboards
  • gas-response experiments
  • odour classification
  • BME AI-Studio projects
  • more advanced environmental monitoring

The BME688 is more capable, but capability is not automatically useful.

If the gas measurements will never be used, the BME280 is simpler and more power-efficient.

Best sensor for Home Assistant

For a normal Home Assistant room climate sensor:

BME280

It provides the three values most homes actually need and has extremely mature ESPHome support.

For a Home Assistant air-quality node:

BME688

It can add:

  • IAQ
  • gas resistance
  • bVOC equivalent
  • COâ‚‚ equivalent

through BSEC2.

Remember that COâ‚‚-equivalent is an estimate and not an actual COâ‚‚ measurement.

Best sensor for a weather station

Winner: BME280

Weather stations primarily need:

  • atmospheric pressure
  • humidity
  • temperature

A gas heater provides little useful benefit outdoors and adds complexity and power consumption.

BME280’s 0.1 µA sleep current and low measurement current make it particularly well suited to remote sensor nodes.

Best sensor for indoor air quality

Winner: BME688

Its main reason for existing is gas/air-quality measurement.

Bosch gives it support for VOCs, VSCs, application-specific gas scanning and AI-Studio-driven classification.

For a serious air-quality station, however, consider combining it with dedicated sensors.

For example:

BME688
→ VOC / IAQ

SCD41
→ real CO₂

PMS5003
→ PM2.5 / PM10

That combination measures three fundamentally different types of indoor air-quality information rather than trying to infer everything from one sensor.

Best sensor for battery power

Winner: BME280

BME688 can operate efficiently, but meaningful gas sensing requires powering its heater periodically.

For a project where battery life is the priority and temperature/humidity/pressure are sufficient, the BME280 is the simpler and more efficient choice.

Best sensor for experimenting

Winner: BME688

If the goal is learning rather than simply collecting temperature measurements, the BME688 provides considerably more to explore:

  • raw gas resistance
  • heater profiles
  • BSEC2
  • IAQ
  • bVOC equivalents
  • gas scanning
  • BME AI-Studio
  • trained gas classifications

It is a much more interesting sensor for advanced ESP32 experimentation.

One more 2026 consideration: BME690 exists

BME688 is no longer the very newest Bosch gas sensor.

Bosch’s current product catalogue also lists the BME690, describing it as a further development of the BME688 with improved robustness, particularly in environments exposed to high condensation.

That does not make the BME688 obsolete — it remains widely used and supported — but it is worth knowing when designing a new commercial product.

For the three sensors compared in this article, however, the buying decision remains simple.

Final recommendation

If the project only needs:

Temperature
Humidity
Pressure

buy the BME280.

It is cheaper, simpler and extremely low power.

If an existing design already contains a:

BME680

there is no reason to replace it purely for ordinary IAQ monitoring.

But for a new gas/air-quality project, choose:

BME688

rather than BME680, especially because Bosch itself now labels BME680 as not recommended for new designs.

The easiest way to remember the family is:

BME280 = weather and climate

BME680 = older air-quality version

BME688 = advanced air quality + gas scanning

And if the project needs real COâ‚‚, none of them is the right sensor — add an SCD30/SCD40/SCD41 instead. BSEC’s COâ‚‚ output is an estimated equivalent derived from VOC behaviour rather than a direct COâ‚‚ measurement.

Share your love