Forum Sensor.Community

PM adjustment factor

I am running an airrohr (SDS011 & SPS30) and a nam (SDS011) in my garden. When assembling those I found that different SDS samples would yield quite different PM results. It’s pure luck that the results of the SDS011 which is installed in the airrohr are really close to the data of the next official PM station (about 4km away):


(hourly updates on the plot from

The SDS installed in the nam enclosure is a few months younger than the one in the airrohr and usually yields just 60%:

I put the low reading SDS011 into the airrohr assembly and it was still reading low. I even tried different samples from the same order and they all read low.

That brings me to the (probably controversial) question if a user-defined scaling factor should be added to airrohr and nam firmwares to allow the adjustment of the PM results. Of course this factor should not be changed unless a reliable reference is available.

absolutely- requires adjustment. for some applications only the delta matters: 10% increase in 2.5m from last week. as per the UC Davis ASIC lecture on low cost sensors, sometimes there is strength in numbers and not precision.

there are youtube videos that delve specifically into airRohr calibration.

Passing this video on which shows correlation between ~800 low cost airRohr PM sensors and reference grade sensors at (Flemish) FEA.

exploring and analysing Sensor.Community PM measurements

  • Open Source software retrieval – Panodata
  • Luftdaten Pumpe blends readings from official FEA and luftdaten AirRohr sensors
  • Humidity the factor – only use reference station readings.
  • Adjustments via Chakrabarti algorithms
  • Further adjustments using R and Shiny, LDPR, regression correction

A main focus of Sensor.Community is developing approaches for this sort of analysis.

The Dutch governmental institute RIVM has developed a algorithm to calibrate raw measurements from SDS011 sensors. It takes into account characteristics of the sensor, most noticeable relative humidity as this influences the measurement strongly if it is high and it also uses a nearby official RIVM measurement station to create a reference value. They basically use a number of SDS011 measurement stations to determine the difference with the official RIVM station. Check Samen Meten - Dataportaal (in Dutch). Joost Wesseling is a contact person in case you want to consult RIVM.

I don’t want to suggest sophisticated corrections of environmental or physical effects. Instead I am looking for a fix for differences in the way the sensor counts itself. I have the impression that the batch of SDS011 I purchased about a year ago (need to check the exact date) reads significantly less than an older sensor I use and which is usually very close to a trusted data source.

Here is data from the older and one of the newer sensors from June. Plotted is PM2.5 vs seconds since 1.6.2021 0:00. Grey is the “old” sensor mounted in the airrohr. Blue is one of the newer sensors mounted in the nam enclosure. Of course I checked that the newer sensors gives the same low results in the airrohr, hence the issue is within the sensor, not the enclosure or firmware. Orange is obtained by simply multiplying the data by a factor of 2. A similarly improved agreement is found for the rest of the month. I think that the ability to dial in a correction factor in the airrohr and nam UIs could help to feed more sensible data into the database.

Of course, this factor has to be used with care and good reason.

Today is a good example how different SDS011 results measured in the same place can be:

The “trusted” one

The low reading one

From the nearby PM station the results are
6:00: 9µg/m^3
8:00: 15µg/m^3
13:00: 4µg/m^3

What are the reason against implementing a user-defined scaling factor? Alternatively, I should switch that PM sensor off and stop polluting the database. Or spend more money to get a sample which by pure luck could give more sensible absolute values.


I’m in a similar situation where I have two sensors. One of them inside the outside, the other outside. The inside sensor shows PM values on average half of the outside sensor. I always assumed the inside atmosphere must contain less fine dust particles. However when I put them side by side the other day, the difference remained. So I’m puzzled. Could it be the sensors deteriorate over time? The difference grew over a period of two years. Is there a way to recalibrate?

In my case the difference was there right from the start with brand new sensors from one order. They all read too low. It’s quite a coincidence that you are posting today, because DHL has just delivered 2 new SDS011 which I will try this weekend. I hope they are from a different batch.

How long do you compare the Data? It can take Time.

Indeed : I’m a complete newcomer here (having a sensor for less than a week) but I noticed there was a phase of ‘initial convergence’ which lasted more than one day apparently. Maybe the cleanliness, or alternately, the outgasing of the components was in play… but at least it teaches patience :wink:

Actually not! There can be a kind of concentration effect. And some people use a lot of house perfume or incense which produce large amount of PM.

I have replaced the “faulty” sensor by a new one, but I keep seeing lower readings compared to my second sensor. So the sensor is fine. I suspect I’m obstructing airflow to the sensor. I’ve put the sensors in a ventilation shaft, found a narrow crack to fit the tube, but maybe too narrow.