The Plantower PMS5003 and PMS7003 Air Quality Sensor experiment

Share: sensor/pms5003-7003/

For a complete list of all the Air Quality Sensors test on, check our sensor overview page.


Plantower PMS 5003 and PMS 7003 Sensor

The PMS 7003 and PMS 5003 sensors are the 7th resp 5th generation of the PMSx003 series developed by Plantower (chinese name 攀藤).

Experiment Setup

This experimentation is dedicated to our colleagues at Haier, IBM and Google.

For this experiment, 3 PMS 7003 and 3 PMS 5003 are co-located together. The objective is to understand the accuracy of individual sensor readings, and potential level of error induced by the lack of efficient calibration of low-cost sensors .

For each sensor (PMS5003 and PMS7003), there are 3 sensors (identified as PMSx003 #1, #2 and #3) running in alternation over a period of 3 minute. For each minute, only the last 30 seconds data is collected, as the first 30 seconds as kept to let the sensor stabilize its output.

There is additional PMS5003 sensor (number #4 ): It is a used (old) sensors which has been running in continuous mode for several months outdoor. The objective for this sensor is to understand if the accuracy decreases with the age (during to the laser or fan wearing off).

Specification sheets: PMS5003.pdf and PMS7003.pdf.

Note that the PMSx data from the Sensor comes in two flavors: '标准颗粒物' (Standard Particles or CF-1, bytes 4-9) and '大气环境下' (Atmospheric Environment, bytes 10-15). It is the second one which we use for this experiments (Thanks to Bart for the clarification).

Sensor tear-down

The following pictures are taken from a PMS5003 running for several months outdoor in continous mode.

The good news is that Plantower managed to do a pretty good mechanical design which prevents dust accumulation on the front-side of the PCB (see image A on the right), where laser and diode are mounted. Compared to the dust accumulation on the Dylos, that guarantees a much better lifetime and data accuracy over time.

In terms of electrical and electronic components, the PMS5003 is not quite different from the initial PMS1003 desing. The CPU is still a Cypress CY8C4245, which a combined ARM Cortex-M0 running at 48Mhz with dedicated ADC, used to sample the output from the diode.

Real-time data

db stands for dust bin and is measured in counts per minute. For instance, db2.5-um represents the count of particles with an aerodynamic diameter below 2.5 µm;

Time series for Meteorological Conditions

Meteorological conditions, and especially the Relative Humidity (RH) is needed as high RH might have a direct impact on the size of the particle size detected by the laser. For BAM sensors, there is actually a requirement for constant humidity.

Above graph is based on CWOP station EW2754. Below table is based on the real-time readings from our GAIA A12 station

Time series for Particulate Matter

Note that the first 3 time-series graphs are showing the values using AQI (and not raw mg/m3). The AQI is based on the US EPA breakpoints. For PM1, the PM2.5 breakpoints are used.

For the particulate matter graphs, the reference BAM measurements from the neighbor stations are shown, but not taken into account for the deviation plot ~ the aim of this experiments is to understand the deviation in between sensors of the same type (eg PMS) and not in between sensors using different technologies (eg Laser Counter vs Beta Attenuation).

The deviation plots below each time-series is computed as the difference between the minimum (in blue) resp. maximum (in red) value and the average reading for each 5 minute period block. The X axis is showing the average value, and the Y axis the difference between min/max and average. For the first 3 time-series graphs, the difference is expressed in AQI: This way, it is easy to asses the potential error in AQI value of those low-cost sensors.

Comparison between Std. Particle (标准颗粒物) and Std. Atmosphere (大气环境下)

CF1 refers to Std. Particle (标准颗粒物). SAT refers to Std. Atmosphere (大气环境下).

The graphs below shows the correlation for the CF1 (X, absyss) and the ratio CF1/SAT (Y, ordinate), for the PM2.5 and PM10 data.

The almost too perfect correlation between approx. 30 mg to 100 mg for PM2.5 / PMS5003, (40mg to 150 for PM10) does not sound too scientific...

cf1<30 ⇒ sat = cf1
cf1>100 ⇒ sat = cf1 * 2/3
cf1 in ∈ [30;100] ⇒ sat = 30 + cf1 * (cf1-30)/70 * 2/3

Note: Thanks to Bart for the comment on CF1>30 ⇒ SAT < CF1
The formula has been updated with correct ratio (2/3)

One interesting question is whether is CF-1/SAT ratio is part of the calibration process done by Plantower; At least, for PM2.5 the upper threshold for PMS7003 and PMS5003 are different (85 for the first, and 100 for the second). When sufficient data is available, this page will be updated with the answer...

Correlation between PM10 and PM2.5

Refering to the experiment on PM10 vs PM2.5, the question is weather the PMS sensor is able to correctly detect the particules. The graph below show the correlation between PM10 vs PM2.5 CF-1 readings for the past 10 days.

For now, the correlation seems perfectly linear, but as soon as the next PM10 pollution event comes, the graph will be able to confirm the efficiency of bin size detection.

Moreover, one interesting pattern to check for is the non-linear curve, which can be seen on the Dylos sensor. This curved pattern is due to the sensor not beeing able to properly detect the different particles bins, caused by a too high number of particles 'obstructing' the diode. For now, the Air Pollution is too low to detect this phenomenon, but as soon as winter arrives, the data will confirm the existence of this pattern or not.

Time series for Particulate Matter (Indoor setup)

There are 2 additonal indoor PMS5003 sensors:
The graphs below are expressed in AQI units.
And this is for the meteorological indoor sensor


For the list of all air quality sensors, check the Sensor Overview page

Read or publish comments (they rely on Disqus)

대기 품질 및 환경 오염 측정에 관하여 :

대기 품질 지수 단계에 대하여

0 - 50 좋음 대기오염 관련 질환자군에서도 영향이 유발되지 않을 수준
51 -100 보통 환자군에게 만성 노출시 경미한 영향이 유발될 수 있는 수준
101-150 민감군영향 환자군 및 민감군에게 유해한 영향이 유발될 수 있는 수준
151-200 나쁨 환자군 및 민감군(어린이, 노약자 등)에게 유해한 영향 유발, 일반인도 건강상 불쾌감을 경험할 수 있는 수준
201-300 매우나쁨 환자군 및 민감군에게 급성 노출시 심각한 영향 유발, 일반인도 약한 영향이 유발될 수 있는 수준
300+ 위험 환자군 및 민감군에게 응급 조치가 발생되거나, 일반인에게 유해한 영향이 유발될 수 있는 수준
(Reference: see

대기 품질과 오염에 대해 더 많은 것을 알아보려면 위키피디아의 공기품질 문서(영어)을 보거나 공기 품질과 건강에 대한 AirNow 가이드(영어)를 참조해보세요.

베이징 의사 Richard Saint Cyr MD의 건강 관련 팁을 보려면 에 블로그를 확인하세요.

Usage Notice: All the Air Quality data are unvalidated at the time of publication, and due to quality assurance these data may be amended, without notice, at any time. The World Air Quality Index project has exercised all reasonable skill and care in compiling the contents of this information and under no circumstances will the World Air Quality Index project team or its agents be liable in contract, tort or otherwise for any loss, injury or damage arising directly or indirectly from the supply of this data.


언어 설정 :

Temperature unit: