Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BME688 IAQ Recovery Curve

    BME688 IAQ Recovery Curve

    New Poster


    We're working on a portable, battery-based product for real-time air quality measurement using a single BME688 sensor.
    We are currently using BSEC2 with a custom made ESP32 based board.
    The configuration used is generic_33v_3s_4d.

    Main problem

    We have been testing several different sensors and I’m getting some strange results. The process to come to this was the following

    - Inserted 2 calibrated modules into a hermetic box.
    - The environment was contaminated with a source of controlled combustion (small fire producing smoke).
    - Allow a few minutes for it to generate peak readings.
    - Both sensors are removed from the box and returned to a "clean" environment.
    - Wait for the readings to drop.

    As shown in the graphs below, that’s the type of response we are getting with a 10 minutes update. A steep climb and a very slow drop that doesn’t reach initial value even when exposed to external clean air.

    aqi (2).png

    The readings drop, however, very slowly and do not return to the original value even after a lapse of 20 hours.
    Seems like the calibration baseline has drifted in this period of time and the stabilization time is out of reach for any kind of real-time outdoor mobile application.

    Some solution approach we have tested

    1. An attempt is made by firmware to "copy" the operation records of a calibrated sensor to an uncalibrated sensor. This causes the readings to constantly increase until they reach the maximum possible for an indefinite time.
    2. An attempt is made to disable the self-calibration process in the background that includes the sensor firmware. By not loading the configuration bytes of said process, the sensor simply does not generate valid readings at any time, where it constantly indicates readings of zero value.
    3. An attempt is made to modify the firmware to read the variables more constantly without placing the module in "sleep" mode. This in order not to restart the microcontroller and keep the sensor "alive" for longer. The answer however, although it becomes easier to obtain, does not generate significant changes as the reading decreases and stabilization.
    4. An attempt is made to over-trigger the uncalibrated values above the incorrect measurement value. This does not impact the final answer in any way.

    Any ideas of why this could be happening and how it can be solved?

    Thank you!

    1 REPLY 1

    Community Moderator
    Community Moderator

    Hi ANick,

    After readings drop, it's normal that IAQ value is different from the original value. Because IAQ value is relative, not absolute. For example the config_file_4d or config_file_28d which from BSEC generic released package, BSEC will consider the before 4 or 28 days as a reference to count the baseline which is used for calculating the IAQ value, as if you used 4 days-config_file, the peak value will be involved in calculating the baseline, so the subsequent measurements for 'clean air' will be higher than the original value.