Figure 0 - This project will connect a microcontroller to a GPS module
This project will connect a microcontroller to a GPS module

GPS is short for "Global Positioning System". As the name implies, it is a globally available positioning and time system that uses a radio fix on multiple orbiting satellites. A GPS receiver will operate wherever there is an unobstructed view (line of sight) to four or more GPS satellites so that it can receive the radio signal from each satellite. The receiver uses the information it receives in the radio signal to determine the distance to each satellite. The position of the receiver is calculated by an algorithm that includes both the information and strength of the radio signal received from each satellite. With this information, exact time, and position data such as latitude, longitude, height from seal level, moving speed, and direction can be computed and displayed to the user.

Having all of this location information available instantly from anywhere on the planet means that your next project can know exactly what time it is, where it is, how fast it is moving, and in what direction it is moving at any time. Robots can self-locate for autonomous operation and surveillance equipment can keep track of a person or vehicle location in a very precise manner. The good news is that you can add GPS capabilities to your project for under $100 and there are no licensing fees or user fees. The not so good news is that a consumer grade GPS is really only accurate to a radius of about 25 feet, although for the most part the accuracy will be much better. If you own a handheld PGS unit, then you have already seen the limitations of these devices. Of course, even at 25 feet, the accuracy is more than enough to track a person or object along a city street and then display that data on a program such as Google Earth or Google Maps.

A GPS module is a self contained GPS receiver that does all of the difficult signal processing and computation for you. These inexpensive and amazing 1 inch square boxes will lock onto all of the satellites in range and then start sending out the location and time data in a simple to read string that can be received by a microcontroller using a few IO lines. This project will explore the basics of connecting one of these GPS modules to a microcontroller in order to receive the data and decode it into a usable format.

Figure 1 - A GPS module and evaluation board supplied by SparkFun
Figure 1 - A GPS module and evaluation board supplied by SparkFun

There are many different GPS module available, and like all things, some are good and some are not so good. Being a fairly new technology, improvements are constantly being made, so you must do a little research to ensure that you find a GPS module that uses the most current technology. Some of the more important aspects to consider when choosing a GPS module will be: the output format, time to fix, antenna type, and available support. Support and documentation cannot be underestimated when dealing with these GPS modules. They will require some very precise communication to and from your microcontroller in order to operate properly. With good documentation and a support community, you should have no problem getting your GPS module working in a few hours, but don't expect a happy ending if you find a budget receiver with little documentation, or you plan to be the first one to get that latest receiver working. I know - this is my second attempt at a GPS based project and my fist attempt was a frustrating failure due to having a module with almost no documentation and support!

The best source for GPS receivers and evaluation boards that I have found is Internet based electronics hobby supplier They offer a wide range of reasonably priced GPS units along with full documentation and a forum where users can post questions and offer working source code for various models and microcontrollers. SparkFun also offers an evaluation board that takes care of the power supply, connector issues, and level translation between the serial port on the GPS and your microcontroller or computer. I found the evaluation board to be a great help when working with the GPS module as I knew any errors in communication would be in my own source code rather than in the actual hardware. The GPS module (SanJose FV-M8) and evaluation board (GPS-08334) I ordered from SparkFun are shown in Figure 1. The total cost of both items was under $140.

The FV-M8 GPS module made by San Jose Navigation is a powerful 32 Channel GPS receiver with a 5Hz output rate and a built in antenna. This PGS module would be considered "high end", but for under $100, it is a bargain for those who want to add fast response GPS navigation to a project. Having a built in antenna also makes things much easier. This GPS was able to find a fix in less than a minute, even in a basement lab. The evaluation board from SparkFun allows several GPS modules to plug right in and take power from a USB port or external DC source. The evaluation board also includes a USB to serial converter and a level translator for serial communication with a PC. Using free software such as "Mini-GPS" made it extremely painless to get the module up and running to verify its operation.

Back Home Last Next
You are Viewing... Page 1 of 9
Lucid Science Electronics from the Fringe AtomicZombie Hack-a-day SparkFun