<!doctype linuxdoc system>

<!--
$Id: Aviation-HOWTO.sgml,v 1.4 2000/04/15 04:41:55 jcp Exp jcp $
 -->

<article>

<title>Linux Aviation HOWTO
<author>John C. Peterson,
<tt><htmlurl url="mailto:jcp@eskimo.com"
             name="&lt;jcp@eskimo.com&gt;"></tt>
<date>v1.4, 14 Oct 2000

<abstract>
This document is intended to provide pointers to software packages
that run under the Linux operating system and are useful to private,
commercial, or military pilots. The ultimate goal is to enable pilots to
use the Linux operating system for all their aviation related computing
needs, totally eliminating the need for other operating systems. I
want to encourage pilots who are already using Linux to contribute to
this document, either by providing pointers to existing software, or by
writing new applications for Linux.
</abstract>

<toc>

<sect>Introduction

<p>
The business and sport of aviation is about as mission critical as
any human endeavor gets. Pilots have an implicit expectation for their
aircraft to be well designed, ergonomic, predictable, reliable, and safe
to operate. Certificated aircraft are designed and built to engineering
and quality standards that far exceed those of <em/any/ other consumer
product.  In my opinion, any computing environment used for aviation
related applications should meet similar high standards. I also believe
that the open software development model and the Linux operating system
is the computing environment with the greatest potential to meet such
high standards.  Indeed, if the aircraft I flew failed at the same rate
as some operating systems do, I would have bought the farm as they say,
a very long time ago!

<p>
This document is intended to provide pointers to software packages that
run under Linux and are of obvious interest to a private, commercial,
or military pilot.  Most of the software packages mentioned in this
release are freely distributable, and come with source code. However,
I will gladly include entries for commercial products from any vendors
who are Linux friendly.

<p>
My own personal interests center around VFR cross country flight in
single engine airplanes as well as soaring, or flying gliders. The
first few revisions of this document will probably reflect my bias
somewhat. However, submissions relating to any aspect of the piloting of
all categories of certificated aircraft; airplane, rotorcraft, glider,
and lighter than air are heartily encouraged and most welcome. If you
encounter such an application that is not listed here, or have written
a new one, please send me a note so I can add an entry for it.

<p>
Each of the software pointers in this document consists of a brief
description of the software, information on who wrote it, where to find
it, and user comments in some cases. In the interest of brevity, I
did not include explicit pointers to source code or binaries when they
are available through reasonably obvious links on the software's home
page.

<sect1>Recent Changes

<p>
<descrip>
<tag/Version 1.4/
Added a new entry for the AirLog logbook package. Added some additional
references to the section on embedded hardware, as well as a short blurb
about the availability of Linux for the iPaq handheld. Updated the
contact information for the author, (new e-mail address).
<tag/Version 1.3/
Added a small section on hardware, mostly pointers to other resources.
I also added entries for several newly discovered packages;
Gpsd, GPSMan, and JEEPS.
<tag/Version 1.2/
I added some new and more focused application categories. For some of
them, I added pointers to other information resources that address issues
related to that particular application area, but from a more generic,
and non-Linux specific perspective. Also added entries for several newly
discovered software packages.  I removed the references to the Linux
Documentation Project, the maintainers never responded in any way to my
request to add this document to the archive?
<tag/Version 1.1/
Added information about the linux-aviation mailing list.
Some minor changes in grammar, as well as a whole bunch of corrections
to my consistent abuse of punctuation. Thanks to my good friend David
Moore for these corrections.
<tag/Version 1.0/
First public release.
</descrip>

<sect1>Availability

<p>
This document was written in SGML, or Standard Generalized Markup Language
format. SGML documents are translatable into popular formats such as
standard HTML as well as LaTeX (and dvi, postscript from there). You can
obtain the most recent versions of the raw SGML and formatted versions
of this document from the following location:

<itemize>
<item><tt><url url="http://www.ibiblio.org/fplan/Aviation-HOWTO/"></tt>
</itemize>

<sect1>Copyright

<p>
The Linux Aviation HOWTO is Copyright &copy; 1998-2000 John C. Peterson
<tt><htmlurl url="mailto:jcp@eskimo.com"
             name="&lt;jcp@eskimo.com&gt;"></tt>.

<p>
This document may be reproduced and distributed in whole or in part,
in any medium, physical or electronic, as long as this copyright notice
is retained on all copies. Commercial redistribution is allowed and
even encouraged. However, the author would like to be notified of any
such distributions.

<p>
All translations, derivative works, or aggregate works incorporating
this document must be covered under this copyright notice. That is,
you may not produce a derivative work from this document and impose
additional restrictions on its distribution. Exceptions to these rules
may be granted under certain conditions. Please contact the author at
the address given below.

<sect>Other Resources<label id="other-resources">

<p>
If you don't find the answers to your questions in this document,
you may want to subscribe to the linux-aviation mailing list. All
topics related to using Linux for Aviation applications are welcome.
To subscribe, send the command <tt>"subscribe linux-aviation"</tt>
(without the quotes) in the body of a mail message to
<tt><htmlurl url="mailto:Majordomo@mail.nl.linux.org"
name="&lt;Majordomo@mail.nl.linux.org&gt;"></tt>.
If you just want to browse the postings without actually
joining the list, the archives can be accessed online at

<itemize>
<item> <tt><url url="http://mail.nl.linux.org/lists/linux-aviation/"></tt>
</itemize>

<sect>Java based Software

