kicad | ||
library@291b94f723 | ||
pictures | ||
.gitignore | ||
.gitmodules | ||
.qeda.yaml | ||
bom.ini | ||
CHANGELOG.md | ||
DEVELOPMENT.md | ||
ENCLOSURE.md | ||
FLASHING.md | ||
fp-lib-table | ||
KiBOM_CLI.py | ||
LICENSE.txt | ||
Makefile | ||
README.md | ||
sym-lib-table | ||
TODO | ||
version | ||
wled-eth.kicad_pcb | ||
wled-eth.kicad_pro | ||
wled-eth.kicad_sch |
WLED-ETH is just a board to run WLED and connect it over Ethernet. It is meant as simple and no too expensive go-to solutions for remotely controlled LED strip based light installations at festivals.



features
Features it supports:
- 10/100 Mbits Ethernet connection: for stable, low-jitter, network connection, in particular ArtNet
- WiFi connection: because Ethernet is not always available, particularly when setting up the board
- 3 addressable LED strip outputs: with proper 5V level signal, and 100 Ohm conditioning
- 5 to 60V input: to power the board using any power supply, particularly when used with higher voltage LED strips
- USB-C Power Delivery: because these power supplies are getting ubiquitous (even if more expensive than dumb power supplies), and a practical easy solution for small installations
- 5V 2.5A output: an onboard regular allows powering a short LED strip (up to 5 meters) when used with higher voltage input
- fit in an enclosure: for dust and water protection, so it can be mounted outdoor
- I/O header: exposing 3 GPIOs for expansions (more digital LED strips, analogue LED strips, temperature sensor, relay, ...)
- DMX in/out (not isolated): because this protocol is still often used at festivals
- on-board microphone: for standalone audio-reactive effects
Feature it will not support:
- Power over Ethernet: Active PoE requires special, more expensive injectors, power supplies, and complex extractors in each device. There are plenty of relatively cheap injectors and extractors that you can use as external devices next to the boards. Instead, you can also use very cheap and primitive passive splitters, that use pins from the Ethernet cable not used by 10/100-Mbps Ethernet. They often come with a DC barrel jack, that you can directly plug into the board.
hardware
The WLED-ETH board uses the WT32-ETH01 module. You'll have to buy it separately and plug it into the WLED-ETH. It already comes with Ethernet support and is pretty cheap. The components only already cost more then the board, and there just isn't enough space on WLED-ETH to integrate them directly on the board.
The WLED-ETH board provides the additional functionalities:
- 5 to 60V high voltage input (e.g. for common 12V power bricks, or 48V LiPo batteries)
- Battery Charging and Power Delivery trigger for 5 to 20V USB power supplies
- 5V 3A output for WT32-ETH01 and LED strips. The WT32-ETH01 module uses around 0.5A, leaving 2.5A for LED strips.
- three 5V signal outputs for LED strips
- USB to UART converter to flash WLED, or any other software you want
- microphone input, for audio-reactive effects
- RS-485 port (not isolated), to connect to DMX (read and write for in and output)
- nice and sturdy terminal connectors for power and signals
Peripheral connections:
- LED data outputs: GPIO2, GPIO4, GPIO12
- button 0 input: GPIO39
- I2S PDM microphone input:
- data input: GPIO36
- clock output: GPIO15
- RS-485 interface (for DMX):
- enable/drive: GPIO32
- TX: GPIO33
- RX: GPIO35
- I/O expansion port (to connect additional user peripherals):
- 3.3V and 5V power
- 3 GPIOs: GPIO5, GPIO14, GPIO17 (GPIO5 and GPIO17 have an LED connected to them on the W32-ETH01 board, sink on)
The board comes with 3 buttons:
- RST: to reset the board
- DL: to put the ESP32 in download more upon power-up (or releasing the reset button). The DL button is on the back, not populated, because there is an auto reset circuit over USB on the board
- B0: to reset the WLED access point credentials when held for 6 seconds, or reset all configuration when held for 12 seconds
If you see WLED does not boot, it might be a WT32-ETH01 issue.
When the ESP32 powers up, or after the reset button is released, it checks for the GPIO0 state.
If GPIO0 is low, it will start in download mode, so you can flash the firmware.
This is usually done by pressing on the DL button, or using the USB to UART converter (esptool
can reboot into download mode by controlling the EN and GPIO0 signals).
GPIO0 is also connected to the 50 MHz clock, required for the LAN8720A Ethernet transceiver.
Normally the clock output is controlled using GPIO16 (externally pulled down), and should be off when the board is reset.
But on some WT32-ETH01, this is not always the case (I'm not sure how to identify these boards).
The 50 MHz clock will cause the ESP32 to boot in download mode half the time.
You can observe it by watching the serial output, and it would show "waiting for download".
Just press on the RST button until it boots the WLED firmware.
Rebooting WLED in software won't have this issue.
Here you can see the clock (blue) stopping correctly on reset (yellow), or not:



The WT32-ETH01 heat up to 50 degC in open air. While it is not pleasant to the touch, this should not damage the electronic parts.
usage
Once you have the WLED-ETH and plugged in a WT32-ETH01 on it:
- flash WLED and configure it
- put it in an enclosure
- have fun and let lights blink
power
There are several ways to power the board.
DC input
There is a 2.1 mm ID, 5.5 mm OD, barrel jack connector on top. The most common scenario is to use 12V 2.5A power supplies. They are cheap, widespread, and often come with the right plug. Passive PoE splitters also come with this connector. This will provide enough energy for the board, and allows using 5V or 12V LED strips. You can connect the LED strip power cable to the 5V PWR OUT screw terminal, or 5-60V PWR IN screw terminal. If you use a high-power power brick, which come with terminals instead of plugs, you can directly connect cables to the screw terminal instead.
This power input supports any voltage from 5V to 60V, allowing to use almost any power supply (such as laptops), and even 48V LiPo batteries (for grid-less installation). This also allows using 24V or 48V LED strips.
The 5+V LED switches on when power is on this input. The barrel jack and screw terminals have reverse polarity protection. This input has also a 2A over-current protection for the on board devices, using a resettable PTC fuse. If it triggers, the 5+V LED should be off or dim (because it's a PTC). Unplug the power supply and wait for 2 minutes (for the PTC to cool down). This protection is not between the barrel jack and 5-60V screw terminal.
USB PD input
Next to the barrel jack and screw terminal is an additional USB-C connector. This allows using Power Delivery (or Battery Charging) capable power supplies. While they are more expensive and more limited than power bricks, the are becoming more widespread, and good enough for small installations. Under the WT32-ETH01 module you can find a switch that allows selecting which voltage to request from the power delivery (PD) capable power supply:
- 5V: per default the USB 5V is limited to 1.5A (e.g. on the PROG USB connector). The circuit behind the PD USB connector allows going up to 3A (or 5A is you have the corresponding USB cable). The power provided over USB is exposed on the PWR IN screw terminal. This already allows powering quite a lot of LEDs, bypassing the on-board 5V regulator limiter to 2.5A output. Note that there will then only be 4.75V on the 5V output. While lower, it is high enough to power everything, and have good 5V data signals.
- 12V: this is supported by most PD Power Supplies, and allows also powering 12V LED strips using the screw terminals.
- 20V: higher voltages allows more efficient distribution since the is less cable loss. 24V LEDs might even work with that.
The switch is under the WT32-ETH01 module so it can't be changed by accident when wiring and installing the board.
USB 5V
You can also power the board using regular 5V USB power supplies through the PROG USB connector. This would probably be limited to 1.5A though, just enough for testing, and very small installations. I still recommend using the dedicated USB PD connector input though, that could allow using up to 5A. To then also have proper 5V on the 5V output (instead of 4.75V), just inter-connect the 5-60V input to the 5V output using the corresponding screw terminals.
onboard regulator
WLED-ETH has an onboard 5V voltage regulator, with up to 60V input (from one of the previous options), and up to 3A output. The WT32-ETH01 uses around 0.5A, leaving up to 2.5A to the 5V PWR OUT terminal for LED strips. Set the corresponding limit in WLED to prevent triggering the over-current protection causing the board to reset. The board does not dissipate enough heat, particularly without air flow, for more than 3A (already tuned to the maximum efficiency). If you require more, use a dedicated external DC-DC step-down regulator, such as this waterproof option.
alternative
There are already several alternatives that support WLED and Ethernet, but none fulfilled all my needs:
- WLED chain: no Ethernet, but can be chained (ideal for long installations).
- MLP201207: the best match, but just does not fit in a waterproof enclosure
- QuinLED-Dig-Quad: Ethernet is optional
- 8 Port LED Distro: similar to QuinLED-Dig-Quad
- QuinLED-Dig-Octa System: similar to 8 Port LED Distro, just beefier
- LilyGO T-ETH series: some board even support PoE, but none with 5V signal output