Datasheet
Bosch Sensortec | BME680 Datasheet
19 | 50
Modifications reserved |Data subject not change without notice | Printed in Germany
Document number: BST-BME680-DS001-00 Revision_1.0_072017
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 <5:4>
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<7:0> 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 <7:4> (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.