Analog newbie here and first time on this forum... thank you for reading!

What I have is a control for pyrotechnics. I have all the digital control stuff figured out, but analog bits are not my forte.

Car battery supplies this rig, and output channels will be switched using SCRs, IGBTs, or just plain automotive relays. I want to limit current such that those components are not abused, and so that many channels can receive high current even if some have a resistance quite a bit higher than others.

Most circuits I see are around battery charging, or are much lower current. So this is the most simple thing I have come up with so far:

20A DC current limiter

Basically I am using the current gain of each part of my darlington pair to limit current into the load. I'd like feedback on this design or pointers to something more appropriate (which as I said has been difficult to locate given the idea that the load can be a short).

Minor issues include:

I believe I need a snubber diode (or caps?) around my load and diode near the switch somewhere.

  • 2
    \$\begingroup\$ I see I successfully recruited you =) \$\endgroup\$
    – NickHalden
    Jul 22, 2011 at 19:05
  • \$\begingroup\$ Is this firing the pyrotechnics? So you only need a very short pulse? Or does it need to stay on continuously? \$\endgroup\$
    – endolith
    Jul 23, 2011 at 0:34
  • 1
    \$\begingroup\$ @endolith yes, it should be a short pulse. But the system will also accomodate remote "manual" single channel operation, and sometimes operator will hold the firing button down for up to 10 seconds when nothing is happening, hoping it will light. In this case, if we have a shorted ignition circuit, I need to limit current (but hopefully in foldback fashion, because if the short is simply badly dipped high current ignitor, we want to go ahead and heat it up (a second or two) and hopefully get it started. \$\endgroup\$ Jul 23, 2011 at 19:21
  • \$\begingroup\$ Please note that gain (in your base resistor selection) is not constant, especially in your case. So your basic approach needs rethinking. \$\endgroup\$ Feb 2, 2019 at 18:27

6 Answers 6


A problem with current limiting using a linear driver, such as this, is that the driver will dissipate energy proportional to the voltage dropped across it. If the load drops most of the voltage then the driver may be able to be built to survive. But if the load drops only a few volts at 20 Amps then the driver will dissipate a large amount of energy.

At 20 Amps and 12 volts the circuit will dissipate Power = V x I = 12 x 20 = 240 Watts. That's a substantial amount.

If you load drops 10 V at 20 A the driver must drop the remaining 2 Volts. So load dissipation is 10V x 20 A = 200 Watts and driver dissipation is 2V x 20A = 40 Watts. 40 Watts into a Darlington need s rather substantial heatsink to not get too too hot. If you shut it down quickly , and if only one or two of these is in this mode then you may be able to "get away with it". But if a number of loads remain at limit current for a while "there will be problems".

One solution is to have a controller that turns off completely when I exceeds 10 Amps, waits a while and tries again. The trouble with this is that up to 20A all is well but if the load tries to take more than 20 A it is limited to bursts of 20A = much less than 20A average.

One solution is to "PWM" the switch when it is in current limiting - the switch is on or off only - and adjust the o/off ratio so the average = 20A. The circuit to do this can be cheaper and simpler than it may sound. An opamp or to per circuit and a few passive components. Or a CMOS Schmitt gate package and some playing.

The :best" way is to use a switch mode driver that limits at 20 A and shuts down the available energy only if needed. These also can be simple 92 transistors in minimalist form) but needs an annoying inductor per circuit.

As shown the result will be VERY inexact because the current gain of the Darlington transistor pair will be very imprecise. Unless you select on test (e.g. adjust base resistor with a potentiometer) it will be very inaccurate and still not good long term even then. I can give you cheap circuits for a current limiting driver. but first lets see where the question goes.

Yes, you need a diode across the load if it is inductive, polarity such that it doesn't usually conduct.

Dissipation in controller , and why:

Current flow from 12V through load and controller to ground is

  • I = V/R.

R is sum of all resistors in a given series path.

For 20A at 12V

  • R = V/I = 12/20 = 0.6 ohms.

If you current limit to 20A you are making an electronically variable R that automatically adjusts total R in the circuit to 0.6 ohms IF the load is less than 0.6.

If the load is MORE than 0.6 ohms the controller stays hard on as the current is less than 20A.

In your example with a 0.1R igniter the controller must add 0.6-0.1 = 0.5 ohms.

  • Power in igniter = I^2 x R = 20^2 x 0.1 = 40 Watts.

  • Power dissipated in controller = 20^2 x .5 = 200 Watts.

Controller 'gets hot" :-).

PWM current limiting:

PWM = pulse width modulation turns the load fully on fos say X% if the time and off for 100-X % of the time

If you turn the load fully on and then fully off with a 1:5 duty cycle the average current will be 20 A.

I on = 12/0.1 = 120 A !

I off = 0

(1 x 120 A + 5 x 0 A ) / 6 = 20 Average

The battery has to be able to deliver the 120A peaks.

Adding an inductor in series with the load, and a "catch diode" turns the circuit into a "buck converter" eg like this

Basic buck converter

If the switch is on an Nth of the time the voltage out will be 1/Nth of Vin.

The normal approach is to monitor Iout and adjust the on period to limit maximum current as desired.

Here's an example that does just that.

This is not quite what you want but shows the principle. This is a relay driver circuit supplied by Richard Prosser commented by me. Substituting an appropriate inductor for L1 and placing the load just below L1 provides a current limited supply. This is getting a bit "busy" for what you want.

Use of a protected current limiting MOSFET

Use of a current protected MOSFET has been suggested such as the ON Semiconductor NCV8401 protected low side driver with current and temperature limit

The NCV8401's forte is to shut down if a high fault current is maintained and to limit the maximum current which can flow when a fault develops. Devices like this do this well, but they are not intended to allow the limiting current to be maintained for long periods. I have trialled connecting device like this directly across a car battery and turning them on. No problem - they just go into limiting and will restore to normal operation when the overload condition is removed.

These are marvellous devices, and extremely useful in their place, but they will not meet the originally stated aim of maintaining a steady 20 Amp current into the load under e.g. fault conditions EXCEPT if you heat sink them to take the full fault current - which requires a power dissipation of up to 12V x 20A = 240 Watt in the driver, worst case. The NCV8401 has a junction to case thermal resistance of 1.6 C/Watt and a maximum junction temperature of 150 C. Even on a perfect heatsink (0 C/W) at 25C ambient that would allow you a maximum of (150-25)/1.6 = 78 Watts. In practice about 40 Watts would be very very good going even with an extremely capable heatsinking system.

If the specification has been change that's fine, but if you want to source a limited 20A continuously (until stopped or it blows) then there are only two ways. Either

  • (1) Accept the total dissipation of 12V x 20A = 240W with the driver dissipating what the load doesn't take or

  • (2) Use switch- mode energy conversion so that the driver provides 20A at whatever voltage is required to the load. The driver deals only with energy from inefficient conversion. For example, if the load is 0.2 Ohms, then at 20A, Vload = I x R = 20A x 0.2 = 4 Volt. Load power is either I^2 x R = 400 x 0.2 = 80 Watt, OR = V x I = 4V x 20 A = 80 Watt (again, of course).

In this case, if the 4V is sourced by a switch mode converter which is z% efficient (0 <= Z <= 100). In the above example where Pload = 80 Watt then, if the converter is say Z = 70 (%) then the switch mode converter dissipates only (100-Z)/100 x P load = 0.3 x 80W = 24 Watts. This is still substantial but far less than the 240-80 = 160 Watts which would be dissipated with a linear limiter. So ...

Switching regulator current limiter

This is intended as another example than as a final solution. It could be pressed into service but doing a ground up design based on this principal would be better.

A circuit which will do almost exactly what you want can be built using e.g. an MC34063 in the circuit of fig 11a or 11b here MC34063 datasheet

It would probably be as easy to use a package of comparators (e.g. LM393, LM339 etc.) to implement something similar as you can do true load current sensing rather than the cycle by cycle sensing done here, but this will work.

The referenced MC34063 circuits could be modified to use an N Channel or P Channel external MOSFET if desired (which is what I would probably use). FETs do indeed have a habit of failing short circuit. Designing to have them seldom if ever fail makes this less problematic :-).

