book collections email follower instructable user
Picture of WiFi Controlled Christmas Lights With ESP8266
pixel pops.jpg

Have you driven by houses with fancy Christmas lights, often synchronized to music? Normally, these setups require commercial light controllers costing hundreds of dollars, commercial animation software that can also be quite expensive, a literal money pit for the average home owner.

This Instructable shows you how to build a low-cost, WiFi light controller using an ESP8266. This controller animates a string inexpensive lights found on Amazon, eBay, and lot of other online stores. The animations are created using the free xLights program. And the best part? Your lights are connected to your home wireless network, so you can place your lights anywhere in the house or in the yard, controlled and animated from the comfort of your computer!

The beauty is once you create multiple controllers as you add more lights to your house, xLights makes them all work together as a "show". You can do all of the wonderful animated lights that the professionals use, with a little bit of homemade building! xLights and all of the programs in this Instructable are free (no cost).

This Instructable will build one light controller that can animate a single string of 150 lights (the controller supports up to 680 lights). This string of lights can hang on a tree or the bulbs pushed into "coro" (a white plastic resembling cardboard) pre-made shapes such as stars, candy canes, and more. You can put lights into tubes for glowing arches, attach them to strips to make virtual trees, and so much more.

You'll be amazed how easy it and have the best Christmas (and other holidays) lights on the block! You can also visit my website for much more information on building computerized Christmas lights.

UPDATE 5-8-2019: This website offers a similar kit: though you probably need a larger diameter PVC pipe to fit it. The following instructions are not for this kit, but it's a nice alternative.

Let's get started...

Step 1: Stuff You Need to Buy

Here is what you’ll need to build computerized, animated lights with ESP 8266:

ESP 8266 ESP-01 WiFi Wireless Transceiver Module with 1MB flash memory

This is the heart of the light controller. It connects to your home wifi network and drives the animated string of lights. When purchasing this module, there are some cheaply produced modules that can give you trouble. Stay away from modules that use PUYA memory chips. If you want a guaranteed, good quality module, buy your ESP from here.

"Pixel Pops" circuit board

This is a bare circuit board that the ESP and your lights plug into. It provides power to the ESP and your lights and allows to you program the ESP from your computer. Click here for a full description of what Pixel Pops can do. To buy a board, create an account on, then send a private message to "ukewarrior" as he often has boards in stock, cheap! If ukewarrior is out of boards, you can order them in groups of 3 from OSHPark.

You will need to buy and solder a number of components to this circuit board, listed here:

LDO Voltage Regulator 3.3V 0.8A Positive (Mouser #511-LD1117V33)

Linear Voltage Regulator 0.1A Pos Volt Reg (Mouser #512-LM78L05ACZ) (note: this component is required only if you are using 12V pixels. Do not install this component if your light controller will use 5V pixels).

Multilayer Ceramic Capacitor MLCC - Leaded 50volts 0.1uF 20% X7R (Mouser #80-C320C104M5R)

MOSFET N-Chnl 60V (Mouser #522-ZVN3306A)

Metal Film Resistor - Through Hole 1/8watt 330ohms 1% 10ppm (qty: 2) (Mouser #71-RN55D3300FTR)

Diode - General Purpose, Power, Switching 100V Io/200mA BULK (Mouser #512-1N4148)

Tactile Switch SPST OFF-(ON) Round pushbutton (Mouser #506-FSM4JH)

Headers & Wire Housing 8P STR SR BDMNT SKT 3.5MM TAIL/8.5MMBODY (Mouser #517-9602086303AR)

Header & Wire Housing 6P HEADER GOLD 15u single row (Mouser #571-5-146280-6)

Pluggable Terminal Block 5P 3.81MM TERM BLK FIXED HORIZONTAL (Mouser #649-220327-D051B01LF)

Aluminum Electrolytic Capacitors - Radial Leaded 220UF 6.3V ALUM LYTIC RADIAL (Mouser #667-ECA-0JM221)

USB programmer

The CP2102 USB 2.0 to TTL module connects your ESP to your computer's USB port, allowing the ESP to be programmed to become a light controller. The CP2102 actually connects to the Pixel Pop circuit board and the ESP is connected to the Pixel Pop. You can get the USB programmer here.

Tube enclosure

The controller will fit into a 1" thin wall PVC pipe, making it weatherproof and small. Make sure that you buy "thin-wall" pipe as regular thickness PVC may not allow the ESP antenna to send/receive a strong wireless signal. Also buy two PVC caps for either side of the pipe.


You will need a variety of weatherproof connectors outside the tube and regular connectors for inside the tube. Here is what you will need:

3-pin waterproof LED connector, outdoor, round, 18 AWG (two male, two female connectors) (be sure to choose "3pin big" for the size)

2-pin waterproof LED connector, outdoor, round, 18 AWG (three male, three female connectors)

2-pin JST LED connector 20 AWG (two male, two female connectors)

3-pin JST LED connector 20 AWG (one male, one female connector)

Power supply

The ESP light controller is designed to be used outside and is weather proof (note: not waterproof; it cannot be submerged). You will need an IP67 rated power supply. Here is an outdoor power supply that will drive up to 150 12-volt lights.

Ethernet cable

You will need two cables long enough to reach from the controller to the lights. One cable will be for power and data to the first 100 lights, the second cable will be to power the next 50 lights beyond the first 100. Make sure the ethernet cable has a low AWG (I recommend 23AWG) so that the wires are thick and can carry a fair amount of power with minimal voltage drop.

3 sets/strings of 12V WS2811 lights (50 bulbs each set)
These are digital lights that are animated with an industry standard protocol called ws2811. Your ESP, once programmed, will also know this protocol. These lights come in many shapes & sizes. As long as they support ws2811 or ws2812, they will work with your project. Make sure the lights operate on 12V DC and that the wire thickness is 20 AWG or lower. This ensures that the lights can be placed at far distances from your controller. Buy them here.

Note: This Instructable supports a string of 150 lights (3 strings connected end-to-end to form one, long string). The ESP supports a maximum of 14, 50-bulb strings per light controller (one, long string of 680 bulbs maximum). If you want to use more than 150 lights, you will need to calculate the power supply size and wire size for the number of lights that you intend to use. Long wire runs require larger gauge cable to account for voltage drop in the wire.

"Coro" plastic shapes

You can arrange your strings or lights any way that you want (hang them, put them on a tree, etc.). One popular way is to push them into plastic cardboard-like shapes like these: Buy shapes here.

Extension cable

This cord will be used to give your power supply 120 VAC. Any outdoor rated extension cord will work
for this project. Here is a great cord from Dollar Tree.

atairu7 months ago
I noticed you had 16 strings of WS8211 of 50 pixel pixels per string (which is 800 pixel total). How many pixel sticks did you use since 1 pixel stick can only control maximum of 680 pixels. If you used more than one pixel sticks, how did you connect the remaining 200 pixels to the second controller and how did you configure it in xLights?
TomHammond (author)  atairu7 months ago
Where did you see where I mentioned 16 strings of 50 pixels each? The project only supports one string up to 680 pixels long.
Michael1149 months ago
Simply amazing! I have been looking to do the exact same project for several years now, sadly big home displays aren't really the norm where I live. But I will certainly take a closer look into the program for arranging the light patterns! Thanks.
TomHammond (author)  Michael1149 months ago
Thanks for the compliments and you are quite welcome. :)