Hi! I’m playing with WLED since few months now and I find this software pretty useful.
Now, I have a big project involving a lot of pixels and I’m wondering which is the best way to build it.
I want to illuminate my back yard. The project is to put addressable led stripe on each fence post (I have 12 fence postes in my back yard). Each of them will around 1.75m long and I would like to be able to control each pixels on each post. I’ll find waterproofed channels/diffusers to host the stripes. I didn’t choose yet the stripe type I’ll pick, but I’m considering using Something like SK6812, which offers RGBW pixels. Anyway, that’s not an important part of my question.
My question is more about the connection with WLED… I’m planning to use ESP controllers.
Option 1: One GPIO to rule them all
Operate all stripes as a long one, connecting the data of a stripe to the last one. The controller would be any ESP8266, probably a board with voltage regulator on it (like the NodeMCU), so I’ll be able to connect it directly to the 5V of the power supply.
- Do I need something to “boost” the signal? Since I’m planning to burry the signal cable, is there a limite to the length of the data cable? The longest one would be around 10-15m.
- I find this pretty risky since any problem with the data wire (or a pixel) could potentially break everything.
Option 2: One GPIO per post
Similar to the previous one, but each strip is controlled by a different GPIO. A big ESP board with a lot of GPIOs would be required, probably an ESP32 (or use a
MCP230xx chip to add more GPIOs).
- Wire lengths for the data signal could be potentially very long (30-35m). Would I need to add a signal booster somewhere?
- I would be able to create an hybrid with previous options by creating zones with multiple fence posts on the same output. Is there an advantage of doing that?
Option 3: One controller per post
This option would put one controller on each strip and rely on the WIFI to coordinate them all. There’s an outdoor Access Point, so the connection should be good.
- I there a high risk of a controller being desynchronized from the others? Since it could potentially generate a lot of traffic on the wireless network…
- What kind of cables should I choose for signal + power ? Since I’m planning to bury them (or pass them in a conduit - a plastic pipe)
- Do you think I should I consider a 12V installation instead?
- Any suggestion / recommendations / tips for outdoor channeling of such stripes? I was considering something like this.
Thanks! Any help / tips for building that project would be appreciated…
I would either do option 1 or 3. With option 1 the signal is boosted between each post. With option 2, you will have really long runs and may have issues with data loss.
If you have good line of sight between the posts, option 3 should work. If your house is blocking some, UDP may have issues keeping them in sync. But you could set something up on your computer that sends an API request to each node to change settings.
I would suggest you wire the data lines as a combo of option#1 and #2.
Send data out from a central point AND bring the end of run “returns” to that same point.
That gives you the possibility of doing any of the options now or in the future.
Before anyone complains about data runs being too long or too complicated, let me suggest you look seriously at any of the simple rs485 boards out there (especially based on the MAX485 chip).
Using these boards on the data lines eliminates any dropped bits due to over length wires.
Max data length using these devices is easily 500m or more and they’re well rated (2Mbps or more) for the data speeds involved.
Wiring is very simple, I often use 22/4 wiring (commonly called “Station-Z” or alarm wire) for the data lines as that gives me 2 power wires and the A/B data wires needed for the RS485 sender and receiver.
I use small buck converters for power injection along the strip in conjunction with a smaller 18AWG “power bus” running higher voltage (usually 24V). The higher voltage is dropped by the converter at the point of usage, that way there are no power drop issues. Stranded 2C18AWG wire is available in smaller diameter versions (approx 3.8 mm dia.) that makes for easy installation that “hides” reasonably well. In your example, one converter at the center of each post strip would likely be enough.
Works well for me on a number of strips from 75 Led’s to more than 600.
I would suggest you consider burying PVC conduit (at least 12mm, perhaps 18mm?) for the underground portions. That can make your life sooo much simpler when things go wrong in the future.
Just my $.02
Thanks @divsys for this very detailed explanation. I’m an experienced developer, but still pretty novice with electronic projects. Your suggestion of a higher voltage bus its excellent. But I’m still having some questions about your proposals…
RS485/MAX485: I’m not sure I understand what you are explaining here. This seems to be a multipoint serial standard, I’m not sure I understand how it can be inserted between WLED’s GPIO output and the led stripes… Is there any documentation doing this somewhere?
Voltage Regulators: Any special level regulator to recommend? I have plenty of L7905CV, but it’s only rated for 1.5A, maybe it’s not enough for a 2m strip. I also found this on AliExpress (3A) or a 5A model, maybe it’s better?
Thanks for your precious information!
In a nutshell - a MAX485 IC configured as a Transmitter (Tx) takes a standard digital 5V input (but works reasonably well with 3.3v) and transforms that to a “differential signal” across two wires A&B. You hook those two wires (I add ground as well) to a Receiver (Rx) at some distance (10m-750m) away and the differential is converted back to digital 5V output. The units are small and consume very little power, the majority is the bus termination resistors that consume about 85ma. So your diagram is essentially correct the MAX485 you show is the Tx unit, you just need to add the Rx unit at the strip receiving end. You still wire your strips in order as if there was nothing between them, you just take the output end of the strip and add a TX with a bunch of wire till it reaches the Rx hooked to the next strip’s input.
You need a Tx-Rx pair for every “long” data line you want.
For voltage conversion, you’re much better off to with some of the modular Buck converters to bring things down to what you need. the 78XX/79XX series regulators are effectively just big resistors that will waste most of the dropped voltage into heat. Buck converters are mini switching supplies that are quite efficient. Most you buy now are in the 90-95% efficient range. You pick one that will supply the current you need at the output voltage you want, 5V 5A or 5V 10A are quite common. I wouldn’t trust the one you listed much beyond 2A although they’re small enough to “embed” in a piece of heatshrink tubing, you end up using more of them. For more power I’d try :AliExpress
For an example of an RS485 board off the shelf, try: Aliexpress
Or you can go the DIY route like I did:
That’s a SOIC to DIP adapter board with the 120R termination resistor soldered on.
That scale is in mm BTW.
I package that in heat shrink with a chunk of CAT5 cable and create my “black box”.
Note the label: “Tx120” letting me know the guts are configured as a transmitter with 120 Ohm termination. The orange and white wires are power, blue and white are differential A&B and the green is data input.
I took another look at the 5A Aliexpress converters you found and I think I’d like to change my mind.
I often choose variable output versions of those boards that are not as optimized for the current they will handle. The one’s you listed are very likely to be good at 5V 5A and as I said before, they’re quite tiny making them a good choice. Any of that stuff is cheap enough to risk trying.
I may order some myself to keep on hand.
I have been reading all this with considerable interest as I understood the ramifications of the RS485 interconnectivity.
All that to say, what about using RJ45, POE, and ethernet ESP32’s at each strip. In the ground, bury one network cable for each ethernet ESP from whatever is running xLights (through a POE network switch).
I cannot imagine you need more than 60W per strip to illuminate the posts around the yard.
Or, you can run a single CAT5e/6 cable, and power for a POE switch to be buried in a metal enclosure at the base of the first post. Then distribute the cables out of that box. That makes the trenching hole much smaller and smaller conduit as well.
You get the benefit of ~48V POE over RJ45 to each POE converter.
Might not be less expensive than that RS485 solution, but it is standard off-the-shelf items that do not require DIY electronics know-how. Me personally, I’m a EE, so I would probably go with the rs485 option - knowing the POE option was still available. I’d probably run cat 5e/6 cable for the RS485 - and leave room for more cables.
@huggy-d1, I’m not sure I would power 28 meters of stripes through PoE.
At 18W/m (for 60leds/m), it would need a 500W PoE switch… That’s definitely not a cheap option.
I think I’ll try the @divsys approach :-).
Each post has ~120 LEDs, ~36W/post. PoE is with reach these days with the latest hardware capable of providing 100W per PoE drop.
I did not say it would be the cheapest, but it certainly would not compete for wifi bandwidth.