template and source for hardware projects
Go to file
King Kévin 90f990c78f doc: document v0 2023-09-28 04:36:26 +02:00
kicad lib: update logo properties 2023-09-28 02:50:13 +02:00
library@cad0c1be57 lib: update repo for new parts 2023-09-28 04:33:54 +02:00
.gitignore ignore kicad lock files 2023-08-11 11:04:37 +02:00
.gitmodules lib: add esp library 2023-09-25 02:54:33 +02:00
.qeda.yaml lib: use correct AMS1117 2023-09-28 01:49:24 +02:00
CHANGELOG.md doc: document v0 2023-09-28 04:36:26 +02:00
DEVELOPMENT.md doc: better list dependencies 2023-03-30 22:30:26 +02:00
KiBOM_CLI.py make: add bom generator (not included in pip) 2023-03-30 22:30:26 +02:00
LICENSE.txt add CERN-OHL-S license 2021-07-22 12:22:58 +02:00
Makefile name project 2023-09-25 02:48:09 +02:00
README.md doc: add signal conditioning resistors in implemented feature 2023-09-28 04:26:24 +02:00
bom.ini bom: ignore some fields 2023-08-11 11:06:14 +02:00
fp-lib-table lib: add external library 2023-09-27 01:58:54 +02:00
refdes2fab.py add script to put refdes in fab layer 2022-09-13 12:14:21 +02:00
sym-lib-table lib: add external library 2023-09-27 01:58:54 +02:00
version add output generation script 2021-07-22 12:34:35 +02:00
wled_chain.kicad_pcb brd: add serial silk 2023-09-28 02:56:36 +02:00
wled_chain.kicad_pro sch/brd: add conditioning resistors 2023-09-28 02:20:15 +02:00
wled_chain.kicad_sch sch: update BoM 2023-09-28 02:36:05 +02:00

README.md

WLED chain is a board for the WLED firmware, allowing to power, control, and chain them over Ethernet cables.

purpose

The WLED 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

limitation

You can see the WLED logo on the board, but this is NOT AN OFFICIAL WLED BOARD. There is not such thing as a WLED board, as WLED is just a firmware. The logo is only there to show the board is intended to be used with WLED. And I find the logo nice.

power

The built-in 5V DC-DC converter is only rated up to 5A, limiting the total maximum output to 25W. This means you can power up to 5 m of WS2812b 30 LEDs/m strip at full brightness. For more LEDs, limit the brightness in WLED, or use multiple boards and chain them.

The spring loaded terminals are only rated for 2A, with a maximum wire size of AWG 20. If you intend to draw more current, you can add a connection to another 5V output from the LEDs or power port. This is particularly relevant for re-injecting power, which you should do minimum every 5 meters. If you need even more current, or use thicker cables, just solder the cable directly to the pins on the bottom or on the rear tab of the barrel jack connector. If you need more than 5A, you are exceeding the use case of this board. Switch back to using a external power supply and connect the LED strips directly to it. You can even power the board with the same 5V or 8-36V power supply using the power port.

features

Features already implemented:

  • daisy chain capability (providing data and power)

  • built-in power 5V power supply (input up to 36V, output up to 5A)

  • RS-485/DMX512 interface (not isolated)

  • RJ45 port, providing power and data, 2x for chaining capability

  • RJ45 individual wires connector, using easy to use 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 5V and 8-36V, for convenient use with power bricks, allowing injecting power

  • power wire connectors, as alternative to the barrel jack, for larger power supplies and usage in waterproof enclosure

  • proper 5V DOUT for WS2812B IC input, 5 channels (can be combined for LEDs requiring an additional clock signal)

  • in-line LED data resistors for signal 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.

  • external WiFi antenna port, by using the I variant of the ESP32-S2-WROOM, with appropriate connector

  • PCB fitting in sonoff waterproof enclosure

Features that might get implemented:

  • microphone/line in for sound reactive (use ESP32-LyraT-Mini design as reference)
  • RDM support (mostly software support)
  • automotive fuse protection (input or output protection)
  • high voltage input (up to 60V, using TPS54560DDAR)
  • input protection (reverse polarity, PPTC)

Features will not be implemented:

  • XLR DMX512 connectors: they take too much space and I never know if I should use the 3 or 5-pin variant. Instead I will design a separate DMX + power injector splitter board
  • full isolation: not really needed as the devices should be chained with a single power supply, preventing any ground potential difference. The splitter board will provide isolation, at the beginning of the chain.
  • USB Power Delivery: this is just a convenience feature, but using expensive lower power USB chargers is not ideal for the intended usage (festival installation)
  • 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 5V power input though, and charge the battery separately

background

origin

WLED 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, 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 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 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 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 I began with, 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 design as reference)
  • sonoff waterproof enclosure 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: WLED compatible, but not DMX or power supply
  • SP201E: cheap DMX512 LED strip controller, but no WLED, RJ45, or power supply
  • H807DMX: compatible with most LED strips, and has RJ45 DMX512 input, but no WLED or power supply