Engine RPM (Part 1)

Part 1, 2, 3, 4, 5

The measurement of an internal combustion engine speed is expressed in  Rounds Per Minute, so as to say, the number of revolutions of the crankshaft per minute. The RPM can be used for various applications such as with checking/calibrating the RPM dial (if any installed), adding a warning light for preventing engine overrun in race cars, etc.

Most modern internal combustion engine are fitted with sensors from which the RPM is derived. These sensors are mostly magnetic. They are attached to the engine block and they are facing a gear wheel which is mounted on the crankshaft. Below is an illustration of a typical sensor layout where you can see the bright sensing tip at the end of a black plastic cylinder which is attached to the engine block. The signal is sent to the harness and to the ECU through the electric cable.


For each tooth traveling in front of the sensor corresponds a signal. This signal is filtered, shaped and counted by the car Engine Control Unit (ECU). The ECU contains quite sophisticated electronics and a micro-controller which is responsible for the management of the engine. The ECU collects all sorts of information from various sensors such as: engine temperature, ambient air temperature, air flow, amount of oxygen ions in the exhaust (Lambda, or O2 sensor), throttle position, engine RPM, etc. Then the ECU relates these values to built in tables which help defining the optimal timing for the injectors.

RPM sensors are mostly magnetic, but they can be of two types: coils or Hall effect sensors. Coil sensors provide sinusoidal signals (one cycle for each counted tooth) ranging from approx. – 9 to +9V (the peak to peak value depends upon engine speed and the load; the lower the resistance, the lower the peak to peak value), while Hall effect sensors provide a pulsed, shaped signal ranging from 0V to approximately 14V (Sometimes limited to +5V, depending upon the type of car).


Note: Almost all gear wheels miss a tooth. This gap is interpreted as a missing pulse which tells the ECU about the absolute position of the crankshaft. Although other sensors like the  valve position sensors in SOHC/DOHC engines are the primary source for this type of information, the crankshaft sensor may be used for confirmation or as a substitute sensor in case the primary sensor fails. This situation will cause the engine warning light to turn on on the dashboard and switch the ECU to degraded mode of operation. This will give you a chance to get to the next garage at limited speed in order to prevent damage to the engine.

The idea is to pickup the signal from the sensor, without disturbing the ECU. So that a high impedance circuit shall be used for interfacing sensors to Arduino as per the proposed schematics below:


Protection diodes prevent over-voltage and reverse currents from destroying the Arduino board. Only positive signal will pass through the R9, D1, D3 barrier. D2 is responsible for strictly limiting the input voltage to 5V. The signal is then compared to a fixed voltage which is set to approx. 1V by a divider bridge. R11 is biasing the input of the comparator in order t prevent a floating state while no positive signal is generated by the sensor. The output from the comparator is connected to a digital input of Arduino (internally biased to +5V by a 20K built in resistor). The management of this signal shall be covered in a later post.

A parallel connexion must be done in order to pick up the signal from the sensor. Check the Service Manual for exact wiring. Best is to build a universal interface board such as this one:


and to insert it in between the sensor connector and the harness connector as shown below


Male and female pin are standard 1.8mm automotive Faston connectors. Care shall be taken to avoid short circuits between the three leads.

Next post on same subject


  1. newspower says:

    Good day
    the correct position D1 and D3?
    Nowhere in the EngineRPM.jpg not issue R8
    When manufactured circuit shorten
    Which direction should be correct diode?
    well thank you

    • Didier says:

      D1 and D3 are in the correct position.
      I cannot see the R8 you are talking about.
      Would you be more explicit if you need efficient assistance.
      If you do not feel confortable with such simple electronics, I suggest that you ask for help from a senior engineer.

  2. newspower says:

    thank you for your response
    Enlist the help of senior engineer

  3. roland_4s says:

    Hello Didier,

    in the text you are refering to R8 , which cannot be find on the wiring drawing.
    I like your solution of your electronic layout to protect the arduino board. Did you ever tried to place an optocoupler to protect the Arduino.

    Thanks Roland

    • Didier says:

      Hi Roland,
      Thanks for your comments. My typo is corrected. As in many posts here, the idea is to address technical problems in a simple way. A pro grade product would definitely feature opto-couplers. Keep in mind that connecting an opto-coupler in a straight manner would draw a significant current which may affect the car ECU (engine computer is you like).
      Best regards

Leave a Reply

You must be logged in to post a comment.