LiveRTK

LiveRTK è un NTRIP Caster moderno sviluppato da Solutop, pensato per distribuire correzioni RTK in tempo reale alle Base GNSS (incluso il ricevitore MS2-Pro in modalità Caster) e ai relativi rover. È la soluzione consigliata quando serve un caster privato self-hosted con pieno controllo su utenti, dati, banda e logging.

Licenza

LiveRTK non è open-source. Il software è gratuito per i possessori di ricevitori MS2-Pro, con limite di 2 mount point ad utente. Per esigenze superiori (più mount point per utente, deployment multi-tenant, white-label) contattare Solutop per una licenza dedicata.

Il sorgente non è pubblico: il pacchetto Docker viene distribuito su richiesta scrivendo a solutop@gmail.com indicando matricola/numero seriale del ricevitore MS2-Pro.

Una istanza pubblica di riferimento è raggiungibile a livertk.solutop.eu.

Cosa fa

LiveRTK è il «centro di smistamento» dei dati di correzione GNSS:

  1. Riceve flussi RTCM 3.x da una o più stazioni Base (sorgenti) tramite protocollo NTRIP o TCP Relay
  2. Bufferizza i dati in ring buffer circolari per garantire continuità
  3. Distribuisce in tempo reale a tutti i client (rover) connessi al mount point corrispondente
  4. Gestisce autenticazione, autorizzazioni e accessi per sorgenti e client
  5. Monitora connessioni, throughput e stato del sistema tramite interfaccia web e Prometheus
  6. Rileva automaticamente le coordinate della Base dai messaggi RTCM 1005/1006
  7. Traccia la posizione dei rover via parsing NMEA GGA
  8. Registra il flusso RTCM3 grezzo e lo converte automaticamente in RINEX 3.03

Funzionalità principali

  • NTRIP Caster v1.0/v2.0 sulla porta 2101 (compatibile con tutti i client NTRIP standard, incluso il firmware MS2-Pro)
  • Dashboard real-time con grafico throughput, connessioni attive, statistiche server, mappa interattiva MapLibre GL con Base e rover
  • Gestione multi-utente con ruoli Admin / Client, registrazione self-service con verifica email e approvazione account
  • Mount points con proprietario, limiti configurabili e accessi per utente
  • Auto-detect coordinate della Base da messaggi RTCM 1005/1006 + sentenze NMEA GGA
  • Posizione client su mappa dai rover che inviano NMEA GGA
  • Pagina dettaglio mount point con messaggi RTCM rilevati, client connessi e connessioni recenti
  • Registrazione RTCM3 e conversione automatica RINEX (osservazione + navigazione + compressione gzip)
  • Notifiche email quando una sorgente Base va offline
  • Pagina Statistiche con grafici storici (connessioni, traffico, top mount point, utenti attivi)
  • Export CSV di log e connessioni con filtro date
  • Tema scuro con persistenza
  • Responsive desktop, tablet, mobile
  • Monitoring Prometheus + Grafana con dashboard preconfigurata
  • Cloudflare Tunnel integrato per accesso HTTPS sicuro senza aprire porte sul firewall
  • VPN mesh Headscale (compatibile Tailscale) per raggiungere Base dietro NAT / 5G
  • TCP Relay per Base che non supportano nativamente il protocollo NTRIP
  • API REST per app Android con registrazione self-service e gestione VPN
  • QR code per configurazione rapida dispositivi VPN

Architettura

  Base MS2-Pro          Dispositivi TCP        Rover MS2-Pro / altri
  (RTCM Upload)         (dietro NAT/5G)        (RTCM Download)
       |                       |                       ^
       | SOURCE/POST           | TCP Relay              | GET /MOUNTPOINT
       v                       v                       |
  +----------------------------------------------------+
  |            NTRIP Caster (porta 2101)               |
  |  Autenticazione Base64 / bcrypt                    |
  |  Source Table Generator                            |
  |  Ring Buffer per mount point                       |
  |  Data Forwarder (broadcast)                        |
  |  RTCM Parser (auto-detect coordinate)              |
  |  NMEA Parser (posizione rover GGA)                 |
  +----------------------------------------------------+
                         |
                         | REST API + WebSocket
                         v
  +----------------------------------------------------+
  |       Interfaccia Web (Nginx reverse proxy)        |
  |   React SPA  +  Backend Node.js  +  Grafana        |
  +----------------------------------------------------+
                         |
    +----------+---------+----------+----------+
    v          v         v          v          v
PostgreSQL  Prometheus  Grafana   Redis    Headscale
(storage)   (metriche)  (dash)   (cache)   (VPN mesh)

