Skip to main content

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.

System information on the configuration page

Configuration page with system version numbers

info

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:

WiFi Config page

Header of the WiFi Config page listing the firmware version

Web Config - System Configuration

Firmware version listed in the System Configuration menu of the Web Config page

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.

  1. Connect to the TX2 with the web configuration interface
  2. Make sure that a WiFi network has been configured in the settings
  3. Navigate to the System Configuration setting, where the firmware can be updated

    Updating Firmware from WiFi config page

    Updating the firmware via WiFi config page

    1. 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.
    2. If a new firmware version is available, an Update to version number button will appear.
    3. Click the button to begin the OTA update process. The TX2 will download the latest firmware binary and update the firmware to the ESP32.
Automatic Updates

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.

note

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.

note

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.

  1. Connect to the TX2 with the web configuration interface
  2. Navigate to the System Configuration setting, where the firmware can be updated

    Advanced system settings

    1. The firmware is uploaded to the unit by clicking on Upload BIN button.
    2. In the dialog box, locate and select the firmware binary file (i.e. RTK_Surveyor_Firmware_vx_x.bin) from your device.
    3. 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.
  3. 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
  1. Connect the SparkPNT TX2 to a computer with a USB cable.

    USB connector

    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 Driver

    The USB drivers for the CH342 USB-to-Serial converter can be downloaded below:

  2. Install the RTK Firmware Uploader tool. The program can be downloaded from the release page, with additional instructions provided in the README.md file.
  3. Download the firmware's binary file. All of our firmware releases can be downloaded from the SparkFun_RTK_Everywhere_Firmware_Binaries GitHub repository.
  4. Open the program and connect to the TX2. Select Channel A of the CH342, in the COM Port menu.

    Connecting to the device

    Selecting the serial port for the ESP32

    tip

    The baud rate can be left at the default setting.

  5. Click on the Browse button to select the firmware binary file you'd like to install.
  6. Click the Upload Firmware button to reprogram the ESP32
info

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 memory

