Attach GPS

This page describes the process for connecting the GPS to the Ardunio Uno. While you should be able to use just about any GPS that outputs NMEA data over a serial connection, I chose to use the Adafruit Ultimate GPS breakout. Originally, this receiver was used on another project that involved a Raspberry Pi so I purchased it along with the serial to USB cable that Adafruit also sells. Later I re-used the GPS receiver with the Arduino Uno.

Adafruit Ultimate GPS Breakout

Adafruit Ultimate GPS Breakout Wiring diagram for GPS data logger


For my GPS data logger project I used the following connections from the GPS. I broke off 5 of the pins from the pin header and soldered them directly to the GPS board. This involves removing the pins from the plastic pin holder and then soldering them so the pins are flush with the bottom of the GPS receiver. This leaves plenty of header pin to connect to the jumper wires.

  • VIN (connected to the 5V pin on the SD Card Shield. This provides power to the GPS)
  • GND (connected to the ground pin on the shield. This is the GND for the GPS)
  • RX (data input used to send commands to the GPS receiver. Not used in this project)
  • TX (data output used to send data from the GPS receiver to the Uno
  • FIX (wired directly to the positive side of the red LED on my tracker case. Provides GPS fix information to the user. Optional)

Specifications (From the Adafruit website)

New! Version 3 comes with the latest module which has external antenna support and Pulse-Per-Second output

  • -165 dBm sensitivity, 10 Hz updates, 66 channels
  • 5V friendly design and only 20mA current draw
  • Breadboard friendly + two mounting holes
  • RTC battery-compatible
  • Built-in datalogging
  • PPS output on fix
  • >25Km altitude
  • Internal patch antenna + u.FL connector for external active antenna
  • Fix status LED

...all for under $40!

The breakout is built around the MTK3339 chipset, a no-nonsense, high-quality GPS module that can track up to 22 satellites on 66 channels, has an excellent high-sensitivity receiver (-165 dB tracking!), and a built in antenna. It can do up to 10 location updates a second for high speed, high sensitivity logging or tracking. Power usage is incredibly low, only 20 mA during navigation.

Best of all, we added all the extra goodies you could ever want: a ultra-low dropout 3.3V regulator so you can power it with 3.3-5VDC in, 5V level safe inputs, ENABLE pin so you can turn off the module using any microcontroller pin or switch, a footprint for optional CR1220 coin cell to keep the RTC running and allow warm starts and a tiny bright red LED. The LED blinks at about 1Hz while it's searching for satellites and blinks once every 15 seconds when a fix is found to conserve power. If you want to have an LED on all the time, we also provide the FIX signal out on a pin so you can put an external LED on.

Two features that really stand out about version 3 MTK3339-based module is the external antenna functionality and the the built in data-logging capability. The module has a standard ceramic patch antenna that gives it -165 dB sensitivity, but when you want to have a bigger antenna, you can snap on any 3V active GPS antenna via the uFL connector. The module will automatically detect the active antenna and switch over! Most GPS antennas use SMA connectors so you may want to pick up one of our uFL to SMA adapters.

The other cool feature of the new MTK3339-based module (which we have tested with great success) is the built in datalogging ability. Since there is a microcontroller inside the module, with some empty FLASH memory, the newest firmware now allows sending commands to do internal logging to that FLASH. The only thing is that you do need to have a microcontroller send the "Start Logging" command. However, after that message is sent, the microcontroller can go to sleep and does not need to wake up to talk to the GPS anymore to reduce power consumption. The time, date, longitude, latitude, and height is logged every 15 seconds and only when there is a fix. The internal FLASH can store about 16 hours of data, it will automatically append data so you don't have to worry about accidentally losing data if power is lost. It is not possible to change what is logged and how often, as its hardcoded into the module but we found that this arrangement covers many of the most common GPS datalogging requirements. Author's note - We will test this and post as a later project.

We've tested this version of the Ultimate GPS in a high-altitude balloon, and it kept fix up to 27km!

Comes with one fully assembled and tested module, a piece of header you can solder to it for breadboarding, and a CR1220 coin cell holder. A CR1220 coin cell is not included, but we have them in the shop if you'd like to use the GPS's RTC Author's note - I did install this and the GPS starts up in under 30 seconds

We have a nice fancy library for GPS usage, with background parsing and can set and query the built in GPS logging capability (called LOCUS). A full tutorial is also available, which has tons of information about the module, how to use the data logger and more.