Home » Electronic Speed Controller » Electronic Engine Speed Governor Circuit
Electronic Engine Speed Governor Circuit

Electronic Engine Speed Governor Circuit

The post discusses an electronic engine speed governor or controller circuit using an RPM feedback signal loop through a hall effect sensor network. The idea was requested by Mr. Imsa Naga.

Circuit Objectives and Requirements

  1. Thank you very much for your time. I believe this circuit would be suitable for a single phase supply. My alternator is 3 phase 7KvA and I would like to couple it with a diesel vehicle engine having an accelerator in lieu of a speed governor.
  2. What I would like to implement is - An "ELECTRONIC ENGINE SPEED GOVERNOR" which would probably have an electronic servo controlled mechanism such as- A Speed Sensor circuit(Engine RPM sensor) to drive a servo motor to actuate the accelerator mechanism in order to maintain a constant speed of the engine with respect to the load applied to the alternator.
  3. This would help in retaining the frequency as well as the voltage of the generator. I would be able to take care of the mechanical aspect, if you kindly design a circuit to control the Servo motor in such a way that it can be turned to either direction with respect to the change in the engine RPM. Thank you very much in Anticipation.

Circuit Diagram

Electronic Engine Speed Governor Circuit

The Design

The circuit of a diesel engine speed governor or controller can be seen in the above figure using a feedback RPM processor or a tachometer circuit

The left side IC1 555 stage forms a simple tachometer circuit which is configured with a Hall effect sensor attached with the engine's load wheel for sensing its RPM rate.

The RPM is converted into a proportionately varying pulse rate or frequency and is applied at the base of a BJT for toggling the pin#2 of the IC1.

Circuit Operation

IC1 is basically rigged in the monostable mode which causes its output to generate a proportionately adjusting ON/OFF switching, whose period is set using the shown 1M pot.

The output from IC1 which carries the the RPM content in the form extended timed pulses is adequately smoothed by an integrator stage consisting of a couple of RC components using resistor 1K, 10K and 22uF. 2.2uF capacitors.

This stage converts the monostable's rough RPM data into a reasonably smoothly varying or exponentially varying voltage.

This exponentially varying voltage can be seen connected with pin#5 of the next IC2 555 stage configured as an astable circuit.

The function of this astable is to generate a very narrow or low PWM output at its pin#3 in its normal operating conditions.

Here normal operating condition refers to the situation when the sensed RPM is within the specified limit and pin#5 of IC2 is not getting any voltage input from the emitter follower. This low PWM output can be implemented by suitably adjusting the two 100k resistors and the 1uF capacitor associated with IC2 pin#6/2 and pin#7.

This low PWM from pin#3 of IC2 is unable to switch the TIP122 sufficiently hard and therefore the indicated motor wheel assembly is unable to get the required momentum and therefore stays deactivated.

However as the RPM begins rising the tachometer begins producing an exponentially higher voltages which in turn causes a proportionately increasing voltage at pin#5 of IC2.
This subsequently allows the TIP122 to conduct harder, and the connected motor to gain sufficient torque, so that it begins pressing the attached accelerator pedal towards decelerating mode.

This procedure forces the diesel engine to reduce its speed, which correspondingly causes the tachometer and the PWM stages to restore to their original conditions, and enforcing the required controlled speed for the diesel motor.

Instead of the shown accelerator motor arrangement, the collector of TIP122 could be alternatively wired with the CDI unit of the diesel engine for an identical speed reduction, for facilitating a solid state and more reliable implementation of the discussed electronic engine speed control or electronic engine speed governor circuit.

How to Set Up

Initially keep the IC1, IC2 stages disconnected by removing the emitter follower link with pin#5 of IC2.

Next make sure that the two 100k resistors are appropriately changed and adjusted such that pin#3 of IC2 generates the narrowest possible PWMs (@ approximately 5% ON time rate).

After this, using a 0 to 12V adjustable power supply, apply a varying voltage at pin#5 of IC2 and confirm a proportionately increasing PWM at pin#3.

Once the astable section is tested, its the tachometer must be checked by applying a known RPM pulses corresponding to the desired over-limit RPM. During the adjust the emitter follower BJT base preset such that its emitter is able to generate at least 10V or a level enough to cause the IC2 PWM produce the required torque on the connected pedal control motor.

