Sorry for the long delay until I reported back. I have done more bughunting, fixing, and testing, with the following results:
Is there any known reason why a high VOC concentration (or sudden rise in concentration) might make the heater unstable? As I understand it, heater resistance regulation and gas sensor resistance measurement should be two distinct things, although the two parts are of course in close proximity.
Do you think the problem can be addressed by increasing the heater time above 50ms? Are there better suggestions? I'd be glad to hear them. Thank you in advance.
The original driver reads the heater stability status in bme680.c:1233, but does not seem to evaluate it. It is only returned to the caller and must be checked separately. I'll see what I can do, but I remember that I had to modify the driver anyway because it could not be integrated on my platform as-is.
Vincent, I tried with the original driver on a Raspi 3.
You can find the code in original_BME680_driver.cpp
I basically copied the example code from the github repo and modified the device's I²C address and the heater settings (to 370°C/50ms).
The log is in original_BME680_driver.log
When I suddenly place a small bottle of alcoholic desinfectant beneath the sensor, I can usually reproduce the issue - see line 830.
It seems to be less likely when I increase the heater period to 150ms, which is too long for my application - and even longer than 20~30ms required in the manual.
After discussing with the engineer team, we had the following suggestion:
1. please use the "sequential mode" in latest BME68x API not the force mode.
2. the minimal heat duration should be 140ms. And 140ms should be kept as unit means if you need longer duration, it should be (n*140) ms.
Can you try again with those suggestion?