Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    BME688: Chip ID and operation

    BME688: Chip ID and operation


    Hello everyone,

    Currently, I am working with the sensor BME 688 with the board Nucleo-WL55JC1. 

    I am reading and testing the code with the self-test ( and the code did not work. I tracked the code and in the file bme68x.c line 156, the chip id was not equal to the constant BME68X_CHIP_ID which led to the error Device Not Found.

    I have 2 assumptions:

    • There was something happened with the chip or the code (I only changed the I2C read and write function - attached later). For this I am not sure where to check.
    • The  sensor BME688 did not work properly (did not turn on, hardware error,...). How can I check if this assumption is correct.

    I changed the code of I2C read and write based on the attached folder of this reference (In the comment) . Basically, I used the

    HAL_I2C_Master_Transmit and HAL_I2C_Master_Receive. I also commented out the SPI related functions.
    Does anyone have any idea how to clarify my 2 assumptions?
    Thank you, Huy Nguyen.


    11 REPLIES 11

    Community Moderator
    Community Moderator

    Hi huytyskland,

    As you haven't got correct Chip ID, you should check your I2C or SPI hardware communication.

    In your another topic we had provide example code on STM32 fore your reference.


    Thank you for your response.

    How about the way to check if the sensor still works or not?

    Community Moderator
    Community Moderator

    Hi huytyskland,

    You could capture I2C or SPI waveform and check the time sequence in data sheet.

    For example, I2C tme sequence.

    I2C multiple byte read.png

    So, If I understand you correctly, I will execute the requesting-receiving process (such as the example in the I2C read in the datasheet). 

    If I receive some signal displayed in waveform, then I know the sensor still works. Am I right?

    If that is the case, I assume this testing process is executed after the initialisation of the sensor. However, right now, the intialisation does not start as expected (my doubt is the software cannot read the chip ID leading to the error of "No Device Found" as I mentioned in the post). Thus, without initialisation, the testing process cannot be executed and I cannot know whether the sensor works or not.

    Could you kindly clarify my doubt or I am thinking incorrectly?