Don’t Have a Tachometer? Use an Arduino to Display Your Engine’s RPM

If you care about how fast your engine is spinning, you can build your own tachometer using an Arduino.

It’s important to know your engine RPM (Rotations Per Minute) if you drive a car with a manual transmission, but most people who drive automatic cars don’t need to know what it is and don’t care to. As a natural response, automakers have omitted tachometers in many car models over the years. But if you do care about how fast your engine is spinning, you can build your own tachometer. TinkeringEngineer has a tutorial that will walk you through how to do that using an Arduino.

Even if your car doesn’t have a visible tachometer in your gauge cluster, there is almost certainly some way to determine your engine speed via the existing electrical system. Newer cars will likely have that information available on the CAN (Common Area Network) bus that carries messages about all of the electronic data, while older cars may have it accessible in another way. In the case of TinkeringEngineer’s 2000 Acura Integra LS, there is an unused voltage output coming from the engine that is normally 12V, but drops to 0V the moment a full revolution is made—likely when it’s at TDC (Top Dead Center).

To read that, you just need to connect that wire to an Arduino board. A voltage regulator or divider will be needed, as 12V is not safe for your Arduino. Then it’s just a matter of determining how much time has passed between moments when the voltage is 0, indicating a revolution. There are a variety of functions and simple algorithms to do that, but TinkeringEngineer is using the built-in PulseIn function, along with a low-pass filter to clean up the signal from the jitter produced by the distributor. Once you know the time between revolutions, it’s easy to calculate the engine’s RPM. You can then display that information however you like, such as on an LCD display or with LEDs that tell you when to shift.