Here the output voltage can be set to "high" as what we are after is the energy conversion and the current limiting. e.g. if the load is 0.4R and the notional target voltage is 12V, then the current limiter will limit what really happens. In place of or as well as the cycle by cycle limiter you could add a low side load current sense and use that to limit drive voltage so that the target load current is provided.

Stepped resistor linear limiter

The easiest method may be to provide a bank of switched resistors which can be binary switched to limit load current to 20A. A counter counts the resistor value up if the current is too high and down if too low. Power dissipation is 240W at 20A always when load is less than 0.6R BUT the resistors do the work and bipolar transistors or FETs used as load switches can run coolish. Not too hard to do but an "annoyingly crude" approach :-).

  • \$\begingroup\$ I do not need the current limit to be exact... +/- 20% should be sufficient. \$\endgroup\$ Jul 22, 2011 at 20:41
  • \$\begingroup\$ Why does this thing insist on "saving" my comment every time I hit <ENTER>? \$\endgroup\$ Jul 22, 2011 at 20:42
  • \$\begingroup\$ Anyhow Russell, I do not quite understand. Lets step back a ways, and only have the battery and the load in circuit. Lets say that RLoad = 0.1 ohms. If I just put that across a 12V battery, i'd get 120A and 1440 watts... load would not last very long. But now say that it is 1000 ohms... 12 / 1000 = 12mA, but there MUST be 12V drop across the resistor if that is the only thing in the circuit. \$\endgroup\$ Jul 22, 2011 at 20:57
  • \$\begingroup\$ Now lets add that 1k resistor back into my circuit... turn it on, and still 12mA current through the resistor, but you say that my transistors are going to "drop the rest of the 12V" and burn up what... up to the maximum current my battery can source, based on its ESR? Granted, I am probably missing a very simple concept here. This forum sure is grumpy isn't it, dont understand how they expect you to clarify an answer in so few characters. \$\endgroup\$ Jul 22, 2011 at 20:57
  • 1
    \$\begingroup\$ More later. Current flow from 12V to ground is I = V/R. R is sum of all resistors in a given series path. For 20A at 12V R = V/I = 12/20 = 0.6 ohms. If you current limit to 20A you are making an electronically variable R that is automatically adjusts total R in the circuit to 0.6 ohms IF the load is less than 0.6. If the load is MORE than 0.6 ohms the controller stays hard on as the current is less than 20A. In your example with a 0.1R igniter the controller must add 0.6-0.1 = 0.5 ohms. Power in igniter = 40 Watts. Power dissipated in controller = 200 Watts. Controller 'gets hot" :-). \$\endgroup\$
    – Russell McMahon
    Jul 23, 2011 at 1:04

