Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

PPD42 provides PM1.0 information, not PM10 #1

Open
dagwieers opened this issue Oct 9, 2016 · 6 comments
Open

PPD42 provides PM1.0 information, not PM10 #1

dagwieers opened this issue Oct 9, 2016 · 6 comments

Comments

@dagwieers
Copy link

dagwieers commented Oct 9, 2016

As far as I understand the specifications, the PPD42 provides PM1.0 and PM2.5 data, not PM2.5 and PM10 data.

You can find the technical details from the very well written De-construction of the Shinyei PPD42NS dust sensor":

Shinyei literature and other communications suggest that pulses at the P1 output correspond to 1µm particles, and pulses at the P2 output correspond to 2.5µm particles. That would seem to compare with the 1V and 2.5V thresholds set on the comparator inputs. There is presumably a calibration adjustment made to the sensitivity and gain trimmers in order to adjust the calibration to a standard maintained at Shinyei.

The documentation from Shineyi and other data also seem to confirm this:

So given this, the formula to calculate the number of µg/m³ seems to be wrong as well. In fact, you would expect that the same count of particles would result in less mass for PM1.0 particles than it would for PM2.5 particles (as they tend to be smaller). However the calculation seems to be using the PM10 formula which is wrong.

According to the paper mentioned in the source code from which the formula was taken, the formula uses certain assumptions:

Deriving Algorithm and Code Development

Because the sensor used to measure air quality is a laser particle counter, the output data must be altered so that it can be directly compared to the EPA standard (Table 1). Specifically, an algorithm is needed to convert from particles/.01 ft3 (the output of the Dylos DC1100 Pro) to μg/m3. Similar procedures have been done previously, with a high level of success [12]. It is important to note that this conversion is only a strong approximation; because it is impossible to quantify the exact properties of each of the thousands of microscopic particles being counted, several assumptions are made in the calculation. The algorithm developed assumes:

• All particles are spherical, with a density of 1.65E12 μg/m3 [12]
• The radius of a particle in the PM2.5 channel is .44 μm [20]
• The radius of a particle in the PM10 channel is 2.60 μm [20]

From the above assumptions, the volume, and thus the mass of a particle in both size channels can be calculated (approximated). Multiplying the number of particles per volume by the mass per particle yields a concentration, which can be converted into appropriate units (μg/m3) for comparison with the EPA standard.

What is your opinion ?

@hl68fx
Copy link

hl68fx commented Mar 2, 2017

Could it be that there exist two different Shinyei sensors?
PPD42NS and PPD42NJ

@cayeric
Copy link

cayeric commented Feb 23, 2019

The question seem to assume, that the P1 resp. P2 outputs would directly detect particles of size category PM10 (or "PM1.0") resp. PM2.5. This is not the case - the particle matter size can only be inferred from the sensor output data.

Although the device detects particle matter larger than 1μm, it does not follow that this relates to a so called "PM1.0". The category PM2.5 holds matter up to 2.5μm particle size, small enough not to trigger the P2 output. So the formula P1 AND !P2 selects PM2.5 particles only.

The PM10 category, on the other hand, contains particles up to 10μm. Since those trigger P1 (they're above the threshold of 1μm) as well as P2 (which detects particles >2.5μm), they have to be subtracted from PM2.5 calculations - otherwise they would be counted twice.

If a particle triggering P1 AND P2 is always a PM10 particle (up to 10μm) and not a larger one, this question remains unanswered.

The link to the above mentioned paper for concentration calculations has changed.

@dagwieers
Copy link
Author

The question seem to assume, that the P1 resp. P2 outputs would directly detect particles of size category PM10 (or "PM1.0") resp. PM2.5.

The question makes no such assumptions, it actually points to the relevant information. I don't know if the formulas used relate correctly to the measured data. IMO you can only make reasonable deduction of the particle counts between 1µm and 2.5µm (P1-P2, close to PM2.5), or particle counts larger than 1µm (P1) and larger than 2.5µm (P2) using this sensor.

PM10 relates to 10µm, not 1.0µm. And from P2 you cannot determine PM10 (particles up to 10µm). In fact P1-P2 is definitely PM10 but are missing from P2. So I would like to understand the rationale for the formulas used, especially for the PM10 values.

https://github.com/dustduino/DustDuinoSerial/blob/ebdf75e9266107b763abbf880c9bc88bed11cb44/DustDuinoSerial/DustDuinoSerial.ino#L93-L109

@cayeric
Copy link

cayeric commented Feb 25, 2019

For clarification: The mentioned PM1.0 category includes per definition particles up to 1µm. Since neither P1 nor P2 detect particles below the 1µm threshold, doesn't it follow that the device cannot detect particles of PM1.0 - to answer the headline question of this open issue?

Regarding PM10: to me the calculations seem to be based on the assumption, that all particles detected by the device, that trigger P2, aren't larger than 10µm, and therefore fall into the PM10 category - which is what the code line float PM10count = countP2 suggests.

Wouldn't it be more appropriate to use a classification like coarse instead of a well-defined category PM10?

@dagwieers
Copy link
Author

If the device cannot detect particles larger than 10µm, the value of P1 would be more correct than using P2. But that is not what this is about. Obviously for approximating the weight of the particles measured for PM2.5 and PM10, the value for PM10 does not include the weight for PM2.5, where it probably should.

But again, I don't see a good rationale for the used formulas for approximating PM10 values. Only PM2.5 could be reasonably done IMO.

@mastraa
Copy link

mastraa commented May 18, 2020

Dear all, i'm in with this sensor and i have some doubt.

Fist of all: datasheet show P1 characteristic, and P2? Do you think it's the same?

Then, if i understand well:
PM1.0 is particle up to 1.0um
PM2.5 up to 2.5um
PM10 up to 10um.

The sensor is able to measure particle over 1.0um and over 2.5um.

So i think we can consider all particle as PM10 (but we don't know about particles lower of 1.0um that are PM10 and PM1.0 too).
We can calculate PM2.5 apart for particles lower than 1.0um

Then we know particles between the sensor threshold, but not need...

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

4 participants