BME280 Sensor DOA?

Hi all,

I am working on a little project where I would like to measure and log Temperature, Humidity and possibly Barometric Pressure. I decided to go with a BME280 as it had everything I needed in one small module.

The one I ordered was from AliEx and it is one of those little purple modules about the size of a fingernail and has four pins on it. Power (VCC and GND) and I2C (SCL and SDA).

No matter what I've tried it just wont do anything.

At first I connected it up to the circuit I'm prototyping to see if it played nice with the RTC I also have on the I2C Bus. I tried several libraries including Adafruit and couldn't get the BME280 to work. All I got in the Serial Monitor was the text "BME Test" and the program went no further. This was the same on all the libraries I tried.

So next I tried uploading an I2C scanner sketch to see if it could locate the address of the BME280 but both the I2C scanner sketches I tried just hung and didn't scan. Then I tried disconnecting the BME280 and running the I2C scanners and they found two addresses for my RTC.

Finally I set the BME280 up standalone and ran the I2C Scanners and once again they just hung and didn't scan. So in a final attempt to get some life out of the BME280, I tried changing the address by cutting the track between the first pad and the second and linking the second pad to the third - effectively shorting DSO to GND to change the I2C address. Still this made no difference. The BME280 remains lifeless.

Is there anything anyone can suggest I further try or is my BME280 Dead on Arrival?

Thanks!

Does that breakout board contain other chips than the BME280? Please post a schematic or at least some (sharp) pictures of both sides.

The BME280 has a maximum voltage on Vcc of 3.6V. If you connect it to the 5V of a standard UNO (you didn't mention another type of Arduino so you must have the standard model) you probably fry it.

The I2C signals also must be kept below 3.6V so you should invest into a (bi-directional) level converter to adapt these voltage levels.

Hi,

These are the images taken from the website I purchased the BME280 Breakout module from.

FRONT:

make image url

BACK:

make image url

Here are the specifications taken from the sellers site:

Supply Voltage: 1.8 - 5V DC
Interface: I2C (up to 3.4MHz), SPI (up to 10 MHz)
Operational Range:
Temperature: -40 to +85°C
Humidity: 0-100%
Pressure: 300-1100 hPa
Resolution:
Temperature: 0.01°C
Humidity: 0.008%
Pressure: 0.18Pa
Accuracy:
Temperature: +-1°C
Humidity: +-3%
Pressure: +-1Pa
I2C address
SDO LOW : 0x76
SDO HIGH: 0x77

The supply voltage in the specs says 1.8 - 5VDC so I assumed powering it from the 5V pin on my nano would be acceptable.

The only thing that is keeping me from thinking that the BME might not be dead is this...

When I have the module connected up and I am using the BME Library and BME Test sketch, the sketch detects the BME module but just wont read anything. The sketch says BME Test in the serial monitor but that's as far as it gets.

When I use the BMP library and BMP Test sketch it bluntly tells me that it can't find a BMP device.
This makes me think that it is sort of working in as much as the BME sketch is finding the module or that's how it seems??

Thanks!

I don't see anything that could be a level shifter on that PCB, so you need a (bidirectional, I2C friendly) level shifter between your 5V Arduino and this sensor, or you feeding it 5V signals and that may kill it.

There is a 6-pin component, I guess that's some kind of regulator, allowing you to supply 5V on Vin, which is then regulated down to 3.3V (or even less).

The I2C scanner should see this device at 0x76 (it looks like the SDO is pulled down through that 3-pad solder jumper).

Thanks everyone for the help / input, I really appreciate it!

For several reasons I have decided to abandon the idea of using the BME280 for this particular project at this point in time.

To replace the sensor if I have burned it out - which is seems likely - I will have to wait two to three weeks for replacements I've ordered from China OR if I want one sooner I will have to order one from the UK at two to three times the price I can get them from China per unit.

And having to use a level shifter also means I will need more components to make the BME work which means more space needed on my PCB. For those reasons, it's not feasible for me to use a BME280 this time around.

To be fair, the barometer isn't required for my project but I thought I'd make use of it if I could get all that sensing from one small module / package. Instead I'll go back to my original idea of using a DHT22 for Temp and Humidity - which is all I originally required.

I will revist the BME280 when my replacements arrive and spend some time with just the BME and getting it to work. Maybe I'll include it in the MKII version of my project :slight_smile:

Thanks again guys. I appreciate the help!

Cheers!

The BME sensor with level shifter can easily be a lot smaller than the DHT22.
Or you could use one of adafruit's breakout boards (or a clone) with level shifter built in.

Or consider using an ESP8266 instead of the Nano - more capable, better connectivity and no level shifters required.

Yes, lovely little devices, especially the built-in WiFi.

There are also 3.3V Arduinos such as the 3.3V version of the Pro Mini.