Firmware Update
SparkPNT releases new firmware to improve or fix the functions and subsystems of the SparkPNT TX2. These firmware releases will update either the device's primary controller; or the subsystems for the GNSS receiver and LoRa radio. The firmware versions are displayed in the configuration header.
Users can check out the SparkFun_RTK_Everywhere_Firmware GitHub repository for the firmware releases and changes. Additionally, the firmware files from each release is archived in the SparkFun_RTK_Everywhere_Firmware_Binaries GitHub repository.
Updating ESP32 Firmware
The ESP32 runs off our open-source RTK Everywhere firmware, which is used in all of our GNSS RTK devices. The version of this firmware, is listed in a variety of places:
Most of our firmware releases will update functions or add new features. To check for the most current versions, follow the Check for New Firmware section of the Configuration Settings guide. Most users will upgrade the firmware through the web configuration interface.
- OTA Method: Connects to a WiFi network to download the latest firmware from the internet. This can be done using the WiFi AP Config Mode, but also requires a local WiFi network with an internet connection.
- WiFi Method: Uploads the firmware directly from a mobile device, using the WiFi AP Config Mode.
- Reprogram the ESP32: Reprograms the ESP32, using the TX2's USB interface. This method is primarliy used for a device failure, when the firmware needs to be restored with the default settings.
Over-The-Air
With the Over-The-Air (OTA) method, the TX2 will use the local WiFi network to check the internet for new firmware. If new version is available, it will automatically download the firmware file from the internet and update itself. Users can also enable this process to run automatically, to keep their device(s) updated.
- Connect to the TX2 with the web configuration interface
- Make sure that a WiFi network has been configured in the settings
- Navigate to the System Configuration setting, where the firmware can be updated
Updating the firmware via WiFi config page - Click on the Check for New Firmware button. The TX2 will connect to the internet, through the configured WiFi network. Then it will check for the latest firmware releases, excluding the release candidates.
- If a new firmware version is available, an Update to version number button will appear.
- Click the button to begin the OTA update process. The TX2 will download the latest firmware binary and update the firmware to the ESP32.
To enable automatic updates, select the Enable Automatic Firmware Updates option. Then click the Save Configuration button at the bottom of the webpage, to save this configuration change.
Automatic firmware updates are supported over WiFi, which makes checking and upgrading a unit simple. The polling period is specified in minutes and defaults to once a day.
The OTA update method only checks for and installs the latest firmware release; it cannot be used to restore a firmware release or revert to an older firmware release.
Upload from WiFi
The upload from WiFi method, is for users who already have the firmware binary file downloaded on their computer or mobile device. Then, using the WiFi connection to access the TX2 configuration menu, they will upload the firmware file from their computer or mobile device.
- Connect to the TX2 with the web configuration interface
- Navigate to the System Configuration setting, where the firmware can be updated

