Picking up high voltage spikes for measuring RPM

Hi! I aim to measure an engine's RPM using an arduino board, but with a twist:
I want to measure it by probing the primary coil on the ignition transformer.
The problem is the transformer produces high voltage spikes (hundreds of volts) that can easily kill an arduino.
What's the best way to isolate the board from actual voltage and input only a digital high for a spike?
I've been looking around opto couplers and solid-state relays, but the ones I found seemed to be designed the other way around (taking a small voltage as input and switching higher voltages on the output, which is not what I need).

If by primary you mean the high voltage wires going to the spark plug:

Not a good idea! You could use an inductive pickup on the primary wire, but not a direct connection.

No, that's the secondary coil, that one spikes in the KV range. The primary is the one that's fed by a switched 12V, but induction works both ways, so a high voltage spike of some hundred volts is also present on the primary. Old analog tachometers used to measure there, so the transformer has a terminal for them to connect. I aim to use the existing terminal.
An inductive pickup could be adequate though, if all else fails :thinking:

Just wanted to be sure before I made a suggestion.
My recallection is the primary peaked between 300 and 500 volts. You don't want to squelch the spike as that would effect the secondary.

Pground = primary ground
Agrouond = arduino ground

  1. Series R (10k) and shunt C(0.001 or 0.01µF) to Pground.

  2. A 10 to 15V zener to Pground

  3. A 2N7000 with source to Pground, gate to the zener.

  4. in the drain of the 2N7000 an appropriate resistor and optio input LED to + 12V

  5. Opto output to Arduino and Aground.

All values are approximate.

Reason for the suggest input circuit:

  • You don't want to load the primary.
  • You do want to filter out any ringing that would give you a double pulse.
  • You don't want to connect the input of your Arduino to the ground at the primary.
    There is no absolute ground on a vehicle (automotive) OEM's spec the drop between the ECU and elsewhere on the vehicle as being up to 2.5Vdc. And there are several specifications for testing the high frequency on the vehicle "ground"
1 Like

So if I understand it correctly, it should be something like this, right?
(disregard the type of the transistor, the library didn't know the 2N7000)



Pin 1 of the CNY17 goes to the vehicle +12V.

The Primary signal goes through a resistor before C1 then though another resistor to the Cathode of D1.

The 1st RC is to filter out the "ringing" on the primary so only one pulse will be detected.
The next Resistor-Diode is to limit the voltage to the Gate of the FET (usually 20V max)

Note the 2N7000 is just a small Mosfet, you can use nearly any Nchannel MosFet.

1 Like

Aww I don't know how I connected that pin1 to the primary, it makes no sense at all :sweat_smile:
As for the rest, is the second try plausible?

I know its difficult for anyone to draw a schematic from a text description so..

Try this.


1 Like

Darn, 0 out of 2 guesses XD
I'm really sorry, I didn't want to be such a pain in the a** :sweat_smile:
You see I'm quite a beginner in this area (for now at least).
Anyway, thank you a lot for all the help!

Not a problem. As I said it is very difficult to draw a circuit from a text description. I only took me a few minutes to sketch that up.
I should have annotated the dwg.

To get you started:

Anyway (from the left) the first Resistor and Capacitor values:
R must be at least 5k (guess) so to not load the coil
R*C should be around 5 ms. (literally R in ohms times C in farads).