According to the datasheet of the SPS30 PM sensor it has a maximum measurement error of +/-5 ugr/m3 +5% of its measured value in its PM1 and PM2.5 range as well as a measurement error of +/-25 ugr/m3 in its PM4 and PM10 range. With normal environmental conditions the PM2.5 values measured is between 2 and 10PM meaning the potential measurement error due to differences between identical sensors can be quite large (+/-5) compared to the actual PM concentration.
With some 50 sensors installed in our town, trying to locate local PM pollution sources that would increase the PM a little does not work well because of that little difference in sensor sensitivity.
Would it be possible to add a possibility to correct the PM1 and PM2.5 values measured by a value in the range of -5 to +5 and for PM10 allow for correction of -25 to +25?
We would then use the far more accurate 3 pce governemental installed PM sensors as a reference to correct the others a bit and bring them all more in line with each other.
My understanding of the SPS30 data sheet is that the error for the category PM1/PM2.5 is +/- 5 for the full scale of the measurement (so for 100 micro g/m3) and +/- 25 for PM4/PM10 for the scale of 1000 micro g/m3. So the accuracy between two sensors is quite good (2,5 % and 5 %). Furthermore you may have the error induced by the rest of the electronics which may degrade this performance. That is why it is useful to calibrate the complete device with the data of official sensors installed in your town. To be accurate the calibration should be down for each sensor.
Datasheets states that for PM1 and PM2.5 measurements in the range of 0-100 ug/m3 the measurement error is within +/-5 ug/m3.
Measurement data from the SPS30 is passed on digitally via I2C bus to the nodemcu, how can this digital data be manipulated in a bad way by the components used?
How do I calibrate for each sensor using the official sensor.community nodemcu firmware which does not allow for corrections and passes measured data directly thrue? If I have to correct the data later on my own PC system for my own benefit only then the nodemcu should not send its raw measurement data to the sensor.community servers for everyone to use.
Therefore my question to have some firmware settngs to correct the PM values
Do you have a formula for the data correction?
Only +/-5 ug/m3 is not valid for very low measurements.
A solution is to send the data to “your” server, correct the value and (re)send it to sensor.community
To start with I would propose a formula like Y = a * X + b
The sps30 and the sds011 are working on the same principle. The specifications in the data sheet are given at 25°C and 50% RH and values are more or less in the same range; they deliver digital values after amplification of the detector signal.
However the recorded values for two sensors at the same place in the same conditions are often different resulting from component dispersion. Furthermore the measurement value varies with the temperature especially at low temperature with a same particles composition. This means that if you want to apply a correction it should be suited for each sensor and potentially adapted to external conditions.
Furthermore two sensors in a street, one at ground level and the second at 10 m height (3rd floor) will deliver different values. So we need to identify what and how do we want to calibrate and for what purpose. The calibration with an official sensor is a must as it helps to correct manufacturing dispersion of the sensor.
So a unique formula for all sensors seems optimistic.
The analyses presented on the Deciphair site apply a dedicated calibration for each sensor using official sensors as reference and corrected wrt temperature when temperature is below 10°C.
Unfortunately this represents a lot of data analyses whose results need to be presented on a dedicated node.
In my backyard I have a multi-pm sensor consisting of #61354 sps30 #61355 sds011 and #61577 bme280 in one casing having a single forced air inlet and outlet so both pm sensors snif the same air at the same time.
Anyone interested in comparing data is welcome to do so.
This nodemcu runs a slightly modified firmware to allow both pm sensors to transmit their data with different PIN
Thank you transmitting your sensors ID.
Currious to compare different sensors I spent some time retrieving their data.
The sds011 sensor and the bme280 sensor roughly work well.
The ratio between PM10 and PM2.5 is realistic; they might need to be adjusted with respect to an official sensor, but it is an extra work with identifying the official sensor (Eindhoven) and retrieving the data.
However the behavior of the sps30 sensor is strange; looking at the CVS files on the same period, we notice that the various PM values are roughly the same at any given date, which is not normal. A picture of the grafana dashboard gives this; nearly same values, same shapes:
So is this sensor deficient or the firmware you applied is erroneous?
A comparison of the different sensors in Best / Eindhoven would be interesting as there numerous sensors / motivated people, but would require a significant work… let’s see !!!
SPS PM values transmitted mean kind of ‘lower or equal to’
So PM1 is lower or equal to PM1, PM2.5 is lower or equal to PM2.5 so including PM1, etc therefore PM10 includes everything below PM10
To know the actual PM10 value, one has to subtract the lower measurements, in this case the PM4
Reference meters in Best are part of the region Eindhoven TNO measurements https://ilm2.site.dustmonitoring.nl/
It is hardly understandable and physically representative.
Let’s take a measurement point of your sensor as below:
Maybe I misunderstood but the maximum value is the sum of all particules below 10 microns and the minimum the particules below 1 micron. Consequently the level of PM1 is very high and the level of PM10 very low.
So the measurements are difficult to be compared with what we notice with the SDS011 and the graphs in the grafana dashboard are apparently not valid as for the SDS011.
Anyone to challenge this representation ?
Shows an insight in low costPM sensor performance
Thank you Peoter for this very interesting document.
It explains why the PM10 measurement value is quite low and nearly the same for PM4.
The SPS30 sensor is mainly suited to detect particles below 2 microns and more especially around 1 micron. As the official sensors are providing reference data for PM2.5 and PM10, maybe you can use them to find a coefficient to better adjust the PM2.5 measurement, but useless to try for PM10.
Regarding the SDS011 which is slightly better but not really fantastic too for PM10, I succeeded to find a calibration factor (but to be done for each sensor) to reflect the trend of the officials sensors; this is what is named in the article, an attempt to extend the operational range of the sensors. In fact I noticed that the correlation was better for PM2.5 than for PM10.
So there is no (not yet) good low cost solution to measure concentrations of particles from 1 to 10 microns; one solution would be to associate different detectors having more adequate performance for different particule sizes. But this is another story…