Back to

PM Sensor always reading 0.0

Good evening!

Finally my SCK 2.1 arrived. I put all together, update the firmware of both SAM and ESP (SAM 0.9.8 and ESP 0.9.8) but my PM sensor is always reading 0.0 (in the 3 particle dimensions)

I have done the “debug” with the shell:

02:09:10.405 -> -----------
02:09:10.405 -> 2021-10-26T01:09:11Z
02:09:10.405 -> Temperature: 22.38 C
02:09:10.405 -> Humidity: 64.92 %
02:09:10.405 -> Battery: -1 %
02:09:10.517 -> Light: 107 Lux
02:09:10.775 -> Noise dBA: 28.06 dBA
02:09:11.184 -> Barometric pressure: 101.33 kPa
02:09:11.184 -> VOC Gas CCS811: 0.00 ppb
02:09:11.241 -> eCO2 Gas CCS811: 400.00 ppm
02:09:11.241 -> -----------
02:09:11.295 -> (2021-10-26T01:09:11Z) Readings saved to flash memory.
02:10:10.531 -> 
02:10:10.531 -> -----------
02:10:10.531 -> 2021-10-26T01:10:11Z
02:10:10.531 -> Temperature: 22.33 C
02:10:10.646 -> Humidity: 65.13 %
02:10:10.646 -> Battery: -1 %
02:10:10.646 -> Light: 107 Lux
02:10:10.939 -> Noise dBA: 39.00 dBA
02:10:11.348 -> Barometric pressure: 101.34 kPa
02:10:11.422 -> VOC Gas CCS811: 0.00 ppb
02:10:11.422 -> eCO2 Gas CCS811: 400.00 ppm
02:10:27.532 -> PM 1.0: 0 ug/m3
02:10:27.532 -> PM 10.0: 0 ug/m3
02:10:27.769 -> PM 2.5: 0 ug/m3
02:10:27.769 -> -----------
02:10:27.871 -> (2021-10-26T01:10:11Z) Readings saved to flash memory.
02:11:10.428 -> 
02:11:10.428 -> -----------
02:11:10.428 -> 2021-10-26T01:11:11Z
02:11:10.428 -> Temperature: 22.32 C
02:11:10.518 -> Humidity: 65.21 %
02:11:10.518 -> Battery: -1 %
02:11:10.569 -> Light: 97 Lux
02:11:10.832 -> Noise dBA: 31.90 dBA
02:11:11.239 -> Barometric pressure: 101.34 kPa
02:11:11.299 -> VOC Gas CCS811: 0.00 ppb
02:11:11.299 -> eCO2 Gas CCS811: 400.00 ppm
02:11:11.299 -> -----------
02:11:11.350 -> (2021-10-26T01:11:11Z) Readings saved to flash memory.
02:11:26.670 -> Connecting to Wifi...
02:11:26.877 -> ESP finished booting
02:11:26.944 -> Connecting to Wifi...
02:11:30.709 -> Connected to wifi!!
02:11:30.981 -> (2021-10-26T01:09:11Z) Sent readings to platform.
02:11:31.219 -> Network publish OK!! (8 readings)
02:11:31.287 -> (2021-10-26T01:10:11Z) Sent readings to platform.
02:11:31.728 -> Network publish OK!! (11 readings)
02:11:31.783 -> (2021-10-26T01:11:11Z) Sent readings to platform.
02:11:32.203 -> Network publish OK!! (8 readings)
02:12:10.355 -> 
02:12:10.355 -> -----------

It all seems to work good, but the PM sensor.
I think I have a faulty sensor. Any ideas?
Can you help me please?

Best regards,

Vasco Gouveia


You are right to suspect a possible fault in the particle sensor;,but Before ordering a new one;,’may I suggest it’s a good idea to make some basic check of both ends of the 8 wire connection between urban sensor board and data board.
Also note that it can sometimes take a while before the PMS device starts to give up readings that make sense.

It’s also possible to perform more in depth diagnostics of any individual sensor using CLI interface, which I assume you are familiar with. Check that the PMS sensor is enabled and gives up a reading every few seconds.

Check that the blue plastic on the PM sensor has been removed and that the inlet and outlet orifices are clear. You can confirm whether the device is operating by introducing a source of particulate matter such as outside air; car exhaust; kitchen cooking etc.


Thank you Bryn, I already check the both ends of the 8 wire connection between urban sensor board and PM sensor, and are OK. I also checked the pins in the sensor and in the board, and are OK. I have already installed in the same palace another PM sensor (Grove - Laser PM2.5 Sensor (HM3301)) and the measures are greater than 0 (zero).

I have also checked the CLI interface and the sensor is present and is giving readings every few minutes, but they are all 0.0 (zero).

I’ve already shaken a dusty mop in the vicinity of the sensor and nothing, on the other PM sensor (HM3301) the particle count has increased.

I order from DigiKey an adaptor to make a solo test to the sensor, but I’m convinced that it’s broken/damaged.

Do you have any other suggestions?

@oscgonfer, @victor, (sorry if I’m wrong but I’t seams to me that you have a privileged position on the SmartCitizen project) in this case, a kit shipped with a malfunction sensor, what should we do? Do you have any “special” contact in seeed in order to solve this problem?

Thanks in advance. Best regards,

Vasco Gouveia

Hi @airsentio

One final check would be to use a digital voltmeter or multimeter and check the Vcc pins on the PM sensor; you will need to consult the circuit diagram to discover which pin.
If the voltage is OK then there’s nothing for it but to bite the bullet and go for a replacement sensor.
If the voltage is not there then you are up for a replacement Data board or Urban board (Take care to update its firmware and esp firmware: the Seeed stocks were manufactured before the latest version was released)

If it’s the sensor: there are Two choices:
(a) look for the sensor by itself using Google. You never know your luck. Digikey or mouser might have it. If they have you will get it pretty quick.
(b) buy the bare bones Smart Citizen kit of $us99 from Seed which includes the two boards and one pm sensor.
If it’s the Data board or Urban board (b) is the only available choice.
If you only purchased your kit recently then you might be able to get Seeed to supply the parts without cost or reduced cost. Be prepared to negotiate with their customer support and (wait and wait and wait some more) for them to respond.

Cheers and best of luck

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.