Adafruit believe this is the Ultimate GPS module, so they named it that.
It's got everything you want and more:
- -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
- Internal patch antenna + u.FL connector for external active antenna
- Fix status LED
- New! Version 3 comes with the latest module which has external antenna support and Pulse-Per-Second output
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 dBm 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, Adafruit added all the extra goodies you could ever want: an 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 are the external antenna functionality and the built-in data-logging capability. The module has a standard ceramic patch antenna that gives it -165 dBm 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 Adafruit 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 are 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 it's hardcoded into the module but Adafruit found that this arrangement covers many of the most common GPS datalogging requirements.
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.
Adafruit 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, example code for both CircuitPython & Arduino, and more
As of Sept 2021, the original "Ultimate GPS" module we used was discontinued by the vendor. Adafruit found and are using a nearly identical version of the module with the same functionality. The commands for querying the antenna have changed slightly so existing projects may need to update their firmware.
- Satellites: 22 tracking, 66 searching
- Patch Antenna Size: 15mm x 15mm x 4mm
- Update rate: 1 to 10 Hz
- Position Accuracy: < 3 meters (all GPS technology has about 3m accuracy)
- Velocity Accuracy: 0.1 meters/s
- Warm/cold start: 34 seconds
- Acquisition sensitivity: -145 dBm
- Tracking sensitivity: -165 dBm
- Maximum Velocity: 515m/s
- Vin range: 3.0-5.5VDC
- MTK3339 Operating current: 25mA tracking, 20 mA current draw during navigation
- Output: NMEA 0183, 9600 baud default, 3V logic level out, 5V-safe input
- DGPS/WAAS/EGNOS supported
- FCC E911 compliance and AGPS support (Offline mode : EPO valid up to 14 days )
- Up to 210 PRN channels
- Jammer detection and reduction
- Multi-path detection and compensation
As of 8/10/2014 Adafruit are shipping with firmware v. 5632 which improves altitude calculations and stability. It is equivalent in all other functionality and is a drop-in replacement.
As of Feb 1, 2017 Adafruit have made minor silkscreen updates, improved the ground plane for better reception, increased the mounting hole diameter to 2.5mm from 2.0mm, and added a protection diode to the VBAT line. Functionality is otherwse the same.
As of Sept 2021, the original "Ultimate GPS" module we used was discontinued by the vendor. Adafruit found and are using a nearly-identical version of the module with the same functionality. The commands for querying the antenna have changed slightly so existing projects may need to update their firmware.
Breakout board details:
- Weight (not including coin cell or holder): 8.5g
- Dimensions (not including coin cell or holder): 25.5mm x 35mm x 6.5mm / 1.0" x 1.35" x 0.25"
Datasheets, schematics, GitHub links, Fritzing and more available in the product tutorial
PA1616S module datasheet