77 lines
4.3 KiB
Markdown
77 lines
4.3 KiB
Markdown
|
[WLED](https://kno.wled.ge/) is a very good firmware to control LEDs such as the WS2812b.
|
||
|
Just get a cheap ESP32 development board, flash WLED using the [web installer](https://install.wled.me/), and off you got.
|
||
|
I did that very often, and for small projects it's fine.
|
||
|
But for larger projects with multiple devices, you encounter some limitations:
|
||
|
|
||
|
- you have to separately take care of the power supply: LED strips can draw a lot of current which the development board cannot handle
|
||
|
- 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.
|
||
|
Now the boards can be chained.
|
||
|
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.
|
||
|
|
||
|
I also thought about CAN bus.
|
||
|
This is a very resilient bus, and the ESP32 has an interface for it.
|
||
|
But WLED does not support it yet, and the host would need a bridge for it.
|
||
|
|
||
|
Finally I arrived to RS-285.
|
||
|
It's another differential protocol, often used in the industry because resilient.
|
||
|
And the implementation in WLED is easy because it's just serial.
|
||
|
This is when I remembered that DMX512 also uses RS-485.
|
||
|
And DMX is the de facto standard in the lighting event world.
|
||
|
Thus, interfacing with it will be very easy and there is a lot of software support.
|
||
|
The limitation is that it supports only one universe of 512 channels, or 170 RGB LEDs.
|
||
|
A solution would be to control modes instead of individual LEDs.
|
||
|
|
||
|
intended use case
|
||
|
=================
|
||
|
|
||
|
The purpose is to provide a simple board able to control LEDs strips.
|
||
|
It should be better than general purpose development boards.
|
||
|
A built-in voltage converter allows driving an LED strip using regular external power supplies.
|
||
|
It is intended for small installations, not requiring more than 5 meters of LED strings per device.
|
||
|
This keeps the power supply small.
|
||
|
The board is not intended for large LED installation requiring a lot of power.
|
||
|
|
||
|
The board should be cheap enough to be a default choice when creating a small LED installation.
|
||
|
The goal is under 10€ per board.
|
||
|
This prevents me for using Ethernet network, since the PHY and magnetics are expensive (~ 3€).
|
||
|
|
||
|
It should not require a complex installation.
|
||
|
Something like a LAN requiring a permanent switch or router is already too much.
|
||
|
The board should be able to work on its own.
|
||
|
|
||
|
It should make it easy to create multi-device installations.
|
||
|
This is enabled by the chaining capability.
|
||
|
You can connect one device to another, and the job is done.
|
||
|
This single link provides power.
|
||
|
This allows using a single power supply for the whole installation, just connected to one device in the chain.
|
||
|
It should use cheap and common cable for the chain link, such as Ethernet cables.
|
||
|
|
||
|
It should accept common off the shelves power supplies, such as 12-24V 2-4A bricks.
|
||
|
|
||
|
The chain link should also allow synchronising the devices, without requiring a network connection.
|
||
|
Ideally it should also provide an interface to reliably remotely control them.
|
||
|
For that it uses the DMX512 protocol.
|