TinkerRTK Overview

TinkerRTK is a set of modular open source boards and accompanying open source software to enable Real Time Kinetic (RTK) GNSS for a variety of uses. From the single board TinkerNav to a full kit including radios and displays, our hardware and software make it easy to get 1 centimeter accuracy in your next project. Our RTK explainer describes what RTK is, here will describe the TinkerRTK family of products.

Modular Architecture

Tinker RTK includes four boards that plug together. The base TinkerNav board includes a GNSS receiver, RP2040 microcontroller, and ESP32-C3 WiFi/Bluetooth LE radio. Separate board are available for a LoRa radio, 4G Mobile radio, and USB/solar charging board to allow maximum flexibility in selecting the right components for your project. For example, you may only need the GNSS receiver, MCU, and ESP32 WiFi connection, in which case you only need the TinkerNav board. Our How to Send RTK Corrections page describes different options supported by the built in ESP32-C3, LoRa, and Mobile radios. We also offer a touchscreen display that connects to the TinkerNav board and have designed a case you can print  build your own device. The diagram below describes what each of the three core components of TinkerRTK (TinkerNav, TinkerSend, and TinkerCharge) do and what they include.

The diagrams below show how the components of the TinkerRTK system interact to compute and use corrected GNSS data in both a rover and base station configurations. In the rover configuration RTCM correction messages are received from either the built in ESP32 or one of the optional TinkerSend radios. The SkyTraq PX1125R or PX1122R GNSS receiver uses the RTCM correction data to compute an RTK solution. The RP2040 sends the solution to the USB-C port and optionally displays the PX1125R or PX1122R data using a TFT display. The ESP 32 can also present the PX1125R/PX1122R data to a website using the ESP32 WiFi capability or to an app on your phone using the ESP32 Bluetooth capability.

When acting as a base station the TinkerRTK system computes RTCM corrections using the PX1122R or PX1125R receiver and transmits those corrections using the built in ESP32 or an optional TinkerSend radio. You can send data directly to a rover or using one of the other methods described on our How to Send RTK Corrections page. The RP2040 can also display information to the optional touch screen display, or the ESP32 can publish information to a webpage.

TinkerRTK Options

Using the modular architecture you can select the right components for your project. Starting from the base TinkerNav board that provides an RTK GNSS receiver, RP2040 processor, and ESP32 WiFi/Bluetooth radio, you can add a TinkerSend radio for longer range and/or a TinkerCharge for lithium battery operation. 

Chose between a Long Range (LoRa) radio or a SIM7000G 4G mobile radio for the TinkerSend radio. See our page on how to send RTK corrections to help pick the right radio for you. Also chose a TinkerCharge to connect and charge a lithium ion battery and make your project portable. For a complete solution add a case with a screen and GNSS antenna. Below are several of the different configurations you can select.

Electrical Interface

The electrical interface between TinkerRTK components are described on the following pinout diagram.  The diagram shows the interfaces between the TinkerNav, TinkerCharge, and the TinkerSend radio options (LoRa, and Mobile). The light blue boxes show the RP2040 GPIO pins that are broken out. If you are not using the TinkerSend radio, you can connect and program these pins as you choose. If you are using a TinkerSend radio, the “S” pins at the top of the board are used to connect to each radio. The brown colored boxes describe the LLCC68 radio connections and the orange boxes the SIM7000G connections. Pins that are connected to both the PX1125R GNSS receiver, the RP2040, and the ESP32 are shown in blue and yellow.

TinkerCharge is connected to the “C” pins at the bottom of the board. TinkerCharge allows you to use TinkerRTK with a rechargeable 1S lithium ion battery. TinkerCharge also supports charging the battery with either of the USB ports on TinkerNav or 5V solar panels connected to the TinkerCharge. Interfaces to the TinkerCharge include power inputs/outputs and the I2C SDA/SDL ports for communicating to the battery monitor.

Arrows on the boards must be aligned for proper function, though boards will not be destroyed by inserting them backwards.


The TinkerRTK hardware provides power and flexibility for your project, but, of course, requires software. Our GitHub repositories contain the individual programs to operate TinkerNav, TinkerSend, and TinkerCharge. 

The RP2040 is programmed using three major techniques and languages. Raspberry Pi describes them well and provides tutorials in their getting started document. Any of these can be used to program your TinkerRTK system. Our software, however, is based on the Arduino IDE. The Arduino IDE offers a simple but powerful environment with many pre-existing libraries and is the starting point for our software options.