Skip to content

Commit 41fca05

Browse files
authored
Merge pull request #68 from CTho9305/main
Fix #67
2 parents 467981e + 08cab89 commit 41fca05

File tree

1 file changed

+7
-3
lines changed

1 file changed

+7
-3
lines changed

adafruit_bme680.py

+7-3
Original file line numberDiff line numberDiff line change
@@ -207,6 +207,9 @@ def __init__(self, *, refresh_rate: int = 10) -> None:
207207
self._humidity_oversample = 0b010
208208
self._filter = 0b010
209209

210+
# Gas measurements, as a mask applied to _BME680_RUNGAS
211+
self._run_gas = 0xFF
212+
210213
self._adc_pres = None
211214
self._adc_temp = None
212215
self._adc_hum = None
@@ -389,9 +392,9 @@ def _perform_reading(self) -> None:
389392
self._write(_BME680_REG_CTRL_HUM, [self._humidity_oversample])
390393
# gas measurements enabled
391394
if self._chip_variant == 0x01:
392-
self._write(_BME680_REG_CTRL_GAS, [_BME680_RUNGAS << 1])
395+
self._write(_BME680_REG_CTRL_GAS, [(self._run_gas & _BME680_RUNGAS) << 1])
393396
else:
394-
self._write(_BME680_REG_CTRL_GAS, [_BME680_RUNGAS])
397+
self._write(_BME680_REG_CTRL_GAS, [(self._run_gas & _BME680_RUNGAS)])
395398
ctrl = self._read_byte(_BME680_REG_CTRL_MEAS)
396399
ctrl = (ctrl & 0xFC) | 0x01 # enable single shot!
397400
self._write(_BME680_REG_CTRL_MEAS, [ctrl])
@@ -492,6 +495,7 @@ def _set_heatr_conf(
492495
else:
493496
hctrl = _BME68X_DISABLE_HEATER
494497
run_gas = _BME68X_DISABLE_GAS_MEAS
498+
self._run_gas = ~(run_gas - 1)
495499

496500
ctrl_gas_data_0 = bme_set_bits(
497501
ctrl_gas_data_0, _BME68X_HCTRL_MSK, _BME68X_HCTRL_POS, hctrl
@@ -598,7 +602,7 @@ def _calc_gas_wait(self, dur: int) -> int:
598602
factor: int = 0
599603
durval: int = 0xFF # Max duration
600604

601-
if dur < 0xFC0:
605+
if dur >= 0xFC0:
602606
return durval
603607
while dur > 0x3F:
604608
dur = dur / 4

0 commit comments

Comments
 (0)