<p>
We Linux users all owe Scott McNealy and the folks at Sun Microsystems
a round of applause for the development of Java. The write once, run
anywhere feature of Java now makes it very easy for the developers of
application software to let their users decide which operating system
they will run the application on. I believe this wonderful new freedom
that Java users now enjoy is the big reason why Bill "you know who"
really doesn't like Java. For some of us, this adds an extra dimension
of enjoyment to running Java applications.

<p>
In the course of my search for Linux aviation software, I discovered
several packages of interest that were written in Java. To maximize
the accessibility of these packages to other pilots, I decided it
would be appropriate to include a very brief introduction to running
Java software under Linux. As I really don't think it's a good idea to
duplicate existing information, I will redirect you to other information
resources for more advanced Java topics.

<sect1>Overview of Java Software

<p>
Java is an object oriented programming language developed by Sun
Microsystems. It shares many similarities with the C++ language
developed by AT&amp;T.  What makes Java unique is that it provides
software developers with a write once, run anywhere capability. Java
source code is compiled into a portable byte code rather than native
instructions intended for a specific computer architecture. The byte
code can then be executed on any system for which a Java Virtual Machine,
or JVM is available. The JVM interpreter handles file io, graphics and
so forth in a manner consistent with the given platform. The application
developer does not need to be concerned with portability issues.

<p>
Although you may have to go to the extra effort involved with installing
a JVM interpreter on your system, it's not really that difficult as you
will see below. The JVM needs to be compliant with the version of the Java
Application Programming Interface (API) associated with the software you
want to run on it. At this time, most Java software uses the 1.1 level
API. You may need to update your JVM periodically to remain compatible
with the code you want run on it.

<p>
Java software comes in two different flavors, <em/applets/
and <em/applications/. If you've done much surfing of the web, chances
are good that you've executed an applet before. Applets are designed to
be executed from within a Java capable web browser such as Netscape's
Navigator or Communicator. When you point your browser to a web page that
contains HTML tags that reference an applet, the browser transfers the
applet code from the remote server to your local system and then executes
the code. The JVM interpreter that executes the byte code is actually part
of the web browser itself. For frequently used applets, you can transfer
the HTML page(s) and the associated applet(s) to your system. Then you
can direct your browser to the locally stored HTML page, eliminating
the overhead associated with network transfers.

<p>
On the other hand, Java applications are designed to be installed on
your local machine and executed using a stand alone JVM interpreter.
They operate very much like a spread sheet, word processor, or similar
application that was written in a language that is compiled into native
code. The relevant point to remember is that the JVM interpreter you
need to run a given Java software package will depend on if it is an
applet or an application. The next section describes the various Java
Virtual Machines available for Linux.

<sect1>Running Java Applets under Linux

<p>
Running Java applets under Linux is relatively straight forward. The
easiest approach is to get a Java aware web browser. Right now the
only such browsers available for Linux are Netscape's Navigator and
Communicator. If you would rather not use a web browser there is another
option. Most JVM distributions for Linux contain an application called
<tt/appletviewer/ that can be used instead of a browser. You may want to
consider this later option if you have a low end machine (like my home
system :^). Netscape can take a long time to start up on such systems. Note
that the command line argument passed to your browser or <tt/appletviewer/
is the name of the HTML file that references the applet (<em/not/ the
name of the applet).

<sect1>Running Java Applications under Linux

<p>
To run a Java <em/application/ under Linux you will need a stand alone
JVM interpreter. Sun Microsystems provides several JVM products such as
the Java Runtime Environment (JRE) which provides minimal runtime support,
and the Java Developer's Kit (JDK) which also includes a Java compiler
and other development tools. Sun supports these products on several
UNIX systems, but does not support Linux as an official platform at
this time. However, a group of volunteers called the Blackdown project
have ported Sun's JVM to Linux under the terms of the Sun source code
license agreement.  The results of their work are freely available to all
Linux users. They have done an excellent job, installation is easy,
and a good FAQ is available from their site. Because Java technology is
a rapidly moving target, the Blackdown JVM is your best bet in terms of
compatibility with the Sun Java API. Unless disk space is an issue, get
the JDK package and you will have everything you will ever likely need.

<p>
Another JVM interpreter for Linux is available from the Kaffe project.
They have developed a freely distributable JVM (including source code)
for Unix systems directly from the specifications. The latest version is
of very high quality, I found it very easy to build and install. Red
Hat users can download RPM packages directly from the Kaffe web
site. To be honest, I did have some difficulty running some of the Java
software described in this document under Kaffe. However, this is quite
understandable since they are developing the JVM without using any Sun
code (in their words, "a clean room implementation"). I am certain they
will eventually reach their goal, and I am glad to see someone working
on an implementation independent of Sun. This adds credibility to the
notion that Java technology is open.  You can help them reach their goal
by reporting any difficulties you might experience.  You can find the
JVM interpreter discussed above at the following locations:

<descrip>
<tag/Sun Microsystems Java Technology Home Page/
<tt><url url="http://java.sun.com/"></tt>
<tag/Sun Microsystems Java Platform Documentation/
<tt><url url="http://www.javasoft.com/docs/"></tt>
<tag/Blackdown JDK Port/
<tt><url url="http://www.blackdown.org/"></tt>
<tag/Blackdown Java FAQ/
<tt><url url="http://www.place.org/&tilde;stevemw/java/FAQ/FAQ-java-linux.html"></tt>
<tag/Kaffe - a freely distributable JVM/
<tt><url url="http://www.kaffe.org/"></tt>
<tag/The GNU Java Project/
<tt><url url="http://www.gnu.org/software/java/java.html"></tt>
</descrip>

