doc: update v2 changes, add installation, and improve other paragraphs

This commit is contained in:
King Kévin 2023-10-30 15:19:11 +01:00
parent 1ecad3d080
commit 7e1293b8ee
2 changed files with 191 additions and 76 deletions

View File

@ -8,12 +8,13 @@ fixes:
changes:
- use larger barrier terminal for power ports to carry more current, clamp more wires, and allow wiring when the board is mounted in the enclosure
- remove 5V jack to save space, and 5V power can be provided by USB port
- remove 5V jack to save space, 5V power can be provided by USB port, and to avoid plugging 8-60V into 5V port (frying all the electronics)
- add board hole to fit in other enclosure version
- use ESP32-S2-MINI instead of WROOM to save space and avoid Not Recommended for New Design part
- use top spring terminal for LED data wires so they can be inserted when the board is mounted in the enclosure
- add status LED and change LED meanings
- complete re-layout
- complete re-layout, more compact
- add I²S and PDM MEMS microphone (I²S is present because I did not test PDM yet)
v1
--

262
README.md
View File

@ -3,11 +3,11 @@ WLED chain is a board for the [WLED](https://kno.wled.ge/) firmware, allowing to
purpose
=======
The [WLED](https://kno.wled.ge/) firmware is ideal do control addressable LEDs strip.
The [WLED](https://kno.wled.ge/) firmware is ideal to 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)
- inter-connect the boards 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)
@ -15,6 +15,153 @@ It allows to:
usage
=====
flashing
--------
Once the board is assembled, press the DL button on the bottom side (if populated) or short DL with 0V using tweezers while powering up the board.
This will put the ESP32-S2 into download mode and allow flashing the [WLED firmware](https://github.com/Aircoookie/WLED/releases) using [esptool](https://github.com/espressif/esptool) as follows (the [web interface](https://install.wled.me/) fails installing over USB CDC ACM):
~~~
wget https://install.wled.me/bin/release_0_14_0/esp32-s2_bootloader_v2.bin
esptool.py --port /dev/ttyACM0 --after no_reset write_flash 0x0 ./esp32-s2_bootloader_v2.bin
wget https://install.wled.me/bin/release_0_14_0/WLED_0.14.0_ESP32-S2.bin # there is no audio reactive variant for it
esptool.py --port /dev/ttyACM0 --after no_reset write_flash 0x10000 WLED_0.14.0_ESP32-S2.bin
~~~
Alternatively you can use the UART pint on the side of the ESP32-S2 to flash it using a USB to UART adapter.
Connect RTS to R and DTR to DL to allow automatic switching into download mode.
TODO: make a custom WLED build with
- status LED set
- audio reactive enabled
- DMX out enabled
- DMX in enabled (usermod)
- all pins configured
installation
============
The board can be used in various configurations:
- LED strip (for small, medium, or large LED installations): using 5V or 12V
- power supply: 5V or 8-60V
- enclosure: with or without a [sonoff enclosure](https://www.sonoffegypt.com/products/sonoff-ip66-waterproof-case)
- chain: a single standalone device, or with additional WLED chain devices
- DMX: controlled using WiFi, or DMX
You can find the details for each aspect in the corresponding section.
scenario
--------
Let's go from the most basic, to the most complex installation.
We will start with a standalone device.
For very tiny installations, with less than 60 LEDs, or 1 meters of 60 LEDs/meter strips:
- connect the 5V LED strip to the 5V screw terminal and one of the IO spring loaded ports next to it
- use a 5V 2A USB power supply and connect it to the USB-C power
- don't forget to specify the 2000 mA limit in the WLED LED configuration
For tiny installations, with 5 meters of 30 LEDs/meter strips:
- connect the 5V LED strip to the 5V screw terminal and one of the IO spring loaded ports next to it
- use the screw terminal to also have separate wires for power injection on the LED strip in the middle and or other end of it
- connect a 12V to 48V 2A (or more) power supply to the barrel jack
- the on-board 5V regulator will provide power to the LEDs (up to 5A)
For medium installations:
- connect the 5V LED strip ground and data wires to the board (see above)
- use an external 5V power supply powerful enough for the number of LEDs you want
- connect the external power supply to the 5V screw terminal
- connect the LED strip power pins directly to the power supply
- connect additional cables from the power supply to the strip to inject power every 2.5 meters (else the white will appear more orange)
For large installations:
- connect the 12V LED strip ground and data wires to the board (see above)
- use an external 12V power supply powerful enough for the number of LEDs you want
- connect the external power supply to the 8-60V screw terminal
- connect the LED strip power pins directly to the power supply
- thanks to the 12V supply, you need far less injection points (every 5-10 meters should be enough)
For small wide-spread installations:
- this uses multiple boards, and chains tiny installations
- on each board, connect the 5V LED strip to the 5V screw terminal and one of the IO spring loaded ports next to it
- on only the first board, connect a 12V to 60V (the higher to better) 2A power supply to the barrel jack or 8-60V screw terminal
- connect all boards using Ethernet cables on the RJ45 ports, allowing the first board to power all others
For outdoor wide-spread installations:
- this is similar to small wide-spread installations, but the boards are mounted in waterproof enclosures
- since the barrel jack port is not accessible anymore, use the 8-60V screw terminal
- since the RJ45 ports are not accessible anymore, and the RJ45 connector do not fit through the enclosure cable cables anymore, cut Ethernet cables and insert the individual wires in the RJ45 1-8 spring loaded terminals (the color of the wires is described on the back of the board, or just look at the cut RJ45 connector)
- you can insert the two wires of both Ethernet cables in each terminal
For large wide-spread installations:
- connect the 12V LED strip ground and data wires to the board
- use multiple external 12V power supplies powerful enough for each site
- only connect one board to the external power supply to the 8-60V screw terminal
- connect all boards using Ethernet cables, allowing the first board to power all others
LED strip
---------
5V LED strips are very common an cheap, and suited for small installations.
But the LED strips have only small traces to carry the power, with non-negligible resistance.
The brighter the LED is, the current it uses, the higher will be the voltage drop.
This voltage drop accumulated along the LED strip, leaving the last LEDs on the strip with a lower voltage.
This cause the blue LED to not be as brightness, making the white more orange.
One way to compensate for this voltage drop it to use power injection.
Connect additional thicker wires from the power supply to the middle or end of the LED strip.
But this also requires large power supplies to be able to deliver more current.
Another way is to use 12V LED strips.
Thanks to the higher voltage, the LED require less current, reducing the voltage drop.
And a voltage drop on higher voltages has relatively less effect.
This requires far fewer power injection, or brighter lights.
It also makes the power supplies more compact, and allows using not as large cables.
power supply
------------
The board has a built-in 5V DC-DC converter.
This allows powering the board using off-the-shelves 12V to 48V power supplies.
The power can come from the barrel jack, screen terminal, or Ethernet cable.
The power is injected back to the Ethernet port.
The board with also provide enough power for the 5 meters of LED strips.
For larger LED installations, connect the 5V or 12V LED strips directly to the external power supply suited to it.
Connect ground and data of the LED strip to the board.
Only connect one of the chained board to the power supply.
DMX
---
WLED is normally controlled over WiFi, but this is unreliable for large installation, particularly when multiple devices need to be controlled simultaneously.
To cope for that, DMX512 support has been added.
The DMX signals are on the RJ45 port.
Thus chaining multiple devices not only provides power, but also data.
No more air interferences, and distance limitations.
Any of the WLED can act as DMX master controller, and all others are slave devices.
If you are using an external DMX controller, use a XLR adapter.
This allows connecting regular XLR cables, and will forward the data through the RJ45 port.
The adapter also allows injecting power.
The boards have a DMX switch to configure the DMX bus daisy chain.
In the chain position, the data signals are passed through to the other RJ45 port.
This should be used on all boards in the chain except the last.
In the end position, a 100 Ohm termination resistor is put on the data lines to mitigate signal reflection.
This should de used on the last board in the chain, if it also ends the DMX chain.
In the loop position, the data lines are passed back on the RJ45 port, returning through the chain.
This should be used on the last board in the chain, if you want to continue the DMX chain (i.e. on the DMX out port on the XLR adapter).
limitation
==========
@ -29,35 +176,26 @@ And I find the logo nice.
power
-----
The board can use the power injected in the Ethernet cable, or through the 8-60V screen terminal.
Using the terminal injects back the power to the Ethernet cable, allowing chained board to also be powered using a single power supply input.
Do not connected multiple external power supplies on different boards, as they could interfere with each other.
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.
This means you can power up to 5 meters of WS2812b 30 LEDs/m strip at full brightness.
For more LEDs, limit the brightness in WLED, or use multiple boards and chain them.
Connect the 5V LED strip power wire to the screw terminal.
Wire all 5V LEDs cables together on this terminal, including the additional ones for power injection.
The terminal can also be used to power the board if no power is present on the Ethernet cable or 8-60V power input.
Voltage regulators capable of more current are rare and expensive.
They are also less compact, would exceed the space available in the enclosure.
Even with 90% high efficiency, the board could not handle passive dissipation of the generated heat.
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 us multiple board if you have separate LED strips.
Else 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 (for 8-60V) or screw terminals (for 5V and 8-60V).
The 8-60V power input allows using any kind of power supply, like common 12V, 24V, or 48V.
It also allows using 48V LiPo batteries (going up to 55V), to operate the devices 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 60V).
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.
The over current input protection is only for the board.
The terminal is directly connected to the Ethernet port for power injection
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.
There is an over current input protection of 2A using a 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 chain boards, each drawing 25W, use higher voltages (48V up to 60V).
The 8-60V input is also reverse polarity protected using an inline Schottky diode after the fuse.
The 5V rail input/outputs are not fuse or reverse polarity protected.
wiring
@ -80,15 +218,17 @@ Follow the +/- indications on the board.
The LEDs strips cables can be inserted using additional glands on the opposite side of the Ethernet cables.
The 5V and ground wire should be grouped together and connected using the screw terminal marked 5V.
Follow the +/- indications on the board.
The data wire should be inserted in the spring loaded terminal marked LED DATA.
The corresponding I/O configured in WLED is indicated on the side.
In case the board is not mounted in the enclosure, other ports can be used.
5V power can be provided through the USB port.
8-60V power input can be connected using the 2.1/5.5 mm ID/OD DC barrel jack.
The Ethernet cables can be directly connected using the two RJ45 ports (either is fine as they are interconnected).
The USB, DC barrel, and RJ45 port are not accessible when the board is in the enclosure simply because there isn't enough space.
But free free to add hole to the enclosure to access them.
But feel free to add hole to the enclosure to access them.
This would also remove the waterproof advantage though.
features
@ -97,33 +237,33 @@ 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)
- built-in power 5V DC-DC converter (input up to 60V, output up to 5A)
- RS-485/DMX512 interface (not galvanicailly 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)
- RJ45 individual wires connector, using easy to insert 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 8-60V, for convenient use with off-the-shelves power bricks, allowing injecting power
- screw terminals for thicker wires, for larger power supplies and usage in waterproof enclosure
- proper 5V DOUT for WS2812B IC input, 3 channels (can be combined for LEDs requiring an additional clock signal)
- in-line LED data resistors for [signal conditioning](https://quinled.info/data-signal-cable-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
- external WiFi antenna port, by using the U variant of the ESP32-S2-MINI, with appropriate connector
- PCB fitting in [sonoff waterproof enclosure](https://www.sonoffegypt.com/products/sonoff-ip66-waterproof-case)
- high voltage input (up to 60V, using TPS54560DDAR)
- input protection (reverse polarity, PPTC)
- input protection (reverse polarity, PPTC), only for 8-60V power input
- microphone for sound reactive
Features that might get implemented:
- 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)
- 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).
- XLR DMX512 connectors: they take too much space and I never know if I should use the 3 or 5-pin variant. Instead I designed a separate DMX + power injector adapter board
- full galvanic isolation: not really needed as the devices should be chained with a single power supply, preventing any ground potential difference. Another splitter board could provide isolation, at the beginning of the chain.
- USB Power Delivery: this is just a convenience feature, but using expensive lower power USB chargers with expensive ISB-C cables 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 power bank on the 5V power input though, and charge the battery separately. The 8-60V allows connecting 3-13S LiPo batteries.
- 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. 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.
- fuse protection for input and output protection, round or automotive: 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).
- line-in audio input (using [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): running additional audio wires is too cumbersome, particularly for simple effects based on loudness or FFT. Clubs or festivals are loud enough for the microphone to pick up the audio at a decent level.
background
==========
@ -131,12 +271,12 @@ 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.
[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 can not handle
- 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
@ -162,18 +302,18 @@ I wanted to be able to chain the devices, to increase the distance while reducin
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.
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 though about CAN bus.
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 is WLED is easy because it's just serial.
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 interface with is will be very easy and there is a lot of software support.
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.
@ -196,7 +336,7 @@ 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.
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.
@ -208,32 +348,6 @@ The chain link should also allow synchronising the devices, without requiring a
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](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
-----