bme680 sample: I2C address in overlay file (nrf52840) does not match described wiring #i2c #nrf52840 #sensor


chrisduf
 

Running the BME680 sample (zephyr/samples/sensor/bme680) on the nrf52840-dk fails and printk "Device (nil) name is".

My BME680 is already packaged (DFRobot SEN0248), and provides connections only for the SCL and SDA lines, not SDO which the package configures itself when in I2C mode (it can also work with SPI).

Reading the BME680 data sheet, I've found that this SDO line will actually set the slave address to:
- 0x76 when connected to GND
- 0x77 when connected to VDDIO
- undefined when floating

Both my package and the wiring described by the sample's README connect SDO to VDDIO, while the nrf52840's overlay file assumes the BME680 I2C address is 0x76.

If I edit nrf52840dk_nrf52840.overlay to probe for address 0x77 instead of 0x76, the sample works fine.

The Adafruit overlay is correct (probes for 0x77).

chris.