Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 
    SOLVED

    can burn in for bme688 take longer than 48 hours? does it depend on environment?

    can burn in for bme688 take longer than 48 hours? does it depend on environment?

    garberw
    New Poster

    I bought four Adafruit bme688 breakout boards.  Until last week I have been using them with the Adafruit driver.  One of the bme688 was in use for much longer than the others.  Last week I set up and started using the BOSCH BSEC library.  I have purchased four EEPROMs to store the calibration but they have not got here yet.  In the mean time I have been running the example basic.ino with the only modification being that I am using an SPI begin function for BSEC instead of the standard I2C begin function.  I assume I have done this correctly as the rest of it (temperature, humidity, pressure, gas resistance) seems to be working.  One of the four bme688s gives a meaningful value for co2 and iaq and iaqAccuracy=3 indicating it has auto-calibrated at some point.  This is the one which was purchased long ago and has been running (with the Adafruit driver) for a year.  The 4th bme688 (ignore).  The other two bme688s have been running for over 48 hours continuously since starting BSEC and give iaqAccuracy=0 still and have iaq=50 exactly constant and co2=600 exactly constant.  Regarding the bad two bme688:

    (1) should I just keep waiting for them to calibrate?  can I speed this up?  I assume when I get the EEPROMS I can use the example code "basic_config_state.ino".  Then will it take 5 minutes to calibrate each time as claimed by Adafruit on their product page?

    (2) what is all this I read on your forum about "external stimuli" like squirting an alcohol vaporizer or water spray can or other volatile organic compound (VOC) gasses like ammonia near the bme688.  How exactly would this be done and for how long?  Leave an alcohol soaked paper towel next to the bme688?  You did not recommend this.

    I understand how this whole process is supposed to work but it is still stuck at iaqAccuracy=0.  gas_resistance for these bad sensors is around 200kOhm to  500kOhm.  Perhaps the air quality has not varied enough for it to calibrate.

    Attached is the wrapper library for BSEC that copies the BSEC examples basic.ino and basic_config_state.ino modified for SPI not I2C.

    3 REPLIES 3

    garberw
    New Poster

    I am using an Adafruit ItsyBitsy M4 express with Cortex M4 microcontroller.  My file ~/.arduino15/packages/adafruit/hardware/samd/1.7.11/platform.local.txt is:

     

    # garberw added these
    # compiler.cpp.extra_flags=
    # -DRTC_NONE
    # -DSMALL_RUN_LOOP_DELAY
    # -DSELECT_IAQ1
    # -DSELECT_IAQ2
    compiler.cpp.extra_flags=-DSELECT_IAQ2
    #compiler.c.elf.extra_flags=
    compiler.libraries.ldflags=/home/garberw/Arduino/libraries/BSEC_Software_Library/src/cortex-m4/fpv4-sp-d16-hard/libalgobsec.a

    The main file "platform.txt" in the same directory did not need to be changed.

     

    I got it working for all three bme688 breakout boards. (1) First I copied all the fields in the Bsec c++ struct to my own c++ struct immediately after calling run.  I do not know if this is necessary to do immediately but I needed to copy them anyway. (2) Next it works a lot better if you do not have a main loop that is too slow.  The examples show calling function "run()" in the main loop and nothing else but printing the results.  I got it to loop every three seconds which is about the time to call run() anyway.  The code I posted above attempts to imitate the Adafruit driver asynchronous "performReading()"  which waits for the current measurement to finish then gets the data.  Not sure what the variable "Bsec.nextCall" means but that's how I got the end time of the measurement.

    It takes 40 min to an hour to calibrate.  Putting an alcohol-soaked rag next to the sensor could speed it up.  BSEC example "basic_config_state.ino" should work.

    BSTRobin
    Community Moderator
    Community Moderator

    Hi garberw,

    (1)If the accuracy doesn't change for a long time, we think which is caused by the stable environment, and recommend the customer to try spraying alcohol around, just a little is ok.
    (2)And the days number of config file means, for example, 4days mean the sensor will regard all the data for 4 days as a reference of calibration, not relative to the time of calibration.
    (3)'burn-in' time means the sensor used first time, which needs about 2 days to calibrate in LP mode, if you use ULP mode, which will take longer time. 'run-in' time means the time taken by calibration after each power-on after completing 'burn-in', which needs several minutes.
    So you can record the data as soon as the accuracy is 3.

    Icon--AD-black-48x48Icon--address-consumer-data-black-48x48Icon--appointment-black-48x48Icon--back-left-black-48x48Icon--calendar-black-48x48Icon--center-alignedIcon--Checkbox-checkIcon--clock-black-48x48Icon--close-black-48x48Icon--compare-black-48x48Icon--confirmation-black-48x48Icon--dealer-details-black-48x48Icon--delete-black-48x48Icon--delivery-black-48x48Icon--down-black-48x48Icon--download-black-48x48Ic-OverlayAlertIcon--externallink-black-48x48Icon-Filledforward-right_adjustedIcon--grid-view-black-48x48IC_gd_Check-Circle170821_Icons_Community170823_Bosch_Icons170823_Bosch_Icons170821_Icons_CommunityIC-logout170821_Icons_Community170825_Bosch_Icons170821_Icons_CommunityIC-shopping-cart2170821_Icons_CommunityIC-upIC_UserIcon--imageIcon--info-i-black-48x48Icon--left-alignedIcon--Less-minimize-black-48x48Icon-FilledIcon--List-Check-grennIcon--List-Check-blackIcon--List-Cross-blackIcon--list-view-mobile-black-48x48Icon--list-view-black-48x48Icon--More-Maximize-black-48x48Icon--my-product-black-48x48Icon--newsletter-black-48x48Icon--payment-black-48x48Icon--print-black-48x48Icon--promotion-black-48x48Icon--registration-black-48x48Icon--Reset-black-48x48Icon--right-alignedshare-circle1Icon--share-black-48x48Icon--shopping-bag-black-48x48Icon-shopping-cartIcon--start-play-black-48x48Icon--store-locator-black-48x48Ic-OverlayAlertIcon--summary-black-48x48tumblrIcon-FilledvineIc-OverlayAlertwhishlist