I'm running multiple (6), separate WS2812 strips off of one Raspberry Pi4.

They each need to be running independently - so the strip running on pin D18 will be getting different commands to the strip running on pin D21. I am using a logic-level converter and the strips are powered separately.

The issue I'm running into is that it seems like Raspberry Pi's can only run WS2812 or neopixels off of pins D10, D12, D18 and D21.

Are there any workarounds that I might not be aware of?


According to Adafruit's guide on WS2812 with Raspberry Pi you can only

Create one strip at a time.

They don't explain why this is the case.

After some testing, I am able to run two strips (one on pin D21 and one on pin D18) separately. We think that this may be due to the Pi only having two software PWM pins but we are not sure.


Running two strips at the same time on pins D21 and D18 only works for a short length of time (10mins). One of the strips stops responding entirely.

What we decided to do is use three Raspberry Pi Zero W's each running one LED strip communicating via MQTT with a Pi4 which is connected to our sensors and audio.

The problem remains, however:

Why can only pins D10, D12, D18 and D21 run WS2812 strips and why can only one strip be run at a time?

  • 1
    you only need one pin ... all the LEDs on a strip are independent already
    – jsotola
    Mar 4, 2021 at 20:39
  • 1
    Thanks for the response, but does that imply that I'd need to daisy chain all of the LEDs? They're spread out over a large area and we're trying to conserve cabling Mar 4, 2021 at 21:01
  • 1
    @jsotola: Please consider making an answer instead of a comment.
    – Seamus
    Mar 4, 2021 at 21:08
  • 1
    yes, the strips would have to be daisychained
    – jsotola
    Mar 4, 2021 at 21:10
  • 1
    Ah, unfortunately, that would require too much cabling (running from the end of one strip back to the next). Mar 4, 2021 at 21:21

1 Answer 1


Each of one the BCM GPIO D18, D21, D10, D12 can independently control a WS2812B RGB LED strip.


  1. If there are more than 30 LEDs in a strip, an external power supply needs to be added;
  2. If you want to use BCM GPIO D10 or D12, you must first enable SPI on the Raspberry Pi;

By the way: Each 5050 RGB LED will draw 20mA(min) to 60mA(max)

enter image description here





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.