GPS Serial to USB
- Also known as: Getting data from your serial GPS when your computer has no serial port
Your GPS has a serial port, but your computer only has USB. How are you going to get your tracklogs and waypoints? It is true that more GPS units are arriving with Bluetooth and USB interfaces, but the vast majority still uses the old RS232 serial interface. In the meantime you need to get a serial to USB converter that will allow you to use your GPS with Windows, Linux and Mac USB ports.
Technical aside: Converting Serial to USB turns out to be complex due to the way that USB devices work. Basically the Serial to USB converter includes a small computer (well, a microcontroller) that translates RS232 to USB, and back. Not all Serial to USB converters properly implement the whole RS232 specification. That's why these converters are more than you might think.
Serial to USB Adapters
Here are some devices that OSM people have used successfully:
- U.S. Converters: USB to serial adapters: for Windows 7, Mac and Linux, FTDI Chipset and LED lights. The site provides lots of troubleshooting support.
- EasySync: British company, their cables use FTDI chipset and support full flow control, flushing etc.
- BAFO BF-810: there are drivers for Mac OS X, Windows and Linux 
- Pfranc: they have a long page discussing their adapters, and both the good and the bad things about them at . Drivers for Windows, Mac OS X, and Linux. They also provide the custom Garmin connectors that allow you to build your own data cables.
- Keyspan serial-to-USB adapter: User:Richard uses one to connect his eTrex to his Mac - "the Mac drivers seem reliable and it's fairly compact". Use froogle.co.uk and search for 'keyspan usb serial' to find it at Dabs or (cheaper at £24.95) at Expansys .
- Maplin also has some very cheap, such as this at £12.99, but they don't seem to support Mac or Linux.
- The Gilsson USB to Serial DB9 Adapter is specifically branded as an adapter for Garmin GPS devices. The price tag from Gilsson is $44.95, but e.g. Germany-based globetrotter.de sells it for €19.95. Works fine on OS X with a Garmin eTrex Vista and gpsbabel. 
- The Eminent EM1116 works okay, but the installing process is a real pain.
The following instructions assume the BAFO BF-810, but the general principles will apply to other devices. You need to install the proper driver software and then determine the name of the 'port' or 'device' that your operating system gave to the GPS unit.
Serial to USB on OS X
Download the latest driver http://bafo.com/donload/driver/bf-810_v1_3.zip from the BAFO driver’s page at: http://bafo.com/support2.asp. Uncompress the file and install by double clicking on ProlificUSBSerial105.pkg. This should create the serial to USB device. You can check that this created the device in a terminal window:
ls -al /dev/cu* crw-rw-rw- 1 root wheel 8, 1 24 Sep 11:24 /dev/cu.modem crw-rw-rw- 1 root wheel 8, 3 24 Sep 11:28 /dev/cu.usbserial0
You want to use the cu.usbserial0 device.
Here is how to read GPS waypoints from a Garmin GPS using GPSBabel on a Mac. The device or file is specified with the -f parameter. In this case it is –f /dev/cu.usbserial0.
sudo gpsbabel –D9 -i garmin -f /dev/cu.usbserial0 -o gpx -F foo.gpx
This includes the debugging flag, -D9, so we will get lots of extra information to help confirm that the transfer is operating correctly.
Serial to USB on Windows
Download the latest driver for your version of Windows from the BAFO driver’s page at: http://bafo.com/bafo/prodrivers.asp. Unzip it, and then connect the serial to USB adapter. The "Add New Hardware" wizard will likely see the new device. Give the wizard the location of the file that you downloaded and follow the instructions.
Once it is finished you can also test the GPS connection by setting your GPS to NMEA mode, then starting HyperTerminal (Start->Accessories->Communications->HyperTerminal). Create a new connection using com3 and setting the speed to 4800 bits per second. You should then start seeing NMEA sentences.
GPSBabel works the same across the three platforms with the exception of the operating system dependent way that you refer to serial ports. On Windows the serial to USB adapter maps the USB to a regular COM port: com3 in our example. To fetch waypoints from a Garmin GPS using the serial to USB adapter under Windows:
gpsbabel -D9 -i garmin -f com3 -o gpx -F waypoint.gpx
Serial to USB on Linux
The BAFO-810 uses the Prolific PL230 driver. Connect the USB to serial adapter while watching the system log in /var/log/messages. It should display 'PL-2303 converter detected' and create the device node /udev/ttyUSB0
sudo gpsbabel -D9 -i garmin -f /dev/ttyUSB0 -o gpx -F foobar.gpx sudo gpsbabel -D9 -i garmin -f /udev/ttyUSB0 -o gpx -F foobar.gpx sudo gpsbabel -D9 -i garmin -f usb: -o gpx -F foobar.gpx
The first of these commands also works for the Belkin Adapter F5U109 and the Geko 201 under Ubuntu 8.04. The system log shows 'MCT U232 converter now attached to ttyUSB0' when the adapter is connected.
To get user (above example uses root access) access add your user to the group uucp (if this group has rw permissions on the tty device (
ll /dev/ | grep ttyUSB →results in→
crw-rw---- 1 root uucp …)) and relogin.
To use the serial port under wine you need to map it - see wine#Serial connection.
Under all three platforms GPSBabel will sometimes have trouble connecting to the GPS (this is true even when it is directly connected to the serial port). The common error is:
GPS_Packet_Read: No DLE GARMIN:Can't init com3
The port specified will vary with operating system. Under Windows USB it will be com3, A Linux serial port is /dev/ttyS0, or /dev/ttyUSB0 for USB, and /dev/cu.USBserial0 for a Mac OSX USB port.
If you retry, sometimes 4-5 times, it seems to finally 'get it' and start transferring data. The -D9 switch to GPSBabel enables the display of debugging information. If you have trouble, try turning your GPS off and back on. Some GPS units will show you the progress of their data downloads and uploads. On the Garmin III Plus this is displayed from Menu->Setup->Interface. The Garmin Rino does not show the status of the data transfer.
You can now connect with your serial GPS even without a serial port!
Problems with USB Adapter: pl2303 under Linux
If you have No DLE Error under Linux, it helps to update your Kernel to 2.6.16.