What is GPS RTK?

Contributors: Nate
Favorited Favorite 11

Real Time Kinematics

RTK is short for real time kinematics. A GPS receiver capable of RTK takes in the normal signals from the Global Navigation Satellite Systems along with a correction stream to achieve 1cm positional accuracy. GNSS includes satellites from GPS (USA), GLONASS (Russia), Beidou (China), and Galileo (Europe). On top of these signals an RTK receiver takes in an RTCM correction stream and then calculates your location with 1cm accuracy in real time. The rate varies between receivers but most will output a solution at least once per second; some receivers can output this higher precision solution up to 20 times a second. RTK capable GPS receivers used to be thousands of dollars and were limited to professional surveyors and government groups. Thanks to science, math, and economics, RTK receivers are now less than $300.

SparkFun GPS-RTK-SMA Breakout - ZED-F9P (Qwiic)

SparkFun GPS-RTK-SMA Breakout - ZED-F9P (Qwiic)

SparkFun GPS-RTK2 Board - ZED-F9P (Qwiic)

SparkFun GPS-RTK2 Board - ZED-F9P (Qwiic)

SparkFun GPS-RTK Board - NEO-M8P-2 (Qwiic)

SparkFun GPS-RTK Board - NEO-M8P-2 (Qwiic)

$264.95 $179.95
SparkFun MicroMod GNSS Carrier Board (ZED-F9P)

SparkFun MicroMod GNSS Carrier Board (ZED-F9P)

SparkFun RTK Facet L-Band

SparkFun RTK Facet L-Band

SparkFun RTK Express

SparkFun RTK Express


On the left we have a extremely high quality GPS receiver (the ZED-F9P seen above) with no correction data. The position wanders greatly over 1.5 meters and beyond. On the right the same receiver, with the same antenna, with RTCM correction data brings the position under 25cm with tight groupings under 10cm.

GPS with and without RTCM Data correction

Did You Say 1 cm? Zomg How Do I Get 1 cm Accuracy!?

You'll need a GPS receiver capable of receiving and incorporating the RTCM correction data into its location solution. You’ll also need a source of RTCM correction data. This usually comes from an internet connection or a long distance radio capable of approximately 500 bytes per second. LoRa and LTE-CAT M1 are superb choices for this backhaul.

Once it's all setup and working, the rover GPS module will output normal NMEA sentences but with really accurate lat and long. To be clear, it’s not 1cm precision; it's 1cm accuracy. The precision is 0.1mm!

1 cm accuracy is also possible with a few lower cost receivers (such as the NEO-M8T) by capturing raw streams from the GPS satellites and then post processing the logs with an open source program called RTKLIB. This is handy for applications like aerial photography and agricultural inspection where alignment is important after the fact. It's also possible to tether a lower cost receiver (such as the NEO-M8T) to a laptop and run RTKLIB in unison and achieve real time solutions but this is a rather large, power hungry setup that is not ideal for embedded mobile applications. In these tutorials we will be focusing on real time (RTK) capable receivers.

What is RTCM?

RTCM is an acronym for Radio Technical Commission for Maritime. This governmental body came up with a way to communicate positions for boats and other vessels many decades ago. Technically, RTCM is just a protocol. We, however, will be using the term RTCM to mean the bytes of correction data related to GPS timing anomalies.

TRCM Protocol Message Structure

The contents of RTCM frames can be decoded but you, the user, rarely need to. Instead you simply pass the bytes to the GPS receiver and it will parse the correction data.

There are a few different types of messages but the ones we care about are numbers 1005, 1077, 1087, and 1230. Each message type has a different length but as a rule of thumb it's a couple hundred bytes every second. Each RTCM message contains details about the GPS/GNSS network, and perturbations in the ionosphere and troposphere.

Remember, the GPS satellites are very far away; about 20,000km or 12,000 miles away. A lot can happen to the signal from the GPS satellites to you across that distance. Geomagnetic storms cause slight timing delays increasing the location error. Earth's gravitational field is not uniform so relativistic effects can add inaccuracies. If we know the second to second issues within our local vicinity, a RTCM capable receiver can correct the location solution with great precision.

Where Do I Get RTCM Corrections?

There's the not-free but super easy solution, and there's the freeway.

Not-Free: Skylark

Skylark Coverage maps

Skylark coverage maps