<p>
When running Java applications, the command line argument passed to your
JVM interpreter, such as <tt/java/ or <tt/kaffe/, is the name of the
class to be executed, <em/not/ the name of a file. When running Java
applications, it is not uncommon for the interpreter to experience
difficulty locating the byte code for the classes it needs. When
this happens, use the <tt/-v/ or <tt/-verbose/ argument to instruct
the interpreter to print out more detailed information. This will
include information regarding the classes being loaded, and from what
directories. You may need to explicitly specify what directories are
to be searched for Java code by setting the <tt/CLASSPATH/ environment
variable. It is a colon delimited list of directories or Jar files
(which are actually zip files) that contain Java code.  Once you get
things figured out, you may want to write a small shell script to
simplify the process of starting the application.

<sect>Exam Preparation and Study Aids

<sect1>PilotPal

<p>
PilotPal is a Java applet designed to assist (student) pilots studying
for the US FAA written examinations. The latest version provides
study questions for both the Private Pilot and Instrument examinations.
If you don't have a high bandwidth connection to the Internet, you may
want to download the applet and install it on your own machine.

<descrip>
<tag/Author:/ Roshan Shrestha
<tt><htmlurl url="shrestha@ct1.nai.net"
             name="&lt;shrestha@ct1.nai.net&gt;"></tt>
<tag/Latest Release:/ Oct 1998
<tag/Copyright:/ Freely Distributable
<tag/Requires:/ Java compatible browser
<tag/Home Page:/ <tt><url url="http://w3.nai.net/&tilde;shrestha/"></tt>
</descrip>

<sect>Logbook Software

<p>
This section provides pointers to a variety of software for logging of
flight time. Despite the many advantages of electronic logbooks, in most
countries you still must maintain a written logbook to satisfy various
regulatory requirements. In the United States for example, the logging
of training time must include the instructor's signature (see part 61,
section 61.51 of the
<htmlurl url="http://www.faa.gov/avr/afs/fars/far_idx.htm" name="FARs">
for details). In simple terms, if you don't also maintain a written
logbook, you run the risk of not meeting the requirements of currency,
a certificate, or a rating!

<sect1>Airlog

<p>
Airlog is a flight logging system designed to meet the unique needs
of glider pilots and students. The Java based client allows multiple
users to access a common database (interface drivers are provided for
the Instant DB, PostgreSQL, and Oracle database systems). Referential
integrity is used to insure valid data.  When multi user functionality
is enabled, user access to the common database is authenticated using
a login, password form that is presented at startup.

<p>
Airlog also supports searches of the common database, as well as a
report generation capability. The "Training Barometer" and "Speed Input"
reports are designed to assist both instructors and students in the
training process.  A "Fit for Flight, Instruction" report is planned
for a future release.

<p>
Airlog was developed in Denmark with an emphasis on Danish regulations,
but was localized from the ground up. Other languages can be supported
by simply providing a "message text catalog" for the desired language
(catalogs are provided for both Danish and English).

<descrip>
<tag/Authors:/
Per Jensen
<tt><htmlurl url="mailto:highflier@users.sourceforge.net"
             name="&lt;highflier@users.sourceforge.net&gt;"></tt>,
Ken Andersen
<tt><htmlurl url="mailto:kentan@get2net.dk"
             name="&lt;kentan@get2net.dk&gt;"></tt>,
Frederik Hansen
<tt><htmlurl url="mailto:roirex@users.sourceforge.net"
             name="&lt;roirex@users.sourceforge.net&gt;"></tt>,
Steve Brown
<tt><htmlurl url="mailto:delancie@users.sourceforge.net"
             name="&lt;delancie@users.sourceforge.net&gt;"></tt>
<tag/Latest Release:/ 0.52, 27 Aug 2000
<tag/Copyright:/ GNU General Public License, version 2
<tag/Requires:/ Java 1.2.2 JVM
<tag/Home Page:/ <tt><url url="http://airlog.sourceforge.net/"></tt>
</descrip>

<sect1>GNU Pilot LogBook Pro

<p>
The GNU Pilot LogBook Pro application is designed to assist pilots
that want to maintain an electronic log of their flight information. The
program has features that make it easy to produce statistics derived
from the logged flights: total hours, number of landings and more.
This is a beta release and works well (although many of the desired
features are not yet implemented).

<descrip>
<tag/Author:/ Matthew S. Wood
<tt><htmlurl url="mailto:skibum@beer.stampede.org"
             name="&lt;skibum@beer.stampede.org&gt;"></tt>
<tag/Latest Release:/ 0.90
<tag/Copyright:/ GNU General Public License
<tag/Source Code Distribution:/
<tt><url url="ftp://ftp.stampede.org/skibum/gplbp-0.90.tar.gz"></tt>
</descrip>

<sect1>LogbookXLS

<p>
LogbookXLS is a Microsoft Excel 5.0 spreadsheet designed to record
flight time in powered aircraft. LogbookXLS looks almost exactly like
any other commercially produced printed logbook. It has columns for date,
aircraft type, registration number, flight number, airports, etc.

<descrip>
<tag/Author:/ Jerome Gerald Schnedorf III
<tt><htmlurl url="mailto:jayschne@sprynet.com"
             name="&lt;jayschne@sprynet.com&gt;"></tt>
