SparkFun
GPS-RTK Board - NEO-M8P-2 (Qwiic)
· MPN: GPS-15005
Built around the u-blox NEO-M8P-2, this breakout brings high-accuracy GNSS and GPS positioning with RTK support to the Qwiic ecosystem. It’s designed for app...
Get notified when back in stock
Built around the u-blox NEO-M8P-2, this breakout brings high-accuracy GNSS and GPS positioning with RTK support to the Qwiic ecosystem. It’s designed for applications where standard GPS accuracy isn’t enough, with RTK positioning down to 25mm so you can track the location of a device, robot or vehicle with much greater precision.
The board can operate as either a rover or a base station, which makes it especially flexible for RTK setups. Two Qwiic connectors make it easy to add to an I2C system without soldering, while 0.1"-spaced pins are also broken out for breadboard or wired installations.
A rechargeable backup battery is included to retain the latest module configuration and satellite data for up to two weeks, helping the receiver warm-start much faster. Survey-in mode allows the module to become a base station and output RTCM 3.x correction data, and SparkFun also provides an Arduino library to simplify reading and controlling the module over Qwiic.
There’s plenty of flexibility on the interface side too, with USB, UART, I2C and SPI all available. The default I2C address is 0x42 and it is software configurable, but if you need to use more than one NEO-M8P-2 on the same I2C bus, a multiplexer is required.
Features:
- RTK positioning: High accuracy GNSS and GPS location solutions including RTK
- Accuracy: Positioning within one inch / 25mm with RTK
- Operating modes: Capable of both rover and base station operations
- Qwiic system: No soldering is required to connect it to the rest of your system
- Pin breakout: 0.1"-spaced pins are broken out for breadboard use
- Backup battery: Rechargeable backup battery keeps the latest module configuration and satellite data available for up to two weeks
- Warm start: Backup battery helps warm-start the module and decreases time-to-first-fix
- Survey-in mode: Allows the module to become a base station and produce RTCM 3.x correction data
- Configuration options: Supports geofencing
- Configuration options: Variable I2C address
- Configuration options: Variable update rates
- High precision RTK solution: Can be increased to 4Hz
- USB: Enumerates as a COM port
- UART: 3.3V TTL
- I2C: Available via the two Qwiic connectors or broken out pins
- SPI: Supported
- Arduino library: Arduino library for u-blox modules makes reading and controlling the GPS-RTK over the Qwiic Connect System easy
- I2C address: Default address is 0x42 and it is software configurable
- Multiple sensors: A multiplexer/Mux is required to communicate to multiple NEO-M8P-2 sensors on a single bus
Specifications:
- Voltage: 5V or 3.3V but all logic is 3.3V
- Current: ~35mA (varies with constellations and tracking state)
- Time to First Fix: 29s (cold), 1s (hot)
- Max Navigation Rate - PVT (basic location over UBX binary protocol): 10Hz
- Max Navigation Rate - RTK: 5Hz
- Max Navigation Rate - Moving Baseline RTK: 4Hz
- Max Navigation Rate - Raw: 10Hz
- Horizontal Position Accuracy - without RTK: 2.5m
- Horizontal Position Accuracy - with RTK: 0.025m
- Qwiic Connectors: 2x Qwiic Connectors
- Weight: 6.3g
- Dimensions: 40.6mm x 33mm (1.6in x 1.3in)
A solid choice for precision positioning projects, RTK experiments, robotics, mapping and survey applications. It suits Arduino and Qwiic users particularly well, while still offering UART, SPI and USB for more custom integrations.
Jargon buster
Plain-language definitions for the technical terms used above.
- 3.3V TTL
- 3.3V TTL means the serial logic signals use 3.3 volt levels rather than 5 volts. This matters because connecting it directly to a 5V-only signal can damage the module or cause unreliable communication unless level shifting is used.
- breakout
- A breakout board carries a small or fine-pitched component and brings its connections out to standard, breadboard- and header-friendly pins. Describing a part as a breakout means it can be wired into a project without soldering directly to the component's tiny contacts.
- COM port
- A COM port is how a computer (chiefly under Windows) presents a serial port to software, whether a physical RS-232 port or a virtual port created when a USB-to-serial device is plugged in. Software can then communicate with the connected device over serial using a terminal or configuration program.
- GNSS
- GNSS stands for Global Navigation Satellite System, an umbrella term for satellite positioning networks such as GPS, GLONASS, Galileo and BeiDou. Receivers use these satellites to determine position, and high-precision units can output a steady stream of serial position data.
- GPS
- The US satellite navigation system used by GNSS receivers to calculate position and time. Support for GPS is important because it is widely available and often used together with other constellations for more reliable positioning.
- I2C
- I2C is a two-wire communication bus used by many sensors and small modules. It matters because several I2C devices can share the same two wires, but each device needs a compatible address and your controller must support I2C.
- I2C address
- An I2C address is the number a device uses so a microcontroller can tell it apart from other devices on the same I2C bus. It matters because two devices with the same fixed address may conflict if used together.
- multiplexer
- A multiplexer (mux) is a chip or circuit that selects one of several input signals and routes it to a single shared output, with select lines choosing which input is connected; running the same idea in reverse, to send one input to a chosen output, gives a demultiplexer. Multiplexers let a single controller or line work with several signals or devices that would otherwise clash on a shared connection.
- NEO-M8P-2
- A u-blox GNSS receiver module that supports high-precision RTK positioning. The exact module matters because it determines the board’s accuracy, update rates, supported interfaces, and whether it can work as a rover or base station.
- PVT
- Position, velocity and time data reported by a GNSS receiver. Knowing the PVT update rate helps you judge how often the board can provide basic navigation information to your project.
- Qwiic
- Qwiic is a plug-in connector system for I2C devices that uses small 4-pin cables, so you can connect compatible sensors without soldering. It matters because your controller or adapter also needs Qwiic, or you will need a cable or breakout to wire it up.
- RTCM 3.x
- RTCM 3.x is a standard data format used to send GNSS correction information from a base station to a rover. It matters because both ends of an RTK setup need to understand the correction format to achieve high-accuracy positioning.
- RTK
- Real-Time Kinematic positioning is a GNSS technique that uses correction data from a base station to greatly improve location accuracy. It matters if you need centimetre-level positioning for robotics, mapping, surveying, or tracking rather than ordinary metre-level GPS accuracy.
- SPI
- A fast serial communication bus often used for displays, memory cards, and sensors. It matters because SPI devices need specific pins for clock and data, plus a separate chip-select line for each device.
- Survey-in mode
- Survey-in mode is a GNSS base-station setup process in which a receiver averages its own position over a set period to establish a fixed reference location. A receiver that supports survey-in can act as an RTK base and generate correction data for one or more rover receivers.
- UART
- UART is a simple asynchronous serial interface that sends data over separate transmit and receive wires, usually labelled TX and RX, with both ends set to the same baud rate. It is a common way for microcontrollers and other serial devices to exchange data.
- UBX binary protocol
- UBX is u-blox’s binary communication protocol for sending configuration commands and receiving detailed navigation data. It matters when you want faster, more compact, or more complete data than standard text-based GPS messages can provide.
Find this product in
Brands
Sensors & Input
NEO-M8P-2 Datasheet
Datasheet · 866.8 KB · Click any page to view full size
GPS-RTK NEO-M8P-2 Schematic
Schematic · 82.5 KB · Click any page to view full size
NEO-M8P-2 Datasheet
Datasheet · 1.9 MB · Click any page to view full size
NEO-M8P Product Summary
Product Brief · 314.3 KB · Click any page to view full size
NEO-M8P Hardware Integration Manual
User Guide · 1.2 MB · Click any page to view full size
u-blox 8 / M8 Receiver Description and Protocol Spec
User Guide · 8.0 MB · Click any page to view full size
u-blox ECCN Document
Compliance · 27.8 KB · Click any page to view full size
Supplier page — sparkfun.com
Supplier Description · 712.2 KB · Click any page to view full size
Resources & Downloads
Guides, code examples, and more
Source Code
Open-source libraries, firmware & example projects for this product
A breakout board for the ublox NEO-M8P high precision, RTK ready GNSS module.
d4f7a0d
over 5 years ago
· 17 commits
- Documents Adding examples almost 8 years ago
- Hardware Updating test jig to one button, add ground plane. over 7 years ago
- .gitattributes Initial commit almost 8 years ago
- .gitignore Adding examples almost 8 years ago
- LICENSE.md Create LICENSE.md almost 8 years ago
- README.md Update README.md over 5 years ago
An Arduino library which allows you to communicate seamlessly with the full range of u-blox GNSS modules
14309e1
3 months ago
· 535 commits
- .github Don't compile new virtual example - fails on Uno (RAM) almost 3 years ago
- examples Merge pull request #211 from dizcza/main 12 months ago
- img Initial commit - based on v2_candidate over 5 years ago
- keys updated config_keys_sorted.txt and added interfaceDecription for m9 12 months ago
- src Fix reserved2 12 months ago
- Utils Update UBX_RAWX_Aligner.py almost 4 years ago
- .gitattributes Initial commit - based on v2_candidate over 5 years ago
- .gitignore Initial commit - based on v2_candidate over 5 years ago
- Adding_New_Messages.md Adding callback pointers for all auto messages over 4 years ago
- CMakeLists.txt CMake requires arduino-esp32 instead arduino 3 months ago
- CONTRIBUTING.md Update CONTRIBUTING.md over 5 years ago
- ISSUE_TEMPLATE.md Initial commit - based on v2_candidate over 5 years ago
- keywords.txt Fix tabs. Add new methods 12 months ago
- library.properties v2.2.28 12 months ago
- LICENSE.md Initial commit - based on v2_candidate over 5 years ago