Linux Aviation HOWTO <author>John C. Peterson, <tt><htmlurl url="mailto:jcp@eskimo.com" name="<jcp@eskimo.com>"></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 © 1998-2000 John C. Peterson <tt><htmlurl url="mailto:jcp@eskimo.com" name="<jcp@eskimo.com>"></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="<Majordomo@mail.nl.linux.org>"></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&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/˜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="<shrestha@ct1.nai.net>"></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/˜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="<highflier@users.sourceforge.net>"></tt>, Ken Andersen <tt><htmlurl url="mailto:kentan@get2net.dk" name="<kentan@get2net.dk>"></tt>, Frederik Hansen <tt><htmlurl url="mailto:roirex@users.sourceforge.net" name="<roirex@users.sourceforge.net>"></tt>, Steve Brown <tt><htmlurl url="mailto:delancie@users.sourceforge.net" name="<delancie@users.sourceforge.net>"></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="<skibum@beer.stampede.org>"></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="<jayschne@sprynet.com>"></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/˜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="<jcp@eskimo.com>"></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="<jcp@eskimo.com>"></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="<grass@baylor.edu>"></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/˜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="<pauly@mail.oih.rwth-aachen.de>"></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/˜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="<info@microimages.com>"></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="<info@rmstek.com>"></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="<jcp@eskimo.com>"></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="<johnsonm@redhat.com>"></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="<fplan-list-request@gnome.org>"></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_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örkman <tt><htmlurl url="mailto:henrik.bjorkman@knowit.se" name="<henrik.bjorkman@knowit.se>"></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/˜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="<elgaard@diku.dk>"></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="<bentson@grieg.seaslug.org>"></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="<remco@emc.rvt.com>"></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="<mig@ncc.up.pt>"></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="<ableasby@hgmp.mrc.ac.uk>"></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="<mikeb@gbdirect.co.uk>"></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="<csmith9@vivanet.com>"></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_xls.zip"></tt> <tag/Documentation:/ <tt><url url="ftp://csrp.tamu.edu/pub/software/glidperf_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="<Ian.Lewis@cl.cam.ac.uk>"></tt>, Ruud Holswilder <tt><htmlurl url="mailto:hwl@multiweb.nl" name="<hwl@multiweb.nl>"></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="<alcald@psnw.com>"></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/˜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="<dickm@cheerful.com>"></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/˜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="<curt@flightgear.org>"></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="<mim@visi.com>"></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/˜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>