<tag/Latest Release:/ 1.2
<tag/Copyright:/ Freely Distributable
<tag/Requires:/ Excel compatible spreadsheet application
<tag/Home Page:/
<tt><url url="http://home.sprynet.com/&tilde;jayschne/Logbook.htm"></tt>
<tag/Comments:/
From the editor: "I tried using this with the spreadsheet from the
Applixware suite and couldn't seem to get it to work. I'm including this
anyway because I have second hand reports that it works fine with the
StarOffice spreadsheet (and others I'm sure)."
</descrip>

<sect1>Pilot Logbook for Grok

<p>
The Pilot Logbook for Grok is a database template designed for use with
the xmbase-grok database manager. It provides support for many of the
features one would want in an electronic logbook such as; customized
data entry forms, the ability to sort, search and query the database,
as well as flexible exporting of data to other formats. The xmbase-grok
graphical Form Editor makes it easy to modify the data entry forms to
meet the specialized needs and preferences of each user. The current
release includes a version for glider pilots, a version designed for
power pilots will appear in a future release.

<descrip>
<tag/Author:/ John C. Peterson
<tt><htmlurl url="mailto:jcp@eskimo.com"
             name="&lt;jcp@eskimo.com&gt;"></tt>
<tag/Latest Release:/ 0.5, 13 Sep 1999
<tag/Copyright:/ GNU General Public License, version 2
<tag/Requires:/ xmbase-grok application
<tag/Home Page:/
<tt><url url="http://www.ibiblio.org/fplan/logbook/"></tt>
</descrip>

<sect>Charts and Cartography

<p>
This section provides pointers to software packages and data
for computer based aviation charting and cartography. Such packages
are really a specialized type of Geographic Information System or GIS
(an information system that is designed to manipulate and display data
referenced by spatial or geographic coordinates). With this in mind,
I have also included pointers to GIS software packages that were not
developed specifically for aviation use, but may still be of interest
to aviators.

<p>
Readers with general questions about charting or cartography are most
likely to find answers from the GIS community. The USENET newsgroup
<tt><htmlurl url="news:comp.infosystems.gis" name="comp.infosystems.gis"></tt>
was created specifically for the discussion of GIS related topics. There
is an excellent GIS FAQ, available in HTML and plain ASCII text formats
respectively at;

<itemize>
<item><tt><url url="http://www.census.gov/ftp/pub/geo/www/faq-index.html"></tt>
<item><tt><url url="ftp://ftp.census.gov/pub/geo/gis-faq.txt"></tt>
</itemize>

<sect1>avdbtools

<p>
The avdbtools package is designed to assist in creating and maintaining
databases for aviation applications. As of this release, avdbtools
consists of a single application that reads the databases distributed
by the United States National Flight Data Center and converts them
into formats usable by other aviation related applications. The current
release can generate output for both ICAO Map and fplan.

<descrip>
<tag/Author:/ John C. Peterson
<tt><htmlurl url="mailto:jcp@eskimo.com"
             name="&lt;jcp@eskimo.com&gt;"></tt>
<tag/Latest Release:/ 0.3, Mar 2000
<tag/Copyright:/ GNU General Public License, version 2
<tag/Home Page:/
<tt><url url="http://www.ibiblio.org/fplan/avdbtools/"></tt>
<tag/Comments:/
From the author: "The US National Airspace Data is no longer available
for free download over the Internet. However, the data can now be
obtained on an ISO 9660 CD-ROM for a nominal fee by writing to the FAA.
The latest release of avdbtools has been updated to work with the new
NASD CD-ROM distributions."
</descrip>

<sect1>GRASS

<p>
Geographic Resources Analysis Support System, more commonly referred
to as GRASS, is a free Geographic Information System (GIS) for data
management, image processing, graphics production, spatial modeling,
and visualization of many types of data. It was originally written by
the US Army Construction Engineering Research Laboratories (USA-CERL)
branch of the US Army Corp of Engineers as a tool for land management
and environmental planning by the military. GRASS has evolved into a
powerful utility with a wide range of applications in many different
areas of scientific research.

<p>
The official headquarters for GRASS support, research, and development is
now at Baylor University, within the the Center for Applied Geographic
and Spatial Research. The development currently underway has resulted
in two new GRASS versions 4.2 and 5.0, the release of new manuals and
documentation, as well as continued research and development for new
versions.

<descrip>
<tag/Maintainers:/ GRASS Development Team
<tt><htmlurl url="mailto:grass@baylor.edu"
             name="&lt;grass@baylor.edu&gt;"></tt>
<tag/Latest Release:/ 5.0 beta2, 26 Jul 1999
<tag/Copyright:/ Copyrighted, free for non-commercial use
<tag/Home Page:/
<tt><url url="http://www.baylor.edu/&tilde;grass/"></tt>
<tag/Comments:/
From the editor: "Not for users with small disk drives!"
</descrip>

<sect1>ICAO Map

<p>
ICAO Map is designed to interactively display maps or charts for aviation
applications. The input is a so called "world file", an ASCII file
containing descriptions of geographic objects such as airports, roads,
cities, navigational aids, and the like. The generated map can be displayed
in an X11/Motif window or saved as a postscript format file. Notable
features include: selectable Lambert or Mercator projections, zooming,
scrolling, rubber band lines for measuring distances and tracks, etc.
Many additional features are available for both motorized and soaring
flights.

<descrip>
<tag/Author:/ Martin Pauly
<tt><htmlurl url="mailto:pauly@mail.oih.rwth-aachen.de"
             name="&lt;pauly@mail.oih.rwth-aachen.de&gt;"></tt>
<tag/Latest Release:/ 1.0, Feb 1996
<tag/Copyright:/ GNU General Public License, version 2
<tag/Home Page:/
<tt><url url="http://www.oih.rwth-aachen.de/&tilde;pauly/icao.html"></tt>
<tag/Source Code Distribution:/
<tt><url url="ftp://ventus.oih.rwth-aachen.de/icao/icao-1.0/"></tt>
<tag/Comments:/
From the editor: "There hasn't been any development activity since
the 1.0 release. Does anyone have current contact information for
Martin? It would be helpful to determine if he has any plans for
continued development."
</descrip>

<sect1>TNTmips and TNTlite

<p>
TNTmips is a commercial software package for fully integrated GIS,
desktop cartography, geospatial database management, image processing,
CAD, and TIN.  The entire TNT product line is available for all popular
computing platforms. In addition, TNT project files are transparently
portable; the same files can be used on different computer types without
any explicit conversion.  TNTlite is a free version of TNTmips, TNTedit,
and TNTview for students and others with small projects. It can be
downloaded by ftp at no cost, or purchased on CD-ROM for a nominal cost
of 10 USD.

<descrip>
<tag/Vendor:/ MicroImages, Inc.
<tt><htmlurl url="mailto:info@microimages.com"
             name="&lt;info@microimages.com&gt;"></tt>
<tag/Latest Release:/ New updates quarterly (Mar, Jun, Sep, Dec)
<tag/Copyright:/ Commercial and Free (binary only) versions available
<tag/Home Page:/
<tt><url url="http://www.microimages.com/"></tt>
<tag/Comments:/
From the editor: "Many positive comments from users of TNTmips, TNTlite
on the USENET newsgroups. The folks at MicroImages have done an excellent
job with regard to the number of platforms they support."
</descrip>

<sect1>US Aviation Sectionals CD-ROM

<p>
This CD-ROM contains raster scans of all NOAA Sectionals published for
the continental United States. Each sectional is composed of smaller
image tiles that average about 600 kilobytes each. The data files
are primarily intended for use with the company's moving map software
(available for Microsoft Windows only). However, the files are
in Portable Network Graphics or PNG format, so they are readable by most
of the image conversion and display software packages that are in common
use under Linux.

<descrip>
<tag/Vendor:/ RMS Technology, Inc.
<tt><htmlurl url="mailto:info@rmstek.com"
             name="&lt;info@rmstek.com&gt;"></tt>
<tag/Latest Release:/ New updates every 6-9 months
<tag/Copyright:/ Copyrighted (c) RMS Technology, Inc. (99.95 USD)
<tag/Home Page:/
<tt><url url="http://www.rmstek.com/"></tt>
</descrip>

<sect>VFR Preflight Planning

<sect1>fplan

<p>
The fplan application is designed to assist general aviation pilots in
creating flight plans for cross country flights in powered aircraft.
It reads a planfile containing a description of the flight: departure
and destination airports, navigation aids, intermediate waypoints, winds
aloft, fuel consumption rates, and produces a flight plan including
wind corrected magnetic headings, distance, estimated time and fuel
consumption for each leg, latitude, longitude and VOR fixes for each
checkpoint, etc. A graphical preview of the flight is available on
systems with X11 Windows and the XView Toolkit.

<descrip>
<tag/Author:/ Steve Tynor
<tag/Maintainer:/ John C. Peterson
<tt><htmlurl url="mailto:jcp@eskimo.com"
             name="&lt;jcp@eskimo.com&gt;"></tt>
<tag/Latest Release:/ 1.4.2, 01 May 1999
<tag/Copyright:/ GNU General Public License, version 2
<tag/Home Page:/
<tt><url url="http://www.ibiblio.org/fplan/"></tt>
<tag/Comments:/
From the author: "The fplan software is now part of the Gnome
project. Michael Johnson <tt><htmlurl url="mailto:johnsonm@redhat.com"
name="&lt;johnsonm@redhat.com&gt;"></tt> has joined the fplan development
team, and will help with the port to the Gnome, Gtk+, Glib environment. A
comprehensive graphical user input interface is in the early planning
stages. If you would like to participate in the development of fplan
you are encouraged to join the fplan-list mailing list. To subscribe,
send mail to <tt><htmlurl url="mailto:fplan-list-request@gnome.org"
name="&lt;fplan-list-request@gnome.org&gt;"></tt> with the word
"subscribe" (without the quotes) in the subject line."
</descrip>

<sect>GPS Interface and Moving Map Software

<p>
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 <tt><htmlurl url="http://www.nmea.org/"
name="National Marine Electronics Association"></tt> or manufacturer
developed communication protocols.

<p>
Unfortunately, interface software that runs under Linux is <em/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).

