template and source for hardware projects
Go to file
King Kévin 08df68cb2a brd: run DRC 2023-10-12 03:28:42 +02:00
kicad lib: add 3d models 2023-10-07 05:27:03 +02:00
library@ac8a57bfd7 lib: update repo 2023-10-07 06:34:13 +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: add switch 2023-10-06 09:12:27 +02:00
CHANGELOG.md doc: add case issue 2023-10-12 03:12:06 +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 v1 changes, mostly related to power 2023-10-07 06:26:39 +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 switch to version 1 for next design 2023-09-30 04:24:03 +02:00
wled_chain.kicad_pcb brd: run DRC 2023-10-12 03:28:42 +02:00
wled_chain.kicad_pro brd: fix courtyard violation 2023-10-12 03:22:46 +02:00
wled_chain.kicad_sch sch/brd: use in-line reverse polaroty protection instead of crowbar 2023-10-07 06:26:11 +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-48V 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 port or the 5V screw terminal (can handle up to 5V). This is particularly relevant for re-injecting power, which you should do minimum every 5 meters. If you need more than 5A, you are exceeding the use case of this board. Switch back to using an external power supply and connect the LED strips directly to it. You can even power the board with the same 5V or 8-60V power supply using the DC jack or screw terminals.

The 8-60V power input allows using any kind of power supply, like common 12V, 24V, or 48V. But is also allows using 48V LiPo batteries (going up to 55V), to operate them without grid power. There is an over current input protection of 2A using an PPTC. 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). To be able to power multiple WLED chains, each drawing 25W, use higher voltages (48V up to 60).

If you are using 12V or 24V LED strip (e.g. not 5V), you can use the screw terminal to re-use the corresponding 8-60V output. This is not fused. But if your are using Ethernet cables, you still should not exceed the 2A limits. And if you are using these higher voltage LED strips, you probably are building bigger light installation, and should take can of the power supply separately instead of relying on the WLED chain. Then you can also use this power supply to power the WLED chain board using the 8-60V port, but only one of them in the whole chain (else the multiple power supplies might interfere with each other). The 8-60V input is also reverse polarity protected, after the fuse. The 5V rail input/outputs are not fuse or reverse polarity protected.

features

Features already implemented:

  • daisy chain capability (providing data and power)

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

  • RS-485/DMX512 interface (not isolated)

  • RJ45 port, providing power (PoE, passive, alternative B) and data (as used in DMX512), 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

  • high voltage input (up to 60V, using TPS54560DDAR)

  • input protection (reverse polarity, PPTC)

Features that might get implemented:

  • microphone/line in for sound reactive (use ESP32-LyraT-Mini design as reference)
  • RDM support (mostly software support)

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
  • 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. This is a to hard requirement. 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.
  • automotive fuse protection (input or output protection): 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).

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.

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 provided 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.

features

Here a wish list of features I began with, in decreasing order of importance:

  • 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 no DMX or built-it power supply for the LEDs
  • 8 Port LED Distro: similar to QuinLED-Dig-Quad, with Ethernet (not just an option), but same issues
  • QuinLED-Dig-Octa System: similar to 8 Port LED Distro, just beefier
  • 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