0

BME280 100% RH error
Moderators: adafruit_support_bill, adafruit

Please be positive and constructive with your questions and comments.

BME280 100% RH error

by mcguirej on Wed Jan 13, 2016 12:44 pm

Hello all -

I am working on a large sensor network, and am interested in using the adafruit BME280 sensor. However, I've installed it in two weather stations so far, and the sensor works fine when testing (SPI mode on a PIC microcontroller). When I move the sensor into the weather housing, which is a vertical orientation it reports 100% humidity always. All of the other sensor data is correct, it is just a problem with the RH. This has happened on two separate BME280 sensors. Any ideas what is going on?

Edit: Upon further testing, it doesn't seem to be an orientation issue. I laid the weather housing flat and it still reports 100%. My next thought is that it doesn't have enough air flow, but I used a different sensor with the same housing before and it worked fine. The weather station is the typical radiation shield with open air slats. There isn't anything covering the BME280.

mcguirej
 
Posts: 8
Joined: Wed Jan 13, 2016 12:30 pm

Re: BME280 100% RH error

by adafruit2 on Thu Jan 14, 2016 2:42 pm

OK - did both the BME280's work right when on your desk? is it the *housing* thats the defining difference?

adafruit2
Site Admin
 
Posts: 18664
Joined: Fri Mar 11, 2005 7:36 pm

Re: BME280 100% RH error

by mcguirej on Fri Jan 15, 2016 11:23 am

Yes, I too was ready to blame the housing, even though that didn't make sense. After my battery recharged, I tested it again this morning. And now just sitting on my desk, without the housing, as it was before, it reads 100% constantly as well. Bosch emailed me back and said it appears damaged. I'm not sure how it could have been damaged, as no water came in direct contact with it. The only thing I can think of is I probably placed my finger on top of the sensor momentarily as I was manipulating the PCB it is attached to. Also, please keep in mind that this is the second BME280 that I have now that only reads 100% humidity, both were subjected to pretty similar conditions. Both worked fine sitting on my desk before being placed in the desired location. I have a third BME280 I could place in my circuit, but without really knowing how these are getting damaged, it doesn't seem like a good idea to swap it out just yet.

mcguirej
 
Posts: 8
Joined: Wed Jan 13, 2016 12:30 pm

Re: BME280 100% RH error

by adafruit2 on Fri Jan 15, 2016 2:22 pm

its not clear how touching it would have damaged the BME280. what about barometric pressure, is that number correct? it doesnt seem like the BME has a heater, but you could do the time-tested technique of "leave it unplugged for a day and then try again"?

adafruit2
Site Admin
 
Posts: 18664
Joined: Fri Mar 11, 2005 7:36 pm

Re: BME280 100% RH error

by mcguirej on Fri Jan 15, 2016 2:34 pm

The barometric pressure readings are reasonable and varying with time, as are the temperature readings. Have you guys had issues with this sensor in the past? Or rather, have you heard of people using it successfully in an outdoor weather setting? I am considering switching to the HTU21D as I have used that one in the past under the same conditions without issue, I just liked barometric pressure being packaged with the sensor as well.

mcguirej
 
Posts: 8
Joined: Wed Jan 13, 2016 12:30 pm

Re: BME280 100% RH error

by adafruit2 on Fri Jan 15, 2016 3:09 pm

this is the first time we've heard of the RH error, but we dont know for sure whether people are using it outside in weather boxes. the HTU21D has that benefit of a teflon filter so its more durable (but of course baro sensors need to have holes in em so thats why they dont tend to be integrated)

adafruit2
Site Admin
 
Posts: 18664
Joined: Fri Mar 11, 2005 7:36 pm

Re: BME280 100% RH error

by mcguirej on Mon Jan 18, 2016 1:54 pm

It sat out for the weekend, and it still reports a constant 100% RH. So it looks like there is no coming back from this state. I don't see any way that the sensor could have been damaged since I used it as described by the datasheet. Does Bosch or Adafruit provide any kind of warranty on these products? Thanks for you help so far.

mcguirej
 
Posts: 8
Joined: Wed Jan 13, 2016 12:30 pm

Re: BME280 100% RH error

by adafruit2 on Mon Jan 18, 2016 2:09 pm

hiya, if it worked when arrived and was soldered & used, its not under warranty

adafruit2
Site Admin
 
Posts: 18664
Joined: Fri Mar 11, 2005 7:36 pm

Re: BME280 100% RH error

by membiblio on Thu Sep 12, 2019 3:09 pm

