Training for an endurance race, we needed a better way to keep track of lap times. Having a mate keep an eye on a watch and shout out the time each lap was just not cutting it. So we wanted something on the vehicle to do the job, but at zero cost to match our remaining race budget.
So, we want something that can track the speed, and display the time taken to return to the spot we start from. How does it know where the starting place is and where it is? Well GPS seemed an obvious choice.
Thus, we need GPS receiver, computer and display and a battery to power it all. And it needs to be not too heavy.
So, where to get a GPS receiver on a budget? Ebay! Bluetooth GPS receivers are pretty cheap and can apparently be hacked to be wired directly to a computer rather than wireless, but they are not cheap enough for no-budget racing. So this item was scored instead.
It's a malfunctioning car sat-nav. Runs WinCE and cost a whopping £4.
Actually, this was a lucky find as it not only powered up once some charge was put in the battery, but the menu system was functional enough to determine that it was picking up the GPS signal. (The software was corrupt though, so it wouldn't let you plan a route.)
Cue cracking it open to see what was inside.
Well, I didn't take a photo of the next bit, but suffice it to say it was pretty modular inside, with each of the major subsystems grouped together in a separate area of the main PCB. Using a 'scope, the neatly labelled test pads were probed until I noticed a serial bit stream. Could this be NMEA, a sort of standard for navigation systems? To find out we need a dumb terminal.
To make a simple dumb terminal you need a PC with a serial port, or failing that a PC with a USB to serial adapter. To connect it to the logic level signals present in the Sat Nav, the signal has to be inverted and amplified. This can be done with a transistor and a couple of resistors
. (As we are only listening in to the data, we only need to connect the Rx pin in the serial port.)
Now fire up the terminal program on the PC and try different baud rates until some text appears. Standard NMEA sentences
appear as strings beginning with the characters $GP... In this case the baud rate is 38400, but it can be pretty much anything depending on the specific model of GPS receiver. The standard is apparently 4800 baud, which no one seems to use.
$GPRMC is the most common sentence and if you are lucky (which we were), appears once every second. The series of comma separated numbers following the $GPRMC contain most of the useful information such as the time, your latitude and longitude and your speed in knots.
With this sat-nav, the test pad with the NMEA data was in close proximity to another pad which also had some serial data on it, but only briefly when the unit was switched on. The connection to the inverter-serial port was switched to this pad to see what what was there. On it, there appeared a few lines starting $PSRF103,.... From this, Google came up with Sirf Star III as the most likely chip set in the receiver.
Last thing to do is find a likely candidate for the power rail. Pretty simply you are looking for the biggest capacitor you can find in close proximity to the GPS radio. There was one SM capacitor on the back of the PCB underneath the radio obviously bigger than the others and it has 3.3V across it when the unit is switched on. A continuity check reveals one side is shorted to ground (the metal cans and the metal shroud around the antenna socket.
Now armed with all the relevant info it's time to start the butchery. The section of PCB with the radio was cut away with a cutting disk on a dremel type tool. It could have been done with a hacksaw, but the circular blade was a bit thinner so less likely to stray and cut through something important.
This done, it was time to check the GPS receiver still worked.