Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 

    BME DevKit -- 8 Sensors giving different values

    BME DevKit -- 8 Sensors giving different values

    zrummler
    Established Member

    I'm running some code on the bme dev-kit (x8). Right now, I am looking at raw sensor data from the API -- not looking at BSEC. The code reads raw data from 1 of the 8 sensors and prints the data to serial. The problem is that depending on which of the 8 sensors I read from, the readings change. I can choose the sensor via #define SENS_NUM. For example, I define SENS_NUM as 0 and I get one set of raw gas resistance readings, but I define SENS_NUM as 1 and get a completely different set of raw gas resistance readings. It also appears that after running these sensors for some time, the raw gas resistance readings change, as if the sensor is recalibrating itself.

    The datasheet for the BME688 sensor mentions that some calibration parameters exist, but it does not say where they come from--who computed them, that is. I'd like some more information about these calibration values.

    1. Are the calibration values constant throughout the life of a BME688 sensor? Or are they updated periodically? It appears to me that they do not change.
    2. If they are updated periodically, who updates them? Is is the sensor's ASIC, or the BSEC library? It's not the sensor API (bme68x.h) because I've inspected the source code and do not see them writing to the calibration registers at all.
    3. If they are not updated, why are the raw gas resistance readings changing over time?
    3 REPLIES 3

    BSTRobin
    Community Moderator
    Community Moderator

    Hi zrummler,

    If you have a brand new BME688 dev kit, you should stabilize the sensors on the board before taking any measurements. To do so, connect the board to power with a Micro USB cable and let it run for at least 24 hours. This procedure is necessary only once and your board is then ready to take reliable measurements.

    Currently, calibration is for the use of BSEC. If the user doesn't use BSEC, the calibration solution should to be developed by the user themselves.

    As described in the BSEC integration document(latest BSEC2.4.0.0 https://www.bosch-sensortec.com/software-tools/software/bme688-software), selecting different BSEC configurations results in different calibration times. Calibration is implemented by the BSEC algorithm and there is no publicly available implementation of the algorithm. Users can obtain the current calibration parameters and save them, or load the last saved calibration parameters after the next boot.

    BSEC2.4.0.0 download.png2023-06-29_22h43_36.png

    zrummler
    Established Member

    Thanks, I should have mentioned that I've stabilized the devkit for well over 48 hours (I left the device plugged in over the weekend). I re-read your response--is there a difference between stabilization and calibration?

    I'm still wondering:

    1. Why two identical sensors are giving different raw gas resistance data, even when the board has been stabilized for well over 24 hours:  zrummler_0-1689178782950.png
    2. Why the data appears to change over time. There's lots of drift, and it takes several minutes for the data to settle.

    I would expect the data to be exactly the same, and to not change over time, because I'm keeping the devkit in an enclosed chamber; both sensors are being exposed to the exact same air. So why are they getting wildly different results? And why does it take so long to arrive at stable results?

    If it's perfectly normal for two identical sensors to be giving wildly different raw data, then I will have some more questions... 

    BSTRobin
    Community Moderator
    Community Moderator

    Hi zrummler,

    Stability is internal to sensors, while calibration is specific to software algorithms. If you are not using the BSEC algorithm, calibration only makes sense for your algorithm.

    Sensor to sensor has a resistance value error of ± 15%, even in the same environment.

    BME688 sensor to sensor deviation.png

    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