So I was playing with gpsd in Ubuntu. It’s a daemon that takes the data from a GPS unit and presents it to other applications in an easy-to-read format. I had it hooked up to my bluetooth SG-278 GPS receiver, getting it working so that I could contribute some data to Open Street Maps.
Problem was, I didn’t read the information about bluetooth GPS units being very flakey with gpsd. Turns out that it’s pretty easy to kill a unit by sending incorrect info to it. (If you’re ever using gpsd and a bluetooth unit, make sure you use the “-b” flag, to put it in read-only mode).
So what do you do when your GPS unit is spewing out garbage and not even trying to get a satellite lock, even after resetting it, powering it off. removing the battery, shouting, etc? Well, the sensible way is to get hold of the SIRFdemo software (Windows only, I’m afraid, but it works under Wine. Just symbolic link your /dev/rfcomm* device to a file called “com1″ in ~/.wine/dosdevice/) and see if you can issue a factory reset command to the unit. If you’ve truely borked the unit, like I had, that ain’t gonna work, as it’s not even listening to incoming commands.
So after dancing around the room and getting annoyed that you’ve killed a £30 device for no good reason, you’ve got one last option: rip it open and see what makes it tick. There is always some small joy in inspecting and dissecting the corpse of a dead peice of kit.
Take out the battery and remove the two small rubber feet at the base, revealing a couple of hidden screws. Unscrew everything that you can see and unclip the base.
Oooh, turns out that there is a backup battery on the circuit board! The little bugger has been retaining the bad settings I issued all this time. No fun postmortem, but some CPR instead!
To clear the devices memory all you have to do is short the battery contacts with a conductive material for a few seconds. Plug in a USB power source and see if the device comes to life – if you get the red satellite lock led lit, you’ve done it. If not unplug the device again and short the contacts again for a few more seconds. Make sure the shorter is actually conductive – a lot of screwdrivers, for example, have a non-conductive film that will prevent this working.
Put it all back together again and never, ever, use gpsd without the -b flag…