blinky or gtfo: holiday light show fun

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 .


Follow the command line instructions here: and for a disk image use the latest release of Falcon Player for BeagleBone Black found here . I’m using 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 (via,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.

the orchidarium

tonight at the IoT meetup in berlin, i presented the orchidarium, a co-project built over the last couple of years by skytee and i. the orchidarium is a Wardian case for the modern nerd home.

here are the slides for the talk: orchidarium slides [pdf]

it’s been purring away at home for about 1.5 years now, keeping the orchids alive when we travel or get super busy. here are the quick facts:


– beagle bone with debian, first smart device with IPv6 in our home

– usb controllable power strip Energenie EG-PMS (unfortunately i’ve only found these for 220v so far)

– code here:

– light, fan, and ultrasonic mister control happens in a crontab

webapp for local control when on the LAN with the orchidarium, includes override functions and daily sensors in a graph

– pictured below: the custom water resistant sensor box for the orchidarium includes light, humidity and temperature:

– pictured below: the beagle bone running debian with IPv6 in a custom laser cut enclosure:

– pictured below: the orchidarium’s usb programmable powerstrip, an Energenie EG-PMS:

skull logo arrrgyle ipad sleeve

In February of 2007 I worked out an argyle pattern based on my blue skull logo (see graph paper drawing below). In June of 2008 I knit the two color pattern up by hand (see shot in front of graffiti above). This week, August of 2011, I knit my skull argyle on a hacked knitting machine (Brother KH-930, documented here, code on github here). Sometimes it takes years to complete a project, especially if a project requires a new machine with which to make it.

The finished ipad sleeve (see images below) is knit from cotton on the hacked KH-930 (with computer control) and finished with a sewing machine. It isn’t all that complex, and is drawn pixel-wise on the Gimp and exported to the knitting machine with some code to emulate a TDD Tandy floppy disk drive, a bit of hardware, and some code to parse the resulting bitmap into a format which the knitting machine will recognize. This happened during cccamp11 where I had brought the knitting machine to demo in the HXX hardware tent. In the process I have learned all about the mechanics of knitting machines, their capabilities, how to get them to be computer controlled and the yarns that knitting machines like. In the end, I really still hate hand knitting two color stranded patterns, but I love the way the finished products look. The machine gets to offload that burden and still output beautiful pieces.

Update (September 18th, 2011): I redid the sleeve in a cotton that doesn’t fuzz so much, made the pattern repeat properly, and made the skulls right side up on both sides. The ravelry page for the first version is here, and the second version is here. The second version is pictured below:

and a before and after shot with the old on the left, new on the right:

blog clean up

after a long break in posting, has moved to a happy new wp hosting that i am administering myself, and has had a bit of a facelift. those of you who have followed this blog for more than a year will notice that it looks a lot like it did 2 years ago. yay for a new css of shinyness and all that!

the other big news is that i am living in cologne (germany) now full time, the 3rd annual hardhack happened and there will be even _more_ hardhacks this year as subconferences of other conferences.

i am currently helping found a fablab in cologne called Dingfabrik (a factory that makes things) which you can follow on twitter (feed in german) if you are interested.

makerbot 'lectric cupcake cnc 3d printer

just a quick update to let you know i was sponsored a 3d printer by wim of and i built it and got it working. i presented some slides (odp format, pdf here) about open source hardware and how the makerbot fits into all that at openchaos at the C4 in cologne a few weeks ago. a photo build log of me putting mine together (some assembly required) is here.

i will be bringing ‘lectric to dorkbot aachen next week on wednesday, so stop by if you want to print something out or if you want to see a 3d plastic extrusion printer built from scratch up and running. you can design your own stuff to print and upload it to the thingiverse ahead of time, or just contact me with your digital file and some contact info by email fabienne attt fabienne do0tt us.

a 3 second short video clip showing ‘lectric, my makerbot, printing its very first print (a lego brick) is here below:

events including hardhack 2009

fbz hacking

lots of hardware related events are coming up. first of all i will be speaking informally at the baustel-montag this coming monday about hardhack. next up i will be speaking during re:publica about open hardware (namely licensing and historical implications of open circuit information). i will most likely attend sigint, (the ccc event not in december and not in berlin). after that comes my event, hardhack, which will be only hands-on hardware stuff, no blah blah at all. then ph-neutral which this year will include some hardhack components. and the newest addition to my roster, i will be organizing HARdware, a pre-HAR2009 event to build some really awesome interactive hardware things for attendees of HAR to play with during camp. my project will be a group of networked, interactive, and hackable couches in the slacker dome. other projects may include a huge outdoor capacitive dance interface, cotton candy representations of network traffic, and walls of networked color changing pixels. contact me (fabienne @ this website) if you want to get involved!

massage couch

i am way way way behind on blogging, but i just wanted to start to pull myself out of this hole of online silence by starting with the mobile massage couch i helped build in amsterdam during the rfid hacker camp put on by mediamatic during the picnic conference. i haven’t finished documenting the build process, but at least i’ve started. i have more photos not on the couch’s page here. the top level trac page for code is here and the source code for the various components (microcontroller code for massage units and led display units and python code for the eeepc to talk to the network and control the whole couch) is here. the couch was conceived of and built in five feverishly hacktastic days with a team of three: Edwin Dertien, Ralph Meijer, and myself. the massage couch had rfid readers built into the armrests and gave you a longer massage if you weren’t yet friended in the picnic conference’s social network. it was all wireless and powered by a 12v lead-acid battery, thus the mobility factor. we hacked the living daylights out of every single hardware component in the couch, and started to document what we did, the most extensive being the add-on circuits to control the once-static massage controllers. we upgraded them to pulse width modulation controls and wrote our own massage programs. check out the massage couch’s project page for more info.

by the way, if you were wondering what happens when the hardware team finishes and the poor lone coder is left to do some late night coding on the last night: