Digital output to transistors and then to fireworks

Hi,

I'll start by saying that I'm a software engineer by profession. I can fumble my way around digital and electronic circuitry, but I'm no expert.

I'm building an Arduino based project to support my hobby (and part-time job) setting off fireworks. It is a wireless firing system consisting of a controller and multiple field modules. The controller is an Arduino Mega2560 with an XBee radio, a TFT touchscreen and an RTC for accuracy. The field modules are Arduino Unos each with an XBee radio, a LCD screen and an I/O multiplexer providing 48 pins, each of which can be digital (5V) output or analog input (0-5V) through a 10-bit DAC.

I have had no real problems putting all this together, and I think the software now rivals that on commercial systems.

My problem is with the connectivity between the pins on the firing module's multiplexer (a Mayhew Labs' Mux Shield II featuring 74HC595 shift registers coupled with a 74HC4067 analog multiplexer) and the ignitors that are used ignite the fireworks.

If the job of the field module were purely to detonate the ignitor, I would run a wire from each of the 24 digital output pins in the multiplexer to the base of a transistor, whose collector attached to +18V via the ignitor and whose emitter runs to ground. Raising the output pin to a high (+5V) state would, with the right transistor, cause the ignitor to fire, igniting the firework and KA-BOOM!

However, the field module has another use. It must also assess the connectivity/integrity of its ignitors. Thinking of how I might do this, I could take my +18V supply through a resistor to drop the current to well below the 0.4A that may ignite it, then through the ignitor, finally to ground. I would run a wire from the +ve side of the ignitor off to the analog input pin from which I would measure the voltage drop across the ignitor. The ignitor has only a 2 ohm resistance, but I would expect to recognise that with a 0.005V granularity.

My field modules support 24 'cues' each. A cue is 'where you plug your ignitor in'. Each ignitor is connected across a pair of terminals, from which wires then extend back into the field module. There is no physical switching possible, or even desirable, between continuity and fire modes. When the ignitors are attached, each circuit needs to work based on which pins are being used. The output pin will be held low until it attempts to fire, at which point the continuity circuit (analog input pin) will not be looked at, but will still be connected.

I have a choice of using only 24 of the multiplexer's 48 pins, and using software to switch them between output and input, or of using the 48 pins in 24 pairs.
If using only 24 pins, then each one must be permanently wired to both the fire circuit (transistor base) and the continuity circuit (+ve side of the ignitor).
If I use 48 pins, then only one of each pair is attached to the transistor, while the other is attached to the +ve side of the ignitor. This appears to isolate the circuits at the multiplexer, but they still connect with each other at the ignitor. Maybe any cross-connections can be eliminated with appropriate diodes?

Unfortunately, my rudimentary knowledge does not allow me to judge which (if either) of these would work, or if one is better than the other. I see circuit diagrams including additional diodes, resistors and capacitors around transistors, whose impact I don't really understand. Basically, now I've got to the bit where I need to understand the electronics, and I don't.

I have a number of areas where I would appreciate some advice.

  • What is the best wiring option for connecting the 48 (or just 24) pins on the multiplexer to the 24 pairs of wires that go off to the ignitors. Can you suggest a wiring diagram I could try to implement? This is a mini (possibly not that mini) design project for anyone keen enough.
  • The ignitor needs 0.4A to fire it, and it happens almost instantly, like a fuse. With an 18V supply and a 2 ohm resistance, if I had just 1 ignitor, the transistor would be passing 9A for a fraction of a second, while if I had 8 ignitors connected in series, it would pass only 1A. Sometimes, you might get 2 in parallel, so 18A!. I have 24 of these to build in each module. Is it possible to get IC housed transistor arrays that can shift this? Would I be better off considering an alternative approach for the firing circuit, and if so, what would be better?
  • The 18V supply (I'm expecting to use a LiPo or similar) is chosen because if the show requires that all 24 cues are fired at once, I need enough oomph in the supply still to deliver 0.4A to each ignitor. With 2 ignitors in serial on each of the 24 cues, that would lead to a theoretical draw on 108A. However, the internal resistance of the cell, plus that of the circuitry itself would reduce the maximum current that could be supplied. In order to push 0.4A through each ignitor in this situation, is 18V enough? Should 24V be used?
  • Power surges. OK, I'm pretty sure that some of the capacitors I have seen in wiring systems are there to prevent the application of power to the system from causing things such as transistors to be turned on when they should remain turned off. I don't really understand this use or whether and if so where I would need it. However, it is essential that turning on a firing module does not deliver anything above 0.4A to any of the ignitors that may be attached.

All input will be much appreciated. I will happily supply any further details to anyone who feels they can take up the challenge.

Sounds good so far. I'm working on something with a little similarity, but not nearly so many igniters to be triggered.

My thinking on the 'sense' circuits is they should always have a high enough resistance that there's no chance of an incorrect connection firing the igniter accidentally. Think about what might happen if you dropped a tool or a piece of wire and it connected +18v to the supposedly safe 'sense' wire. All transistor outputs should have pulldown resistors so that they are naturally connected to ground during the first microsecond that the Arduino is starting up and configuring its outputs. (All pins start as high impedance inputs before your code runs.)

I don't think your calculations on voltage and current are correct. Your 24 firing circuits are not all going to fire at once, so you don't need 108A of current capability. What is the maximum number of circuits that could fire at once? Each igniter needs a minimum of 0.4A, so if you fired 10 simultaneously, you would only need a 4A power supply. And that current capability doesn't depend on the number of igniters in series in each circuit. One or ten still only require 0.4A.

Is it normal practice to wire igniters in series? If one cooks off slightly before the others, doesn't it break the circuit and prevent all the others going off? I would have expected them to be in parallel.

I agree that all igniters firing at once is not the norm. However, unless the software is going to prevent this (and I don't think it should) then the hardware has to be able to handle it.

You are correct however, and my assertion of 108A was naive. The fact that an 18V cell through a 4 ohm resistor could draw 4.5A does not mean that it would do so in the real world. I now recall that internal resistance plays a part and if the battery has over-current protection, this resistance presumably becomes higher as the current draw increases. With 24 ignitors on 24 cues, they are effectively in parallel and have a resistance of 1/6 ohm. If the 18V battery had zero internal resistance, then it would pump 108A through that parallel arrangement, but if it were limited to 30A for example, each cue would still get 1.25A - well above the threshold. Perhaps I could be using a 12V supply after all?

There are essentially 3 kinds of ignitors.

  • eMatch are the most commonly used on pro shows and are what I am designing this for. They consist of a nichrome or similar wire covered in a pyrogen composition. They are almost always wired in series, where more than one is required from a single cue. They ignite pretty much immediately but continue to conduct until they are totally fried. I have used 4 in series more than once, and haven't lost any.
  • Talon igniters are publicly available retail ignitors. These have a single filament, like a light bulb, that is placed in contact with the fuse of the firework. They can take longer than an eMatch to ignite, and when they do, they stop conducting instantly. They are almost always combined in parallel. They have a resistance around 7 ohms and require about 0.75A to fire them.
  • SFI ignitors are another device used in pro shows. Similar to Talons, they are filament burners, but have a resistance of 0.8A and have a current of 1.6A. I've not used them, so I don't know how much they are combined.