Closed robert-hh closed 5 years ago
Bosch API for ref: https://github.com/BoschSensortec/BME680_driver/blob/e6b9bbade923d792d9ccd822ab5fada99bf40501/bme680.c#L908
Looks like the problem is due to splitting the computation into two lines.
https://github.com/adafruit/Adafruit_CircuitPython_BME680/blob/master/adafruit_bme680.py#L192
which will use an updated var1
for the second part of the computation.
What is the "re-conditioning" you mention for the humidity reading?
Yes, this updated var1 was the problem. Reconditioning is documented by Bosch as:
For convenience, I made a PR for that. https://github.com/adafruit/Adafruit_CircuitPython_BME680/pull/14 P.S.: The re-conditioning worked. Humidity readings are now withing the specs.
The pressure values are slightly wrong. They are about 10hPa too high, compared against calibrated device and other implementations. The reason is a wrong code. Lines 192-194 should be:
Compared against the Bosch reference code. After the change, the result matches the reference pressure value substantially better and also matches other implementations. P.S.: I should note that the humidity reading of my Adafruit sensor are completely wrong, 83.3% instead of 75.5% over a saturated NaCl solution, and that with every driver I tried. I had that with a BME280 too. After re-conditioning, the situation improved.