If your project requires global positioning feature, then you should use one of many GSP modules. There are many receiver modules and expansion boards available for your choice. They vary in PCB size, functionality, antennas used and price. In most cases, you are probably looking for simple, small all in one solution where GPS receiver and antenna would be on the same package.
Recently I have picked one that might fit for most needs – GPS receiver NEO-6M module with ceramic antenna and TTL serial interface. It is a very compact GPS module with most needed features:
– Working voltage: 3V / 5V
– Interface: TTL, compatible 3.3V / 5V
– Receiving features: 50 channel, GPS L1 ( 1575.42MHz ), C / A code, SBAS: WAAS / EGNOS / MSAS
– Positioning accuracy: 2.5m CEP ( SBAS: 2.0m CEP )
– Refresh rate: Max 5Hz
– Capture time: 1-27 seconds
– Capture tracking sensitivity: -161dBm
– Protocol: NMEA ( default ) / UBX binary
– Serial communication baud rate: 4800, 9600 (default), 19200, 38400, 57600, 115200, 230400
As you can see it can accept 5V and 3.3V supply and signals. Those are most common in microcontrollers. They seem to be popular in Arduino and Raspberry Pi projects. GPS module comes with built-in EEPROM where configuration information can be stored. Also, it is equipped with a small rechargeable battery which ensures GPS receiver data backup for up to half an hour when power supply drop.
The module comes with TTL level serial interface so can be easily be directly connected to microcontroller serial port or to PC using RS232 or TTL to USB (FTDI) adapter. You need only four wires (3 if you won’t do any configurations) connected as in image below:
Since the ceramic antenna is intended to be used outdoors, be sure to put receiver near the window if your reception is weak.
To give it a test, we are going to use u-box provided evaluation software u-center which allows to connect GPS module directly to PC and test its capabilities.
With u-center software, you can inspect lots of things. It can display the status of all satellites including their signal strength and location in sky view. Then there are a rudimentary map to show your position on it, time, altitude and speed if you are moving. Deviation map allows you to see how location detection deviates during the time. You can have a clue about how accurate this thing is. While I’m indoors and signals are quite weak, my deviation reaches 10meters. In good signal is right quality deviation can be up to 2.5m. U-center can also display position on pre-calibrated maps where you can analyze your movement on the roads and so on.
GPS module default message format is NMEA. It is usually used in most applications.
When you decide to use a receiver with microcontroller board, you need to write an application that will parse these messages into GPS data, time and altitude. Other parameters like speed are derived from GPS and time data. In most cases like in Arduino, you don’t have to wary about parsing GPS messages as there are libraries for this. Interfacing GPS module to your project is as easy as to write a couple lines of code.