Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BME680 with ESP32 ulp-coprocessor

    BME680 with ESP32 ulp-coprocessor




        I want to see if it is possible to use an ESP32 ulp-coprocessor to read data from BME680. For example, at this LINK you can see an example for BMP180. But here I think the main problem will be that the ulp-coprocessor uses the assembly programming language (and perhaps the BSEC library does not support this).
        Does anyone have information on this?


    10 REPLIES 10

    Community Moderator
    Community Moderator

    Hello gran1sh,

    Could we see the link?
    As you know, BME680 driver code and BSEC were written by C language.

    Hi BSTRobin, 

    To follow the link, you could click on the blue LINK inscription. But here is the link itself:

    The BMP180 driver code is also written in C (C ++), but the ULP coprocessor allows polling I2C sensors. That is why I am asking about such an opportunity for the BME680. But I hope more that someone already has such a solution, because to do it from scratch you need to be highly motivated.

    Thanks, Regards.

    Community Moderator
    Community Moderator

    Hello gran1sh,

    There are two suggestions:
    1. From this link, you can check whether you can compile BME680 driver code in this compiler? If yes, you can migrate the whole BME680 driver code to your platform as long as you migrate the following driver functions required by BME680;
    /*! Bus read function pointer */
    bme680_com_fptr_t read;
    /*! Bus write function pointer */
    bme680_com_fptr_t write;
    /*! delay function pointer */
    bme680_delay_fptr_t delay_ms;

    2. If the code in 1 can run successfully, to run BSEC we could compile BSEC library for your platform if you could provide compilation environment.

    BSTRobin, thanks for the answer

    Writing the assembler code for the coprocessor can be done in Arduino IDE and I will try to do what you suggested