<p>
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.

<descrip>
<tag/Garmin:/
<tt><url url="http://www.garmin.com/support/iop&lowbar;spec.pdf"></tt>
<tag/Lowrance:/
<tt><url url="http://www.lowrance.com/software/cybercom/lsi100.pdf"></tt>
<tag/Magellan:/
<tt><url url="http://www.magellangps.com/PDFs/v10.pdf"></tt>
</descrip>

<p>
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 <em/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 <tt><htmlurl
url="http://www.cisco.com/univercd/cc/td/doc/cisintwk/ito_doc/osi_prot.htm"
name="Open Systems Interconnection Reference Model"></tt>,
developed by the <tt><htmlurl url="http://www.iso.ch/"
name="International Standards Organization"></tt>, did for general
communications between computers.  Another good example is the
<tt><htmlurl url="http://www.mostang.com/sane/" name="SANE"></tt> 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.

<p>
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 <tt><htmlurl url="news:sci.geo.satellite-nav"
name="sci.geo.satellite-nav"></tt> 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;

<itemize>
<item><tt><url url="http://vancouver-webpages.com/pub/peter/index.html"></tt>
</itemize>

<sect1>ChartPlotter

<p>
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.

<descrip>
<tag/Author:/ Henrik Bj&ouml;rkman
<tt><htmlurl url="mailto:henrik.bjorkman@knowit.se"
             name="&lt;henrik.bjorkman@knowit.se&gt;"></tt>
