Craig Cody Hardcastle and Craig Tingey and Professor Richard Helps, Electronics and Information Technology
The focus of our research project was to build a GPS navigation module to be used with the Handspring PDA. It provides a highly mobile method of finding exact locations using an interface and display that is familiar and friendly. Our GPS module fits into the Springboard expansion slot. With it, any Handspring user is able to choose from many available Palm OS location and positioning programs to harness GPS information wherever they choose to go. Research into GPS receivers began about two years ago with a project to build a high frequency antenna and low-noise amplifier to receive the high-frequency signal used by the GPS satellites.
Although this project was successful, consulting with working engineers building similar projects led us to believe that the actual signal decoding and translation was much too timeintensive for college students with limited resources. Following up with our research, we began to find that pieces of the GPS system were on the market in fabricated packages. Shifting our direction to simply implementing a GPS receiver with prepackaged pieces allowed us to see the possibility of completing a successful project. As we continued to study GPS theory and locate the parts we might need, we found that an interface was necessary and so we began to research the Palm OS. With help from the Handspring’s developer website, we worked for several months to learn how to program for the Palm OS and we also familiarized ourselves with the process of creating a module for the Springboard expansion slot on the Handspring handheld computer.
Through our research we found a small (1.0”x1.25”x0.28”) OEM GPS receiver made by a company out of California called Axiom Navigation Incorporated. The Swift B2 receiver proved to be ideal for our project because of its dimensions and capabilities. It is a 12 –channel receiver that provides accurate position information in the NMEA 0183 standard protocol. We also used an external active antenna made by Axiom to deliver the GPS signals to the receiver. A block diagram of the module can be seen in the figure on page 2.
A large part of our design on the module included the ‘Springboard Module GPS/Visor interface’ shown in the figure. It consists of a printed circuit board that we designed and manufactured. The circuit board interfaces with the GPS receiver through a 20 pin board to board connector. The printed circuit board also contains a UART, flash memory, and other analog and digital parts. The Springboard expansion slot on the Handspring does not have a serial port and so the UART is used to receive the serial (4800 baud) NMEA protocol from the GPS receiver and then presents it to the Handspring in a parallel format. All of the module hardware, except for the antenna, has been packaged in a small official Handspring enclosure.
One main requirement of the GPS module design was that it had to have true plug-and-play capabilities. This allows for minimal interaction from the user to make the module functional. To accomplish this goal, we included the flash memory to store all the required software for the module. When our module is inserted into the Springboard slot, a Card Setup Application executes and installs all necessary software hooks, it registers the interrupt and event handlers with the system OS, and finally it installs a Module Serial Library to the Handspring’s RAM. The Module Serial Library contains the entire standard serial library API replacements used to control the memory mapped UART that is on the module. Once installed to the Visor memory, the Module Serial Library is automatically selected as the library that will be used by the GPS user interface applications. This means the GPS data that is present on the module UART will be read into the system to be used by the user interface program. The process of re-directing the serial function calls to the module UART is totally transparent to the third party GPS user applications.
As mentioned before, we intended for our module to be used with third party GPS software. Currently there are about 50 compatible packages available that can be found on the Internet. Most of the available programs provide the user with the conventional information found in all GPS receivers such as latitude, longitude, altitude, speed and time. There are however more advanced programs that provide real-time street level tracking capabilities and still others provide real-time topographical tracking to be used in the mountain ranges across the United States.
As we started this research project our main objective was to build a working GPS module that could be used with the many GPS user interface programs available for the Handspring PDA. The final result is that we have successfully produced several working prototypes that function as described in this paper.