0
\$\begingroup\$

Background:

I'm working on a project that needs to accurately and quickly measure the rotational speed of the engine in my car. It is a MK3 Ford Focus, and each spark plug has a coil-on-plug that has three wires going to it from the ECU. They are signal, +12v, and ground. When the ECU wants to fire one of the plugs, it sends a +12v pulse on the signal line. The frequency of the pulse is going to be something between 0 and 100hz (ish).

Question:

What is a circuit that I can use to:

1) clean up the noise on the pulse, as it is pretty noisy.

2) Drop it to something that a) won't kill and b) can be detected by an AVR/Arduino/etc.

Is there any relatively simple way to do this?

\$\endgroup\$
6
  • \$\begingroup\$ Look up the Megasquirt project before you duplicate too much effort - they also publish schematics for doing exactly what you need. Also, for general automotive stuff, this may give some useful info on the automotive environment: electronics.stackexchange.com/questions/73857/… \$\endgroup\$
    – John U
    Commented Jul 11, 2013 at 8:58
  • \$\begingroup\$ While it's an interesting project, nowhere does it have what I need. I'm trying to read RPM via the spark lines, not the RPM sensor. Looks like MegaSquirt has no support for electronic ignition (spark), only EFI(gas). \$\endgroup\$ Commented Jul 11, 2013 at 20:47
  • \$\begingroup\$ You didn't read very far then. The MS-Extra firmware supports many ignition systems. I would say that reading RPM from the coil is not an optimal way of doing it - they're electrically noisy and only fire once per cycle. Reading the RPM sensor, or even the alternator's W terminal as many diesel cars RPM gauges do, will give you a better result (more pulses per rev = better resolution). \$\endgroup\$
    – John U
    Commented Jul 12, 2013 at 8:15
  • \$\begingroup\$ You are looking for the PIP/SPOUT signal and it should be a square-wave. \$\endgroup\$
    – Jon
    Commented Feb 23, 2015 at 21:01
  • \$\begingroup\$ @MatthewKennedy, SPOUT(s) may be adjusted digitally by the ECM correcting for engine load, dwell, etc. The PIP is a single, rather-clean, square-wave signal coming from the distributor/PIP/camshaft position sensor. \$\endgroup\$
    – Jon
    Commented Feb 23, 2015 at 21:44

1 Answer 1

2
\$\begingroup\$

This is galvanically isolated and will mimic the 12V signal at any* Vin.

schematic

simulate this circuit – Schematic created using CircuitLab

The camshaft position sensor (using any technology) outputs a pulse at EVERY firing.
CurrentWidthBetweenPulses = 1.0 / (RPM * NumberOfCylinders / 60.0)
RPM = ((1.0 / CurrentWidthBetweenPulses) * 60.0 / NumberOfCylinders)
RPM = ((1.0 / 0.015ms) * 60 / 8) = 500RPM
RPM = ((1.0 / 0.010ms) * 60 / 8) = 750RPM

\$\endgroup\$

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