BME680 two different results

Hello,
I’ve just got my two BME680’s I’ve brought and I’ve done a few tests. I wanted to setup a test of air quality at home and at the office, that’s why I have two of them. I brought both of them home and used them on the same raspberry pi.

Here are the figures I got within 40 minutes of each other.
| Time | GAS | Humidity | Quality | Sensor |
|------±-------±---------±--------±-------|
| 2200 | 246418 | 33.33 | 82.55 | Office |
| 2244 | 151305 | 36.37 | 97.50 | Home |

Both sensors I have done the 20 minute burn in test and after that I ran the ‘indoor-air-quality’ example to get these figures. These were both taken in the same room with the same environment. The Melbourne weather was a stable 20C no wind no rain outside and the indoor environment was very stable. I’m wondering why the gas readings were so different between the two sensors. They were both purchased at the same time and soldered iwithin hours of each other.

You would need much more than two readings to confirm any sort of variance between the two. These differences could be accounted for simply by you occupying the same room/space as the sensor and breathing.

Short of running them both together at the same time and taking an average, this doesn’t really say much. 40 minutes is a long time for localised atmospheric conditions to change.

I have a ‘similar’ concern with my Rainbow HAT. I have it running ‘off Pi’ using a Phat Stack and a ribbon cable and as far as I can tell ( using 2 X Thermometer) it’s several degrees off. Reckons my mancave is 32 degrees when it’s closer to 23.

What if I took readings over 24hrs on one and averaged them, then did the same on the other in the same environment?

@map7 You would be comparing two different 24 hour windows, which is not scientific. When testing for a specific outcome, you must eliminate all other probable causes. In the case of BME680 I might set up another software i2c bus on two other GPIO pins, connect both sensors via jumper jerky at the same time, sit them side-by-side, and run them simultaneously, comparing the results over time. In this case I might expect some variation in temperature due to thermal coupling through the wires, but not much.

@badboybubby it’s probable your Rainbow HAT is just thermocoupled to your Pi via all the ground connections in the ribbon cable. Since the ground plane runs through the whole board, it’s not difficult for it to get and stay warm. In cases like this, you must compensate the temperature reading in software.

Initial State have a good article about temperature compensation here: http://blog.initialstate.com/tutorial-review-enviro-phat-for-raspberry-pi/

1 Like

Just a FYI post on my experiences with similar issues.
I have two weather clocks, one indoor and one portable I take outside. I started out with just a Pi A+, DS3231 RTC and a Sense Hat. The Sense Hat has an issue where heat soak will throw the temperature readings off on the Sense hat. They read high. To offset or mitigate this I have a Proto Hat between my Pi and Sense Hat. It was also a convenient place to mount my DS3231. Anyway, putting that space and a bit of a barrier between my Pi and Sense Hat made the temperature readings accurate again. That weather clock sits in our living room running 24/7 with no case on it. I just put a black diffuser on the front. I have it flipped 180 so the GPIO header is on the bottom. It stands up better and leaves an open area at the top for heat to get out.
My second portable one started out the same way only I put it in a case with battery power. Even with the proto hat in between, temps read high due to heat build up in the case. It was vented, but only on the bottom and sides, and no fan. I don’t want rain or snow etc getting in. It is exposed to some precipitation at times.
I ended up mounting a BME680 externally on the bottom of my case. Mounted on the bottom with vented cover Its out of direct sunshine etc, so it reads pretty accurate.
There are all kinds of posts on this issue with the sense hat and all manner of formulas to compensate. I personally never went down that road. I’m not saying its a bad idea, just that I never tried it myself. I went with modifying my hardware setup first. Doing it with software was option B for me.
My build pictures are here if anybody is interested in a look see. https://1drv.ms/f/s!AjOYwiwlwDtpgq8_0VrdS3_H5xL_AA

It’s also worth noting that as of Version 1.0.5 our bme680 library has a set_temp_offset method that will compensate the temperature/humidity readings. - https://github.com/pimoroni/bme680/releases

At the moment I’m not using the air quality part of the BME680. I have a few questions before I do.

One, do you need to do the burn in just the once the first time you use it, or every time you want to use it and its been off for a while?
And second question, does that “burn in” generate heat that will affect the temp reading?

Just reading this, https://learn.pimoroni.com/tutorial/sandyj/getting-started-with-bme680-breakout It looks like it will answer all my questions. I still welcome any comments on my questions, or your experience etc.