Back to

PM Sensor always reading 0.0

Ohhh here is some more on the dust sensor:

Pi Moroni have them for sale at GBP 25 which seems a bit steep to me.

Secondly @bron has been forced to buy several bare bones kits from Seeed due to failures of several urban boards all at once. He is helping to maintain the @viadukduk network. He might be willing to part with one of the excess PM sensors that are included and might be surplus to his requirements. Maybe you two can knock heads and come up with a mutually beneficial arrangement.

I (for one) would like to acquire a replacement data board because I broke the grove socket on my original SCK board a months after getting it. The repair I made was unsatisfactory. It’s one reason I now take extreme care inserting and removing grove cables now; and I cut off the “buckle” on grove cables too.

@oscgonfer @victor there seem to a few odd failures of parts of SCK being reported, and people have to buy the whole bare bones kit to fix the problems.
It’s inevitable; there have been thousands of the kits sold over the years and MTBF has a way of rearing it’s ugly head.

  1. Perhaps you could set up a “swap” type forum category where people might advertise spare parts for sale.
  2. Perhaps it might be a good idea to keep track of component failures for future reference. Also to document a procedure for people to fault find; acquire/order spare parts. Yeah I know; it’s not like you don’t have a lot to do right ? But I am willing to help if you need it.


@airsentio were you able to resolve this?

I got my kit a week or two ago and am experiencing the same issue.

Hi @jtleniger

I guess its important at this stage to make no assumptions concerning the source of the issue you find; as a number of things under your control can cause sensors to appear not to be working.
Its a step by step procedure to use first the CLI to perform diagnostics;
Then check physical wiring along the pathway (Data Board >> Urban Board >> PM Device) including all of the connectors. If you have a Digital Voltmeter and/or a Oscilloscope available it can be handy.
If you have performed the checks described by @airsentio (record your findings at each step) and remain convinced the device is faulty; then, next step is to take up the matter with Seeed Support. If the device they sent you is faulty then they need to replace it.
If they fail to do so then you should report it back to @-oscgonfer @-victor or @-pral2a1 (remove the hyphen) who may be able to take up the matter with Seeed on your behalf; you will need to send them copies of your communications with Seeed.

1 Like

Thanks @bryn.parrott! Haven’t had an opportunity to take it inside and open the container, but I will follow those steps.

Was just curious because it seemed to have identical symptoms and shipped likely from the same batch :slight_smile:

I did not mention that obvious coincidence.
Seeed might have fallen down on the QA testing side of things. Unheard of !!

But, as 'aforesaid its best to make no assumptions. If you go through the procedure and come up with the same results independently then its is more powerful than just assuming its that same problem. Its a larger hammer to clobber Seeed with; that can be best used to effect by the fablabsbcn team in their discussions with them. ( @pral2a1 )


I got a chance to move the device inside and open the case.

Things I’ve done:

  • Turned off the device, then turned it back on
  • Pressed the reset button
  • Reset via CLI
  • Disconnected and reconnected the ribbon cable to the PM sensor

A few observations:

  • The ribbon cable is securely connected
  • My multimeter reads 5 volts across the pins described in this post at the sensor
  • When I ask for a reading on the CLI, I see the fan on the PM sensor spin

Some CLI output, including version, sensor list, I2C list, and read attempts, showing 0 for all PM metrics:

