In this tutorial, I am going to show you how to use the Cytron SKM53 GPS Shield. SKM53 GPS Shield is a newly designed shield from Cytron. This GPS shield is a shield version of SKM53 GPS Starter Kit designed for Arduino lovers, with features such as on board level shifter, 3.3V regulator, and selectable serial pin. Using this shield will reduce the number of external connections required to run the GPS, its simply plug and use!!
Let’s look into detail of GPS used in this shield, which is SKM 53 from SkyLab. According to the datasheet, SKM 53 outputs GPS data in National Marine Electronic Association (NMEA) protocol, which is commonly used in GPS module for hobby electronics. It communicates through serial communication with default baud rate, 9600. However, the baud rate is configurable to other baud rate. Although SKM 53 operates at 5V supply, the output logic is in 2.85V TTL logic, so you can’t use it directly with your Arduino or you will fry your GPS module. Luckily, the logic level conversion has been taken care by the shield.
Some basic information about GPS, or Global Positioning System, a device which ables to provide you information such as coordinates, time, altitude and etc. When using GPS, a minimum of 4 satellites is required to calculate the your current position. And since GPS needs to detect satellite, it is better to operate at outdoor. If you are using in indoor, you will still receive the NMEA output, but without useful data. Therefore, when using GPS, you can test it either outdoor (Open sky) or somewhere near the window so it could detect the satellite signal.
This tutorial will be divided into two sections:
- How to serial communicate SKM 53 GPS Shield with computer
- How to run SKM 53 GPS Shield with CT-UNO
Hardware Required for this tutorial:
How to serial communicate SKM 53 GPS Shield with computer
I will be showing three methods where you can serial communicate your shield with computer, they are GPS Trace Software, Mini GPS and Arduino serial monitor. By using these tools, you are able to decode the NMEA string and obtain the related GPS information. In order to serial communicate to the computer using this shield a few steps have to be taken care.
1. Plug the SKM53 GPS Shield on top of the CT-UNO.
2. At the pin selection of shield, move the mini jumpers to USB for both Tx and Rx lines.
3. Connect a jumper from RST to GND. This will put the Atmega328 chip of Arduino to reset mode. Now the GPS can use the serial data line without interference from the Arduino chip.
A. Using GPS Trace Software
To use GPS Locator Utility, first you need to install it into your computer. Link to download is available at the end of this tutorial.
1. When you open the GPS locator utility for the 1st time, you will be prompt to the port and command setting. For the port setting, select the comm port of your Arduino and set the baud rate to 9600. On the command setting, tick on the SV3301. When you are done, click on the connect button.
2. After you connected the GPS shield to the software, there will be windows displaying the data. Initially, when the GPS doesn’t not detect any satellite, most of the data will appeared blank. A brief explanation on each window:
- Terminal View – Display the raw GPS data received
- Channel Signal Level View- Display the satellite detected and their details
- Measured Navigation Message View – Display the decoded information from raw GPS data. Information available are such as time, latitude, longitude, altitude, speed and etc.
- Map View: Show the satellite detected
- User setting: Allows configurations on the GPS module
3. When the GPS receiver detected sufficient number of satellites, it will be able to calculate the the current coordinate. And all the details will be decoded and shown on the measure navigation message view.
B. Using MiniGPS
To use MiniGPS, all you need to do is to run the MiniGPS executable file.
1. As usual, first you need to set up the communication port settings. Select the COM port of your Arduino and the baud rate to 9600, then connect.
2. If you would like to configure the GPS using Mini GPS, simply go to the Setup tab. Settings available are such as NMEA Output settings, Baud rate settings. At the bottom of Setup tab, you can also view the raw GPS data.
3. Similar to GPS Locator Utility, after the GPS get fixed from the satellite, it will show the decoded information on the Status tab.
C. Using Arduino Serial Monitor
This method uses the Serial Monitor from Arduino IDE. Using this method does not decode the raw GPS data into decoded information, but it allows you to check on the raw GPS data for sketch development and troubleshooting.
1. Click on the Serial Monitor icon on the top right of Arduino IDE.
2. Now the Serial Monitor will display the raw data from GPS. It might looks confusing but you can obtain your coordinate from the $GPGGA string. As shown in the image below, is the coordinate location.
How to run SKM 53 GPS Shield with CT-UNO, without computer.
Now I am going to show how you can utilize Arduino, together with some libraries to extract and display useful information from GPS Shield. To further continue on this tutorial, some extra steps are required.
1. Change the pin selection jumper on SKM53 GPS Shield to D2 and D3, this will allow Arduino to communicate with GPS shield via software serial which in this case is pin D2 and D3.
2. Stack a LCD Keypad Shield on top of GPS shield. We are going to display the information on LCD later on.
You can download the code here, skm53_gps. You will also need to download this TinyGPS library (credit to milkahart), extract it and move the folder to Arduino libraries folder, example: “C:UsersXXXDocumentsArduinolibraries”. This program basically reads the raw GPS data from SKM53 and decodes the coordinate and time information. When you first power up the Arduino, the code will display acquiring GPS until a fixed is acquired. It will display the latitude and longitude of your current location. If you would like to display the time information, just push the ‘select’ button on the LCD keypad shield. It will display the date and time of your location. In the sketch, I have added +8 on the hour as I am located at GMT+8 time zone. If you push the ‘select’ button again, it will display the coordinate information.
This is the video showing how you can use the SKM53 GPS shield with CT-UNO to display the coordinate and time information.
If you have any inquiry, feel free to discuss at our technical forum.
2. Mini GPS
4. skm53_gps – Arduino Sketch