HEI Ignition Coils

-

zsn0w

Well-Known Member
Joined
Sep 5, 2018
Messages
66
Reaction score
19
Location
Cincinnati, Ohio
Anyone got any good recommendations for e-core HEI ignition coils for an HEI ignition swap? I'm going to test some more tonight, but I think the one I got from the junkyard might be bad. An MSD Blaster SS is only $60, so I'm questioning whether it is worth "upgrading" rather than grabbing another one from the yard. I've never been big into MSD because I think a lot of it is overpriced, but I'd be happy to be proved wrong. Or, if there's something similar that is cheaper - as I assume there would be it just wouldn't be painted red - let me know. The specific thing I'm looking for here is quick saturation time and low price. From the numbers I'm getting, the stock coils are going to run out of time for optimal dwell by around 2000 rpm because they take so long to "fill up". The E-core flamethrowers from pertronix seem like they could be okay, but they don't seem to have a whole lot of information on their site, so it's hard to really tell or compare them.
 
I'm running an MSD Blaster SS with a HEI 7-pin module, controlled by the MegaSquirt3 ECU.
My dwell table ranges from 2.5ms to around 4.2ms.
Only reason I use the Blaster SS is because I could buy it used and cheap.

edit:
That's why I like used parts... At least they have proven themselves to work...!
New parts haven't :D
 
I'm running an MSD Blaster SS with a HEI 7-pin module, controlled by the MegaSquirt3 ECU.
My dwell table ranges from 2.5ms to around 4.2ms.
Only reason I use the Blaster SS is because I could buy it used and cheap.
I’m actually trying to make my own controller for an 8 pin HEI module, so thank you for the dwell range that is very helpful!
 
My engines stalls somewhere around 1.5ms dwell-time.
The coil however auto-ignites somewhere at 4.2-4.5ms, depending on voltage (amps) that get put through it.
MegaSquirt can also use Dwell Battery Compensation, meaning dwell-time will be limited or increased depending on ignition voltage.

I have the Dwell-specs @ voltage stored somewhere as to what these MSD Blaster SS coils.
 
Last edited:
You seem to have my interests.
I used ignition IGBT with added BJT and resistor, skipped HEI modules, did dwell and advance with uC. DIM Electronic Advance Ignition
Also did COP system COP Ignition Development, and EFI systems with ignitions.
KitCarlsonEMS
I am willing to help if you ever need it.
Wow, that's really cool. I have the basic programming written for the micro controller part of it. Just need to test it and then debug it. My plan was actually to try to do a coil on plug setup after I got this HEI system working, too. The real restriction seems to be dwell overlap at high RPMs when there's just one coil from all the math I've done on it. Just can't charge the coil enough fast enough when there's only 3 milliseconds to work with between dwell and advance.
But anyway, the main reason I wanted to include the HEI module was that I wasn't sure how the pulses from the reluctor would come in and how to translate that into the full pulses I need. I assume the HEI module is probably taking an analog pulse and sending a digital pulse that has the same length. Removing the HEI module from the equation is probably the next step after I get it working this way.
Right now I'm having trouble getting my car to start at all with just the uncontrolled HEI module... I've wired this thing up every way possible and it just doesn't want to go... Actually just came in from messing with it for almost 3 hours. Starting to wonder if I got a bad module. I tested it with another Mopar electronic distributor I had laying around and it was pulsing out the negative terminal, but no clue if that means it's actually passing enough voltage through to be effective or not.
And thank you for the offer, I will need help at some point with this, I'm sure.
 
I will try to help. I never try on car first. I make distributor simulator with a couple uC pins, or use drill to spin distributor, and use timing light, scope and other instruments to view and insure correctness.

The module should control dwell in an analog way. At higher RPM, spark duration is cut back, the inductance of coil stores left over energy, next charge takes less time. A coil with full charge can put out a spark for 2+ ms. At 0.25 ms spark duration, a spark 5x longer than MSD CDI, it is easy to recharge in alloted time.
 
