What It Does

WS2811 lights

WS2811 represents a wide variety of low-cost LED lights where each bulb can be individually controlled. There are many different kinds of lights that "speak" the WS2811 language, from ribbons where bulbs are tiny squares attached along a strip, to bullet-style lights as shown below, to flood lights. There are variations of the WS2811 language (a.k.a. "protocol"), including WS2812 and WS2812B. I use the WS2811 bullet-style lights for my "mega tree".

These lights are easy to work with. There are only three wires involved: 5V power, data, and ground. You can shorten a string by simply cutting it or add more bulbs by soldering strings together.

While there are commercial controllers available that allow WS2811 lights to work with xLights, it is possible to use a low-cost Arduino to control them. Each Arduino can drive up to eight strings of 50-bulb WS2811 lights. That is enough to support my mega tree that uses 400 bulbs.

RGB lights

Another style of lights are called "RGB". While each light on a WS2811 string can be individually controlled, RGB lights are much simpler in that the entire string changes to the same color. WS2811 lights use a digital protocol to control them; only a single wire is needed. RGB lights, however, are analog in nature. They use four wires, three for controlling the strings' color and the fourth is ground. To change the string's color, you apply ground (GND) to some of the three wires. This means you can only choose from seven colors on an RGB string, whereas the digital WS2811 lights can be thousands of colors. And finally, connecting RGB lights to an Arduino is complicated as relays are needed for the Arduino to switch GND on and off to each of the three wires.

One controller for both

One Arduino can control up to eight strings of WS2811 lights (50-bulb strings) and eight strings of "dumb" RGB lights. I use this controller to drive the 8-string "mega tree" and also three smaller trees that use two strings of RGB lights each. A network board is connected to the Arduino, allowing it to communicate with xLights.