NMEA Server

Some visitors have inquired about client applications. See the Clients section below.

Since the serial port on a computer system is a scarce resource, and since I would like to use several tools simultaneously to analyze the NMEA-0183 sentences output by my GPS receiver, I'm developing a simple server application that distributes NMEA data to a number of listeners.

Details

This software is under development in my spare time, and it still lacks some of the capabilities I personally need, but I've achieved good results already with Garmin and Motorola GPS receivers and listener applications ranging from telnet sessions to custom Java visualization and analysis tools.

I intend to have the finished product support the following requirements:

Capabilities

Of the capabilities listed above, only the last one remains to be implemented.

One capability that is intentionally not a requirement is to support applications that are designed to work directly with a serial port. This application is intended to support custom analysis tools running on a local-area network. It will use standard IP stream sockets for communication.

I'm not the first one to invent this wheel; see the Similar Software by Others section for a few of the alternatives I've discovered.

Performance Issues

In the design I'm currently pursuing, I emphasized the need for the server to avoid being adversely affected by slow or faulty connections. On connections that are too slow or are experiencing severe transmission problems, the server will allow messages to be lost. Other connections will not be made to suffer from difficulties on a problem connection.

Documentation

This is it:

    nmead -h

Since the server is still under development in my spare time, what time I do spend on the project is still spent either on the server itself or on client applications. Once I've reached a good stopping point with the server, I'll provide better user documentation.

Get the Source

The software can be freely distributed under the terms of the GNU General Public License (GPL). The reference platform is Red Hat Linux 6.2, but I expect the software to be compatible with other UNIX workalikes as well. I also will investigate the option of porting the software to Windows platforms using the Cygwin development tools.

This software is still under development. Command-line options, default values, and program behavior are all subject to change. Comments, bug reports, and criticism are welcome (use this contact form).

The latest version (01.01.00) is here (gzipped tar ). This update is intended to eliminate some portability problems that were discovered in the previous version.

The previous version is here (gzipped tar ).

Browser Unzipping

The files referenced above are stored on the server in gzipped tar format, but I've learned that some browsers, if so configured, will automatically unzip the file upon downloading, making it an ordinary tar file even if it retains the .gz extension.

If you use the command

    tar xzf nmead.src.01.01.00.tar.gz
and get errors, try omitting the z argument.

Prerequisites

You'll need a Linux system or a similar UNIX-like system with a C compiler and linker. You'll also need zlib if it isn't already installed on your system.

Clients

Most of the client tools I use aren't suitable for publishing, but here's an example client application.

Similar Software by Others

I'm not the only one who's had the bright idea of distributing navigation data via IP. Some of the alternatives include:

I know I've seen more, but their locations are eluding me for the time being.


Last update: 03 Aug 2000 -- (Copyright) -- (Contact)