Wade's Pilot Programming FAQ     


Auto Notify will notify you of changes all my Pilot pages.  
History shows the revision history for all Pilot pages. 
Pilot Links is my collection of Pilot links. 
Pilot Essentials shows the best Pilot programs.

Pilot Web Ring



Next Five


Recent News: See a detailed comparison of GCC vs CodeWarrior for Windows C programming that I wrote for the November issue of Handheld Systems Journal.

Welcome to my Pilot programming FAQ. This page is intended to help new Pilot programmers or wanna-be Pilot programmers get up to speed and producing Pilot apps as quickly as possible. It essentially collects a bunch of information that's spread around the net into one place and adds some editorial content to give you at least one opinion that can help you choose your development platform. This page is also available in German.

Note that I define Programming fairly loosely here. I try to cover everything you can use to set up your Pilot to do customized actions including databases and spreadsheets.

The Pilot community is growing rapidly, and there are lots of great tools available. Many of these tools are free, and all are pretty low cost. You don't need a huge budget (or any budget for that matter) to program the Pilot. Don't let the price fool you. The free tools are generally of high quality.

You should be aware that I'm a Windows programmer and user, so the comments on Windows tools are backed up with some direct experience. The comments on Mac and Un*x systems is information pulled from various places on the net as well as the authors. When I say Un*x this means various flavors of Unix as well as Linux, all of which are supported. Also note that I'm a relative newbie as far as Pilot programming is concerned so I don't know everything.

This page will be updated periodically, hopefully as a result of other members of the Pilot community sending me Questions and Answers for it. If you've visited before, you may want to check out the History page to see what's changed and the credits for outside contributions.

I would appreciate feedback, good or bad as well as corrections, comments, additions or editorials on my editorials. Send them to me at webmaster@wademan.com.
I would especially appreciate new questions and answers. If you don't know the answer, try posting your question to one of the Pilot Programming Newsgroups. If you do that, I'll see it and if it seems like a common question I'll add the response after someone in the newsgroup answers it.

General Pilot Programming Questions

Getting Started

OK, enough already. How do I get started!






Oops, wrong page. Where are the non-programming FAQs?

There are several Pilot FAQs you may want to check out:

Where are the other programming FAQs?

This was the first programming FAQ and it's now linked to by the official 3COM PalmPilot site. The list of other FAQs is pretty skimpy now, but I hope it will grow as time goes on. Subscribe to my Auto-Notification service and you'll find out about new pages as soon as I do.

Most of these FAQs are volunteer efforts like mine that will require other Pilot developers to submit questions and answers. Please do your part for them when you can.

The other definitive place to get Pilot programming information is at the NewsgroupsPilot Programming Newsgroups.

How can I program the Pilot with Windows?

