BME280 or BMP280 not found: address 0x76 or 0x77 and chip ID

Scan the bus. The address is 0x76 or 0x77, and the board may be a BMP280 with no humidity.

What the message means

The two addresses depend on the SDO pin. Also, cheap modules sold as BME280 are often BMP280, which has no humidity sensor and a different chip ID.

Fix it in this order

  1. Run an I2C scanner and note the address.
  2. Pass that address to begin().
  3. Read the chip ID. A value of 0x60 is a BME280 and 0x58 is a BMP280.
  4. Use the library that matches the real chip.
  5. Check the supply voltage and the SDA and SCL wiring.
  6. Allow a moment after power-up before the first read.

Why it happens

These sensors answer at address 0x76 or 0x77, depending on how the SDO pin is wired. Many example sketches assume one address and your board uses the other. Some boards sold as BME280 are actually BMP280, which has no humidity sensor.

Run an I2C scanner to see the address, pass it to begin(), for example bme.begin(0x76), and check the chip ID if humidity reads zero.

If you see this, do this

You seeDo this
Not found at 0x76Try 0x77.
Humidity reads 0 or nanThe chip is a BMP280.

I2C scan, address conflict.

Last reviewed: November 2026. These are the usual causes and the order that finds them fastest. Test on your own board; clones and cables differ.