Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BME680 with BSEC produces on 0.0s, even after 20 min

    BME680 with BSEC produces on 0.0s, even after 20 min

    New Poster

    Dear all,

    I have integrated the "BSEC_1.4.8.0_Generic_Release" into my application to operate the BME680 based on "BME680 shuttle board" over I2C (SD0 set to GROUND).

    The result is: the callback function of "output_ready" produces only 0.0s, even after 10 mins of operation:

    730703 DEBUG: T: 0.00 degC, P: 0.00 hPa, H 0.00 rH, G: 0.00 ohms
    733703 DEBUG: T: 0.00 degC, P: 0.00 hPa, H 0.00 rH, G: 0.00 ohms
    736703 DEBUG: T: 0.00 degC, P: 0.00 hPa, H 0.00 rH, G: 0.00 ohms
    739703 DEBUG: T: 0.00 degC, P: 0.00 hPa, H 0.00 rH, G: 0.00 ohms
    742703 DEBUG: T: 0.00 degC, P: 0.00 hPa, H 0.00 rH, G: 0.00 ohms

    The setup is:
    toolchain: SysGcc, GCC 7.2.0, GDB 8.0.1 revision 3
    software: BSEC_1.4.8.0_Generic_Release

    integrated lib: BSEC_1.4.8.0_Generic_Release/algo/normal_version/bin/gcc/Cortex_M4F/libalgobsec.a

    integrated software samples (as is, unchanged!)


    callback functions I have populated:

    bus_read, bus_write, sleep (in ms), get_timestamp_us (in us), output_ready


    callback functions I have left empty:

    state_load, state_save.


    Any help to resolve this issue is much appreciated.


    7 REPLIES 7

    Thanks for your reply.

    Yes, the returned value of "bsec_iot_init" is 0.

    int bsecBm680Main()
    return_values_init ret;

    /* Call to the function which initializes the BSEC library
    * Switch on low-power mode and provide no temperature offset */
    ret = bsec_iot_init(BSEC_SAMPLE_RATE_LP, 0.0f, bus_write, bus_read, sleep, state_load, config_load);
    if (ret.bme680_status)
    /* Could not intialize BME680 */
    return (int)ret.bme680_status;
    else if (ret.bsec_status)
    /* Could not intialize BSEC library */
    return (int)ret.bsec_status;

    /* Call to endless loop function which reads and processes data based on sensor settings */
    /* State is saved every 10.000 samples, which means every 10.000 * 3 secs = 500 minutes */
    bsec_iot_loop(sleep, get_timestamp_us, output_ready, state_save, 10000);

    return 0;


    Community Moderator
    Community Moderator

    Hello mhammer3,

    I setup SW environment on STM32 and run bsec_iot_example.c. I found that the my code couldn't output the correct BSEC result at first. After I check code in example, the stack size of the system should be increased, otherwise the example code will not work properly.

    Attachment is my code, you could  refer them.

    Thanks BSTRobin, will try and let you know.