I have found that if I run the Enviro+ with the supplied python examples for an extended time (hours), that the oxide reading just slowly climbs. It doesn’t ever seem to drop off. I understand that the device takes time to warm up but watching it go from 7k ohms to 18k ohms in a matter of 2 hours on an almost linear curve seems very fishy especially with the data sheet saying 20k ohms is the max. Could have just gotten a faulty unit? Is there a firmware update?
As an update the readings from the python library have stabilized but it is above the specs on the data sheet for the oxidized sensor on the gas sensor. It lists 20k as the max value which correlates to 10 ppm. I have been graphing for a bit now and it does seem to be reading something but it is always in the 22-24k ohms range. Just wondering again if there is some firmware or a library update that is needed or if I have a bad unit?
It’s reading 40k - ish now? I feel like I’m talking to a void though. Again, is there something up with the firmware? These readings are consistently well above the spec on the data sheet for the sensor.
Ummmmm bump? Any Pimoroni employees even in this forum or am I talking to just other users. Or most likely myself?
Pinging people sometimes helps. @sandyjmacdonald is the enviro+ expert.
Thanks monglet, strangely enough I checked the air quality data in my area and 40k would not be out of wack with what my NO2 levels actually are. The problem is the data sheets don’t match up with the readings. That is where I am wondering if there is a firmware issue or if maybe the advertised MICS6814 data sheet is not the exact one that was used? Just looking around for guidance from Pimoroni et al. I may go look at the firmware myself if I can find it on Github.
Well I’ll continue to spam myself for now. I found that the MICS 6814 board reacts differently based on voltage input. Given that most of the Raspberry Pi operates on 5v, my guess is that the Enviro+ is running at 5V which is at the upper limit of the operating voltage on the MICS. This significantly bumps up the readings on the MICS itself (could be as much as a 25% rise in the voltage readings). Again, anyone from Pimoroni on? Maybe they can confirm. I may get on the board with a volt meter if I can find a way around to hit the pins.
My oxidising sensor has also risen from 5K to 27K during the course of the first day of use.
I’m starting to think that it also might be the embedded heater? It seems like it needs to “warm up” as it says. But with extended use maybe it just gets too hot and the readings just rise and rise. I have left my running for weeks now and it climbed quickly at first and then slow climbed over time well above what the spec sheet said was possible. So maybe its a combo of the heater and the voltage level.
if you take a look at the data sheet even your readings are pushing the upper boundary nophead. Mine continued to climb well above 50k.
So that leaves a few possibilities:
- The firmware is borked and we need a crack at the C code or whatever is running it
- The Python wrapper for that library is interfacing with it wrong (very unlikely it just asks for the values and does some quick math)
- The voltage level is at typical Raspberry Pi levels at 5v and is setting the resistance values and voltage readings off (very likely)
- The heater is starting to cook off the chip over time because again it is running at a higher voltage than is recommended (very likely)
So if a combination of 1,3,and 4 or at least one or more of 3 and 4 end up being true then the math needs to change in the python wrapper to account for the higher voltage and we can’t run these things at long times because they will start to cook off the chip and it will read climbing constantly. It would need to be a “turn it on, let it warm up, take some readings, turn it off, let it cool, repeat” type of script.
Again, if anyone from Pimoroni can let use know if any of this is close to correct that would be awesome. When I get a chance I’ll try to get a voltage reading myself.
I am up to 36K now after another day of running. We could do with the schematic.
I am guessing these are the bias resistors because of their low values and high wattage.
The values seem to be 62R, 28R and 36R5 which doesn’t match the data sheet at all.
The common of those resistors seems to be at 3.3V, so that might explain why they are different to the datasheet that shows 5V.
While off the resistance drops below 20K but starts rising again when on.
This is zeroing in on what I had feared; a hardware issue. It may be that as is the unit is not reliable at all. That would be too bad. Well at least it introduced me to the chipset. I might be able to work out something on my own with it. I’m not giving up but things are pointed in a very negative direction I’d say. I thought it might be voltage related but wasn’t sure. I just wish I had more time to route around on that board. Thanks for taking a look. The bright side is if they are going 3.3v on the inputs then maybe the heater isn’t over that much, but still the max value on the spec sheet is 2.2v. That might also explain the rising values again. I’m thinking it is slowly overheating. Given that the values rise as the chip heats up, I’m guessing they just keep going after reaching normal operation because the heater is being oversupplied by 1.1v. Assuming your 3.3v number is correct. Too bad. Hopefully at some point Pimoroni people see this? Maybe they can answer some questions about the voltage differences?
The 3.3V is on the top end of the resistors, so the end connected to the chip is lower. One measures 1.68, one is 2.35 and the other 2.13V.
From the datasheet .
The resulting voltages are typically VhRED => 2.4 V, VhOX = 1.7 V and VhNH3 = 2.2 V.
So assuming the order is correct, the voltages seem pretty close.
This is assuming all the heaters are in parallel. The 5V example in the datasheet shows two in series, presumably to reduce the amount of power wasted. You can’t do that with a 3.3V supply.
I guess one way to see if this is all related to the heater would be to bring the entire thing down once it has climbed to 50k and then bring it back up and see if it jumps way high again. That would point to a “non digital” problem and would indicate the heater again. Or at least something that could persist past a restart outside of the chips.
Mine seems to have maxed out at 36K. Can you measure the voltage at the ends of the three big resistors near the connector for the PMS5003 to see if they are the same as mine?
Mine has actually dropped to about 32K now.
I wish I could get at those easily right now, My MM can’t get in that space with the PiZero attached. Mine ramped up like you mentioned and then slowly climbed over weeks. Not sure how long yours has been running. I may just do some simple tests like I mentioned to see if the heat is a factor. I’ll check back in later.
Mine has been on most of the time for about a week now. It is mounted at right angles to the RPI 0 and has a small fan blowing on the back of the board to get the temperature reading correct. So the PCB is at around 23C whereas without the fan it is about 27C.