I would suggest to use MOSFETs instead of the darlington transistor. The darlington may have a few volts over it, and at 20A would dissipate as much as 40W. We don't want that. There are MOSFETs having very low \$R_{DS(ON)}\$, which will only dissipate a fraction of that.

You don't want a current limiter in case of short-circuit, but a power shut-off. In case of a short-circuit the battery's 12V(?) will be over the switching MOSFETs and even with a 20A current limiter they will have to deal with 240W(!). There are tricks for foldback current limiters, which reduce the current to a safer level after a short-circuit, but my idea is that it's best to cut off completely.

Principle: measure the voltage over the MOSFETs. If it rises above a certain treshold like 1V reset a set-reset flipflop, whose output drives the MOSFETs. When the short-circuit is removed the MOSFETs remain off, and the set-reset flipflop has to be set again to restart the supply.

  • \$\begingroup\$ Thank you sir... because this is a pyro controller, yes, i really do want to dump current into the short. I wanted to design all the components for 20A, but probably set my actual limit at 10A. I had considered MOSFETs before, but had stayed away because of their reputation to fail closed, and be somewhat fragile compared to BJTs. \$\endgroup\$ Jul 23, 2011 at 18:57

Having built pyro controllers before and done various industrial safety implementations on CNC equipment etc, you should never, ever allow safety control through the logic circuit.

At a minimum you should use a physical switch in the DC line to the pyro firing devices as part of the arming key. Have you considered what will happen if say, a FET goes short circuit ... they do ... the firing circuit will be live, guy goes to change the pyro for the next one and blows his hand off.

All safety circuits on machinery go through approved safety relays, physical relays that can cut the drive to motors etc, they never rely on just killing the signal to the drive motor ... they probably kill that signal as well, but there is always a physical relay as well. You should 100% include a way to disconnect the 12V from the FETs as part of your safety circuit.

You should also limit the on time, the ones I built included a continuity check of a couple of ma to indicate if there was a good circuit on the channel prior to firing, and of course to show continuity after firing of the device failed to ignite ...


My own answer: This circuit is promising in my breadboard tests. I plan to replace the LED output with some other circuitry to pull down the gate of a power MOSFET.


I still have to work out how to coexist that shutoff with my existing control scheme, but it is straightforward.

SECOND answer, which is probably what I will implement:

I was going to do this with automotive relays originally for reliability and robustness. Later I went down this solid state path because the physical size of the relays and their harnesses and socketing was getting a little irritating, and I had discovered cheap IGBTs and/or SCRs to control the channels, and just wanted to do this current limiting scheme in front of them, current limiting a set of 4 channels to 20A total.

Drivel aside I believe will be using one of these wonderful devices per channel: ON Semiconductor NCV8401 self protecting power MOSFET. They are intended as automotive relay replacements, and much to my amazement, are only $0.80 each. I am sure that Motorola (ON) did better than i ever will with their internal current and thermal limiting. I will have heat issues to deal with and probably have to solder on big pieces of copper wire to my PCB to handle the current, but since this is short duty cycle stuff, I think I can get it done without setting anything on fire.

Thank you gents for your help

  • \$\begingroup\$ The self protecting devices are marvellous BUT they will not do what you say you want. See modified answer. \$\endgroup\$
    – Russell McMahon
    Jul 24, 2011 at 0:39

Here's how I'd do this. Circuit allows for large initial current (limited by C1 ESR, and source-drain resistance of U2), but keeps current from the battery at under 20A at all times (assuming 15V per your diagram). This should give good quick ignition capability while handling the "poorly dipped ignitor" case well.

Edit - on further thought, there are a couple of safety issues with this schematic. I will revise this answer soon with an update which addresses these issues.

enter image description here


Lightbulb. A 240W incandescent light bulb in series with the load will limit the worst case current to 20A while serving as a simple conductor. Bonus operator feedback and emergency disconnect. Brightness proportional to current flowing at any given time. Smash the bulb envelope and the filament will quickly burn up breaking the circuit.


Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge that you have read and understand our privacy policy and code of conduct.

Not the answer you're looking for? Browse other questions tagged or ask your own question.