Interfacing the Mitac GPS to the PalmPilot

I really wanted to be able to use my PalmPilot as a GPS display for the Mitac GPS. Mitac is the company that makes the GPS unit but the GPS module inside is made by SiRF Technologies. SiRF GPS modules by default use a language known as SiRF binary. The 'standard' language for GPS (and other navigation devices) is NMEA. There are plenty of programs out there that will display GPS data from NMEA devices and even do APRS on the Pilot. Since I didn't find any programs that talked SiRF binary, I had to be able to tell the SiRF module to switch to NMEA mode. Luckily, this is something that the SiRF module can do and it took a lot of digging to find out how.

Making The Connection

The first thing is to make the hardware connection between the PalmPilot and the GPS. The GPS has two cables coming off of it; a cigarette lighter plug for power, and a female DB-9 serial connector intended to plug into a laptop.

I think every PalmPilot comes with a cradle that hooks up to the serial port for syncing. This is essentially just a special cable that hooks up to the proprietary serial interface of the PalmPilot and has a standard female DB-9 serial connector on the other end. You can either use your cradle or you can buy a separate cable that is essentially the same thing without the base for setting on the desk.

The problem is we want to connect two devices together that were each intended to connect to a computer, not another device. The missing link is a male-male null-modem adapter. This is nothing more than two male DB-9 connectors wired together. All pins are wired straight through except for pins 2 and 3 which are crossed. (Pin-2 on one connector goes to pin-3 on the other; and vice versa.) If you don't want to build this, check out the DataDapter 9-9.

Here is a picture of my entire setup.

Making the Switch

The next thing we need to do is tell the GPS to switch from SiRF binary mode to MNEA mode. First a little background. The Mitac GPS starts up in SiRF binary mode; SiRF Technologies proprietary language. This mode communicates at 9600 baud and the data is not very human friendly. The standard for NMEA is 4800 baud and NMEA strings are easy to recognize. To tell the module to switch modes you have to startup at 9600 baud and send specific initialization data to the module. I called my program for the PalmPilot that does this SiRFInit Click on this icon to download the program.

Here is the screen for SiRFInit. What I have found works is to tap the Go Online button. This will open the serial port at 9600 baud. Then tap the Switch To NMEA button three times. This sends the initialization string three times. Then tab Go Online again. This reopens the serial port at 4800 baud. Wait up to a minute. If all goes well you will start to see things like $gpgga on the Last Message line. This means you are successfully in NMEA mode. Tap Go Offline to close the serial port to save batteries and let another program open it.

Other Programs

Okay, now that the GPS is in NMEA mode you can have some fun. I use two programs; Compass and Mapopolis The current version of Mapopolis (4.1) will display moving maps with any NMEA GPS and works great with this setup.

Compass is basically a GPS data display program. It shows position, course, speed, altitude, time and date in large very readable numbers. I've been using version 3.2 but the current version is 5.05. Typically, after I switch the GPS to NMEA mode with SiRFInit, I then run Compass which displays the fix status and number of satellites. Once I have a good fix I run Mapopolis.