Selecting the 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.

  1. Connect the SparkPNT TX2 to a computer with a USB cable.

    USB connector

    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 Driver

    The USB drivers for the CH342 USB-to-Serial converter can be downloaded below:

  2. Install your preferred terminal emulator.
  3. 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 Status
    STATE_ROVER_NOT_STARTED --> STATE_ROVER_CONFIG_WAIT
    Successfully set measurement rate
    Rover Accuracy (m): 0.000, SIV: 0 GNSS State: No Fix
    Rover configured
    STATE_ROVER_CONFIG_WAIT --> STATE_ROVER_NO_FIX
    Batt (92%): Voltage: 8.16V Discharging: 7.58%/hr
    Rover Accuracy (m): 0.000, SIV: 0 GNSS State: No Fix
    Rover Accuracy (m): 0.000, SIV: 0 GNSS State: No Fix
    Batt (92%): Voltage: 8.16V Discharging: 7.55%/hr
    Rover Accuracy (m): 0.000, SIV: 0 GNSS State: No Fix
    Rover Accuracy (m): 0.000, SIV: 0 GNSS State: No Fix
    Rover Accuracy (m): 0.000, SIV: 0 GNSS State: No Fix
    Batt (92%): Voltage: 8.16V Discharging: 7.54%/hr
    Rover Accuracy (m): 0.000, SIV: 0 GNSS State: No Fix
    Rover Accuracy (m): 0.000, SIV: 0 GNSS State: No Fix
    Batt (92%): Voltage: 8.16V Discharging: 7.55%/hr
    Rover Accuracy (m): 0.000, SIV: 0 GNSS State: No Fix
    Rover Accuracy (m): 0.000, SIV: 0 GNSS State: No Fix
    note

    These messages may be prefaced by the startup sequence messages, if the device restarts:

    Messages - Startup Sequence
    E4:65:B8:CD:1F:DC - wifiMACAddress
    E4:65:B8:CD:1F:DE - btMACAddress
    E4:65:B8:CD:1F:DF - ethernetMACAddress
    ======================
    Board ADC ID (mV): 918
    ======================
    LittleFS Started
    Using profile #3
    PSRAM Size (bytes): 2097152
    I2C Devices:
    0x0B - BQ40Z50 Battery Pack Manager / Fuel gauge
    0x10 - Authentication Coprocessor
    =================
    SparkPNT TX2 <Firmware Version>
    =================
    Profile 'Profile1' loaded
    GNSS <GNSS Receiver Model> online
    <GNSS Receiver Model> version: <Firmware Version> 2025/12/12 11:21:01
    Fuel gauge configuration complete
    No GNSS date/time available for system RTC.
    Authentication coprocessor online
    Bluetooth SPP and BLE broadcasting as: SparkPNT <TX Model>-<Serial Number>
  4. 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.

  5. From the Main menu, send the s character to select the Configure System option and enter the System Configuration menu.
    Example - Main Menu Options
    Menu: Main
    1) Configure GNSS Receiver
    2) Configure GNSS Messages
    3) Configure Base
    4) Configure Ports
    5) Configure Logging
    6) Configure WiFi
    7) Configure TCP/UDP
    f) Firmware Update
    i) Configure Corrections Priorities
    p) Configure PointPerfect
    r) Configure Radios
    s) Configure System
    u) Configure User Profiles
    +) Enter Command line mode
    x) Exit
  6. From the System Configuration menu, send the h character to select the Debug hardware option and enter the Hardware Debug menu.
    Example - System Configuration Menu Options
    Menu: System
    ----- Mode Switch -----
    Mode: Rover
    A) Switch to Base mode using Base Assist
    B) Switch to Base mode
    C) Switch to Base Caster mode
    R) Switch to Rover mode
    W) Switch to Web Config mode
    S) Shut down
    ----- Settings -----
    a) Automatic device reboot in minutes: Disabled
    b) Set Bluetooth Mode: Dual
    c) Shutdown if not charging: Disabled
    d) Debug software
    e) Echo User Input: On
    g) Enable Beeper: Enabled
    h) Debug hardware
    l) Debug LFS and SD card files
    n) Debug network
    o) Configure operation
    p) Configure periodic print messages
    r) Reset all settings to default
    u) Printed measurement units: meters
    z) Set time zone offset: 00:00:00
    ~) Setup button: Enabled
    x) Exit
  7. From the Hardware Debug menu, send 13 to select the LG290P reset for firmware update option. This will reset the LG290P for the synchronization process of the firmware update.
    Example - Hardware Debug Menu Options
    Menu: Hardware Debug
    1) Print battery status messages: Enabled
    3) Print RTC resyncs: Disabled
    4) Print log file messages: Disabled
    5) Print log file status: Enabled
    7) Print SD and UART buffer sizes: Disabled
    9) Print GNSS Debugging: Disabled
    10) Print Correction Debugging: Disabled
    11) Print Tilt/IMU Debugging: Disabled
    12) Print Tilt/IMU Compensation Debugging: Disabled
    13) LG290P reset for firmware update
    14) PSRAM (online): Enabled
    15) Print ESP-NOW Debugging: Disabled
    16) Print LoRa Debugging: Disabled
    18) Display littleFS stats
    19) Print CLI Debugging: Disabled
    20) Delay between CLI LIST prints over BLE: 50ms
    21) Double-Tap Interval: 250ms
    22) Print GNSS Config Debugging: Disabled
    23) Reset GNSS Config
    24) EA Protocol name: com.sparkfun.rtk
    25) RTCM buffer debugging: Disabled
    e) Erase LittleFS
    r) Force system reset
    x) Exit
    warning

    Please, keep this terminal open for the GNSS update proccess. It will be required to restart the GNSS receiver.

  8. 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 LG290P
    QGNSS 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.

  1. Download the latest LG290P firmware file from the SparkFun_RTK_Everywhere_Firmware_Binaries GitHub repository.
  2. Download and install QGNSS v2.x. QGNSS is the software created by Quectel to configure and view output from their GNSS modules.
  3. 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 OK to connect to the TX2.

    Select the COM port and baud rate

    Select the model, COM port, and baud rate

    tip

    If the baud rate doesn't work, users may need to reconfigure the baud rate of the LG290P to the default settings.

  4. 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 Download window

    Open the Firmware Update tool

  5. Select the firmware file to upload, by clicking on the button. (This should be the *.pkg file that was downloaded in Step 1.)

    Select the firmware file

    Select the firmware file

  6. Press the start arrow in the Firmware Update window.

    Starting the Firmware Update Process

    Start the Firmware Update Process

  7. 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 13 in the terminal emulator reset the LG290P GNSS module.
  8. The update process takes a little over a minute. Once completed, close QGNSS.
  9. Press and release the () power button to exit the GNSS update mode and restart the device.