WS2812B data wire length

I'm working on a wearable LED project for a festival and I seem to be having a problem when I connect extension leads between the arduino and the WS2812B strips. When i use an extension lead the leds just doesn't respond to the code (they either light up randomly or not turn on at all).

I have tried different combinations and the problem seems to be the length of the data wire. I am only trying to extend them by 1.5m, so nothing too great. I have tried different cable combinations:

  • a core of a multicore cable
  • single core of a separate cable
  • twisted pair with the 2nd wire grounded at source end
  • screened single core with the screen grounded at source end.

None of them seems to be working. Only time i can get the WS2812b working correctly is if I use a very short data wire.

I have seen these 485 transmitters suggested on other posts but I thought for such a short distance i shouldn't have to deal with these: OSH Park ~ Shared Projects by PaulStoffregen

Any suggestion would be very helpful as I am a bit lost on how to resolve this issue.

Look up bipolar line driver/receiver.

Do you have a resistor on the data line? Something around 220R~510R. I understand it's better placed close to the strip, rather than close to the Arduino pin, but the important thing is to have one at all.

If that doesn't help, maybe cut one or two single-LED sections from the strip and place them every 0.5m~0.75m along the cable. Again, put resistors in the data lines between them. Each will act as a "booster" for the data signal.

PaulRB:
Do you have a resistor on the data line? Something around 220R~510R. I understand it's better placed close to the strip, rather than close to the Arduino pin, but the important thing is to have one at all.

If that doesn't help, maybe cut one or two single-LED sections from the strip and place them every 0.5m~0.75m along the cable. Again, put resistors in the data lines between them. Each will act as a "booster" for the data signal.

I had one on the breadboard right next to the arduino. I swapped it and put it at the end of the data cable and that seems to have done the trick!

I tried putting a second smaller resistor at the end of the data cable earlier but that didn't help.

Do you know why having the resistor at the remote end makes it work?

If you look at the signal with a scope you would see the shape of the waveform improves.

Google:
termination resistor

You refer to "extension leads".

I trust you realise the importance of running the data and ground leads always together as a pair, not as separate wires in a "wearable".

The same of course, for power and ground; so generally for a WS2812 strip, you will have all three together.

What sort of Arduino are you using? If it is a 3V3 one and you run the LEDs from 5V then you will need a signal booster for the data signal. While it might just work with a short wire to the first LED it is marginal and outside the spec. Making the wire longer is often enough to tip it into the not working category.

larryd:
If you look at the signal with a scope you would see the shape of the waveform improves.

Google:
termination resistor

Apologies for late response - but thanks for your help. All finished and working now with a few days to spare!

Paul__B:
You refer to "extension leads".

I trust you realise the importance of running the data and ground leads always together as a pair, not as separate wires in a "wearable".

The same of course, for power and ground; so generally for a WS2812 strip, you will have all three together.

I am using single cores for each, but they are all run together in 3s in a heatshrink sleeve, so they are not really separate at any point.