This module is the best way to add a GPS to your wearable project. It's part of the Adafruit Flora series of wearable electronics, designed specifically for use with the Flora motherboard. Installed on the PCB is the latest of our Ultimate GPS modules, a small, super-thin, low power GPS module with built in data-logging capability! This module's easy to use, but extremely powerful:
  • -165 dBm sensitivity, 10 Hz updates, 66 channels
  • Designed for wearable use with the Flora system
  • Only 20mA current draw
  • RTC battery-compatible - sew a battery on to create a atomic-precision real time clock
  • Built-in datalogging
  • >25Km altitude
  • Internal patch antenna + u.FL connector for external active antenna
  • Fix status LED
This guide will get you started with the Flora GPS.

Hook up GPS

Use alligator clips to connect Flora's 3.3V pad to the 3.3V pad on the GPS. Likewise connect RX to TX and TX to RX, then finally GND to GND.

Unlike the GPS breakout and GPS shield we carry, the Flora GPS is for use with 3.3V power and logic only!

The four connectors are all in a row just to the left of Flora's JST battery connector for easy sewing. But test your project with alligator clips before sewing it in!

Program FLORA

Make sure the USB cable is connecting your computer and Flora.

Basic Echo Test

We'll start with the most basic test, where we listen to the raw GPS data, to make sure it shows up! Copy and paste this code into a new sketch window and upload it to your Flora

Install Adafruit GPS Library

Our helper library will make using the GPS easy since we have working code already. The library is available on GitHub

You can download the most recent version by clicking here to grab a Zip file with the library files:

Uncompress the zip and find the folder named Adafruit_GPS and check that the Adafruit_GPS folder contains Adafruit_GPS.cpp and Adafruit_GPS.h
Place theAdafruit_GPS library folder your arduinosketchfolder/libraries/ folder.
You may need to create the libraries subfolder if its your first library. Restart the IDE.

We also have a great tutorial on Arduino library installation at:

Restart the Arduino IDE

Load Echo Demo

We'll begin by loading up the HardwareSerial echo test example available in the Adafruit_GPS library

Wire up the GPS module according to the hookup. Check your board and serial port settings and upload this sketch to your Flora using the Upload button in the IDE. Open up the Serial Monitor.

You should see something like the following from the serial monitor. You may not have as many numbers, but there should be sentences that start with $GPRMC and $GPGGA, etc. If you see text like that it means your GPS and connection are working fine.

Getting location data

Detailed GPS Test

Now that we know it basically works, we'll try to get 'fix data' from the GPS. For this, you will have to have the GPS outside. It cannot be inside a building, even if its right at the window. The silver antenna must be pointing up with a clear view of the sky!

Wire up the GPS module according to the hookup

Check your board and serial port settings and upload this sketch to your Flora using the Upload button in the IDE.

Place the GPS module (still connected to the Flora)  outside. Once the GPS has located the satellite data, the red LED on the GPS will stop blinking.

If you see the LED blinking once a second, it does not yet have a fix!

It can take many minutes to get a fix if it doesn't see any satellites immediately.

Once it has a fix, you can check the serial monitor for the GPS data, which includes the current date and time in UTC. It will also give you your latitude, longitude and approximate altitude with the Serial monitor

GPS modules will always send data EVEN IF THEY DO NOT HAVE A FIX! In order to get 'valid' (not-blank) data you must have the GPS module directly outside, with the square ceramic antenna pointing up with a clear sky view. In ideal conditions, the module can get a fix in under 45 seconds. however depending on your location, satellite configuration, solar flares, tall buildings nearby, RF noise, etc it may take up to half an hour (or more) to get a fix! This does not mean your GPS module is broken, the GPS module will always work as fast as it can to get a fix.
Now we know where we are. According to the GPS, my location is 4043.5715 N (Latitude 40 degrees, 43.5815 minutes North) & 07400.2783 W. (Longitude 74 degrees, 0.2783 minutes West) To look at this location in Google maps, type +40° 43.5715', -74° 00.2783' into the google maps search box . Unfortunately gmaps requires you to use +/- instead of NSWE notation. N and E are positive, S and W are negative.
People often get confused because the GPS is working but is "5 miles off" - this is because they are not parsing the lat/long data correctly. Despite appearances, the geolocation data is NOT in decimal degrees. It is in degrees and minutes in the following format: Latitude: DDMM.MMMM (The first two characters are the degrees.) Longitude: DDDMM.MMMM (The first three characters are the degrees.)


This guide was first published on Nov 08, 2012. It was last updated on Nov 08, 2012.