Data transfer from GPSmap 60CSx to a linux PC

Last month Lovely Systems and Telesis sponsored me a brand new Garmin GPSmap 60CSx -
thanks a lot!
During evaluations for the Loccata project I previously could play around with a
Garmin eTrex Summit.
This is gonna show you a way to transfer data such as waypoints or tracks from your garmin device
to your PC and the other way round.
There might be nicer applications or easier solutions for this, please let me know about them.
Connecting the device with your PC
According to the GPSMan manual linux kernels > 2.6.11 ship with a
driver for garmin devices (http://sourceforge.net/projects/garmin-gps/)
To see if you’re having the drivers installed and can connect to your GPS device
plug in the cables, whatch your syslog tail -f /var/log/messages and power on
your device. You should see something like:
usb 3-2: new full speed USB device using uhci_hcd and address 3 usb 3-2: new device found, idVendor=091e, idProduct=0003 usb 3-2: new device strings: Mfr=0, Product=0, SerialNumber=0 usb 3-2: configuration #1 chosen from 1 choice usbcore: registered new driver usbserial drivers/usb/serial/usb-serial.c: USB Serial support registered for generic usbcore: registered new driver usbserial_generic drivers/usb/serial/usb-serial.c: USB Serial Driver core drivers/usb/serial/usb-serial.c: USB Serial support registered for Garmin GPS usb/tty garmin_gps 3-2:1.0: Garmin GPS usb/tty converter detected usb 3-2: Garmin GPS usb/tty converter now attached to ttyUSB0 usbcore: registered new driver garmin_gps drivers/usb/serial/garmin_gps.c: garmin gps driver v0.23
Now you also know that your device has been attached to /dev/ttyUSB0:
usb 3-2: Garmin GPS usb/tty converter now attached to ttyUSB0
The CD included in the package of the 60CSx only comes with USB drivers
for windows.
If you don’t have the driver you can download it on the sourceforge
project page http://sourceforge.net/projects/garmin-gps/
Luckily i already used a Garmin eTrex Summit before and had it’s
driver installed previously.
These drivers also worked for connecting the 60CSx.
Permission settings
By default users must not read or write from/to the device:
frisi:/ # l /dev/ttyUSB* crw-rw---- 1 root uucp 188, 0 Dec 29 10:00 /dev/ttyUSB0
We change the permissions so ever user can read and write to the device:
frisi:/ # chmod o+rw /dev/ttyUSB0
Other maybe more elegant solutions can be found here: http://www.gpsbabel.org/os/Linux_Hotplug.html
Applications
Recherche
I’ve been doing quite some research on applications to load data to
and from my garmin gps device.
Some of the links i found are listed on http://del.icio.us/frisi/gis.
The apps i’ll describe in this section are GPSMan and GPSbabel.
I’d love to have a kde application for this, so i considered using GRASS GIS
(which i did not yet try out).
KGIS started in 2002, had no development the last years, so i don’t think this is
very promising.
GPSMan
You can download GPS Manager from it’s official website http://www.ncc.up.pt/gpsman/.
GPSMan is very well documented, a PDF describing it’s features, installation and usage and giving
information on the data types waypoint, track, route and group can be found on the
website too.
Start GPS Manager by providing the device your garmin is located at:
frisi@frisi:~> gpsman usb=/dev/ttyUSB0 &
You will see the main window with buttons named Data, GPS receiver, Map,
Definitions and Options.
Configuration
First configure GPSMan using the Options menu.
- set the GPS Model to Garmin
- in Receiver parameters
- set the Default protocol to Garmin NOT Garmin USB
- check accept all characters to allow spaces and other chars too
(eTrex Summit could not handle these, the 60CSx can do) - you can leave the other settings untouched
- in Serial port and files set the serial port to /dev/ttyUSB0 or
whatever device you got in Connecting the device with your PC
These are the must-have settings to connect your device.
You might want to have a look at the documentation for
more information on the other settings.
Transfer data
To download Data you can either invoke the Receiver window under the
GPS receiver menu or use the menuitems in there (GPS receiver / get / …).
To connect the device hit the check button. If it got connected successfully it
turns green and the label changes to online.
The GPS receiver menu allows you to connect to your device and up- and download data.
To import waypoints simply click on WPoint in the get (download) area (this works the same for Tracks and Routes)
If you want your waypoints to show up in the map check Display items on map (you can also
change this for any item later)
The downloaded items now show up in the Lists menu.
It is accessible via Data / Lists but should pop up automatically
when you start up GPSMan.
Save/export data
To save your Tracklog to display it on maps, share it with friends or simply archive it for computing statistics later on, you can use the save and export functions.
The Lists menu lets you manage, edit, import and export waypoints, routs and tracks.
I don’t know which is the standard format for sharing waypoints and tracks. GPX which is an XML format seems very promising to me but i don’t know if GPSTrans, MapSend or Ozi are wider used.
For the time being i use save instead of export to save the files in a gpsmap internal format to not lose any information when exporting.
GPSbabel
GPSbabel is an application to convert spatial information given in
a certain data and projection into various other formats.
You can download the most recent version on the homepage http://www.gpsbabel.org.
I’m using GPSbabel not only for conversions but also to upload waypoints
of http://geocaching.com caches to my garmin.
The format of these *.LOC files is geocaching.com-specific
and supported by gpsbabel too: http://www.gpsbabel.org/htmldoc-1.3.0/fmt_geo.html
I used gpsbabel to convert the file GCN8A0.loc and upload it to my garmin device:
gpsbabel -i geo -f GCN8A0.loc -o garmin,power_off=0 -F /dev/ttyUSB0
to get a waypoint file you can use with GPSMan try something like:
gpsbabel -i geo -f GCN8A0.loc -o gpsman -F GCN8A0-gpsman.wpt
you can also download data from your device using gpsbabel, see http://www.gpsbabel.org/htmldoc-development/fmt_garmin.html for more details.
Outlook
Now that i found a way to transfer data from my garmin to the PC,
i want to play with this data and my GPS device a little more.
Statistics
I’m interested in some statistical information on my bike tours such as
distance, average speed, vertical meters up/down, elevation charts.
GPSMan can do a lot of this already:
In the Lists view double click a track. In the track menu that will
pop up you can click the Compute button to get some statistical information
and a menu for generating plots such as elevation sideview by time or by distance.
Maps
GPSMan can display waypoints with different icons and tracks in a map (see screenshot).
GPSMan can also use maps in the background, but i need to find out how to obtain and
use maps for this.
There are also some online services that let you upload tracks and generate
a map with your track.
One of these is http://www.gpsvisualizer.com/map.
There is a tutorial how to integrate a route in google maps on http://www.marengo-ltd.com/gps/.
MapSource
I did not yet play with the map support of the 60Csx (eTrex Summit did not have it).
I need to check if there are any applications for linux, of if i can use it with an
emulator.
According to the Garmin FAQ garmin does not plan to ship mapsource for
other operating systems than windows atm.



[...] home Easy to use, on the edge and extremelylovely web technologies. < back: Data transfer from GPSmap 60CSx to a linux PC [...]
Interesting! Have you looked at QLandkarte at http://qlandkarte.sourceforge.net/ ?
[...] The first one is for geeks: how to transfer GPS data (waypoints or tracks) from the GPSMan to a Linux PC. friessnegger gives precise instructions on how to do this. There are also several links to GPS utilities. [...]
Thanks so much for such a great article on connecting gpsman to the Garmin GPSMAP 60CSx.
FYI, after I started gpsman with “gpsman usb=/dev/ttyUSB0 &” and set the options, I had to exit the program and restart it with just “gpsman” before it would connect to my GPSr to put and get data.
I’m looking forward to seeing if you can find a way to send maps from MapSource, namely US Topo, to the Garmin GPSMAP 60CSx. It would really nice if gpsman could use these maps too. I hate using that other OS just to download maps to my GPSr.
Thanks again.