Before I received my first strip,

Before I received my first strip, I had read on Adafruit’s site that the functional limit for the length of data lines between strips/pixels was 1 meter, and this assertion was supported by some other posts around the internet. Go beyond 1 meter, they said, and you will get corrupted data due to the capacitive effect of the wire; if you want to stretch out further, put a single “repeater” pixel in series with your data/power lines every meter. So, I was planning on doing this (which was going to be a real headache), but on a whim last night I decided to try using a >1 meter data line just to test where my data started getting corrupted. I connected a 60 LED/meter WS2812B Neopixel strip to the data pin of my Arduino Uno via a 5-meter length of cheapo single-strand 22-gauge wire, and viola, it worked fine! Awesome! But confusing!

Does anybody have experience working with long runs of data lines? Am I going to regret not using repeater pixels every meter? Why do you think everybody said the lines must be limited to ~ 1 meter between repeaters, but 5 meters worked fine (at least for the 2 minutes I tested it)?

PS: I am having an AWESOME time with my new Neopixel strips and FastLED. The only problem is that my sleep is suffering :slight_smile: I can’t thank @Mark_Kriegsman and @Daniel_Garcia enough for such an elegant and Fast (to learn, code, execute) library. Ok, enough gushing.

+1ing because I want to know about this as well.

If you look closely at the strip, you’ll notice that after every 1m there are series resistors on the signal lines. That is to prevent signal reflection that can (and will) cause havoc with the data being sent. Depending on which LEDs (and drivers) you’re using, @Daniel_Garcia can tell you exactly how long it takes to update one pixel which you can then multiply by the total amount of pixels you plan on using. That will then give you an idea of how fast you can send data down the line before things start to go bonkers.

@Ashley_M_Kirchner_No It sounds like you’re saying signal reflection (not capacitive effects) are the real culprit causing corrupted data on long data lines. I assume this is only an issue if you call FastLED.show() at a very high frequency. The highest frequency that I call FastLED.show() is 30 Hz; since my project is stationary, 30 Hz + persistence of vision is plenty for me. Do you think my 5 meter data line worked fine since I only call FastLED.show() 30 times per second?

Maybe I would get corrupted data if I called FastLED.show() at 1000 Hz? I can test that tonight.

UPDATE: well, the FastLED.show() frequency idea is out the window. I just ran a generic “rainbow” program on 60 LED/meter WS2812B Neopixel strip connected to my Uno via a 5 meter 22 gauge solid core wire at update rates between 10 Hz and 2000 Hz, and everything worked fine. I can’t seem to get any corrupted data. Perhaps if I was running the data line alongside two more 5 meter-long lines ( a 5V power and GND wire) the capacitive effects would be more serious and cause data corruption? Anyways, at this point I can’t seem to wreak any havoc no matter how hard I try.

Your strip already has series resistors on it to help curb reflection, so you wouldn’t notice it (as much.) However, it’s also not about whether you can get it to fail on purpose. It’s about whether the possibility exists for it to fail. Many times you can be working on your bench and everything works perfect. Then you take it out into the real world, or swap from a bench power supply to something else, and suddenly everything goes hay wire. The point is, adding the protection for signal reflection is an insignificant cost compared to the hours of frustration later. Many here will gladly tell you their stories of that. You’re better off adding it than ripping your hair out later trying to figure out why suddenly something isn’t working.

Also, it’s not the distance between the controller and the strip that (only) causes problem. The distance between each LED also plays a role. Having 5m of wire between the controller and the entire strip is not the same as having 5m of wire between any two pixels, or even multiple pixels. As each one sips power from the signal lines, it will degrade and you can (and often will) run into trouble later.

Thanks, @Ashley_M_Kirchner_No for the great advice. It sounds like you have been burned before by skimping on safeguards. I know the feeling of wanting to rip my hair out, so I definitely don’t want to end up there; I am building this project for my wedding, so it would be terrible to have it fail day-of. Maybe I can explain the vision for my project, and you can recommend a hardware configuration based on your experience?

I want to build a giant “chandelier” for a dance floor. This chandelier would have 16 x 60-meter strips in a 3 x 3 meter grid (ignore the text on this picture, the idea has evolved since I posted it): http://i.imgur.com/2kVuM6C.png

Each strip would hang down from the ceiling encapsulated in an acrylic tube. One Arduino Mega 2560 in the “center” of the grid woud run the show. Option 1 is if I setup the controller/leds in a multi-output “spider” configuration, then I need 16 output pins and 16 data lines that range from 0.5 to 2 meters long coming out of the Arduino (the longest run from the controller to the top of one of the strips sqrt(2) * 1.5 meters = ~ 2.1 meters). Option 2 is to run all the strips in series: I would have to run a data line to the first strip (<0.5 m), then out from the bottom of the first strip to the top of the first strip (1 m), then from the top of the first strip to the top of the second strip (1 m) for 2 meters total of data line between strips, but this would have to be done 16 times in series.

So, since in either configuration there will be runs longer than 1 m, what do you recommend? I am sure I am not the first person to face a challenge of this nature; have you learned anything yourself of from the community that would point me one way or the other? Will the programming clearly be more challenging with one configuration or the other?

And, finally, do you know of a good tutorial for how to make long/safe data wires for these strips, or is using single “repeater pixels” every 1 meter really the safest option?

