This format can...
read and write waypoints
read and write tracks
read and write routes
GPSBabel supports a wide variety of Garmin hardware via serial on most operating systems and USB on Windows, Linux, and OS X.
For serial models, be sure the GPS is set for "Garmin mode" in setup and that nothing else (PDA hotsync programs, gpsd, getty, pppd, etc.) is using the serial port.
Supported Garmin GPS receivers with USB include
Astro | Forerunner 301 | GPSMAP 60CSx | StreetPilot 2620 |
Edge 205 | Forerunner 305 | GPSMAP 60Cx | StreetPilot 2650 |
Edge 305 | Foretrex 201 | GPSMAP 76C | StreetPilot 2720 |
eTrex Legend C | Foretrex 301 | GPSMAP 76CS | StreetPilot 2730 |
eTrex Legend Cx | GPS 18[1] | GPSMAP 76CSX | StreetPilot 2820 |
eTrex Legend HCx | GPSMAP 195 | GPSMAP 76Cx | StreetPilot 7200 |
eTrex Summit Cx | GPSMAP 276C | GPSMAP 96 | StreetPilot 7500 |
eTrex Summit HC | GPSMAP 295 | GPSMAP 96C | StreetPilot c310 |
eTrex Venture C | GPSMAP 296C | Quest | StreetPilot c320 |
eTrex Venture Cx | GPSMAP 378 | Quest II | StreetPilot c330 |
eTrex Venture HC | GPSMAP 396 | Rhino 520 | StreetPilot c340 |
eTrex Vista C | GPSMAP 478 | Rhino 530 | StreetPilot i2 |
eTrex Vista Cx | GPSMAP 496 | Rhino 520 HCx | StreetPilot i3 |
eTrex Vista HCx | GPSMAP 60C | Rhino 530 HCx | StreetPilot i5 |
Forerunner 205 | GPSMAP 60CS | StreetPilot 2610 |
the following Bluetooth Garmin products:
GPS 10[1] |
and most serial Garmin GPS receivers including:
eMap | eTrex H | GPS 12 | Rhino 110 |
eTrex Camo | Forerunner 201 | GPS 12XL | Rhino 120 |
eTrex Legend | Foretrex 201 | GPS III | Rhino 130 |
eTrex Summit | Geko 201 | GPS III+ | StreetPilot III |
eTrex Venture | Geko 301 | GPS II | StreetPilot III+ |
eTrex Vista | GPS 12CX | GPS II+ | |
eTrex (Basic Yellow) | GPS 12Map | GPS V |
The following Garmin GPS receivers are supported, but they do not
support Garmin communication protocol and don't work with the
garmin
option. To use these receivers, read or write
GPX files from the mass storage device as mounted on your computer.
Nuvi 200[2] | Nuvi 310[2] | Nuvi 660[2] | StreetPilot c580[2] |
Nuvi 200W[2] | Nuvi 350[2] | Nuvi 670[2] | Zumo 450[2] |
Nuvi 250[2] | Nuvi 370[2] | Nuvi 680[2] | Zumo 500[2] |
Nuvi 250W[2] | Nuvi 600[2] | StreetPilot c510[2] | Zumo 550[2] |
Nuvi 270[2] | Nuvi 650[2] | StreetPilot c530[2] | |
Nuvi 300[2] | Nuvi 650FM[2] | StreetPilot c550[2] |
None of the GPSBabel developers has access to every model on that list, but we've received reports of success and/or have reasonable expectations that the above models work. If you succeed with a model that is not on that list, please send a message to the gpsbabel-misc mailing list with the details so that we may add it.
Not every feature on every model is supported. For example, while we do extract data such as heart rate and temperature from tracks on the sporting models like Edge and Forerunner, GPSBabel is not a fitness program at its core and does not support features like courses or calorie/fitness zone data.
To communicate with a Garmin GPS serially, use the name of that
serial port such as COM1
or /dev/cu.serial
.
To communicate via USB use usb:
as the filename on all OSes.
Thus, to read the waypoints from a Garmin USB receiver and write
them to a GPX file:
gpsbabel -i garmin -f usb: -o gpx -F blah.gpx
If you have multiple units attached via USB, you may provide
a unit number, with zero being the implied default. So if you
have three USB models on your system, they can be addressed as
usb:0
, usb:1
, and usb:2
. To get a list of recognized devices,
specifiy a negative number such as:
gpsbabel -i garmin -f usb:-1
When reporting problems with the Garmin format, be sure to include
the full unit model, firmware version, and be prepared to offer
debugging dumps by adding -D9
to the command line, like:
gpsbabel -D9 -i garmin -f usb: -o gpx -F blah.gpx
Custom icons are supported on units that support that. Neither GPSBabel nor your firmware know what is associated with any given slot number. They don't know that the picture you placed in the first slot is a happy face, they only know they're in the lowest numbered slot. GPSBabel names the them consistently with Mapsource, so they are named 'Custom 0' through 'Custom 511'.
For models where the connection on the GPS is a serial interface, be sure the GPS is set for "Garmin mode" in setup and that nothing else (PDA hotsync programs, gpsd, getty, pppd, etc.) is using the serial port.
For models connected via USB, we recommend use of the usb:
filename. For this to work on Windows, you must install
the Garmin driver. For Linux, this will fail if have the garmin_gps
kernel module loaded.
See the Operating System Notes for details.
This module also supports realtime tracking which allows realtime position reports from a Garmin GPS receiver over USB or serial.
Length of generated shortnames.
This option overrides the internal logic to figure out how many characters an addressed Garmin GPS will support when using the '-s' smartname option. This should be necessary only if you have a receiver type that GPSBabel doesn't know about or if you want to "dumb down" one unit to match another, such as wanting waypoint names in a StreetPilot 2720 (which supports 20 character names) to exactly match those in a 60CS (which supports 10).
Allow whitespace synth. shortnames.
This options controls whether spaces are allowed in generated smart names when using the '-s' option.
Default icon name.
This option specifies the icon or waypoint type to write for each waypoint on output.
If this option is specified, its value will be used for all waypoints, not just those that do not already have descriptions. That is, this option overrides any icon description that might be in the input file.
Value specified may be a number from the Garmin Protocol Spec or a name as described in the Appendix B, Garmin Icons.
This option has no effect on input.
Return current position as a waypoint.
This options gets the current longtitude and latitude from the attached GPS device and returns it as a single waypoint for further processing. For example, to return the current position from a USB Garmin to a KML file:
gpsbabel -i garmin,get_posn -f usb: -o kml -F myposition.kml
Command unit to power itself down.
This command forces an immediate powerdown of the addressed Garmin receiver. It is ignored on hardware that does not support this command. Obviously, further processing once you have sent a "power off" command to a unit that supports it is rather futile, so place this option carefully in your command.
gpsbabel -o garmin,power_off -F /dev/ttyS0
Category number to use for written waypoints.
This numeric option will force waypoints to be written with that category number when sending to a Garmin receiver that has category support. It is ignored on receivers without that capability.
[1] This model does not support transfer of waypoints, tracks, or routes, but may be used with the realtime tracking feature.
[2] This unit uses GPX format, not Garmin protocol. Therefore one should communicate with it by reading and writing GPX files instead of using this format. Members of this class of products do not support realtime positioning protocol.