So I have been pretty sure I wanted a holiday light show at my home for many years now. You know that one house in your town with the radio station you can tune to and thousands of LEDs light up and blink to the music? I want to be that house. So I went down a rabbit hole of holiday light shows. I’m calling this operation blinky or gtfo. Here’s my method.
First step, get Falcon Player onto a BeagleBone Black via a freshly formatted microSD card. I chose a 32GB microSD card because the price was fine ($9.30 including tax), but you probably need at least 8GB. You can use the SD Card Formatter application from https://www.sdcard.org/downloads/formatter/ .
Follow the command line instructions here: https://learn.adafruit.com/beaglebone-black-installing-operating-systems/mac-os-x#using-the-command-line-344290-11 and for a disk image use the latest release of Falcon Player for BeagleBone Black found here https://github.com/FalconChristmas/fpp/releases . I’m using FPP-v5.2-BBB.img.zip which expands to FPP-v5.2-BBB.img . You might want to pipe the dd command through pv to have a status bar for your disk copying. Something like this (please don’t copy and paste, use your actual file locations and disk names – replace rdiskY with your actual drive name.)
$ sudo dd if=~/Desktop/FPP-v5.2-BBB.img bs=1m | pv -s 4G | sudo dd of=/dev/rdiskY bs=1m
Next, following instructions from https://youtu.be/6aSyA1gU2cQ (via https://falconchristmas.com/forum/index.php/topic,9372.0.html [requires free forum sign up]) setup the basic settings in Falcon Player on the BeagleBone Black. The Falcon Player developers no longer recommend copying the SDcard contents to the eMMC on the BBB, but I went ahead and did it anyway, then reformatted the SDcard, and used it as storage for Falcon Player. You can access the “Flash to eMMC” button by going to Status/Control > FPP Settings > UI and setting the User Interface Level to Advanced. Then go to Storage and click Flash to eMMC. Or you can follow the developers’ advice and just boot from the microSD card and partition the extra room on the microSD card for your light show storage. If you do go the route of booting from the eMMC and using the microSD card for storage, be sure to select it as storage in the Status/Control > FPP Settings > Storage > Storage Device drop down menu.
Then put this awesome cape on your BeagleBone Black. It’s an addressable LED strand light controller from Kulp Lights, specifically the K8-B.
Next, strip one set of strands at one end of this string of addressable LEDs. These are 5V WS2811 style addressable LED strands. Attach the stripped ends into one of the terminal blocks on the Kulp Lights cape and also inject 5V into the LED light string via its two power terminals.
Now setup a test program in xLights to blink and change colors on the light string to music.
At this point I have an expandable holiday light show that I can add on lights and props to bit by bit each year and each holiday. How expandable is it? Well, the Kulp Lights K8-B LED controller cape for the BeagleBone Black can drive 800 LEDs on each of its 8 channels at 40fps, for a total of 6400 LEDs. I have purchased two 50 LED strands of type WS2811 to start with (50 LEDs over a 225 inch long strand, 18.75 feet, 5.7 meters). This holiday light show (not mine) for example, uses about 4500 addressable LEDs. So I think I should be fine for expansion for a while.
In the future I would like to add on control options for animatronics, moving props, and homebrewed lighting. One of those I might add in the near future is this 8 channel solid state relay. I want to use it to control some dumb LED holiday light strands, essentially turning the entire strand on and off to music.
It should be possible to control this 8 channel solid state relay from the extra pins available on the BeagleBone Black, and to set it up in Falcon Player and xLights. I’m hopeful that it will work on the same board.
If you are wondering, there are many more straightforward ways to do this with a raspberry pi running Falcon Player and preassembled systems for LED light control from holiday coro. However, in this house WE DO NOT have raspberry pi’s because they get clobbered with a hammer. This cobbled together convoluted way of controlling a blinky or gtfo holiday light show is a lot more fun. Right? Right. Plus the BeagleBone Black is badass and has a lot more gumption. And when did pain in the ass setups ever stop me? Nevar.
Current cost: Hours? Too many hours on forums + blogs + youtube videos, even with youtube videos sped up to 1.5 speed play back. Dollars? Gear: BeagleBone Black, microsd card, microsd card reader, 2 x 50 LED ws2811 strands, Kulp Lights K8-B cape, Sainsmart 8 channel solid state relay, 3 x 5V power supplies. That’s roughly $55 + $9.30 + $12.42 + $16.99 x 2 + $75.12 + $19.99 + $22.92 = $228.73. Comparable out of the box LED controller solutions from holiday coro run about $250 to $300, plus a raspberry pi (about $30) and a power supply (about $8) , and plus the addressable LED strands (about $16.99 for one 50 LED strand) = about $320 to $370. So my hacky solution is still well under the “purchasable” solution at the moment. And my system is as expandable as the out of the box solutions, probably even more so as I have pins on the BeagleBone Black to use for DIY animatronics and DIY lighting stuff I build. I’m going to be that blinky house on the block.