Hardware Version: 2.1
SAM Hardware ID: FC62E4F950573738352E3120FF15190E
SAM version: 0.9.8-e283e58
SAM build date: 2021-08-26T16:38:29Z
ESP MAC address: 9E:9C:1F:40:14:7D
ESP version: 0.9.8-e283e58
ESP build date: 202{
SCK > sensor

PM board Dallas Temperature
Direct Dallas Temperature
Ext Temperature
Ext Humidity
Temperature BME680
Humidity BME680
Battery voltage
SDcard present
Noise dBC
Noise dBZ
Noise FFT
Pressure internal temperature
Gases Board 1A
Gases Board 1W
Gases Board 2A
Gases Board 2W
Gases Board 3A
Gases Board 3W
Gases Board Temperature
Gases Board Humidity
Groove ADC
INA219 Bus voltage
INA219 Shunt voltage
INA219 Current
INA219 Load voltage
DS18B20 Water temperature
Atlas Temperature
Atlas PH
Atlas Conductivity
Atlas Total Dissolved Solids
Atlas Salinity
Atlas Specific gravity
Atlas Dissolved Oxygen
Atlas DO Saturation
Soil Moisture Raw
Soil Moisture Percent
Soil Temperature
Soil Light
Ext Range Light
Ext Range Distance
Barometric pressure BME680
VOC Gas BME680
GPS Fix Quality
GPS Latitude
GPS Longitude
GPS Altitude
GPS Speed
GPS Horizontal Dilution of Position
GPS Traked Satellites
ADS1x15 ADC 0x48 Ch0
ADS1x15 ADC 0x48 Ch1
ADS1x15 ADC 0x48 Ch2
ADS1x15 ADC 0x48 Ch3
ADS1x15 ADC 0x49 Ch0
ADS1x15 ADC 0x49 Ch1
ADS1x15 ADC 0x49 Ch2
ADS1x15 ADC 0x49 Ch3
ADS1x15 ADC 0x4A Ch0
ADS1x15 ADC 0x4A Ch1
ADS1x15 ADC 0x4A Ch2
ADS1x15 ADC 0x4A Ch3
ADS1x15 ADC 0x4B Ch0
ADS1x15 ADC 0x4B Ch1
ADS1x15 ADC 0x4B Ch2
ADS1x15 ADC 0x4B Ch3
SCD30 Temperature
SCD30 Humidity
Ext PM_A 1.0
Ext PM_A 2.5
Ext PM_A 10.0
Ext PN_A 0.3
Ext PN_A 0.5
Ext PN_A 1.0
Ext PN_A 2.5
Ext PN_A 5.0
Ext PN_A 10.0
Ext PM_B 1.0
Ext PM_B 2.5
Ext PM_B 10.0
Ext PN_B 0.3
Ext PN_B 0.5
Ext PN_B 1.0
Ext PN_B 2.5
Ext PN_B 5.0
Ext PN_B 10.0
PN 0.3
PN 0.5
PN 1.0
PN 2.5
PN 5.0
PN 10.0
Groove OLED

Temperature -> every 1 int (60 sec) 
Humidity -> every 1 int (60 sec) 
Battery -> every 1 int (60 sec) 
Light -> every 1 int (60 sec) 
Noise dBA -> every 1 int (60 sec) 
Barometric pressure -> every 1 int (60 sec) 
VOC Gas CCS811 -> every 1 int (60 sec) 
eCO2 Gas CCS811 -> every 1 int (60 sec) 
PM 1.0 -> every 5 int (300 sec) 
PM 2.5 -> every 5 int (300 sec) 
PM 10.0 -> every 5 int (300 sec) 
SCK > i2c
Searching for devices on internal I2C bus...
I2C device found at address 0x29!!
I2C device found at address 0x44!!
I2C device found at address 0x5a!!
I2C device found at address 0x60!!
I2C device found at address 0x6b!!
Found 5 devices

Searching for devices on auxiliary I2C bus...
Found 0 devices
SCK > read pm
Your reading will be ready in 15 seconds try again!!
SCK > 
Temperature: 21.67 C
Humidity: 35.44 %
Battery: 99 %
Light: 585 Lux
Noise dBA: 38.43 dBA
Barometric pressure: 83.43 kPa
VOC Gas CCS811: 0.00 ppb
eCO2 Gas CCS811: 400.00 ppm
PM 1.0: 0 ug/m3
PM 2.5: 0 ug/m3
PM 10.0: 0 ug/m3
(2021-11-07T06:49:46Z) Readings saved to flash memory.
(2021-11-07T06:49:46Z) 11 readings saved to sdcard.
it's time to publish
Connecting to Wifi...
ESP on...
ESP finished booting
Synced config with ESP!!
Connecting to Wifi...
Connected to wifi!!
(2021-11-07T06:48:46Z) Sent readings to platform.
Network publish OK!! (6 readings)
(2021-11-07T06:49:46Z) Sent readings to platform.
it's time to publish
Network publish OK!! (11 readings)
ESP off...
read pm
Your reading will be ready in 15 seconds try again!!
(2021-11-07T06:50:46Z) Readings saved to flash memory.
(2021-11-07T06:50:46Z) 8 readings saved to sdcard.
read pm
PM 1.0: 0 ug/m3
SCK > read pm5
Not found sensor is disabled!!!
SCK > read pm 5
PM 2.5: 0 ug/m3
SCK > read pm 
Your reading will be ready in 15 seconds try again!!
SCK > 
(2021-11-07T06:53:46Z) Readings saved to flash memory.
(2021-11-07T06:53:46Z) 8 readings saved to sdcard.
monitor pm
Time	Miliseconds	PM 1.0
2021-11-07T06:53:53Z	6		0
2021-11-07T06:53:53Z	17		0
2021-11-07T06:53:53Z	12		0
2021-11-07T06:53:53Z	12		0
2021-11-07T06:53:53Z	12		0
2021-11-07T06:53:53Z	12		0
2021-11-07T06:53:53Z	12		0

SCK > 
Temperature: 21.78 C
Humidity: 35.14 %
Battery: 99 %
Light: 0 Lux
Noise dBA: 50.31 dBA
Barometric pressure: 83.44 kPa
VOC Gas CCS811: 115.00 ppb
eCO2 Gas CCS811: 1156.00 ppm
Adding PM 1.0 to pending sensor list
Adding PM 2.5 to pending sensor list
Adding PM 10.0 to pending sensor list
Waiting for 3 sensors to finish the reading process
PM 1.0: 0 ug/m3
PM 10.0: 0 ug/m3
PM 2.5: 0 ug/m3
(2021-11-07T06:54:46Z) Readings saved to flash memory.
(2021-11-07T06:54:46Z) 11 readings saved to sdcard.

Temperature: 21.96 C
Humidity: 38.95 %
Battery: 99 %
Light: 0 Lux
Noise dBA: 69.17 dBA
Barometric pressure: 83.43 kPa
VOC Gas CCS811: 117.00 ppb
eCO2 Gas CCS811: 1174.00 ppm
Adding PM 1.0 to pending sensor list
Adding PM 2.5 to pending sensor list
Adding PM 10.0 to pending sensor list
Waiting for 3 sensors to finish the reading process
PM 1.0: 0 ug/m3
PM 10.0: 0 ug/m3
PM 2.5: 0 ug/m3
(2021-11-07T06:59:46Z) Readings saved to flash memory.
(2021-11-07T06:59:46Z) 11 readings saved to sdcard.

@bryn.parrott or anyone else reading, are you running the same firmware version (0.9.8) with successful PM readings?

That would be a quick way to isolate hardware issue vs. firmware regression.

Hi @jtleniger

My Smart Citizen Station kit is not the same as your Smart Citizen Kit; since it has two Dust Sensors connected to a secondary SAMD21G18 processor board instead of the Urban Board.

My system is not yet up and running; because I extended it; I am developing custom firmware which is not yet ready for prime time… It will nonetheless be running the same base version of firmware.
For these reasons I am unable to help as I do not yet have any readings at all; my system is not running. <sorry !>

However having said that I would lean away from a direction of firmware being the cause of this issue; mainly because this version was tested in beta for months prior to being released; and following release it has been installed by many; who would surely have made a noise by now if the dust sensor stopoed working. For many; this version 0.9.8 solved a myriad of different issues.

Others might be able to help though; here’s hoping someone else can respond.

Good to know, thanks. It’s a new-ish update and I don’t really have visibility into the number of users or adoption of the update :slight_smile:

That probably eliminates firmware being the cause then.

1 Like

edit: new sensor is able to get readings!

Hi all!

Couple of comments regarding this:

  1. If the sensor is always reading zero, there is a way to take measurements of the actual number the sensor counts PN (not PM) by:
sensor -enable PN
read PN

If the PN readings are 0 #/m3 as well, then the sensor might be clogged or malfunctioning.

  1. About clogged sensors: we have seen sometimes bugs (insects) inside the sensors themselves. This made some sensors not able to read anything because the bugs had build small nets around the sensing components. @airsentio Opening the sensor is sadly not easy, and we would recommend to drop a message to SEEED’s hardware support for replacement in case they don’t work. This applies for every hardware component, not only the PM:
  1. As for the swap category, sure. I think maybe it makes more sense to make something more related to replacements and anyone can post there to discuss about swapping elements. Also, I think we can channel proposals regarding better replaceability or improvements (as @bron and @bryn.parrott suggested for the Urban Board). Any proposal for names?

  2. If this happens in new sensors frequently, we will need to tell SEEED about it. They normally take care of these things quite well based on our experience.

Something that I’m trying to test a bit more for anyone else reading:

I’m wondering if perhaps these sensors aren’t very sensitive. With my new working one, it still outputs 0 the vast majority of the time in the place it is located. I was able to see readings by extinguishing a candle below it.

Hi Oscar
I will weigh in with this suggestion:
“Spare parts exchange”
Along with a pinned post explaining that people might post that :
a) have an excess of some parts or
b) if they need a particular part.