There are several Pilot development systems for Windows ranging in price from free to a couple hundred bucks. Do not let the price of the tools be the deciding factor because in many cases the free tools are better than the most expensive ones. There are more tools written for Windows than any other platform so you have a lot of choices. The available tools fall into these categories:

  1. C Language: Most Pilot programs are written in C. All of the built in programs were written with the Macintosh version of CodeWarrior. In fact you can get the source for the built in applications and change them if you like. Programming in C or Assembly is the most flexible and powerful method for programming the Pilot, but the learning curve is fairly steep; especially if you aren't already a C programmer. You can get both commercial and free C compilers. The free tools are of very high quality (perhaps, better than the commercial system) so you don't need to spend a bundle to get going.
    1. The GCC-Pilot system is a port of the GNU C compiler to the Pilot. If you aren't familiar with GNU, it's a set of compilers and other tools managed by the Free Software Foundation that are created by volunteers and are usually distributed for free. Basically, the source for all GNU programs is available to anyone, and anyone can modify the source as long as they make their modifications freely available.
    2. The Pilot port includes the Pilot GCC C compiler, a resource editor (PilRC), and the Pilot header files, as well as a linker that can put it all together into a Pilot program.
      The version 0.5.0 package comes with the 'gdb' source level debugger, the CoPilot emulator integrated with the gdb source level debugger, the GNU Emacs editor & IDE integrated with the debugger. For Win95, an install wizard makes it painless, but there are currently some problems with NT 4.0.
      The package is developed solely on UN*X and Win32 is a port done after the UN*X versions are considered stable. Thus the Win32 version is always behind the UN*X version by at least a little. If you haven't guessed, this is the version I use and I like it.
      To start with GCC, go to Getting Started with GCC.

    3. Metrowerks software's CodeWarrior is the "official" Palm sanctioned development platform. It is a commercial system that includes an Integrated Development Environment complete with resource generator, symbolic debugger and other tools. At the current time, this product is shipping with a resource editor that is unusable for bitmaps. It works for text only applications, but it can't effectively be used for graphic intensive programs.

    It's more costly than GCC, but it with the source to all the built in apps, which you can modify and distribute if you like.
    To start CodeWarrior, go to Getting Started with CodeWarrior.

  2. Database & Spreadsheet Programs: If you just want to collect some simple data without designing custom forms and learning the Pilot API, there are a few DBMS and Spreadsheet programs available for $15-60. They don't give you the flexibility that the programming languages do, but you can be up and running in a matter of hours. For most people, this is probably the best way to get your feet wet and may well be all you ever need.
    1. Pilot Forms from Pendragon Software is an commercial database system that allows you to define a Microsoft Access database and a Pilot program that work together to allow users to collect data on the Pilot that is automatically synchronized with the PC database. All the data that is collected on the Pilot magically appears in the Access database, and any changes made to the data on the Pilot or on the PC are automatically synchronized.The only downside is that you don't have much control over the look and feel of the data collection forms on the Pilot, and you can't distrubute your application unless every user buys a runtime license. This is OK for your own apps, but can get expensive if you want to collect data for a bunch of Pilot users.
    2. If you're going to collect data with the Pilot, you should consider getting this even if you eventually want to code the application in C as it's a good way to prototype your app, think about it's program flow and test out the data model without doing a lot of work. It's not very expensive so check it out.
      To start with Pilot Forms, go to Getting Started with Pilot Forms.

    3. Satellite Forms from SoftMagic is a commercial Database / Forms Designer with enough functionality to be a direct replacement to full blown C development for database applications. The SDK comes with a PC based Application Designer, which will help you create the tables and forms that the application will use. The first big difference between PilotForms and Satellite Forms come out at this point. Satellite Forms can create multi-form applications with interaction and data exchange between forms.
    4. Using these controls, it is possible to create forms with flexible positioning using the WYSIWYG forms designer. This is the second big difference compared to PilotForms which only allows either one control per page or a list view of the controls. Another big feature is the availability of "actions" on the 'Tap" event for any control. When tapped, controls can trigger one of several actions, including launching other programs. These actions coupled with the powerfull "Filters" allow the creation of full-fledged database applications in allmost no time. The filters are defined and activated on the controls and are the applications way of communicating between the forms.

      The PC based Application Designer creates DBase 5 files to act as the PC side of the database that is placed on the Pilot. There is no auto-synchronization built into the product. An ActiveX control is supplied for PC developers to tie their apps into the database application running on the Pilot. This allows far greater control over the HotSynch process compared to the PilotForms but if the requirement is just a simple auto-synchronization, adds a bit to the development time.

      At $600, this is the most expensive development environment available for the Pilot, but it's also considered by many to be the easiest to use and the most flexible. It's definitely worth a look.
      To start with Satellite Forms, go to Getting Started with Satellite Forms.

    5. JFile, is an even less expensive shareware simple database system. It works with comma delimited files instead of Access files, which most other database systems can import and export. It also allows you to define the database fields on the Pilot, where Pilot Forms requires you to do it on the PC side. You can even use it effectively without any desktop software at all.
    6. This is a handy thing to keep on the Pilot for times when you want to test out an idea, or you need to create a simple database definition and collect some data quickly. This is absolutely the fastest way for you to collect data on the Pilot if you don't need a fancy form and just want a plain flat file as the result. You can find Calvin's review of it here.
      To start with JFile, go to Getting Started with JFile.

    7. Simpledb is a freeware database application for the PalmPilot, which allows the user to create customized databases. Simpledb creates records with a heading and 5 fields and gives users the ability to add free-form notes to each record. The unregistered version only allows 5 records per database. I haven't tried this.
    8. QuickSheet from Cutting Edge Software is a spreadsheet program much like the ones most users are familiar with from the desktop. This can be used for quick data collection as well as data modeling on the fly. Business users should be particularly interested in this as this uses a model that's familiar to most computer users.
    9. It's product blurb reads "QuickSheet is the handheld spreadsheet for the US Robotics(R) PalmPilot(TM). Combined with the included PC conduit software and Microsoft(R) Excel(TM) Add-In, QuickSheet is useful for a wide variety of data analysis and collecting applications."
      To start with QuickSheet, go to Getting Started with QuickSheet.

    10. TinySheet is a small spreadsheet that can link with Excel much like QuickSheet. However QuickSheet is a commercial product that's relatively expensive while TinySheet is inexpensive shareware. I haven't used either product so I can't really do a meaningful comparison but you should investigate both products if this appeals to you. You can find this and some support programs at Ray's Pilot Archive. Do a quick search for "TinySheet".

  3. Java: It seems like everybody's talking about Java these days. Java is an easy to learn and very portable language that's springing up everywhere. It's a lot like C++ but with the most blatant problem areas for C++ removed and improved security added.
    1. Jump Java converts Java programs that follow certain guidelines to Pilot programs. This is not a full Java implementation and it is not a Java Virtual Machine. Since this is a hybrid product, it isn't quite as flexible as either programming in Pilot C or using a full Java Virtual Machine. It is a good way to go if you are already a Java programmer and you don't need to get to specialized parts of the Pilot API; or if you think you might want to port your finished program to other platforms later.
    2. The current version of Jump requires the Java 1.1JDK from Sun or Microsoft.
      To start with Jump Java, go to Getting Started with Jump Java.

    3. In a perfect world, we could have a Java Virtual Machine for the Pilot and you could then run any 100% pure Java program. Unfortunately, JVMs are usually huge and there may not be enough room on the Pilot for one. There is at least one attempt under way to create a JVM and I'll notify the list if I hear of any successful ones. One ongoing project can be found here.
    4. Waba is a Java-Like programming language that uses a strict subset of the Java programming language to allow users to develop code using a subset of the Sun or Microsoft Java Development Kit and run the resulting programs on both