What works on Linux
We currently have four
different garmin watches, a 305, a 405 a 310xt and a fenix plus various other garmin gps devices.
The 305 is a usb cradle connection with a miniUSB socket. That runs standard garmin protocol over USB and
so is not a huge issue for Linux. The only warning is there is a kernel bug in the garmin driver that
can cause trouble.
The 405 runs over ANT. However it is still running basically the
old garmin packet protocol. It does not seem to respond to the new ANT-FS (file-share) protocols.
With the right tools its quite usable under linux.
The 310xt also runs over ANT. It also has some garmin protocol commands, and seems to
indicate it will transfer data with the old garmin commands, but doesn't seem to. Instead
it uses the new ANT-FS protocol to transfer data. With the right tools this is quite usable
on linux.
The Fenix (see my Fenix Review for more information
on Fenux) has (yet another) mini-cradle connection to USB and will appear as
a USB mass storage device so can easilly transfer to linux.
A GPSMap 60 has a mini-usb plug on the back and will work with gpsbabel.
An Etrex20 has a mini USB plug on the back and will appear as a USB mass storage device.
Doc and links
Historically, Garmin were really helpfull. There is an excellent document
the Garmin Device Interface Specification, number 001-00063-00 Rev. C
from May 2006.
Likewise there is some really good documentation on the basic ANT protocol
ANT Message Protocol and Usage,
number D00000652 Rev 4.5. from 2011.
Sadly Garmin does not seem to have released an update of the Interface Specification document
since 2006, though new packets and parameters have been added.
My tools
I have a number of tools. These are all written in 'C'.
- grdr A tool that pulls data over ANT. This is a replacment for gant. I started trying
to fix gant but gave up and decided on a bottom-up re-write. Grdr handles both 405 (garmin protocol over ant) and
310xt (ANT-FS). Output is either TCX(garmin) or FIT (ANT-FS). It may also work with
610/910 but I've not tried it, if anyone wants to try it, let me know.
- fittotcx converts a FIT file to a TCX file.
- forerunner read data over usb from a 305.
Caveats: I've never seen a Garmin TCX file, only output from other linux tools, so
the TCX should work, but is unlikely the same as a Garmin file.
I'll be uploading these tools as soon as I write some notes on how to use them,
email if you are interested. [march 2013]
Other Peoples Tools
ANT with Garmin Protocol: There are some tools that can access the data. However I have been getting increasingly
frustrated with them. The Garmin 405 can be accessed with gant.
There are a few gant clones around. Most of the ones I've tried dont work. However the one
on Klaus Ethgen's site
seems to work as well as any.
Be warned that it will not run if compiled for 64bit. There is some rather creative
code that assumes a pointer is 32bit. You will need 32bit libraries and to
compile with -m32.
ANT-FS: There are some python tools that may work for you.
Issues with the Garmin 305
On older kernels the garmin_gps driver worked OK with the 305. On more recent kernels this is no longer
true. If you are running tools that use this driver, I have a patch for the driver that
you will need.
Feedback, email: | |