Go Down

Topic: acoustic RMP meter - help (Read 2163 times) previous topic - next topic


Hi guys

New guy here!

I need some help, i want to make an acoustic RMP meter to measur the RPM of a model airplane engine. (with sound)

I been googling arround and found this:
Arduino Frequency Counter Library

thought I could use this, with a mic, and it would be pice of cake!

I cant get the mic to give me a "digital output" - from what i read it means that the output must swap between 0v and 5v (for the arduino to accept high and low). ??

To test the lib i then put together a lm555 (timer) to make some square pulses (that swap between 0V and 5v).
Nor can I get that to work!
so help me out here - if you have another idea on how to do it pleas dont be shy, telle me ;)

I know the RPM of the engine is arround 500hz, and when i plan on using it, it will be so close to the engien, that I dont think it needs any filters (since the engien will be the only thing it will "hear")

thanks guys!


Aug 17, 2009, 08:07 pm Last Edit: Aug 17, 2009, 08:09 pm by madworm Reason: 1
If you looked at the "500Hz" signal from your motor, you'd see quite a bit more than just a nice and clean square or sine wave. I suspect it would be pretty ugly. Definitely very ugly if you use an internal combustion engine, lots of overtones. They're loud and stink an the same time.

How about using a reflex IR photo sensor on the propeller ?


guessing the rpm from a time domain signal is the worst you can do.
To get a feeling about the "noise" I recommend playing around with this free program


it visualizes sound in a waterfall diagram. Some years ago I estimated the RPM of Formula 1 cars with the help of some DSPs.

Filtering is mandatory simply because of aliasing

just my 2 cents


Thanks for the awnsers!

alot of the nois from the engien is from the propeller, and not the engien it self.
I have a RPM meter using light, the problem is that it needs to be close to the propeller, and does not work well in cloudy weather!

You are right, i was a bit to quick to dismiss filters!
I'll play a bit with the program you linked!



I'll play a bit with the program you linked!

yep try it... you will be amused how much moving parts you can decipher simply by it's audio signature. It's fun by it's own. I tried it with my bike :D


Aug 17, 2009, 11:35 pm Last Edit: Aug 17, 2009, 11:37 pm by madworm Reason: 1
Well, if normal IR isn't good enough, use a laser pointer and a transmission/chopper setup. Still you'll need to get close to the finger dicer. Water vapour doesn't absorb that much at 650nm. And if it's misty enough to scatter too much of the laser beam, you won't want to fly anyway ;-) Or if you want to get fancy, build a strobe light with a big fat luxeon LED, although the results need to be interpreted right.

regarding the noise:

I remember the 3.5cc 2-stroke engines of the rc cars I once had. They were pretty noisy at 35.000rpm... But maybe the fan noise covers that up.


The engien is a 2.5cc running a fiberglass propeller at arround 28000-30000RPM

The idea is not to have to put anything near the prop, you can clock the RPM just by standing near!


If you don't need this in flight, only on the ground for verification then use a cheapo laser pointer and a CDS cell.

Point the laser pointer through the prop onto the CDS cell surface.

Now you'll get pulses out that can be read fairly easily with an Arduino and an LCD.

Just remember to divide by 2 since the prop cuts the beam twice for every rev.


The idea is not to have to put anything near the prop, you can clock the RPM just by standing near!

I ran the engien with the program to see what frequencies the engine put out.

The best point is at arround 500hz (engien) and again at 1khz (prop).
but since the peek at 500hz is much more sharp I think that will be the best to measure.

So i been thinking, i'll amp all the mic output by some factor (maby so the signal is between 0-5v or so the i the the best resolution - right?), then filter it so only the 400hz-520hz is left, then get the arduino to sample it on an analog-input!

I then only have to find the peeks, and count the number of samples between (if I controle/know the samplerate?) then i have the time of the periode.
math from here to get the rpm...

sounds easy - but i'm still new to the arduino and software algorithms general.

It will be much easyer to make the hardware once i start at uni again in 2 weeks time... they have a nice lab for eletronics - and all the parts you wish for :D

Go Up