Global Positioning System (GPS) is a space based satellite navigation system that provides location and time information. Initially, GPS only available for military used in tracking, but now it is available to everyone. GPS is widely used in application such as military, robotics, astronomy and etc. But we can also see the application of GPS in our daily life such as navigation system in advance car or mobile phone with built in GPS. A basic GPS provides information such as location (latitude and longitude), altitude, speed, and time.
How GPS actually works? GPS receiver receive data from satellites and calculate the locations. To detect a location, GPS receiver requires minimum of three satellites to calculate. To obtain the altitude, minimum of four satellites are required. Try to search on GPS if you would like to understand more about GPS.
The GPS module that I am going to use is GPS Bee Kit by SeeedStudio. GPS Bee Kit is compatible and comes in the packaging as XBee. Besides that, Bee Kit comes with mini embedded antenna for GPS. Like most of the GPS module available, GPS Bee Kit uses UART communication, you only need two data lines which is Transmitter (Tx) and Receiver (Rx). However, it also accepts USB, DDC and SPI interface.
Some of the features of GPS Bee Kit:
– 50 channel u-blox 5 engine with over 1 million effective correlators
– <1 second Time To Fix For Hot and Aided Starts
– -160dBm SuperSense acquisition and tracking sensitivity
– Accelerated startup at weak signals for modules with Kickstart feature
– Support AsssitsNow Online and AssistsNow Offline A-GPS service, OMA SUPL compliant
– High immunity to jamming
– 4Hz position update rate
– UART, USB, DDC and SPI interface
More information available at SeeedStudio wiki page, here. GPS Bee Kit requires power supply, Vcc of 3.3V. Don’t try supplying 5V to Vcc or it might cause permanent damage to your Bee Kit. However, you don’t need to worry about the data pin because it works fine with Arduino logic level.
The Bee Kit in Bee packaging has 2.0mm pitch header. So you can’t directly plug to your breadboard and test it. There are many solution available such as using Bee shield. But this requires me to spend some extra money in order to use it. The problem here is just the pitch header, why not I try to make myself a Bee breakout board that converts the 2.0mm pitch header to 2.54mm pitch header. (Seems like I’m addicted to DIY my own stuff)
I used a Xbee on Eagle Schematic so that I can have the exact size of Bee on the Eagle Layout. The GPS Bee fits perfectly on my breakout board. Besides that, the 2.54mm male header also fits nicely on breadboard and ready to serve.
Before we try to interface GPS with Arduino, let us check on the data received through computer. In that case, you would need a USB to UART converter. I will show a simple interface between GPS Bee Kit with Arduino on my next post. Therefore, in this post, I will demonstrate a few methods which I used before to read data from GPS. Only 4 wires that need to be connected which is Vcc, GND, Tx and Rx.
To test the GPS on your computer, you need to download these software:
(A) GPS Locator Utility
This is my favorite when I’m working with my previous GPS project. In my opinion, the user interface is good and user friendly. All the data are displayed nice and clear. GPS Locator Utility requires installation before used.
Before you make the connection to your GPS, select the appopriate settings for the serial communication. Select the COM port the GPS you are connecting.
Next, select the Baud Rate for GPS. Usually standard GPS uses baud rate of 9600.
Finally, check the SV3301 under the command settings. Then click to connect GPS to your computer.
Under the User setting, you can set few kinds of settings to your GPS.
Under the Channel Signal Level view, this shows the number of satellite detected.
The time information sent from GPS is UTC time. In order to get your local time from UTC time, you need to set your local time according to your time zone.
You can view all message by clicking “Show All MS” under the Terminal View.
When you obtained sufficient number of satellites, then all the GPS data will be shown on Measure Navigation Message View. You can see that now the NMEA message seems to be longer, it is because all the GPS information are contained in the NMEA message.
Under the setup tab, you can set all the NMEA message settings or change the baud rate for communication. At the bottom of setup tab, there is a textbox showing the NMEA message log.
The next step is to configure the Port settings. As usual, select 9600 for the baud rate. For the data bits, parity and stop bits, set it to 8-N-1, which also means eight data bits, no parity and one stop bit.
The difference between HyperTerminal and other software is that it does not filter out all the useful data for GPS. It will directly show what is received on the Serial Port.
Images of my circuit set up on breadboard.
The LM 1117 voltage regulator is actually ease my job when I want to supply from Arduino later on. The USB to UART converter that I had actually has a jumper to select either 5V or 3.3V for the Vcc output.
In the next post, I will include the analysis of NMEA message from GPS Bee Kit and a simple sketch on how to interface GPS Bee-Kit with Arduino. Click here for part 2.
Cytron SKGPS 53 Tutorial – Very good website in explaining basics to GPS.