AirGradient Forum

Low Readings from Plantower PMS5003

There is another step beyond just running the 3.1.9 firmware. You have to enable the correction in the web app, if you haven’t done that yet

@Achim_AirGradient, I will try it with that function disabled for a few days. It doesn’t seem to have an effect if it’s disabled overnight (the “sleep” mode on the air purifier does that automatically) but I don’t think I’ve kept it off for more than 24 hours. Will report back!

@MallocArray, I actually did enable the setting in the web app. That’s when I noticed that the strange errors from my PM0.3 sensor affected the PM2.5 readings.

Without the correction enabled, it would almost always be at 0 to 1 unless the air quality outside was particularly bad and got into my home (e.g., regional forest fires). With the correction enabled, I was getting random spikes up to 50 (and I have a hard time believing that the actual PM2.5 level in my room would go from 0 to 50 to 0 within a span of 20 seconds).

I have the same issue with the pm0.3 count jumping to a very high number, often above the number registered on the outside monitor. Weird given that there is no movement in the room, the windows are closed and the air purifier is off.

@eugene @rpirsc could you please share the serial number on your PM sensor (not the AirGradient monitor). Especially the date stamp on the serial number.

Then we can have a closer look in our test lab to see if we can reproduce this.

Hi @Achim_AirGradient, the serial number on my PM sensor is PMS5003-2023121807159. I can also report that disabling the ionization function on my air purifier ~2 days ago doesn’t seem to be changing the behavior.

Hi Achim

My serial number is PMS5003-2023121807827

Once I apply the correction, should I expect the correct PM2.5 values to appear on the display of my AirGradient? I’m currently just seeing 0 on it, but the dashboard shows the actual correction.

Yes, but it needs a firmware update that we currently finalize.

I’m also wondering there exists batches that are also uncharacteristically accurate. In the computer world there exists (or used to exist) companies that “binned” chips for enthusiast customers to buy - buying and testing chips to see which ones could be pushed the furthest to resell.

I wonder if there is any value in binning these sensors. Does there exist a significant difference between the most and least accurate batches? Do some batches have better PM0.3 or PM1 than others?

I didn’t see any mention in the blog posts about how you are addressing this with the sensor manufacturer, since it seems like these sensors are coming miscalibrated / defective from the factory.

I’m interested in buying one of your air monitors and appreciate the transparency, but it seems like the product is in a half-working state relying on recently added calibration factors that weren’t needed before. I’m a little surprised honestly that you’re putting so much effort into fixing the faulty sensors instead of pushing back on the supplier and issuing a recall to replace the defective sensors with properly working / factory calibrated ones.

Could you please shed some light on your thought process here, and also let us know when to expect the hardware issue to be resolved so that newly shipped devices don’t need a correction factor to achieve the baseline accuracy of earlier sensor batches?

Thanks!

It appears that this is a more permanent change that the manufacturer Plantower made for these monitors because we are seeing this from all subsequent batches. Definitely not a ‘binned’ b-ware. We are in touch with them to get more information.

I think it’s also important to point out that these sensors are not faulty because they are still very well within the manufacturers specified accuracy range.

However, we believe they can be more accurate and this is why we developed the compensation algorithm. With this algorithm we could demonstrate that these sensor modules achieve the same accuracy like previous batches.

We are also in touch with a 2nd manufacturer of PM sensor modules and are testing them for a potential replacement in future.

Additionally, we are currently implementing a new testing in our test chamber that would fine tune these algorithms for each individual sensor module. With this new procedure I think we will probably have one of the best testing and calibration protocols of any sensor manufacturer in place. We will publish more on this new procedure in our blog as we progress.

2 Likes

That’s what seems odd to me… if this really can be corrected algorithmically, then it seems like the manufacturer should bake the corrections into the hardware. The fact that earlier batches were fine for years (?) and recent batches exhibit worse and different accuracy between batches seems to suggest that something changed in the manufacturing and or calibration and quality control processes.

It will definitely be interesting to hear what the manufacturer has to say. Let us know when you have more info!

1 Like

Does this also fix the data that is output to Home Assistant?

Hi @Bunbury , welcome to the forum.

Yes, it also fix values to Home Assistant. If you’re not registering your monitor to our dashboard, you can follow these step arduino/docs/local-server.md at master · airgradienthq/arduino · GitHub

Hello,
I just received my Indoor monitor with the PMS sensor PMS5003-20231218.
I tried to apply correction algorithm through the AirGradient Dashboard, but in the advanced menu, I do no see any options to choose the correction algorithm, there are no options available in the drop down menu.
Is this not required anymore?
my monitor has updated to the firmware version 3.1.21

but I can see correction options in Advanced settings of monitors that have been running since 2 - 3 months in the dashboard.
Thanks.

EDIT: I got the correction options in the dropdown menu after around 2 hours of data collection. Now things work as they are expected to work.

I have some updates on this. While the correction factor does seem to fix the values that are sent to Home Assistant for my indoor monitor, it doesn’t seem to be the case for my outdoor monitor. The PM2.5 reading output to HA from my outdoor monitor is consistently lower than what is displayed on the Airgradient dashboard. It is similar to, though not equal to, the uncorrected PM2.5 with EPA formula applied after rounding. So I’m not quite sure what the output value is.

Also, the PM2.5 values in HA have one integer digit and no decimal places. But the values on dashboard do have one decimal place. Is there a way to get the decimal place in HA? Thanks!

Hi @Bunbury ,

You could try to update home assistant to the latest version 2025.2.5. On that version, airgradient integration already using floating points for the measurements.

OK, thanks. But is there a way to solve the first problem? It seems both the values sent to the Airgradient map and to HA are uncorrected PM2.5 value, which is about 3-5 ug/m3 lower than what is displayed on the dashboard and what my other monitors measure.

Edit: I’m adding some screenshots of measurements from last night: as you can see, HA data read zero most of the time, whereas on dashboard, the minimum reading was about 5 ug/m3.


Hi @Bunbury , can you provide your monitor configuration? you could retrieve it by accessing this link http://airgradient_<SERIAL_NUMBER>.local/config from your browser. So i can sure your monitor already apply the correction locally.

Please do not share your serial number in public