My car's speed - measuring - recording

Thread Starter


Joined Jan 6, 2004
Wondering what could be the simplest way to implement a basic sensor to measure my cars' speed wrt ground, every 5 sec or so for a period of 1 or 2 hours time? Not precise but consistent.

Additional log implemented in a RAM. with automatic time stamping plus eventual "bookmarks" at the push of a button.

No display but reading when at home just to evaluate my driving performance

Power supply, a 9V battery (by no means associated to the car's common). Tapping into the car's wiring (whatever it is) is not considered.

Comments and caveats appreciated.


Joined Oct 2, 2009
Sounds like an interesting project. The first thing that comes to mind is a GPS receiver and log the cordinates or speed on a microcontroller.
PP3 9V battery will not be enough and you may want to consider using the 12VDC ACC outlet or another battery.

Buena suerte.


Joined Mar 2, 2015
I think the most straightforward way of doing what you want is to use a GPS receiver module, such as this one. (See also here.) These modules output plaintext TTL ASCII strings giving not just longitude and latitude, but also velocity (in meters/second), altitude, current time and lots of other stuff. Connect one of these to something like an Arduino fitted with an SD card for data logging, and I think you're good to go.


Joined Jan 29, 2010
hola Agustin,
Get a Arduino Uno, and SD shield, DS3231 RTC, makes a good data-logger, most of the Arduino software is readily available.

Last edited:

Thread Starter


Joined Jan 6, 2004
12 V battery? So be it (I got a brand new one luckily).

A sensor somehow emitting / receiving wouldn't be reasonable? I am at lost here.

My mobiles GPS you mean? Samsung J/ 2016 here.


While typing two more post arrived. Gracias. Reading now.



Joined Sep 24, 2015
I had an argument with the dealership who sold me my Tacoma. When traveling at an indicated speed of 65 MPH (posted limit) EVERYONE was passing me. Even little old ladies who would flip me the bird as they went past. TRUE STORY! So I started by setting the cruise control at 65 MPH. Since everyone was passing me I never had to cancel the cruise control. I then drove for 10 miles (via mile posts, which are not all that accurate, hence, 10 miles). My calculated speed was 57 MPH. That's a HUGE difference. So I began looking into the reason for that. Tire size was one issue. The truck they sold me had smaller tires. But that could only account for 3% of the error. When going up to the correct tire size speed measurement improved, but there was still a HUGE difference. After visiting TacomaWorld I learned that a LOT of people had the same issue. Their solution was to change the driven gear in the transmission speed sensor. But before I did that I got a GPS Dash Cam and set it up to record the speedometer and to display the GPS speed. I had clear and concise evidence of a huge error. However the dealership still refused to do anything about it. So I opted to break out the wrenches and swapped the 29 tooth gear for a 30 tooth gear, both which fit with no issues. The speedometer was nearly correct. But I had one last thing I needed to do and that was to reset the speedometer needle position to 2 miles per hour below zero. So at 25 MPH IS (Indicated Speed) I was traveling at 26 MPH AS (Actual Speed). At 50 MPH IS I was spot on, and at 75 MPH IS I was going 74 MPH AS.

I had a dash cam and was able to use that as part of my calculations. Other methods were to use known distances and measure time. Of course traffic could affect the measurements so I usually went slower than everyone else; which meant I could set the cruise control. And when I made an adjustment I'd travel the same distance on the same road in as close to the same conditions as before.

Some of the calculations I did involved engine RPM. Since I drive stick, engine RPM is consistent with the amount of tire rotation. I wasn't sure of the gear ratio on the rear end, so I measured it with 10 turns of the rear wheel. Turned out I got 4.1 revolutions on the drive shaft per one revolution on the rear tires. (both tires. Using just one side would mean I'd have to rotate it 20 times because of the differential gearing) In fourth gear (not overdrive), with a known tire dimension I calculated how far the tire would roll in one revolution (one circumference of the tire) then calculated how many revolutions it would take to travel one mile (5280 feet). At 60 MPH for 60 seconds the number of revolutions were (speaking from memory) 2750 RPM on the tachometer. Unfortunately the tachometer was not marked out that precisely. Still, in fourth gear I had a real good idea of my speed at 2750 RPM (best guess at needle position).

So how would I recommend (an easy way) to measure speed? Probably mount four magnets of equal size and weight to the drive shaft in equally spaced intervals and held in place with some sort of mechanical fastening method. Probably fiberglass tape. Then a hall effect transistor could be mounted BY THE SIDE of the shaft (not above because of suspension movement) and set up a counter to count the number of pulses. Knowing the gear ratio of the rear end, I'd divide the number first by that ratio then by 4 since there are four impulses per revolution. Using that same approach you could probably set up an arduino to take and record your measurements.

You said you want to measure performance. At best all your recordings will do is to log your habits. As to performance, my wife can drive her car and get 20 MPG whereas I can drive it and get 23 MPG. Why the difference? Because she hammers the gas and brake pedal whereas I'm much more conservative behind the wheel. She jackrabbit starts and stops whereas I glide up to speed and glide to a stop at red lights. Performance? What is it you're looking to learn?


Joined Jan 15, 2015
Had an app on my last smart phone that had a speed readout which from what I could tell was extremely accurate working from GPS. Additionally using a laptop or I guess any micro-controller you can read speed from the OBT II port. This is a good read on doing that along with a few other parameters. You can build or buy a RS232 to OBDII interface. So I guess the first step would be choosing a method followed by interface.