BME280 frustration

Hello!

Being a little new to the wonderful world of Arduino I am looking for little help in troubleshooting a sensor.

I am working on a project and trying to use the GY-BME280. Installation seems easy peasy going to my Eins Board, Uno compatible board. Ground to ground, Vcc to 5v (3.3v gives the same results), SDA to A4 and SCl to A5. Load up the example sketch. Light, camera, uh. . .

I get the “Could not find a valid BME280 sensor, check wiring!” error. Ok, double-checking wiring. Check continuity and voltages. Load up an I2C scanner, yup, found it. It has the address of 0x76. After some research I need to edit the .h file. OK, I edit the cactus_io_BME280_I2C/cactus_io_BME280_I2C.h file. Load it up. Still "Could not find. . . ".

Are there any suggestions to further troubleshoot and test this?

And for the record I have tested it on another Uno clone (cheap one) and get the same error message.

TIA

Screen Shot 2016-11-12 at 12.15.37 AM.png

Hello,

my BME280 have all address 0x77.

Dieter

You have the 6-pin version of the device which means it can be used with SPI as well as I2C.

When running I2C the SDO pin is used to select the I2C address. If you connect SD0 to GND the address will be 0x76. If you connect SDO to VCC the address will be 0x77.

According to what I read on the internet (so it must be true) if you let SDO float the address will be undefined.

Don

floresta:

Thank you for your reply. I did not know about the SD0 and the addressing. I will give it a try when I get home this evening. I will have to put that one down in my my notebook.

A follow-up question. Why is it that I2C Scanner sees the BME280 with an address of 0x76 but the library does not unless SD0 is used? Just curious as to the why/how.

Thanks again for the advice.

The I2C address of this device is determined by the SDO pin which most likely is floating on your device. If 'the internet' is correct then your device has an indeterminate address.

If the I2C scanner program is detecting the address as 0x76 this could mean that the SD0 pin is actually pulled down or it could be that the indeterminate address just happens to be 0x76 for this phase of the moon.

I suggest that you try the scanner with the SDO pin pulled high then again with it pulled low to verify all this.

If I remember correctly the cactus.io library is a stripped down version of the Adafruit library which in turn was largely lifted from the JeeNode folks. The main thing that was stripped out was the SPI capability.

You must set up the library to use the I2C address of the device. I used that library to access two BME280's simultaneously and you don't have to edit the .h file to do so. Here is what worked for me:

// Create two BME280 objects
//   Use the 'BME280' library to control sensors identified as 'bme01' and 'bme02'
BME280_I2C bme01;                       // I2C using default 0x77 
BME280_I2C bme02(0x76);                 // I2C using address 0x76

Don

Hello,I am having the same Problem with the BME280. How did you finally solve it?.
Thank you!.

wrightmac:
Hello!

Being a little new to the wonderful world of Arduino I am looking for little help in troubleshooting a sensor.

I am working on a project and trying to use the GY-BME280. Installation seems easy peasy going to my Eins Board, Uno compatible board. Ground to ground, Vcc to 5v (3.3v gives the same results), SDA to A4 and SCl to A5. Load up the example sketch. Light, camera, uh. . .

I get the "Could not find a valid BME280 sensor, check wiring!" error. Ok, double-checking wiring. Check continuity and voltages. Load up an I2C scanner, yup, found it. It has the address of 0x76. After some research I need to edit the .h file. OK, I edit the cactus_io_BME280_I2C/cactus_io_BME280_I2C.h file. Load it up. Still "Could not find. . . ".

Are there any suggestions to further troubleshoot and test this?

And for the record I have tested it on another Uno clone (cheap one) and get the same error message.

TIA

hi,
I know it is a bit old topic but since it hasn’t been yet solved…

GY-BME/P280 worked for me on i2c with the ProMini 3.3v board using this lib:

it did not even require choosing i2c address as in method given by floresta (@floresta thx!).

cya,
wojtasl

btw GY is a really nice (and cheap!) clone of the original adafruit BME280 sensor:)

BME280 is made by Bosh Sensortech, not by Adafruit.
GY is simply another board that uses the same sensor. It's not a clone of the Adafruit board.

There is nothing to solve, this chip can have only two addresses, you can find which one by using an I2C scanner sketch.

The Adafruit library was written for the Adafruit board that has his address defined. Anyway today you can change the address without modifying the library, it's written in the documentation.

BME280 it's a very nice sensor!!!!