same problem here, I bought a new kit because the data board has stopped working, and received a faulty PM sensor.

Now I am contacting Seed for a replacement, or I will start a PayPal controversy.

Some better Quality Control would be appreciated…

Hi all, thanks for this thread. I also have this issue with a new SC kit; I bought a new kit which arrived in the last month with a faulty PM sensor (always reads 0), and the eCO2 sensor which only reads 400ppm. I have a thread with Seeed support about how to resolve this, but no luck yet.

I’ve tried the latest firmware for SAM and ESP (which it came with) 0.9.8, as well as the previous version from the archive.

Both of those devices connect via the Urban Board.

I had a similar issue when firing up my SCS recently.

The problem turned out to be slightly skew seating of the urban board onto its connector on the Data board. A very slight tilt. There was a tiny gap on one side of the connector when viewed from one side; and I could see the pins through the gap.
I straightened the seating and all came good.

May I suggest that you look into this possibility.

Concerning the VOC/eCO2 sensor the fact you are getting anything out of it at all is encouraging. I found that it took quite a while before the CCS811 Sensor and the PM sensor started delivering sensible readings. Like 20 mins or so. My suggestion is that after bringing your kit on line; just leave it turned on for an hour then perform a reset; see if readings are delivered now.
You can easily test the VOC sensor by taking the device into your kitchen whilst cooking is going on. OR dare I say expose them to cigarette smoke. VOC and PM readings should increase dramatically.