- The firmware is uploaded to the unit by clicking on Upload BIN button.
- In the dialog box, locate and select the firmware binary file (i.e.
RTK_Surveyor_Firmware_vx_x.bin) from your device. - Click the Ok button to begin the upload sequence. This will transfer the firmware file from the computer or mobile device to the TX2, through the WiFi connection, where the TX2 will automatically update the firmware itself.
- The unit will automatically reset once the firmware upload is complete.
Reprogram the ESP32
This method is a more involved process, but it can be used in emergencies to restore the firmware when the TX2 is bricked, frozen, or unresponsive. The firmware will be uploaded directly to the ESP32 through its serial interface; effectively, reprogramming the module. There are a variety of ways to perform this; however, our RTK Firmware Uploader tool is the simplest.
Reprogramming the ESP32 with the RTK Firmware Uploader
- Connect the SparkPNT TX2 to a computer with a USB cable.
Users can access the USB-C port under the rubber cover on the bottom of the TX2 When connecting to the USB interface of the SparkPNT TX2 to a computer, the device should automatically be detected as two COM ports. If the ports are not detected then users will need to install a USB driver to access the data or configure any settings.
USB DriverThe USB drivers for the CH342 USB-to-Serial converter can be downloaded below:
- Windows: Download the
CH343SER.EXE - MacOS: Download the
CH341SER_MAC.ZIP - Linux: A USB driver is not required for most Linux based operating systems
- Windows: Download the
- Install the RTK Firmware Uploader tool. The program can be downloaded from the release page, with additional instructions provided in the
README.mdfile. - Download the firmware's binary file. All of our firmware releases can be downloaded from the
SparkFun_RTK_Everywhere_Firmware_BinariesGitHub repository. - Open the program and connect to the TX2. Select Channel A of the CH342, in the
COM Portmenu.
Selecting the serial port for the ESP32 tipThe baud rate can be left at the default setting.
- Click on the Browse button to select the firmware binary file you'd like to install.
- Click the Upload Firmware button to reprogram the ESP32
To restore the firmware to the factory default settings, select the Erase Flash option from the Extras drop-down menu. This will completely erase the flash memory, including the LittleFS file system.
Erase Flash option
Updating the LG290P Firmware
Updating the firmware for the LG290P GNSS receiver, requires users to access the SparkPNT TX2's configuration menu through the serial interface.
Trigger Synchronization
To reconfigure the UART connection for the GNSS receiver or LoRa module, users will need to access the serial interface of the SparkPNT TX2 with a terminal emulator.
- Connect the SparkPNT TX2 to a computer with a USB cable.
Users can access the USB-C port under the rubber cover on the bottom of the TX2 When connecting to the USB interface of the SparkPNT TX2 to a computer, the device should automatically be detected as two COM ports. If the ports are not detected then users will need to install a USB driver to access the data or configure any settings.
USB DriverThe USB drivers for the CH342 USB-to-Serial converter can be downloaded below:
- Windows: Download the
CH343SER.EXE - MacOS: Download the
CH341SER_MAC.ZIP - Linux: A USB driver is not required for most Linux based operating systems
- Windows: Download the
- Install your preferred terminal emulator.
- Connect to the TX2 with your preferred terminal emulator. Select Channel B of the CH342 and use a baud rate of 115200bps. When connected properly, users should see the unit's status messages.
Example - Status Messages
Messages - Device StatusSTATE_ROVER_NOT_STARTED --> STATE_ROVER_CONFIG_WAITSuccessfully set measurement rateRover Accuracy (m): 0.000, SIV: 0 GNSS State: No FixRover configuredSTATE_ROVER_CONFIG_WAIT --> STATE_ROVER_NO_FIXBatt (92%): Voltage: 8.16V Discharging: 7.58%/hrRover Accuracy (m): 0.000, SIV: 0 GNSS State: No FixRover Accuracy (m): 0.000, SIV: 0 GNSS State: No FixBatt (92%): Voltage: 8.16V Discharging: 7.55%/hrRover Accuracy (m): 0.000, SIV: 0 GNSS State: No FixRover Accuracy (m): 0.000, SIV: 0 GNSS State: No FixRover Accuracy (m): 0.000, SIV: 0 GNSS State: No FixBatt (92%): Voltage: 8.16V Discharging: 7.54%/hrRover Accuracy (m): 0.000, SIV: 0 GNSS State: No FixRover Accuracy (m): 0.000, SIV: 0 GNSS State: No FixBatt (92%): Voltage: 8.16V Discharging: 7.55%/hrRover Accuracy (m): 0.000, SIV: 0 GNSS State: No FixRover Accuracy (m): 0.000, SIV: 0 GNSS State: No FixnoteThese messages may be prefaced by the startup sequence messages, if the device restarts:
Messages - Startup SequenceE4:65:B8:CD:1F:DC - wifiMACAddressE4:65:B8:CD:1F:DE - btMACAddressE4:65:B8:CD:1F:DF - ethernetMACAddress======================Board ADC ID (mV): 918======================LittleFS StartedUsing profile #3PSRAM Size (bytes): 2097152I2C Devices:0x0B - BQ40Z50 Battery Pack Manager / Fuel gauge0x10 - Authentication Coprocessor=================SparkPNT TX2 <Firmware Version>=================Profile 'Profile1' loadedGNSS <GNSS Receiver Model> online<GNSS Receiver Model> version: <Firmware Version> 2025/12/12 11:21:01Fuel gauge configuration completeNo GNSS date/time available for system RTC.Authentication coprocessor onlineBluetooth SPP and BLE broadcasting as: SparkPNT <TX Model>-<Serial Number> - Access the serial configuration's Main menu by sending any character through the terminal emulator.
tip
If the GNSS output is enabled, users need to send the
+++character combination to enter the Serial Configuration menu. - From the Main menu, send the
scharacter to select theConfigure Systemoption and enter the System Configuration menu.Example - Main Menu Options
Menu: Main1) Configure GNSS Receiver2) Configure GNSS Messages3) Configure Base4) Configure Ports5) Configure Logging6) Configure WiFi7) Configure TCP/UDPf) Firmware Updatei) Configure Corrections Prioritiesp) Configure PointPerfectr) Configure Radioss) Configure Systemu) Configure User Profiles+) Enter Command line modex) Exit - From the System Configuration menu, send the
hcharacter to select theDebug hardwareoption and enter the Hardware Debug menu.Example - System Configuration Menu Options
Menu: System----- Mode Switch -----Mode: RoverA) Switch to Base mode using Base AssistB) Switch to Base modeC) Switch to Base Caster modeR) Switch to Rover modeW) Switch to Web Config modeS) Shut down----- Settings -----a) Automatic device reboot in minutes: Disabledb) Set Bluetooth Mode: Dualc) Shutdown if not charging: Disabledd) Debug softwaree) Echo User Input: Ong) Enable Beeper: Enabledh) Debug hardwarel) Debug LFS and SD card filesn) Debug networko) Configure operationp) Configure periodic print messagesr) Reset all settings to defaultu) Printed measurement units: metersz) Set time zone offset: 00:00:00~) Setup button: Enabledx) Exit - From the Hardware Debug menu, send
13to select theLG290P reset for firmware updateoption. This will reset the LG290P for the synchronization process of the firmware update.Example - Hardware Debug Menu Options
Menu: Hardware Debug1) Print battery status messages: Enabled3) Print RTC resyncs: Disabled4) Print log file messages: Disabled5) Print log file status: Enabled7) Print SD and UART buffer sizes: Disabled9) Print GNSS Debugging: Disabled10) Print Correction Debugging: Disabled11) Print Tilt/IMU Debugging: Disabled12) Print Tilt/IMU Compensation Debugging: Disabled13) LG290P reset for firmware update14) PSRAM (online): Enabled15) Print ESP-NOW Debugging: Disabled16) Print LoRa Debugging: Disabled18) Display littleFS stats19) Print CLI Debugging: Disabled20) Delay between CLI LIST prints over BLE: 50ms21) Double-Tap Interval: 250ms22) Print GNSS Config Debugging: Disabled23) Reset GNSS Config24) EA Protocol name: com.sparkfun.rtk25) RTCM buffer debugging: Disablede) Erase LittleFSr) Force system resetx) ExitwarningPlease, keep this terminal open for the GNSS update proccess. It will be required to restart the GNSS receiver.
- Proceed to the instructions in the following section, to update the firmware for the LG290P GNSS module.
Details
Example - Firmware Update Instructions
Once the LG290P restarts, the following instructions will be provided in the terminal:Response Messages - Update Instructions for LG290PQGNSS must be connected to CH342 Channel A at 230400bps.Begin firmware update from QGNSS (hit the play button) then reset the LG290P using menu choice 13.LG290P reset complete.GNSS defaults have been applied. GNSS will be configured when you exit the menu.Wait for the update to complete. Then exit the menu.
Update the LG290P Firmware
To update the LG290P GNSS receiver, users will need to install the QGNSS v2.x software, download the GNSS firmware file, and setup the TX2 to trigger the synchronization proccess.
- Download the latest LG290P firmware file from the
SparkFun_RTK_Everywhere_Firmware_BinariesGitHub repository. - Download and install QGNSS v2.x. QGNSS is the software created by Quectel to configure and view output from their GNSS modules.
- Open QGNSS and connect to your device by, selecting LG290P(03) from the drop-down menu for Model. Then, select Channel A of the CH342, set the baud rate to 230400, and press
OKto connect to the TX2.
Select the model, COM port, and baud rate tipIf the baud rate doesn't work, users may need to reconfigure the baud rate of the LG290P to the default settings.
- To upload firmware to the LG290P, navigate from the Tools drop-down menu and select the Firmware Update option (Tools > Firmware Update).
Open the Firmware Update tool - Select the firmware file to upload, by clicking on the button. (This should be the
*.pkgfile that was downloaded in Step 1.)
Select the firmware file - Press the start arrow in the Firmware Update window.
Start the Firmware Update Process - Before the firmware can be uploaded, the LG290P must be reset to synchronize the module with the firmware upload process. To reset the LG290P, send
13in the terminal emulator reset the LG290P GNSS module. - The update process takes a little over a minute. Once completed, close QGNSS.
- Press and release the () power button to exit the GNSS update mode and restart the device.