Skip to content

Introduction

  • SparkFun RTK Postcard
    SKU: GPS-26916


    Product Thumbnail

    QR code to product video

     QR code to product page  Purchase from SparkFun    

  • Designed and manufactured in Boulder, CO USA, the SparkFun RTK Postcard is a compact development board for your high-precision positioning and navigation needs. This board combines the Quectel LG290P GNSS RTK receiver with an Espressif ESP32-PICO-MINI-02 MCU module, running our latest RTK Everywhere firmware. The ESP32 provides the SparkFun Postcard with WiFi and Bluetooth™ connectivity to operate as an NTRIP caster or client. Meanwhile, the 4-pin locking JST-GH connector allows users to transmit or receive RTCMv3 messages for RTK corrections from a local base station.

    • The LG290P module is a quad-band, multi-constellation, high-precision, RTK GNSS receiver. The module can simultaneously receive signals from the L1, L2, L5, and L6/E6 frequency bands of the GPS, GLONASS, Galileo, BDS, QZSS, and NavIC GNSS constellations. In addition, the module supports SBAS augmentation systems (WASS, EGNOS, BDSBAS, MSAS, GAGAN, and SDCM), PPP services2 (BDS PPP-B2b, QZSS CLAS, MADOCA-PPP, and Galileo HAS), RTCM, and RTK corrections for precision navigation with a fast convergence time and reliable performance. Connect with ease using a variety of interfaces, including UART, SPI1, and I2C1.

    • The ESP32-PICO-MINI-02 is a powerful MCU module with WiFi, Bluetooth™, and BLE connectivity and comes integrated with 8MB SPI flash, 2MB SPI Pseudo static RAM (PSRAM), and a 40 MHz crystal oscillator. The ESP32 microcontroller itself features two CPU cores that can be individually controlled, with an adjustable clock frequency between 80 - 240MHz and a low-power co-processor for minor tasks, such as monitoring peripherals. It supports a range of peripherals including an SD card interface, capacitive touch sensors, ADC, DAC, Two-Wire Automotive Interface (TWAI), Ethernet, high-speed SPI, UART, I2S, I2C, etc.

    With the RTK Everywhere firmware that comes pre-loaded, users can seamlessly operate the RTK Postcard as a base station or rover. These modes also offer additional functions, based on the available, wireless communication options:

    • The RTK Postcard can transmit or receive RTCMv3 messages locally by connecting one of our SiK Telemetry radios.
    • Through WiFi or Bluetooth™, the RTK Postcard can also function as an NTRIP caster or client.
    • The RTK Postcard can transmit NMEA messages to a graphical information software (GIS) apps on any mobile device when paired as a Bluetooth™ device.

    In addition to the RTK Postcard, we created the Portability Shield for the convenience of users. Simply connecting these products, provides a 1.3” OLED display and a five-way button to navigate the configuration settings and display PNT data; a microSD card slot for data logging; and a LiPo battery charger with a fuel gauge to take the RTK Postcard "on-the-go". All of these will operate plug-and-play without the need for new code.

    Info

    The RTK Everywhere firmware is open-source, so users can obtain, check, and even modify the device's functionality. This allows for easier feature expansion, bug maintenance, and longer device longevity.

Features Under Development

  • I2C/SPI - Currently, only the UART interface is supported by the module.
  • PPP Services - Corrections for some of the PPP services have not been implemented.

 Required Materials

To get started, users will need a few items. Some users may already have a few of these items, feel free to adjust accordingly.

  1. If your computer doesn't have a USB-A slot, then choose an appropriate cable or adapter.
Recommended Accessories

These products are recommended at minimum for users to get started with the Portability Shield and RTK Everywhere firmware.

Soldering Equipment

To add headers for the Portability Shield, users will need soldering equipment.

New to soldering?

Check out our How to Solder: Through-Hole Soldering tutorial for a quick introduction!

Optional Accessories

These products are optional, based on the utility required by the user.

GNSS Antennas & Accessories

For the best performance, we recommend users choose an active, multi-band GNSS antenna and utilize a low-loss cable. For additional options, please check out the GPS Antenna category of our product catalog.

Serial Transceivers, UART Adapters, and USB Cables

To configure the UART ports that are broken out on the board, users will need a UART adapter. Once configured, the UART ports can utilize one of our RF transceivers to send/receive RTCM messages.

Shields, Headers, and Wiring

To add headers or wiring, users will need soldering equipment and headers/wires.

New to soldering?

Check out our How to Solder: Through-Hole Soldering tutorial for a quick introduction!

Batteries

When using the Portability Shield, users can attach a single-cell LiPo battery to turn the boards into a mobile device.

Minimum Requirements

While users could probably discharge their LiPo batteries down to the maximum threshold of the battery's UVLO at 2.8V, the LG290P GNSS receiver and ESP32 MCU will discontinue operating, long before that can occur. We have found that the LG290P will begin to brown-out around 3.05-3.15V and the ESP32 will stop operating around 2.85-2.90V.

Therefore, users also won't be able to power this device with two 1.5V alkaline batteries (in series). They will require a minimum of three batteries to maintain an operational voltage, above 3. 15V.

The discharge rate of most single-cell batteries is 1C, unless specified otherwise.

Example

That means that the maximum current that can be expected from a battery is equal its capacity/hr. For instance, a 400mAh battery can be expected to handle a current draw of 400mA, at maximum.

Qwiic Devices and Cables

Our Qwiic connect system is a simple solution for daisy chaining I2C devices without the hassle of soldering or checking wire connections. Check out other Qwiic devices from our catalog.

What is Qwiic?

Qwiic Logo - light theme Qwiic Logo - dark theme


The Qwiic connect system is a solderless, polarized connection system that allows users to seamlessly daisy chain I2C boards together. Play the video, to learn more about the Qwiic connect system or click on the banner above to learn more about Qwiic products.

QR code to instructional video

Features of the Qwiic System

no soldering - light theme no soldering - dark theme

Qwiic cables (4-pin JST) plug easily from development boards to sensors, shields, accessory boards and more, making easy work of setting up a new prototype.

polarized connector - light theme polarized connector - dark theme

There's no need to worry about accidentally swapping the SDA and SCL wires on your breadboard. The Qwiic connector is polarized so you know you’ll have it wired correctly every time.

The part numbers for the PCB connector is SM04B-SRSS (Datasheet) and the mating connector on the cables is SHR04V-S-B; or an equivalent 1mm pitch, 4-pin JST connection.

daisy chainable - light theme daisy chainable - dark theme

It’s time to leverage the power of the I2C bus! Most Qwiic boards will have two or more connectors on them, allowing multiple devices to be connected.

Jumper Modification

To modify the jumpers, users will need soldering equipment and/or a hobby knife.

New to jumper pads?

Check out our Jumper Pads and PCB Traces Tutorial for a quick introduction!

 Suggested Reading

