GPS Module

GPS module U-blox NEO-6M-0-001 connected to an Arduino Uno with two software-Serial ports (Rx in D4 and Tx in D3).

There exist many small commercial available GPS-modules suitable for use in the CanSat with Arduino programming. As an example, we here explain how the GPS-module U-blox NEO-6M-0-001 relatively easily can be used with the Arduino Uno and CanSat kit.

For an easier use of the U-blox NEO-6M-0-001, it can be ordered on a break-out board as GY-GPS6MV2 with antenna.

How to get the GPS module to work with the Arduino Uno

The needed connections between the Arduino Uno and the GPS-module are ground, supply voltage (3.3V), Tx and Rx.

As seen in the Table to the left, the Tx on the module has to be connected to the Rx port on the Arduino and the Rx port om the GPS-module has to be connected to the Tx port on the Arduino. Because we use the Rx/Tx serial ports for radio- and USB-communication and data logging, we use software-serial ports instead. On the Arduino Uno we use the digital port 3 as Software Serial Tx-port the digital port 4 as Software Serial Rx-port. See the figure above to the right.

How to include a zipped Library in Arduino

Follow the steps below to get the GPS-module functioning with coordinates, altitude and number of satellites as output in the serial monitor:

  1. Download and include the zipped “TinyGpsPlus”-folder into the Arduino library on your PC. See the figure to the right. Use the following link to download the needed library: TinyGPSPlus.
  2. Copy the text in this text-document: tiny_gps_1 into an empty Arduino sketch and compile it to be sure, that the library is included correctly.
  3. Connect your Arduino Uno by an USB cable to your PC and upload the sketch to the Arduino Uno.
  4. Disconnect the Arduino Uno from your PC.
  5. Connect the GPS-module to the Arduino Uno:
  6. Connect the Arduino Uno to your PC again. If the connections are correct, the GPS module should now show a blinking red diode.
  7. Open the serial monitor and watch the data from the GPS module as the example shown in the figure to the right below. The GPS and Arduino need to run for some minutes before the GPS manage to connect to enough satellites (usually 4) required to give out a GPS-position.
Serial monitor output from the GPS module.

If it works as intended: Look over the lines in the Arduino programme that you are using now. There are several out-commented lines. These lines have output possibilities that can easily be included in your serial monitor output.

An example of serial monitor output using the «full version» programme. Click for a larger version.

A more complex version with check sum etc. can be found here: gps_full_version. An example of serial monitor output using this full version programme is seen in the figure to the left. Click for a larger version.

You can find more information of TinyGpsPlus and more Arduino programs from this link, which was used as inspiration and source for this section.

CanSat kit in combination with the GPS module.

Combination of CanSat kit sensors and GPS module. Output to the serial monitor. Click for a larger version.

To get output from both the Arduino kit sensors and the GPS, the Arduino programs has to be combined and the GPS can be soldered to the shield as shown in the figure to the left. A relatively simple Arduino program that combines the GPS and CanSat kit sensors can be found here, giving the output in the Serial monitor as shown in the figure to the right. Click for a larger version.

GPS Coordinates in Google Earth

is fortunately quite easy to show a GPS track in Google Earth. We have made an example file that you can find here and edit with you data. Google Earth uses an XML file format which have the file extension KML. You can put your GPS data in between the <coordinates> </coordinates> brackets/section, and in the attached example file, we have put Andøya Space Center as an example. There is one data point on each line, and the values are comma separated. The first field is longitude, the second latitude and the last is altitude in meters above sea level.