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 https://www.sdcard.org/downloads/formatter/ .

Image

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.

Image

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.

Image

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.

Image

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.

Image

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.

installing dual boot os x and ubuntu on a dell mini 10v

Another friend of mine is going to get a dell mini 10v: the now discontinued easily hackintoshable netbook. Since I did the install and it was hellish from the current how-to’s available in June of 2010 (because of bit rot and lack of updates regarding versions of software in those how-to’s), I thought I would include some links and notes on how I got it finally working.

I bought a retail version of os x snow leopard 10.6.3 and tried to install it, but it didn’t work for me in the least. In the end I borrowed a retail version of snow leopard 10.6.0 from a friend, used it in conjunction with netbookmaker 0.8.4 rc1, from an external usb harddrive formatted from a working snow leopard 10.6.4 machine. You can’t format the external usb harddrive from anything lower than an existing snow leopard 10.6.0 machine.

Just to be clear: installing hackintosh directly from 10.6.3 doesn’t work, and won’t ever work. Find an earlier os x version 10.6.0 or 10.6.1 (in the retail version, single user copies won’t work) then upgrade but only step by step upgrades to 10.6.2 then 10.6.3. Currently my hackintosh runs 10.6.3 fairly happily, with some kernel panics about once a week.

I first formatted the internal harddrive when setting up os x to have 2 large partitions so I could then install linux as a dual boot.

To do my initial install I followed this how-to:

step 1: http://www.mymacnetbook.com/2010/03/09/guide-to-installing-mac-os-x-snow-leopard-10-6-2-on-a-dell-mini-10v/

and then this forum post to step up to 10.6.3:

step 2: http://www.mydellmini.com/forum/dell-mini-10v-mac-os-x-discussion/21424-install-osx-hard-drive-while-enclosure-before-putting-back-into-mini-10v-2.html#post158355

Then for the dual bootness with linux, I did a classic ubuntu install from usb stick and I think I fixed the grub issues by following this http://www.dailyblogged.com/booting-ubuntu-with-the-chameleon-bootloader/ … but I’m not sure since it has been several months.

I then successfully reflashed the hackintosh’s built in broadcom wireless card (from the ubuntu partition) with airport product + vendor id’s, + most importantly, region free for wifi channel 12 + 13, using this how-to: http://prasys.info/2009/12/rebranding-broadcom-802-11abgn-cards-as-airport/ . Please note that in step 8 of the how-to, the git path in that how-to has moved to this: git clone git://git.bu3sch.de/b43-tools.git .  The system profiler on os x now reports my card as an AirPort Extreme with the Locale: ETSI  and adds and subtracts channels based on my current location.

So now I have a working system where I use the chameleon bootloader to dual boot os x snow leopard 10.6.3 and Ubuntu 10.04 LTS Lucid Lynx.

boxee on ubuntu jaunty 64 bit notes

i have a media server that i have been working on (slowly) with 2.2 terrabytes of space, an ubuntu machine, amd 64 bit, with mythtv running (german dvb-t or cable tv recording capabilities). all this is well and good but i wanted a better interface to navigate my growing movie and tv show collection. enter xbmc, the interface optimized for couch use (aka with a remote) for navigation of a home theater pc. i have had some woes setting up xbmc, and about a year ago someone recommended trying boxee as it is xmbc + online social network, so you can see what your friends are watching and loving. it turns out boxee still doesn’t have package binaries for 64 bit linux machines, so there are a few hacks to get it working. here is what i did yesterday (after upgrading my ubuntu box to 9.04 jaunty most of the day). i tried a lot of different ways of getting boxee to work, here is what finally worked for me, a bash script for grabbing the newest package (hard to find url on boxee’s site, this script helps with that) and it installs getlibs, a way to getlibs for 64 bit machines with 32 bit packages.

http://forum.boxee.tv/showpost.php?p=59280&postcount=57

and then to get the network recognized by boxee, add this:

sudo apt-get install lib32nss-mdns

next on my list is getting lirc (the infrared remote control stuff) working so my remote works better with mythtv (some buttons working) and to work at all with boxee (not recognized at all). it’s fun to pick up working on all of this after putting it aside for over a year!

drobo + airport extreme + time machine + multiple macs

i struggled a bit getting backups going for our (mostly mac) office at doctr.com, but now things are finally up and running. i combined a first gen drobo, an airport extreme (wired over gigabit), time machine, and multiple macs with os 10.5.6 (leopard).

