Go Down

Topic: Sensor to measure engine RPM (Read 19272 times) previous topic - next topic


I have seen a variety of methods to measure engine RPM for a small 6.5HP honda engine, and I believe the best solution is a hall effect sensor to detect the magnetism generated by the voltage though the sparkplug. I have yet to understand though any kind of measurements as to what kind of sensitivity this sensor needs to have. Hall effect switches would be better but also highly dependent on how much magnetism is generated by the current though a sparkplug wire, of which I am unable to find out.
Anyone have any ideas / suggestions?


What about measuring the rpm off some rotating piece of machinery with a hall effect or similar proximity sensor?
Arduino Libraries https://github.com/MajicDesigns?tab=Repositories
Parola for Arduino https://github.com/MajicDesigns/Parola
Arduino++ blog https://arduinoplusplus.wordpress.com


If I did that via an attached magnet what kind of sensitivity am I looking for? It's the specific numbers that I can never find :)


   If you have access to a rotating part that you can paint black and white, you can use Infra red, its easier than trying to permanently attach magnets to rotating parts.

Something like this -


Duane B

Read this
then watch this



I'm not sure that would work for measuring engine speed for a small motor, being as the rotating part that's visible is the shaft...
Works well for measuring wheel speed though :)


In the past I have used a hall effect sensor to detect the teeth of a gear in the engine.  You get one pulse for each tooth on the gear.  Other than finding a safe and secure means of mounting the sensor, no changes are needed to the engine.  Signal processing is a little more complicated than the magnet type hall effect. Since the teeth are causing a much smaller variation in the magnetic field, you need to do some filtering, amplification depending upon the sensor, gear size, and material, etc...


I am using an slot optical interrupter.  My results are mixed.  I have a center of a CD (clear part) painted half black.  In the code I can use the "pulseIn(high or low)",  I have tried both and sum.  Seems to work well at the higher speeds. Putting a 5ms delay between the high low count helped.  I don't know why it isn't better tho.  I am using the 3.3v supply thru the "S" to pin 10 and ground the pin 10 with 100ohm.


Does anyone have any ideas as to specifics for using a hall effect sensor on the spark plug wire (or detecting gear teeth), or is using IR the best choice?


Any small engine will have a large magnet on its flywheel to generate voltage in the coil (and then spark for the plug). You should have no problem finding a hall sensor that can detect that; the magnetic flux must be in the tens of thousands because the typical mechanic's test is that it should be able to hold the shaft of a screwdriver parallel to the flywheel without dropping it.

Is this a horizontal shaft Honda clone?  You should be able to feel the magnet right through the engine shroud; balance a screwdriver in your fingers and and gently tap it against the right side of the shroud as you slowly pull on the rope.

As most of the inexpensive hall sensors detect in the range of a few 100 gauss you should be able to tape one right to the shroud. Heck, you might even be able to make a small coil with magnet wire and detect the rotation when it induces current in that coil.

See also: http://bildr.org/2011/04/various-hall-effect-sensors/


Awesome! Good advice, that should work


What about taking a wire and making a few wraps around the plug wire, feeding it to a small circuit containing a 5V zener diode, then to the micro.  This should induce a voltage, the zener would keep it low enough for the input to the micro, and you should be able to measure the timing between signals.  The only issue I can see here is with engines that us a wasted spark ignition method.


I tested this with a Honeywell SS461C and was able to get a good pulse whenever the magnet passed underneath it; it would operate correctly at a distance of up to 1cm from the flywheel.

This sensor latches on one pole of the magnet and unlatches on the other (50 gauss to -50 gauss typical) so it inverts its signal while the magnet is underneath it.


I'd stay away from the high- voltage side of the coil.  There's not a lot of current there, but there's a ton
of EMF, which you usually don't want around low voltage computers.

Catching the magnet on the flywheel, though, seems like the best idea.



Jul 06, 2013, 07:14 pm Last Edit: Jul 06, 2013, 09:29 pm by eddieyu80 Reason: 1
If you do want to measure RPM using hall effect sensor, it is better to connect ignition controller, not the plug.
Some threads suggest connecting the crank shaft position sensor directly to measure the RPM. The formula is the reading/4 for four stroke engine.
Or read RPM from car ECU via OBD2 socket directly, it uses Arduino digital input, not analog input. Search threads about Arduino OBD2.

Go Up