A company called SwiftNav offers a service called Skylark. As of writing, for $49 per month you will get corrections covering North America, Europe, and Asia Pacific. You'll be issued NTRIP credentials that can immediately be used with Lefebure, SW Maps, or any GIS app that supports NTRIP. One downside is that with a 'regional' provider such as Skylark the distance to the correction station may be larger than 10km. While we've always gotten an RTK fix, we often see accuracy of ~30mm instead of the 14mm when using our own GNSS reference station. Your mileage may vary.

Sort Of Free: Build You Own

SparkFun RTK Base Station

The SparkFun RTK Base Station complete with an NTRIP internet connection and a 915MHz RF connection

RTK SMA transmitting RTCM over Qwiic to ESP32 Thing Plus

SparkFun GPS RTK transmitting RTCM over Qwiic to ESP32 Thing Plus

You can build your own GNSS reference station. It takes some work, some hardware, and you'll need to stay1 within 10km, but there's no annual fee and you'll have control over your own system. Additionally, we get a very good reported horizontal accuracy of 14mm in RTK Fix mode.

1 As the distance to a reference station passes 10km the accuracy of the RTK fix increases by a few centimeters.


If you're lucky there's a station within 10km (6 miles) of you that is broadcasting RTCM 3.x data over the internet. We located one a little more than 10 km from SparkFun HQ that works really well.

TRCM Base Station

Here’s a list of stations we’ve found. If there are more that you know of, please let us know:

Many of the stations that broadcast real time RTCM correction data require registration. It’s a wild hodge-podge of scientific and non-profit civil organizations across the globe. It feels very internet-circa-1995. If anyone has a more straightforward way of discovering and connecting to RTCM providers, please let us know in the comments section.

We recommend using RTKLIB to subscribe to the feed and output the stream over a serial port to a GPS RTK capable module. For the best accuracy, your GPS receiver will need to be within 10km (6 miles) of the broadcast station. If you are greater than 10km, the ZED-F9P can still create a location fixed but the accuracy is degraded and the receiver will output the following:

WARNING: DGNSS baseline big: 10km

How Do I Get the RTCM Messages to the GPS Receiver?

It depends on your end application. If you need maximum portability, then the best solution is a radio link between base station you've created and mobile GPS RTK receiver. SparkFun offers a variety of LoRa radios and antennas to enable this backhaul like some of the products listed below.

SparkFun MicroMod LoRa Function Board

SparkFun MicroMod LoRa Function Board


SparkFun LoRa Gateway - 1-Channel (ESP32)

LoRa 1W Breakout - 915M30S

LoRa 1W Breakout - 915M30S


If your end application already requires an Internet connection such as GSM or LTE-CAT, then a serial connection to the GPS-RTK receiver may be the easiest way to go.

If your application has a cell phone nearby then a third option is to create a serial bridge from a cell phone to a serial Bluetooth device like the Bluetooth Mate Silver that then connects to the serial port on the GPS-RTK. There are a few NTRIP compatible mobile apps. We’ve been pleased with Lefebure for Android.

Resources and Going Further

We hope this tutorial helps you understand a bit more about GPS RTK. This is just the beginning! For more information, check out the resources below:

Looking for more information related to GPS RTK? Check out the tutorials below:

Bluetooth Basics

An overview of the Bluetooth wireless technology.

LoRaWAN with ProRF and The Things Network

Learn how to make a LoRaWAN node for your next long range IoT project and connect it to the internet with The Things Network!

GPS-RTK Hookup Guide

Find out where you are! Use this easy hook-up guide to get up and running with the SparkFun high precision GPS-RTK NEO-M8P-2 breakout board.

Getting Started with U-Center for u-blox

Learn the tips and tricks to use the u-blox software tool to configure your GPS receiver.

GPS-RTK2 Hookup Guide

Get precision down to the diameter of a dime with the new ZED-F9P from u-blox.

Setting up a Rover Base RTK System

Getting GNSS RTCM correction data from a base to a rover is easy with a serial telemetry radio! We'll show you how to get your high precision RTK GNSS system setup and running.

How to Build a DIY GNSS Reference Station

Learn how to affix a GNSS antenna, use PPP to get its ECEF coordinates and then broadcast your own RTCM data over the internet and cellular using NTRIP to increase rover reception to 10km!

SparkFun RTK Surveyor Hookup Guide

Learn how to use the enclosed RTK Surveyor product to achieve millimeter level geospatial coordinates.

SparkFun RTK Express Hookup Guide

Learn how to use the enclosed RTK Express product to achieve millimeter level geospatial coordinates.

SparkFun RTK Facet Hookup Guide

Setup the RTK Facet in minutes to begin gathering millimeter level geospatial coordinates.

Or check out this blog post for inspiration.