I'm needing a small DC electric motor that could be used to drive a mechanical speedometer. This would be used for older cars that have been retrofitted with a newer engine or transmission that doesn't have a traditional older style cable speedometer drive.

I expect there will be an Arduino in the mix, taking ABS ring signals from the rear axle and converting that as required to drive the DC motor.

It seems that the standard is 1000 rpm = 60 mph, so to cover a range of 0-150 mph the electric motor will need to be capable of about 2500 rpm. The load is extremely low.

It sounds like stepper motors would be a good solution but they are too slow. Any other possibilities?


closed as off-topic by The Photon, Harry Svensson, Dmitry Grigoryev, Finbarr, Voltage Spike Sep 5 '18 at 19:44

This question appears to be off-topic. The users who voted to close gave this specific reason:

If this question can be reworded to fit the rules in the help center, please edit the question.

  • \$\begingroup\$ Many motors are capable of that speed - seems like this is similar to a recent question - have you searched on here? \$\endgroup\$ – Solar Mike Aug 18 '18 at 22:13
  • \$\begingroup\$ In a cheap, simple brushed DC motor and given a fixed load, the shaft speed is proportional to the applied voltage. However, it's unlikely that the load is always the same for the speedometer for all shaft speeds. And given a specific drive voltage, the shaft speed will be proportional to the torque load (which may be varying and could potentially be observed by monitoring the current.) You could probably arrange a software table that will calibrate the various voltages to the needed shaft rotation speed. You'll need to support the maximum voltage for the top speed. \$\endgroup\$ – jonk Aug 18 '18 at 22:30
  • \$\begingroup\$ You have not defined the source signal nor the speedometer type. To match with MPH/V, I am suggesting a tach design instead. \$\endgroup\$ – Sunnyskyguy EE75 Aug 19 '18 at 14:06
  • \$\begingroup\$ I searched a bit and couldn't find anything. There were a few similar queries on the Arduino forum but they never seemed to come to a conclusion. A fellow on the LS1tech forum had a huge development thread on the electronics and a little on the motor he planned but then he just disappeared around 2014 and all the pics were pulled as well. \$\endgroup\$ – mojozoom Aug 19 '18 at 14:18
  • \$\begingroup\$ Tony, vehicle speed and engine rpm are not directly related unfortunately. Even in manual transmission, as you slip the clutch the rpm will be varying and much higher than then the clutch is fully engaged. This project is a motor drive conversion for an old style cable driven speedometer, and the motor is what I need help with. \$\endgroup\$ – mojozoom Aug 19 '18 at 14:45

If you want this to be an open loop solution (ie just fit a motor and be able to designate the peed without complexity) then a stepper motor would be ideal.

Stepper motors are not inherently slow as some may claim, most small Nema 8 , 11 and 17 steppers will accurately follow up to 8000 pulse per second full step. With a 1.8deg, 200 steps per rev motor this gives you 40 revs/second or 2400 rpm.

You could easily source the components for your project from those cheaply available for small DIY 3D printers (these will typically be Nema 17).

While many of the steppers on Ebay will have poor datasheets, here is one from a larger manufacturer that shows the step rate and torque curves that show it being viable out to 38 rps. This is a smaller Nema 11 sized motor.

A lot will depend on how you want to engineer your solution. do you want it to attach directly to the back of the speedo (very low torque requirements) or under the hood and attached to what was the gearbox end of the speedo cable (much higher torque).
Either way, the physical configuration of the stepper motor allows very robust engineering practices, so making an adapter into the back of the speedo seems doable.

While slightly harder to drive, you could consider a 3 phase BLDC motor with excellent torque. The typical DC motor with brushes I would not recommend since brush wearout will be a problem. Most of these small DC motors are only rated for a few hundred hours of operation.

Update: there are certainly ways to run a stepper motor without any noise if you are going to mount it directly to the speedo. The Trinamic series of drivers (2208) are quite cheap and are essentially silent in operation (by using sine wave chopper drive). However you will have difficulty reaching 30+ rps with something like an Arduino.

Remember that the stepper motors will provide much more torque than you need when directly connected to the speedo head, so you could 'gear up' using a belt drive, again these parts are readily available for DIY 3D printers, so cost is relatively low. You may be able to gear-up by 3:1 which would suit the Trinamic driver.

  • \$\begingroup\$ Thanks for all the info. I'd like to attach it directly to the back of the speedometer gauge in the dashboard. Noise levels will certainly be a concern then. The only aftermarket version of this sort of thing that I've found uses a remote mounted box to hold the motor, and then runs a typical flexible speedo cable up to the dashboard instrument. \$\endgroup\$ – mojozoom Aug 19 '18 at 1:57

Use a brushed DC motor with encoder. Low-pass an encoder phase and use that as a servomechanism to drive the motor.


You don’t want a DC motor that doesn’t run at exactly the same speed as the engine.

Speedometers generated by a cable use a tiny galvo-generator matched to engine speed and output to a volt meter in MPH/V. If you wish to convert to RPM/V do not use your idea.

I suggest you use a series R and Voltage to find out the current needed for full scale and use the ignition pulse converted to a 1 shot which when averaged gives the RPM/V to match you expectations.

  • \$\begingroup\$ Tony I think you are thinking of a tachometer, which indicate engine speed. For this project I'm working with the speedometer, which reports the vehicle speed. \$\endgroup\$ – mojozoom Aug 19 '18 at 1:54
  • \$\begingroup\$ How do measure speed? Just use that to drive the voltage directly. The speedometer is a galvometer is it not? The same as a tach. Driven by voltage or averaged fixed pulses. \$\endgroup\$ – Sunnyskyguy EE75 Aug 19 '18 at 2:46
  • 1
    \$\begingroup\$ Most older speedos I've seen are based on a magnet dragging an aluminum plate ….not on anything like a voltmeter. \$\endgroup\$ – Jack Creasey Aug 19 '18 at 4:55

Not the answer you're looking for? Browse other questions tagged or ask your own question.