adafruit / Adafruit_CircuitPython_BME680

CircuitPython driver for BME680
MIT License
57 stars 41 forks source link

Gas sensor values fundamentally UNRELIABLE & BROKEN in multiple ways #74

Open puterboy opened 1 month ago

puterboy commented 1 month ago

I have been rigorously observing the gas sensor values and observed the following multiple broken behaviors (I am using version 3.7.8)

  1. The initial gas sensor reading is always just about 4X subsequent readings (this is not true for the temperature/humidity/pressure readings)
  2. If the sensor is read repeatedly in relatively close succession (e.g., within 5 seconds), the gas value keeps increasing (the faster you re-read, the faster it goes up). The temperature/humidity/temperature values remain stable.
  3. After such an artificial increase, the value of the gas sensor only slowly returns to normal (drops by about 4-5 kOhms every minute)
  4. If two processes call the sensor in close proximity, then the sensor again spikes to 3-4 times its previous value (again this is only true for the gas reading, not the temperature/humidity/pressure readings). However, unlike in # 3, the value returns pretty much to baseline on the next reading (provided a minute or so has elapsed)
  5. Different boards give widely different values for the gas reading (while consistent on temperature/humidity/pressure).
  6. The output of the gas sensor seems to be very temperature dependent.

Assuming that I don't just have a bunch of bad sensors, it seems like some or all of this is due to bugs in the driver.

At best the gas sensor can be relied on to provide relative values when sampled no more frequently than about once a minute (without restarting between samples).