I have been messing around with my cars ignition. I know a lot about cars, but I haven't learned much about electronics. When I did study electoincs it was almost 20 years ago.

Anyways. The car's computer sends a 5 V square wave signal for the cars igniter to charge and fire a coil. There are 6 clylinders, and each one has it's own signal and coil.

I was finally able, and one of the first to do so, to use non-factory coils and not use the car's original igniter. My new coils have their own igniters. And they don't really care if it is a square wave or not. I just need to send at least a 4 V signal to the coil and it will charge up and fire when the signal is gone. Even a 12 V or higer is OK too. 5 V is standard for these coils and my cars computer already sends 5 V signals.

So what I want to do is take the signals from the computer which are about 3.2 ms with the car idling, and drops to about 2.3 ms when the RPM increases above about 1,500 RPM. All I want to do is take this signal and extend it about 1.7 ms. So at idle I would have a 4.9 ms pulse and as the RPM increases I would have a 4 ms pulse, or even just a flat 4-5 ms pulse all the time is OK.

To use these coils I needed to simulate a signal that the factory igniter box sends to the cars computer. I did this by using a tranistor array, that has 7 transistors. I only really needed 6. All 6 signals come from the cars computer to this transistor array (in parallel) and I have the signal wire that comes from the igniter box to the car's computer hooked up to the array also. the signal wire is a continous 5V signal from the cars computer going to the igniter box. When the igniter box thinks a coil fired it grounds the 5V wire from the compputer. So it dips this 5V signal to about .8V for about 1.5ms.

OK, so..in summary what I want to do is:

Take a 5V square wave signal that varies from about 3.3 ms to 2.2 ms, and extend the falling edge of it about 1.7 ms or, make each of these pulses a flat 4-5 ms pulse. The new pulses don't need to be perfectly square, as the new coils don't really care about that. the coils have 4 wires to them. A 12 V source, a trigger wire, and 2 ground wires. I know I can probbably do this with six 555 timers, but I really don't want six of those. A single or maybe 2 ICs would be OK, or maybe a capacitor connected to the 5V signal wire. I can also make the 5 V signal a 12 V signal, and use a capacitor, then the capacitor will charge up at the same time my coil is charging, once the signal from the computer stops the capacitor will discharge and keep the coils igniter triggered a little bit longer.

If I can add all of this together to create my fake signal to the computer and also extend the 5 V signal pulses it would be the perfect thing.

Does this sound OK? Or what is the simplest method?

If I could extend it by anticipating the rising edge it would be ideal. I don't see any easy solution to that. So once the ECU sends the signal, I want to make it longer. To make it easier the signal doesn't need to be square anymore. The triggers on the new coils are pretty sensitive. A 555 timer did great at test firing them.

I thought about the monostable circuit using some 555s. I think I have about 20 of them to play with. I guess I can set up 6 of them and see if I like it. I think I have only seen up to a dual monostable capable IC. I had thought of the Schmitt trigger also, and something with a capacitor and resistor.

I thought about adding a capacitor and it will give the square signal a longer duration, but not so square looking of a wave, then a Schmitt trigger can fix it to be square again.

I might have confused some people about what I already accomplished. I can use the factory ECU and non-factory coils without using the factory Igniter box. The factory igniter box steals about 0.7 ms of dwell. And, what happens is the factory igniter box cuts off the ground to the ignition coils. My car actually ran that way, but I don't want the factory igniter box to cut off the ground to the coils and the coils built in igniter doing the same thing.

The factory igniter box works like this. Lets consider only cylinder 1 for the example. The ECU sends a signal to the igniter, 3.3 ms at idle, 2.2 ms at higher RPM. The factory igniter sort of pauses and connects the ignition coils ground about .7ms later. As soon as the ECU stops sending the signal, the igniter immediately cuts off the ground to the coil causing it to fire.

The igniter senses current flowing from the ignition coil and passing throuh the igniter to ground. When current flows through the coil and out the igniter to ground, the igniter dips the Voltage of a totally different wire connected between the ECU and the igniter box. So, there are 7 wires directly connected from the ECU to the factory igniter box. 6 of them are the 5V square waves for firing the coils. The 7th wire is always a constant 5 V. It's called the Ignition Confirmation Signal, Toyota abberviates it IGF. When the igniter senses current passing through it, it grounds out the 7th wire. It only grounds it out for about 1.5 ms, this is no matter how long the dwell is.