Stack tecnologico:

  • Backend — Node.js / TypeScript, server NTRIP TCP nativo + REST API + WebSocket
  • Frontend — React (SPA), MapLibre GL, Chart.js, design ispirato a Emlid Caster
  • Database — PostgreSQL 16
  • Cache — Redis
  • Reverse proxy — Nginx
  • Containerizzato — Docker Compose, deploy in pochi minuti
  • Conversione RINEXconvbin (RTKLIB) integrato nel container backend

Requisiti

  • Docker >= 20.10
  • Docker Compose >= 2.0
  • (opzionale) Account Cloudflare per il tunnel HTTPS senza aprire porte
  • (opzionale) Server SMTP per le notifiche email

Hardware minimo consigliato per il server: 2 vCPU, 2 GB RAM, 20 GB disco. Una singola istanza scala comodamente a centinaia di rover concorrenti.

Installazione self-hosted

LiveRTK è distribuito su richiesta ed è gratuito per i possessori di MS2-Pro (fino a 2 mount point ad utente). Per ottenere accesso al pacchetto Docker e alle istruzioni di deploy, scrivi a solutop@gmail.com indicando la matricola/numero seriale del ricevitore MS2-Pro e l’uso previsto (Base singola, flotta privata, ecc.).

Una volta ricevuto il pacchetto e avviati i container, la configurazione iniziale è:

  1. Apri il pannello web (default: http://<server>:5757)
  2. Registra un account admin
  3. Crea un mount point (es. MIA_BASE) con proprietario = utente admin e password mount
  4. Configura la Base MS2-Pro in modalità Caster con host, porta, mountpoint e password (vedi Modalità Base)
  5. Verifica nel dettaglio del mount point che lo stato sia Online e i messaggi RTCM 1005/1077/1087/1097/1127 vengano rilevati

Porte di rete

Porta Servizio Descrizione
2101 NTRIP Caster Upload Base + download rover
5757 Nginx (web) Interfaccia web SPA
3001 Backend API REST API + WebSocket
3003 Grafana Dashboard monitoring
9090 Prometheus Metriche
8443 Headscale Coordinator VPN mesh
5432 PostgreSQL Database (solo interno)

In produzione si espone tipicamente solo 2101 (NTRIP) verso Internet e la 5757 (web) dietro reverse proxy HTTPS / Cloudflare Tunnel.

Registrazione RTCM3 e conversione RINEX

LiveRTK consente di registrare il flusso RTCM3 grezzo di qualsiasi mount point e convertirlo automaticamente in RINEX 3.03 per il post-processing PPK.

Flusso:

  1. Dalla pagina dettaglio del mount point, cliccare Avvia Registrazione
  2. Il flusso RTCM3 viene salvato come MOUNTPOINT_YYYYMMDD_HHMM.rtcm3
  3. Al termine, il file viene convertito automaticamente con convbin (RTKLIB)
  4. Vengono generati:
    • File osservazione (.YYo) — dati di osservazione GNSS
    • File navigazione (.YYn) — effemeridi e dati di navigazione
    • Versioni compresse (.YYo.gz, .YYn.gz)
  5. Pulsanti di download per ogni file singolarmente

Naming RINEX: standard SSSSdddh.YYx (SSSS = primi 4 char del mount, ddd = day-of-year, h = sessione oraria a-x, YY = anno 2 cifre, x = o/n).

Integrazione con MS2-Pro

LiveRTK è progettato per funzionare nativamente con il firmware MS2-Pro sia come destinazione della Base in modalità Caster sia come sorgente per i rover in NTRIP Client:

  • Base MS2-Pro → LiveRTK — la Base configurata in [m][5] Base NTRIP caster con host/porta/mount/password di LiveRTK fa upload RTCM continuo (vedi Modalità Base)
  • Rover MS2-Pro → LiveRTK — un rover configurato in [m][2] Rover NTRIP con le credenziali di un client autorizzato sul mount LiveRTK scarica le corrections (vedi NTRIP Client)

L’auto-detect delle coordinate Base via RTCM 1005/1006 funziona out-of-the-box: appena la Base MS2-Pro inizia a inviare 1005, LiveRTK le mostra sulla mappa.

Pagine correlate

  • Modalità Base — configurazione Base in modalità NTRIP Caster
  • NTRIP Client — configurazione rover per scaricare corrections da LiveRTK
  • Network — menu WiFi necessario per il funzionamento Caster
  • LiveRTK demo — istanza pubblica di riferimento
  • solutop@gmail.com — richiesta accesso al pacchetto self-hosted