3
\$\begingroup\$

I'm working on a Christmas light display that will feature addressable LED strips on my front lawn. My LED strips operate at 12V (using the UCS1903 chipsetUCS1903 chipset).

The issue is, I need to run a long cable from my Arduino Due and power supply to the strips in some places (approx. 10 metres at the worst case). At this distance, the strips light up but the lights don't change colour. I might be able to reduce the cable length by a couple of metres, but I see the same results at a length of 6m. I'm using this 3-core 1mm diameter electrical cable.

The 3.3v output from my Arduino is below what is recommended for the UCS1903, but I've also tried on a 5V Arduino without success.

My question is, what do I need to look at to achieve this distance? Is it a matter of upping the data voltage, or using a larger cable, or some other technique?

Also, a basic diagram to illustrate my setup: enter image description here

\$\endgroup\$
  • \$\begingroup\$ I would suggest choosing different chip for Arduino altogether because that would make interfacing easier, otherwise you will need to step it up for this particular chipset. I, personally, would use something compatible with Arduino logic levels and then use MOSFET or several of them to switch output. That would make everything look and work quite professionally \$\endgroup\$ – Artūras Jonkus Jul 22 '16 at 4:50
  • \$\begingroup\$ A 10m power supply cable is not a great idea. Try to find some way to move the supply closer, or at least supply a higher voltage over the distance and use a DC-DC converter near it. \$\endgroup\$ – Ignacio Vazquez-Abrams Jul 22 '16 at 4:58
  • \$\begingroup\$ I agree it's not ideal Ignacio, but the only way I can get the power supply closer is to move it into the middle of my front lawn, and I'd rather not expose it to the elements if at all possible, even in a casing. Also, I have 8 strips that I need to power, and I think that I will always be at least 5 metres away from one of the strips at any given point. \$\endgroup\$ – Chris Parton Jul 22 '16 at 5:08
  • \$\begingroup\$ Please put 1 mm conductor in the text so people don't have to go to external sites. Also 1 mm diameter is 0.78 mm^2 which is what matters. How much current does it consume? If power and data shares ground (3 wire cable), you are going to have a bad time. \$\endgroup\$ – winny Jul 22 '16 at 10:24
  • \$\begingroup\$ Thanks for the feedback @winny. The current consumed varies wildy, as any number of LEDs may be on or off at a given point in time. Worst-case scenario for one strip would be about 4 amps @ 12v, but typically around 1 amp at most. Power and data do share ground. I'm not sure how this could be avoided, given that the LED strip only has three pins: +12V, GND and Data. I imagine Data would have to be connected to GND in order to complete the circuit? Please let me know if I've misinterpreted your comment. \$\endgroup\$ – Chris Parton Jul 22 '16 at 10:33
1
\$\begingroup\$

Those addressable LEDs are pretty sensitive to timing, and with cables that long you could easily be running into signal integrity issues. Long cables mean high capacitance, resulting in those pretty digital square waves becoming blurry.

If it's within your power to do so, some kind of differential signaling conversion scheme would probably be the best approach (I'm thinking of something like RS-485). You can get a interface transceivers to go from UART to RS-485, but you'd need controllers on both sides of the cable, and a layer of software to trans-code data over the link on to the LED strips.

\$\endgroup\$
  • \$\begingroup\$ Thanks Vicatcu, I'll do some research into signaling conversion. I probably should have mentioned that I have a total of eight sets of strips that I need to power (some as little as 2m away, up to the 10m in this question), so it could become prohibitively complex or expensive to add controllers to each strip. \$\endgroup\$ – Chris Parton Jul 22 '16 at 5:05
  • \$\begingroup\$ @ChrisParton add an arduino/atmega at each end, and have those as controllers. At 10 meters, you could use bluetooth. A bluetooth module and a bare bones or clone arduino would be what, 7 dollar for each? Or RF modules for multiple slave devices at the same time. \$\endgroup\$ – Passerby Jul 22 '16 at 5:30
  • \$\begingroup\$ @Passerby I have considered this option, it does make things a bit more complex for my project though. I want to drive the strips at 60fps to music. My current plan is to use SPI or I2C between a Pi and my Due, which then then just spit it out to the eight strips. I may have to do something like your suggestion if the cable length is an insurmountable issue though. \$\endgroup\$ – Chris Parton Jul 22 '16 at 5:49
  • \$\begingroup\$ Don't need any protocol converting cos he ask "i got transmitting problem". So reverse signal 0 V is data 1, +15V is data 0. or DIY optical transmitter (Led array don't have any feedback) \$\endgroup\$ – dsgdfg Jul 22 '16 at 11:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.