Skip to content

RTKLIB

RTKLIB is an open-source GNSS positioning library and toolkit. For LC29H users, the most relevant tool is STRSVR (stream server), which bridges serial GNSS data to NTRIP casters — essential for running an RTK base station.

ToolPurposeLC29H Use Case
STRSVRStream server — routes data between serial, TCP, NTRIP, and fileBase station RTCM relay to NTRIP casters
RTKNAVIReal-time RTK navigationAlternative to module-internal RTK processing
RTKPOSTPost-processing of RINEX observationsOffline precision analysis
RTKCONVRaw data to RINEX conversionConverting log files for post-processing
RTKPLOTPosition and observation plottingVisualizing track quality and satellite signals

STRSVR is the primary tool for relaying RTCM3 corrections from an LC29H(BS) base station module to an NTRIP caster like rtk2go.com.

graph LR
    BS["LC29H(BS)\nModule"] -->|"RTCM3 (serial)"| STRSVR
    STRSVR -->|"RTCM3 (NTRIP)"| Caster["NTRIP Caster"]
    Caster -->|corrections| Rovers

The BS module outputs RTCM3 correction messages on its serial port. STRSVR reads from serial and forwards to an NTRIP caster server, making corrections available to any rover with an NTRIP client.

  1. Set Input to Serial, configure the COM port (or /dev/ttyS0, /dev/ttyACM0 on Linux) and baud rate (115200 or 460800)
  2. Set Output to NTRIP Server
  3. Configure the NTRIP caster address, port, mount point, and password
  4. Click Start to begin relaying
ParameterValue
TypeSerial
PortCOM port or /dev/ttyS0
Baud Rate115200 (UART) or 460800 (USB)
Byte Size8
ParityNone
Stop Bits1
ParameterValue
TypeNTRIP Server
Addressrtk2go.com
Port2101
Mount PointYour registered mount point name
PasswordYour rtk2go password

On Linux, use str2str (the command-line equivalent of STRSVR):

Terminal window
# Install RTKLIB
sudo apt install rtklib
# Relay serial RTCM3 to NTRIP caster
str2str -in serial://ttyS0:115200 \
-out ntrips://:password@rtk2go.com:2101/YOUR_MOUNT

The -in and -out flags define stream endpoints:

Stream TypeFormat
Serialserial://port:baud
NTRIP Clientntrip://user:pass@host:port/mount
NTRIP Serverntrips://:pass@host:port/mount
TCP Servertcpsvr://:port
TCP Clienttcpcli://host:port
Filefile://path

STRSVR supports up to 3 simultaneous outputs. Common configurations:

Base station with logging:

Terminal window
str2str -in serial://ttyS0:115200 \
-out ntrips://:pass@rtk2go.com:2101/MOUNT \
-out file://rtcm_%Y%m%d%h.log

Base station with local TCP relay:

Terminal window
str2str -in serial://ttyS0:115200 \
-out ntrips://:pass@rtk2go.com:2101/MOUNT \
-out tcpsvr://:5015

RTKCONV converts raw GNSS observation data to RINEX format for post-processing:

Terminal window
# Convert NMEA log to RINEX observation file
convbin -r nmea input.log -o output.obs

For offline RTK computation from RINEX files:

  1. Obtain base station observation data (RINEX .obs)
  2. Obtain rover observation data (from LC29H log)
  3. Convert rover data to RINEX using RTKCONV if needed
  4. Load both files in RTKPOST and process

Post-processing can achieve better accuracy than real-time RTK by using both forward and backward filtering.

RTKPLOT displays position solutions, satellite observations, and signal quality:

  • Ground track with fix type coloring (float vs fixed)
  • Position error time series
  • Satellite visibility and signal strength
  • DOP (Dilution of Precision) values over time

On Linux, use the command-line tools or install the Qt-based GUI:

Terminal window
# Plot a position solution file
rtkplot solution.pos
Terminal window
sudo apt install rtklib

Provides str2str, convbin, rnx2rtkp, and other CLI tools.