Bosch Sensortec | BME680 Datasheet
1 | 50
BME680
Low power gas, pressure, temperature & humidity
sensor
BME680 – Datasheet
Document revision
1.0
Document release date
July 2017
Document number
BST-BME680-DS001-00
Technical reference code(s)
1 277 340 511
Notes
Data and descriptions in this document are subject to change without
notice. Product photos and pictures are for illustration purposes only and
may differ from the real product appearance.
Modifications reserved |Data subject not change without notice | Printed in Germany
Document number: BST-BME680-DS001-00 Revision_1.0_072017
Bosch Sensortec | BME680 Datasheet
2 | 50
BME680
Low power gas, pressure, temperature & humidity sensor
The BME680 is a digital 4-in-1 sensor with gas, humidity, pressure and temperature measurement based on
proven sensing principles. The sensor module is housed in an extremely compact metal-lid LGA package with a
footprint of only 3.0 × 3.0 mm² with a maximum height of 1.00 mm (0.93 ± 0.07 mm). Its small dimensions and its
low power consumption enable the integration in battery-powered or frequency-coupled devices, such as
handsets or wearables.
Typical applications
Indoor air quality
Home automation and control
Internet of things
Weather forecast
GPS enhancement (e.g. time-to-first-fix improvement, dead reckoning, slope detection)
Indoor navigation (change of floor detection, elevator detection)
Outdoor navigation, leisure and sports applications
Vertical velocity indication (rise/sink speed)
Target Devices
Handsets such as mobile phones, tablet PCs, GPS devices
Wearables
Home weather stations
Smart watches
Navigation systems
Gaming, e.g. flying toys
IOT devices
Modifications reserved |Data subject not change without notice | Printed in Germany
Document number: BST-BME680-DS001-00 Revision_1.0_072017
Bosch Sensortec | BME680 Datasheet
3 | 50
Key features
Package
Digital interface
Supply voltage
3.0 mm x 3.0 mm x 0.93 mm metal lid LGA
I²C (up to 3.4 MHz) and SPI (3 and 4 wire, up to 10 MHz)
VDD main supply voltage range: 1.71 V to 3.6 V
VDDIO interface voltage range: 1.2 V to 3.6 V
Current consumption
2.1 µA at 1 Hz humidity and temperature
3.1 µA at 1 Hz pressure and temperature
3.7 µA at 1 Hz humidity, pressure and temperature
0.09‒12 mA for p/h/T/gas depending on operation mode
0.15 µA in sleep mode
Operating range
-40‒+85 °C, 0‒100% r.H., 300‒1100 hPa
Individual humidity, pressure and gas sensors can be independently enabled/disabled
The product is RoHS compliant, halogen-free, MSL1
Key parameters for gas sensor
Response time (𝜏33−63% )
Power consumption
Output data processing
< 1 s (for new sensors)
< 0.1 mA in ultra-low power mode
direct indoor air quality (IAQ) index output
Key parameters for humidity sensor
Response time (𝜏0−63% )
Accuracy tolerance
Hysteresis
~8 s
±3% r.H.
±1.5% r.H.
Key parameters for pressure sensor
RMS Noise
Offset temperature coefficient
0.12 Pa, equiv. to 1.7 cm
±1.3 Pa/K, equiv. to ±10.9 cm at 1 °C temperature change
Modifications reserved |Data subject not change without notice | Printed in Germany
Document number: BST-BME680-DS001-00 Revision_1.0_072017
Bosch Sensortec | BME680 Datasheet
4 | 50
Table of contents
1. Specification
7
1.1 General Electrical Specification ............................................................................................................................ 7
1.2 Gas sensor specification ....................................................................................................................................... 8
1.3 Humidity sensor specification .............................................................................................................................. 10
1.4 Pressure sensor specification ............................................................................................................................. 11
1.5 Temperature sensor specification ....................................................................................................................... 12
2. Absolute maximum ratings
13
3. Sensor usage
14
3.1 Sensor modes ..................................................................................................................................................... 14
3.2 Sensor configuration ........................................................................................................................................... 15
3.2.1 Quick start ........................................................................................................................................................ 15
3.2.2 Sensor configuration flow ................................................................................................................................. 16
3.3 Measurement flow ............................................................................................................................................... 17
3.3.1 Temperature measurement .............................................................................................................................. 17
3.3.2 Pressure measurement .................................................................................................................................... 17
3.3.3 Humidity measurement .................................................................................................................................... 17
3.3.4 IIR filter ............................................................................................................................................................. 18
3.3.5 Gas sensor heating and measurement ............................................................................................................ 18
3.4 Data readout........................................................................................................................................................ 19
3.4.1 Gas resistance readout .................................................................................................................................... 19
3.5 Output compensation .......................................................................................................................................... 19
4. Software and use cases
21
4.1 BSEC software .................................................................................................................................................... 21
4.2 Indoor-air-quality ................................................................................................................................................. 23
5. Global memory map and register description
Modifications reserved |Data subject not change without notice | Printed in Germany
24
Document number: BST-BME680-DS001-00 Revision_1.0_072017
Bosch Sensortec | BME680 Datasheet
5 | 50
5.1 General remarks ................................................................................................................................................. 24
5.2 Memory map ....................................................................................................................................................... 25
5.3 Register description ............................................................................................................................................ 26
5.3.1 General control registers .................................................................................................................................. 26
5.3.2 TEMPERATURE, PRESSURE AND RELATIVE HUMIDITY CONTROL REGISTERS
5.3.4 DATA REGISTERS
5.3.5 STATUS REGISTERS
6. Digital interfaces
27
32
33
35
6.1 Interface selection ............................................................................................................................................... 35
6.2 I²C Interface......................................................................................................................................................... 35
6.2.1 I²C WRITE
6.2.2 I²C READ
36
36
6.3 SPI interface ........................................................................................................................................................ 37
6.3.1 SPI WRITE
6.3.2 SPI READ
37
38
6.4 Interface parameter specification ........................................................................................................................ 38
6.4.1 General interface parameters .......................................................................................................................... 38
6.4.2 I²C timings ........................................................................................................................................................ 39
6.4.3 SPI TIMINGS
7. Pin-out and connection diagram
40
41
7.1 Pin-out ................................................................................................................................................................. 41
7.2 Connection diagrams .......................................................................................................................................... 42
7.3 Package dimensions ........................................................................................................................................... 43
7.4 Landing pattern recommendation ....................................................................................................................... 44
7.5 Marking ................................................................................................................................................................ 45
7.5.1 Mass production devices.................................................................................................................................. 45
7.5.2 Engineering samples ........................................................................................................................................ 45
7.6 Soldering guidelines and reconditioning recommendations ............................................................................... 46
7.7 Mounting and assembly recommendations ........................................................................................................ 46
7.8 Environmental safety ........................................................................................................................................... 47
7.8.1 RoHS ................................................................................................................................................................ 47
7.8.2 Halogen content ............................................................................................................................................... 47
Modifications reserved |Data subject not change without notice | Printed in Germany
Document number: BST-BME680-DS001-00 Revision_1.0_072017
Bosch Sensortec | BME680 Datasheet
6 | 50
7.8.3 Internal package structure ................................................................................................................................ 47
8. Legal disclaimer ............................................................................................................................................48
8.1 Engineering samples ........................................................................................................................................... 48
8.2 Product use ......................................................................................................................................................... 48
8.3 Application examples and hints ........................................................................................................................... 48
9. Document history and modifications ..................................................................................................49
Modifications reserved |Data subject not change without notice | Printed in Germany
Document number: BST-BME680-DS001-00 Revision_1.0_072017
Bosch Sensortec | BME680 Datasheet
7 | 50
1. Specification
If not stated otherwise,
all values are valid over the full voltage range,
all minimum/maximum values are given for the full accuracy temperature range
minimum/maximum values of drifts, offsets and temperature coefficients are ±3 values over lifetime,
typical values of currents and state machine timings are determined at 25 °C,
minimum/maximum values of currents are determined using corner lots over complete temperature range, and
minimum/maximum values of state-machine timings are determined using corner lots over 0‒+65 °C temperature
range.
Besides the general electrical specifications, the following tables are separated for the gas, pressure, humidity and
temperature functions of the BME680.
1.1 General Electrical Specification
Table 1: Electrical parameter specification
OPERATING CONDITIONS BME680
1
Parameter
Symbol
Condition
Min
Typ
Max
Unit
Supply Voltage
Internal Domains1
VDD
ripple max. 50 mVpp
1.71
1.8
3.6
V
Supply Voltage
I/O Domain
VDDIO
1.2
1.6
3.6
V
Sleep current
IDDSL
0.15
1
µA
Standby current
(inactive period of
normal mode)
IDDSB
0.29
0.8
µA
Current during
humidity
measurement
IDDH
Max value at 85 °C
340
450
µA
Current during
pressure
measurement
IDDP
Max value at -40 °C
714
849
µA
Current during
temperature
measurement
IDDT
Max value at 85 °C
350
Start-up time
tstartup
Time to first communication
after both VDD > 1.58 V and
VDDIO > 0.65 V
2
ms
Power supply
rejection ratio (DC)
PSRR
full VDD range
±0.01
±5
%r.H./V
Pa/V
Standby time
accuracy
Δtstandby
±25
%
±5
µA
The power efficiency, performance and heat dissipation scales with the applied supply voltage. The BME680 is optimized for 1.8 V.
Modifications reserved |Data subject not change without notice | Printed in Germany
Document number: BST-BME680-DS001-00 Revision_1.0_072017
Bosch Sensortec | BME680 Datasheet
8 | 50
1.2 Gas sensor specification
Table 2 lists the gas sensor specification. All the parameters are deduced from lab measurements under controlled
environmental conditions, which are compliant to the ISO16000-29 standard “Test methods for VOC detectors”. Detailed
procedure to measure the gas sensor is available in the Application Note: Measurement Instructions for Lab Environment.
Referring to Chapter 4, a software solution (BSEC: Bosch Software Environmental Cluster) is available for the BME680. The
software is carefully engineered to seamlessly work with the 4-in-1 integrated sensors inside the BME680. Based on an
intelligent algorithm, the BSEC provides an indoor air quality (IAQ) output. In principle, this output is in an index that can have
values between 0 and 500 with a resolution of 1 to indicate or quantify the quality of the air available in the surrounding. Table
4 lists the IAQ system specification. The detailed classification and color coding of the IAQ index is described in Table 4.
Furthermore, the BSEC solution supports different operation modes for the gas sensor to address the necessary power
budget and update rate requirements of the end-application.
Unless mentioned otherwise, the specifications are deduced from new sensors that have been operated for at least five days
mainly in ambient air and consequently have the same history (i.e. same power mode and exposed to the same environment).
Besides ethanol (EtOH) as a target test gas, the sensors are also tested with breath-VOC (b-VOC). The b-VOC mixture, as
listed in Table 5, represents the most important compounds in an exhaled breath of healthy humans. The values are derived
from several publications on breath analysis studies. The composition does not contain species which would chemically react
to ensure that the mixture is stable for at least 6 months. Furthermore, the composition is also limited to species which can
be manufactured in one mixture.
Table 2: Gas sensor parameter specification
Parameter
Symbol
Condition
Operational range1
Supply Current during
heater operation
Peak Supply Current
Average Supply
Current
(VDD ≤ 1.8 V, 25°C)
Response time2
(brand-new sensors)
Typ
Max
Unit
-40
85
°C
10
95
% r.H.
IDD
Heater target temperature
320 °C, constant operation
(VDD ≤ 1.8 V, 25°C)
9
12
13
mA
IPeak
Occurs within first ms of
switching on the hotplate
15
17
18
mA
Ultra-low power mode
0.09
mA
Low power mode
0.9
mA
Continuous mode
12
mA
τ33-63%
Ultra-low power mode
92
s
τ33-63%
Low power mode
1.4
s
τ33-63%
Continuous mode
0.75
s
IDD,IAQ
Resolution of gas
sensor resistance
measurement
Noise in gas sensor
resistance (RMS)
Min
0.05
NR
0.08
1.5
0.11
%
%
1
The sensors are electrically operable within this range. Actual performance may vary
Response time of unsoldered, brand-new sensors extracted from the sensors’ resistance change in response to a 0.6–60 ppm step of EtOH and a 0.5–15 ppm step of b-VOC at 20 °C, 50%
r.H. and atmospheric pressure.
2
Modifications reserved |Data subject not change without notice | Printed in Germany
Document number: BST-BME680-DS001-00 Revision_1.0_072017
Bosch Sensortec | BME680 Datasheet
9 | 50
Table 3: IAQ system parameter specification3
Parameter
Symbol
Condition
Min
Typ
Accuracy status4
AXIAQ
Android compatible
0
IAQ Resolution
IAQrs
IAQ Range
IAQrg
Sensor-to-sensor
deviation5
IAQS2S
All operation modes
±15%
±15
IAQS2S
Sensor-to-sensor deviation
±15%
±15
IAQdrift
Drift at low & high
concentrations
±1%
±4
Max
Unit
3
1
0
Durability to
siloxanes6,7,8
500
Table 4: Indoor air quality (IAQ) classification and color-coding9
IAQ Index
Air Quality
0 – 50
good10
51 – 100
average
101 – 150
little bad
151 – 200
bad
201 – 300
worse2
301 – 500
very bad
Table 5: bVOC mixture with Nitrogen as carrier gas
Molar fraction
Compound
Production tolerance
Certified accuracy
5 ppm
Ethane
20 %
5%
10 ppm
Isoprene /2-methyl-1,3 Butadiene
20 %
5%
10 ppm
Ethanol
20 %
5%
50 ppm
Acetone
20 %
5%
15 ppm
Carbon Monoxide
10 %
2%
3
IAQ parameters only apply for the combination of BME680 together with the Bosch Software Environmental Cluster (BSEC) solution (available separately, see Chapter 4)
The accuracy status is equal to zero during the power-on stabilization times of the sensor and is equal to 3 when the sensor achieves best performance
5
Tested with 0.6–90 ppm of EtOH at 5–40 °C, 20–80% r.H. and atmospheric pressure. Condition is valid after the calibration period of the BSEC algorithm.
6
Siloxanes are present in a typical indoor environment and can in principle perturb the metal-oxide-based gas sensor performance.
7
220 hours of 700 mg/m3 of octamethylcyclotetrasiloxane (D4) in ambient conditions (i.e. 20 °C and 50% r.H.) simulates the amount of siloxanes in a typical indoor environment over more
than 10 years.
8
Tested with 0.5–15 ppm of b-VOC at 20 °C and 50% r.H. using continuous operation mode for 220 hours of 700 mg/m 3 of octamethylcyclotetrasiloxane (D4).
9
According to the guidelines issued by the German Federal Environmental Agency, exceeding 25 mg/m3 of total VOC leads to headaches and further neurotoxic impact on health.
10
The BSEC software auto-calibrates the low and high concentrations applied during testing to IAQ of 25 and 250, respectively.
4
Modifications reserved |Data subject not change without notice | Printed in Germany
Document number: BST-BME680-DS001-00 Revision_1.0_072017
Bosch Sensortec | BME680 Datasheet
10 | 50
1.3 Humidity sensor specification
Table 6: Humidity parameter specification
Parameter
Symbol
Condition
Operating Range11
Full accuracy range
1 Hz forced mode,
temperature and humidity
measurement
Min
Typ
Max
Unit
-40
25
85
°C
0
100
% r.H.
0
65
°C
10
90
% r.H.
2.8
µA
2.1
Supply Current
IDD,H
Absolute Accuracy
AH
20‒80 % r.H., 25 °C,
including hysteresis
±3
% r.H.
Hysteresis12
HH
10→90→10 % r.H., 25°C
±1.5
% r.H.
Nonlinearity13
NLH
10→90 % r.H., 25°C
1.7
% r.H.
Response time to
complete 63% of step14
τ0-63%
N2 (dry) → 90 % r.H., 25°C
8
s
Resolution
RH
0.008
% r.H.
Noise in humidity
(RMS)
NH
Highest oversampling
0.01
% r.H.
Long-term stability
∆Hstab
10‒90 % r.H., 25°C
0.5
% r.H./
year
11
When exceeding the operating range (e.g. for soldering), humidity sensing performance is temporarily degraded and reconditioning is recommended as described in Section 7.7. Operating
range only for non-condensing environment.
12
For hysteresis measurement the sequence 0103050709070503010 % r.H. is used. The hysteresis is defined as the maximum difference between measurements at of
the same humidity up / down branch and the averaged curve of both branches.
13
Non-linear contributions to the sensor data are corrected during the calculation of the relative humidity by the compensation formulas described in Section 3.5.
14
The air-flow in direction to the vent-hole of the device has to be dimensioned in a way that a sufficient air exchange inside to outside will be possible. To observe effects on the response
time-scale of the device an air-flow velocity of approximately 1 m/s is needed.
Modifications reserved |Data subject not change without notice | Printed in Germany
Document number: BST-BME680-DS001-00 Revision_1.0_072017
Bosch Sensortec | BME680 Datasheet
11 | 50
1.4 Pressure sensor specification
Table 7: Pressure parameter specification
Parameter
Symbol
Condition
Min
Typ
Max
Operating temperature
range
TA
Operating pressure
range
operational
-40
25
85
full accuracy
0
65
P
full accuracy
300
1100
hPa
Supply current
IDD,LP
1 Hz forced mode,
pressure and
temperature, lowest
power
4.2
µA
Temperature coefficient
of offset15
TCOP
25‒40 °C, 900 hPa
Ap, full
300‒1100 hPa
0‒65°C
Absolute accuracy
pressure
3.1
Unit
°C
±1.3
Pa/K
±10.9
cm/K
±0.6
hPa
±0.12
hPa
700‒900hPa,
Arel
Relative accuracy
pressure
Resolution of
pressure output data
Noise in pressure
900‒1100hPa
Arel
25‒40 °C, at constant
humidity
±0.12
hPa
RP
Highest oversampling
0.18
Pa
Full bandwidth, highest
oversampling
1.4
Pa
11
cm
Reduced bandwidth, highest
oversampling
0.2
Pa
1.7
cm
NP,fullBW
Solder drift
15
16
25‒40 °C, at constant
humidity
Minimum solder height 50µm
Long-term stability16
Pstab
per year
Possible sampling rate
fsample_P
Lowest oversampling,
see chapter 3.3.2
-0.5
157
1.2
+2.0
hPa
±1.0
hPa
182
Hz
When changing temperature from 25 °C to 40 °C at constant pressure / altitude, the measured pressure / altitude will change by (15×TCOP).
Long-term stability is specified in the full accuracy operating pressure range 0‒65 °C
Modifications reserved |Data subject not change without notice | Printed in Germany
Document number: BST-BME680-DS001-00 Revision_1.0_072017
Bosch Sensortec | BME680 Datasheet
12 | 50
1.5 Temperature sensor specification
Table 8: Temperature parameter specification
Parameter
Symbol
Condition
Min
Typ
Max
Unit
Operating temperature
range
TA
operational
-40
25
85
°C
IDD,T
1 Hz forced mode,
temperature measurement
only
1.0
µA
AT,25
25 °C
±0.5
°C
AT,full
0‒65 °C
±1.0
°C
Output resolution
RT
API output resolution
0.01
°C
RMS noise
NT
Lowest oversampling
0.005
°C
Supply current
Absolute accuracy
temperature17
17
Temperature measured by the internal temperature sensor. This temperature value depends on the PCB temperature, sensor element self-heating and ambient temperature and is typically
above ambient temperature.
Modifications reserved |Data subject not change without notice | Printed in Germany
Document number: BST-BME680-DS001-00 Revision_1.0_072017
Bosch Sensortec | BME680 Datasheet
13 | 50
2. Absolute maximum ratings
The absolute maximum ratings are determined over the complete temperature range using corner lots. The values are
provided in Table 9.
Table 9: Absolute maximum ratings
Parameter
Condition
Min
Max
Unit
Voltage at any supply pin
VDD and VDDIO pin
-0.3
4.25
V
-0.3
VDDIO + 0.3
V
-45
+85
°C
0
20 000
hPa
HBM, at any pin
±2
kV
Machine model
±200
V
Voltage at any interface pin
Storage temperature
≤ 65% r.H.
Pressure
ESD
Condensation
No power supplied
Modifications reserved |Data subject not change without notice | Printed in Germany
Allowed
Document number: BST-BME680-DS001-00 Revision_1.0_072017
Bosch Sensortec | BME680 Datasheet
14 | 50
3. Sensor usage
3.1 Sensor modes
The sensor supports low-level power modes: sleep and forced mode. These modes can be selected using the mode
control register (see Section 5.3.1.3). The key differences between the modes are summarized in Table 10.
After a power-up sequence, the sensor automatically starts in sleep mode. If the device is currently performing a
measurement, execution of mode switching commands is delayed until the end of the currently running measurement period.
It is important to note that, further mode change commands or other write commands to the control registers are ignored until
the mode change command has been executed. All control registers should be set to the desired values before writing to the
mode register.
Table 10: Low-level operation modes
Operation mode
mode
Key features
Sleep
00
No measurements are performed
Minimal power consumption
Forced mode
01
Single TPHG cycle is performed
Sensor automatically returns to sleep mode afterwards
Gas sensor heater only operates during gas measurement
In forced mode, temperature, pressure, humidity and gas conversion are performed sequentially. Such a measurement cycle
is abbreviated as TPHG (Temperature, Pressure, Humidity and Gas) in the following descriptions. Up to 10 temperature setpoints and heating durations for the gas sensor hot plate can be stored in the sensor registers. In the following, these setpoints and the corresponding measurements are identified as G 0 – G9.Figure 1 illustrates the handling of these measurement
sequences and the gas sensor hot plate is heated for the forced mode.
Figure 1: Sequence of ADC and gas sensor heater operation
Modifications reserved |Data subject not change without notice | Printed in Germany
Document number: BST-BME680-DS001-00 Revision_1.0_072017
Bosch Sensortec | BME680 Datasheet
15 | 50
3.2 Sensor configuration
3.2.1 Quick start
The sensor is configured by writing to a set of control registers (see Chapter 5 for a detailed list of all available registers and
their descriptions). This section illustrates, with the help of a basic step-by-step example, how to configure the sensor for
simple forced mode measurements with a single heater set-point. For a more detailed description of the measurement flow,
please refer to Section 3.3.
In this example, the sensor will be configured to use 2x oversampling for its temperature measurements, 16x oversampling
for the pressure signal, and 1x oversampling for humidity. Moreover, the gas sensor hot plate will be configured to be heated
for 100 ms at 300 °C before the gas measurement is performed.
First, the user must configure the oversampling settings for temperature, pressure and humidity by setting the control
registers osrs_t and osrs_h, respectively. Supported settings range from 16x oversampling down to 0x, which is
equivalent to skipping the corresponding sub-measurement. See Section 5.3.2 for further details.
1. Set humidity oversampling to 1x by writing 0b001 to osrs_h
2. Set temperature oversampling to 2x by writing 0b010 to osrs_t
3. Set pressure oversampling to 16x by writing 0b101 to osrs_p
It is highly recommended to set first osrs_h followed by osrs_t and osrs_p in one write command (see
Section 3.3).
Next, the user shall set at least one gas sensor hot plate temperature set-point and heating duration. Up to 10 heating
duration can be configured through the control registers gas_wait_x, where x ranges from 0 to 9. See Section 5.3.3 for
definition of register content. The corresponding heater set-points are stored in the registers res_heat_x. Section 3.3.5
explains how to convert the target heater temperature, e.g. 300 °C, into a register code. For forced mode operation, the used
heater set point is selected by setting the control register nb_conv to the heater profile to be used, e.g. to use
gas_wait_0 and res_heat_0, nb_conv shall be set to 0x0. Finally, gas functionality shall be enabled by
setting the run_gas_l bit to 1.
4.
5.
6.
7.
Set gas_wait_0 to 0x59 to select 100 ms heat up duration
Set the corresponding heater set-point by writing the target heater resistance to res_heat_0
Set nb_conv to 0x0 to select the previously defined heater settings
Set run_gas_l to 1 to enable gas measurements
Now, a single forced mode measurement with the above settings can be triggered by writing 0b01 to mode. For more
details on data readout, please see Section 5.3.1.3.
8. Set mode to 0b01 to trigger a single measurement.
Modifications reserved |Data subject not change without notice | Printed in Germany
Document number: BST-BME680-DS001-00 Revision_1.0_072017
Bosch Sensortec | BME680 Datasheet
16 | 50
3.2.2 Sensor configuration flow
Picture 2 illustrates which control registers must be set. For details on the individual control registers, please refer to
Chapter 5. Moreover, details on the measurement flow for the individual modes can be found in Section 3.3.
Forced Mode
Select oversampling for T, P and H
• Set osrs_x
Select IIR filter for temperature sensor
• Set filter
Enable gas coversion
• Set run_gas to 1
Select index of heater set-point
• Set nb_conv (indexing is zero-based)
Define heater-on time
• Convert duration to register code
• Set gas_wait_x (time base unit is ms)
Set heater temperature
• Convert temperature to register code
• Set res_heat_x
Set mode to forced mode
• Set mode to 0b01
Picture 2: Sensor configuration flow
Modifications reserved |Data subject not change without notice | Printed in Germany
Document number: BST-BME680-DS001-00 Revision_1.0_072017
Bosch Sensortec | BME680 Datasheet
17 | 50
3.3 Measurement flow
Referring to Figure 1, 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. For humidity and gas, such a filter is not needed and has not been implemented.
3.3.1 Temperature measurement
Temperature measurement can be enabled or skipped. Skipping the measurement is typically not recommended since
temperature information is used to compensate temperature influences in the other parameters. When enabled, several
oversampling options exist. The temperature measurement is controlled by the osrs_t setting which is detailed in
Section 5.3.2.2. For the temperature measurement, oversampling is possible to reduce the noise. The resolution of the
temperature data depends on the IIR filter (see Section 5.3.2.4) and the oversampling setting:
When the IIR filter is enabled, the temperature resolution is 20 bit
When the IIR filter is disabled, the temperature resolution is 16 + (osrs_t – 1) bit, e.g. 18 bit when osrs_t is set to ‘3’
3.3.2 Pressure measurement
Pressure measurement can be enabled or skipped. When enabled, several oversampling options exist. The pressure
measurement is controlled by the osrs_p setting which is detailed in Section 5.3.2. For the pressure measurement,
oversampling is possible to reduce noise. The resolution of the pressure data depends on the IIR filter (see Section 5.3.2.4)
and the oversampling setting:
When the IIR filter is enabled, the pressure resolution is 20 bit
When the IIR filter is disabled, the pressure resolution is 16 + (osrs_p – 1) bit, e.g. 18 bit when osrs_p is set to ‘3’
3.3.3 Humidity measurement
The humidity measurement can be enabled or skipped. When enabled, several oversampling options exist. The humidity
measurement is controlled by the osrs_h setting, which is described in detail in Section 5.3.2.1. For the humidity
measurement, oversampling is possible to reduce noise. The resolution of the humidity measurement is fixed at 16 bit ADC
output.
Modifications reserved |Data subject not change without notice | Printed in Germany
Document number: BST-BME680-DS001-00 Revision_1.0_072017
Bosch Sensortec | BME680 Datasheet
18 | 50
3.3.4 IIR filter
The environmental pressure is subject to many short-term changes, caused external disturbances. To suppress disturbances
(e.g. slamming of door or wind blowing into the sensor) in the output data without causing additional interface traffic and
processor work load, the BME680 features an internal IIR filter (see Section 5.3.2.4). It effectively reduces the bandwidth of
the temperature and pressure output signals and increases the resolution of the output data to 20 bit, noting that the humidity
and gas values inside the sensor does not fluctuate rapidly and does not require low pass filtering. The output of a next
measurement step is filtered using the following formula:
𝑥𝑓𝑖𝑙𝑡 [𝑛] =
𝑥𝑓𝑖𝑙𝑡 [𝑛 − 1] ∙ (𝑐 − 1) + 𝑥𝐴𝐷𝐶
𝑐
𝑥𝑓𝑖𝑙𝑡 [𝑛 − 1] is the data coming from the current filter memory, and 𝑥𝐴𝐷𝐶 is the data coming from current ADC acquisition.
𝑥𝑓𝑖𝑙𝑡 [𝑛] denotes the new value of filter memory and the value that will be sent to the output registers.
The IIR filter can be configured to different filter coefficients, which slows down the response to the sensor inputs. Note that
the response time with enabled IIR filter depends on the number of samples generated, which means that the data output
rate must be known to calculate the actual response time.
When writing to the register filter, the filter is reset. The next ADC values will pass through the filter unchanged and become
the initial memory values for the filter. If temperature or pressure measurements are skipped, the corresponding filter memory
will be kept unchanged even though the output registers are set to 0x80000. When the previously skipped measurement is
re-enabled, the output will be filtered using the filter memory from the last time when the measurement was not skipped. If
this is not desired, please write to the filter register in order to re-initialize the filter.
3.3.5 Gas sensor heating and measurement
The operation of the gas sensing part of BME680 involves two steps:
1. Heating the gas sensor hot plate to a target temperature (typically between 200 °C and 400 °C) and keep that
temperature for a certain duration of time.
2. Measuring the resistance of the gas sensitive layer.
Up to 10 different hot plate temperature set points can be configured by setting the registers res_heat_x, where x =
0…9 .The internal heater control loop operates on the resistance of the heater structure. Hence, the user first needs to
convert the target temperature into a device specific target resistance before writing the resulting register code into the sensor
memory map.
The following code will calculate register code that to be written to res_heat_x. Nevertheless, it is recommended to use
the sensor API available on github (Chapter 4) for a friendlier user experience.
var1 = ((double)par_g1 / 16.0) + 49.0;
var2 = (((double)par_g2 / 32768.0) * 0.0005) + 0.00235;
var3 = (double)par_g3 / 1024.0;
var4 = var1 * (1.0 + (var2 * (double) target_temp));
var5 = var4 + (var3 * (double)amb_temp);
res_heat_x = (uint8_t)(3.4 * ((var5 * (4.0 / (4.0 + (double)res_heat_range)) * (1.0/(1.0 +
((double)res_heat_val * 0.002)))) - 25));
where
par_g1, par_g2, and par_g3 are calibration parameters,
target_temp is the target heater temperature in degree Celsius,
amb_temp is the ambient temperature (hardcoded or read from temperature sensor),
var5 is the target heater resistance in Ohm,
res_heat_x is the decimal value that needs to be stored in register, where ‘x’ corresponds to the temperature profile
number between 0 and 9,
res_heat_range is the heater range stored in register address 0x02 , and
res_heat_val is the heater resistance correction factor stored in register address 0x00 (signed, value from -128 to
127).
Modifications reserved |Data subject not change without notice | Printed in Germany
Document number: BST-BME680-DS001-00 Revision_1.0_072017
Bosch Sensortec | BME680 Datasheet
19 | 50
Table 11: Variable names and register addresses for res_heat_x calculation
Variable name
Register address (LSB / MSB)
par_g1
0xED
par_g2
0xEB/0xEC
par_g3
0xEE
res_heat_range
0x02
res_heat_val
0x00
For each of the 10 temperature set-points, the heating duration must be specified. Referring to Figure 1, the heating phase
starts after the temperature, pressure and humidity measurements are complete. This means there is no heating in parallel
to these measurements, which is desirable to minimize undesired cross-influences between the various sensor components.
The heating duration is specified by writing to the corresponding gas_wait_x control register. Heating durations
between 1 ms and 4032 ms can be configured. In practice, approximately 20–30 ms are necessary for the heater to reach
the intended target temperature.
3.4 Data readout
The procedure goes as follows, the new_data_x bit (see Section 5.3.5.1) can be checked to see if a new data is generated.
If gas measurements are performed the gas_valid_r (see Section 5.3.5.5) and heat_stab_r (see Section 5.3.5.6) status bits
of the respectively field should be checked to ensure that the gas measurement was successful. If heat_stab_r is zero, it
indicates that either the heating time was not sufficient to allow the sensor to reach to configured target temperature or that
the target temperature was too high for the sensor to reach.
After the uncompensated values of temperature, pressure and humidity have been read, the actual humidity, pressure and
temperature need to be calculated using the compensation parameters stored in the device. Please refer to the BME6xy API
for more details.
3.4.1 Gas resistance readout
Readout of gas resistance ADC value and calculation of gas resistance consists of 3 steps
1. Read gas ADC value (gas_r) and gas ADC range (gas_range_r) (see Section 5.3.4)
2. Read range switching error from register address 0x04 (signed 4 bit)
3. Convert ADC value into gas resistance in ohm
The conversion is done as follows:
var1 = (1340.0 + 5.0 * range_switching_error) * const_array1[gas_range];
gas_res = var1 * const_array2[gas_range] / (gas_r - 512.0 + var1);
3.5 Output compensation
The BME680 output consists of the ADC output values. However, each sensing element behaves differently. Therefore, the
actual humidity, pressure and temperature must be calculated using a set of calibration parameters. This is implemented in
the BME6xy API.
Modifications reserved |Data subject not change without notice | Printed in Germany
Document number: BST-BME680-DS001-00 Revision_1.0_072017
Bosch Sensortec | BME680 Datasheet
20 | 50
Table 12: List of gas ranges and corresponding constants used for the resistance calculation
gas_range
Constants (to be integrated in the driver)
const_array1
const_array2
0
1
8000000
1
1
4000000
2
1
2000000
3
1
1000000
4
1
499500.4995
5
0.99
248262.1648
6
1
125000
7
0.992
63004.03226
8
1
31281.28128
9
1
15625
10
0.998
7812.5
11
0.995
3906.25
12
1
1953.125
13
0.99
976.5625
14
1
488.28125
15
1
244.140625
Modifications reserved |Data subject not change without notice | Printed in Germany
Document number: BST-BME680-DS001-00 Revision_1.0_072017
Bosch Sensortec | BME680 Datasheet
21 | 50
4. Software and use cases
4.1 BSEC software
BME680 sensor is intended to be used together with Bosch Software Environmental Cluster (BSEC) solution and BME6xy
sensor API to unlock its full potential. The BSEC software features intelligent algorithms which enable use cases such as
indoor-air-quality monitoring using the BME680.
Bosch Sensortec BSEC software is available as a closed source binary which will be made available via a Software License
Agreement (SLA) on the Bosch Sensortec website (https://www.bosch-sensortec.com/bst/products/all_products/BSEC).
Sensor API covers basic sensor communication and data compensation functions and is available as open-source code from
Github (https://github.com/BoschSensortec/BME680_driver).
The key features of the hardware-software system are:
Calculation of ambient air temperature outside of the device (e.g. phone)
Calculation of ambient relative humidity outside of the device
Calculation of indoor air quality (IAQ) level outside of the device
Moreover, the software algorithms handle humidity compensation, baseline as well as long-term drift correction of the gas
sensor signal.
Different power modes for the gas sensor and corresponding data rates are supported by the software solution:
Ultra low power (ULP) mode that is designed for battery-powered and/or frequency-coupled devices over extended
periods of time. This mode features an update rate of 300 seconds and an average current consumption of