This E10 module implements a 16 channel WS2811 emulator with compatible bus timing. The E10 may be cascaded with regular WS28xx chips. The number of LEDs is auto detected/configured (0-16). Optionally, the common LED voltage can be controlled over the bus as well.
User Guides
- User Guide - DE
- User Guide - EN
The decoder has the following features,
- Protocol
- WS2811 compatible timing
- LED ports
- 0..16 channel output (auto detecting)
- Software selectable common LED voltage (0 .. 5V)
- Push/Pull output and can drive common anode or cathode
- 256 step PWM (240Hz)
- gamma correction (optional)
- firmware update via V24 debug interface
My current PCB layout uses SMD footprints with 0.5mm pitch and 0603 parts. Reflow soldering is my recommendation, but with some experience handsoldering is also possible.
The hardware allows either push or pull operation. Currently only the pull operation is implemented in the firmware. Should a usecase for push-operation arise, the firmware could be adapted.
- 2-layer PCB, FR4, 1.6mm
- CPU: AVR64DA32
- BUS: WS28xx
- LED: Push/Pull
Filename structure: { pcb }{ code }{ version }.hex
Example: E10F0001.hex
Description | |
---|---|
pcb | Name of matching hardware (E10) |
code | Type of code contained (R=rom, B=bootloader, F=flash, U=bld update, P=UPDI factory code) |
version | Release version (####) |
The fuse settings as well as the P-code (E10Pxxxx.hex) has to be installed by using UPDI.
Subsequent code updates can be done via the built-in serial debug interface.
Details
The LED common voltage must be sent as the first byte (virtual LED) over the bus followed by the intensity values for the individual LEDs.
Byte order: {voltage} {led_0} ... {led_n} //'n' being the number of configured LEDs
Led Voltage: 5V * {voltage} / 255
This project is intended for hobby use only and is distributed in accordance with the Apache License 2.0 agreement.