- put board in waterproof enclosure (for [sonoff](https://www.sonoffegypt.com/products/sonoff-ip66-waterproof-case) or generic [100x68x50 mm](https://www.aliexpress.com/item/1005005622148025.html)).
There are several ways to flash the board (from easiest to more development friendly):
- connect USB to serial adapter TX and RX signals on the DEBUG port. Short DL to GND pin while powering up to enter download mode
- populate DL and RST buttons to not have to short the pins by hand
- connect USB to serial adapter RTS to RST and DTR to DL on the DEBUG port, to switch to download mode from the computer
- populate the USB-C port and CH340K USB to serial adapter to avoid using and external adapter
Once in download mode, we can flash the [WLED firmware](https://github.com/Aircoookie/WLED/releases) using the [web interface](https://install.wled.me/), or [esptool](https://github.com/espressif/esptool):
- the center-right LED indicates the >8V status: it is on when 8-60V power is provided to the board
- the rightmost LED indicates the 5V status: it is on when the on-board DC-DC voltage regulator converts the 8-60V to 5V right after 8-60V is plugged in, or when 5V power is provided externally
- the center-left LED indicates the WLED status: it is on when WLED started successfully
- the leftmost LED indicates the DMX status: it blinks on DMX input traffic
- chain: a single standalone device, or with additional WLED chain devices
- DMX: controlled using WiFi, or DMX
You can find the details for each aspect in the corresponding section.
scenario
--------
Let's go from the most basic, to the most complex installation.
We will start with a standalone device.
For very tiny installations, with less than 60 LEDs, or 1 meters of 60 LEDs/meter strips:
- connect the 5V LED strip to the 5V screw terminal and one of the IO spring loaded ports next to it
- use a 5V 2A USB power supply and connect it to the USB-C power
- don't forget to specify the 2000 mA limit in the WLED LED configuration
For tiny installations, with 5 meters of 30 LEDs/meter strips:
- connect the 5V LED strip to the 5V screw terminal and one of the IO spring loaded ports next to it
- use the screw terminal to also have separate wires for power injection on the LED strip in the middle and or other end of it
- connect a 12V to 48V 2A (or more) power supply to the barrel jack
- the on-board 5V regulator will provide power to the LEDs (up to 5A)
For medium installations:
- connect the 5V LED strip ground and data wires to the board (see above)
- use an external 5V power supply powerful enough for the number of LEDs you want
- connect the external power supply to the 5V screw terminal
- connect the LED strip power pins directly to the power supply
- connect additional cables from the power supply to the strip to inject power every 2.5 meters (else the white will appear more orange)
For large installations:
- connect the 12V LED strip ground and data wires to the board (see above)
- use an external 12V power supply powerful enough for the number of LEDs you want
- connect the external power supply to the 8-60V screw terminal
- connect the LED strip power pins directly to the power supply
- thanks to the 12V supply, you need far less injection points (every 5-10 meters should be enough)
For small wide-spread installations:
- this uses multiple boards, and chains tiny installations
- on each board, connect the 5V LED strip to the 5V screw terminal and one of the IO spring loaded ports next to it
- on only the first board, connect a 12V to 60V (the higher to better) 2A power supply to the barrel jack or 8-60V screw terminal
- connect all boards using Ethernet cables on the RJ45 ports, allowing the first board to power all others
For outdoor wide-spread installations:
- this is similar to small wide-spread installations, but the boards are mounted in waterproof enclosures
- since the barrel jack port is not accessible anymore, use the 8-60V screw terminal
- since the RJ45 ports are not accessible anymore, and the RJ45 connector do not fit through the enclosure cable cables anymore, cut Ethernet cables and insert the individual wires in the RJ45 1-8 spring loaded terminals (the color of the wires is described on the back of the board, or just look at the cut RJ45 connector)
- you can insert the two wires of both Ethernet cables in each terminal
For large wide-spread installations:
- connect the 12V LED strip ground and data wires to the board
- use multiple external 12V power supplies powerful enough for each site
- only connect one board to the external power supply to the 8-60V screw terminal
- connect all boards using Ethernet cables, allowing the first board to power all others
LED strip
---------
5V LED strips are very common an cheap, and suited for small installations.
But the LED strips have only small traces to carry the power, with non-negligible resistance.
The brighter the LED is, the current it uses, the higher will be the voltage drop.
This voltage drop accumulated along the LED strip, leaving the last LEDs on the strip with a lower voltage.
This cause the blue LED to not be as brightness, making the white more orange.
One way to compensate for this voltage drop it to use power injection.
Connect additional thicker wires from the power supply to the middle or end of the LED strip.
But this also requires large power supplies to be able to deliver more current.
Another way is to use 12V LED strips.
Thanks to the higher voltage, the LED require less current, reducing the voltage drop.
And a voltage drop on higher voltages has relatively less effect.
This requires far fewer power injection, or brighter lights.
It also makes the power supplies more compact, and allows using not as large cables.
power supply
------------
The board has a built-in 5V DC-DC converter.
This allows powering the board using off-the-shelves 12V to 48V power supplies.
The power can come from the barrel jack, screen terminal, or Ethernet cable.
The power is injected back to the Ethernet port.
The board with also provide enough power for the 5 meters of LED strips.
For larger LED installations, connect the 5V or 12V LED strips directly to the external power supply suited to it.
Connect ground and data of the LED strip to the board.
Only connect one of the chained board to the power supply.
DMX
---
WLED is normally controlled over WiFi, but this is unreliable for large installation, particularly when multiple devices need to be controlled simultaneously.
To cope for that, DMX512 support has been added.
The DMX signals are on the RJ45 port.
Thus chaining multiple devices not only provides power, but also data.
No more air interferences, and distance limitations.
Any of the WLED can act as DMX master controller, and all others are slave devices.
If you are using an external DMX controller, use a XLR adapter.
This allows connecting regular XLR cables, and will forward the data through the RJ45 port.
The adapter also allows injecting power.
The boards have a DMX switch to configure the DMX bus daisy chain.
In the chain position, the data signals are passed through to the other RJ45 port.
This should be used on all boards in the chain except the last.
In the end position, a 100 Ohm termination resistor is put on the data lines to mitigate signal reflection.
This should de used on the last board in the chain, if it also ends the DMX chain.
In the loop position, the data lines are passed back on the RJ45 port, returning through the chain.
This should be used on the last board in the chain, if you want to continue the DMX chain (i.e. on the DMX out port on the XLR adapter).
This is to protect the board from very bad accidents, and because Ethernet cables are no meant to carry power (PoE limit is 960 mA per pair, we are using two).
The board are primarily meant to be used with common [sonoff enclosure](https://www.sonoffegypt.com/products/sonoff-ip66-waterproof-case).
This provides protection against dust, metal induced shorts, and water.
The board can be mounted using M2.5 self tapping screws to the enclosure.
All cables inserted in the enclosure can be connected to the board while mounted in the enclosure using the terminals.
Since RJ45 8P8C connectors does not fit the PG7 glands, they need to be cut.
The resulting wires can be inserted in the spring loaded terminal marked RJ45, following the pin numbering.
The wire colors are also listed on the back of the board, in case it is already not mounted.
In case boards need to be chained, two Ethernet cable can be inserted using the two glands, and the same number wires should be inserted together in the terminal.
8-60V power supply can be inserted using additional glands on the opposite side of the Ethernet cables.
The wires should be connected using the screw terminal marked 8-60V.
Follow the +/- indications on the board.
The LEDs strips cables can be inserted using additional glands on the opposite side of the Ethernet cables.
The 5V and ground wire should be grouped together and connected using the screw terminal marked 5V.
- RJ45 individual wires connector, using easy to insert spring loaded terminal, for allowing using Ethernet cable in waterproof enclosure, where the 8P8C connector does not fit through the PG7 cable gland
- DC barrel jack power input for 8-60V, for convenient use with off-the-shelves power bricks, allowing injecting power
- screw terminals for thicker wires, for larger power supplies and usage in waterproof enclosure
- proper 5V DOUT for WS2812B IC input, 3 channels (can be combined for LEDs requiring an additional clock signal)
- in-line LED data resistors for [signal conditioning](https://quinled.info/data-signal-cable-conditioning/). Ideally it should use a smaller value since it's intended for running the signal along ground over short distances, but there were already 100 Ohm on the board for DMX512 termination, and it allows better compatibility for longer single ended cables.
- XLR DMX512 connectors: they take too much space and I never know if I should use the 3 or 5-pin variant. Instead I designed a separate DMX + power injector adapter board
- full galvanic isolation: not really needed as the devices should be chained with a single power supply, preventing any ground potential difference. Another splitter board could provide isolation, at the beginning of the chain.
- USB Power Delivery: this is just a convenience feature, but using expensive lower power USB chargers with expensive ISB-C cables is not ideal for the intended usage (festival installation). And you can still use power-delivery by adding a cheap PD trigger board next to it.
- Lithium battery input and charger: it does not fit the intended usage, with large external power supplies providing enough power for power hungry LED strips. Small batteries would not be able to handle that over longer time. You can still use the power bank on the 5V power input though, and charge the battery separately. The 8-60V allows connecting 3-13S LiPo batteries.
- Power over Ethernet (active): I do use passive Power over Ethernet, by providing power on 2 pairs of the Ethernet cable that are not used for 10/100 Mbps communication. This allows using very simple and inexpensive injectors to power power, using and power supply. Active PoE require specials and more expensive injectors or power supplies, and complex extractors in each device. Feel free to use PoE though. There are plenty of relatively cheap injectors and extractors that you can use as external devices next to the boards.
- fuse protection for input and output protection, round or automotive: there is not enough space to place such large fuses. We already have one input protection (fuse + reverse polarity on 8-60V), so you just have pay attention to the 5V outputs (limited to 5A by the DC-DC converter) or input (supported, but not the intended use).
- line-in audio input (using [ESP32-LyraT-Mini](https://docs.espressif.com/projects/esp-adf/en/latest/design-guide/dev-boards/board-esp32-lyrat-mini-v1.2.html) design as reference): running additional audio wires is too cumbersome, particularly for simple effects based on loudness or FFT. Clubs or festivals are loud enough for the microphone to pick up the audio at a decent level.
- remote control using ArtNet over WiFi can be problematic: WiFi routers don't all handle broadcast well, WiFi coverage is not always good, WiFi is jittery
- providing power to multiple device can be a pain: there is not always a power plug nearby
this project tries to solve these issues, and since I designed a board, provide even more features
bus
---
The first problem is WiFi:
- ESP32 operate on 2.4 GHz, a crowded spectrum
- ESP32 board with built-in antenna have poor reception
- WiFi router don't always handle broadcast well
This make the WiFi a poor interface to remotely control LEDs with multiple WLED (using ArtNet or similar) in a real-time manner (low latency and jitter).
The first solution would be to use Ethernet instead of WiFi.
This would keep the networking capability.
ESP32 supports this interface, and the [WT32-ETH01](https://www.seeedstudio.com/Ethernet-module-based-on-ESP32-series-WT32-ETH01-p-4736.html) makes it available.
But to connect multiple devices you need a Ethernet switch, and run wires from this switch to each device (e.g. is a star topology).
I wanted to be able to chain the devices, to increase the distance while reducing number of cables and their length.
You could use the [KSZ8863](https://www.microchip.com/en-us/product/KSZ8863) 3-port Ethernet PHY.
This can act as Ethernet interface for the ESP32, and built-in switch.
There is already [schematic](https://github.com/espressif/esp-eth-drivers/tree/master/ksz8863) available, but the support still is in beta, and the implementation is complex are not inexpensive.
- [SP201E](aliexpress.com/item/1005005061637017.html): cheap DMX512 LED strip controller, but no WLED, RJ45, or power supply
- [H807DMX](https://www.aliexpress.com/item/1005005293168050.html): compatible with most LED strips, and has RJ45 DMX512 input, but no WLED or power supply