Is it just me, or do the best toys always come with an SDK


I got a Garmin eTrex Vista C handheld GPS as a Christmas present. Another cool tool to add to my geeky ski stuff. So far I've only used it to navigate to and from a restaurant yesterday lunch time, but it seems to have lots of features that will make it useful on the mountain. The best thing about it? There's an SDK that you can download to communicate with the device. The SDK is more of a spec and a bit of sample code that shows you how to get a handle on the USB device driver but that's good enough for me.

As usual, the quality of the code sample is lacking, so step one was to write a controller for the USB device that actually has error handling. That's nearly done. Step two is to start working through the spec, decoding the messages and dumping out the data flow.


You may find the following useful for interpreting the gobbledegook from the GPS device into human readable form:

Thanks Carson,

The Vista C doesn't speak NMEA. Garmin have decided to switch to just supporting their own proprietary protocol - see here for more details:

Oops, didn't realise that Garmin didn't want to play ball with the standards...

Don't you just hate that... when there's a standard out there and everyone interprets it there own way coz' the "i's ain't been dotted and the t's ain't been crossed!" and you always get one who decide to go totally against it for no good reason!

I think it's more a case of the Garmin protocol can do a lot more than NMEA and they use it for uploading and downloading all kinds of data to and from the device. In the past they have also supported various other protocols, including NMEA, any you could just plug the serial interface from their devices into something that expected an NMEA device and things would work as expected if you set the device to talk NMEA. Now that the new devices just have a USB connection there's less 'plug compatible' software out there and they decided to ditch NMEA...

Of course they could have a) provided a USB to virtual seial port driver, b) continued to support NMEA in the interests of interop or c) provided a) and fabricated the NMEA data within in based on the PVT data that their spec can provide... (there's a third party that does this as far as I can tell).

Anyway, the thing that interested me was downloading the 'saved tracks' (ie where I've been) and I think that I'd need to use the Garmin protocol for that anyway.

Leave a comment