Back to

PMS5003 Readings Understimation

Hi all,

This post is to notify everyone that we have found a bug in the SCK PMS5003 sensor code that provoked an underestimation of the sensor readings, as well as an increase in the readings variability.

As you know, we use the sensor in one-shot mode, meaning, we turn on the sensor for 15s and we take one reading after those 15s (or so we thought). After that, we turn it off until the next reading cycle comes. This was evaluated here and the approach has been reconfirmed here. The PMS5003 sensor was being run in active mode, which means that the sensor is actively collecting data and sending it. Since the sensor communicates with the SCK main microcontroller via serial, the readings were getting accumulated in the serial buffer for some seconds, until the sensor turned off again. Sadly, this bug means that we were not clearing the buffer when we wanted to get the reading at t+15s (one-shot), but most likely at t+1s or t+2s, which meant that the fan and laser in the PMS were probably not stable and hence reducing sensitivity and increasing reading variability

This lead to approximatively 50% underestimation of sensor readings, and an increase of sensor SNR as seen in the graph below (blue, correction - orange, bug)


We apologise and hope this doesn’t impact your experiments. Let us know if we can support on fixing or adding more information to the issue.

Secondly, we strongly recommend to use the firmware fix in the upcoming 0.9.9 release. This will be released very shortly. For those wanting to test it, master branch can be compiled and flashed, but some extra features/fixes are being tested for the new release.


Thanks for your work on this.
Indeed the graph shows a significant reduction in variability, something that I’ve noticed with my readings.
I’m excited to test the result.