If the ECU misses a few of these signals it shuts down the cars fuel system. It does it really fast too. So I am doing pretty good so far, the car ran really good today. I won't say how fast I took it today, but the Audi messing with me quickly disappeared in my rear view mirror. I can do all of this if I was one of the guys replacing the factory computer with an aftermarket computer, but good ones go for much more than a $1,000. My car is a 1994 Totota Supra, twin turbo, 6 speed. Right now it's only about 415 HP to the rear wheels, but its enough for me. I'm not seeking more. I just replaced my old bad coils, and new factory ones are about $100 each, no thanks. My new coils need a little bit more dwell. Most people on many kinds of cars say 5 ms is the ideal dwell, after 5 ms it doesn't charge up much more. So I'm shooting for that.


I have ordered some components to try two methods. I will try one with a monostable circuit, and I will try the hex Schmitt trigger with a diode, capacitor and resistor. Making it work both ways can help me learn something and accomplish want I wanted.

  • \$\begingroup\$ Oh... and I have taken the cars computer a part and found the 6 transisotrs that send thesignals. But I'd rather not mess with anything inside the computer, plus the transistors, capacitors and reisistors are really really small. So it wouldn't be easy to solder something inside. I thought about finding the controller chip to the igniter transistors and making ajustments to change the pulse with. But once again, I'd rather not mess with it. \$\endgroup\$ Apr 25, 2012 at 15:49
  • 2
    \$\begingroup\$ What you want is probably a "monostable multivibrator"... Have a look at ti.com or other vendors. You might not get 6 in one IC, but you can get either two circuits per IC or a single circuit in a very tiny IC. \$\endgroup\$
    – The Photon
    Apr 25, 2012 at 15:54
  • 6
    \$\begingroup\$ TL;DR -- could you simplify your question, and draw a diagram of the pulses? Or at least be clear whether they're active-low or active-high. It's hard to tell whether you want to make the pulse longer or insert a delay before the start of the pulse. \$\endgroup\$
    – Jason S
    Apr 25, 2012 at 16:23
  • \$\begingroup\$ The NE558 quad 555 would provide 4 pulse extenders per IC. They're around $1.65 apiece, cheaper in volume. \$\endgroup\$ Jul 29, 2013 at 4:06
  • 1
    \$\begingroup\$ @user46814: You're way off on both points. First of all, 4-stroke engines only fire on every other revolution of the crankshaft, so there's twice as much time available. Secondly, the width of the control pulse does not control the "duration" of the spark; the spark is generated on the falling edge of the control pulse. \$\endgroup\$
    – Dave Tweed
    Jul 5, 2014 at 11:19

4 Answers 4


You can use something like this for each channel.

D1 = BAT54

R1 and C1 so that you have the extra 1.7 ms (in the order of 1 uF and 2 kohm)

U1a = U1b = 1/6 of 40106


The output will be high as soon as the input is high, it will remain high while the input is high and, when the input goes low, the output will remain high for some extra time that is proportional to R*C. That extra time should be your 1.7 ms.

enter image description here

  • 3
    \$\begingroup\$ I don't get how the output goes high as soon as the input is high, assuming the capacitor is discharged at first, the voltage in the input of U1a will need some time to rise the HIGH threshold which is a minimum of 2 volts. What I am considering wrong? \$\endgroup\$ May 3, 2012 at 9:39
  • 7
    \$\begingroup\$ @abdullahkahraman Yes, that rise time is not zero, but it is much shorter than the fall time, because C1 gets charged through a low-impedance path (as D1), and gets discharged through a high-impedance path (as R1). It is easy to make the former smaller than 1% of the latter one. So, negligible rise time, in relative terms. \$\endgroup\$
    – Telaclavo
    May 3, 2012 at 9:44
  • 1
    \$\begingroup\$ When D1 turns on the forward current is only limited by the ESR in C1. What about adding a small resistor in series between D1 and C1 to limit this inrush current? I guess the diode would survive longer that way. \$\endgroup\$
    – boink
    May 2, 2018 at 16:55

Here's a quick solution using an HC132 which is one of those weird components to have around:

enter image description here