i mostly followed the “use sparse image” section from this post. here is what i did step by step:

  1. setup drobo with drobo dashboard directly plugged into one computer, format for max size (i chose 8TB because it would be faster boot time than 16TB, and frankly right now only 2TB drives are at a good price point, which makes 5.5 available TB if you have 4 x 2TB drives. i currently have 4 x 1TB drives in the drobo which makes 2.7TB available space. you can estimate available space with the drobolator), even if you don’t have that much space, this means you can slot in some bigger drives in the future without touching your setup, so make this max size BIG.
  2. next format the drive with os x’s disk utility with “Mac OS Extended (Journaled)”. if you don’t, you won’t be able to use it for time machine over the airport extreme. disk utility should see it as an 8TB drive (even though it really is much smaller). this step is currently incorrect on this page. you must chose “Mac OS Extended (Journaled)” (aka hfs+). this setup will absolutely not work if you choose just “Mac OS Extended”.
  3. the next step is the step outlined here under the heading “Best Method: Use a Sparse Image”. i repeated this step for all our macs at the office, making a sparse image for each with the correct hostname of each machine, the correct MAC address for each machine, and a different name for each -volname. for the sizes, i took the total disk space of each machine and added a bit of headroom for extra weekly backups with time machine. once time machine uses up the space alloted by the sparse image for that particular machine, it will start deleting older weekly backups. currently we don’t have any machines that are even using their full disk capacity, so i have a feeling my headroom will be plenty. make sure that when you add up all the sizes of your sparse images, that your total is less than 95 percent of the drobo available space you estimated with the drobolator. so i, for example, have 4 x 1 TB drives in the drobo, which gives me 2.7TB of available space, so i should keep the sum of all my sparse image files under 2.565 TB. the nice thing about definining these sparse image files is that you can make them bigger later, if, for example, you add a new drive into a machine (or if you upgrade the total usable disk space of your drobo by putting more/bigger drives into your drobo). to increase the sparse image size , “disconnect all users” in the airport utility and plug your drobo directly back into a tower or laptop.  in the command line:
    $ hdiutil resize -size 1500g nameofsparseimage
    you can also add more sparse images by doing the same thing, disconnect all users, plug the drobo back into a machine, add a new sparse image for a new machine you want to backup.
  4. once you have all the sparse images on the drive, eject it from your computer, and plug it into the airport extreme (via usb). now setup your airport extreme with the airport utility. choose “Manual Setup” and the “Disks” tab up top. the airport extreme will not report the right size of the drive, don’t worry about that. under the “File Sharing” tab, check “Enable File Sharing”. for me, the way it seemed to be happiest was to choose “Secure Shared Disks: With a disk password” and “Airport Disks Guest Access: Not allowed” and leave “Advertise disks globally using Bonjour” unchecked. Click the “Update” button at the bottom of the airport utility and let the airport extreme reboot completely. i had some problems when playing with configs that the airport extreme wouldn’t reboot properly. a friend noted that this was because the airport extreme sometimes pulls power from the connected disks and doesn’t totally reboot itself. my solution was to unplug the usb from the drive and unplug the power cable from the airport extreme. then repower the airport extreme, then plug in the drive once it has booted back up again.
  5. now you can configure time machine. on one of the machines for which you have made a custom sparse bundle, open a finder window and select your airport extreme from the “shared” tab on the left. click the “Connect” button and enter the disk password you defined in the airport utility. the drobo should now be mounted as a shared drive in your finder window, and you should be able to see the sparse bundles you previously made there. now open time machine preferences on this machine and choose disk/change disk. if you have followed everything above, you should see the drobo in the list of available drives. you won’t see any different partitions or the sparse bundles, just choose the drobo drive. time machine may ask you for the disk password again, this can be your username and the disk password you set in the airport utility. (backups should work for all users on the same machine, even if you don’t expressly go into each user and setup time machine, this should be a system wide backup.) now start your backup. when your backup is going, the sparse bundle should mount as a drive on your machine (maybe even on your desktop if you have the Finder pref “Show these items on the Desktop:” “External Disks” selected.) your backups should be only written to this sparse bundle and not write anything extra to the drobo. verify this by navigating in your finder to the airport extreme and make sure that only your sparse bundles that you first made there are listed. if there is anything extra apart from your original sparse bundles, you made a mistake in step 3 with the name of the machine or the mac address. each machine should only write to its own sparse bundle for which you have defined a set size. now time machine won’t try to eat up your entire drobo’s space (in my case 8TB) and stay within the size parameters you set in step 3.

this setup has been up and running for a few days at this point, and i can use time machine (though it is a bit slow) on each machine to step back in time. i will report later if there are any issues with the airport extreme requiring reboot or issues with the drobo. for now it’s all crunching along quite nicely, and i’ve even swapped some disks in and out of the drobo to upgrade my total raid space. i don’t have an offsite backup solution yet, but i’m considering doing backups every two weeks using super duper! with external terabyte drives for each machine. all in all, the drobo is an awesome raid solution that works so painlessly with different sized drives, but getting it to work with a multi-mac setup was a tad more than i bargained for. feel free to leave comments if i left something out, or if something in this outline doesn’t work for you.