<tag/Latest Release:/ 0.10, Jul 1999
<tag/Copyright:/ GNU General Public License
<tag/Requires:/ Java 1.1 JVM and Java Communications API
<tag/Home Page:/
<tt><url url="http://www.stacken.kth.se/&tilde;bjorkman/ChartPlotter/ChartPlotter.html"></tt>
</descrip>

<sect1>Elgaard Positioning System

<p>
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.

<descrip>
<tag/Author:/ Niels Elgaard Larsen
<tt><htmlurl url="mailto:elgaard@diku.dk"
             name="&lt;elgaard@diku.dk&gt;"></tt>
<tag/Latest Release:/ 0.6.7
<tag/Copyright:/ GNU General Public License
<tag/Requires:/ Java 1.1 JVM
<tag/Home Page:/
<tt><url url="http://www.diku.dk/users/elgaard/eps/"></tt>
<tag/Comment:/
Run as "java ChartFrame"
</descrip>

<sect1>gd2

<p>
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.

<p>
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.

<descrip>
<tag/Author:/ Randolph Bentson
<tt><htmlurl url="mailto:bentson@grieg.seaslug.org"
             name="&lt;bentson@grieg.seaslug.org&gt;"></tt>
<tag/Latest Release:/ 2.7, Oct 1997
<tag/Copyright:/ GNU General Public License
<tag/Source Code:/
<tt><url url="http://vancouver-webpages.com/pub/peter/gd2.tgz"></tt>
<tag/RPM Binary Distributions:/
<tt><url url="ftp://ftp.redhat.com/contrib/libc5/i386/gd2-2.7-1.i386.rpm"></tt>
<tag/References:/
<tt><url url="http://playground.sun.com/pub/soley/garmin.txt"></tt>
</descrip>

<sect1>Gpsd

<p>
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.

<descrip>
<tag/Author:/ Remco Treffkorn
<tt><htmlurl url="mailto:remco@emc.rvt.com"
             name="&lt;remco@emc.rvt.com&gt;"></tt>
<tag/Latest Release:/ 1.01, Mar 5 2000
<tag/Copyright:/ GNU General Public License, version 2
<tag/Source Code:/
<tt><url url="ftp://ftp.mayko.com/pub/gpsd/gpsd-1.01.tar.gz"></tt>
</descrip>

<sect1>GPSMan

<p>
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.

<descrip>
<tag/Author:/ Miguel Filgueiras
<tt><htmlurl url="mailto:mig@ncc.up.pt"
             name="&lt;mig@ncc.up.pt&gt;"></tt>
<tag/Latest Release:/ 4.0.1, Jan 6 2000
<tag/Copyright:/ GNU General Public License
<tag/Home Page:/
<tt><url url="http://oat.ncc.up.pt/~mig/hGPSMan.html"></tt>
</descrip>

<sect1>Jeeps

<p>
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.

<descrip>
<tag/Author:/ Alan Bleasby
<tt><htmlurl url="mailto:ableasby@hgmp.mrc.ac.uk"
             name="&lt;ableasby@hgmp.mrc.ac.uk&gt;"></tt>
<tag/Latest Release:/ 0.0.6, Feb 7, 2000
<tag/Copyright:/ GNU General Public License
<tag/Source Code Distribution:/
<tt><url url="ftp://ftp.hgmp.mrc.ac.uk/pub/ajb/jeeps/jeeps-0.0.6.tar.gz"></tt>
</descrip>

<sect1>QtGPS

<p>
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.

<descrip>
<tag/Author:/ Mike Banahan
<tt><htmlurl url="mailto:mikeb@gbdirect.co.uk"
             name="&lt;mikeb@gbdirect.co.uk&gt;"></tt>
<tag/Latest Release:/ 1.0, 09 Sep 1999
<tag/Copyright:/ GNU General Public License
<tag/Requires:/ Qt widget libraries
<tag/Source Code:/
<tt><url url="http://www.gbdirect.co.uk/downloads/"></tt>
</descrip>

<sect>Soaring Software

<sect1>Glider Performance

<p>
Glider Performance is a Microsoft Excel 5.0 spreadsheet that allows
the user to estimate the performance of a sailplane. The data inputs
required are readily available for almost all sailplanes (all up weight,
wing area and span, best L/D and stall speeds).  Glider Performance is
intended to be used as an instructional tool for pilots of all skill
levels. Among the key outputs are the rate of sink and turn radius for
different bank angles. The results of these calculations should provide
the pilot with insight that can be applied while flying. You will need
a word processor that can read the Microsoft Word format, the companion
documentation is written in this format.

<descrip>
<tag/Author:/ Chuck Smith
<tt><htmlurl url="mailto:csmith9@vivanet.com"
             name="&lt;csmith9@vivanet.com&gt;"></tt>
<tag/Latest Release:/ 1.0, May 14, 1995
<tag/Copyright:/ Freely Distributable
<tag/Requires:/ Excel compatible spreadsheet application
<tag/Source Code:/
<tt><url url="ftp://csrp.tamu.edu/pub/software/glidperf&lowbar;xls.zip"></tt>
<tag/Documentation:/
<tt><url url="ftp://csrp.tamu.edu/pub/software/glidperf&lowbar;doc.zip"></tt>
<tag/Comments:/
From the editor: "Worked for me using the spreadsheet from the Applixware
suite. However, there appeared to be a small bug in the formula in cell
A14. It erroneously checks cell F13 for a value of 'Y' or 'n', should
check for either 'Y' or 'N' (both upper case)."
</descrip>

<sect1>IGCview

<p>
IGCview is a Java application designed for soaring pilots
who want to display and analyze GPS log files in the
<tt><htmlurl url="http://www.fai.org/gliding/"
name="International Gliding Commission"></tt>
or Gardown formats. Both formats contain simple ASCII records of time
stamped latitude and longitude values. The IGC format also contains
altitude information (pressure and/or GPS) and the task (route). IGCview
can also import Gardown format files and export them in IGC format.