About dwell overlap, I use separate process with another timer, predict dwell based on next RPM, calculation for each event. A bit like dual points, one process charges coil, another opens for ignition. Both timers share same clock. Interrupts are used, routines very short. Calculations done with integer math, outside of interrupt routines. A logic analyser is used to verify all timings, using i/o pins. I also employ watch dog coil power down for loss of distributor signal for > 0.3s.
 
Last edited:
I will try to help. I never try on car first. I make distributor simulator with a couple uC pins, or use drill to spin distributor, and use timing light, scope and other instruments to view and insure correctness.

The module should control dwell in an analog way. At higher RPM, spark duration is cut back, the inductance of coil stores left over energy, next charge takes less time. A coil with full charge can put out a spark for 2+ ms. At 0.25 ms spark duration, a spark 5x longer than MSD CDI, it is easy to recharge in alloted time.

What actually determines the spark duration then? I was under the impression that as soon as the negative is disconnected from the coil, the spark fires and it's duration was just a constant quality of whatever coil is being used.
 
Spark will continue, but as coil energy is depleted it goes out. At the start of ignition when IGBT turns off, the coil voltage increases 4-20kV, when ionization happens, voltage at plug is ~ 80V. That is why it last for a few ms. The first strike has most energy, does most good for ignition. Multi-spark is advantage, COP coils have low inductance, charge quickly. Getting rid of rotor gap, halves lost energy. That gives time saving too.

Turning IGBT "on", stops spark, and starts charging coil. The time it takes, is based on supply voltage, inductance, and current peak desired. Current limit circuits, and "on" time achieve desired current peak. 5A for TFI coil, is good starting point for peak current. Ballast resistors work too, but waste, without active dwell control. HEI coils have low primary resistance, without proper dwell, or current control, they can fail in a very short time. It is not coils fault, it is improper use. Put one on a mopar box without proper ballast, will likely fail coil and box.

I measure current by inserting a 0.1 Ohm or less resistance in ground circuit of IGBT, I = V/R. Use high voltage probe,1kV or more to view coil primary voltage with scope.

Learning how to control IGBT drive signal timing is the most important part in ignition system development work.

What uC are you using?
 
Last edited:
Spark will continue, but as coil energy is depleted it goes out. At the start of ignition when IGBT turns off, the coil voltage increases 4-20kV, when ionization happens, voltage at plug is ~ 80V. That is why it last for a few ms. The first strike has most energy, does most good for ignition. Multi-spark is advantage, COP coils have low inductance, charge quickly. Getting rid of rotor gap halves lost energy. That gives time saving too.

Turning IGBT "on", stops spark, and starts charging coil. The time it takes, is based on supply voltage, inductance, and current peak desired. Current limit circuits, and "on" time achieve desired current peak. 4A for TFI coil, is good starting point for peak current. Ballast resistors work too, but waste, without active dwell control. HEI coils have low primary resistance, without proper dwell, or current control, they can fail in a very short time. It is not coils fault, it is improper use. Put one on a mopar box without proper ballast, will likely fail coil and box.
I measure current by inserting a 0.1 Ohm or less resistance in ground circuit of IGBT, I = V/R. Use high voltage probe,1kV or more to view coil primary voltage with scope.
I think there is much on coil testing in the COP Development post. Learning how to control IGBT drive signal timing is the most important part in ignition system development work.

What uC are you using?
I'm using an arduino nano for my controller.

So you're just limiting the current that can go to the coil so it never gets oversaturated basically?
I'm going to need to read up on IGBTs so I can try to remove the HEI module from the system eventually.
 
The nano is good, I use that too. I program using CVAVR compiler. Much faster code execution than arduino IDE.

There is a schematic for coil drive circuit in this post.Ignition Coil Testing

The resistor in the emitter leg sets the current limit, as current increases, voltage increases, turning on small BJT that pinches off IGBT, holding current constant. The off, is more of a regulation, circuit still has ignition control.

