Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 

    BME680: IAQ accuracy going from 3 o 1

    BME680: IAQ accuracy going from 3 o 1

    micha_pr
    Established Member

    Hello,

    using the BME680 as indoor sensor in office room I can see red marked IAQ accuracy

    18:57:52.693 -> 164814095, 24.24, 101317.00, 54.56, 731373.00, 38.85, 3, 24.18, 54.75, 32.37, 529.50, 0.56
    18:57:55.732 -> 164817096, 24.24, 101321.00, 54.58, 721204.00, 39.58, 3, 24.18, 54.77, 32.77, 531.06, 0.56
    18:57:58.729 -> 164820096, 24.25, 101319.00, 54.62, 729001.00, 36.84, 1, 24.19, 54.79, 31.31, 525.23, 0.55
    18:58:01.735 -> 164823096, 24.24, 101319.00, 54.63, 721976.00, 37.78, 1, 24.18, 54.84, 31.81, 527.22, 0.55
    18:58:04.726 -> 164826095, 24.25, 101317.00, 54.64, 712818.00, 42.12, 1, 24.19, 54.82, 34.12, 536.47, 0.57

    There was no reason for changing the accuracy to 1, I think...
    I understand that after a while in little changing environmental conditions the accuracy may fall down to value 2 until it can come back to value 3, but why to value 1?

    Value 1 will be there for at least 14 hours, as I can see.

    (BTW: it was taking 3 days until the IAQ accuracy was set to 3 - in office room. I know... stable environment ...)

    And - does it make sense to (auto-)save this config state (with value 1) and overwrite the existing state 3?
    Or can it help to save the old config state and reload it if there are no changes in environmental conditions?

    Thanks!

    Michael

    20 REPLIES 20

    micha_pr
    Established Member

    Hi,
    as you can see the final values are not very smooth over long time. The window is open multiple times every day - it is an office room.
    In chart you see different sensors - a real CO2 sensor, SGP30 (Eurotronic) and 2 sensors BME680.
    The two BME 680 all the time have nearly same values - so there are no problems with this.
    Becasue of different MOx sensors here are different values, but tendency is ok.

    micha_pr_0-1642507514567.png

    But the BME sensors now not going back to other accuracy - even not after long time.
    I have seen it already before and think that this maybe because of the stored values.
    After reboot will be taken the old config state - and that's why does not come back to "2" or "3".
    The only way is (was last time) to delete the old config from sensor (reboot without reading old config), then all will be ok. again after short time.

    What is "strange" for me - the values seems to be ok (eCO2/VOC) only the accuracy is down.

    Maybe you could check the config_state values (attached)? Something wrong here?
    Will wait with reboot (without config file) until next reply 😉

    Thanks!

    BSTRobin
    Community Moderator
    Community Moderator

    Hello micha_pr,

    Please check it with prevous suggestion "You could try to open the windows or put a glass of wine next to sensor, check if IAQ accuracy would goes up to 3.".

    Minhwan
    Community Moderator
    Community Moderator

    Hello, 

     

    I'd like to jump into this conversation loop. 

    I checked your code briefly and quite different from our example code. 

    Of course, I agree with Robin that main reason why IAQ accuracy dropped to 1 from 3 could be your stable test environment.

    But, I'd like to mention about your code. 

    You forcely sleep your system, but technically the sleep time you could get from BME680. 

    Please download our bsec as below and check bsec_iot_loop function in bsec_integration.c and bsec_iot_example.c.

    https://www.bosch-sensortec.com/software-tools/software/bsec/

    Please let me know if you have any questions 🙂 

    Thank you. 

     

     

    micha_pr
    Established Member

    @BSTRobin :

    yes, of course have tested.
    With floor soap and Wine - after it was going down to minimal values - it came back to previous values again (with accuracy =1).

    Yesterday the sensor came back to "2" and then "3" ... without additional stimulations...

    Really I'm not sure about this lines in sample code:

     

        /* Update every STATE_SAVE_PERIOD milliseconds */
        if ((stateUpdateCounter * STATE_SAVE_PERIOD) < millis()) {
          update = true;
          stateUpdateCounter++;
        }

     

    Here the sate will be saved - even if accuracy is low (as sample "1") - so maybe a not optimal state for reboot could be saved?
    I will change it in my code (add iaqAccuracy >= 3)  - maybe it can help.

     

        if ((iaqSensor1.iaqAccuracy >= 3) || (iaqSensor2.iaqAccuracy >= 3)) {
          update = true;
          stateUpdateCounter++;
        }

     

    Additional - the first update will be done (in your code) even if one sensor have accuracy "0"  - I have changed it too, it is working (save then some later only)

    @ Minhwan :
    The sample code was at very first begin the same as your code - with these described problems.

    Only after that it was modified (see above) - and I think the delay(3000+x) should not be a problem, because I still wait for the ready sensor.
    And I think I *must* not request every value, right?
    BTW: after modification the accuracy seems to be more stable - for longer time... but maybe not because of this, of course.

    I think the values are still valid, even if accuracy was falling down to "1" - but it is of course misleading or unsettling for users...

    Thanks!

    Michael

    Minhwan
    Community Moderator
    Community Moderator

    Hello micha_pr, 

     

    Thanks for your update. 

    Yap, it's like first calibration and second calibration and so on. Hope you understand our system better than before. 

    If you solve the your question, could you choose solution, then we close this issue 🙂 

    Thank you. 

    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