<p>
The program is oriented wholly towards looking at the GPS log traces
produced by glider flights. You can examine other traces, but the analysis
will not be particularly useful. It can compute quantities such as: start
to finish, average task and individual leg speeds, climb rates, L/D,
etc. It can also read and compare multiple flights in detail making it
a very useful learning tool for cross country and competition oriented
soaring pilots.

<descrip>
<tag/Authors:/
Ian Forster-Lewis
<tt><htmlurl url="mailto:Ian.Lewis@cl.cam.ac.uk"
             name="&lt;Ian.Lewis@cl.cam.ac.uk&gt;"></tt>,

Ruud Holswilder
<tt><htmlurl url="mailto:hwl@multiweb.nl"
             name="&lt;hwl@multiweb.nl&gt;"></tt>
<tag/Latest Release:/ Mar 1998
<tag/Copyright:/ Freely Distributable
<tag/Requires:/ Java 1.1 JVM
<tag/Home Page:/
<tt><url url="http://www.geocities.com/CapeCanaveral/Hangar/1850/igcview/"></tt>
</descrip>

<sect1>Soaring Task Map

<p>
Soaring Task Map is a Tcl/Tk script designed to simulate a soaring task
flight to a declared goal.  Thermals of random size, strength and position
are created at the beginning of the flight.  Controls are provided for
making air speed adjustments and for steering the glider while flying
the task.

<descrip>
<tag/Author:/ Alexander S. Caldwell M.D.
<tt><htmlurl url="alcald@psnw.com"
             name="&lt;alcald@psnw.com&gt;"></tt>
<tag/Latest Release:/ 21 Feb 1999
<tag/Copyright:/ Freely Distributable
<tag/Requires:/ Tcl/Tk
<tag/Home Page:/
<tt><url url="http://www.psnw.com/&tilde;alcald/map.html"></tt>
</descrip>

<sect1>tpedit

<p>
The tpedit program is designed to edit the turn point data distributed
by the British Gliding Association. It takes as input a structured text
file and can output the data in the same structured text, as an html
table (similar to the one the BGA has on their web site), or in tpgps
format. The tpgps format is used by the "tpgps" program which has not
been distributed to the public yet.

<p>
Since tpedit was written in Perl, it can easily be modified to handle
databases with fields that differ from the BGA set. It requires the
Xforms and Xforms4Perl packages, both are freely available.

<descrip>
<tag/Author:/ Richard J. Middleton
<tt><htmlurl url="mailto:dickm@cheerful.com"
             name="&lt;dickm@cheerful.com&gt;"></tt>
<tag/Latest Release:/ 22 Mar 1999
<tag/Copyright:/ GNU General Public License
<tag/Requires:/ Xforms >= 0.88, Xforms4Perl >= 0.8.4
<tag/Home Page:/
<tt><url url="http://home.onet.co.uk/&tilde;lingbrae/dick/"></tt>
<tag/Comments:/
From the editor; "According to Dick's web site, he is currently working
on a software package for task planning called TPGPS that will run under
Linux. Last time I checked, it was not ready for public distribution yet."
</descrip>

<sect>Simulators

<p>
This section provides pointers to software packages for flight
simulators intended for pilot training. If you have a general question
about flight simulators that is not specifically related to Linux, you
could try posting your question to the <tt><htmlurl
url="news:rec.aviation.simulators"
name="rec.aviation.simulators"></tt>
USENET newsgroup.

<sect1>Flight Gear Flight Simulator

<p>
Flight Gear is a free flight simulator project. The idea for Flight
Gear was born out of a dissatisfaction with current commercial PC
flight simulators. A big problem with these simulators is their lack of
extensibility which is a direct result of their proprietary design. We
have intensionally chosen to keep Flight Gear and its source code open,
available, and free of charge. In doing so, we are able to take advantage
of the efforts of tremendously talented people from around the world.

<descrip>
<tag/Author:/ Curtis L. Olson
<tt><htmlurl url="curt@flightgear.org"
             name="&lt;curt@flightgear.org&gt;"></tt>
<tag/Latest Release:/ 0.6.2, 11 Sep 1999
<tag/Copyright:/ GNU General Public License
<tag/Requires:/ Mesa (OpenGL)
<tag/Home Page:/
<tt><url url="http://www.flightgear.org/"></tt>
</descrip>

<sect1>Tim's Air Navigation Simulator

<p>
This is a Java applet that simulates the operation of ADF and VOR
instruments. A canvas shows the position of a hypothetical aircraft and
two ground based navigational aids, (which can be dragged to arbitrary
positions with the mouse). The instrument display shows what the pilot
would see in the corresponding situation. The applet code is available
for download if you want to install it on your own machine.

<descrip>
<tag/Author:/ Tim Carlson
<tt><htmlurl url="mim@visi.com"
             name="&lt;mim@visi.com&gt;"></tt>
<tag/Latest Release:/ Oct 14, 1998
<tag/Copyright:/ Freely Distributable
<tag/Requires:/ Java compatible browser
<tag/Home Page:/
<tt><url url="http://www.visi.com/&tilde;mim/nav/"></tt>
</descrip>

<sect>Hardware for Aviation Computing

<p>
Aviation related computing spans a very wide spectrum of hardware
requirements; from large servers used for airline flight scheduling,
to embedded processors for in-flight applications.  The Linux Aviation
HOWTO is mainly concerned with software for use under Linux, but a few
words about hardware are in order because the number of platforms that
Linux runs on is growing every day.

