Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BME680 state_save / state_load problem

    BME680 state_save / state_load problem

    Established Member

    using Arduino 1.88 / 1.85 with ESP8266 (lib 2.50 / 2.42) and two BME680 sensors.

    Final goal is to use these sensors in portable devices, but at first in normal mode without sleeping process.

    If using the config_state sample I can see that the state_save and state_load will not work correct.

    what is going on:
    1) BME starts - after some time will get right values as expected with accuracy=1
    2) some time later have still valid values with accuracy=2, sometimes is falling back to accuracy=1
    3) auto save procedure (with accuracy=2 (?) or even 1 (!) ) will be done
        (have canged this in code that I allow autosave only if accuracy >=2 - maybe "3" is correct? )
    4) After autosave to EEPROM with accuracy=3  reboot the ESP (power loss...)

    -> Load values from EEPROM

    5) BME start and show at first minutes no valid values and accuracy=0  (maybe correct ?)
    6) After some minutes accuracy=2 but IAQ is still 0 - for a very long time (hours).
        Resistance is in normal range (as before restarting) - so no changes.

    The only way is erase the EEPROM and start at new - then all is fine again (until next restart).

    I already made some control procedures - but not sure how to get a valid config_load after restarting.

    BTW: I have compared the saved and loaded values before - identical.

    Any idea?



    36 REPLIES 36

    Hello! I am currently using the BME680 with the ESP32. I am putting the ESP32 in deep sleep and using ultra low power mode, so it is taking measurements every 5 minutes. I was initially running it in low power mode without deep sleep and achieved an accuracy of 3 for IAQ and had state_save turned on. I then switched the code to run the ESP32 in ultra low power mode with deep sleep but the IAQ reading was very off (more than 100) and had an accuracy of  0 in the beginning even though I had loaded the previous state. After a couple of hours, the IAQ readings were still very off even though the accuracy showed 3. I know that the 0 accuracy is due to the run-in time of BSEC in ultra low power mode but what is the reason for the wrong IAQ values? Could it be because I changed from low power mode to ultra low power mode?

    Community Moderator
    Community Moderator

    @Apurva wrote:

    Could it be because I changed from low power mode to ultra low power mode?

    This would explain it. BME680's gas sensor need to reach some equilibrium, which won't be the same in different operating modes. Therefore it is not possible to re-use a state file from one power mode to the other.