Thursday, December 13, 2018

Finally my Christmas lights are up.

Continuation of an old post...

After a wait of almost 2 years and several hits and trials, Finally, I was able to set up Christmas lights this year.

My hardware setup is as below:


  • 1x - Raspberry Pi, Running Falcon Player 2.4. The Raspberry Pi is wired to the router.
  • 1x - R7000 router, initially flushed with DD-WRT ROM but reverted back to original firmware. (Not sure the hang on multi-cast was because of DD-WRT or something else). The router is isolated, means does not connect to the internet
  • 10x - ESP8266. The ESPs I have are from Wemos and Robotdyn but I like the Wemos better as they are much more reliable. I have installed the ESPixel32 firmware on it. 
  • 11x 5m WS2812b: The WS2812 strips are directly connected to the ESP8266. 
  • 2x - 2ch Relay. I needed standard LED strings on my trees and to control them via ESP I needed these relays.
  • 2x - 18 string LED curtains. Why curtains? because I found them cheaper than buying 18 separate strings.
  • 3x - 5v 30Amp power supply each pixel uses almost 60mA at full brightness which makes ~9Amp per 5m led strip

Apart from these, Wires, solder, Multimeter, and a PC are implicit requirements.
I will try to create a separate post for each

So these are the parts, how about the journey?

A couple of years back my daughter asked me to do Christmas light shows hence I started to learn how it works. The core Idea is as follows:

  • You need to create light sequences in some sequencing software like xLights or Vixen.
  • Install and host a sequence player, like Falcon Player on PC/Raspberry Pi etc.
  • The Player will broadcast pixels data (E1.31/Artnet/DMX) data via your network.
  • You have to connect the controller devices to your network to receive sequence data and send to LEDs or relays depending on the type of lights you are using.

In this particular setup, the major cost and hassle are with the controllers. Each 16 universe controller costs around $100 and have to run wires from router to the controller and from controllers to LEDs. Consider of a large setup, you are looking for lots of wiring.

While researching I came across the $1-$3 ESP8266 boards and was amazed by the potential they have, I mean the CPU speed, memory, wireless radio all at such an accessible price.

I have the whole idea of how the traditional light controller and I know ESP8266 is cheap and wireless hence decided to build ESP based controllers.

Around 4 months back I started with writing my own firmware, a little bit success in getting data over UDP parsing and sending it to LED strips but way long to go and search for some solutions of the bottleneck I had, I came across ESPixelStick by forkineye. This firmware has most of the things I wanted in my firmware and specifically everything, except GPIO, to run pixel LEDs. So I thought I should fork this firmware and start adding GPIO but soon enough I saw another project ESPixelBoard by penfold42, forked from ESPixelStick, and it has GPIO as well.
WOW, so instead of waiting more I immediately started preparing for preparing Light this Christmas.

I still have a long way to go adding features to this project.

You can see the POC and all my shows in this YouTube Playlist.

I will be posting detailed instructions of each step in following posts.