Bosch Sensortec Community

    cancel
    Showing results for 
    Search instead for 
    Did you mean: 

    BME688 Arduino recent example

    BME688 Arduino recent example

    hugehead
    Established Member

    Hello,

    I have purchased a BME688 breakout board and woudl like to run an Indoor Air Quality Example on Arduino ESP32. I do see different download options for BME688 Software. There are mentioned multiple times "Arduino Example" for BSEC 2.x Integration guide AND API integration Example.

    hugehead_0-1638276668064.png

    Another example "basic_config_state" is in BSEC 2.x Software package as "bsec".

     

    hugehead_1-1638276821055.png

     

    • Which example shall i use to run the BME688 on Arduino to get a proper IAQ value?

     

    I tried with bsec2 example "basic_config_state" on ESP32 with "bsec_serialized_configurations_iaq" and removed all EEPROM part which gives me an output like the following. It has values without IAQ until Gas_index = 9 appears. Please note, there is a time gap of 1:55 minute between iaq reading and new measurement.

    The example gives some measurements and then has a pause of ~2 minutes. Is that expected behavior?

    14:05:55.097 -> BSEC outputs:
    14:05:55.097 -> 	timestamp = 161860
    14:05:55.097 -> 	temperature = 27.94
    14:05:55.097 -> 	pressure = 97182.41
    14:05:55.097 -> 	humidity = 46.24
    14:05:55.097 -> 	gas resistance = 114746.75
    14:05:55.097 -> 	gas index = 0.00
    14:05:55.374 -> BSEC outputs:
    14:05:55.374 -> 	timestamp = 162140
    14:05:55.374 -> 	temperature = 28.18
    14:05:55.374 -> 	pressure = 97184.16
    14:05:55.374 -> 	humidity = 46.17
    14:05:55.374 -> 	gas resistance = 9183857.00
    14:05:55.374 -> 	gas index = 1.00
    14:05:56.752 -> BSEC outputs:
    14:05:56.752 -> 	timestamp = 163505
    14:05:56.752 -> 	temperature = 28.65
    14:05:56.752 -> 	pressure = 97181.55
    14:05:56.752 -> 	humidity = 45.17
    14:05:56.752 -> 	gas resistance = 8763841.00
    14:05:56.752 -> 	gas index = 2.00
    14:06:00.902 -> BSEC outputs:
    14:06:00.902 -> 	timestamp = 167670
    14:06:00.902 -> 	temperature = 29.60
    14:06:00.902 -> 	pressure = 97185.88
    14:06:00.902 -> 	humidity = 41.80
    14:06:00.902 -> 	gas resistance = 7777830.50
    14:06:00.902 -> 	gas index = 3.00
    14:06:01.620 -> BSEC outputs:
    14:06:01.620 -> 	timestamp = 168370
    14:06:01.620 -> 	temperature = 30.34
    14:06:01.620 -> 	pressure = 97184.32
    14:06:01.620 -> 	humidity = 41.39
    14:06:01.620 -> 	gas resistance = 603951.62
    14:06:01.620 -> 	gas index = 4.00
    14:06:02.312 -> BSEC outputs:
    14:06:02.312 -> 	timestamp = 169070
    14:06:02.312 -> 	temperature = 30.73
    14:06:02.312 -> 	pressure = 97186.54
    14:06:02.312 -> 	humidity = 40.90
    14:06:02.312 -> 	gas resistance = 579349.38
    14:06:02.312 -> 	gas index = 5.00
    14:06:03.023 -> BSEC outputs:
    14:06:03.023 -> 	timestamp = 169770
    14:06:03.023 -> 	temperature = 30.99
    14:06:03.023 -> 	pressure = 97192.75
    14:06:03.023 -> 	humidity = 40.49
    14:06:03.023 -> 	gas resistance = 556673.00
    14:06:03.023 -> 	gas index = 6.00
    14:06:03.732 -> BSEC outputs:
    14:06:03.732 -> 	timestamp = 170470
    14:06:03.732 -> 	temperature = 31.53
    14:06:03.732 -> 	pressure = 97188.94
    14:06:03.732 -> 	humidity = 39.87
    14:06:03.732 -> 	gas resistance = 137931.03
    14:06:03.732 -> 	gas index = 7.00
    14:06:04.375 -> BSEC outputs:
    14:06:04.375 -> 	timestamp = 171135
    14:06:04.375 -> 	temperature = 31.89
    14:06:04.375 -> 	pressure = 97187.52
    14:06:04.375 -> 	humidity = 39.34
    14:06:04.375 -> 	gas resistance = 177716.08
    14:06:04.375 -> 	gas index = 8.00
    14:06:05.104 -> BSEC outputs:
    14:06:05.104 -> 	timestamp = 171835
    14:06:05.104 -> 	iaq = 25.00
    14:06:05.104 -> 	iaq accuracy = 0
    14:06:05.104 -> 	temperature = 32.15
    14:06:05.104 -> 	pressure = 97189.34
    14:06:05.104 -> 	humidity = 38.76
    14:06:05.104 -> 	gas resistance = 214765.09
    14:06:05.104 -> 	compensated temperature = 29.15
    14:06:05.104 -> 	compensated humidity = 49.76
    14:06:05.104 -> 	gas estimate 1 = 0.25
    14:06:05.104 -> 	gas estimate 2 = 0.25
    14:06:05.104 -> 	gas estimate 3 = 0.25
    14:06:05.104 -> 	gas estimate 4 = 0.25
    14:06:05.104 -> 	gas index = 9.00

     

    Attached is my arduino exmaple code.

    Kind Regards

    Matthias

     

     

     

     

    9 REPLIES 9

    hugehead
    Established Member

    Thanks a lot, let me try if that solves my issues

     

    No problem, let me know how you get on or if you have any other issues 🙂

    hugehead
    Established Member

    Hello,

    Again, thank you very much for your help! I ran the code with your suggested sensor type:

    bsec_virtual_sensor_t sensorList[] = {
      BSEC_OUTPUT_RAW_TEMPERATURE,
      BSEC_OUTPUT_RAW_HUMIDITY,
      BSEC_OUTPUT_RAW_GAS,
      BSEC_OUTPUT_IAQ,
      BSEC_OUTPUT_STATIC_IAQ,
      BSEC_OUTPUT_CO2_EQUIVALENT,
      BSEC_OUTPUT_BREATH_VOC_EQUIVALENT,
      BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_TEMPERATURE,
      BSEC_OUTPUT_SENSOR_HEAT_COMPENSATED_HUMIDITY
    };

    Unfortunately, i get an error after the first data coming in. This is as long as BSEC_OUTPUT_RAW_GAS_INDEX is not part of the sensor. I am assuming, that it might have to do with my sensor config, it is still the original one called bsec_serialized_* .

    12:55:52.317 -> BSEC outputs:
    12:55:52.317 -> 	timestamp = 1050
    12:55:52.317 -> 	temperature = 33.53
    12:55:52.317 -> 	pressure = 97709.91
    12:55:52.317 -> 	humidity = 21.84
    12:55:52.317 -> 	gas resistance = 301176.47
    12:55:52.317 -> 
    12:55:52.317 ->  no bsec run 
    12:55:52.317 -> BSEC error code : -4

     

    Did that happen to you as well?

    BTW: Meanwhile, the BSEC2 github repo was filled with content. https://github.com/BoschSensortec/Bosch-BSEC2-Library

    There are multiple examples now, i remember that this repo was empty  a while ago. Anyway, i get an error while comilation which is described in there: 

     

    https://github.com/BoschSensortec/Bosch-BSEC2-Library/issues/1

     

    Kind Regards!

    Hi,

    No I don't have any error returned by the BSES instance. When I look at bsec_datatypes.h in the BSEC 2 library your error is:

    BSEC_E_DOSTEPS_TSINTRADIFFOUTOFRANGE = -4, /*!< Past timestamps passed to bsec_do_steps() */

    That looks like it comes from the Bsec::processData() function in the Arduino API which is called by bsecInst.run(). It shouldn't be possible as bsecInst.run() always updates the timestamps passed to the BSEC 2 library. Maybe there's an issue with calling millis() on your device but doubt it. You could try debugging by invoking millis() every time you call bsecInst.run() and make sure it's incrementing. Other than that I can't really help much unless you upload your ino file so we can see what your current use of the API is like.

    Thankyou very much for highlight that they've filled the the BSEC2 arduino repo! Shame they didn't test the examples. Also are you using that Arduino library from github? That seems to be different to the version I downloaded from the bosch website. It might also have bugs in it?

    Cheers,

    BSTRobin
    Community Moderator
    Community Moderator

    Hello hugehead,

    Could you provide your source file you used, then we check it.

    Thank for your kindly sharing in commmunity, iamdjango,

    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