Agent Skills: RTKBase Knowledge Patch

RTKBase changes since training cutoff (latest: 2.7.0) — str2str service chain, settings.conf structure, F9P/Mosaic-X5/UM980 receivers, install.sh flags, systemd units. Load before working with RTKBase.

UncategorizedID: nevaberry/nevaberry-plugins/rtkbase-knowledge-patch

Install this agent skill to your local

pnpm dlx add-skill https://github.com/Nevaberry/nevaberry-plugins/tree/HEAD/plugins/rtkbase-knowledge-patch/skills/rtkbase-knowledge-patch

Skill Files

Browse the full folder contents for rtkbase-knowledge-patch.

Download Skill

Loading file tree…

plugins/rtkbase-knowledge-patch/skills/rtkbase-knowledge-patch/SKILL.md

Skill Metadata

Name
rtkbase-knowledge-patch
Description
"RTKBase changes since training cutoff (latest: 2.7.0) — str2str service chain, settings.conf structure, F9P/Mosaic-X5/UM980 receivers, install.sh flags, systemd units. Load before working with RTKBase."

RTKBase Knowledge Patch

RTKBase is a web-managed GNSS base station built on RTKLIB str2str. It runs multiple str2str instances as systemd services, with a Flask/Gunicorn web GUI for configuration.

Index

| Topic | Reference | Key features | |---|---|---| | Architecture | references/architecture.md | str2str service chain, service topology, systemd units | | Configuration | references/configuration.md | settings.conf INI structure, all sections and keys, RTCM message syntax | | Installation & Receivers | references/installation-and-receivers.md | install.sh flags, supported receivers (F9P, Mosaic-X5, UM980), requirements |


Quick Reference: Service Chain

str2str_tcp.service          # Main: receiver -> TCP (raw data on port 5015)
  +-- str2str_ntrip_A        # TCP -> NTRIP caster A (raw->rtcm conversion)
  +-- str2str_ntrip_B        # TCP -> NTRIP caster B
  +-- str2str_local_ntrip_caster  # TCP -> local NTRIP caster (self-hosted)
  +-- str2str_rtcm_svr       # TCP -> RTCM TCP server for clients
  +-- str2str_rtcm_serial    # TCP -> serial port (radio link)
  +-- str2str_file           # TCP -> raw data log files
  +-- rtkbase_raw2nmea       # Optional: raw->NMEA for gpsd (non-UBX receivers)

rtkbase_web.service          # Flask/Gunicorn web GUI (default port 80)
rtkbase_archive.timer        # Daily archive+cleanup of raw logs

The main str2str_tcp connects to the GNSS receiver and broadcasts raw data on TCP. All other services consume from it. Services are configured via run_cast.sh reading settings.conf (INI format).

Quick Reference: Supported Receivers

| Receiver | Detection | Raw Format | Notes | |----------|-----------|-----------|-------| | u-blox ZED-F9P | USB + UART | ubx | Full support. -TADJ=1 recommended. Dynamic model set to static. | | Septentrio Mosaic-X5 | USB | rtcm3 (SBF for logging) | Reverse proxy to receiver web UI. Default creds: basegnss/basegnss! | | Unicore UM980/UM982 | Auto-detect | rtcm3 only | No raw binary in RTKLIB -> no PPP/rtkrcv solution. RTCM3 streaming works. |

Quick Reference: settings.conf Key Sections

[general]
version=2.7.0
web_port=80
web_authentification=true
new_web_password=           # Set once, hashed on next web server start
maptiler_key=               # Optional: aerial imagery layer

[main]
position='47.0983 -1.2655 36.40'   # lat lon height
com_port=''                         # /dev/ttyGNSS0, /dev/ttyUSB0, etc.
com_port_settings='38400:8:n:1'
receiver='unknown'                  # u-blox_zed-f9p, mosaic-x5, unicorecomm
receiver_format=''                  # ubx, rtcm3, oem3, etc.
antenna_info='ADVNULLANTENNA'
tcp_host_addr='127.0.0.1'          # Bind addr; 0.0.0.0 for external access
tcp_port='5015'
gnss_rcv_web_ip=192.168.3.1        # Mosaic-X5 web interface IP
gnss_rcv_web_proxy_port=9090        # Flask reverse proxy port for receiver UI
nmea_port='5014'                    # raw2nmea output port

[local_storage]
datadir=$BASEDIR/data
file_name='%Y-%m-%d_%h-%M-%S_GNSS-1'
file_rotate_time='24'               # Hours
archive_rotate='60'                 # Days before deletion
min_free_space='500'                # MB

[ntrip_A]                           # (ntrip_B has identical structure)
svr_addr_a='caster.centipede.fr'
svr_port_a='2101'
svr_pwd_a=''
mnt_name_a='Your_mount_name'
rtcm_msg_a='1004,1005(10),1006,1008(10),1012,1019,1020,1033(10),1042,1045,1046,1077,1087,1097,1107,1127,1230'
ntrip_a_receiver_options=''         # e.g. '-TADJ=1' for u-blox

[local_ntrip_caster]
local_ntripc_user=''
local_ntripc_pwd=''
local_ntripc_port='2101'
local_ntripc_mnt_name=''

[rtcm_svr]                          # Also: [rtcm_client], [rtcm_serial]
rtcm_svr_port='5016'                # [rtcm_udp_svr], [rtcm_udp_client]

[log]
level=0                             # str2str trace level

[network]
modem_at_port=''                    # 4G Simcom A76XX modem AT port

RTCM message rate syntax: 1005(10) = send msg 1005 every 10th epoch. No suffix = every epoch.

Quick Reference: install.sh

sudo ./install.sh --all release          # Full install from latest release
sudo ./install.sh --all repo --rtkbase-repo dev  # Install from git branch
sudo ./install.sh --detect-gnss          # Detect receiver model and port
sudo ./install.sh --detect-gnss --configure-gnss  # Detect + configure
sudo ./install.sh --dependencies         # Install apt packages only
sudo ./install.sh --rtklib               # Compile RTKLib (v2.5.0-EX)
sudo ./install.sh --unit-files           # Deploy systemd services
sudo ./install.sh --gpsd-chrony          # Setup time sync
sudo ./install.sh --start-services       # Start all services
sudo ./install.sh --user=john            # Install as specific user

--all combines: --dependencies --rtklib --unit-files --gpsd-chrony --detect-gnss --configure-gnss --start-services.

REST API

GET /api/v1/infos   # Base station info (position, receiver, mount name)

Requirements

  • Debian >= 12 (Bookworm) / Ubuntu >= 24.04
  • Python >= 3.11
  • RTKLib v2.5.0-EX (from rtklibexplorer)
  • Default web password: admin
  • Armbian images: basegnss.local, SSH: basegnss/basegnss!

Reference Files

| File | Contents | |---|---| | architecture.md | str2str service chain topology, systemd service details, service dependencies | | configuration.md | Complete settings.conf reference — all sections, keys, and defaults | | installation-and-receivers.md | install.sh flags, receiver detection/configuration, supported hardware, requirements |