Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BME680: BSEC warning code: 100

    BME680: BSEC warning code: 100

    Established Member

    I have tried to use two BME680 at ESP32 for compare the values for two identical sensors.

    Using for each BME a seperate I2C bus.

    If I try the BME680_basic_data_logging sample all is working fine, I get values from both sensors.

    Using the BME680_config_state sample I will get for the second sensor the iaqSensor.status value "100" back.
    Didn't found it in documentation / source code - what does this mean?

    As explanation - I use an array for the sensors - maybe the bsec lib have any problems here with it?

    Bsec iaqSensor[2];
    iaqSensor[0].begin(BME680_I2C_ADDR_PRIMARY, I2Cone);
    iaqSensor[1].begin(BME680_I2C_ADDR_PRIMARY, I2Ctwo);
    void loop(void)

    if (iaqSensor[0].run()) {
    if (iaqSensor[1].run()) {

    of course modified the functions:

    checkIaqSensorStatus(int n)
    updateState(int n)
    loadState(int n)

    So two questions:
    - what does mean the errorcode 100
    - is it possible to use the bsce lib with two sensors in one sketch?



    EDIT: In the meantime I have seen that it seems not to be possible without major changes in lib to use 2 sensors with this samples.


    6 REPLIES 6

    Community Moderator
    Community Moderator

    Hi  michar_pr,

    As you rightly pointed out, the low level libary is still a single instance. The internal algorithm is designed to support multi-instance, but future releases might expose those interfaces.




    I am experiencing the same problem (2 BME680 on one I2C)

    Are there any plans that this will be fixed soon?




    Another user on this forum reports success with this pseudo-code:

    Until the BSEC library allows for multiple simultaneous instances, a workaround of using save/load state to switch a single instance of BSEC between multiple sensors by keeping multiple state files.

    The same mechanism can also be used to run BSEC in a separate host (e.g. a cloud server running BSEC on thousands of IoT nodes), or to run BSEC from a log file (e.g. defer the processing of BSEC until AC power is available to conserve battery).


    I nearly missed you answer. I was expecting the forum to send a mail if someone replies but I did not get a notification mail.

    Meanwhile I found that current BSEC library on github has an example for 2 devices on a single I2C bus. With the information from here: (Post #3) I finally managed to run the multi example on an arduino mega.

    Haven't looked at the example in detail yet, is it handling the states of the sensors to a single BSEC instance?

    (Found the checkbox to send email of someone replies)