Local sensor readings offset?

I’m reading local data from two different PurpleAir units (a PA-II and a PA-II-FLEX) which are placed directly next to each other. The PA-II unit’s values seem to be consistently a lot lower than the PA-II-FLEX (details below).

Is this due to the laser getting old or dirty?
If so, can I clean it to fix it, or do I need to replace the lasers?

Or can I recalibrate the units somehow?


The p_0_3_um* values differ between the two units. The A and B channels on each unit agree with each other, and both units show the same relative movements over time, but the PA-II unit’s values (cyan/purple) are significantly offset lower compared to the PA-II-FLEX unit’s values (orange/magenta).

The p_0_5_um* values have the same issue as the >0.3um count.

For the p_1_0_um* values, the PA-II unit (cyan/magenta) is almost always zero, and shows almost no movement. The PA-II-FLEX unit’s values (purple/orange) have a relatively low magnitude, so maybe the PA-II unit would show non-zero values if there were a lot more dust? I tried generating some dust, but didn’t notice much change, though.

The higher particle size counts (2.5, 5.0, 10.0) have the same issue as the >1.0um count.

Thank you for this observation. It is really interesting. I have a brand new PA-II-Flex and been comparing my values to values of nearby stations. Mine are consistently higher. For example currently my Purple air reads 34 raw PM2.5 (after applying the EPA conversion) and a different reader I have (different company) reads 25. 25 is similar to the older PA sensors in my area. If I apply the “LRAPA” conversion, it matches much better to my other outside monitor.
I also wonder what could be going on.

Edit: when I go outside I can clearly smell wood smoke. I live in a rural area and many of my neighbors burn wood to heat their homes.