Inquire: Call 0086-755-23203480, or reach out via the form below/your sales contact to discuss our design, manufacturing, and assembly capabilities.
Quote: Email your PCB files to Sales@pcbsync.com (Preferred for large files) or submit online. We will contact you promptly. Please ensure your email is correct.
Notes: For PCB fabrication, we require PCB design file in Gerber RS-274X format (most preferred), *.PCB/DDB (Protel, inform your program version) format or *.BRD (Eagle) format. For PCB assembly, we require PCB design file in above mentioned format, drilling file and BOM. Click to download BOM template To avoid file missing, please include all files into one folder and compress it into .zip or .rar format.
After working with dozens of GPS modules over the years, I’ve learned that not all positioning solutions are created equal. Some modules take forever to get a fix, others drift wildly, and many just can’t handle indoor environments. That’s why the Adafruit GPS lineup has become my go-to for projects ranging from high-altitude balloon trackers to vehicle data loggers.
This guide covers everything you need to know about the Adafruit Ultimate GPS breakout and the PA1010D mini module, including wiring, configuration, and real-world tips that tutorials often miss. Whether you’re building with Arduino, Raspberry Pi, or CircuitPython, you’ll find the setup details here.
Understanding the Adafruit GPS Module Lineup
Adafruit offers several GPS options, each targeting different use cases. The two most popular are the Ultimate GPS breakout (based on the MTK3339/PA1616S chipset) and the PA1010D mini module (MTK3333 chipset). Both deliver excellent performance, but their form factors and interfaces differ significantly.
Adafruit GPS Module Comparison
Feature
Ultimate GPS Breakout
PA1010D Mini GPS
Ultimate GPS HAT
Chipset
MTK3339/PA1616S
MTK3333
MTK3339/PA1616D
Channels
66 (22 tracking)
99 (33 tracking)
66 (22 tracking)
Update Rate
Up to 10 Hz
Up to 10 Hz
Up to 10 Hz
Sensitivity
-165 dBm
-165 dBm
-165 dBm
Interfaces
UART
UART + I2C
UART (via Pi GPIO)
Size
25.5mm x 35mm
25mm x 25mm
Pi HAT form factor
Built-in Antenna
Yes (patch)
Yes (patch)
Yes (patch)
External Antenna
uFL connector
No
uFL connector
Data Logging
16 hours (LOCUS)
No
16 hours (LOCUS)
Power Consumption
~20mA
~30mA
~25mA
Price Range
~$30
~$30
~$45
The Ultimate GPS remains the workhorse for most projects—its built-in LOCUS datalogging stores 16 hours of position data without requiring an SD card. The PA1010D’s I2C interface makes it attractive for projects where UART pins are scarce or you’re already using I2C for other sensors.
Adafruit Ultimate GPS Features and Specifications
The Adafruit Ultimate GPS breakout earned its name through a combination of features that actually matter in real-world applications. The MTK3339 chipset provides reliable positioning with a -165 dBm tracking sensitivity—sensitive enough to work near windows in many buildings.
Ultimate GPS Technical Specifications
Specification
Value
Position Accuracy
3 meters (typical)
Velocity Accuracy
0.1 m/s
Cold Start TTFF
~32 seconds
Warm Start TTFF
~1 second
Hot Start TTFF
~1 second
Operating Voltage
3.0-5.5V DC
Logic Levels
3.3V (5V tolerant inputs)
Default Baud Rate
9600 bps
NMEA Output
GGA, GSA, GSV, RMC, VTG
Operating Temperature
-40°C to +85°C
The version 3 modules include a PPS (Pulse Per Second) output—a precise timing signal synchronized to GPS time. This proves invaluable for time-sensitive applications or syncing multiple devices. The PPS signal goes high for 50-100ms exactly once per second when the module has a fix.
Ultimate GPS Pinout Reference
Pin
Function
Notes
VIN
Power Input
3.0-5.5V DC, use clean supply
GND
Ground
Power and signal ground
TX
Serial Out
3.3V logic, NMEA data output
RX
Serial In
5V tolerant, accepts commands
FIX
Fix Indicator
High when fix acquired
PPS
Pulse Per Second
3.3V pulse, 1Hz when locked
EN
Enable
Pull low to disable module
VBAT
Backup Battery
For RTC, connect to coin cell
3.3V
Regulator Output
100mA available
Setting Up the Adafruit Ultimate GPS with Arduino
Getting the Adafruit Ultimate GPS running on Arduino takes about ten minutes if you follow the right steps. The module communicates via standard serial at 9600 baud by default, making it compatible with virtually any Arduino board.
Arduino Wiring for Ultimate GPS
GPS Pin
Arduino UNO
Arduino Mega
Feather M0/M4
VIN
5V
5V
3.3V
GND
GND
GND
GND
TX
Pin 8 (Software RX)
Pin 19 (RX1)
RX (hardware)
RX
Pin 7 (Software TX)
Pin 18 (TX1)
TX (hardware)
For Arduino UNO and similar boards without spare hardware serial ports, the Adafruit GPS library uses SoftwareSerial on pins 7 and 8 by default. Boards with multiple hardware serial ports (Mega, Feather, Metro M4) should use hardware serial for better reliability at higher update rates.
Arduino Code Example
cpp
#include <Adafruit_GPS.h>#include <SoftwareSerial.h>SoftwareSerial mySerial(8, 7); // RX, TXAdafruit_GPS GPS(&mySerial);void setup() { Serial.begin(115200); GPS.begin(9600); // Output RMC and GGA sentences only GPS.sendCommand(PMTK_SET_NMEA_OUTPUT_RMCGGA); // Set 1Hz update rate GPS.sendCommand(PMTK_SET_NMEA_UPDATE_1HZ);}void loop() { char c = GPS.read(); if (GPS.newNMEAreceived()) { if (GPS.parse(GPS.lastNMEA())) { if (GPS.fix) { Serial.print(“Location: “); Serial.print(GPS.latitudeDegrees, 6); Serial.print(“, “); Serial.println(GPS.longitudeDegrees, 6); } } }}
GPS HAT Setup for Raspberry Pi
The GPS HAT provides the cleanest integration for Raspberry Pi projects. It plugs directly onto the 40-pin GPIO header and uses the Pi’s hardware UART for communication. The tradeoff is that you lose console access over the serial pins—plan to use SSH or a monitor/keyboard for login.
Raspberry Pi Serial Configuration
Before using the GPS HAT, disable the serial console and enable the serial port hardware:
bash
sudo raspi-config# Navigate to: Interfacing Options → Serial Port# Login shell over serial: No# Serial port hardware enabled: Yes# Reboot when prompted
After rebooting, test raw GPS output:
bash
stty -F /dev/serial0 raw 9600 cs8 clocal -cstopbcat /dev/serial0
You should see NMEA sentences streaming if the module has power. The red LED blinks once per second while searching for satellites, then once every 15 seconds after acquiring a fix.
Installing gpsd for Raspberry Pi
The gpsd daemon provides a clean interface between your applications and the GPS hardware:
bash
sudo apt updatesudo apt install gpsd gpsd-clients# Disable the default systemd socketsudo systemctl stop gpsd.socketsudo systemctl disable gpsd.socket# Start gpsd manually pointing to serial portsudo gpsd /dev/serial0 -F /var/run/gpsd.sock# Test with cgps clientcgps
The cgps tool displays a text-based dashboard showing satellites, position, and fix quality. Press ‘q’ to exit.
PA1010D Mini GPS Module with I2C
The PA1010D offers something unique in Adafruit’s GPS lineup: I2C connectivity. This simplifies wiring significantly, especially on boards where you’re already using I2C for displays or sensors. The module occupies address 0x10 on the I2C bus.
PA1010D I2C Wiring
PA1010D Pin
Arduino
Raspberry Pi
Feather
VIN
5V
3.3V
3.3V
GND
GND
GND
GND
SDA
A4 (SDA)
GPIO 2 (SDA)
SDA
SCL
A5 (SCL)
GPIO 3 (SCL)
SCL
The STEMMA QT connector on the PA1010D makes solderless connections possible with compatible boards. Just plug in a STEMMA QT cable and you’re ready to go.
All Adafruit GPS modules output NMEA 0183 sentences—standardized text strings containing position, time, and satellite information. The two most useful sentences are GPRMC and GPGGA.
Note that coordinates are in degrees and decimal minutes, not decimal degrees. To convert 4042.6142 to decimal degrees: 40 + (42.6142 / 60) = 40.71024°.
Backup Battery and Warm Start
Both the Ultimate GPS and GPS HAT include a footprint for a CR1220 coin cell. This backup battery powers the real-time clock when main power is removed, enabling warm starts that acquire a fix in about one second instead of 30+ seconds for a cold start.
Backup Battery Installation
For v3 modules (current production), simply insert the CR1220 battery—a built-in diode prevents backfeeding. Older v1/v2 modules require cutting a trace on the PCB before installing the battery:
Locate the RTC solder jumper on the back
Cut the trace between the two pads with a hobby knife
Verify continuity is broken with a multimeter
Insert CR1220 battery
The backup circuit draws only 7µA, so a CR1220 (40mAh) lasts approximately 240 days of continuous backup operation.
External Antenna Options
The built-in patch antenna works well outdoors with a clear sky view. For indoor installations or enclosures, an external active antenna dramatically improves reception. The Ultimate GPS and GPS HAT include a uFL connector for this purpose.
External Antenna Setup
Component
Purpose
Active GPS Antenna
3-5V, SMA connector, ~15-25mA draw
uFL to SMA Adapter
Connects module to antenna
Antenna Ground Plane
Improves reception if antenna is isolated
Active antennas include a built-in LNA (Low Noise Amplifier) and require power. The GPS module provides this automatically through the antenna connection. Passive antennas don’t require power but provide less gain.
Troubleshooting Common GPS Issues
No Fix After Extended Time
GPS modules need a clear view of the sky. If the red LED keeps blinking at 1Hz after several minutes:
Move outdoors or near a window with sky visibility
Ensure the antenna points upward (patch side up)
Check for sources of RF interference nearby
Verify power supply is stable and adequate
NMEA Data But No Position
If you see NMEA sentences with empty fields (commas with no data between them), the module is working but hasn’t acquired enough satellites. Fields populate as satellites are tracked.
Incorrect Position Reading
A common mistake is misinterpreting the coordinate format. GPS outputs degrees and decimal minutes (DDMM.MMMM), not decimal degrees. Dividing the minutes portion by 60 and adding to degrees gives decimal degrees suitable for mapping applications.
How long does it take for the Adafruit Ultimate GPS to get a fix?
Cold start (no backup battery, first use) takes approximately 32 seconds under ideal conditions with clear sky visibility. Warm start (backup battery installed, used within past few hours) takes about 1 second. Hot start (module briefly lost power) also takes approximately 1 second. Indoor environments or urban canyons with limited sky view can extend these times significantly—sometimes to several minutes or more.
Can I use the Adafruit GPS modules for high-altitude balloon projects?
Yes, the Ultimate GPS works well for high-altitude balloon (HAB) projects. Users have reported successful operation up to approximately 32km altitude. The GPS theoretically supports up to 40km, though this approaches COCOM limits that restrict civilian GPS above 18km and 515 m/s simultaneously. For HAB applications, ensure the module has clear antenna exposure and consider an external antenna for the payload enclosure.
What’s the difference between UART and I2C GPS modules?
UART (serial) modules like the Ultimate GPS require dedicated TX/RX pins and operate at a fixed baud rate (9600 default). I2C modules like the PA1010D share the I2C bus with other devices and use addressed communication. UART provides faster raw throughput and simpler parsing; I2C saves pins when you’re already using I2C peripherals. Performance is essentially identical for position accuracy and fix time.
Why does my GPS show a position that’s 5-10 meters off from my actual location?
Standard GPS accuracy is 3-5 meters under ideal conditions, but multipath reflections from buildings, atmospheric effects, and satellite geometry can increase error to 10+ meters. This is normal behavior. For higher accuracy, consider modules supporting SBAS (Satellite-Based Augmentation System) corrections, which can improve accuracy to 1-3 meters. The Adafruit modules support SBAS when correction signals are available in your region.
Can I increase the GPS update rate above 1Hz?
Yes, the Adafruit GPS modules support update rates up to 10Hz. Send the command GPS.sendCommand(PMTK_SET_NMEA_UPDATE_10HZ) in your code. However, higher rates generate more data—at 10Hz with full NMEA output, the 9600 baud default may not keep up. Either increase the baud rate to 57600 or reduce NMEA sentence output to only RMC. Higher update rates also increase power consumption proportionally.
Practical Applications for Adafruit GPS
The Adafruit GPS ecosystem supports a wide range of projects. Vehicle trackers benefit from the built-in LOCUS datalogging on the Ultimate GPS—16 hours of position data stored without an SD card. Drone projects appreciate the 10Hz update rate for responsive navigation. Time synchronization applications use the PPS output for microsecond-accurate timing.
For Raspberry Pi projects, the GPS HAT integrates cleanly while providing prototyping space for additional components. The combination of precision timing (via PPS) and accurate position makes it suitable for scientific data collection where both location and timestamp matter.
The PA1010D’s compact size and I2C interface fit perfectly into wearable projects or space-constrained enclosures. Its STEMMA QT connector enables rapid prototyping without soldering—plug in, write code, and iterate.
Whatever your application, proper antenna placement matters more than any other factor. Point the patch antenna at the sky, minimize obstructions, and give the module time to acquire satellites. Once locked, these modules deliver reliable positioning that rivals units costing several times more.
Inquire: Call 0086-755-23203480, or reach out via the form below/your sales contact to discuss our design, manufacturing, and assembly capabilities.
Quote: Email your PCB files to Sales@pcbsync.com (Preferred for large files) or submit online. We will contact you promptly. Please ensure your email is correct.
Notes: For PCB fabrication, we require PCB design file in Gerber RS-274X format (most preferred), *.PCB/DDB (Protel, inform your program version) format or *.BRD (Eagle) format. For PCB assembly, we require PCB design file in above mentioned format, drilling file and BOM. Click to download BOM template To avoid file missing, please include all files into one folder and compress it into .zip or .rar format.