The HC132 is a Schmitt-trigger NAND gate. When the input goes low, the 1st HC132's output immediately goes high, which gets inverted by the 2nd HC132; when the output returns high, the 1st HC132's output takes a while to go high again because of the RC circuit, so the circuit extends an active low pulse.

To extend an active high pulse, move the 2nd HC132 to the input.

This won't work for short pulses (though you can put a diode in parallel with R1 to get around that)

  • \$\begingroup\$ The OP said to delay the falling edge. This thing delays the rising edge. So, in fact it shortens the pulses. \$\endgroup\$
    – Telaclavo
    Apr 25, 2012 at 16:24
  • 3
    \$\begingroup\$ Read my post again: the circuit I drew extends an active low pulse. To extend an active high pulse, move the 2nd HC132 to the input. If you like I can post that circuit too. I couldn't tell from the OP's post whether he wants an active low pulse or an active high pulse, so I responded with an answer that would let someone do both. \$\endgroup\$
    – Jason S
    Apr 25, 2012 at 16:29
  • \$\begingroup\$ Sorry, I didn't read all your text. The OP wrote "and extend the falling edge of it about 1.7ms". Anyway, you need a diode there. \$\endgroup\$
    – Telaclavo
    Apr 25, 2012 at 16:31
  • \$\begingroup\$ but he also says "When the igniter box thinks a coil fired it grounds the 5V wire from the compputer. So it dips this 5V signal to about .8V for about 1.5ms." which implies he's talking about an active low pulse that he wants extended. I can't figure out which, so he'll have to choose, and I gave him both choices. \$\endgroup\$
    – Jason S
    Apr 25, 2012 at 16:34
  • \$\begingroup\$ But you need a diode there. Without it: a) for short pulses it won't work, and b) for slightly longer than short pulses it won't add the correct amount of time, because the state of charge of the capacitor will depend on the pulse time, and you don't want that. You want the capacitor to start fully charged, at the beginning of the exponential, no matter what the pulse length has been. \$\endgroup\$
    – Telaclavo
    Apr 25, 2012 at 16:37

You need to characterize the output voltage vs dwell time or pulse width, but to answer your simple question, the solution is called a one shot, which can be implemented in dozens of ways and in 2 basic modes. retriggerable and non-retriggerable with edge trigger (See mono-stable multi-vibrator= one shot) try this. $0.63 http://www.nxp.com/documents/data_sheet/HEF4047B_CNV.pdf stock at D-Key

or get the dual version sorry no hex one shots

If you prefer discrete solutions with 2 Q, 4 R's and 2 C but more work, that is possible too. Another is a D Flip Flop which is clock edge sensitive for leading edge and RC delay to reset for your desired pulse width to the V/2 threshold

But I think the easiest solution is scope the ignition module and increase the differentiating Caps that create the one shot to desired width.. but I cant say your intent makes sense, but it should increase the arcing voltage.


The OP has a problem that has been ignored by him and consequently in the answers.

He writes "fire when the signal is gone" which means that the timing occurs on the falling edge. Where I think the OP is hoping to just increase the "charging" time of his new coils he will also delay the firing time. Either by a fixed amount of time or a variable amount of time that would cause very real ignition timing problems unless they were compensated for elsewhere.

This may be a misunderstanding but that seem unlikely in this case. However the original factory engine management system may be deliberately altering the "charging" period to change the spark energy but this is unlikely, more likely it starts the "charging" period based on some crankshaft angle reference and then fires the coil based on the ignition timing lookup table.

The various delay circuits proposed should work mostly as advertised but may cause unexplained ignition timing changes and variability due to engine RPM.

However as indicated on one comment at High RPM it seems that there will not be enough time to charge the coils this is not the case as a 4 stroke engine needs 2 revolutions per spark so will have twice as long and within the limits.

There may be a remedy and this is to extend the sparking period to say 3ms (or something between 2 and 5 ms I expect) and then switch to charging which may now be much longer at low RPM but close to the desired minimum at high RPM and then use the falling edge to create a spark pulse starting at the correct instant.

The only drawback here is that the charging period may be even longer than usual at low RPM and cause unnecessary heating of the coils but perhaps this is something that is acceptable. The given timing circuits (like @jasons explanation) could likely be adjusted to this kind of functionality but my fuzzy head is not up to the task just now.


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