Bosch Sensortec Community

    Showing results for 
    Search instead for 
    Did you mean: 

    How to distinguish BME680 from BME688 in firmware.

    How to distinguish BME680 from BME688 in firmware.


    Hello, I have designed a product which has the BME680.

    Now we like to upgrade to the BME688 which is pin/footprint compatible, so far so good.

    But how can I determine from the firmware if I have the older BME680 or the newer BME688 ? They both have the same I2C address and the have the same chipId 0x50..

    Somehow my firmware (which I can upgrade) needs to be able to work on older boards with the 680, and on newer boards with the 688.

    4 REPLIES 4

    Community Moderator
    Community Moderator

    Hi Strooom,

    Could we know what features of the BME68X are used in your product first?

    Measuring temperature, relative humidity, barometric pressure and VOCs.

    Here is a link to the hardware design :


    By carefully comparing both datasheets, I see that the BME688 has an additional variant register (registeraddress 0xF0), returning the value 0x01.

    I don't know what the BME680 will return if you read this, but maybe this register can be used to detect 680 vs 688 from firmware.

    As I have some hardware with the BME680 on it, I will test it tomorrow.

    After testing, the BME680 returns 0x00 when reading register 0xF0. (According to datasheet the BME688 should read 0x01, but I cannot test it as I do not have this device yet).

    so it looks like this is an easy way to detect which sensor you have on your HW.