The SparkFun RTK Surveyor, SparkFun RTK Express, SparkFun RTK Express Plus, SparkFun RTK Facet, and SparkFun RTK Facet L-Band are centimeter-level GNSS receivers. With RTK enabled, these devices can output your location with 14mm horizontal and vertical accuracy at up to 20Hz!
This repo houses the RTK Product Manual and the firmware that runs on the SparkFun RTK product line including:
- SparkFun RTK Facet L-Band
- SparkFun RTK Facet
- SparkFun RTK Express Plus
- SparkFun RTK Express
- SparkFun RTK Surveyor
If you're interested in the PCB, enclosure, or overlay on each product please see the hardware repos:
- SparkFun RTK Facet L-Band Hardware
- SparkFun RTK Facet Hardware
- SparkFun RTK Express Plus Hardware
- SparkFun RTK Express Hardware
- SparkFun RTK Surveyor Hardware
Thanks:
- Special thanks to Avinab Malla for the creation of SW Maps and for pointers on handling the ESP32 read/write tasks.
- RTK Product Manual - A detail guide describing all the various software features of the RTK product line. Essentially it is a manual for the firmware in this repository.
- RTK Facet L-Band Hookup Guide - Hookup guide for the SparkFun RTK Facet L-Band.
- RTK Facet Hookup Guide - Hookup guide for the SparkFun RTK Facet.
- RTK Express Hookup Guide - Hookup guide for the SparkFun RTK Express and Express Plus.
- RTK Surveyor Hookup Guide - Hookup guide for the SparkFun RTK Surveyor.
- /Binaries - Pre-compiled binaries of SparkFun RTK firmware, suitable for loading (see manual). Also copies of u-blox firmware and command-line scripts (Windows only) to install them.
- /Firmware - Source code for SparkFun RTK firmware as well as various feature unit tests
- /Graphics - Original bitmap icons for the display
- /Uploader_GUI - A python and Windows executable GUI for updating the firmware on RTK units. See Updating Firmware From GUI.
- /u-blox_Update_GUI - A python and Windows executable GUI for updating the firmware on the u-blox modules within the RTK device (ZED-F9x and NEO-D9S primarily but all u-blox GNSS products are supported). See Updating u-blox Firmware.
- /docs - Markdown pages for the RTK Product Manual
This repository has two long-term branches: main
and release_candidate
.
With respect to the firmware, main
is a branch where only changes that are appropriate for all users are applied. Thus, following main
means updating to normal releases, and perhaps bugfixes to those releases.
In contrast, release_candidate
is where new code is added as it is developed.
The documentation source code is in docs/ on main
. It is built automatically on push and stored in the branch gh-pages
, from which it is served at the above URL. Documentation changes are pushed directly to main.
A release is made by merging release_candidate
back to main
, and then applying a tag to that commit on main
.
A pre-release is often created using the latest stable release candidate. These binaries will have extra debug statements turned on that will not be present in a formal release, but should not affect behavior of the firmware.
For building the firmware, see the Firmware README.
For the documention, see mkdocs.yml and /workflows/mkdocs.yml.
For building the Uploader_GUI see the header comments of RTK_Firkware_Uploader_GUI.py
For building the u-blox_Update_GUI see the header comments of RTK_u-blox_Update_GUI.py
This product is open source! Please feel free to contribute to both the firmware and documentation.
Various bits of the code have different licenses applied. Anything SparkFun wrote is beerware; if you see me (or any other SparkFun employee) at the local, and you've found our code helpful, please buy us a round!
Please use, reuse, and modify these files as you see fit. Please maintain attribution to SparkFun Electronics and release anything derivative under the same license.
Distributed as-is; no warranty is given.
- Your friends at SparkFun.