Weird issues controlling a 12V WS2811 LED string with the neopixel node

Hi all-

I'm developing a museum exhibit using Node-RED, and I'm using the node-red-node-pi-neopixel to control it. Simplified version of the issue: I'm treating the strip as an LED VU meter to display 0-100% of an arbitrary "power level" across 10 LEDs. I have this working very well using a 5V WS2811 string connected directly to the Pi for both 5V power and data from Pin 12 (GPIO18).

When I attempt to connect my 12V WS2811 string that will be used in production (using a tested 12V DC power supply), it behaves very erratically. I made a short video illustrating the behavior. I'm sending the same RGB value for each of the pixels (using the x,y,r,g,b payload format), and you can see from the video that there's a lot of flickering and incorrect colors showing up.

Additional info:

  • I have tested the string with an SP107E connected to the same 12V power supply and everything behaves swimmingly. So I know it's not the strip.
  • My code works properly with a different 5V LED strip, so I don't believe it's the code. For purposes of QA, I did try simply injecting different string payloads into the neopixel node that replicated what I was injecting with code, same behavior.
  • Here is my wiring diagram
  • I've tried both GRB and RGB settings, to no avail
  • I did follow the instructions in this oft-referenced tutorial, including editing /boot/config.txt as specified
  • I did try a different pin for data just to rule that out

Can nny LED wizards out there point me in the right direction?

As far as I can tell the data line on these is 5V but the gpio pins are only 3.3V, so I would suggest a level converter to boost your signal to 5V

I was starting to come to that conclusion myself. Unfortunately, I can’t seem to find a wiring diagram that shows how to do this with a 12 V strip, only 5 V strips. I do have a bunch of 3.3 V to 5 V converters, but I’m just not sure how to wire it all up. Would you happen to know of a diagram I can reference?

Well it depends on converter, but if its something like this -

You provide a common ground, then on LV side 3.3 from the pi and on HV side 5V also the pi.

Then connect gpio pin to LV1 and leds to HV1.

That was exactly what I needed, thank you. It works like a charm now!


In order to help future folks like me, here's a diagram of what worked for me.

This is a 12V WS28xx strip (ignore that the diagram says "+5V" on the strip, this is the only Fritzing part I could find) and external 12V power supply, driven by a Raspberry Pi via the neopixel node in Node-RED. A 3.3V to 5V directional converter was used to get the 3.3V data signal from the Pi to 5V which the strip would understand.


I use a 74HCT type IC for level converting from 3.3V to 5V, f.i. 74HCT241. Cheap and standard footprint.

1 Like

This topic was automatically closed 14 days after the last reply. New replies are no longer allowed.