From 908fdfef5a1fe479532e65bb7dbde1085a3b31c5 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?King=20K=C3=A9vin?= Date: Wed, 27 Sep 2023 01:56:27 +0200 Subject: [PATCH] doc: add purpose and background --- README.md | 98 ++++++++++++++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 97 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 7c35594..0ed4bd5 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,103 @@ -these are the hardware design files for **insert project name here**. +WLED chain is a board for the [WLED](https://kno.wled.ge/) firmware, allowing to power, control, and chain them over Ethernet cables. purpose ======= +The [WLED](https://kno.wled.ge/) firmware is ideal do control addressable LEDs strip. +WLED chain is a hardware board for it, matching my usage: robust remotely controlled LED strip based light installations for festivals. +It allows to: +- use of the shelf 12-24V power supplies to power the 5V LED strips +- inter-connect them to form long chains (only connecting the first to externally provided power and data) +- use cheap Ethernet CAT5E cables to inter-connect them (also over long distances) +- provide power and data over the Ethernet cables +- proper 5V LED data signal output (up to three of them) + usage ===== + +background +========== + +origin +------ + +[WLED](https://kno.wled.ge/) is a very good firmware to control addressable LED such as the WS2812b. +Just get a cheap ESP32 development board, flash WLED using the [web installer](https://install.wled.me/), and of you got. +I did that very often, and for small projects its 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 can not 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 beta, and the implementation is complex are not inexpensive. + +I also though 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 is 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 interface with is 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. + +features +-------- + +Here a wish list of features in decreasing order: + +- daisy chain capability (providing data and power) +- built-in power 5V power supply (input up to 30V) +- RS-485/DMX512 interface (not isolated) +- RJ45 port (2x for daisy chain) +- RJ45 pin header (to solder wires directly) +- DC barrel jack power input +- RJ45 power input +- proper 5V DOUT for WS2812B IC input +- external WiFi antenna port +- microphone/line in for sound reactive (use [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) +- [sonoff waterproof enclosure](https://www.sonoffegypt.com/products/sonoff-ip66-waterproof-case) format +- XLR port (to fit usual DMX512 installations) +- fully isolated DMX512 +- RDM support (requires adding bias on RS-485, and mostly software support) +- Lithium battery input and charger (not really the intended use scenario for this device) +- automotive fuse protection +- high voltage input (up to 60V, using TPS54560DDAR) +- USB Power Delivery power input (using IP2721 or FUSB302) + +I'll probably add them with each new version + +other +----- + +Here a list of other similar LED controllers: + +- [QuinLED-Dig-Quad](https://quinled.info/pre-assembled-quinled-dig-quad/): WLED compatible, but not DMX or power supply +- [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