Da questa pagine è possibile scaricare l’immagine della SD-Card di HamPack, la configurazione di Raspberry PI4 che io uso per l’attività in mobile, e per estensione, per eventuali emergenze. E’ una installazione pensata specificatamente per l’uso mobile, ha quindi alcuni accorgimenti specifici, che vi descriverò in dettaglio.
Dato che lo scopo è quello di operare in mobilità, lo sviluppo parte da due principali vincoli di progetto: 1) il sistema nel suo intero deve funzionare interamente a 12V, con il minore assorbimento di energia possibile e 2) non deve dipendere da alcun tipo di servizio esterno.
Il mio setup mobile ha come elemento chiave il ricetrasmettitore FT-897d, che oltre ai due battery pack interni (12Ah, autocostruiti), è alimentato da due batterie al piombo da 45Ah. Ho poi nello zaino un alimentatore ‘brick’ da 12V/10A, utilizzabile some ‘sostegno’ in presenza di energia elettrica. La parte radio è completata da un accordatore MFJ-900, due unun (4:1 e 9:1) home made per antenne end-fed & Rybakov, un dipolo Diamond W735 per i 40 ed 80m, una antenna mobile Outback-2000 per le HF ed una Diamond NR770 per VHF/UHF.
La scelta del Raspberry per la parte informatica è stata determinata da più fattori. Il principale è stato la sua alimentazione a 5V, quando i laptop dell’epoca erano tutti alimentabili con tensioni ben superiori ai 12V. Peraltro derivo i 5V dai 12V con un buck converter basato su LMR51430, che ha una efficienza superiore al 90%.
Altrettanto importante è la disponibilità dell’interfaccia GPIO.
Monitor e tastiera
l’Rpi non ha però un suo monitor ed una sua tastiera, e solitamente è usato in accoppiamento a pannelli LCD touch ed tastiere/mouse wireless. Io ho seguito un altro approccio, mantenendo il Raspberry in modalità headless, ed interfacciandomu usando un tablet (o anche un telefono) collegato via Wi-Fi. A questo scopo, l’interfaccia radio del Raspberry è configurata come hotspot con SSID HAM e password hamradio. Una volta collegati all’hotspot, è possibile accedere al sistema operativo del Raspberry usando un normale client RDP all’indirizzo 192.168.210.1
Digitate le credenziali – quelle inziali sono user ham, password radio, si accede al desktop xfce4.
Questo approccio ha una serie di vantaggi: consente di evitare l’uso di hardware specializzato, di sgravare in parte l’alimentazione principale, e di poter usare agevolmente anche apparati di dimensioni relativamente piccole in quando ti client RDP consentono in genere di zoomare lo schermo. E’ inoltre possibile usare anche dispositivi molto vecchi – funziona ad esempio egregiamente con un Galaxy Tab GT-P1000 del 2010 con Android 3, usando come software aRDP free.
Ovviamente con un tablet più performante – in questo caso un Tab A7 – ed una tastiera bluetooth esterna non ha nulla da invidiare ad un laptop tradizionale.
Orologio
Cone è noto, i moderni modi digitali weak signal richiedono l’uso di un riferimento temporale estremamente preciso. Il Raspberry, di per contro, è privo di un orologio hardware e, normalmente, ottiene l’ora esatta via rete dati. Per ovviare al problema ho dotato il mio setup di un ricevitore GPS da usare sia per ricavare la posizione, che un riferimento temporale accurato.
Per avere una sincronizzazione accurata è però necessario usare un ricevitore GPS che, oltre al dato seriale (NMEA, che contiene assieme ad altri dati anche ora e posizione), fornisca anche un segnale aggiuntivo chiamato PPS. Io ho usato un modulo chiamato VK2828, che ha una interfaccia a a livelli logici TTL compatibili con il GPIO del Raspberry, e che fornisce anche il segnale PPS. E’ collegata al GPIO secondo questo schema: EN e VCC al pin 1, GND al pin6, RX al pin8, TX al pin 10, PPS al pin 12.
Il GPS è destito da gpsd per la parte posizionamento, e da chrony per la componente temporale. Chrony è un software progettato per gestire l’acquisizione del dato temporale sia dala rete che da altrre fonti, nel nostro caso il segnale PPS del GPS, anche discontinue. Se è presente e sincronizzato, il segnale PPS opera come una sorgente stratum 1. Il software opera in modo trasperente per l’utente, ma per l’uso con la tencologia weak signal è importante conoscere la qualità del riferimento temporale. A questo scopo ho scritto una piccola utility, gpsclock, che mostra, oltre all’ora GMT, una serie di informazioni aggiuntive utili all’uso in mobile:
1) è l’ora di sistema, GMT, 2) è il Maidenhead Grid Square Locator, 3) è l’altezza sul livello del mare, 4) è il numero dei satelliti visibili, 5) è lo stato del fix GPS, 6) è la sorgente dell’orologio, GPS è il segnale PPS ricevuto dal satellite, NTP indica che è sincronizzato con una server di rete, RTC che la sorgente è invece l’orologio di sistema. E’ sufficiente per valutare a colpo d’occhio la qualità dell’indicazione oraria. Una situazione più precisa è possibile averla aprendo un terminale e digitando chronyc sources:
Che indica le sorgenti disponibili con gli scostamenti temporali. La sorgente utilizzata è quella con l’asterisco nella colonna S. E’ possibile avere informazioni più dettagliate sulla sorgente utilizzata digitando invece il comando chronyc tracking:
Per inciso, chrony è configurato per agire anche come server NTP, ed è raggiungibile da tutti i dispositivi in rete locale (192.168.0.0/16). L’installazione può quindi essere utilizzata così come è anche per fornire un segnale temporale di alta precisione svincolato dalla rete internet.
Per avere informazioni dettagliate sullo stato del GPS ho aggiunto nel menù hamradio una voce chiamata Gps Status, che mostra in una finestra tutte le informazioni utili, aggiornate ogni secondo:
Anche i dati GPS sono accessibili via rete locale sulla porta TCP 2947, in modo da potere essere utilizzate da altri dispositivi locali.
Il risultato finale, in un alloggiamento stampato in 3d, è estremamente compatto.
Applicazioni
Sull’immagine sono preinstallate una serie di applicazioni che uso normalmente in radio, in ordine alfabetico:
- CHIRP
Tool to program ham radio transceivers - DIREWOLF
Sound modem for AX25 - FLDIGI
Ham radio digital modes software - FLRIG
Rig remote control - KLOG
Logging program - LINPAC
AX25 terminal - QSSTV
SSTV Software - WSJTX
Weal modes software - XASTIR
APRS software
Le applicazioni vanno ovviamente configurate in base al setup ed all’operatore, sono programmi di uso comune, quini sulla rete è possibile trovare tutte le informazioni utili al loro corretto utilizzo.
Interfacce
Gli apparati più moderni sono direttamente collegabili via USB, senza bisogno di hardware. Per apparati più datati, come l’FT-897 che uso io, è necessario utilizzare due iunterfacce, una per l’audo e l’altra per la gestione dell’apparato. Ma, nella mia esperienza, per questa tipologia di apparato non è necessario utilizzare interfacce specializzate.
Io in questo setup utilizzo come interfaccia audio una chiavetta USB con chipset CM108, e come intefaccia dati un cavo USB/Seriale TTL con chipset Prolific. Dal punto di vista puramente pratico, ogni dispositivo compatibile con Linux 6.1 può andare bene. L’unica attenzione è che l’interfaccia audio abbia la possibilità, oggi comune, di campionare a 48kHz: “WSJT-X expects your sound card to do its raw sampling at 48000 Hz”. Il motivo è che WSJT-X ricampiona 12 kHz per l’elaborazione DSP (6 kHz di larghezza di banda), e 48 è un multiplo di 12 e quindi produce un risultato nettamente migliore di un campionamento a qualità CD (41kHz). Il problema, comunque, non sussite per gli altri modi digitali.
Nel setup fisso collego l’apparato all’interfaccia interponendo, più per precauzione che per reale necessità, dei trasformatori 1:1 da 600 ohm su entrambe le linee line-in e line-out. Nel setup mobile preferisco usare un cavo diretto e senza trasformatori, privilegiando l’affidabilità, ma non ho mai riscontrato problemi.
Per l’FT-897, che ha il CAT a livello TTL (0-5V), l’interfaccia USB/Seriale è del tipo che normalmente si usa con i microcontrollori, come Arduino, ed è quindi molto semplice da reperire ed a basso costo. L’unica attività da fare è quella di attestare i connettori minidin lato apparato, seguendo le indicazioni del manuale del proprio apparato. Altri apparati potrebbero avere invece una interfaccia seriale RS-232 (-12/+12), ma anche in questo caso si tratta di interfacce di largo uso e facili da trovare.
Il cavo CAT, sulla sinistra, ha un raccordo finale lato radio, in modo che in mobile possa portami dietro un solo cavo, con gli adattatori specifici per gli apparati da gestire e/o programmare.
Altre informazioni
E’ ovviamente possibile aggiungere altri utenti al sistema (ad esempio, per gestire diverse configurazioni), ma una volta creati è necessari assegnarli ai gruppi dialout, sudo, audio e netdev per mantenere l’operatività del sistema.
Il sistema è già configurato per accedere ad una connessione di rete cablata, così come l’hotspot interno è pure configurato per condividere la connessione intternet con tutti i dispositivi ad esso collegati. Nel caso si voglia avere la possibilità di usare in mobile un accesso mediante tethering, è sufficiente aggiungere una seconda interfaccia wireless USB, e configurarla usando l’applet della rete, in alto a destra.
selezionando edit connection, e creando una nuova connesione wifi con le caratteristiche richieste dal tethering. Anche in questo caso, i dispositivi connessi sull’hotspot HAM avranno a disposizione l’accesso internet. Per motivi di sicurezza, la configurazione grafica della rete è disabilitatae, va effettuata usando la versione semigrafica, aprendo un terminale e digitando il comando sudo nmtui e selezionando activate a connection.
A questo punto è sufficienteme selezionare la rete desiderata ed inserire la password per configurarla ed attivarla.
L’accesso superutente (root) non è disabilitato, come generalmente accade in raspbian, ma ha una password (toor) per potere accedere al sistema via ssh.
Download
La versione 2.1, aggiornata ad agosto 2023, è scaricabile qui:
. Può essere installata su SDCard a partire da 4GByte, ma è preferibile usarne una da almeno 8, meglio se veloce.Alla prima esecuzione è necessario lanciare raspi-config, selezionare Advance options ed eseguire Expand filesystem, per allocare e rendere disponibile tutto lo spazio della sdcard.