BME680 Humidity Calibration


#1

I’ve recently purchased a few of the BME680 sensors for a thermostat project. I can see that I need to calibrate the temperature by using the offset function. On the one I’m working with right now it looks to be reading about 4.5degC high but easily fixed with said function. However, humidity is reading around 32%RH from the BME680 (using example temp-press-humidity.py after 2 hour burn in with read-all.py), where the temperature/humidity monitor I’m calibrating against shows 40%, (which also matches a cheap analog gauge I picked up this afternoon).

So can I apply a similar offset in my code for the humidity? Would it be linear? Why is it such a big difference to begin with? I could actually believe either reading as it does get quite dry in our house, but as of yet we haven’t noticed much in the way of tell-tale static electricity this winter. I’m looking to eventually control a humidifier so I want to have confidence that my readings are reasonably accurate, but 8% variation is way too much. (Or even worse 20% if you take it as the ratio of one reading to the other!)

I have read other posts regarding temperature variations and sensor mounting considerations. My BME680 is in the same plane as the Pi Zero so when they’re laid flat it’s off to one side away from the CPU. When installed in its case they’ll be vertical with the BME680 below the Pi. So I believe that the temperature measurement isn’t unduly effected by the Pi.


#2

To really tell how far off it is you need to consider the tolerances of the devices your comparing. The two tolerances can add up and make things look a lot worse than they really are. One could be reading lower than the actual, and the other higher than actual. But both could be inside there respective tolerances or specs.
Military Spec electronics will have tight tolerances and be very accurate. Hoppy electronics usually not so much. Plus or minus 3% isn’t to bad IMHO. For what your paying for it. Looks like it might be a little slow to react to changes in humidity?
https://www.bosch-sensortec.com/bst/products/all_products/bme680

Humidity sensor
Response time (τ0-63%) 8s
Accuracy tolerance ± 3 % relative humidity
Hysteresis ≤ 1.5 % relative humidity

EDIT: I haven’t tried to offset any of the readings on mine. I’m only using it to display the readings, no control function or anything like that. What I get for readings is fine for what I use mine for, a portable weather station. being a little off one way or the other isn’t a big deal for me. I’m not dismissing your concerns, they could well and truly be valid, it’s just that its not something I personally worry about.


#3

Thanks for the reply! Although I may be using it for control eventually I really don’t need it to be an accurate reading, I’m just looking to figure out something that I can work with. I’m going to hook up all 5 and run them simultaneously, plot them against each other and get a common average. If one is way off compared to the others that would be a problem, but I’m not expecting that to be the case. None of the monitors I’ve got I would have any confidence in them being accurate. I do think the BME680 is probably closer to the mark, but on the low side. I guess my question was more out of curiosity than necessity.

Right now the temperature outside warmed up considerably and we had 4 inches of snow, so inside we’re roasting because our heating system is slow to react to weather changes. Hence the new control system I’m building. Humidity control will just be a side project sine the capability is there. :)


#4

My two BME680’s seem very accurate temperature wise. My inside one matches what my on the wall thermostat is showing. My outdoor portable setup is usually within 2 degrees Celsius of what my car says is the outside air temperature. Close enough for my needs anyway. My portable I take to our dog park to keep an eye on how hot it is etc. Or how really cold it is now that winter is here.