EDIT: Made it to the front page of HAD http://hackaday.com/2008/11/15/microcontroller-fireworks-launcher/

So on a slight upgrade from my last launcher I made a new model rocket/Fireworks launcher using an Arduino microcontroller . This project was inspired by this wireless fireworks controller and this microcontroller rocket launcher . I really did not want to dedicate my launch device to any one specific role since celebrations are far apart and model rockets are somewhere near the middle of my list of hobbies. By combining the two different devices together I was able to achieve what I wanted. Most of my original drawings are found here…


I was going to use the ATmega32 microcontroller because of its quantity of digital I/O lines but settled on using an Arduino Diecimila for prototyping and RBBB for implementation. Keeping things simplistic but still allowing a workable user interface I decided on only using 4 buttons and 2 switches.

  • Power Switch:
  • Turning the device on and off.
  • Key Switch: Activating the launch screen and final authentication method before launch.
  • Left/Right Launch Buttons: Menu Navigation, login acceptance and launch.
  • Up/Down buttons: More menu navigation.

The ATmega168 only has 14 digital I/O lines and I will be requiring at least 1 for each switch and launch terminal. Two 8-bit shift registers give me 16 terminals and are super nice because in order to operate both you only have to sacrifice Three pins. Here are some things I wanted to include

  • Startup melody
  • Password authentication
  • Key Switch
  • Ability to change launch configuration such as delay and patterns.
  • Screen for pattern selection and other settings.

Here is the finished prototype. Basically this is just a proof of concept and also it allowed me to finish the software prior to installation. You can see the black 16pin shift registers each broken out to LED segments. The yellow chips are 330 ohm resistors.


I finished the transistor board after lots of soldering. Each output from the shift registers are connected to the Base of the Transistor through a 1k resistor and each pin has a pull-down resistor as well. Instead of using one power source, the terminals will be broken up into four power sources. Two 9 volt batteries in series will feed each section of 4 terminals. Eight batteries for the launch system and two more for powering the microcontroller, LCD screen, LED’s and etc. To help take the initial shock current off of the 9v batteries each of the four sections has a 4700uf cap. The smaller cap is part of the 5v regulator system for all the controls.

Circuit Board

Using an old floppy cable I connected the transistor board to the Arduino RBBB. And then some more for connecting up the switches, buzzer, led’s and LCD screen. All that is next is to wire up the terminals to the transistor board and then mount it all in its case.


Well wire that up and get some more batteries.

9v Batteries

After acquiring the batteries and finishing up the wiring I started looking for a case. I knew that I wanted something pelican-esk. I found this Plano waterproof case at Academy Sports an everything fits inside perfectly. The next problem was what to use for the lid to mount the switches to. Three walks around my house landed me with some plywood, Plexiglas and a clipboard. The clipboard almost fit to begin with so I chose to use it. After some hot glue here is the result.

Case Panel

I had to recess the top piece down some for the red arming switch to clear the case lid. I really like the looks of how this turned out.

Lid Closed

The launcher booted up and armed, ready for launch. I should probably mention the two momentary push button switches to the right of the LCD screen. I used some felt with sticky on the back to cover them up and still show their location. I would probably use larger push buttons that were mountable if I had to do this over again. Also each launch button (bottom left and right) have built in blue LED’s which didn’t show up in this picture.

In Action

Steps to get to the launch screen include:

  • Turning the power on
  • Entering in launch code.
    • Press and holding both launch buttons to verify code
    • If code is wrong it notifies the user and reboots
  • Selecting the launch array which include
    • Every terminal
    • Every odd terminal
    • Every even terminal
    • Terminal #1 only
    • Every terminal with a 1sec delay between
  • Then inserting the key and turning it to the on position.
    • This arms the system and turns on a relay which connects the battery packs to the transistor board.
    • Also when armed the launch buttons light up bright blue.
  • Pressing both launch buttons simultaneously.

Inside the case the first thing to notice is the battery array. Two for each terminal and two for the launch system. Hot glue was mainly used to hold things together but some other reinforcement will be added before this sees field use. A short test of each terminal and all buttons and this is ready to see its first rocket or firework.

Internal Wired Up