Should we change the way we power our sensors?

SDS011 Power requirements

As many of you might already know Sensor.Community kit based on SDS011 to work requires to be powered in proper way. SDS011 according to it’s datasheet may be powered with voltage between 4.7~5.3V. Our test shows that everything below 4.7V may cause problems. Under-powered sensor (4.6V) reports a way lower values than sensor powered the proper way. In electronics this is refereed as brown out condition. The measurements are lower probably because lower fan speed - and in consequence lower air flow rate. New SDS011 (2020Q4+) has additional cable from fan to STM32 input PF0 (probably to measure RPM). It’s still unknown if this information is used in PM calculation or not. For now we have no means to detect brown out scenario in working sensors. Which is really bad.

If we look at the other end - it’s also worth mentioning that above 5.6V Zener diode (E4) may clamp Vcc to GND as protective measure. Specified 5.3V seems to be a very reasonable value. Yet we don’t know how using higher voltage may translate for measurements. For accuracy reasons it would be the best to power sensor with voltage as close to 5V as possible.

SDS011 with old 2 pin fan during work uses ≈80mA.
Newer version (2020Q4+) with 3 pin fan uses a bit more ≈105mA.
This ≈25mA difference in some scenarios may cause problems.

According to SDS011 datasheet working current should be: 70mA ±10mA which in case of newer sensors is simply not true.

Sensor.Community KIT Power requirements

Standard Sensor.Community kit which includes SDS011, NodeMCU V3 and BME280 draws ≈80mA in standby mode with SDS011 in sleep mode and up to 175mA in work cycle. If we use 15% margin it’s safe to assume that S.C KIT requires 200mA in total with voltage at NodeMCU V3 VU Pin above 4.7V.

Cables, chargers and power loses

Currently in KITs we use standard 2.8m flat cable. This cable has 4 wires. Transmits data and power. Power wires have slightly larger diameter. This cable with load of 200mA has a voltage drop equal to 0.28V. Which means when we use it with perfect 5V USB charger we are still in safe region for SDS011 (4.7V), but there is no margin for error (apart those 15% mentioned above). In situation when USB charger outputs 4.9V this may cause problem. Problem which we can not detect.

Looking for solution

We could source better cables for kits. I already tested new white flat 3m cables with 2 large conductors (without data). As you may suspect the voltage drop was significantly lower - about 0.14V which is a really good value. But this cable was power only cable, without data lines. I don’t know yet if we are able to source a good 4 wire cable with large enough power conductors to prevent significant voltage drop. This of course comes with the additional cost.

Another way to prevent SDS011 brown out conditions is to use USB charger with higher voltage. 5.1V or ever 5.2V seems to be a really nice alternative. It’s still in SDS011’s save region, and accounts for possible voltage drop across USB cable.


  1. How useful to you is having USB cable with data capabilities (serial console debug, firmware flashing)?
  2. Is power-only cable really inconvenient?
  3. Should we look for a way of detecting brown out situations?

Source voltage over ~4.3 V affects only on fan speed.
And I think there are near linear dependence, and if you want to correct errors of this scale you must use separate voltage stabilizer for it.
But i think difference in schematics or types of photodiode, opamp, laser in different versiins of sds011 could have much stronger effect.

This is exactly what I suspect.

I suspect that pumped air volume doesn’t have linear dependence to fan supply voltage. Maybe standalone fan would have such dependency, but this fan operates with enclosure constrains. With additional inlet tube. To be sure we need to conduct experiment. I am afraid there is no other way. Thanks for pointing that out. I added this to my list :slight_smile:

I don’t think we can correct such errors in standard Sensor.Community kit. First of all without proper voltage measurement under load we don’t know which sensors are affected by fan under voltage situation. From my point of view the best and the easiest way is to use a very good cable in pair with good USB charger.

Of course we could use power source with higher voltage, for example 9V from wall adapter or negotiate 9V from USB QC3 or USB-C PD standard. Than use step-down converter to exactly 5V. But this seems fairly complicated without placing components on PCB. Right now everything is connected with dupont F-F wires. So basically we are looking for cheap and easy solution, that is scalable up to tens of thousands units required by future expansion plans of Sensor.Community.

For SDS011, I think only fan may be affected by undervoltage as all sensing circuitry is powered through separate LDO(s). PMSx003 has at least two LDOs on board.

In our main design we had to use both step-down and step-up converters to be able to power PM sensor from solar cell and battery. This also gave some benefits: wider input range (up to 12V), and long wires loss compensation when powering from DC.

Generally speaking, current HW approach lacks reliability and flexibility, but stepping away from it can break the whole DIY concept. But I personally vote for proper power stage design and no dupont wires.


I think inlet tubes of various length and diameters could cause much more effect than voltage unstability.

Alternatively, a step-up module can be added to the design, which compensates for losses in the wires and insufficient voltage from the source. Example

Yes. It is one option. But I’m looking for easier to implement solution like USB charger with 5.2~5.3V under 200mA load.

For Nettigo I managed to find a source of cheap and pretty well build USB chargers (at first glance). I got 2 pcs right now on my bench. And to my surprise output voltage without load and under load is steady 5.3V. Which is a great news. In contrast most of USB chargers have between 4.85-4.95V.

Right now one charger is plugged to 1A load for 48h thermal test. Later I will conduct short circuit tests. The second one is already opened to check if this design is safe for 24/7 use.

In my opinion two general conclusions from this topic should be:

  1. Adding information on website that KIT requires voltage at least 4.7V (preferable 5V) under 200mA load measured at the VU pin of NodeMCU V3. It may be delivered by using USB charger with higher voltage or using better quality cables with larger conductors.
  2. NodeMCU V2 or Wemos D1 mini should not be used if they are powered via micro USB connector. Between micro USB and Vin Pin (NodeMCU V2) and 5V Pin (Wemos D1 mini) there is a protective diode which generates 350mV voltage drop. So from 5V you will instantly drop to 4.65V which is IMO unacceptable.

Have you tried making a pairwise comparison with different supply voltages to understand how much it affects the measurements?

I am planning to do that in NAM 0.3.3 since new firmware for ledbar will monitor 5V rail.

No, I mean manually set on lab power source voltages with 0.1 V step and aquire for example 100-1000 measurements (with 1-2 s interval).
And compare with second constant 5 V supplied sds011