This is my schematic:

enter image description here

The PL9823 uses the same protocol as WS1012 (NeoPixel)

When using 5V MCU and 5V to power the LED everything works OK.

When using 3v3 MCU and 3v3 to power the LED everything works OK.

When using 3v3 MCU and 5V to power the LED it does not work. The led is not set to a desired color and changes to a random one.

After reading up on the diode it was suggested that I place a capacitor between data line and ground on the first diode. After I did that the signal didn't do anything and the diode didn't change color.

Next thing I did was add a resistor in RC low-pass filter configuration and the signal did change the LED to a desired color. But sometimes the signal did get corrupted and the LED didn't show the correct value. I tried different resistor and capacitor values and the LED still on some occasions showed the wrong color.

What am I doing wrong?


2 Answers 2


Often input levels depend on supply voltage. When you are powering the PL9823 with 3.3V, you are using it outside of its spec, it says Vdd=4.5V to 6V. So it was unlikely to work already.

Use a single MOS transistor as a level shifter:


simulate this circuit – Schematic created using CircuitLab

  • \$\begingroup\$ I did use this design, but I used BS107 because I had them already. Thank you! But there is still a question why did it work for people that have reported that they only added a capacitor to make it work with 3V3 signal on 5v LED. For ex youtu.be/YJQG9JnDemM?t=88 \$\endgroup\$ Dec 23, 2017 at 20:55
  • \$\begingroup\$ Outside of the maximum ratings given in the specs, anything can happen. It may be due to cable length or line noise in your environment it isn't working for you. Or because of changes in production which made later batches cheaper, but also less forgiving to undervoltage. \$\endgroup\$
    – Janka
    Dec 23, 2017 at 22:00

I found the 'datasheet' of the PL9823. The term 'data sheet' is between quotes here as it was missing a lot of information you should find on data sheets. Nowhere could I find the input threshold voltages. The operating voltage is specified as 4.5..6V thus it should not be run from 3V3.

Simplest is to run your CPU of 5V. If that is not possible I suggest you use a level shifter. An IC which shifts signals from 3V3 to 5V.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.