Continue to Site

Welcome to

Welcome to our site! is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Take an input pulse, and reduce it's pulses per minute?

Not open for further replies.


Junior Member level 1
Apr 30, 2014
Reaction score
Trophy points
Activity points
See if I can explain this correctly.
We are trying to take a 12v signal and reduce its rpm.
The sensor is magnetic. The sensor is fed 12v, a metal wheel w teeth evenly spaced rotates near the sensor and the tooth triggers a pulse. The pulsing is sent out and read. What we'd like to essentially do is have let's say 1000 pulses per minute, and convert it to 800 pulses. Tried to look into it a bit, and came across a capacitor. But not sure if that be useful in this context.
The pulses will constantly vary as well. So so the relationship between input and output can vary as the pulse per minute change. But needs to be consistent.
Any direction would be fantastic

There are several ways to do this:

1. you can use a simple divider circuit but it limits you to exact integer ratios.
2. you can use a pulse swallowing circuit that passes some pulses through and blocks others. This has the disadvantage that the output pulses are not at a constant rate.
3. you can use a pulse swallowing divider that alternates it's divison ratio to get fractional divisors. This has the same problem as 2.
4. you can phase lock a new lower frequency pulse generator to the higher input pulse rate. This is most complicated but gives a consistant output pulse train.
5. you can derive a voltage from the input pulse rate and amplify/reduce it before using it to synthesize a new pulse train.

Forget the capacitor idea - far too simplistic I'm afraid.

Thanx Brian. I was sure the capacitor would just be too easy. The way it goes lol.

1 and 4 look like the only viable options. I'm glad that all made sense, here's the catch lol.

The trigger has 35 teeth, and has one missing. (Would have 36 evenly space teeth if the wheel was not missing one tooth.) This gives the computer a point of reference. So I can't have pulses randomly dropped or swallowed.

Number 4 may work. Seems what you're saying is if it reads 100 and has an output of 600, the gap would always be 500. Even if the pulses rose to 5,000 per minute, our output would be 4500.

If I understand number 4 correctly, the first option may be my bird. If we selected a 10-9 ratio, our pulses would look like this. 1000-900
2000-1800 3000-2700 etc.

But either version would be able to duplicate the 35 pulses and skip one, but merely slow the output correct?

Hi. Perhaps a useless contribution which at best only repeats an aspect of the previous answer... Frequency dividers fulfil that function, if I understood what you're doing. 1000:800 is a ratio of 5 in:4 out.
The maligned simple 555 can be used as a frequency divider, the circuit appears in most 555 datasheets, and no doubt a multitude of other ICs can do this, but like any other device, all devices are imprecise and pointless with inappropriate or poor quality passive components serving them to maintain the timing.
Or stretching the imagination - Could you twist the features of something like a 4060 to suit your purpose? Best of luck.

You could also use a small microcontroller to do this conversion,depending on your maximum fequency.

Since you are talking rpm, there should be no problems for it to keep up the pace.


It seems this is to manipulate a motor regulation loop.

If the sensor is (in) the feedback for a motor control, then reducing the pulsecount make the motor to run faster.

The missing 36 tooth... is this good? Or do want the circuit to include that 36th pulse for correct rpm?

I can imagine a simple microcontroller solution, where you use a capture function to measure the input periodic time, multiply it with a constat factor and generate a new square wave with the calculated periodic time.


I think the missing tooth is deliberate to provide a once per revolution reference position. It may complicate things considerably because if the pulse train is adapted to lower rate, the 'missing' pulse will be proportionately the wrong length.

Boosted67, can you confirm the missing tooth is deliberate and whether the length of the gap where the pulse would be is critical.

If it is, the simplest solution may be to gate it through untouched and recreate a completely new pulse train using the timing between the other teeth to set it's rate. At 1,000 pulses per minute the existing pulse frequency is only 16Hz so it is fairly easy to do with a small microcontroller.


Betwixt, the missing tooth is deliberate. You're right, it is for reference. Basically what the attempt here is to trick the ecu in a car. The factory has set a ceiling limit on the rpm. So we can change it all we want as long as it's not set above that. So we want the engine to mechanically spin above that, but the ecu not to know. That way it won't shut us down. The missing tooth tells the engine where the pistons are. That way the correct plug and injector fire at the correct time. If it's wrong we'll send fire balls thru the intake or exhuast lol.

But the output frequency is going to be closer to 7500-8300 to stay under our limit depending on the ecu we use.

So is a micro controller something that needs custom building? Or easily obtainable? Gonna hit Google right now.

I have visions of engine parts being blow into orbit!

All the pulse swallowing methods will result in uneven pulse distribution with the added danger that a dropped pulse may be misinterpreted as the reference point and cause severe engine damage, especially if it is already being run beyond design limit.

The real fix is of course mechanical but whichever way you do it electronically will have some drawbacks. The critical point is the reference 'gap', that can't be moved or the engine timing will be wrong. Before going any further, I disclaim any responsibility for damage that may be caused by solutions suggested here!

I can see two ways of doing it:
1. the pulse rate is converted to a voltage (like a tachometer uses) and that voltage is used to control tune a lower frequency oscillator. The reference pulse is detected and the new oscillator is shut off when the original gap passes the sensor so it replicates the original gap timing.
2. a microcontroller does the same thing but times the period between pulses to detect the gap and uses that period to numerically generate a lower frequency.

In the present system, the center of the gap and all the teeth will be uniformly spaced, if you recreate the gap but generate a lower pulse rate to simulate the teeth, there will always be a risk that the final pulse before the gap is either cut short or missing altogether. I can't see any way around that because of the non-integer division ratio. It may not have any effect on the engine but on the other hand it may cause timing fluctuations at certain speeds, you would have to experiment to find out.


But the output frequency is going to be closer to 7500-8300 to stay under our limit depending on the ecu we use.
Is this the RPM of the engine being discussed?

I have visions of engine parts being blow into orbit!
I don't see parts in orbit, but I can certainly imagine the sound of valves being punched through the pistons as they start to float at 7000+ RPM, I sure hope you spent the money for titanium values and triple springs. I can also envision rods sticking out the sides of the block after the first "test". If you're into "racing" I'd suggest buying a custom/race ECU instead of trying to fake the stock one into thinking the engine is running slower. Those ECUs can be reprogrammed with what ever rev limit, fuel ratios, injector timing, etc you may want (while violating every emissions standards in the world).


i guess....
maybe 7000 is not RPM but Hz. with 35 teeth this means 200 RPS ... oh ... that is 12000 RPM. Not likely..

Another question. If the frequency generation is just to hack the ceiling control... maybe a fixed frequency is possible. This is easier than when it relates to the true RPM.


Not open for further replies.

Part and Inventory Search

Welcome to