Previous Next Contents

8. GPS Interface and Moving Map Software

The Global Positioning System, more commonly referred to as GPS, is rapidly becoming the system of choice for all sorts of aviation related navigational needs. The accuracy and ease of use are really hard to beat. This section provides pointers to a variety of software for interfacing with GPS units using the National Marine Electronics Association or manufacturer developed communication protocols.

Unfortunately, interface software that runs under Linux is not available for many commonly available consumer GPS receivers, mostly because the early years of GPS were not particularly Linux friendly. When low cost consumer GPS units first became available, none of the manufacturers provided any documentation for their proprietary communication protocols. This "Microsoft business model" made life difficult for those that wanted to develop their own software for these units. They had no choice but to reverse engineer the interface communication protocol using the manufacturer provided software for Microsoft Windows, serial port monitors, and lots of hard work. The first public specification for the Garmin protocol was done this way (and as you can see below, the Garmin units are pretty well supported under Linux).

Fortunately, the future looks much better for the development of open source GPS software. Many GPS manufacturers have since realized the flaws of the "Microsoft business model", and have chosen to show some respect for their customers right to fair use. Many now publish the specifications for their communication protocols.

Garmin:

http://www.garmin.com/support/iop_spec.pdf

Lowrance:

http://www.lowrance.com/software/cybercom/lsi100.pdf

Magellan:

http://www.magellangps.com/PDFs/v10.pdf

As an aside, here is an idea for a neat GPS software project. The idea would be to develop a software API layer for communicating with most GPS units. The purpose of the API would be to hide the details of the actual (proprietary) protocol being used. This type of approach might do for GPS units, what the seven level hierarchy of the Open Systems Interconnection Reference Model, developed by the International Standards Organization, did for general communications between computers. Another good example is the SANE project, which greatly simplifies the interfacing of scanners under Linux. These projects would serve well as a good conceptual starting point, and to learn from their mistakes as well.

If you have a general question about GPS that is not related to its use under Linux, there are several good internet based resources you can try. The USENET newsgroup sci.geo.satellite-nav is a forum for the discussion of all satellite based navigation systems, with GPS being the most frequent topic of postings. Peter Bennett maintains an excellent web site with information and links to GPS information, hardware and software;

8.1 ChartPlotter

ChartPlotter is a Java based moving map program for use with GPS units that support the NMEA communication protocol (the GPGLL sentence). ChartPlotter can be used with user scanned charts saved in JPEG format. The program transforms a latitude, longitude value to a position on the raster image with the help of 2-4 known reference points.

Author:

Henrik Björkman <henrik.bjorkman@knowit.se>

Latest Release:

0.10, Jul 1999

Copyright:

GNU General Public License

Requires:

Java 1.1 JVM and Java Communications API

Home Page:

http://www.stacken.kth.se/~bjorkman/ChartPlotter/ChartPlotter.html

8.2 Elgaard Positioning System

The Elgaard Positioning System is a Java based application designed for use with GPS receivers. It provides an interface capability: tracks can be saved from units with NMEA format output. For units that support the proprietary Garmin protocol, EPS can upload and download waypoints, routes, and tracks. It can also display user scanned charts with interactive zooming, scrolling, over plotting of tracks, and can compute distances and speeds. EPS runs on any platform with a JVM compatible with the 1.1 version of the Java API.

Author:

Niels Elgaard Larsen <elgaard@diku.dk>

Latest Release:

0.6.7

Copyright:

GNU General Public License

Requires:

Java 1.1 JVM

Home Page:

http://www.diku.dk/users/elgaard/eps/

Comment:

Run as "java ChartFrame"

8.3 gd2

The gd2 program was designed to communicate with Garmin GPS receivers via a serial port using Garmin's proprietary protocol. It can download information such as the current position or time, track log or satellite almanac, and download or upload user routes and waypoints.

It was inspired by M.J. Montgomery's Gardown program and is based on the description of the Garmin protocol given by William Soley and Eric Werme. Since their report does not completely describe all protocol messages, this program does not interpret those additional messages. Their report can be found at the location given in the references section below.

Author:

Randolph Bentson <bentson@grieg.seaslug.org>

Latest Release:

2.7, Oct 1997

Copyright:

GNU General Public License

Source Code:

http://vancouver-webpages.com/pub/peter/gd2.tgz

RPM Binary Distributions:

ftp://ftp.redhat.com/contrib/libc5/i386/gd2-2.7-1.i386.rpm

References:

http://playground.sun.com/pub/soley/garmin.txt

8.4 Gpsd

Gpsd implements a client, server style interface to GPS and Loran-C receivers. The Gpsd server reads NMEA-0183 sentences (or Rockwell binary format data) from a serial port or another Gpsd server, and translates it into a format that is easier for clients to understand. The Gpsd server listens on port 2947 for client connections and can provide position, time, velocity or altitude information to requesting clients. It has been tested with the DeLorme TripMate, EarthMate and Garmin units.

Author:

Remco Treffkorn <remco@emc.rvt.com>

Latest Release:

1.01, Mar 5 2000

Copyright:

GNU General Public License, version 2

Source Code:

ftp://ftp.mayko.com/pub/gpsd/gpsd-1.01.tar.gz

8.5 GPSMan

GPS Manager (GPSMan) is a graphical geographic data manager that provides a user friendly graphical environment for the preparation, inspection and editing of waypoint, route and track data for use in GPS receivers. GPSMan supports a variety of derived computations such as distance and bearing from one waypoint to another, course and distance between waypoints in a track, etc. GPSMan can make cartographic maps to scale, using one of several projections with over plotting of waypoint, route and track data. The map can be saved in Postscript format for printing. GPSMan is a stand-alone Tcl/Tk program that was designed for use at home (as opposed to real-time use). GPSMan currently supports communication with both Garmin and Lowrance receivers.

Author:

Miguel Filgueiras <mig@ncc.up.pt>

Latest Release:

4.0.1, Jan 6 2000

Copyright:

GNU General Public License

Home Page:

http://oat.ncc.up.pt/~mig/hGPSMan.html

8.6 Jeeps

JEEPS is a library of functions written in ANSI C for communicating with Garmin GPS receivers. The library supports all of the link, command, and application protocols documented in the Garmin Interface Specification of Dec 16, 1999. It should work with all currently manufactured Garmin models. The host communication functions treat waypoints and almanacs as high level objects. Support is also provided for datum and cartographic coordinate system conversions.

Author:

Alan Bleasby <ableasby@hgmp.mrc.ac.uk>

Latest Release:

0.0.6, Feb 7, 2000

Copyright:

GNU General Public License

Source Code Distribution:

ftp://ftp.hgmp.mrc.ac.uk/pub/ajb/jeeps/jeeps-0.0.6.tar.gz

8.7 QtGPS

QtGPS is a moving map program for use with GPS units that support the NMEA communication protocol, and is based on the Qt widget library. It provides for simple logging of a journey, replay of a logged journey, a real time moving map display, and the ability to add and edit your own maps and features. Maps can be in bmp, gif, jpg or any other file format that the QPixmap widget can handle directly.

Author:

Mike Banahan <mikeb@gbdirect.co.uk>

Latest Release:

1.0, 09 Sep 1999

Copyright:

GNU General Public License

Requires:

Qt widget libraries

Source Code:

http://www.gbdirect.co.uk/downloads/


Previous Next Contents