HM3301 Grove PM 2.5 displays static number

I ran the example code included with the library “Seeed_HM330X.h” right out of the box.

The output is this:

Serial start
0
FF 0 0 0 2
0 2 0 2 0
2 0 2 0 2
0 0 0 0 0
0 0 0 0 0
0 0

sensor num: 0
PM1.0 concentration(CF=1,Standard particulate matter,unit:ug/m3): 2
PM2.5 concentration(CF=1,Standard particulate matter,unit:ug/m3): 2
PM10 concentration(CF=1,Standard particulate matter,unit:ug/m3): 2
PM1.0 concentration(Atmospheric environment,unit:ug/m3): 2
PM2.5 concentration(Atmospheric environment,unit:ug/m3): 2
PM10 concentration(Atmospheric environment,unit:ug/m3): 2

The output does not change no matter what I do. Is this a nonfunctional sensor or is there something that I’m not doing right?

I have the same behavior. Checked with an external logic analyzer and its sending the values, so it isn’t a code issue.

Did you ever resolve this?

0
FF 0 0 0 2
0 3 0 3 0
2 0 3 0 3
0 0 0 0 0
0 0 0 0 0
0 0
sensor num: 0
PM1.0 concentration(CF=1,Standard particulate matter,unit:ug/m3): 2
PM2.5 concentration(CF=1,Standard particulate matter,unit:ug/m3): 3
PM10 concentration(CF=1,Standard particulate matter,unit:ug/m3): 3
PM1.0 concentration(Atmospheric environment,unit:ug/m3): 2
PM2.5 concentration(Atmospheric environment,unit:ug/m3): 3
PM10 concentration(Atmospheric environment,unit:ug/m3): 3

Hello, can you tell me the SKU of the product or the link of the product, I can help you find it

Hi, thanks… SKU: 101020613

Thank you for your reply, is the interface connected to the IIC interface of Arduino?

I applied for a new PM2.5 module for testing. The code and library are no problem. I use the Seeeduino development board and connect to PM2.5 through the IIC interface. The results of the test are as follows:
At the beginning, there are two to three sets of values that fluctuate, and then the values will stabilize and hardly change. This is normal.
I also tried to change the value and use the palm to cover the PM2.5 module. It takes a while to react. After about two to three sets of data, its value will change slightly within the range of plus or minus 3.

Any update on this? I installed a SCD30 and HM3301 on a common bus last night. Both initially worked, but today the SCD30 is working, but the HM3301 is reading 1 for PM1.0, 2.5 and 10, the SCD30 is still working. Not quite a random static number, but I’m trying to figure out how to troubleshoot and how to rule out a defective sensor. Any thoughts appreciated. I have these installed with jumper wires to an ESP32, but since I’m using the same bus for the SCD30 as well, which is having no issues, I think the bus is ok. I’ve checked the grove connector between the HM3301 and the hub and reset those… no change.

So, my troubleshooting otherwise didn’t lead anywhere, but with a burned dinner tonight that filled the house with smoke, I think that I discovered that my expectations were too high. Once the particle count was into the hundreds, it was differentiating counts between the three channels, at low particle counts it loses that distinction. By logging the data, I did note that it detects an increased particle count when cooking, even without visible smoke.