Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BME680: Sensor Data Interpretation

    BME680 is as combined digital gas, humidity, pressure and temperature sensor based on proven sensing principles.

    API Link:

    BSEC Link:

    Sensor data type

    Gas sensor data is gas sensor resistance.

    Humidity sensor data is in type of percentage (10%-90%, in 0°C-65°C).

    Pressure sensor data is in type of hPa (300hPa-1100hPa, in 0°C-65°C).

    Temperature sensor data is in type of °C (-40°C-85°C).

    Use function bme680_get_sensor_data in API to get sensor data.

    Use BSEC software Library, put gas/humidity/pressure/temperature sensor data as inputs into BSEC, you can also get IAQ(Indoor Air Quality) from outputs.

    Measurement preiod

    The BME680 measurement period consists of a temperature, pressure and humidity measurement with selectable oversampling. Moreover, it contains a heating phase for the gas sensor hot plate as well as a measurement of the gas sensor resistance.

    After the measurement period, the pressure and temperature data can be passed through an optional IIR filter, which removes short-term fluctuations in pressure (e.g. caused by slamming a door). For humidity and gas, such a filter is not needed and has not been implemented

    Gas resistance sensitivity

    The sensitivity of BME680 to certain target gas is gas_resistance/gas_resistance_base. The sensitivity equaling to 1 means BME680 is not sensitivity in this concentration of the target gas, while the less value in sensitivity, the more sensitive BME680 to the target gas. 

    Data Interrupt

    There is new data interrupt in BME680, below table shows how to enable this feature.


     Pressure sensor drift

    Used to represent errors in measured values. Basically, two drifts will appear on the pressure part in BME680: one is solder drifts and the other is long term drift.


     Pressure sensor offset temperature coefficient (TCO)

    TCO is the change in the pressure signal introduced by a change of the temperature.

    For pressure sensor, TCO is ±1.5 Pa/K, equiv. to ±12.6 cm at 1 °C temperature change, which means pressure sensor data will change within ±1.5 Pa with 1 °C temperature change at constant pressure.

    Accuracy of temperature/pressure/humidity

    This feature is used to represent how much accuracy can be achieved on certain condition.

    Humidity sensor:

    ±3 % relative humidity, on condition: 20-80 %r.H., 25°C, including hysteresis

    Pressure sensor:

    0.12 hPa, on condition: 25°C-40°C, 700-1100hPa, at constat humidity

    Temperature Sensor:

    ±1°C, on condition: 25°C

    ±0.5°C, on condition: 0…65°C

    OSR / Oversampling of humidity/pressure/temperature

    There are several oversampling options for different sensors. It is possible to reduce noise, but the power consumption will be higher.

    Humidity sensor OSR


     As for how to set osrs_h<2:0>, b000->skip humidity data/no humidity, b001->oversamplingx1, b010->oversamplingx2, b011->oversamplingx4, b100->oversamplingx8, b101/Others->oversamplingx16.

    Pressure sensor OSR


     As for how to set osrs_p<4:2>, b000->skip humidity data/no humidity, b001->oversamplingx1, b010->oversamplingx2, b011->oversamplingx4, b100->oversamplingx8, b101/Others->oversamplingx16.

    Temperature sensor OSR


     As for how to set osrs_t<7:5>, b000->skip humidity data/no humidity, b001->oversamplingx1, b010->oversamplingx2, b011->oversamplingx4, b100->oversamplingx8, b101/Others->oversamplingx16.

    You can use function bme680_set_sensor_settings in API to set OSR of any sensor.

    Signal filter

    The environmental pressure is subject to many short-term changes, caused e.g. by slamming of a door or window, or wind blowing into the sensor. To suppress these disturbances in the output data without causing additional interface traffic and processor work load, the BME680 features an internal IIR filter. Via setting filter coefficient(c), it effectively reduces the bandwidth of the temperature and pressure output signals and increases the resolution of the pressure and temperature output data to 20 bit(Pressure and Temperature OSR must be non-zero). When c is bigger, response time will be longer.



     As for how to set filter<4:2>, b000->filter coefficient 0, b001-> filter coefficient 1, b010-> filter coefficient 3, b011-> filter coefficient 7, b100-> filter coefficient 15, b101-> filter coefficient 31,  b110-> filter coefficient 63, b111-> filter coefficient 127.

    You can use function bme680_set_sensor_settings in API to set filter.



    Version history
    Last update:
    ‎10-14-2019 03:27 PM
    Updated by: