04-16-2023 08:23 PM
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.
Solved! Go to Solution.
04-17-2023 04:14 AM
Hi Strooom,
Could we know what features of the BME68X are used in your product first?
04-17-2023 09:03 PM
Measuring temperature, relative humidity, barometric pressure and VOCs.
Here is a link to the hardware design : https://github.com/Strooom/MuMo-V2-Node-PCB
04-17-2023 09:50 PM - edited 04-18-2023 10:53 AM
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.
04-18-2023 10:52 AM
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.