05 Nov 2008, 09:21

Garmin Forerunner on Linux


Recently I’ve got a Forerunner 305 from Garmin and, of course, I don’t want to have to use windows in order to communicate with this device. Fortunately it has been for sale some time now and Garmin seems to document their USB protocol well, so there are several tools which help you with this device.

  • Blacklist garmin_gps. Most tools (gpsbabel, garmin forerunner tools) have trouble with this. Add the following lines to /etc/modprobe.d/blacklist:

# stop loading of garmin_gps to serial module for Garmin USB devices blacklist garmin_gps

  • Install gpsbabel and garmin-forerunner-tools: “apt-get install gpsbabel garmin-forerunner-tools”
  • Set proper permissions on the device node. Create a file named /etc/udev/rules.d/51-garmin.rules with this line in it:

SYSFS{idVendor}==“091e”, SYSFS{idProduct}==“0003”, MODE=“666”

  • You want to import your track to Google Earth? Use garmin_save_runs which gives you a *.gmn file. Then use garmin_gpx on this file to get a gpx file and filnally use gpsbabel to convert the gpx to a kml file like this: gpsbabel -i gpx -f <inputfile>.gpx -o kml -F <outfile>.kml
  • To get a list of time, position and hearth rate use this command: gpsbabel -t -i garmin -f usb:0 -o garmin301 -F <outfile>. See also this post in the ubuntu forums.
  • If usb:0 as input file doesn't work try a negativ number to get a list of recognized devices. If this command fails make sure that the module garmin_gps is NOT loaded.
  • Have a look at Trainingchart and PyTrainer
  • Reading waypoints can be done either by garmin tools or by gpsbabel: gpsbabel -t -i garmin -f usb:0 -o gpx -F <outfile>.gpx
  • Writing Waypoints to the Forerunner is easy as well: gpsbabel -i gpx -f <infile>.gpx -o garmin -F usb:0
  • Entering Waypoints (especially for geocaching): The Forerunner supports entering waypoints on the device. For you it may seem obvious, but it took me a long time to find out that this is possible at all. Just enter the Navigation menu, go to "save waypoint" and move the cursor to the position field. There you can <enter> the new values.
  • Display the current time: In the menus the Forerunner displays the current time. I think you can also display it on the main screen if you customize the layout.