From Node to Diode


I have a confession to make. I’m an LED addict. If it involves making some blinkenlights I’m your man. In 2010 I helped build the Illuminatrix, a 4ft x 4ft wall of LEDs nestled inside ping pong balls that displayed hundreds of animations from people all around the world. This was my first big electronics project, besides a few kits I’d built and some awful attempts at implementing various audio syntheziser circuits I had found online. But I officially caught the hacker bug back then and that project inspired a lot of my work over the last few years.

This year we decided to build another project for the Burning Man festival. We’re calling it the Diodome and its an 18ft geodesic dome containing hundreds of LEDs. Obviously.

I’ll be detailing the build on my blog as we go, but the first step is to figure out how we’re going to control all these LEDs!

How we did this before…

One of the things I did when I built the Illuminatrix was to build a web based animation editor that anyone could use to easily create animations for the project. In that you could write JavaScript code that we could use to generate keyframe data for the animations. We took the keyframe data and dumped it on an SD card and had a PIC microcontroller and custom circuit boards read from the SD card then control the LEDs directly. This worked well enough, but was a lot of work, and wasn’t very stable or flexible. We could only use keyframed data, and we couldn’t modify the animations on the fly.

Deploying libcouchbase with AWS Elastic Beanstalk

Recently we’ve begun using couchbase as a backend datastore for some of our projects at my day job with SupplyFrame. Since my projects are now involving nodejs I needed to make us of the couchnode package. Unfortunately this depends upon libcouchbase being installed on the platform before the package is installed.

We’re using Elastic Beanstalk for our deployments so I needed to figure out how to get the libcouchbase libraries installed before npm install was run so it would install correctly. Thankfully Amazon have figured this would be a problem and so have provided a rather handy mechanism for configuring your AWS environments under Elastic Beanstalk.

Setting up a Raspberry Pi media center

I finally got round to ordering a Raspberry Pi this week and this Friday it finally arrived. So this weekend I’ve been busy getting it setup to act as a media center for our living room. What I want ideally is a Xbox Media Center setup capable of playing 1080p media with DTS output, I then also want it to be capable of playing Spotify headless without having to use my TV as the screen. So really I want an Android client on my phone controlling spotify on the Raspberry Pi and XBMC for when I’m watching media on the TV.