As a more sophisticated product, we will skip over the more fundamental tutorials (i.e. Ohm's Law and What is Electricity?). However, below are a few tutorials that may help users familiarize themselves with various aspects of the board.

Tip

Check out the www.gps.gov website to learn more about the U.S.-owned Global Positioning System (GPS) and the Global Navigation Satellite Systems (GNSS) of other countries.

Related Blog Posts

Additionally, users may be interested in these blog post articles on GNSS technologies:

Hardware Overview

Design Files

The SparkFun RTK Postcard board's dimensions, pin layout, and connectors are similar to our very popular SparkFun GPS-RTK-SMA Breakout - ZED-F9P (Qwiic) and SparkFun Quadband GNSS RTK Breakout - LG290P (Qwiic). The board features multiple UART ports, which are accessible through the USB-C connector, PTH pins, and 4-pin locking JST connector. Users can also interface with the board through the 19 PTH pins that are broken out around the edge of the board. For the GNSS antenna, an SMA antenna connector is provided on the edge of the board; additionally, users can rework the board to utilize the u.fl connector instead. We also provide two 4-pin JST Qwiic connectors for future use, to operate the board as a peripheral device.

  • Design Files


  • RTK Postcard

    Download the *.step File

    Enclosure

    Download the *.step File

    Manipulate 3D Model

    Controls Mouse Touchscreen
    Zoom Scroll Wheel 2-Finger Pinch
    Rotate Left-Click & Drag 1-Finger Drag
    Move/Translate Right-Click & Drag 2-Finger Drag

    Board Dimensions
    Dimensions of the RTK Postcard.

    Need more measurements?

    For more information about the board's dimensions, users can download the KiCad files for this board. These files can be opened in KiCad and additional measurements can be made with the measuring tool.

    KiCad - Free Download!

    KiCad is free, open-source CAD program for electronics. Click on the button below to download their software. (*Users can find out more information about KiCad from their website.)

    Download

    📏 Measuring Tool

    This video demonstrates how to utilize the dimensions tool in KiCad, to include additional measurements:

    QR code to play video

USB-C Connector

The USB connector is provided to power the board and communicate with either the LG290P GNSS receiver or ESP32 microcontroller. For most users, it will be the primary method for interfacing with the RL Postcard.

USB-C Connector

USB-C connector on the RTK Postcard.

CH342 Dual UART Converter

The CH342 serial-to-USB converter allows users to interface with the UART1 port of the LG290P GNSS module and UART0 port of the ESP32-Pico module through the USB-C connector. To utilize the CH342, users may need to install a USB driver, which can be downloaded from the manufacturer website.

Tip - USB Drivers

Linux

A USB driver is not required for Linux based operating systems.

CH342 UART Channels

The UART channels of the CH342 serial-to-USB converter.

Once the USB driver is installed, two virtual COM ports will be emulated and can be utilized as standard COM ports to access the modules:

  • ESP32 - Users should select COM port labeled with Channel A (often the lower enumeration).
  • LG290P - Users should select COM port labeled with Channel B (often the higher enumeration).

    UART Settings
    • ESP32


      With the RTK Everywhere firmware, the UART0 port of the ESP32 is configured with the following settings:

      • Baudrate: 115200bps
      • Data Bits: 8
      • Parity: No
      • Stop Bits: 1
    • LG290P


      With the RTK Everywhere firmware, the UART2 port of the LG290P is configured with the following settings:

      • Baudrate: 460800bps
      • Data Bits: 8
      • Parity: No
      • Stop Bits: 1
      Default Configuration

      The UART ports of the LG290P are configured with the following default settings:

      • Baudrate: 460800bps
      • Data Bits: 8
      • Parity: No
      • Stop Bits: 1
      • Flow Control: None
      • Protocols:
        • NMEA 0183
        • RTCM 3.x

Power

The RTK Postcard only requires 3.3V to power the board's primary components. The simplest method to power the board is through the USB-C connector. Alternatively, the board can also be powered through the other connectors and PTH pins.

Power connections

RTK Postcard's power connections.

Below, is a general summary of the power circuitry for the board:

  • 5V - The voltage from the USB-C connector, usually 5V.
    • Can be utilized as the primary power source for the entire board.
    • When connected to the Portability Shield, this pin used to provide power between the boards. (1)
  • 3V3 - 3.3V power rail, which powers the ESP32 Pico-Mini module, LG290P GNSS module, backup battery, and LEDs.
    • Power can also be distributed to/from any of the JST connectors (Qwiic or UART3) or the 3V3 PTH pin.
      • For power that is supplied through these connections, the LG290P has the tightest voltage supply requirement of 3.15–3.45V.
    • A regulated 3.3V is supplied by the RT9080, when powered from the 5V PTH pin or USB connector
      • Input Voltage Range: 3.0 to 5.5V (2)
      • The RT9080 LDO regulator can source up to 600mA.
  • 3V3_EN - Controls the power output form the RT9080 voltage regulator.
    • By default, the pin is pulled-up to 5V and to enable the RT9080 output voltage.
  • VCC - The voltage from the locking JST-GH connector, which is controlled by the VSEL jumper (3).
    • Used to power an external radio to send or receive RTK corrections.
  • GND - The common ground or the 0V reference for the voltage supplies.
  1. Details

    When 5V is provided to the RTK Postcard, it will supply power to the Portability Shield and charge the LiPo battery (if connected). To operate properly when charging the battery, the power switch behind the OLED display of the Portability Shield should be in the Off position.

    When powered by a LiPo battery, users must toggle the power switch behind the OLED display of the Portability Shield to the On position. This will allow the battery power to be provided to the RTK Postcard through the 5V pin; and then to its RT9080 LDO.

    Protection diodes are utilized on the boards to independently prevent current feedback and protect the power sources from each other.

  2. Brown Out Voltage

    The supply voltage of a LiPo battery will decrease as it is drained. However, before the battery can reach its critical UVLO threshold (~2.8V), the LG290 GNSS module with begin to brown out from an in-use supply voltage of 3.05-3.10V from a battery.

    Battery Capacity

    When selecting a LiPo battery for any combination of the RTK Postcard, Portability Shield, and/or connected radio, users should be aware of the peak current draw of their setup. In theory, most standard LiPo batteries have a maximum discharge rate of 1C (based on the battery capacity).

    \[ 1C = \frac{(1 * Capacity)}{hour} \]

    However, as a battery ages, users may find the effective capacity and discharge rate to degrade to 80% of its original specifications.

    Example

    For example, a LiPo battery with a 400mAh capacity will have a maximum discharge rate of 400mA. However, over time, users may notice its effective use diminish to 320mAh and 320mA respectively.

  3. By default, the VSEL jumper is configured to utilize the 3.3V power rail; however, it can be connected to the 5V power rail instead.

    Portability Shield

    When utilizing the 5V power rail of the RTK Postcard, power may be supplied from the LiPo battery from the Portability Shield. This should be taken into consideration when connecting an external radio for RTK corrections.

Info

For more details, users can reference the schematic and the datasheets of the individual components on the board.

Portability Shield

When used in conjunction with the Portability Shield, users should be aware of the following:

  • To charge the battery, users must provide adequate power through the 5V pin. This is most easily done by powering the boards from the USB-C connector.
  • When operating the boards with the battery power, users must ensure that the switch behind the OLED display is in the On position. This will allow the battery power to feedback to the RTK Postcard through the 5V pin; and over to the RT9080 LDO to provide a regulated 3.3V to its primary components.

Backup Battery

While charged, the backup battery allows the GNSS module to hot/warm start with valid ephemeris data (time and GNSS orbital trajectories) that was stored.

Time to First Fix:

  • Cold Start: 28s
  • Warm Start: 28s
  • Hot Start: 1.7s

Espressif logo  ESP32 Pico-Mini

The brains of the RTK Postcard is an ESP32 Pico-Mini module. The Espressif series of ESP32 modules are a versatile, compact MCU modules with WiFi, BT, and BLE capabilities that target a wide variety of applications. At the core of the ESP32 Pico-Mini module is the ESP32-PICO-V3-02, a System-in-Package device, along with an integrated 8 MB SPI flash, 2 MB SPI PSRAM, and 40 MHz oscillator.

ESP32 Pico-Mini module

The ESP32 Pico-Mini module on the RTK Postcard.

General Features
  • Electrical Characteristics:
    • Operating Voltage: 3.0 - 3.6V
    • Current Consumption:
      • RF Operation: 368mA (peak)
      • Normal Operation: 20-31mA
      • Light-Sleep: 0.8mA
      • Deep-Sleep: 5µA
  • Xtensa® Dual-Core 32-bit LX6 Microprocessor (up to 240MHz)
    • 448KB of ROM and 520KB SRAM
    • 8MB SPI Flash
    • 2MB PSRAM
    • 16KB SRAM in RTC
  • Operating Temperature: -40 to 85°C
  • PCB antenna
  • Wi­F 802.11b/g/n
    • Bit Rate: up to 150Mbps (802.11n)
    • Frequency Range: 2412 - 2484MHz
  • Bluetooth
    • Bluetooth v4.2 Specification:
      • BR/EDR
      • Bluetooth LE
    • Transmitter Class: 1, 2, and 3
  • 27 GPIO (including strapping pins) -
  • Supported Peripherals:
    • SD card, UART, SPI, SDIO, I2C, LED PWM, Motor PWM, I2S, IR, pulse counter, GPIO, capacitive touch sensor, ADC, DAC, TWAI® (compatible with ISO 11898-1, i.e. CAN Specification 2.0), Ethernet MAC
Warning

Users should be aware of the following nuances and details of this microcontroller

  • The ESP32 Pico-Mini is only compatible with 2.4GHz WiFi networks; it will not work on the 5GHz bands.
  • For details on the boot mode configuration, please refer to section 3.3 Strapping Pins of the ESP32 SoC datasheet.
RTK Everywhere Firmware

The RTK Postcard comes pre-programmed with latest version of our RTK Everywhere firmware. However, users are free to reprogram the board as they see fit. For more details about the RTK Everywhere firmware, users can refer to the user manual.

Firmware Download Mode

Users can manually force the board into the serial bootloader with the BOOT button. Please, refer to the Boot Button section below for more information.

Power Modes

The ESP32 Pico-Mini module has various power modes:

  • Active - The chip radio is powered on. The chip can receive, transmit, or listen.
  • Modem Sleep - The CPU is operational and the clock is configurable. The Wi-Fi/Bluetooth baseband and radio are disabled.
  • Light Sleep - The CPU is paused. The RTC memory and RTC peripherals, as well as the ULP coprocessor are running.
  • Deep Sleep - Only the RTC memory and RTC peripherals are powered on. The ULP coprocessor is functional.
  • Hibernation - Only one RTC timer on the slow clock and certain RTC GPIO active.
  • Off - Chip is powered off.

For more information on the power management of the ESP32 Pico-Mini module, pleaser refer to Section 4.4 and Tables: 8 and 9 of the ESP32 Pico-Mini module datasheet.

Peripherals and I/O Pins

The ESP32 Pico-Mini module features 27 multifunctional GPIO pins, of which, 11 I/O pins broken out into PTH pins on the RTK Postcard. Meanwhile, others are utilized to interface with the LG290P GNSS receiver or other components on the board (i.e. USB connector, Qwiic connector, etc.). All of the RTK Postcard PTH pins have a .1" pitch spacing for standard headers and their pin layout is compatible with our Portability Shield.

Peripherals interfaces

The peripheral interfaces and I/O pins on the RTK Postcard.

Interfaces:

  • UART (x2)
  • SPI
  • I2C (x2)
  • Event Trigger4
  • RTK Signal
  • Interrupt
  • PPS Timing Signal
  • LG290P Module Reset
ESP32 GPIO PTH Pin LG290P IO Other
GPIO 7 SDA0 I2C_SDA
GPIO 20 SCL0 I2C_SCL
GPIO 13 Qwiic SDA
GPIO 19 Qwiic SCL
GPIO 21 TXD2
GPIO 22 RXD2
GPIO 33 RST RESET_N
GPIO 34 RTK RTK_STAT LED RTK
GPIO 36 PPS 1PPS LED PPS
GPIO 8 EVENT EVENT
GPIO 32 SCK
GPIO 25 POCI
GPIO 26 PICO
GPIO 27 CS
GPIO 14 AOI
GPIO 4 LED BT
GPIO 0 LED STAT
General Capabilities

With the pin multiplexing capabilities of the ESP32 SoC, various pins can have several functionalities. For more technical specifications on the I/O pins, please refer to the ESP32 SoC datasheet.

  • 18x 12-bit analog to digital converter (ADC) channels
  • 3x UARTs (only two are configured by default in the Arduino IDE, one UART is used for bootloading/debug)
  • 3x SPI (only one is configured by default in the Arduino IDE)
  • 2x I2C (only one is configured by default in the Arduino IDE)
  • 2x digital-to-analog converter (DAC) channels
  • 16x 20-bit PWM outputs
  • 10x Capacitive Touch Inputs

Warning

Users should be aware of the following nuances of the ESP32 Pico-Mini module:

Programming in Arduino

To program the ESP32 Pico-Mini module in the Arduino IDE, users should select the ESP32 > ESP32 Dev Module from the Board Manager list. Users should also be aware that not all of the features, listed above, will be available in the Arduino IDE. When programming the module with the Arduino IDE, only the following features are available for the board:

  • Only one I2C bus is defined.
  • Only two UART interfaces are available.
    • UART (USB): Serial
    • RX/TX Pins: Serial1
  • Only one SPI bus is defined.

For the full capabilities of the ESP32, the Espressif IDF should be utilized.

General Functions

For digital pins, users will need to declare the pinMode() (link) in the setup of their sketch (programs written in the Arduino IDE) for the pins used.

  • Input


    When configured properly, an input pin will be looking for a HIGH or LOW state. Input pins are high impedance and takes very little current to move the input pin from one state to another.

  • Output


    When configured as an output the pin will be at a HIGH or LOW voltage. Output pins are low impedance; this means that they can provide a relatively substantial amount of current to other circuits.

Additional Functions

There are several pins that have special functionality in addition to general digital I/O. These pins and their additional functions are listed in the tabs below. For more technical specifications on the I/O pins, you can refer to the schematic, ESP32 Pico-Mini module datasheet, ESP32 SoC datasheet, and documentation for the ESP32 Arduino core.

The ESP32 module provides a 12-bit ADC input on eighteen of its I/O pins. This functionality is accessed in the Arduino IDE using the analogRead(pin) function. (*The available ADC pins are highlighted in the image below.)

Annotated image of analog inputs
Analog input pins on the RTK Postcard.

Tip

To learn more about analog vs. digital signals, check out this great tutorial.

Arduino

By default, in the Arduino IDE, analogRead() returns a 10-bit value. To change the resolution of the value returned by the analogRead() function, use the analogReadResolution(bits) function.

The ESP32 module supports up to sixteen channels of 20-bit PWM (Pulse Width Modulation) outputs on any of its I/O pins. This is accessed in the Arduino IDE using the analogWrite(pin, value) function. (*Any I/O pin can be used for the PWM outputs; the available DAC pins, with true analog outputs, are highlighted in the image below.)

Annotated image of DAC pins
Any I/O pin can be a PWM output, but these are the DAC pins on the RTK Postcard.

Tip

To learn more about pulse width modulation (PWM), check out this great tutorial.

Arduino

By default, in the Arduino IDE, analogWrite() accepts an 8-bit value. To change the resolution of the PWM signal for the analogWrite() function, use the analogWriteResolution(bits) function.

The ESP32 module provides three UART ports. By default, the UART port for the USB connection (Serial) and the UART port (Serial1) to the LG290P GNSS receiver can be accessed through the Arduino IDE using the serial communication class.

Annotated image of UART pins
Default UART ports on the RTK Postcard.

Tip

To learn more about serial communication, check out this great tutorial.

Arduino

By default, in the Arduino IDE, the ESP32 Dev Module board definition supports:

  • Serial - UART (USB)
  • Serial1 - Pins: RX/TX (GPIO 21/GPIO 22)

Tip

We have noticed that with the ESP32 Arduino core, Serial.available() does not operate instantaneously. This is due to an interrupt triggered by the UART, to empty the FIFO when the RX pin is inactive for two byte periods:

  • At 9600 baud, hwAvailable takes about 11 ms before the UART indicates that data was received from: \r\nERROR\r\n.

    \[ (bytes + 2) * 1ms = 11ms \]
  • At 115200 baud, hwAvailable takes about 1 ms before the UART indicates that data was received from: \r\nERROR\r\n.

    \[ (bytes + 2) * .087ms = 1ms \]

For more information, please refer to this chatroom discussion.

The ESP32 module provides three SPI buses. By default, in the Arduino IDE, the SPI class is configured to utilize pins GPIO 32 (SCK), GPIO 25 (POCI), GPIO 26 (PICO), and GPIO 27 (SS) for its chip select. In order to utilize the other SPI ports or objects, users will need to create a custom SPI object and declare which pins to access.

Annotated image of SPI pins
Default SPI bus connections on the RTK Postcard.

Tip

To learn more about the serial peripheral interface (SPI) protocol, check out this great tutorial.

Arduino

By default, in the Arduino IDE, the ESP32 Dev Module board definition supports:

SCK GPIO 32 (SCK)
SDI or POCI GPIO 25 (MISO)
SDO or PICO GPIO 26 (MOSI)
CS* GPIO 27 (SS)

Signal Nomenclature

To comply with the latest OSHW design practices, we have adopted the new SPI signal nomenclature (SDO/SDI and PICO/POCI). The terms Master and Slave are now referred to as Controller and Peripheral. The MOSI signal on a controller has been replaced with SDO or PICO. Please refer to this announcement on the decision to deprecate the MOSI/MISO terminology and transition to the SDO/SDI naming convention.

The ESP32 module module can support up to two I2C buses. By default, in the Arduino IDE, the Wire class is configured to utilize pins GPIO 20 (SDA) and GPIO 7 (SCL). These pins share the same I2C bus with the LG290P GNSS receiver, but not the Qwiic connector. In order to utilize another I2C port, users will need to create a custom Wire object and declare which pins to access.

Annotated image of I2C pins
Default I2C bus connections for the RTK Postcard.

Tip

To learn more about the inter-integrated circuit (I2C) protocol, check out this great tutorial.

Arduino

By default, in the Arduino IDE, the ESP32 Dev Module board definition supports:

SCL0 GPIO 7 (SCL)
SDA0 GPIO 20 (SDA)

Quectel logo  LG290P GNSS

The centerpiece of the RTK Postcard, is the LG290P GNSS module from Quectel. The LG290P is a low-power, multi-band, multi-constellation GNSS receiver capable of delivering centimeter-level precision at high update rates. The built-in NIC anti-jamming unit provides professional-grade interference signal detection and elimination algorithms, which effectively mitigate against multiple narrow-band interference sources and significantly improves the signal reception performance in complex electromagnetic environments. With its performance advantages of high-precision and power consumption, this board is an ideal choice for high-precision navigation applications, such as intelligent robots, UAVs, precision agriculture, mining, surveying, and autonomous navigation.

LG290P GNSS module

The LG290P module on the RTK Postcard.

QR code to product video

General Features
  • Supply Voltage: 3.15 – 3.45V
  • Tracking Channels: 1040
  • Concurrent signal reception: 5 + QZSS
    • L1, L2, L5, E6 frequency bands
  • Sensitivity:
    • Acquisition: -146dBm
    • Tracking: -160dBm
    • Reacquisition: -155dBm
  • Antenna Power: External or Internal
  • GNSS Constellations and SBAS Systems:
    • USA: GPS + WASS
    • Russia: GLONASS + SDCM
    • EU: Galileo + EGNOS
    • China: BDS + BDSDAS
    • Japan: QZSS + MSAS
    • India: NavIC + GAGAN
  • Accuracy of 1PPS Signal: 5ns (RMS)
  • Update Rate:
    • Default: 10Hz
    • Max: 20Hz
  • Time to First Fix (without AGNSS):
    • Cold Start: 28s
    • Warm Start: 28s
    • Hot Start: 1.7s
  • RTK Convergence Time: 5s
  • Dynamic Performance:
    • Maximum Altitude: 10000m
    • Maximum Velocity: 490m/s
    • Maximum Acceleration: 4g
  • Built-in NIC anti-jamming unit
  • Interfaces
    • UART (x3)
      • Baud Rate: 9600–3000000bps
        • Default: 460800bps
      • Protocol: NMEA 0183/RTCM 3.x
    • SPI1 (x1)
    • I2C1 (x1)
  • Operating temperature: -40°C to +85°C
  • Footprint: 12.2mm × 16mm × 2.6mm
  • Weight: ~0.9g
Supported Frequency Bands

The LG290P modules are multi-band, multi-constellation GNSS receivers. Below, is a chart illustrating the frequency bands utilized by all the global navigation satellite systems; along with a list of the frequency bands and GNSS systems supported by the LG290P GNSS module.

GNSS frequency bands
Frequency bands of the global navigation satellite systems. (Source: Tallysman)

Supported Frequency Bands:

  • GPS: L1 C/A, L1C2, L5, L2C
  • GLONASS: L1, L2
  • Galileo: E1, E5a, E5b, E6
  • BDS: B1I, B1C, B2a, B2b, B2I, B3I
  • QZSS: L1 C/A, L1C2, L5, L2C
  • NavIC: L5
  • SBAS: L1 C/A
  • L-band PPP3:
    • PPP: B2b
    • QZSS: L6
    • Galileo HAS: E6

Supported GNSS Constellations:

  • GPS (USA)
  • GLONASS (Russia)
  • Galileo (EU)
  • BDS (China)
  • QZSS (Japan)
  • NavIC (India)

Supported SBAS Systems:

  • WASS (USA)
  • SDCM (Russia)
  • EGNOS (EU)
  • BDSBAS (China)
  • MSAS (Japan)
  • GAGAN (India)

Info

For a comparison of the frequency bands supported by the LG290P GNSS modules, refer to sections 1.2, 1.5, and 1.6 of the hardware design manual.

What are Frequency Bands?

A frequency band is a section of the electromagnetic spectrum, usually denoted by the range of its upper and lower limits. In the radio spectrum, these frequency bands are usually regulated by region, often through a government entity. This regulation prevents the interference of RF communication; and often includes major penalties for any interference with critical infrastructure systems and emergency services.

GNSS frequency bands
Frequency bands of the global navigation satellite systems. (Source: ESA)

However, if the various GNSS constellations share similar frequency bands, then how do they avoid interfering with one another? Without going too far into detail, the image above helps illustrate some of the characteristics, specific to the frequency bands of each system. With these characteristics in mind, along with other factors, the chart can help users to visualize how multiple GNSS constellations might co-exist with each other.

For more information, users may find these articles of interest:

GNSS Accuracy

The accuracy of the position reported from the LG290P GNSS module, can be improved based upon the correction method being employed. Currently, RTK corrections provide the highest level of accuracy; however, users should be aware of certain limitations of the system:

  • RTK technique requires real-time correction data from a reference station or network of base stations.
    • RTK corrections usually come from RTCM messages that are signal specific (i.e. an RTK network may only provide corrections for specific signals; only E5b and not E5a).
  • The range of the base stations will vary based upon the method used to transmit the correction data.
  • The reliability of RTK corrections are inherently reduced in multipath environments.

Correction Method Horizontal Vertical Velocity
Standalone 0.7m
~2.3'
2.5m
~8.2'
3cm/s (0.108kph)
~1.2in/s (0.067mph)
RTK 0.8cm (+1ppm)
~0.3"
1.5cm (+1ppm)
~.6"

RTK Corrections

To understand how RTK works, users will need a more fundamental understanding of the signal error sources.

Peripherals and I/O Pins

The LG290P GNSS features several peripheral interfaces and I/O pins. Some of these are broken out as PTH pins on the RTK Postcard; whereas, others are broken out to their specific interface (i.e. USB connector, JST connector, etc.). Additionally, some of their connections are tied to other components on the board.

Peripherals interfaces

The peripheral interfaces and I/O pins on the RTK Postcard.

Interfaces:

  • UART (x3)
  • SPI1
  • I2C1
  • Event Trigger4
  • Timing Signal
  • RTK Signal
  • Module Reset

The LG290P GNSS has three UART ports, which can be operated and configured separately.

UART interface
The UART ports on the RTK Postcard.

UART Settings

With the RTK Everywhere firmware, the UART ports of the LG290P are configured with the following baudrates:

UART Port Interface Baudrate (bps)
UART1 USB-C (CH342) 460800
UART2 ESP32 460800
UART3 JST-GH (Locking) 57600

Default Configuration

The UART ports of the LG290P are configured with the following default settings:

  • Baudrate: 460800bps
  • Data Bits: 8
  • Parity: No
  • Stop Bits: 1
  • Flow Control: None
  • Protocols:
    • NMEA 0183
    • RTCM 3.x
Pin Connections

When connecting to the board's UART pins to another device, the pins should be connected based upon the flow of their data.

Board RX TX GND
UART Device TX RX GND

UART1 can only be accessed from the USB-C connector, through the CH342 serial-to-USB converter. For Windows and MacOS computers (1), a USB driver must be installed in order to communicate with the LG290P module through the CH342 converter. Once the USB driver is installed:

  • Two virtual COM ports are emulated, which can be used as standard COM ports to access the ESP32 or the LG290P modules.
  • Users should select COM port listed as Channel B to access the LG290P GNSS receiver.
  1. On Linux, the standard Linux CDC-ACM driver is suitable.

UART2 is connected to the ESP32 Pico-Mini.

ESP32 LG290P
IO21: GPIO 21 TXD2
IO22: GPIO 22 RXD2

UART3 is available through the breakout PTH pins or the locking JST connector. The pin layout of the 4-pin locking JST connector is compatible with many of our serial radios and adapter cables.

UART Protocols

UART Protocols

By default, these UART ports are configured to transmit and receive NMEA 0183 and/or RTCM 3.x messages. These messages are generally used for transmitting PNT data; and providing or receiving RTK corrections, respectively. Quectel also implements a system of proprietary messages (PQTM) for users to configure the LG290P that follows a data format similar to the NMEA protocol. The expected structure of these proprietary messages is shown below:

NMEA data structure
The data structure of Quectel messages for the NMEA protocol.

A full list of compatible NMEA 0183 v4.11 messages, is provided in section 2.2. Standard Messages of the GNSS Protocol Specification manual. This protocol is used for outputting GNSS data, as detailed by the National Marine Electronics Association organization.

List of Standard NMEA Messages

Message Type Mode Message Description
RMC Output Recommended Minimum Specific GNSS Data
GGA Output Global Positioning System Fix Data
GSV Output GNSS Satellites in View
GSA Output GNSS DOP and Active Satellites
VTG Output Course Over Ground & Ground Speed
GLL Output Geographic Position – Latitude/Longitude

A full list of PQTM messages (proprietary NMEA messages defined by Quectel) supported by LG290P, is provided in section 2.3. PQTM Messages of the GNSS Protocol Specification manual. This protocol is used to configure or read the settings for the LG290P GNSS module.

List of Proprietary Quectel Messages

Message Type Mode Message Description
PQTMVER Output Outputs the firmware version
PQTMCOLD Input Performs a cold start
PQTMWARM Input Performs a warm start
PQTMHOT Input Performs a hot start
PQTMSRR Input Performs a system reset and reboots the receiver
PQTMUNIQID Output Queries the module unique ID
PQTMSAVEPAR Input Saves the configurations into NVM
PQTMRESTOREPAR Input Restores the parameters configured by all commands to their default values
PQTMVERNO Output Queries the firmware version
PQTMCFGUART Input/Output Sets/gets the UART interface
PQTMCFGPPS Input/Output Sets/gets the PPS feature
PQTMCFGPROT Input/Output Sets/gets the input and output protocol for a specified port
PQTMCFGNMEADP Input/Output Sets/gets the decimal places of standard NMEA messages
PQTMEPE Output Outputs the estimated position error
PQTMCFGMSGRATE Input/Output Sets/gets the message output rate on the current interface
PQTMVEL Output Outputs the velocity information
PQTMCFGGEOFENCE Input/Output Sets/gets geofence feature
PQTMGEOFENCESTATUS Output Outputs the geofence status
PQTMGNSSSTART Input Starts GNSS engine
PQTMGNSSSTOP Input Stops GNSS engine
PQTMTXT Output Outputs short text messages
PQTMCFGSVIN Input/Output Sets/gets the Survey-in feature
PQTMSVINSTATUS Output Outputs the Survey-in status
PQTMPVT Output Outputs the PVT (GNSS only) result
PQTMCFGRCVRMODE Input/Output Sets/gets the receiver working mode
PQTMDEBUGON Input Enables debug log output
PQTMDEBUGOFF Input Disables debug log output
PQTMCFGFIXRATE Input/Output Sets/gets the fix interval
PQTMCFGRTK Input/Output Sets/gets the RTK mode
PQTMCFGCNST Input/Output Sets/gets the constellation configuration
PQTMDOP Output Outputs dilution of precision
PQTMPL Output Outputs protection level information
PQTMCFGODO Input/Output Sets/gets the odometer feature
PQTMRESETODO Input Resets the accumulated distance recorded by the odometer
PQTMODO Output Outputs the odometer information
PQTMCFGSIGNAL Input/Output Sets/gets GNSS signal mask
PQTMCFGSAT Input/Output Sets/gets GNSS satellite mask
PQTMCFGRSID Input/Output Sets/gets the reference station ID
PQTMCFGRTCM Input/Output Sets/gets RTCM

A full list of compatible RTCM v3 messages, is provided in section 3. RTCM Protocol of the GNSS Protocol Specification manual. This protocol is used for transferring GNSS raw measurement data, as detailed by the Radio Technical Commission for Maritime Services organization.

List of Supported RTCMv3 (MSM) Messages

Message Type Mode Message Description
1005 Input/Output Stationary RTK Reference Station ARP
1006 Input/Output Stationary RTK Reference Station ARP with height
1019 Input/Output GPS Ephemerides
1020 Input/Output GLONASS Ephemerides
1041 Input/Output NavIC/IRNSS Ephemerides
1042 Input/Output BDS Satellite Ephemeris Data
1044 Input/Output QZSS Ephemerides
1046 Input/Output Galileo I/NAV Satellite Ephemeris Data
1073 Input/Output GPS MSM3
1074 Input/Output GPS MSM4
1075 Input/Output GPS MSM5
1076 Input/Output GPS MSM6
1077 Input/Output GPS MSM7
1083 Input/Output GLONASS MSM3
1084 Input/Output GLONASS MSM4
1085 Input/Output GLONASS MSM5
1086 Input/Output GLONASS MSM6
1087 Input/Output GLONASS MSM7
1093 Input/Output Galileo MSM3
1094 Input/Output Galileo MSM4
1095 Input/Output Galileo MSM5
1096 Input/Output Galileo MSM6
1097 Input/Output Galileo MSM7
1113 Input/Output QZSS MSM3
1114 Input/Output QZSS MSM4
1115 Input/Output QZSS MSM5
1116 Input/Output QZSS MSM6
1117 Input/Output QZSS MSM7
1123 Input/Output BDS MSM3
1124 Input/Output BDS MSM4
1125 Input/Output BDS MSM5
1126 Input/Output BDS MSM6
1127 Input/Output BDS MSM7
1133 Input/Output NavIC/IRNSS MSM3
1134 Input/Output NavIC/IRNSS MSM4
1135 Input/Output NavIC/IRNSS MSM5
1136 Input/Output NavIC/IRNSS MSM6
1137 Input/Output NavIC/IRNSS MSM7

From the module, the PPS output signal is a 3.3V signal output that can be access through the SMA connector and/or the PPS PTH pin. The signal is also connected to the PPS LED, which can be used as a visual indicator for its operation.

I/O for PPS signal
The timing signal's outputs on the RTK Postcard.

Jumpers

See the Jumpers section for more details.

  • There is a jumper attached to the PPS PTH pin. When cut, it disconnects the pin from the PPS signal.
  • There is a jumper attached to the PPS LED. For low power applications, the jumper can be cut to disable the PPS LED.
Use Case
  • Users could use this signal in conjunction with the event pins to synchronize two modules with each other.
  • Users could use this signal to create their own Stratum 0 source for the NTP on a primary time server.

The RTK PTH pin operates as both the RTK_STAT status indicator for the RTK positioning and ANT_ON power control for the external LNA or active antenna power. The pin is also connected to the RTK LED, which can be used as a visual indicator for its operation.

I/O for RTK signal
The RTK signal's outputs on the RTK Postcard.

In this configuration, the pin is set to a high level at startup.

  1. If the pin output is high, it indicates the module has entered the RTK fixed mode.
  2. If the pin output is low, it indicates that the module exited the RTK fixed mode.
  3. If the pin outputs an alternating pin level, it indicates that the module received the correct RTCM data and did not enter the RTK fixed mode.

In this configuration, the pin is used to control the external LNA or active antenna power supply.

  • When the pin is high, the antenna is powered.
  • When the pin is low, the antenna is not powered.
Jumpers

See the Jumpers section for more details.

  • There is a jumper attached to the RTK LED. For low power applications, the jumper can be cut to disable the RTK LED.

The RST pin can be used to reset the LG290P module if it enters an abnormal state. To reset the GNSS module, the pin must be low for more than 100ms.

Reset Pin
The RST pin on the RTK Postcard.

Buttons

There are two buttons on RTK Postcard; a RST and BOOT button.

Buttons

RST and BOOT buttons on the RTK Postcard.

Reset Button

The RST (reset) button allows users to reset the program running on the ESP32 Pico-Mini module without unplugging the board.

Boot Button

The BOOT button can be used to force the board into the serial bootloader. Holding down the BOOT button, while connecting the board to a computer through its USB-C connector or resetting the board will cause it to enter the Firmware Download mode. The board will remain in this mode until it power cycles (happens automatically after uploading new firmware) or the RST button is pressed.

  1. Hold the BOOT button down.
  2. Reset the MCU.
    • While unpowered, connect the board to a computer with through the USB-C connection.
    • While powered, press the RST button.
  3. Release the BOOT button.
  4. After programming is completed, reboot the MCU.
    • Press the RST button.
    • Power cycle the board.

GNSS Antenna Connectors

While there are two GNSS antenna connectors, only the SMA connector is connected to the LG290P GNSS module by default. If users wish, they can rework the 0402 resistor on the antenna trace to utilize the u.fl connector instead.

SMA Connector

The SMA connector for an external GNSS antenna on the RTK Postcard.

u.fl Connector

The u.fl connector for the PPS output from the RTK Postcard.

Antenna Specifications

  • Passive antennas are not recommended for the LG290P GNSS module.
  • To mitigate the impact of out-of-band signals, utilize an active antenna whose SAW filter is placed in front of the LNA in the internal framework.
    • DO NOT select and antenna with the LNA placed in the front.
  • There is no need to inject an external DC voltage into the SMA connector for the GNSS antenna. Power is already provided from the LG290P module for the LNA of an active antenna.

JST Connector

The RTK Postcard features a 4-pin JST GH connector, which is polarized and locking. Users can access the pins of the UART3 port, through the JST connector with our breadboard cable(1) or through the PTH pins. The pin layout of the JST connector is compatible with many of our serial radios and adapter cables.

  1. Product Thumbnail


    Breadboard to JST-GHR-04V Cable - 4-Pin x 1.25mm Pitch
    CAB-17240

JST connector

The JST connector on the RTK Postcard.

Default Baudrate
  • The default bardrate of the UART ports from the LG290P is 480600bps, with the factory settings.
  • The default bardrate of the UART3 port from the LG290P (for the locking JST connector) is 57600bps, when utilizing the pre-programmed RTK Everywhere firmware.
Pin Connections

Pin Connections

When connecting the RTK Postcard to other products, users need to be aware of the pin connections between the devices.

Pin Number 1
(Left Side)
2 3 4
Label VCC TX3 RX3 GND
Function Voltage Output
- Default: 3.3V
- Selectable: 3.3V or 5V
UART3 - Receive UART3 - Transmit Ground

When connecting the RTK Postcard to our radios, the pin connections should follow the table below. If the flow control is not enabled, the only the RX, TX, and GND pins are utilized.

Board RX TX GND
Radio TX RX GND

As documented in the LoRaSerial product manual, the pin connections between a host system (i.e. RTK Postcard) and the LoRaSerial Kit radio is outlined in the image below.

Flow Control
The COM ports on the RTK Postcard.

Status LEDs

There are five status LEDs on the RTK Postcard. The table below, lists the pin connections between these LEDs, the LG290P GNSS module, and the ESP32 Pico-Mini module. For details about their operation, please refer to the list at the underneath.

LED ESP32 GPIO LG290P IO
BT GPIO 4 ---
RTK GPIO 34 RTK_STAT
PPS GPIO 36 1PPS
PWR N/A N/A
STAT GPIO 0 ---

Status LEDs

The status LED indicators on the RTK Postcard.

  • BT - Bluetooth (Blue)
    • With the RTK Everywhere firmware, this LED indicates when the ESP32 Pico-Mini module is paired with a Bluetooth device
  • RTK - RTK Mode (White)
    • Indicates when an RTK fix has been established or when the correct RTCM data is being received (see the RTK section)
  • PPS - Pulse-Per-Second (Yellow)
    • Indicates when there is a pulse-per-second signal (see the PPS Output section)
  • PWR - Power (Red)
    • Turns on once 3.3V power is supplied to the board
  • STAT - Status (Green)

Jumpers

Never modified a jumper before?

Check out our Jumper Pads and PCB Traces tutorial for a quick introduction!

There are eight jumpers on the back of the board that can be used to easily modify the hardware connections on the board. From which, there are five jumpers that control power to the status LEDs on the board. By default, all the jumpers are connected to power the status LEDs. For low power applications, users can cut the jumpers to disconnect power from each of the LEDs.

Jumpers

The jumpers on the back of the RTK Postcard.

  • I2C-EXT - This jumper can be cut to disconnect the pull-up resistors on the SCL_1 and SDA_1 connections of the Qwiic connectors.
  • SHLD - This jumper can be cut to disconnect the shielding of the USB-C connector from the GND plane of the board
  • VSEL - This jumper can be modified to configure/disconnect the VCC pin of the 4-pin locking JST connector to/from 3V3 or 5V power rails.
    • Users should also keep in mind that connecting the jumper to the 5V power rail, could include the voltage provided by the LiPo battery from the Portability Shield.
  • STAT - This jumper can be cut to remove power from the green LED, indicating the operational status for the RTK Everywhere firmware.
  • PWR - This jumper can be cut to remove power from the red, power LED.
  • PPS - This jumper can be cut to remove power from the yellow LED, which is connected to the PPS signal.
  • RTK - This jumper can be cut to remove power from the white LED, indicating RTK fix or operation in RTK mode.
  • BT - This jumper can be cut to remove power from the blue LED, indicating Bluetooth pairing for the RTK Everywhere firmware.

Default Configuration

  • By default, PPS signal is connected to the PPS pin.
  • By default, the VSEL jumper is connected to 3V3 pad for a regulated 3.3V output on the 4-pin JST-GH connector.
  • By default, the BT_VCC jumper provides a regulated 3.3V output to the BlueSMiRF header.

Hardware Assembly

USB Programming (UART1)

The USB connection can be utilized for serial communication and configuring the LG290P GNSS module. Users only need to connect their RTK Postcard to a computer, using a USB-C cable.

RTK Postcard USB connection

The RTK Postcard with USB-C cable being attached.

Default Baud Rate

The default baud rate of the UART ports on the LG290P is 460800bps.

GNSS Antenna

In order to receive GNSS signals, users will need to connect a compatible antenna. For the best performance, we recommend users choose an active, multi-band GNSS antenna and utilize a low-loss cable.

Antenna Specifications
  • Passive antennas are not recommended for the LG290P GNSS module.
  • To mitigate the impact of out-of-band signals, utilize an active antenna whose SAW filter is placed in front of the LNA in the internal framework.
    • DO NOT select and antenna with the LNA placed in the front.
  • There is no need to inject an external DC voltage into the SMA connector for the GNSS antenna. Power is already provided from the LG290P module for the LNA of an active antenna.

Helical antenna

A compact, helical GNSS antenna attached to the SMA connector on the RTK Postcard.

Survey antenna

A GNSS survey antenna attached to the SMA connector on the RTK Postcard.

JST Connector (UART3)

The JST connector on the Quad-band GNSS RTK board, breaks out the UART3 port of the LG290P GNSS module. In most circumstances, users will utilize the JST connector to interface with one of our radios to transmit or receive RTK correction data.

Device connected to the JST connector

The Telemetry Radio v3 connected to the RTK Postcard.

When connecting the RTK Postcard to other products, users should be aware of the pin connections between the devices. The table below, details the pin connections of the locking JST connector on the RTK Postcard.

Pin Number 1
(Left Side)
2 3 4
Label VCC TX3 RX3 GND
Function Voltage Output
- Default: 3.3V
- 3.3V or 5V
UART3 - Receive UART3 - Transmit Ground

Default Baud Rate

The default baud rate of the UART ports on the LG290P is 460800bps.

Radio Transceivers

We have designed the locking JST connector to be plug-n-play with the following devices and cables. However, for the SiK Telemetry Radio v3, users should modify the VSEL jumper (1) on the back of the board to enable a 5V output on the VCC pin. Below, is a table summarizing the pin connections of the radios.

  1. While the SiK Telemetry Radio v3 may function with a 3.3V input, their specifications stipulate that a 5V power supply be provided.

Pin Number 1
(Left Side)
2 3 4 5 6
(Right)
Label 5V RX - SiK
RXI - LoRaSerial
TX - SiK
TXO - LoRaSerial
CTS RTS GND
Function Voltage Input
- SiK: 5V
- LoRaSerial: 3.3 to 5V (1)
UART - Receive UART - Transmit Flow Control
Clear-to-Send
Flow Control
Ready-to-Send
Ground

Radio Pin Connections

As documented in the LoRaSerial product manual, the pin connections between a host system (i.e. RTK Postcard) and the LoRaSerial radio is outlined in the image below.

UART w/ Flow Control
The pin connections between a radio and the RTK Postcard.

However, the flow control pins (CTS and RTS) are not available on the RTK Postcard. Therefore, when connecting either of the radios, the pin connections should follow the table below:

Board RX TX GND
Radio TX RX GND

Radio Transceivers and Cables

Default Baud Rate

The baud rate for these radios are configured by the SERIAL_SPEED parameter. The default configuration is SERIAL_SPEED: 57600bps.

Breakout Pins

The PTH pins on the Quad-band GNSS RTK board are broken out into 0.1"-spaced pins on the outer edges of the board.

New to soldering?

If you have never soldered before or need a quick refresher, check out our How to Solder: Through-Hole Soldering guide.

  • Headers


    When selecting headers, be sure you are aware of the functionality you require.

    Soldering headers
    Soldering headers to the RTK Postcard.

  • Hookup Wires


    For a more permanent connection, users can solder wires directly to the board.

    Soldering wires
    Soldering wires to the RTK Postcard.

Software Overview

CH342 USB Driver

The USB drivers for the CH342 USB-to-Serial converter can be downloaded from the manufacturer's website.

Linux

A USB driver is not required for Linux based operating systems.

RTK Everywhere Firmware

The RTK Postcard comes preloaded with our latest RTK Everywhere firmware. Our firmware is completely open-source; therefore, users can view the code to troubleshoot issues, contribute new features or updates, and file issues for any bugs they discover. In addition, we also users with pre-compiled binaries in our SparkFun RTK Everywhere Firmware binaries GitHub repository and a RTK Firmware Uploader tool to upload the pre-compiled binaries to the RTK Postcard. For more information, users can reference the user manual for the RTK Everywhere firmware and associated links below:

RTK_Everywhere_Firmware_RC-XXX_XX_XXXX.bin RTK_Everywhere_Firmware_RC-*.bin

Arduino IDE

Most users may already be familiar with the Arduino IDE and its use. However, for those of you who have never heard the name Arduino before, feel free to check out the Arduino website. In order to program the RTK Postcard, users will need to install the ESP32 Arduino Core through the Board Manager. Additionally, we also recommend installing the SparkFun LG290P Quadband RTK GNSS Arduino Library to interface with the LG290P GNSS receiver.

Espressif ESP32 Arduino Core

The ESP32 Arduino Core can be installed from the board manager in the Arduino IDE by searching for:

esp32 by Espressif Systems

Preference settings

Preference settings for the Arduino IDE.

Board manager

The Espressif ESP32 Arduino core in the library manager of the Arduino IDE.

Arduino Board Manager URL

In order to install Espressif's ESP32 Arduino core, users must provide the Arduino Board Manager URL in the preferences settings (File > Preferences) for the Arduino IDE:

https://raw.githubusercontent.com/espressif/arduino-esp32/gh-pages/package_esp32_index.json

Board Selection

In order to program the ESP32 Pico-Mini module on the RTK Postcard, users should select the ESP32 Dev Module from the Tools > Board: > esp32 drop-down menu.

Board definition

Selecting the ESP32 Dev Module board for the RTK Postcard in the Arduino IDE.

SparkFun LG290P Quadband RTK GNSS Arduino Library

The SparkFun LG290P Quadband RTK GNSS Arduino Library can be installed from the library manager in the Arduino IDE by searching for:

SparkFun LG290P Quadband RTK GNSS Arduino Library

Library manager

SparkFun LG290P Quadband RTK GNSS Arduino Library in the library manager of the Arduino IDE.

Manually Download the Arduino Library

For users who would like to manually download and install the library, the *.zip file can be accessed from the GitHub repository or downloaded by clicking the button below.

Download the Arduino Library

GNSS Software

Tip

To manually interface with the LG290P GNSS module, users can utilize the QGNSS software provided by Quectel. This method is recommended due to the unique data structure of the UART command messages, utilized to configure the LG290P module.

Windows Only

Currently, the QGNSS software is only available for Windows operating systems.

Windows, MacOS, or Linux

For users with computers that run on MacOS or Linux, we have found alternative software option for viewing the data from the NMEA messages. However, this GUI interface is currently limited to only receiving UART messages and cannot send messages to configure the LG290P module.

QGNSS Software

QGNSS is highly intuitive GNSS evaluation software that is easy to use, personalized, and compatible with leading Quectel technologies. The software allows users to define or apply GNSS product configurations for specific use cases. Saving, restoring, or sharing configurations between different products and updating the module's firmware are easy. The software supports product evaluation with a choice of views to observe static and dynamic behavior of the connected a Quectel GNSS receiver.

Download the QGNSS Software (v2.0) from Quectel

Windows Only

Currently, the QGNSS software is only available for Windows operating systems.

Connecting to the LG290P

In order to connect to the LG290P properly, users will need to specify the settings of the UART port.

Configure UART Settings

Click the button to configure the UART settings.

Before users can connect to the RTK Postcard, they will need to specify the connection settings in QGNSS. Once configured, users can select the OK button and QGNSS will automatically attempt to connect to the GNSS module.

  • Select the LG290P(03) from the drop-down menu to configure the Model of the GNSS module being connected.
  • Below, is a list of the default settings for UART ports of the LG290P. These settings should be selected in the Device Information menu, unless configured differently.
  • When connecting through the USB-C connector, under the Port option, select the port labeled with channel B from the drop-down menu.

UART Settings in QGNSS

From the available COM ports for the CH342, select the port labeled B to access the LG290P GNSS receiver. Users will also need to specify the settings for the UART port.

LG290P - Default Settings

The UART ports of the LG290P GNSS module will have the following default configuration:

  • Baudrate: 460800bps
  • Data Bits: 8
  • Parity: No
  • Stop Bits: 1
  • Flow Control: None

Configure the LG290P

By default, the UART ports are configured to transmit and receive NMEA 0183 and/or RTCM 3.x messages. These messages are generally used for transmitting PNT data; and providing or receiving RTK corrections, respectively. Quectel also implements a system of proprietary messages (PQTM) for users to configure the LG290P, following the data format of the NMEA protocol.

Data Format - PQTM Messages

The expected structure of the data in the proprietary PQTM messages is shown below:

NMEA data structure
The data structure of Quectel messages for the NMEA protocol.

<Checksum>:

  • Checksum field follows the checksum delimiter character *.
  • Checksum is the 8-bit exclusive OR of all characters in the sentence, including , the field delimiter, between but not including the $ and the * delimiters.

<CR> & <LF>: Carriage return; followed by a new line

  • Depending on the terminal emulator, these may be options configured in the program settings.
  • Otherwise, users may need to add the \r and \n characters at the end of the message.

In the QGNSS software, users can click on the Advance button, at the bottom of the QConsole window, to configure the settings for the messages sent to the LG290P. Selecting NMEA and CRLF from the drop-down menu of the Checksum Type and Suffix options, will automatically calculate and append the <checksum> value, carriage return, and line follow to the end of the message entered in the Data Input field.

NMEA message setting

The settings for the messages transmitted from the QConsole.

Display the QConsole Toolbar

There is a toolbar for the QConsole, which has a bunch of tools that users may find useful. This includes, a search function, scroll-lock button, pause/clear the message feed, etc. To open/close the toolbar inside the QConsole, right-click on the mouse and select the Show Tool option from the drop-down menu or utilize the keyboard shortcut: Ctrl + Q.

QConsole Toolbar
Right-click on the mouse and select the Show Tool option, inside the QConsole.

Example - PQTMCFGUART Message

As an example, try utilizing the PQTMCFGUART PQTM message. Enter $PQTMCFGUART,R* into the Data Input* field of the QConsole. DOn't forget to select the NMEA and CRLF options from Advance settings menu. If entered and configured properly, the value 36 should pop up in the Checksum field of the QConsole; then, click on the button to send the message.

$PQTMCFGUART,R*

Once the message has been sent, keep a close watch of the messages in the console. It may help to click on the button to disable auto-scrolling, when trying to locate the message response. Additionally, the response may not appear right away, it could be appended to the end of the next data packet, as shown in the image below.

PQTM demo
Example of utilizing the Quectel PQTM messages in the QConsole.

PyGPSClient

Software Limitations

With this software, users will only be able to view the data from the NMEA messages and connect to an NTRIP caster. Users will not be able to configure the LG290P module with the built-in console.

As an alternative to QGNSS, for users with computers that run on MacOS or Linux, we recommend PyGPSClient as an option for viewing the data from the NMEA messages and connecting to an NTRIP caster. However, users should be aware that this GUI interface is currently limited to only receiving UART messages and cannot send messages to configure the LG290P module.

Resources

For additional information, users can refer to the following resources for the PyGPSClient software:

Installation

There are a variety of installation methods detailed in the GitHub repository's README.md file. However, we recommend utilizing the pip installation method.

Installation Commands

Depending on how Python is installed on the computer, one of the following commands should allow users to install the software.

  • python3 -m pip install pygpsclient
    
  • pip install pygpsclient
    

System Requirements

This installation method requires an internet connection. Additionally, users will also need administrative privileges (or root access sudo) for the installation.

Connecting to the LG290P

Before users can connect to the RTK Postcard, they will need to specify the settings of the UART port in PyGPSClient. Once configured, users can select the button and PyGPSClient will automatically attempt to connect to the GNSS module.

  • Below, is a list of the default settings for UART ports of the LG290P. These settings should be selected in the configuration menu.
  • For the Serial Port, select the port labeled with channel B from the drop-down menu.

UART Settings in PyGPSClient

Specify the settings for the UART port in QGNSS.

LG290P - Default Settings

The UART ports of the LG290P GNSS module will have the following default configuration:

  • Baudrate: 460800bps
  • Data Bits: 8
  • Parity: No
  • Stop Bits: 1
  • Flow Control: None

Terminal Emulator

Another viable option for connecting to the RTK Postcard, is to utilize a terminal emulation program. While reading the data sent from the LG290P is relatively trivial, users will need to be more selective when choosing an emulator to configure the LG290P module on the RTK Postcard. This is due to the unique data structure of the proprietary messages that Quectel implements to configure the LG290P (see the Configure the LG290P section, above).

Resources

Product Resources

Additional Resources

🏭 Manufacturer's Resources

PQMT Commands

Below, are excerpts for a few of the PQTM messages from the GNSS Protocol Specification manual. Users will find these useful for configuring their LG290P GNSS module as an RTK base station or rover.

Documentation

A full list of PQTM messages (proprietary NMEA messages defined by Quectel) supported by LG290P, is provided in section 2.3. PQTM Messages of the GNSS Protocol Specification manual. This protocol is used to configure or read the settings for the LG290P GNSS module.

List of Proprietary Quectel Messages

Message Type Mode Message Description
PQTMVER Output Outputs the firmware version
PQTMCOLD Input Performs a cold start
PQTMWARM Input Performs a warm start
PQTMHOT Input Performs a hot start
PQTMSRR Input Performs a system reset and reboots the receiver
PQTMUNIQID Output Queries the module unique ID
PQTMSAVEPAR Input Saves the configurations into NVM
PQTMRESTOREPAR Input Restores the parameters configured by all commands to their default values
PQTMVERNO Output Queries the firmware version
PQTMCFGUART Input/Output Sets/gets the UART interface
PQTMCFGPPS Input/Output Sets/gets the PPS feature
PQTMCFGPROT Input/Output Sets/gets the input and output protocol for a specified port
PQTMCFGNMEADP Input/Output Sets/gets the decimal places of standard NMEA messages
PQTMEPE Output Outputs the estimated position error
PQTMCFGMSGRATE Input/Output Sets/gets the message output rate on the current interface
PQTMVEL Output Outputs the velocity information
PQTMCFGGEOFENCE Input/Output Sets/gets geofence feature
PQTMGEOFENCESTATUS Output Outputs the geofence status
PQTMGNSSSTART Input Starts GNSS engine
PQTMGNSSSTOP Input Stops GNSS engine
PQTMTXT Output Outputs short text messages
PQTMCFGSVIN Input/Output Sets/gets the Survey-in feature
PQTMSVINSTATUS Output Outputs the Survey-in status
PQTMPVT Output Outputs the PVT (GNSS only) result
PQTMCFGRCVRMODE Input/Output Sets/gets the receiver working mode
PQTMDEBUGON Input Enables debug log output
PQTMDEBUGOFF Input Disables debug log output
PQTMCFGFIXRATE Input/Output Sets/gets the fix interval
PQTMCFGRTK Input/Output Sets/gets the RTK mode
PQTMCFGCNST Input/Output Sets/gets the constellation configuration
PQTMDOP Output Outputs dilution of precision
PQTMPL Output Outputs protection level information
PQTMCFGODO Input/Output Sets/gets the odometer feature
PQTMRESETODO Input Resets the accumulated distance recorded by the odometer
PQTMODO Output Outputs the odometer information
PQTMCFGSIGNAL Input/Output Sets/gets GNSS signal mask
PQTMCFGSAT Input/Output Sets/gets GNSS satellite mask
PQTMCFGRSID Input/Output Sets/gets the reference station ID
PQTMCFGRTCM Input/Output Sets/gets RTCM

Save Parameters/Restore to Default Settings

PQTMSAVEPAR

Saves the current configurations into NVM of the LG290P

$PQTMSAVEPAR*<Checksum><CR><LF>
Example

Save the current settings to non-volatile memory of the LG290P.

$PQTMSAVEPAR*5A

If there are no errors, users will receive the following response:

$PQTMSAVEPAR,OK*72

PQTMRESTOREPAR

Restores the parameters configured by all commands to their default values; this command takes effect after restarting the LG290P

$PQTMRESTOREPAR*<Checksum><CR><LF>  
Example

Restore all the settings of the LG290P to their factory defaults

$PQTMRESTOREPAR*13

If there are no errors, users will receive the following response:

$PQTMRESTOREPAR,OK*3B

UART Settings

PQTMCFGUART

Configures the serial protocol setting for the UART interfaces

  • Current UART interface:

    $PQTMCFGUART,W,<BaudRate>[,<DataBit>,<Parity>,<StopBit>,<FlowCtrl>]*<Checksum><CR><LF>
    
  • A specific UART interface:

    $PQTMCFGUART,W,<Index>,<BaudRate>[,<DataBit>,<Parity>,<StopBit>,<FlowCtrl>]*<Checksum><CR><LF>
    

Parameters:

Field <Index> <BaudRate> <DataBit> <Parity> <StopBit> <FlowCtrl>
Description UART Interface
  • 1 = UART1
  • 2 = UART2
  • 3 = UART3
Baud Rate (bps)
  • 9600
  • 115200
  • 230400
  • 460800
  • 921600
Number of Data Bits
  • 8 = 8 bits
Parity
  • 0 = No parity
  • 1 = Odd parity
  • 2 = Even parity
  • 3 = Mark
  • 4 = Space
Number of Stop Bit(s)
  • 1 = 1 stop bit
  • 2 = 2 stop bits
Flow Control
  • 0 = None

Baud Rate

For ports utilized in conjunction with either the BlueSMiRF or radio transceivers, we recommend reducing the baud rate to 115200bps or lower to avoid overflowing the buffers of the transceiver's serial port.

Configure the Settings

Example Settings

  • Port: UART1
  • Baud Rate: 115200bps
  • Data Bits: 8
  • Parity: No
  • Stop Bits: 1
  • Flow Control: None

Configure the baud rate of the current UART interface to 115200bps:

$PQTMCFGUART,W,115200*18

Configure the baud rate of UART1 to 115200bps:

$PQTMCFGUART,W,1,115200*05

Configure all parameters of the current UART interface:

$PQTMCFGUART,W,115200,8,0,1,0*11

Configure all parameters of UART1:

$PQTMCFGUART,W,1,115200,8,0,1,0*0C

If there are no errors, users will receive the following response:

$PQTMCFGUART,OK*60

Retrieve the Settings

Example Settings

  • Port: UART1
  • Baud Rate: 115200bps
  • Data Bits: 8
  • Parity: No
  • Stop Bits: 1
  • Flow Control: None

Get the configuration on the current UART interface:

$PQTMCFGUART,R*36

Get the configuration on UART1:

$PQTMCFGUART,R,1*2B

If there are no errors, users will receive the following response:

$PQTMCFGUART,OK,1,115200,8,0,1,0*5F

PQTMCFGPROT

Configures the input/output protocol on a specified port

$PQTMCFGPROT,W,<PortType>,<PortID>,<InputProt>,<OutputProt>*<Checksum><CR><LF>

Parameters:

Field <PortType> <PortID> <InputProt> <OutputProt>
Description Port Type
  • 1 = UART
Port ID
  • 1 = UART1
  • 2 = UART2
  • 3 = UART3
Input/Output Protocols (HEX: 32-bit)
  • Bit 0 = NMEA
  • Bit 2 = RTCM3
The default protocols are NMEA and RTCM3:
HEX: 00000005
BIN: 0000 0000 0000 0000 0000 0000 0000 0101

Configure the Settings

Example Settings

  • Port: UART1
  • Input Protocol: NMEA & RTCM3
  • Input Protocol: NMEA & RTCM3

Configure the configuration on UART1:

$PQTMCFGPROT,W,1,1,00000005,00000005*38

If there are no errors, users will receive the following response:

$PQTMCFGPROT,OK*6B

Retrieve the Settings

Example Settings

  • Port: UART1
  • Input Protocol: NMEA & RTCM3
  • Input Protocol: NMEA & RTCM3

Get the configuration on UART1:

$PQTMCFGPROT,R,1,1*3D

If there are no errors, users will receive the following response:

$PQTMCFGPROT,OK,1,1,00000005,00000005*6B

RTK Settings

PQTMCFGSVIN

Configures a base station's position either by survey-in mode or fixed mode

$PQTMCFGSVIN,W,<Mode>,<CFG_CNT>,<3D_AccLimit>,<ECEF_X>,<ECEF_Y>,<ECEF_Z>*<Checksum><CR><LF>

Parameters:

Field <Mode> <CFG_CNT> <3D_AccLimit> <ECEF_X> <ECEF_Y> <ECEF_Z>
Description Receiver Mode
  • 0 = Disable
  • 1 = Survey-in mode
  • 2 = Fixed mode
    (Position is configured in ECEF coordinates)
Survey-in Mode
Minimum positioning time (seconds)
  • Range: 0-86400
  • Default: 0
Survey-in Mode
3D positioning accuracy (meters)
  • 0 = No limit
  • Default: 0.0
Fixed Mode
WGS84 ECEF X,Y,Z coordinates (meters)
  • Default: 0.0000

RTK Base Station Modes

In order to operate as a base station, the LG290P GNSS module requires an accurate position of its antenna. This can be either defined in ECEF coordinates or acquired through a self-survey process.

  1. Survey-In Mode: The base station's location is established based on a weighted mean of recent solutions of its position. The <CFG_CNT> and <3D_AccLimit> parameters define the shortest amount of time that the position gets surveyed and the maximum standard deviation of the estimated position.
  2. Fixed Mode: The base station's position is provided in ECEF coordinates.

Note

Any error in the base station's location will translate directly into an error in the rover's position.

Configure the Settings

Example Settings

  • Mode: Survey-in mode
  • Survey Time: 3600 seconds
  • 3D Accuracy: 1.2m
  • ECEF Coordinates:
    • X: -2519265.0514m
    • Y: 4849534.9045m
    • Z: 3277834.6432m

Configure the configuration on UART1:

$PQTMCFGSVIN,W,1,3600,1.2,-2519265.0514,4849534.9045,3277834.6432*01

If there are no errors, users will receive the following response:

$PQTMCFGSVIN,OK*70

Retrieve the Settings

Example Settings

  • Mode: Survey-in mode
  • Survey Time: 3600 seconds
  • 3D Accuracy: 1.2m
  • ECEF Coordinates:
    • X: -2519265.0514m
    • Y: 4849534.9045m
    • Z: 3277834.6432m

Get the configuration on UART1:

$PQTMCFGSVIN,R*26

If there are no errors, users will receive the following response:

$PQTMCFGSVIN,OK,1,3600,1.2,-2519265.0514,4849534.9045,3277834.6432*52

PQTMCFGRCVRMODE

Configures the mode that the receiver is operating in

$PQTMCFGRCVRMODE,W,<Mode>*<Checksum><CR><LF>

Parameters:

Field <Mode>
Description Operation mode
  • 0 = Unknown
  • 1 = Rover
    When set to this mode, the receiver will restore to default NMEA message output state.
  • 2 = Base Station
    When set to this mode, the receiver will automatically disable NMEA message output and enable RTCM MSM4 and RTCMv3 1005 message output.

Note

After switching the module‘s working mode, save the configuration and then reset the module. Otherwise, it will continue to operate in the original mode.

Configure the Settings

Example Settings

  • Port ID: UART1
  • Input Protocol: NMEA & RTCM3
  • Input Protocol: NMEA & RTCM3

Configure the configuration on UART1:

$PQTMCFGRCVRMODE,W,2*29

If there are no errors, users will receive the following response:

$PQTMCFGRCVRMODE,OK*64

Retrieve the Settings

Example Settings

  • Port ID: UART1
  • Input Protocol: NMEA & RTCM3
  • Input Protocol: NMEA & RTCM3

Get the configuration on UART1:

$PQTMCFGRCVRMODE,R*32

If there are no errors, users will receive the following response:

$PQTMCFGRCVRMODE,OK,2*7A

PQTMCFGRTK

Configures the operation settings of the RTK mode

$PQTMCFGRTK,W,<DiffMode>,<RelMode>*<Checksum><CR><LF>

Parameters:

Field <DiffMode> <RelMode>
Description Differential Mode
  • 0 = Disable RTK/RTD feature (Differential data is not used)
  • 1 = Auto mode
  • 2 = RTD only mode (Only pseudoranges is used)
Absolute/Relative Mode
  • 1 = Absolute mode, ensure absolute position accuracy
  • 2 = Relative mode, ensure relative position accuracy
This field only takes effect when <DiffMode> = 1 and the module enters the RTK only mode.

Configure the Settings

Example Settings

  • Port ID: UART1
  • Input Protocol: NMEA & RTCM3
  • Input Protocol: NMEA & RTCM3

Configure the configuration on UART1:

$PQTMCFGRTK,W,1,1*6C

If there are no errors, users will receive the following response:

$PQTMCFGRTK,OK*3F

Retrieve the Settings

Example Settings

  • Port ID: UART1
  • Input Protocol: NMEA & RTCM3
  • Input Protocol: NMEA & RTCM3

Get the configuration on UART1:

$PQTMCFGRTK,R*69

If there are no errors, users will receive the following response:

$PQTMCFGRTK,OK,1,1*3F

Troubleshooting Tips

Need Help?

If you need technical assistance or more information on a product that is not working as you expected, we recommend heading over to the SparkFun Technical Assistance page for some initial troubleshooting.

SparkFun Technical Assistance Page

If you can't find what you need there, the SparkFun GNSS Forum is a great place to ask questions.

Account Registration Required

If this is your first visit to our forum, you'll need to create a Forum Account to post questions.

QR code to the hookup guide


  1. Feature Under Development

    Currently, only the UART interface is supported by the module. Support for the I2C and SPI interfaces are still under development.

  2. Feature Under Development

    Support for the L1C frequency band has not been implemented.

  3. Feature Under Development

    Corrections for some of the PPP services have not been implemented.

  4. Feature Under Development

    The event trigger has not been implemented.