Hi,
I have a PiicoDev BME280 atmospheric sensor which gives a temperature reading about 2 degrees C below other sensors I have.
To prove the point I set up the BME280 with a TMP117 precision temperature sensor, three DS18B20 temp sensors and a DHT22 temp and humidity sensor in a small box in a fairly stable room temperature all running from a Pico outside the box so as not to add a heat source.
All these devices claim plus or minus 0.5 deg C accuracy except for the TMP117 which is plus or minus 0.1 deg C.
I assembled some code to read them all every 5 seconds and then calculate rolling averages for the results over 200 measurements.
To 2 decimal places here are the results in degrees C:-
BME280 24.28
TMP117 26.58
DS18B20 26.29 There were 3 of these, all included in the average.
DHT22 26.69
So as we can see the BME280 is at least 2 degrees low compared to the others.
If we assume the TMP117 is likely to be correct then the error is 2.3 degrees.
As plus or minus 0.5 deg C is claimed for the temperature accuracy it is clearly out of specification.
Am I expecting too much or is my one not typical and faulty?
Ian
2.3° is definitely higher than expected for an error with the temperature, there is a chance that if there is condensation on the sensor that it can give readings that have an error outside of the expected 0.5° you could try and dry it out in a desiccant (rice is rather good at this) to see if this changes the result.
Failing this if it still doesn’t work then shoot us an email with your order number to support@coreelectronics.com.au and we can look into it further there.
No way there is condensation on it as it is only weeks old and has spent most of that time in its plastic bag and always in the house. I will email you. Thanks for responding.
Ian
Your BME280 is outside the advertised spec, assuming everything else is set up correctly and your TMP117 is accurate. Use Bosch’s official compensation formulas from the datasheet, applying the factory calibration constants.
Check raw temperature register values and calculate the temperature yourself using those calibration values.
Hi Ian
I had previously reported that the PiicoDev BME280 gives a temperature which is 2 degC low. See
I assume the problem is with the libraries but I lack the skills to fix it. If you look at the data sheet it involves heavy programming in C++. I tried the PiicoDev board with the Pimoroni libraries but it brought up an error.
But there are other serious problems with the BME280 relating to humidity - see other posts on this topic.
Remember the BME280 was designed for humidity and pressure measurements. The temperature measurement is included to improve the accuracy of these measurements and that it can be read seems to be incidental.
Thanks for the confirming input.
As someone interested in weather measurements who has been operating a weather station for years I would suggest that perhaps the BME280 should not be sold as being suitable for weather station use or at least a note made that the temperature measurements cannot be relied on.
Other cheap sensors with similar specs for temperature accuracy such as the DS18B20 perform much better with typical accuracy well within their plus or minus 0.5deg specified accuracy.
Ian
Hi Ian
I have also been operating a weather station for years. I have found the TMP117 is excellent with +/-0.1degC accuracy against a calibrated source. At the moment I am frustrated trying to find an accurate and reliable humidity sensor.