Tachometer from a car ignition coil


I am planning to make a tachometer for my classic car with no ECU from where I could get a signal. I am going to use the pulses coming from the primary side of the ignition coil. I was planning to use an optocoupler in a simple way (see schematics below), but I came across other schematics using another optocoupler, diode and adding a capacitor.

If there is something I don't quite understand in electronics, it is definitely inductors. So, I think the variants I found on this forum will work better than what I was planning to use but which one would work better, I don't know.

For the optocoupleurs chosen, I think the H11L1M is better, thanks to its Schmitt trigger, but I did not find any explanation for the choice of this precise one.

Here is the schematics I've made and the ones I've found:

And here is what the signal from the coil primary looks like (I don't have access to an oscilloscope unfortunately but it should look like this):

Can you help me choose the most suitable circuit?

There was recently another topic on this forum regarding adding a tach to a motorcycle. The guy was finding a lot of variability in signal vs. noise depending on where he put his probe. See:


The pulse source may have a direct bearing on what kind of front end to use for your tach. Is the coil being supplied by breaker points?

From what I see his engine is a lot more modern than my car engine and have a pickup on the crankshaft. Also the noise on his probe seems to be RF noise catch by the coil.

Here is the global view of my car's ignition system:

The car doesn't have fancy electronics. Besides the diodes in the alternator regulator, it has 2 diodes in the dash and one capacitor in the ignition system, the rest is just switches, light bulbs and resistor for the heater fan speed!

Yes, coil noise is not unexpected. For that reason I'd suggest you might want to take your signal from the points. But IIRC the points are inside the distributor, so that may not get you very far from the HV wire. It is too bad you don't have an oscilloscope, since that would be of of some help in a project like this.

Also, there are (or were) some timing lights which used an inductive pickup clamped over the HV lead to one of the spark plugs. That would be an alternative approach. You can buy clamp-on current sensors which might work for this purpose. Or maybe even just a couple of turns of wire around one of the plug wires. Your job would be to figure out how to condition this signal.

What immediately stands out about your opto circuits is that you are violating the first rule of using optio ISOLATIORS :
RULE-1: NEVER CONNECT YOUR INPUT GND TO YOUR OUTPUT GND ! (it completely eliminates the isolation)
I would first try using an option that keeps your arduino circuit GND ISOLATED from your CHASSIS GND.
If , for example you used something like this, to power the arduino from the output side using the 12V car bat for the input side, then a continuity check from arduino GND to chassis GND should read OPEN. (obviously a battery
powered arduino circuit would meet the isolation requirements but the inconvenience would probably rule out
that option).
You could probably do much better looking through this Google search:
Google Search : "12V dc isolator circuit
"12v DC ISOLATION CIRCUIT - Google Search"

On a completely different note , there is much to be said for using a toroid CT (Current (sense) Transformer) because it is much more immune to automotive noise.
Above is one example but obviously, if you take the time to browse through this google search you may find a better choice.
In all honesty, it is possible the debate over "opto-isolators vs CT" could go on for sometime as there are many
supporters of both schools. I have used both and found a CT to be very easy to interface. If this were an engineering design review, the senior engineer would probably assign one engineer to try one approach and another to try the other approach and then have a "circuit shootout" between the two based on cost, labor ,
performance, and parts availability.
"Choose wisely, Grasshopper...."

For the moment lets separate the isolation from the pulse detection. Assuming you wish to use voltage at the points (vs current) the key is to heavily filter the voltage at the points.

You want a filter that will output ~12 volts and be slow enough so the 400V spike is ignored (easy) and the dip at ~2ms doesn't get counted in the rpm measurement.

In your circuits I would be concerned you are putting too much load on the coil primary. I don't have a good feel for what is too much but I know less is better.

I would try something like this, where the photo diode is the input to any opto you wish to use.

Thanks for your replies!

@srturner and @raschemmel, I could use a coil or something to sense the current, but it looks more temporary. It's a good way to plug an oscilloscope to check misfiring or control a timing lamp because it's fast and easy, but doesn't look like something made to last. As @raschemmel you said, there's an endless debate on what's the best approach, but I think both are equivalent.

@JohnRob, I think I'll use a circuit similar to the one you proposed. From what I have read and some other treads on this forum, it seems to be the best choice. From what I see there : https://forum.arduino.cc/index.php?topic=618864.msg4686079#msg4686079 even without capacitor the output signal looks good and not too noisy.

On my old rally cars (1980s) we used to use an electronic ignition system.

The simplest goes between the distributor and coil and isolates the points voltage from the coil voltage.

That would greatly simplify the implementation of a rev counter.

FYI, the R5/C1 RC LPF time constant is 5mS.

5 milli siemens?

5ms perhaps, but not 5 mS

You could try without the capacitor but I've never seen any signal on a automobile that was what I would consider "clean"

On my old rally cars (1980s) we used to use an electronic ignition system.

The simplest goes between the distributor and coil and isolates the points voltage from the coil voltage.

That would greatly simplify the implementation of a rev counter.

I want my system to be pluggable without modifying anything, so the car stay as stuck as much as possible. But for sure it would be easier that way.

FYI, the R5/C1 RC LPF time constant is 5mS.

Forgot about the existence of the RC time constant... :cold_sweat: That's how you choose the capacitor value.

From the thread I linked in my previous post (https://forum.arduino.cc/index.php?topic=618864.msg4686079#msg4686079), using a similar circuit, they obtained a clean enough signal to work with without using a capacitor. So as @JohnRob suggested, I think it could work without one.

I thought the 's' for seconds was supposed to be capitalized. Took me long enough to learn that was wrong. (some dirty socks don't stick when you
throw them on the wall.)
I could have lied and said it was a typo but that would be dishonest.

This topic was automatically closed 120 days after the last reply. New replies are no longer allowed.