Ball LED Wiring Sharp-eyed observers will note the creative use of Cat-5 cable for the light control wires and power. The LEDs are 3 watt RGBs. Don't look at these directly at full power. The individual colors of the two LEDs are controlled by pins on the mbed. I use six pins for the two LEDs inside the ball - which is actually just a glass dome from a light fixture - and three more pins for the strip around the edge of the building.

Control Center Including PC power supply (12v, 5v and 3v), mbed controller board, motor, motor shield and cable drum. Interesting thing about PC power supplies: they won't work until you short pins 15 & 16. See step 5.

Motor and cable drum This little motor is powerful. I wouldn't tow a car with it, but it lifted the lighting assembly with ease. Yes, the "cable drum" is a blank CD container cover, repurposed, and it worked fine. The lift cable is cheap twine from Lowe's.

Motor shield and wireless serial port (Xbee) I hacked the Arduino motor shield, listed below, to work with the mbed microcontroller. Once configured, the Xbee is really easy to work with. The board top left drives the long light strip around the building edge.

Screen shot of the trigger app on the Mac desktop. I wrote this from scratch. The mbed expects a sequence on the serial port to trigger the 60 second countdown. The "Now + 10s" enables testing. One interesting aspect, for programmers, is that while Xcode and Cocoa have all sorts of layers and interfaces, etc, the low-level device communication code could be lifted almost directly from a W. Richard Stevens book. Here's the code I used for serial communication: Listing 1-7, MyOpenSerialPort()

Xbee on the laptop, trigger host. The trigger code is sent to the mbed via this Xbee connected to the laptop. After installing the FTDI device driver, the laptop sees it as a simple serial port.

Last seconds of 2012, first 10 seconds of 2013 The volume might be kind of loud. But it is a party.

This project was interesting in that it brought together a microcontroller:
With motor control:

Along with wireless serial communications:

And mbed RTOS threads to make it really easy to control multiple tasks simultaneously and sequence timing:

As well as the trigger app on the desktop. Yeah, there are areas on which I could improve - like the drop cable guidance and a visual display of seconds remaining - but for a cheap, quick and dirty hack, it worked remarkably well, it was fun to put together, and I learned quite a bit from it.