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:
- Riceve flussi RTCM 3.x da una o più stazioni Base (sorgenti) tramite protocollo NTRIP o TCP Relay
- Bufferizza i dati in ring buffer circolari per garantire continuità
- Distribuisce in tempo reale a tutti i client (rover) connessi al mount point corrispondente
- Gestisce autenticazione, autorizzazioni e accessi per sorgenti e client
- Monitora connessioni, throughput e stato del sistema tramite interfaccia web e Prometheus
- Rileva automaticamente le coordinate della Base dai messaggi RTCM 1005/1006
- Traccia la posizione dei rover via parsing NMEA GGA
- 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 RINEX —
convbin(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 è:
- Apri il pannello web (default:
http://<server>:5757) - Registra un account admin
- Crea un mount point (es.
MIA_BASE) con proprietario = utente admin e password mount - Configura la Base MS2-Pro in modalità Caster con host, porta, mountpoint e password (vedi Modalità Base)
- 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:
- Dalla pagina dettaglio del mount point, cliccare Avvia Registrazione
- Il flusso RTCM3 viene salvato come
MOUNTPOINT_YYYYMMDD_HHMM.rtcm3 - Al termine, il file viene convertito automaticamente con
convbin(RTKLIB) - Vengono generati:
- File osservazione (
.YYo) — dati di osservazione GNSS - File navigazione (
.YYn) — effemeridi e dati di navigazione - Versioni compresse (
.YYo.gz,.YYn.gz)
- File osservazione (
- 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 castercon host/porta/mount/password di LiveRTK fa upload RTCM continuo (vedi Modalità Base) - Rover MS2-Pro → LiveRTK — un rover configurato in
[m][2] Rover NTRIPcon 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