I need to run a 2 meter (6 ft) data cable from an Arduino UNO to a series of rgb LEDs (max 40 of them) with integrated ws2811 drivers.
What kind of cable do I need?
Do I need something between the cable and the first rgb LED to "clean up" or enhance the signal?
The 2 m cable goes to the first LED only. Between each LED there will be 5-10 inches of cable (10-20 cm).
What cable should I use for that connection?
So absolutely worst case (40 LEDs, all 20cm away from each other), that's 8 meters (25ft) of cable in total (in practice I think 6-7 meters will be the maximum).
Is this doable or will the LEDs misbehave? I know that these LEDs are very timing sensitive because they are sending data to all the LEDs on one line.
As each led controller regenerates the signal the absolute length of the signal path is irrelevant. The critical length is from the driver to the first led.
You will probably just get away with 2m but if not use a buffer chip like. 74xx04 where xx is the logic family designator.
Probably don’t need a buffer, just a series resistor on the data line at the input to each WS2811 per the datasheet.
Maybe at each output too, really need to look at signals with an oscilloscope to confirm signal integrity.
WS2811-preliminary.pdf (320 KB)
I have done some work on extending WS data, and developed an isolated-differential driver and differential receiver that seems to work fine up to 200m at 800KHz
For short distances of a few meters, should work ok (see Bob resistor mod), and a friend of mine runs 8m without any problems, but I have also heard that people use a sacrificial Pixel that works as a signal booster (as Mikes post) at a halfway point (just dont include it in the data pattern)