GM VSS to Mechanical Speedometer output

Hello Everyone,

I'm in the process of retrofitting a newer GM transmission into a project car.

The Car has an older mechanical style speedometer. It previously used a cable driven from the old automatic transmission to spin the speedometer to show the vehicle speed.

The new transmission has a what I am assuming is a hall effect sensor, it is a two wire sensor, one side goes to ground and the other generates a 4000 pulse per mile signal.

To convert this to mechanical speedometer, I am thinking about using an encoded DC motor to drive the speedometer cable.

I am a complete Arduino novice and want to try to give this project a shot.

I'm looking for recommendation for pretty much everything in this project. There are commercially available converter boxes, but they run upwards for $350.

To convert this to mechanical speedometer, I am thinking about using an encoded DC motor to drive the speedometer cable.

I'd be thinking of using a stepper motor. You measure the rate at which the pulses arrive, and periodically, adjust the number of steps that the stepper has taken.

You don't mention the number of turns per mile that the old speedometer expects, but assuming a figure of around 1200/mile you'd need a motor capable of 1200rpm at 60 mph, or 20 rev/second; and a max speed of 120 mph would require 2400 rpm - easily achieved by a conventional dc motor. Perhaps other would comment on the capabilities of a stepper motor. I also expect you'd want to update your speedometer display about twice per second, so avoid the display jumping around during hard accelleration and braking.

Reading the speed transducer (133 Hz @ 120mph) should be a doddle for an Arduino, as should the scaling needed to derive the output motor's speed from the input.

I hope this helps in part.

So the GM mechanical speedometers are calibrated where in 1001 RPM input would show 60mph.

I've looked up DC brushless motors, but most seem to be high rpm for drones and not great for relatively low RPM accuracy.

What I think I need is a DC brushless motor with an encoder or hall effect RPM sensor that runs from 0-5000 rpm. I'd develop some sort of closed loop control to command an exact RPM output depending on the pulses from the VSS, which are 4000 pulses per mile

I am very interested in this topic and i am currently going down the same road. Did you settle on a direct drive of the speedo needle with stepper motor with separate odometer solution. Or did you settle on a motor that could reliably control the speedo unchanged at the higher speeds - if so did you find a suitable stepper or dc motor? I have toyed with gearing a stepper up to achieve the speeds required.

I would appreciate any feedback you have on your findings