4th of July project: 24 Channel Firework Detonator Build Log
One night around the 25th of june, my roommate showed me an instructable on how to make an electronic firework channel, and asked me how hard it would be to scale it up into more channels. We promptly had a discussion, resulting in some sketches, including this one: Basically, we decided to split the system into two boxes: A control box and a detonator box. The detonator box would house the mosfet drivers, controlled by some shift registers so we could up the initial 20 to 24, since we were out of IO pins. We'd hook it to a car battery for power, and then run some 20 gauge speaker wires out to the fuses. The control box simply has the buttons and safety switches. We figured we'd send data over a UART, run an SMDuino on each side, and connect them with a ethernet. We wanted something simple, cheap and foolproof to connect the two, and cat5 fit the bill.
I totally forgot about this, because I figured it was just another random project idea he had. That is, until boxes arrived at the end of the month, and he let me know that he was building it for his boss. So, we had a 5 day deadline to actually build this. To work!
So, the first real step we took was to actually test various fuses. We came up with this array of random wires.
These are our various prototype fuse coils. The first two had the issue of being too high gauge, so our speaker wires were overheating. Then we decided to switch from soldering to alligator clips, which would be much more convenient in the final product. After a few ways to try wrapping them, we found some consistent and reliable ones, but #7 is interesting. We figured we might be able to save on stripping by leaving the sheath on, but quite curiously, the melting plastic actually extinguished the firework fuse. That was a no go.
Testing procedure. This happens to be Test 7, which was the failure. On a related note, fireworks suck these days. I swear, I could have made a bigger smoke cloud by throwing equally sized bag of flour.
Jason observing our smoke bomb's tiny crappy cloud. You can also see our test circuit. Of course, during a project crunch, we also get some new OSHpark boards in. They have to wait.
This is my very initial test of the shift register code, which is the heart of the detonator box. For this I'm using Bildr's excellent shifter library, which gives very convenient control of lots of shift registers.
Initial footprint of the Detonator Box circuit.
Laying out our wires to the correct length while my roommate Jason works on some parts for the control box.
Fitting the protoboard into our handy little chassis drilled out of an electrical gang, along with the footprint of the circuit.
Routing the gate wires from the shift registers. Since there's 24 parts jammed in this tiny area, I did this first to make things a it easier.
Meanwhile, my roommate has been making lovely progress on the control panel. He was aiming for something reminiscent of a 50's spy movie. Our control scheme is simple: Safety first. So, there's two safety features. First is the off switch. The second is the engage button on the left. Unless you hold that button, no fireworks go off. This panel will control a thousand dollars of explosives, so accidents are not ideal.
In keeping with the safety theme, each mosfet has it's own pull down resistor to avoid glitches on startup. This also works with another safety feature we're building in: The 595 shift registers have a tri-state mode. This enables a single pin to disable the shift registers. By pulling the disable pin high, and the mosfets low, there's two levels of off by default during the startup of the microcontroller, or in case of a broken serial cable.
Jason soldering up the keypad matrix for the buttons. After some testing, we decided to scrap the analog sensing idea due to being just finicky enough to cause some issues. Plus, this has fewer parts.
This is when Jason started to regret soldering the wires to the mosfet drain before soldering the mosfets to the protoboard.
After Jason finished the matrix, I somehow determined this would be the best way to solder in the controller. It looks great though! Too bad it's the underside where no one will ever see it.... Anyway, I wound up using the Keypad library to control the buttons.
Shortly after making things look so pretty, it dawned on me that since we're using an ethernet cable, I don't actually need a UART and a second controller. I can easily connect the shift registers directly to the control panel via the ethernet cable. The control box is actually powered from the detonator box, simply because it's the one hooked to a battery. If you recall the mosfet safety features though, this box being missing disables shift register outputs and pulls the gates low. Good work safety!
This is the finished product for the detonator board. It includes a star ground to help isolate the logic, and seperate channels for each bank of drivers to help minimize the chance of melting anything.We left out two mosfets though, because we simply ran out of wire due to a slight miscalculation.
Alright! After days of work, we can finally plop this thing down, and see how it works.
HUZZAH! resounding success! This is our simple test lamp, which is just two opposite facing leds and a resistor. Since we neither know nor care about current direction, this was the easiest way.
This thing kinda takes over a house, with some 400 feet of cable dragging around behind it.
This is the pile of fireworks that this was built for. Since it wasn't my party, Jason gratefully took some pictures for me.
Setting up the fuse coils! The alligator clips and a box of stripped wire bits worked perfectly.
The button has been pressed....
.. And, that is a lot more satisfying than the smoke bomb.
And of course, it wouldn't be a complete build log without a tiny bit of reflection:
Things we could have done better:
This really didn't need that really heavy gauge speaker wire. But, this whole thing was really rushed, with only about two weeks from commission to completion, and Jason didn't want to take any huge chances on that parts order, so it's understandable.
We also didn't need to use 400 feet of it. Because of the way we've used our expansion IO via shift registers, we could have EASILY broken the 1 detonator box into 3 daisy chained ones. Then, we could have shortned the wires to 5-10 feet. It'd cover the same area with about half the wire, and be way easier to pack and lay out too.
The ugly:
We really didn't get to gussy up the detonator box. Because of the huge runs of wire, it wound up sitting on a grocery bag during operation because something shorted out when we tried to fit it back in it's box.
We're not positive that there's any reverse polarity protection on this. Jason did a last minute relay hack, but aside from normal operation, we didn't test it. That means one wrong battery plug in the dark melts the whole thing together. That's a need to fix in the next version.
Things we did right:
Clearly, the whole thing worked, so we didn't do too bad. Ditching the analog code made the whole thing a lot more reliable, as well as gave the ability to fire multiple channels at once.
The whole project was so mesmerizing to the party goers, that we're going to brush up the design, make it easily expandable to the dozens of channels, and make some kits to sell for New Years. Combine with the planned wireless control unit, and this should be a lot of fun.