There is a reason to extend dwell at lower RPM, if engine speed abruptly decreases, it is possible to fall short on coil charge. It has to do with the time between cylinder operations being long at low speeds, and the coil charge time very short .100 ms vs 3 ms as example. Cranking, letting clutch out at idle... so dwell is extended, current limit takes care of holding coil energy for when ignition needs to happen. Normally coil is charged just prior to using, at medium RPM, works well, at higher RPM, ignition duration is interrupted to increase available dwell if necessary. OBD2 compliance has schemes to monitor coil peak current, with corrective actions to insure correctness, avoiding missfires. I have that designed for next gen.
 
Last edited:
The nano is good, I use that too. I program using CVAVR compiler. Much faster code execution than arduino IDE.

There is a schematic for coil drive circuit in this post.Ignition Coil Testing

The resistor in the emitter leg sets the current limit, as current increases, voltage increases, turning on small BJT that pinches off IGBT, holding current constant. The off, is more of a regulation, circuit still has ignition control.

There is a reason to extend dwell at lower RPM, if engine speed abruptly decreases, it is possible to fall short on coil charge. It has to do with the time between cylinder operations being long at low speeds, and the coil charge time very short .100 ms vs 3 ms as example. Cranking, letting clutch out at idle... so dwell is extended, current limit takes care of holding coil energy for when ignition needs to happen. Normally coil is charged just prior to using, at medium RPM, works well, at higher RPM, ignition duration is interrupted to increase available dwell if necessary. OBD2 compliance has schemes to monitor coil peak current, with corrective actions to insure correctness, avoiding missfires. I have that designed for next gen.
Sorry for late reply, been a crazy week. I'll have to look into CVAVR. I get what you're saying about interrupting the firing time to keep dwell up now, I'll have to work that out in my program as I don't have anything in place to do that yet, but I think I know how I'll do it.
Did you include any rev limiter function? Was thinking about adding this and in theory it wouldn't be hard to just cut off ignition at a certain point, but I'm wondering what the ideal pattern to skip certain cylinders firing would be... I guess it would work like cylinder deactivation that chrysler uses in V8s now. Going to have to look into balanced firing patterns that skip cylinders..
 
Yes, rev limit is done. RPM is measured from time between cylinder events. On a V8 that is 90 deg of crank rotation. It "cuts" as necessary if above, "back in" below... user indicates with shift light.
With fuel injection fuel is cut. On ignition only, best retard timing so fuel is burned late. With programable advance, that is easily done in timing map. It is also possible to cut coil "on" as a top limit.
The rev limit operation very smooth, engine just stays there, won't go faster.
 
Last edited:
So you just retard the timing so much that it can't speed up past a certain rpm? That's really cool I would never have thought of doing it that way. So you don't even need to add more programming for that I guess you just extend the timing map to the rev limit. That's neat.
 
What actually determines the spark duration then? I was under the impression that as soon as the negative is disconnected from the coil, the spark fires and it's duration was just a constant quality of whatever coil is being used.
Kit knows this stuff much better than I do.
I'll just try to fill in the part I think he skipped, and he and others can correct as needed.
The voltage rise at the spark plug will depend on the local conditions. If conditions for conduction are poor, higher voltage is needed. My understanding is the spark duration and energy has coninues to have some relation to the combustion conditions around it as well as what is available from the coil after the spike.

Even with points, spark is goes out on its own.
upload_2019-8-22_12-41-58.png


My interpretation of the ringing is it represents left over energy which could have been used if needed to extend the spark. But that may not be correct.
 
The left over energy in coil is stored in current. Inductors store current, similar to capacitor storing voltage. Shown below is a picture of a COP coil making 3 sparks. The first takes about 1.6 ms to charge, discharge 0.25 ms, the following 2 charge 0.85 ms. Notice where the current starts for second and third charged. On the last spark notice the slow voltage decay for final discharge 2.0 ms, but trace cut short, saving pic. Upper trace coil current, peak about 9A, lower trace coil primary voltage, peak about 400V limited by IGBT protection, coil ratio of about 90, steps that up to plug.

.
MS2 (320x234).jpg

Test setup with uC showing values for multi-spark.
Multi-Strike.PNG
 
Last edited:
-
Back
Top