I also have just received a new SCK 2.1 a few days ago and am suffering from a similar issue. I tried checking via the shell and found the following behavior:

  • If reading the data at an interval of 15 seconds (note this means you also have to change the interval for the particle sensor to 15 seconds), then data is read from the sensor. But after 30 minutes, the 0 values resume. Pressing on/off button will then result in resumption of reading data for another 30 minutes
  • Setting higher values for the read interval (e.g. 30 seconds) will stay stuck at the 0 value always

I’ve been reaching out to seeed on this, let’s see what they say.

1 Like

Hello everyone,

So we have just received ourselves a lot of kits and we are seeing similar issues. So far, we have seen flat PM=0ug/m3 values with the new batch, whereas old batches of PM sensor with similar firmware revisions show non-null values. We are thinking it might be something related to the way we interact with the PM sensor, so before handling complaints with SEEED, we would encourage to post here the following:

  1. Purchase date
  2. Device URL
  3. Is it always reading 0ug/m3?
  4. Picture of the PM sensor label that is on the side. This information is valuable to understand batches.

We would thank you for this info. We are checking this on our side to see if it can be solved with a firmware update or if we need to reach out to SEEED / Plantower.


1 Like

Just fyi.
The two PM sensors included with my SCS V3 do not exhibit this problem. But then they are likely an earlier batch and of course SCS operates 2x PM alternately so it’s different; but may be a clue to what happening on the data board.


We have been checking this issue on the last days. We have found that something has changed on the PM sensor behavior since the last batch. Now the first two readings delivered by the sensor after startup are zero, the third one and up seem to be correct.

For now there is a firmware branch that fixes the issue here: If someone want’s to use this patched firmware version for now the binary is here. You can update the SAM firmware as usual.

We are not merging this in to the master branch until we do some more tests and we are sure that this is the only thing that has changed.


1 Like