FWIW I’ve had mixed results with longer signal and power feeds. Sometimes things work at 20’ sometimes they do not. My last project, the feed lines worked at 13’ and failed at 14’

Ideally, you can not run long signal wires. Using rs485 convertors for long runs is an awesome approach, if more work.

If you cannot change your approach, I’ve found using separate wires for power and signal to help.

Personally I would run them as separate sections on different pins. That way if one fails it won’t take out the whole thing with it. I would also put a power source close to the controller at the top and not feed the whole thing from a laptop. It will fail as the USB port can only supply 500mA and your asking for a lot more with those strips. For that matter unless you are constantly reprogramming or sending serial commands to the controller, you won’t even need the laptop.

Also if you use WS2812B strips, you’ll only need 1 data line per strip plus power. So that’s 16 pins, done. If you use clocked strips, such as the LPD8806 ones, then you’ll need both a clock and data pin for each strip, so 32 total plus power.

At max duty cycle, each strip will pull 60 x 60mA = 3.6A. 16 strips at max duty cycle will pull 57.6A. You’ll need a beefy power supply for that.

@Seph_Aliquo : thanks for the advice.

@Ashley_M_Kirchner_No : I was leaning to the multiple pins approach as well. I definitely never intended to power this thing with a USB port. As you rightly note, I will need ~ 60 amps peak. I planned to provide that with two computer power supplies in series and have a 4.7 millifarad capacitor across power & ground at the head of each strip. Also, I won’t be reprogramming it, per se, but the program I am writing lets you choose light sequences by typing commands into the serial monitor. I figured it would be good if the lighting for slow/fast songs was unique and selectable.

Change that to a 1,000uF … And you want the supplies in parallel, not series. Think of what happens with voltage when you have batteries in series. You can also find power supplies that can handle that load on their own, specifically designed for LED stuff.

Thanks, Ashley. Brain fart on the series/parallel stuff. At first I thought I would go with 12V strips because I could easily power the whole system off-grid with a car battery. However, now looking into it and considering the efficiency increase with 5V strips, that seems pretty attractive too. These early choices are so difficult because it’s when you know the least and get dug in the most. Do you have some sage advice on recommended voltages/strips for off grid? Thanks for all of your awesome help.

Please expand on power supplies designed specifically for LED strips— I have bought a reasonably generic 30A supply for what I am building. The ones that you wire up the mains directly (as in screw terminals) — someone on here posted an Alibaba link a while back to similar type.

Unless you have a 5v source, I would not expect a 5v supply to be more efficient than a 12v supply.

Generally speaking, I think 12v is “better” higher voltage means it’s easier to carry more current on thinner wires. But 12v led strips are only addressable in units of 3 pixels. This is a big trade off.

+James Carruthers: there are many power supplies out there marketed to LED enthusiasts, but there is nothing specially “LED” about them. They are the same screw terminal high-amperage power supplies you have found. Any 5V or 12V high power supply could be an LED power supply.

+Seph Aliquo: I think you might be mixing up concepts. Higher voltage doesn’t help a wire carry more current, but rather the wire can carry more power for a given amount of current. For example, at 5V and 10A you are carrying 50W, but 12V and 10A carries 120W; both examples can use the same gauge wire. The issue with LEDs is that their brightness is a function of the current passing through them, so for the same current (~60 mA per pixel), you need 12/5 = 2.4x more power with 12V (or something to that effect). That is what I mean by “efficiency.” Here is a better explanation: http://www.doityourselfchristmas.com/wiki/index.php?title=Choosing_a_Pixel_Voltage:_5V_vs_12V

There is one other issue you’re over looking. 12V is better for signal handling and faster switching than 5V. As the voltage drops along a strip, so does the signal voltage difference. At the beginning of the strip you can see a clean 5V as a 1 and 0V as 0, further down the line that drops. At some point you’ll end up with voltages so low that the ICs or LEDs are no longer able to register the voltage difference to distinguish a 1 from a 0. That’s were 12V is better as you can have a much longer run and still be able to read the 1s and 0s just fine, even if the voltage drops from 12V down to 4V (and that’s one helluva drop.) Unfortunately, a lot of 12V strips are made in 3 pixel sections. I think only once did I see one that was individual pixels but I could’ve imagined it too …

I definitely did see a WS2811 12V string (not strip) buried on Ray Wu’s alibaba page the other day. Looked like each pixel had its own regulator (?) to drop the voltage down.

OK, yea I found that just now on Ray Wu’s Alibaba store; it’s called the INK1003: http://bit.ly/1tSv4ik. It is 1-wire data with 5V, 12V, and ground. I suspect that the 12V line is isolated from the controller/leds. It looks like there is a 12V/5V regulator every 0.5 meters down the back of the strip. I am not sure why is called “INK1003” when it looks like it is just WS2812B-family LEDs/controllers with added 12V bus and regulators on the tape. It looks OK, but it sure would be nice to have smarts and regulators built into every pixel instead of ugly “bulges” every 0.5 meters down the back of the tape.

Is Ray Wu a good guy? People used him before?

Not the INK1003 strips (they’re not supported by the library, AFAIK), but these WS2811 strings:

I can personally vouch for Ray Wu (as can others here) he’s fast and reliable.