Over the years people have used various schemes to measure the aerodynamics and parasitic drag of a vehicle using what is called a “coast down” technique. What you do is take a car up to speed, put it in neutral and let it drift. You can then use a stop watch to measure the time it takes to decelerate a certain amount (say, from 65 mph to 60 mph). Given the weight of the vehicle, you can calculate force opposing the vehicle at this speed and the horsepower needed to maintain that speed. If the measurement is done at several speeds, you can separate the rolling resistance (tires, wheel bearings, brakes dragging, etc), which is proportional to speed, from the air resistance, which is proportional to the square of velocity. Obviously, you need to find a section of road that is flat and level, and you should ideally avoid windy days, though repeating the test in opposite directions would help.
What I would like to develope is a method to record continuous deceleration data. This would allow you to fit the data and obtain much more accurate results. These sorts of results could be very interesting, for instance, you could determine the effect of various modifications on performance. Is it better to leave the tailgate up or down on a pickup, is the drag from a rooftop luggage carrier enough to make it worth removing when you are not using it, what is the change in rolling resistance with tire pressure? Now, I can think of several ways to obtain this data, first, you could use an inertia detector to directly record the deceleration. I believe there are commercial devices designed to measure acceleration performance in just this manner and I wonder if the hard drive protection inertia detector in mac laptops could be used. Another method would be to take data from the computer of a modern car through a laptop interface. One of the data channels is speed, though you would be limited by the accuracy of the speedometer. Having neither a mac nor a modern car I decided to use my GPS (a garmin 12map) and pc laptop. While gps reciever have a well known error in position, the speed seems to be very accurate. In addition, they also indicate elevation, which may be useful in finding a flat piece of road for the test.
Most GPS recievers can ouput real time data through a serial cable. Mine can do so with either a proprietary Garmin protocol (which is documented) or a standard called NMEA, which is plain text. I searched around for couple days for an interface program, but was unable to find exactly what I wanted. Plenty of programs record position, but not speed. So, I decided to just log the entire output, then pull out the data that I wanted. I used Hypertermial (comes with Windows) to connect to the gps. You need to specify Com port (com 1 for me), 8 bits and no parity and 4800 baud. If successful you will see a bunch of text scroll by on your screen. You can either cut and paste from the screen (set the buffer way up) or log the session to a file. Here is some example output:
$GPBOD,,T,,M,,*47
$GPRTE,0,1,c,*36
$GPRMC,024433,A,3958.908,N,13148.360,W,025.8,358.9,261106,015.1,E*6B
$GPRMB,A,,,,,,,,,,,,V*71
$GPGGA,024434,3658.910,N,12148.360,W,1,09,1.4,79.9,M,-28.9,M,,*4B
$GPGSA,A,3,,06,07,10,16,18,21,,26,29,30,,2.4,1.4,1.9*38
$GPGSV,3,1,11,03,00,315,00,06,63,140,49,07,67,305,47,10,07,043,38*7D
$GPGSV,3,2,11,16,26,298,43,18,58,214,38,21,63,323,46,22,20,219,00*79
$GPGSV,3,3,11,26,33,089,42,29,30,072,42,30,08,185,34,,,,*41
$PGRME,3.7,M,4.6,M,5.9,M*24
$GPGLL,3658.914,N,12148.360,W,024434,A*32
$PGRMZ,262,f,3*1D
$PGRMM,WGS 84*06
$GPBOD,,T,,M,,*47
$GPRTE,0,1,c,*36
$GPRMC,024435,A,3958.922,N,13148.360,W,024.6,358.5,261106,015.1,E*66
$GPRMB,A,,,,,,,,,,,,V*71
$GPGGA,024436,3958.923,N,13148.361,W,1,09,1.4,80.1,M,-28.9,M,,*46
$GPGSA,A,3,,06,07,10,16,18,21,,26,29,30,,2.4,1.5,1.9*39
$GPGSV,3,1,11,03,00,315,00,06,63,140,49,07,67,305,47,10,07,043,37*72
$GPGSV,3,2,11,16,26,298,43,18,58,214,38,21,63,323,46,22,20,219,00*79
$GPGSV,3,3,11,26,33,089,42,29,30,072,42,30,08,185,34,,,,*41
$PGRME,3.9,M,5.0,M,6.3,M*24
$GPGLL,3958.927,N,13148.361,W,024436,A*31
$PGRMZ,262,f,3*1D
$PGRMM,WGS 84*06
The data we want is in $GPRMC (GPRMC = global positioning recommended minium navigation information). Next time, I’ll show a Perl script that I wrote to pluck out the time and speed, and an example calculation. But here is a little preview just to show that this might work (i.e. data is recorded at a rate sufficient to fit):

I recorded this with my suburban on the road outside my house (you can see effect of couple small hills near the end coast down section and a car was coming up behind me so I didn’t come to a complete stop), but even at 40 mph you can see the effect of air resistance (the speed falls much faster per second at 40 than at 10 mph), but of course the suburban has the aerodynamics of a brick.