After some further tweaking and experimentation you can expect to achieve the required automatic speed control for the engine and load connected with it.


About the Author

I am an electronic engineer (dipIETE ), hobbyist, inventor, schematic/PCB designer, manufacturer. I am also the founder of the website: https://www.homemade-circuits.com/, where I love sharing my innovative circuit ideas and tutorials. If you have any circuit related query, you may interact through comments, I'll be most happy to help!

17 thoughts on “Electronic Engine Speed Governor Circuit”

  1. Thank you, this was so helpful. I am working on electrical vehicle project using BLDC motor from scratch. I want a speed controller circuit which is simple but also reliable. Do you have any suggestion for me to start with?
    Thank you

  2. Hi GR,
    Thanks for reply. I didn't develop any circuit or code. I learnt it from a youtube tutorial.
    They uses Arduino Nano V3.0 Atmega328, IR sensor, 16×2 LCD, 100k Trimpot etc. Connection as follows:
    LCD PIN / Arduino Nano Pin
    RS / D12
    E / D11
    D4 / D6
    D5 / D5
    D6 / D4
    D7 / D3

    D2 pin of Arduini board used for IR signal

    VEE pin of LCD board used with 100K Trimpot to control LCD contrast.
    Code used as follows:

    LiquidCrystal lcd(12,11,6,5,4,3);
    float value=0;
    float rev=0;
    int rpm;
    int oldtime=0;
    int time;
    void isr() //interrupt service routine
    void setup()
    lcd.begin(16,2); //initialize LCD
    attachInterrupt(0,isr,RISING); //attaching the interrupt
    void loop()
    detachInterrupt(0); //detaches the interrupt
    time=millis()-oldtime; //finds the time
    rpm=(rev/time)*60000; //calculates rpm
    oldtime=millis(); //saves the current time
    lcd.print( rpm);
    lcd.print(" RPM");
    lcd.print(" ");


    Link: https://www.youtube.com/watch?v=gVl4B7NDnQY
    Title: How to make Arduino Based Digital Tachometer By Mr. Innovative

    Maximum RPM of M/C is 3500.

    Thanks & regards

  3. Hello Swagatam
    Very nice project. I need little more help from you. Please design a circuit with details components list and specification (like: Servo sepc., Arduino board type etc)as mentioned below.
    I already made a tachometer using IR sensor , Arduino nano Atmega328 V3.0 and LCD. Now I want to control the speed of engine using servo which will get data from speed sensor & maintain set speed and (if possible)there should be a provision for put the set speed (which will be seen in LCD screen)through key pad.
    Please mention total required components details and specification and codes required (if any, i.e: like Arduino code).

    Thanks & regards


    • Thanks very much Das, I'll surely try to get the required data and present it here, however since so far I haven't been able to gain expertise in the field of MCU due to lack of time, I would not be able to do it myself, nevertheless will keep looking for it and update it soon, if possible.

    • Hello Swagatam,
      Thanks for quick response, if the "provision for giving the set speed (which will be seen in LCD screen)through key pad" will making the circuit critical then leave it and design a circuit of electronics governor with Arduino Nano or UNO board, Servo, IR sensor and LCD screen (which will show the actual rpm) for maintaining pre-defined constant speed. Please describe the project (with Arduino code) in simple steps because I don't have much knowledge of electronics circuit.

      Thanks & regards


    • Hi das,

      Yes it is possible with arduino.

      Can you please explain the method how did you use IR to find RPM.

      If possible please give a link to your schematic and code which you have developed. So that I can modify them appropriately to your needs with the same hardware you have.

      And please mention the Max RPM of your engine.


  4. Wow… that was real Fast! you had everything in you Box! Only my eyes did not recognize them…..
    Thank you very much indeed ! I will need time to digest the circuit despite your clear explanation. I will surely send my feedback provided I don't commit any mistakes in the circuit wiring!
    Thanks again for enlightening a blind Netizen…
    Kind regards.
    Imsa Naga

Leave a Comment

Do NOT follow this link or you will be banned from the site!