Author Topic: Contactless engine tachometer made by open-source project 003Clock (N76S003)  (Read 653 times)

0 Members and 1 Guest are viewing this topic.

Offline danchouzhouTopic starter

  • Contributor
  • Posts: 17
  • Country: tw
As previously mentioned, the 003Clock kit made with the Nuvoton 1T 8051 N76S003 is more than just a clock. All IO pins were exposed during design, allowing for various interesting applications!
OSHW clock kit with 22 cents Nuvoton enhanced 8051 microcontroller N76S003
This time, I’m sharing an application: a "contactless engine tachometer". The complete code will be provided in the full article on NuForum.

Engine RPM Signal

The fundamental principle of a tachometer is measuring the frequency between ignition events and converting it into engine speed using analog circuits, digital circuits, or programmable devices.

How is Ignition Related to Engine RPM?

Looking at Wikipedia, we can learn that modern four-stroke engines operate in a 720-degree cycle, divided into four strokes: intake, compression, power (combustion), and exhaust. The power stroke occurs when the spark ignites the compressed fuel-air mixture in the combustion chamber. This combustion raises the gas temperature, causing expansion, which generates power for the engine.
The spark plug is connected to the ignition coil. When receiving an ignition signal, the ignition coil outputs tens of kilovolts to let the spark plug sparks. Since ignition frequency and engine speed have a linear relationship, RPM can be determined through calculation. The most direct way to obtain the RPM signal is by tapping into the ignition signal from the high-voltage coil.

EMI from the Ignition Coil Can be Used as an RPM Signal

Generally, noise is an unwelcome interference to the circuits. However, in this case, the EM waves generated by the ignition coil are repurposed as an RPM signal.
The waveform shown below was pickup by a probe near the engine while running. The signal is remarkably clear, even though the probe was not directly connected to the vehicle’s circuitry. This means the signal can be detected wirelessly. The observed trigger frequency is 13.8 Hz, which corresponds to an idle speed of 1600 RPM for a motorcycle engine. Later, I'll explain how frequency is converted into RPM.

Through practical testing, a 200 mm wire acts as an antenna connected to the microcontroller’s IO, set to pull-up mode to prevent minor noise from causing false triggers. When placed near to the engine, the IO level fluctuates in sync with the ignition pulses. This allows RPM detection without additional circuits or sensors and the modifying the vehicle’s wiring is not required.

For more detail about technique & MCU coding, visit NuFourm to read my full-article. (COMPLETE CODE INCLUDED !!!)
https://forum.nuvoton.com/en/numicro-8051-mcu/general-discussion/14523


The video shows 003Clock has been flashing to the tachometer firmware and then approaching an 125 single cylinder motorcycle which idling at 1600 RPM.
« Last Edit: May 01, 2025, 09:34:56 am by danchouzhou »
If you are using Nuvoton chips, visit NuForum to get faster, more professional advice and technical support from their experts.
https://forum.nuvoton.com/
 
The following users thanked this post: BradC, PCB.Wiz


Share me

Digg  Facebook  SlashDot  Delicious  Technorati  Twitter  Google  Yahoo
Smf