This has been a back-bench project for a couple of months but I thought I’d share some progress on how difficult physical computing can be.
Here’s an example of sensors going bad:
Notice all the bouncing of CO2 and tVOC?Â Â That’s not good.Â Is the CCS881 dying?Â Did a software update to linux break something?
Things I tried, and more importantly, in the order I tried them:
- Reset the baseline every 10 minutes, every 5 minutes.Â No change.
- Swap in a spare sensor.Â No change.
- Noticed a slight breeze while I’m swapping sensors.Â Did I rearrange the room on 9 Nov?Â I dunno.Â Â Block the breeze with some paper.Â Slight improvement
- Put a glass over the sensor.Â No improvement.Â Â Ok, so it’s certainly not the breeze or disturbed air, something is really wrong here.
- Detach the PM25.Â Â CCS881 works as expected.Â WTF?
- Reattach the PM25, turn it off in software.Â CCS881 is bouncing again.Â Glass is still covering the sensor.
- Set up an entirely new Pi from scratch, used the CCS881 solo, no problems.Â Added the PM25 and the fluctuations returned.
So how is the PM25 interfering with the CCS881, even when it’s not being read?
This is one downside to using someone else’s API.Â Is there an I2C bug?Â Is the PM25 dying?Â How could it alter the values returned by the CCS881?
“To be continued…”« Another Self-configuration Example |