A friend of mine, Alex, is building his own Tardis, and needed a hand with the light on top. I cobbled this together in a couple of hours and thought I'd share it.
A standard Arduino Uno board,
about 20 LEDs worth of Adafruit's Adressable LED strip.
The wiring is very straightforward, and is the same as the examples on the Adafruit website. For a section of strip this size, I'm happy for it to be powered over USB.
For prototyping, I put the strip and circuit board inside a softdrink bottle to hold the round shape. The finished version will need a proper mounting and diffuser, of course.
The search for the perfect 'Swoosh':
The swooshing light and grinding noise as the Tardis materialises, is such an iconic part of the TV show, so I wanted to get it working nicely. I haven't checked with old episodes yet, but this seems to match my memory and people's perception.
I started with a simple sine-wave generator, and allowed modifying it so that it has a baseline-on value that is never ducks below. I also added a 500ms pause before it starts the next cycle.
The result was nice, but seemed a little wrong. So I ran the result through a shaping filter (basically the output is raised to the power 1.1), which seems to give a nicer on time, whilst still having a bit of decay in there like an old bulb cooling.
All parameters are broken out as variables, and can be tweaked easily.
The code is attached at the bottom. You'll also need the LPD8806 library from Adafruit's github, here:
When it's on display, the Tardis light has to synchronise with the sound from the PC. So I made a simple serial protocol that allows turning the lights solid on, off, doing the takeoff swoosh, and sparkling blue, etc. from the control of a laptop.