In this post I will comprehensively explain a simple electric match igniter circuit which can be used for implementing a foolproof ignition of a series of Ematches through a microcontroller based control system. The idea was requested and explained by Mr. Jerry Shallis
The details may be understood by reading the following email discussion between Mr. Jerry and me.
Technical Specifications
I've just been looking at all the useful stuff on your site, and I'd start by thanking you for putting it all in the public domain. It's a very useful reference for those of us for whom electronics isn't our primary skill.
I found you had published a circuit for a Ematch fireworks ignitor system.
I think it is close to what I am looking for, to build into my own system, but it is sufficiently different that I can't adapt it myself.
I am building a microcontroller based radio linked distributed firing system. I work with a professional display crew and have designed the system to offer all the best features of commercial systems, but I hope without the unnecessary features or the high cost.
Having been a software engineer for 30 years, I don't have any problem with the code, and there are nice embedded environments such as Arduino or Raspberry Pi that make the hardware side quite straightforward - even for a software guy!
As a result, I have built a modular firing system that can process ignitor continuity (voltage) information on 24 pins in each module, and can generate a 5V signal on one of 24 output pins. I now have many modules, all controlled from a central unit.
However, I have a problem with the output circuitry, as this requires a knowledge of analog electronics that is beyond me. Each module is supposed to detect continuity on, and fire, 24 ignitors.
I have 24 input pins and 24 output pins per module. Each individual cue therefore uses one input and one output pin.
The input pin can measure (when the software directs it to do so) the voltage relative to Gnd.
The output pin will be raised and held at 5V for a set period before being reduced to 0V, again when the software directs it to do so.
If I were only building a continuity test, with no firing function, I might connect my +5V supply to a 10 ohm resistor, the other end of that resistor to one wire of the ignitor (which has a resistance of 1.5-2.5 ohms) and then from the other end of the ignitor to Gnd.
A line to from the junction between the resistor and the ignoitor, to the input pin would allow me to measure the voltage drop and detect the presence or absence of the ignitor.
There may be other resistors present to ensure that no more than 0.2A could go through the ignitor, which is its maximum no-fire current.
On the other hand, if I were just building a firing circuit, I would take the output pin into the base of a transistor whose collector was connected to +18V and whose emitter was connected to one wire of the ignitor, with the other wire of the ignitor connected to earth. There may be other components necessary.
I have seen these on firing systems, but don't really understand their roles in the circuit.
There are 4 problems that I have yet to overcome.
1) To be useful, there must be no moving parts on the firing module. There must be no 'switching' between the continuity sensing function and the firing function.
The 2 wires of the ignitor must be plugged into a fixed connection block on the module, and its internal wiring must allow both continuity and sense functions to take place without either one affecting the other.
In the worst case, if the fire circuit were energized, and at the same time, the continuity test were being performed on the same pin, no more than 5V must be present on the input pin.
And of course the continuity test current must never energize the transistor that will fire the ignitor.
2) The circuits for the 24 individual ignitors must not affect each other. The circuits should be isolated so that what goes on in one circuit will not cause an impact on another.
For example, when an ignitor fires, and its firing circuit either goes open or shorts, that must not shunt any current into one of the other circuits and risk energising its transistror.
3) To be practical, I hope to build a number of these modules.
With 24 continuity and 24 firing circuits per module, the more of each that can be reduced to ICs or other PCB mounted components, preferably in array packages, the better and of course cheaper will be the final product.
I am happy to commission a custom board and perhaps even assembly if the design can support this.
4) The fourth problem is one that it would be nice to overcome, but isn't essential. The software will allow multiple output pins, and therefore ignitors, to be fired at once.
On the digital side, this isn't a problem, but it does place a significant load on the firing circuit's power source.
An 18V LiPo battery will probably be able to supply the 0.6-0.9A required to fire many ignitors, but with the internal resistance of the battery, the resistance of the lengths of copper wire involved and the fact that sometimes, we connect more than one eMatch in series to a single firing circuit, it is easy to see that there will be a limit.
To raise this limit as high as possible, a capacitive discharge could be used, with a smaller battery charging one or more capacitors, whose energy can then be fed to the transistors.
I understand this can be much more effective than a simple direct battery energy connection.
So, does this project appeal to you? Are you interested and willing to contribute your expertise to turn this from a bench project, as it is currently, into something that really works?
I will happily supply any further information you may require.
Kindest regards,
Jerry
Designing the Circuit
Hi Jerry,
Please check the attachment, will this set-up work for you?
Working Without a Push-Button
Hi Swag,
Thanks for taking the time to look at this.
Unfortunately, I fear I was not sufficiently clear when I said that there can be no physical switches in the circuit.
The circuit needs to work without a continuity push button. Instead, there needs to be a constant connection from somewhere in the circuit to the sense (ADC input) pin with a voltage (only ever 0-5V) whose value can be used to assert whether or not a load of 1.5 - 10 ohms is present.
I am also a little worried about the 10 ohm resistor. It looks to me that even with no trigger voltage, current from the 18V supply will pass through the load and then the 10 ohm resistor to ground, delivering 1.5A to the load, instantly detonating it.
Do you agree that this would happen? Can you come up with any modifications that would address either of these observations?
Many thanks,
Jerry
The 10 Ohm Rsistor Correction
Hi Jerry,
The 10 ohm was indeed a mistake, please check it now and let me know if this electric match (Ematch) firework ignitor circuit would serve the purpose
(see attachment).
The diode and the capacitor is for ensuring that the signal holds even while the transistor is conducting during the triggering period of the load.
The 10k preset could be adjusted for setting up an appropriate voltage for the ADC input.
Thank you very much Swag.
I'm not familiar with the characteristics of the TIP122 or the 4N35 so I will get their datasheets and construct the circuit to test.
This may take longer than would be ideal as I have just broken my arm, so soldering is going to be a challenge!
Nonetheless, I am very grateful for your assistance.
I wonder if you have any thoughts on replacing the 18V supply with a capacitive discharge circuit?
I suspect that this will be much more straightforward and I can no doubt find references on the Internet to standard charge/discharge schematics, but if you have any that you have done before, I would be eager to see?
All the best,
Jerry
Hi Jerry,
I think now I am beginning to understand the configuration completely.
Could you specify the voltage level required for the load to fire?
This would help me to design the finalized circuit along with the capacitive discharge stage.
Best Regards.
Swag
E-Matches are Low Current Devices
Hi Swag.
EMatches are specified to fire on minimum current, rather than voltage. Different manufacturers give the minimum firing current at between 0.35A and 0.5A though most recommend closer to 0.6A-0.75A to fire with good reliability.
Manufacturers also give different internal resistances for their ignitors, from 1.6 ohms to 2.3 ohms. If you connect a single 2.3 ohm eMatch to a battery of negligible internal resistance and look for 0.75A it will take only 1.725V to fire it.
However, if the single firing circuit (which we call a 'cue') were to be used to fire 6 ignitors, connected in series, that would demand 10.35V. In the real world, there are additional resistances present, both from the energy source and the copper wiring between the ignitors. Consequently, 12-24V is usually taken as the baseline.
Then there is the consideration that there are 24 cues on each module, all sharing the same energy source.
The software will permit all 24 cues to be fired at once.
The cues are themselves effectively in parallel, and at least 0.75A can be drawn by each cue. So the energy source must be able to supply 18A for this to happen.
When we need to connect multiple ignitors to a single cue, we always do this in series - never in parallel. We aim for 100% reliability and a series connection will always fail its continuity test if a single ignitor is bad. In parallel, multiple faulty ignitors can be missed.
Although all this current and voltage is unusual for small circuitry, there are some compensations.
Firstly, the objective is to get the ignitors to burn out, so excess voltage or current is never a problem, as long as the components can handle the power.
Secondly, the ignitors typically burn out in 20-50ms so the draw will only ever be quite short and the components are unlikely to have to dissipate much heat.
The primary consideration has to be whether the power switching transistor can shunt that much power.
The software that fires (raises the firing pin to 5V) each cue will hold it at +5V for only 500ms before dropping it to 0V so there will never be power through the output circuit for more than 500ms even if the ignitor fires but then shorts itself out afterwards (always a risk).
One note on the sensing side of the circuit. I can see that your design will provide 0V to the ADC if the ignitor is missing or has already blown open.
However, if it is damaged or has been poorly wired and is shorted, I don't think this will be detectable, will it? This isn't a fundamental problem, though I had hoped to use the ADC to detect open circuit, short circuit or sensible resistance in the range 1 to 15 ohms.
Finally, I think the capacitor(s) will need to be charged, and discharged, under software control.
You could assume that there is another pin on the module which will be pulled to +5V when the capacitor should charge, and will drop to 0V when the capacitor should discharge. A safe shunt into which to discharge the capacitor will be required.
I have a suspicion that this arrangement may require a change to the sensing circuit, since the sense function should operate whether the capacitor is charged or not.
It is important also to ensure that the current through the ignitor is kept to an absolute minimum for sensing purposes. I have read only today that with a constant current less than the minimum fire (say, 0.25A which is less than the 0.35A min fire) the ignitor will still heat up and may fire after several seconds.
Consequently, it is thought that constant test currents should be less than 10% of the min fire current (which would be 35mA) , and possibly as low as 1% (3.5mA).
I hope this isn't changing things too radically.
Many thanks for your continued interest.
All the best,
Jerry
Using a Low DC
Hi Jerry,
OK that means that the firing voltage is a low voltage DC, I confused it to be a high voltage when you mentioned the term "capacitive discharge".... so I think I should leave this up you to decide regarding the appropriate figure, since the TIP122 can handle well over 3amps at 100V so there's ample range to play with.
I'll put an opamp comparator at the sensor side that will enable you to select the detection range as per any desired specification.
I'll try to design it soon, and let you know once it's completed
Hi Swag,
Thank you once again for your time on this. You have so much more expertise in analog electronics than I do and have achieved in a few days what I had spent many months puzzling over.
I totally understand your point about detecting the range of the load - this was only an aspiration and the system will not fail to work without it.
I have taken what you have provided and run it through the EasyEDA circuit simulator where it performs exactly as I had hoped - at least with a single circuit. It indicates that with the potentiometer at 10%, the ADC will see 0.36V when there is an ignitor present, and 0V when it is open, which is what I will require for this to work. When the ignitor is energized, this goes up to 1.4V which is perfectly safe.
The sensing current isn't even measurable while the firing current looks like 3.2A which will fire anything. My next task is to simulate multiple independent circuits, up to the 24 I will have in a module, and look for any evidence of crossover.
I have attached the schematic of the circuit and the simulated currents & voltages.
I have ghad to work with what is supported, which is why the simulation uses a different darlington transistor, but I believe - unless you advise me otherwise - that it illustrates the expected behaviour. V1 incidentally is a 5V square wave with frequency 1Hz, since this allows for simulation of the 5V firing pin going high.
Can you suggest how much of the circuit can be shared between the 24 cues in a module?
The primary supply voltage will, as will any lower voltage supply required to feed the LM7805, and of course a common ground.
Can a single LM7805 be used to provide the input for all of the 4N35s? I'm guessing that the rest will have to be unique for each cue, which gives me a shopping list, but I would appreciate your thoughts on the construction of a 24 cue module.
Finally, I am still wondering what the options are for adding a capacitive discharge energy source in place of the 18V source?
My understanding is that commercial firing systems will use them because their low internal resistance makes it possible to pass high currents through low resistance ignitors. Is it correct that a C.D. source will have lower internal resistance than a battery?
Some firing systems may have quite a high fire voltage but this is probably just a consequence of how capacitive discharge works. 18V is as much as is needed, though more will certainly not hurt.
Is a C.D. source a straightforward thing to add? Would it be possible to add something that would run off 6 x 1.2V rechargeable AA batteries?
If that were possible then that same 7.2V source will happily power both the LM7805 for the firing circuit and the arduino board too. I feel that would be a pretty perfect solution.
All best wishes,
Jerry
Presenting the Modified The Design
Hi Jerry,
I have modified the design as per the specs.
The BC547 makes sure that the ADC continues to receive the logic high while the transistor is triggered ON, and thus allows the load to fire fully.
Detecting the range of the load might require a much complex circuitry to be included, so I decided to go without it in the design.
Let me know if you have further doubts.
Hi Swag,
Thank you once again for your time on this. You have so much more expertise in analog electronics than I do and have achieved in a few days what I had spent many months puzzling over.
I totally understand your point about detecting the range of the load - this was only an aspiration and the system will not fail to work without it.
I have taken what you have provided and run it through the EasyEDA circuit simulator where it performs exactly as I had hoped - at least with a single circuit.
It indicates that with the potentiometer at 10%, the ADC will see 0.36V when there is an ignitor present, and 0V when it is open, which is what I will require for this to work.
When the ignitor is energized, this goes up to 1.4V which is perfectly safe.
The sensing current isn't even measurable while the firing current looks like 3.2A which will fire anything. My next task is to simulate multiple independent circuits, up to the 24 I will have in a module, and look for any evidence of crossover.
I have attached the schematic of the circuit and the simulated currents & voltages.
I have ghad to work with what is supported, which is why the simulation uses a different darlington transistor, but I believe - unless you advise me otherwise - that it illustrates the expected behaviour. V1 incidentally is a 5V square wave with frequency 1Hz, since this allows for simulation of the 5V firing pin going high.
Can you suggest how much of the circuit can be shared between the 24 cues in a module?
The primary supply voltage will, as will any lower voltage supply required to feed the LM7805, and of course a common ground. Can a single LM7805 be used to provide the input for all of the 4N35s?
I'm guessing that the rest will have to be unique for each cue, which gives me a shopping list, but I would appreciate your thoughts on the construction of a 24 cue module.
Finally, I am still wondering what the options are for adding a capacitive discharge energy source in place of the 18V source?
My understanding is that commercial firing systems will use them because their low internal resistance makes it possible to pass high currents through low resistance ignitors.
Is it correct that a C.D. source will have lower internal resistance than a battery? Some firing systems may have quite a high fire voltage but this is probably just a consequence of how capacitive discharge works.
18V is as much as is needed, though more will certainly not hurt. Is a C.D. source a straightforward thing to add? Would it be possible to add something that would run off 6 x 1.2V rechargeable AA batteries?
If that were possible then that same 7.2V source will happily power both the LM7805 for the firing circuit and the arduino board too. I feel that would be a pretty perfect solution.
All best wishes,
Jerry
Hi Jerry,
Here are the answers,
The transistor can be replaced with any appropriately rated NPN transistor as per your preference, nothing is critical here except the V and the I specs.
A single 7805 would be enough for all the sensing stages, the ADC being a high impedance input, current consumption would be negligible and can be ignored.
However as you rightly mentioned the power ignition stage will need to be unique for each of the 24 cues (Total 24 nos of power transistors with 24 triggering inputs) A 7.2V supply using AAA cells can be tried for powering the entire system, in order to step up the voltage to 18V you can try using the first circuit concept shown in the following article: https://www.homemade-circuits.com/2012/10/1-watt-led-driver-using-joule-thief.html You may replace the 1.5V with your 7.2V source, and replace the LED with a bridge rectifier and an associated 2200uF/25V capacitor. make sure to connect a 4k7 load across this capacitor.
The transistor could be replaced with a BD139 You may have to tweak the coil turns on both sides a bit to determine the most suitable outcome. Let me know if you have more queries?
Best Regards.
Swag
Hi Swag,
I've been waiting for the components to arrive. I have built the circuit and am delighted to be able to confirm that it works. So once again, my thanks for all your invaluable help - I am most grateful.
When I had built the circuit, I tested it first with a direct 5V signal on the input and the ignitor immediately fired, which was great.
When connected to my Arduino however,I found that putting the digital pins into output mode also fired the ignitor instantly, which was not so great.
Although I thought that the digital output pins were internally pulled low, it seems not to be the case, but I am now setting their state to off before setting the pin mode to output, and that has addressed it quite nicely.
I was also surprised to discover that when the potentiometer reduces the resistance between the ignitor and pin 1 on the opto-coupler, the current through the 1k resistor, the ignitor and the potentiometer can still be low enough to allow for a firing current to go to ground at pin 2.
To my mind, even with the pot providing 0 ohms, that current should be less than 18/1002 or 0.017A. That shouldn't be enough to fire the ignitor, according to its data sheet.
However, with the pot adding about 5k ohms, the ignitor remains cold. No doubt this was why you used a potentiometer and not just a pair of fixed resistors.
So I will experiment next with a variety of ignitors from other suppliers and discover the potentiometer setting that will allow all to fire only when they should. I can then build a full sized unit with fixed resistors here.
So in summary, it all works just as I had hoped and I am extremely grateful that you spared me the time to provide your input. Please feel free to publish the circuit, and our dialog, along with my thanks and recognition of your skill.
With kindest regards,
Jerry
p.s. to answer your final question, yes, all 24 ADC inputs are unique and independent, just as are the 24 digital outputs. I am using the Mux Shield 2 to boost the basic capacity of the ATmega328P.
Suryakant says
Hi,
I am planning to make firing panel, something similar to what above is discussed on the post.
My requirement is to Fire Pyro with Raspberry or similar SBC + Touch Screen(HMI).
light weight OS and Application (GUI should have Count down display, continuity test, Voltage display(from TDK lambda power supply connected to Raspberry SBC over serial port RS232). and parallely we should have hardware push button to start countdown, reset countdown.
SBC should generate TTL pulse as well when actual firing happens, this TTL will be fed to Data acqusition system where we will record data from multiple sensors such as Strain gage, Thermocouple.
Can you suggest is Raspberry pi 4 is good SBC for above requirement? on which OS I should start developing GUI? is Windows IOT good OS for above requirement?
Swagatam says
Hi, sorry, I do not have proper expertise in the field of microcontrollers, so it will be difficult for me to solve your query