Enviro+ readings unrealiable

I got the Enviro+ running with a Raspberry Pi Zero but the data is too unreliable to realistically contribute to a Citizen Science project like Luftdaten.info. It’s a great form-factor, but when you click the sensor board directly on the RPI Zero W, both CPU-temperature and RH humidity sensor data are too high.

I wrote a script that logs CPU and sensor temp to a csv file every 30 seconds and ran that with a direct setup and a setup with a 10cm flat cable. Turns out that if you directly connect it, the CPU heats up some 6 degrees more as well and uncorrected temperature shows 9-10 C too high. With a ribbon cable, temperature looks better, but still ~1 degree too high according to other thermometers.

Same goes for relative humidity, too high a temperature shows lower %RH of course. With the ribbon cable it still shows too low a value. I see several posts about this on the forum, but haven’t seen the final solution other than compensate it with the script. Either use a ribbon cable or fan, basically killing the great form factor.

Two main questions here:

  • I can’t find any replies from pimoroni, did I miss something here? Contributing to citizen science projects should be done with reliable data. Are there any pending changes in either the libraries or a new hardware model?
  • While you can do some correction for the temperature, based on the CPU reading, the humidity is still an issue. With the ribbon cable I get slightly better values, but still 5-10% too low. Anyone has the magic formula to correct that?

PS: if the data from my board is so far off that it’s just faulty, that’s a good answer as well and I’ll get back to my supplier :-)


I mount the boards at right angles and have a fan blowing across the back of the Enviro+. It gives accurate temperature reading and realistic humidity reading but they are always about 5% lower than my other cheap Hygrometers, so I don’t know which is correct.

The downside is the tiny fan I use is very noisy, even when mounted in a rubber duct. I plan to redesign it with a 40mm fan instead of 17mm, but then the box will be much bigger and mainly empty.

1 Like

Thanks for you input, much appreciated. Was indeed thinking about a fan as well, but wanted to keep it all passive :-/ Do you have a part list and designs shared actually?

At the moment I am running it next to my NetAtmo indoor station and comparing the values. I have rewrote some things to compensate for humidity. That simply seems to register too low, however long a cable you use. Thing with humidity sensors is they degrade over time and have a relatively short lifespan. Once it’s enough to my liking, I need to look for a casing.

Any idea if Pimoroni is looking into this design wise as well for a next itteration of the sensor board?


I think the components on the Enviro+ board contribute some heat. The gas sensor has heaters in it and is fed via resistors. So I think that is why active cooling works better than a long cable. A better solution might be to separate the BME sensor and put it on a long lead.

I have never seen any official response about Enviro+. The gas sensors seem next to useless because they seem to respond to humidity, temperature and pressure more than gas. They also seem to take days to stabilise after being turned on.

I haven’t shared the case design because I regard it as a bit of a fail. The fan I used is too loud.

I had a similar issue with my Sense Hat. Heat from my Pi A+'s SOC would make the temperature read high. It likely messed with the humidity too. I put a Proto Hat on a stacking header between my Pi and the Sense hat. It acted like a heat shield and put more distance between the two. I also flipped my setup 180 so the GPIO header was on the bottom. That left the top open for the heat to escape easier.

A Proto Zero would likely work with a Pi Zero and Enviro+

1 Like

I have added a 10cm flatcable and while temp is OK now, humidity is not. It’s a shame that a fairly expensive board like this doesn’t reliably register the data I guess.