<sect1>Desktop Hardware

<p>
Linux was originally developed for use on desktop systems based on
the ubiquitous Intel x86 architecture (colloquially known as the IBM
compatible).  This is still the most popular platform for running Linux.
Some of the more popular distributions designed for Intel x86 desktop
or server platforms are available from;
<htmlurl url="http://www.calderasystems.com/" name="Caldera">,
<htmlurl url="http://linux.corel.com/" name="Corel">,
<htmlurl url="http://www.debian.org/" name="Debian">,
<htmlurl url="http://www.linux-mandrake.com/" name="Mandrake">,
<htmlurl url="http://www.redhat.com/" name="Red Hat">,
<htmlurl url="http://www.slackware.com/" name="Slackware">,
<htmlurl url="http://www.suse.com/" name="S.u.S.E.">, and
<htmlurl url="http://www.turbolinux.com/" name="TurboLinux">.
Because of its efficient use of resources, Linux runs quite well on
i386 or i486 systems that are painfully sluggish when running Windows
95 or 98.  From an aviation computing perspective, desktops running Linux
are useful for preflight planning, gathering weather information, and so
on. But, they cease to be useful once you have left the house for the
airport. This has prompted many pilots to look for portable computing
solutions.

<sect1>Laptop Hardware

<p>
Linux runs just fine on a variety of laptop computers. Most laptop
hardware is supported with the notable exception of Winmodems. (The
manufacturers of these devices have refused to publish the information
that programmers need to write drivers).  If you are looking for
information to assist in installing Linux on your laptop, or purchasing
a new laptop computer for running Linux, try reading or searching the
Usenet newsgroup
<htmlurl url="news:comp.os.linux.portable" name="comp.os.linux.portable">.
Another excellent resource is 
<htmlurl url="mailto:wehe@snafu.de" name="Werner Heuser's"> Linux Laptop
HOWTO. You can find it at Linux Documentation Project sites, or from his
Linux with Laptop Computers site at

<itemize>
<item><tt><url url="http://home.snafu.de/wehe/"></tt>
</itemize>

<sect1>Handheld Hardware

<p>
While many pilots find that laptop computers suit their needs just fine,
they are too bulky and heavy for some applications. For example, the
cockpits of most modern sailplanes are much too small to comfortably and
safely use a laptop.  For these applications, handheld or pocket computers
are the best answer. The utility of small handhelds is demonstrated by
the wide acceptance of the electronic E6B calculator. Until recently,
devices of this size had rather limited memory and computing power, but
this is rapidly changing.  A new class of small but very powerful handheld
and pocket computers that run Linux will be available soon. Digital
Equipment Corporation (now Compaq) recently funded an internal research
project that designed a small but powerful PDA that ran Linux, called
the <htmlurl url="http://www.research.digital.com/wrl/itsy/index.html"
name="Itsy">. As a result of this project, you can now run Linux on
Compaq's <htmlurl url="http://www.compaq.com/products/handhelds/"
name="iPaq"> handheld.  (It doesn't ship with Linux, you must install
it yourself, see <tt><url url="http://www.handhelds.org/"></tt> for
more information).  Samsung has recently announced plans to market the
world's first PDA that runs Linux, scheduled for release in mid 2000,
called the <htmlurl url="http://www.yopy.org/" name="Yopy">.

<sect1>Embedded Hardware

<p>
There are other in-flight computing applications where the hardware
needs to be connected to sensors or other instrumentation to properly
function.  In these applications, embedded processing hardware that can
be permanently installed is the best solution.  Some examples of such
applications might include panel mounted Electronic Flight Instrument
Systems (EFIS) for powered aircraft, or Final Glide computers for
sailplanes.

<p>
In the last couple years, there have been a rapidly growing
number of ports of Linux to embedded processors such as the
<htmlurl url="http://www.arm.com/" name="ARM"> family of processors, and
the <htmlurl url="http://www.mot.com/SPS/WIRELESS/products/DragonBall.html"
name="Motorola DragonBall"> processor used in the 3Com Palm Pilot.
Linux has a bright future in the area of embedded applications; internet
appliances, wireless internet access, personal digital assistants,
television set top boxes, dedicated control systems, etc.  Industry has
already embraced Linux for use in embedded applications for several
reasons. The cost of licensing a commercial operating system and the
power of the open source development model are some of the more prominent
ones. The TiVo personal video recorder, and the Empeg MP3 car player
are just two examples of currently available consumer products that utilize
embedded Linux.

<p>
For the hobbyist, there are a number of embedded
processor kits designed for running Linux like
<htmlurl url="http://www.emjembedded.com/" name="PC/104 Modules">,
<htmlurl url="http://www.liab.dk/" name="Linux in a Box">, or the
<htmlurl url="http://www.uclinux.com/" name="ucSimm Project">.
For those researching the possibility of running Linux on embedded
devices, check out some of the resources below. Also be sure to visit
the new USENET newsgroup <tt><htmlurl url="news:comp.os.linux.embedded"
name="comp.os.linux.embedded"></tt>.

<itemize>
<item><tt><url url="http://linux-embedded.com/"></tt>
<item><tt><url url="http://www.embedlinux.net/"></tt>
<item><tt><url url="http://www.emjembedded.com/"></tt>
<item><tt><url url="http://www.lineo.com/"></tt>
<item><tt><url url="http://www.linuxdevices.com/"></tt>
<item><tt><url url="http://www.rt-control.com/"></tt>
<item><tt><url url="http://www.uclinux.com/"></tt>
<item><tt><url url="http://www.uclinux.org/"></tt>
<item><tt><url url="http://www.liab.dk/"></tt>
</itemize>

</article>