If you clean the pcb after soldering and accidentally get water or alcohol into the tiny little hole in the top you may read 100% but not to worry simply 'bake' the device - I used reflow station to heat the device for 30 seconds and then cooled the board flat (don't reflow and then tip the pcb as the device may fall off) and voila! it works again. I hope this works for you and is helpful advice. The BME280 has been a spectacular device for my use - excellent cost performance and excellent temp/real humidity readings. A+ Bosch :)

membiblio
 
Posts: 1
Joined: Thu Sep 12, 2019 3:03 pm

Re: BME280 100% RH error

by janc1 on Fri Sep 13, 2019 2:34 am

Well, I did buy bme280 from adafruit some years ago {sorry dont remeber exactly}. I did used it for weather station and sensor was outside in radiation shield. It was working well cca half year. During winter it start to read 100% humidity. But later sensor did freez and lost from i2c bus. I took it inside, I did keep it close to fireplace over night and then put outside. After day or two it freez again.

I did buy cheaper bme280 from china. {well, I did buy 2} Happen again. Sensor started to report wrong values. So I did replace it. Sometime like 4 months ago I did buy two bmp280 from china (sorry adafruit if I need to experiment with more expensive sensor then I will buy one of these https://www.davisinstruments.com/weather-monitoring/). During summer bmp280 was reporting quite perfect values. Spring is coming slowly, nights are colder. Bmp280 start report wrong values, temperature is more less ok, but pressure is out of my limit.

So my conclusion is that those BM{E/P}xxx are not very good to use outside.
If I am using original old bme280 from adafruit inside then everything is working fine. With son we build temperature monitor of the his room and there are not problems.


I did buy Si7021 which hopefully will be good sensor to read humidity and temperature.
I have to find out some barometer pressure sensor which could be used, maybe some of BMx but I will put it into box where pizerow is, hopefull humidity in that box will not case problems.

anyway, I did make test. I did take old bme280 from adafruit and bmp280 {which was not used outside} and new Si7021.
IMG_20190913_081523869.a.jpg
IMG_20190913_081523869.a.jpg (166.26 KiB) Viewed 82 times


I did leave this at outside on table on terrace with roof.
Pizerow did stop reporting between 4:43 and 5:13. At morning I did login and check i2c bus and I did not see original bme280. Python porogram did end with I/O error because it could not read bme280. So I did take bme280 inside {at cca 7:05} and try to warm and used it outside again. But it did not help. So I did take it inside for longer. Now it is running and reporting. I will keep it and we will see what happen

EDIT: just find that I can meke dashboard public
https://io.adafruit.com/janc1/dashboards/testovaci

here is report of humidity and temperature
ht.png
ht.png (67.93 KiB) Viewed 82 times

and here pressure
p.png
p.png (37.86 KiB) Viewed 82 times

janc1
 
Posts: 5
Joined: Sat Apr 15, 2017 4:01 am

Re: BME280 100% RH error

by janc1 on Fri Sep 13, 2019 3:11 am

it was not to long, python script crash, I did take bme280 inside and dry with hairdryer at cca 9:10.



Code: Select all | TOGGLE FULL SIZE
Traceback (most recent call last):
  File "compare.py", line 45, in <module>
    teplotaBme = bme.temperature
  File "/usr/local/lib/python3.5/dist-packages/adafruit_bme280.py", line 326, in temperature
    self._read_temperature()
  File "/usr/local/lib/python3.5/dist-packages/adafruit_bme280.py", line 141, in _read_temperature
    self.mode = MODE_FORCE
  File "/usr/local/lib/python3.5/dist-packages/adafruit_bme280.py", line 202, in mode
    self._write_ctrl_meas()
  File "/usr/local/lib/python3.5/dist-packages/adafruit_bme280.py", line 167, in _write_ctrl_meas
    self._write_register_byte(_BME280_REGISTER_CTRL_HUM, self.overscan_humidity)
  File "/usr/local/lib/python3.5/dist-packages/adafruit_bme280.py", line 459, in _write_register_byte
    i2c.write(bytes([register & 0xFF, value & 0xFF]))
  File "/usr/local/lib/python3.5/dist-packages/adafruit_bus_device/i2c_device.py", line 112, in write
    self.i2c.writeto(self.device_address, buf, **kwargs)
  File "/usr/local/lib/python3.5/dist-packages/busio.py", line 65, in writeto
    return self._i2c.writeto(address, buffer, stop=stop)
  File "/usr/local/lib/python3.5/dist-packages/adafruit_blinka/microcontroller/generic_linux/i2c.py", line 38, in writeto
    self._i2c_bus.write_bytes(address, buffer[start:end])
  File "/usr/local/lib/python3.5/dist-packages/Adafruit_PureIO/smbus.py", line 244, in write_bytes
    self._device.write(buf)
OSError: [Errno 121] Remote I/O error


here i2c scan, original adafruit bme280 is on 77
Code: Select all | TOGGLE FULL SIZE
sudo i2cdetect -y 1                                                                                                                  :(
     0  1  2  3  4  5  6  7  8  9  a  b  c  d  e  f
00:          -- -- -- -- -- -- -- -- -- -- -- -- --
10: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
20: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
30: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
40: 40 -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
50: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
60: -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
70: -- -- -- -- -- -- 76 --





here is my code
Code: Select all | TOGGLE FULL SIZE
import time
import datetime
import board
import busio
import adafruit_si7021
import adafruit_bme280
import adafruit_bmp280
from Adafruit_IO import Client, Feed

i2c = busio.I2C(board.SCL, board.SDA)
vlhkomer = adafruit_si7021.SI7021(i2c)
bme = adafruit_bme280.Adafruit_BME280_I2C(i2c)
bmp = adafruit_bmp280.Adafruit_BMP280_I2C(i2c, address=0x76)

ADAFRUIT_IO_KEY = 'pass'
ADAFRUIT_IO_USERNAME = 'user'

aio = Client(ADAFRUIT_IO_USERNAME, ADAFRUIT_IO_KEY)

feeds = aio.feeds()

# Print out the feed names:
for f in feeds:
    print('Feed: {0}'.format(f.name))


si_H = aio.feeds('sih')
si_T = aio.feeds('sit')
bme_T = aio.feeds('bmet')
bme_H = aio.feeds('bmeh')
bme_P = aio.feeds('bmep')
bmp_T = aio.feeds('bmpt')
bmp_P = aio.feeds('bmpp')

while True:
    humiditySi = vlhkomer.relative_humidity
    aio.send(si_H.key, str(humiditySi))
    humidityBme = bme.humidity
    aio.send(bme_H.key, str(humidityBme))

    time.sleep(2)

    teplotaSi = vlhkomer.temperature
    aio.send(si_T.key, str(teplotaSi))
    teplotaBme = bme.temperature
    aio.send(bme_T.key, str(teplotaBme))
    teplotaBmp = bmp.temperature
    aio.send(bmp_T.key, str(teplotaBmp))
   
    time.sleep(2)

    presBme = bme.pressure + 25
    aio.send(bme_P.key, str(presBme))
    presBmp = bmp.pressure + 25
    aio.send(bmp_P.key, str(presBmp))

    diff1 = teplotaSi-teplotaBme
    diff2 = teplotaBme-teplotaBmp
    diff3 = humiditySi-humidityBme
    diff4 = presBme-presBmp


    print("\n----------  " + datetime.datetime.now().strftime('%d %m %Y %H:%M:%S') + "  -----------")
    print("T_si: %0.2f\tT_bme: %1.2f\tT_bmp: %2.2f\tSI-E: %3.2f   E-P: %4.2f" % (teplotaSi, teplotaBme, teplotaBmp, diff1, diff2))
    print("H_si: %0.2f\tH_bme: %1.2f\t\t\tSI-E: %3.2f" % (humiditySi, humidityBme, diff3))
    print("P_E: %0.3f\tP_P: %1.3f\t\t\tE-P: %3.3f" % (presBme, presBmp, diff4))
    time.sleep(26)

janc1
 
Posts: 5
Joined: Sat Apr 15, 2017 4:01 am

Re: BME280 100% RH error

by janc1 on Fri Sep 13, 2019 7:43 am

another fail at 9:48, so unplug bme280 and wait few minutes and plug back. Actualy we have nice warm weather.

janc1
 
Posts: 5
Joined: Sat Apr 15, 2017 4:01 am

Re: BME280 100% RH error

by janc1 on Sat Sep 14, 2019 2:01 am

I see another weird behavior. The sensors are in the shade but the situation changes and starts to be in direct sunlight. I can understand that temperature and humidity change, BUT why pressure change?
strange.png
strange.png (61.23 KiB) Viewed 43 times

janc1
 
Posts: 5
Joined: Sat Apr 15, 2017 4:01 am

Please be positive and constructive with your questions and comments.