jspiva / LedPixelController

ESP8266 unicast E1.31 to WS2811/WS2812 WiFi controller, output up to 1360 pixels (8 ports/universes, 170 pixels per port, 4080 channels)
GNU General Public License v3.0
18 stars 7 forks source link

LedPixelController

ESP8266 unicast E1.31 to WS2811/WS2812 WiFi controller, output up to 1360 pixels (8 ports/universes, 170 pixels per port, 4080 channels). The number is theoritical, depending on refresh times this number can be much lower.

The LedPixelController accepts 1 unicast broadcast universe, and up to 8 unicast universes. The controller then multiplexes the data from the UART TXD1 port using an asynchrounous pixel driver that allows writing a universe of data while the E1.31 listens for the next data packets.

Important Settings

Unicast Universes

The table below shows the outputs from the ESP8266 based on the universe input, as this is unicast only, only the least significant digit of the universe is utilized to set the proper outputs. Note the inverted outputs (LOW for Enable, HIGH for disable), this can be switch via the LED_ON and LED_OFF constants.

UniverseD0D1D2D3D4D5D6D7D8
xx0 (Broadcast)LOWLOWLOWLOWDATALOWLOWLOWLOW
xx1LOWHIGHHIGHHIGHDATAHIGHHIGHHIGHHIGH
xx2HIGHLOWHIGHHIGHDATAHIGHHIGHHIGHHIGH
xx3HIGHHIGHLOWHIGHDATAHIGHHIGHHIGHHIGH
xx4HIGHHIGHHIGHLOWDATAHIGHHIGHHIGHHIGH
xx5HIGHHIGHHIGHHIGHDATALOWHIGHHIGHHIGH
xx6HIGHHIGHHIGHHIGHDATAHIGHLOWHIGHHIGH
xx7HIGHHIGHHIGHHIGHDATAHIGHHIGHLOWHIGH
xx8HIGHHIGHHIGHHIGHDATAHIGHHIGHHIGHLOW
xx9 (Ignore)HIGHHIGHHIGHHIGHDATAHIGHHIGHHIGHHIGH

Connecting the ESP8266 to a pair of quadruple bus buffer gates like the SN74HCT125N allows for enabling and disabling of a high speed data line for up to four channels. For each channel of the buffer gates connect the D4/TX1 data line to the input A, then for each channel connect a corresponding ESP output (D0, D1, D2, D3, D5, D6, D7, D8) to the inverted enable /OE. Finally, the output should be connected to both the pixel strand, and to ground through a fairly large resistance. The resistance is necessary, as when the buffer chip channel is disabled it floats, and must be held at ground so the pixels can latch the proper data.

Hackster.io

ESP8266 E1.31 Multiplexing Pixel Controller project write-up.

Credits

Thanks to the code of others that made this possible...