Control a Dream Cheeky USB Missile Launcher with Python

1 minute read

I had the idea to set up my Raspberry Pi as a build server.  Google, perhaps knowing me too well, led me to an interesting project that uses a USB Missile Launcher to indicate broken builds by launching missiles at the offending programmer.  I just happen to own a missile launcher of a different model created by the same company, and so how could I not give this project a go?

Dream Cheeky Missile Launcher

There was a bit of setup.  My laptop running Ubuntu was the Hardy Heron release and several cycles behind the current release Quantal Quetzal.  I ended up doing a clean install.

The script to control the USB Missile launcher is in Python and depends on PyUSB for hardware IO.  The vendor and product ID codes were slightly different, but were documented  elsewhere.

#New Model usb.core.find(idVendor=0x2123, idProduct=0x1010) #My Older Model usb.core.find(idVendor=0x0a81, idProduct=0x0701)

I’m not big into Python, so debugging this script was foreign to me.  I found some documentation and with a few imports and commands I learned n = next, c = continue…enough to be dangerous.  And so I modified the script and submitted my first Github Pull Request.

I checked out both TeamCity and Jenkins. I really like them both, finding Jenkins easier to configure and TeamCity more feature rich.  Each one supports Git polling, though I havn’t yet looked into setting up the Continuous Integration part of the build server–triggering automated builds on each commit.  Then theres the matter of connecting my Raspberry Pi wirelessly.  So, there is more work to do and more to come!

Update: Pull request merged!

Updated: