As you already know, I own a NaviGPS with which I'm very happy. There was only one dark spot: no Linux support. Locosys (which seems to be the real manufacturer, the device is branded by different companies) provides a utility to down- and upload tracks, routes and waypoints for Windows only and my previous attempts to understand the protocol weren't successful.
But yesterday I received a PDF document from Roger Liou at Locosys who saw my previous work at my Wiki1). The document contained the specifications of the NaviLink protocol.
With this kind of help I were finally able to write the first version of a Perl NaviLink client today. While doing so I discovered quite a few errors in the document, so I transfered the contents to a new Wiki page while fixing some of the specs. There are probably some more errors in it, because I haven't implemented the full protocol, yet.
Anyway, for everyone who wants to try it, here is the script:
It's a single Perl script only dependent on Device::SerialPort. It's licensed under the BSD license, so feel free to do whatever you want with it.
Currently only tracklog downloads are supported. Feel free to improve the script by sending patches
Update: I added a few more modes. The link above always points to the most up to date version, before sending any patches make sure you have a recent release.
Update 2: The script now has a proper project page. Uploading waypoints is finished as well.
This is the personal web site of Andreas Gohr
- human being, blogger and web geek from Berlin, Germany.
This page was last updated at
2007/04/27 10:38.
Imprint/Impressum
Tagged at del.icio.us:
No tags, yet. Why don't you bookmark it?
Most popular:
Recent readers:
Very very nice. Just what we needed (we have 10 of these devices and would really like to be able to use then under linux. I had to make several changes, you can get my version here:
http://kleptog.org/temp/navili … k-fixed.pl
The biggest issue was with the packet reading. Just because a packet ends with b0b3 doesn't mean whenever you see that it's the end of the packet. My trackpoint data happened to contain those two bytes. I fixed that, as well as many other warnings general.
Have a nice day,