Perché Gpredict-Improved?
Gpredict è un termine che non ha bisogno di presentazioni tra i radioamatori che operano via satellite. L'applicazione per il tracciamento e la previsione dei sorvoli è stata sviluppata da Alexandru Csete (OZ9AEC) ed è stata lo standard di fatto sul desktop Linux per più di quindici anni. Il software è basato sugli algoritmi di propagazione SGP4/SDP4 e sugli elementi orbitali NORAD in formato TLE, può tracciare un numero illimitato di satelliti e via Hamlib ovládať prijímače aj rotátory.
Nonostante la sua diffusione, rimane originale Gpredict software che presenta diverse lacune. L'autore del nuovo progetto, Sadatoshi Koike (JF9SOM), afferma nell'annuncio che, sebbene Gpredict abbia a lungo funzionato come standard informale, c'era un notevole margine per aggiungere funzionalità. Sottolinea inoltre che gli strumenti attuali mirati a SDR in genere non offrono un controllo soddisfacente del ricetrasmettitore e del rotore. L'obiettivo è Gpredict migliorato è quindi quello di combinare entrambi gli approcci: funzioni Hamlib integrate simili alla soluzione nota WSJT-X, doplnené o SDR integráciu.
Il risultato è una riscrittura completa del collaudato concetto su una moderna infrastruttura software: Python 3.11+, il motore orbitale Skyfield e l'interfaccia grafica PySide6/Qt6. La licenza rimane GPL-2.0 o successiva, ovvero compatibile con la versione originale di Gpredict, e l'autore elenca esplicitamente nei ringraziamenti i progetti su cui si basa Gpredict-Improved: Gpredict, Skyfield, Hamlib e il database SatNOGS gestito dalla Libre Space Foundation.
Caratteristiche di Gpredict-Improved
La differenza più evidente rispetto alla versione originale di Gpredict è l'accesso tramite browser web. Un server FastAPI è in esecuzione in background sulla porta 8080, consentendo di monitorare le transizioni da un telefono o tablet connesso alla stessa rete locale. Secondo il repository GitHub, la barra di stato all'avvio visualizza l'indirizzo LAN e un codice QR per una connessione rapida da dispositivo mobile.
La seconda importante novità è l'integrazione nativa di Hamlib. Invece di eseguire il demone rigctld separatamente, come richiesto dalla versione originale di Gpredict, la stazione radio viene selezionata direttamente nell'interfaccia grafica. La correzione dell'effetto Doppler è stata estesa: non solo la frequenza viene regolata, ma anche la modalità e il tono CTCSS vengono regolati automaticamente.
La gestione delle frequenze satellitari avviene direttamente dall'interfaccia, inclusa la sincronizzazione con il database SATNOGS e la possibilità di aggiungere o modificare manualmente i record. Gli aggiornamenti degli elementi TLE sono automatici, provenienti da diverse fonti, con un sistema di valutazione della qualità dei dati. L'autore ricorda che il formato TLE stesso diventa obsoleto nel tempo, un aspetto da tenere sempre presente quando si lavora con i dati orbitali.
Il progetto dichiara inoltre il supporto per ricevitori SDR come HackRF e RTL-SDR. L'internazionalizzazione è gestita tramite gettext; attualmente sono disponibili stringhe in inglese e giapponese, il che, secondo l'annuncio, apre la strada a una possibile traduzione in slovacco o francese. La tabella seguente riassume le differenze rispetto al Gpredict originale, come elencato nel repository del progetto.
| Zona | Gpredict | Gpredict migliorato |
|---|---|---|
| Piattaforma | solo desktop | Accesso tramite desktop e browser su telefoni/tablet nella stessa rete LAN |
| Radiocomando | richiede un rigctld separato | Hamlib integrato, selezione delle stazioni radio direttamente nell'interfaccia grafica |
| Correzione Doppler | solo frequenza | frequenza + modalità + tono CTCSS automaticamente |
| Database delle frequenze satellitari | Solo SATNOGS, modifica del file di testo | Sincronizzazione automatica dei satelliti + aggiunta/modifica tramite interfaccia grafica |
| Aggiornamento TLE | manuale | automatico, multi-fonte, con valutazione della qualità dei dati |
| Sistemi operativi supportati | Linux (GTK+) | Linux, Windows, macOS, Raspberry Pi |
Ambiente hardware e software richiesto
Gpredict-Improved è destinato a Linux, Windows, macOS e Raspberry Pi. Le istruzioni di installazione pubblicate nel repository sono attualmente per Ubuntu/Debian, dove il software viene installato dai sorgenti tramite un ambiente virtuale Python. Secondo quanto riportato nel repository, dopo il rilascio della prima versione con tag, saranno disponibili nella pagina delle release anche i programmi di preinstallazione per Windows e macOS.
Per quanto riguarda la radio e il rotore, è necessario il supporto di Hamlib, che ora fa parte dell'applicazione e non richiede l'esecuzione separata di rigctld. Per lavorare con la radio definita via software, il repository elenca il supporto per i ricevitori HackRF e RTL-SDR. L'architettura del progetto è suddivisa in moduli: core (motore satellitare Skyfield), ui (interfaccia desktop PySide6/Qt6), web (FastAPI + WebSocket per l'accesso LAN da un browser sulla porta 8080), rig (controllo della radio e del rotore tramite Hamlib), data (sincronizzazione TLE/SATNOGS, database SQLite) e i18n (internazionalizzazione basata su gettext).
Come funziona Gpredict-Improved e come iniziare
L'installazione su Ubuntu/Debian, secondo il file README, si compone di diversi passaggi. Innanzitutto, vengono installati i pacchetti di sistema python3.11, python3-pip, libhamlib-dev e python3-hamlib. Successivamente, si clona il repository con il comando git clone, si crea un ambiente virtuale Python (python3.11 -m venv .venv), lo si attiva e si installa il pacchetto con il comando pip install -e.
Per utilizzare una radio collegata tramite USB, è necessario impostare i permessi copiando la regola udev da scripts/99-gpredict-improved.rules in /etc/udev/rules.d/, ricaricando le regole con il comando sudo udevadm control –reload-rules e aggiungendo l'utente al gruppo dialout (sudo usermod -aG dialout $USER). Dopo questo passaggio, è necessario disconnettersi e accedere nuovamente affinché la modifica dell'appartenenza al gruppo abbia effetto. L'applicazione stessa viene quindi avviata con il comando gpredict-improved.
All'avvio, viene prima aperta la finestra principale di Qt6, quindi il server FastAPI/uvicorn viene avviato in background in un thread separato sulla porta 8080. DataSyncManager scarica poi i dati TLE e SATNOGS se non sono aggiornati. La barra di stato visualizza l'indirizzo LAN e un pulsante con un codice QR, che consente una connessione rapida da un dispositivo mobile sulla stessa rete.
L'ambiente di sviluppo viene preparato con il comando pip install -e ".[dev]", i test vengono eseguiti tramite pytest, l'analisi statica è fornita da ruff check e il controllo dei tipi da mypy src/. L'aggiunta di una nuova lingua consiste nel copiare il file locale/en/LC_MESSAGES/gpredict_improved.po, tradurre le stringhe msgstr e compilare con lo strumento msgfmt.
Riepilogo completo
Gpredict migliorato Non si tratta di un aggiornamento estetico, bensì di una riscrittura completa del collaudato concetto di Gpredict su una moderna base Python/Skyfield/Qt6, mantenendo la compatibilità della licenza con l'originale. I principali vantaggi sono l'accesso tramite browser su una rete locale, l'integrazione nativa con Hamlib senza la necessità di un rigctld separato, la correzione Doppler estesa con modalità e CTCSS, l'aggiornamento automatico del TLE multi-sorgente con valutazione della qualità e l'espansione delle piattaforme supportate a Windows, macOS e Raspberry Pi.
Il progetto è guidato da Sadatoshi Koike (JF9SOM) e il codice sorgente è disponibile pubblicamente su GitHub, inclusi documentazione, architettura e piano di sviluppo. Al momento della stesura di questo testo, non sono ancora state pubblicate release con tag o preinstallatori per Windows e macOS; secondo il repository, questi seguiranno dopo il rilascio della prima versione ufficiale. Per i radioamatori che lavorano con le operazioni satellitari, questo è un progetto che vale la pena seguire, soprattutto considerando l'obiettivo dichiarato di combinare un comodo controllo della radio e del rotore con l'integrazione SDR in un unico strumento.
