Stato e limitazioni note#
Il firmware è work in progress. Il percorso di trasmissione RF, l’IGate, il digipeater, i beacon, il meteo, la telemetria, la messaggistica e l’amministrazione web sono tutti funzionanti.
Questa pagina confronta il progetto con altri software APRS. Per la vista complementare — quanta parte della specifica APRS stessa la stazione mette in onda, capitolo per capitolo — vedere Copertura del protocollo APRS.
Tabella comparativa delle funzionalità#
La tabella seguente confronta le funzionalità implementate in questo progetto con l’unione delle funzioni presenti nei software APRS più diffusi (client desktop/di mappatura come Xastir, APRSIS32 e YAAC; TNC software come Direwolf e UZ7HO Soundmodem; e stack iGate/digipeater headless come aprx e VP-Digi). Nessun singolo pacchetto di quell’ecosistema implementa tutte le righe — è normale e atteso. La legenda è:
✅ — Implementato e funzionante
⚠️ — Implementazione parziale / limitata
❌ — Non implementato
Modem / Livello 2#
Capacità specifica |
Tipico nei software APRS diffusi |
Qui |
Note sull’implementazione di questo progetto |
|---|---|---|---|
AFSK 1200 Bd Bell 202 (APRS VHF standard) |
✅ (Direwolf, UZ7HO, VP-Digi, TNC hardware) |
✅ |
Profilo predefinito; fino a tre demodulatori con prefiltri di inclinazione diversa in parallelo per aumentare la probabilità di decodifica |
AFSK 1200 Bd V.23 |
⚠️ (Direwolf lo supporta; molti client no) |
✅ |
Profilo modem selezionabile n. 2; come Bell 202 esegue fino a tre demodulatori in parallelo |
AFSK 300 Bd (APRS HF) |
✅ (Direwolf, UZ7HO) |
✅ |
Profilo modem selezionabile n. 0 |
FSK G3RUH 9600 Bd |
✅ (Direwolf, TNC pacchetto dedicati) |
✅ |
Profilo modem selezionabile n. 3 |
Framing HDLC / codifica-decodifica AX.25 UI |
✅ (universale) |
✅ |
Percorso TX/RX completo via software, su ADC/DAC. |
FEC Reed-Solomon FX.25 |
⚠️ (Direwolf sì; la maggior parte dei TNC hardware no) |
✅ |
Tre modalità nella pagina Radiomodem: spento, solo RX (decodifica FX.25 e trasmette AX.25 semplice) e RX+TX. I blocchi trasmessi restano retrocompatibili — un ricevitore AX.25 semplice ignora il tag di correlazione e i byte di parità e decodifica il frame contenuto |
IL2P (alternativa a FX.25) |
⚠️ (solo Direwolf) |
❌ |
Non implementato |
Protocollo KISS (seriale o TCP) per fungere da TNC per software client esterno |
✅ (Direwolf, UZ7HO, praticamente tutti i soundmodem) |
❌ |
Non implementato. Nessun server KISS/AGWPE seriale o di rete — questo progetto non può fungere da «back end» TNC per Xastir/APRSIS32/YAAC ecc. |
Protocollo AGWPE |
⚠️ (TNC orientati a Windows) |
❌ |
Non implementato |
CSMA / rilevamento canale occupato prima della TX |
✅ |
✅ |
Accesso p-persistente condizionato dal DCD: persistenza configurabile
( |
Tetto di duty cycle di trasmissione a lungo termine |
⚠️ (raro al di fuori di apparati commerciali/regolamentati) |
✅ |
Tetto opzionale ( |
Attivazione PTT (senza VOX, GPIO hardware) |
✅ |
✅ |
GPIO e polarità a tempo di compilazione; tempo minimo di mantenimento dis-attivazione regolabile a runtime |
Strumento integrato di loopback RF/autotest |
⚠️ (raro) |
✅ |
«LOOP TEST» — trasmette un pacchetto con token e verifica che l’intera catena RX lo decodifichi correttamente, con diagnostica dettagliata per fase |
Ingresso audio piatto/discriminatore rispetto ad audio de-enfatizzato |
✅ (Direwolf, UZ7HO) |
✅ |
Indica al demodulatore se riceve audio da altoparlante o audio non filtrato dal discriminatore; applicato in tempo reale al salvataggio |
Controllo della profondità della coda di TX |
⚠️ (di solito una coda interna fissa) |
✅ |
|
Coda TX (TXTail) dopo ogni frame |
✅ |
✅ |
|
Tempo minimo di PTT rilasciato tra i frame |
⚠️ (TXTAIL su alcuni TNC) |
✅ |
|
IGate (RF <-> APRS-IS)#
Capacità specifica |
Tipico nei software APRS diffusi |
Qui |
Note sull’implementazione di questo progetto |
|---|---|---|---|
Inoltro RF -> APRS-IS |
✅ (universale) |
✅ |
Pipeline completa: dedup -> controllo lunghezza minima -> filtro token di percorso -> regola sat-gate -> filtro per tipo di payload -> gate di raggio -> gate di prefisso -> budlist |
Inoltro APRS-IS -> RF (IGate bidirezionale) |
✅ (modalità igate di Direwolf, aprx, VP-Digi) |
✅ |
Soppressione dell’eco dei report propri, filtro per tipo di payload, unwrap di terze parti ristretto, budlist |
Soppressione dei pacchetti duplicati |
✅ |
✅ |
Cache condivisa; profondità e finestra configurabili via web nella pagina IGate (4-40 voci, predefinito 20; finestra 1-120 s, predefinito 30 s); può essere disattivata del tutto con Abilita soppressione duplicati |
Inserimento Q-construct |
✅ |
✅ |
Deciso per singola stazione inoltrata, secondo QCON: |
Stringa di filtro APRS-IS lato server ( |
✅ |
✅ |
Inviata testualmente nella riga di login, con validazione locale della grammatica prima dell’invio |
Gate di raggio locale (distanza ortodromica) |
⚠️ (alcuni, es. |
✅ |
Distanza haversine rispetto a «La mia stazione»; supporta posizioni compresse e non compresse |
Whitelist locale sui prefissi del nominativo |
⚠️ (poco comune come funzione di prima classe) |
✅ |
Elenco di prefissi separati da virgola (es. |
Budlist di nominativi (whitelist/blacklist) |
✅ |
✅ |
Modalità per direzione: disattivato / whitelist / blacklist |
Filtro per tipo di payload (msg/status/tlm/wx/obj/item/query/buoy/position/other) |
✅ (principalmente tramite filtri APRS-IS) |
✅ |
Locale, basato su bitmask, applicato in entrambe le direzioni indipendentemente dal filtro del server. La casella «Altri» copre i tipi di payload che non hanno un bit proprio — capacità di stazione, formati definiti dall’utente, radiogoniometria Agrelo, radiofari di locatore Maidenhead e l’elemento di mappa riservato — così sono instradabili invece di essere scartati in silenzio. Il traffico di terze parti e i dati di test restano fuori da ogni bit e non vengono mai ritrasmessi |
Decodifica in ricezione dei campi attorno a una posizione |
⚠️ (Xastir e aprs.fi li decodificano; la maggior parte dei firmware di sola gateway no) |
✅ |
La marca temporale propria del rapporto, i byte compressi di rotta/velocità, portata radio e altitudine, l’estensione dati da 7 byte (PHG, la forma PHGR da nove byte, RNG, DFS, CSE/SPD o vento), il token |
Gestione pacchetti di terze parti ( |
✅ (critico, spesso manuale) |
✅ |
Disattivato di default; l’unwrap opzionale è vincolato alla sola modalità whitelist proprio per prevenire i loop di IGate |
Riconnessione automatica ad APRS-IS con backoff |
✅ |
⚠️ |
Riconnessione TCP automatica, rilegge la configurazione a ogni riconnessione, ma con un intervallo di ritentativo fisso di 1 s (anche 1 s finché il dispositivo non ha una rotta verso internet) e non con un backoff esponenziale. Ogni tentativo fallito passa al server configurato successivo invece di ripetere lo stesso |
Login ad APRS-IS basato su passcode |
✅ |
✅ |
Riga di login standard |
Server APRS-IS multipli / failover |
⚠️ (alcuni supportano elenchi di server) |
✅ |
Quattro slot server ( |
Statistiche per motivo di scarto |
⚠️ (poco comune, di solito solo totali) |
✅ |
Contatori nominati ( |
Elenco dei nominativi dei gate satellitari/ISS |
⚠️ (aprx e alcuni satgate dedicati) |
✅ |
Fino a 8 nominativi di digipeater satellitari; un frame ripetuto da uno
di essi senza il flag di ripetuto ( |
Criteri di filtraggio messaggi (località di destinatario/mittente) |
✅ (richiesto a un IGate conforme) |
✅ |
Tutte e cinque le condizioni sono applicate prima che un messaggio letto
da APRS-IS raggiunga la RF: destinatario ascoltato localmente entro la
finestra, quell’ascolto entro il limite di hop, mittente non ascoltato in
RF, nessun |
Finestra di ascolto locale configurabile |
⚠️ (spesso fissa) |
✅ |
|
Copertura misurata in hop di digipeater |
⚠️ (Dire Wolf e javAPRSSrvr richiedono ascolto diretto o limitato in hop) |
✅ |
|
Posizione associata dopo un messaggio ritrasmesso |
⚠️ (poco comune) |
✅ |
Anello di otto destinatari; il primo rapporto di posizione o di boa visto per uno di essi viene ritrasmesso una volta, in sostituzione della pratica obsoleta di ripetere le posizioni storiche |
Interconnessione APRS BrandMeister |
❌ (nessun pacchetto APRS la tratta come funzione a sé) |
✅ |
Non c’è alcun protocollo BrandMeister da parlare: il lato APRS di
BrandMeister è esso stesso un client APRS-IS, quindi il trasporto è la
sessione APRS-IS che l’IGate ha già e il lavoro è riconoscimento, gating
e instradamento. Tre test in OR classificano una riga come traffico
BrandMeister — un tocall |
Digipeater#
Capacità specifica |
Tipico nei software APRS diffusi |
Qui |
Note sull’implementazione di questo progetto |
|---|---|---|---|
Digipeating WIDEn-N, Nuovo Paradigma n-N (tracciato) |
✅ (universale) |
✅ |
Decremento del conteggio hop e inserimento del proprio nominativo marcato come usato, così ogni hop di un percorso ripetuto è identificabile |
Tabella di alias configurabile |
⚠️ (variabile; spesso un elenco fisso) |
✅ |
Quattro righe di {alias, N massimo, modalità} nella pagina Digi; |
Intrappolamento di N grande |
✅ (atteso da ogni digipeater moderno) |
✅ |
|
Ruolo di digipeater di riempimento (solo |
✅ |
✅ |
Una sola casella; limita la stazione alle righe di alias a un solo hop |
Instradamento regionale |
⚠️ (convenzione regionale) |
✅ |
Una normale riga di alias, tipicamente in modalità Inondazione con il limite di hop della regione |
Inondazione |
⚠️ (comportamento datato) |
❌ |
Non prodotta per |
Alias datati |
⚠️ (obsoleti) |
❌ |
Abbandonati come percorsi e non incorporati. Un operatore che ne abbia ancora bisogno per un vicino datato lo aggiunge come una normale riga di alias |
Conteggio hop codificato nel SSID di destinazione (legacy) |
⚠️ (TNC più datati) |
✅ |
Disattivato per impostazione predefinita (Ripetizione tramite SSID di destinazione). Instrada prima della tabella degli alias e in base a quel solo SSID, quindi un percorso esplicito non verrebbe mai letto; disattivato, l’SSID di destinazione resta intatto e decide la tabella degli alias |
Soppressione duplicati/ping-pong nel digipeating |
✅ |
✅ |
Finestra propria di 30 s nella cache di deduplica condivisa
( |
Filtro di digipeating per nominativo (ripetere solo certe fonti) |
⚠️ (alcuni, es. VP-Digi) |
❌ |
Non esposto come filtro specifico del digipeater (la budlist dell’IGate non equivale a un filtro del digi) |
Digipeating preventivo |
⚠️ (raro, TNC avanzati) |
✅ |
Spento per impostazione predefinita; due modalità indicatrici (mantenere
gli indirizzi saltati marcati come usati, oppure scartarli), con
scansione dal primo indirizzo inutilizzato fino alla fine del percorso e
senza reclamare mai un alias |
Digipeating viscoso (attendere e ripetere solo se nessun altro lo ha fatto) |
⚠️ (raro, TNC avanzati) |
❌ |
Non implementato |
Tracciamento / Beaconing#
Capacità specifica |
Tipico nei software APRS diffusi |
Qui |
Note sull’implementazione di questo progetto |
|---|---|---|---|
Ingresso posizione GPS in tempo reale (NMEA) |
✅ (universale per tracker mobili) |
✅ |
Il ricevitore GNSS ( |
Beaconing a posizione fissa (stazione base) |
✅ |
✅ |
Posizione/intervallo/simbolo/commento separati per ruolo (tracker, IGate, digi); la modalità predefinita e di ripiego per tutti e tre, e l’unica offerta dai beacon di IGate e Digipeater |
Convenzione «posizione sconosciuta» |
⚠️ (APRS non ne definisce una) |
✅ |
APRS non ha una coordinata in onda per «posizione sconosciuta», quindi
questo progetto tratta la coppia esatta (0.0, 0.0) - Null Island - come
«non ancora configurata» per la posizione di un ruolo.
|
Smart Beaconing (intervallo adattivo su velocità/direzione) |
✅ (client mobili, OpenTracker) |
✅ |
L’algoritmo standard, nel suo fieldset della pagina Tracker
( |
Rotta/velocità nei report di posizione |
✅ |
✅ |
Supportato in Oggetti/Item, e nel beacon Tracker ogni volta che
trasmette una posizione GPS in tempo reale — come estensione dati
standard |
Codifica posizione compressa (Base-91) |
✅ |
✅ |
Opzione per servizio nelle pagine Tracker, IGate, Digipeater e Oggetti/Item; anche il decoder la comprende. Viene saltata automaticamente quando l’ambiguità di posizione non è zero o è in uso un’estensione PHG/DFS, perché il formato compresso non ha spazio per nessuna delle due; una portata radio precalcolata viene invece ripiegata nello slot a due byte proprio del campo compresso |
Codifica posizione Mic-E (TX) |
⚠️ (soprattutto firmware per tracker mobili) |
✅ |
La pagina beacon Tracker offre un’opzione Mic-E
( |
PHG / potenza-altezza-guadagno-direttività |
✅ |
✅ |
Esposto nella pagina beacon dell’IGate, con i propri sottocampi, e come un unico interruttore nella pagina Tracker che riusa i dati d’antenna della stazione. Nel formato Mic-E il token viaggia nel campo di testo, che è dove APRS 1.2 colloca un normale campo di commento di posizione |
RNG / portata radio precalcolata |
⚠️ |
✅ |
Selezionabile come estensione dati del beacon dell’IGate ( |
DFS / intensità del segnale omni-DF |
⚠️ (software specifico per DF) |
✅ |
Selezionabile come estensione dati del beacon dell’IGate ( |
Ambiguità di posizione nei rapporti trasmessi |
⚠️ |
✅ |
Livello 0-4 a livello di stazione nella pagina Stazione; si applica ai formati non compresso e Mic-E, e forza il formato non compresso quando è diverso da zero |
Estensione di precisione/datum |
⚠️ (pochi client/tracker) |
✅ |
Opzione a livello di stazione nella pagina Stazione; aggiunge la forma leggibile WGS-84 ai formati non compresso e Mic-E, solo quando l’ambiguità è 0 e il formato non è quello compresso |
Localizzatore Maidenhead nei rapporti di stato |
⚠️ |
✅ |
Opzione a livello di stazione; emette la forma |
Direzione d’antenna ed ERP nei rapporti di stato |
⚠️ (operatività meteor scatter) |
✅ |
Direzione e potenza a livello di stazione nella pagina Stazione, emesse
come la coppia |
Localizzatore Maidenhead nella destinazione AX.25 ( |
⚠️ (software legacy) |
❌ |
Contrassegnato come obsoleto dalla specifica stessa; non prodotto |
Altitudine nei beacon |
✅ |
✅ |
Altitudine per ruolo (tracker, IGate, digipeater), ciascuna copiata dal
valore di «La mia stazione» quando è spuntato Usa i dati de La mia
stazione. Inviata come token |
Percorso di digipeating configurabile per servizio |
✅ |
✅ |
Quattro preset di percorso condivisi; ogni servizio che trasmette (tracker, IGate, digipeater, meteo, telemetria, messaggi, oggetti, bollettini) sceglie tra questi con la propria maschera di bit |
Identificatore di tipo dati con capacità di messaggistica ( |
✅ (universale) |
✅ |
Scelto in base ad Abilita messaggistica: |
Messaggistica#
Capacità specifica |
Tipico nei software APRS diffusi |
Qui |
Note sull’implementazione di questo progetto |
|---|---|---|---|
Messaggistica APRS indirizzata |
✅ (universale) |
✅ |
Instradamento RF e/o APRS-IS per messaggio |
Conferma di ricezione messaggio ( |
✅ |
✅ |
Auto-ack alla ricezione, auto-riprova fino a conferma |
Reply-ACK (APRS 1.1, |
⚠️ (APRSdos, APRS+SA, Xastir, APRSIS32) |
✅ |
In entrambe le direzioni. I numeri in uscita sono |
Riprova messaggi con numero/intervallo configurabili |
✅ |
✅ |
|
UI di chat/inbox integrata |
✅ (Xastir, YAAC, APRSIS32) |
✅ |
Pagina |
Avviso messaggio ricevuto (suono/visivo/GPIO) |
⚠️ (client desktop: suono/popup) |
✅ |
Avviso via GPIO (LED/cicalino) invece di un popup desktop, adatto a un dispositivo headless |
Messaggistica broadcast/di gruppo |
⚠️ (alcuni tramite bollettini) |
⚠️ |
Solo in ricezione: la stazione legge ogni messaggio indirizzato
all’insieme integrato |
Posta radio Winlink (APRSLink) |
⚠️ (pochi client pilotano |
✅ |
La stazione legge e scrive la propria posta |
Ponte dei messaggi APRS verso una piattaforma di chat |
❌ |
✅ |
Un bot Telegram opzionale accanto ai servizi APRS: long polling su
HTTPS, autorizzazione per utente e per chat, instradamento verso Telegram
di messaggi di stazione e bollettini, un pulsante Mini App, e i comandi
|
Meteo#
Capacità specifica |
Tipico nei software APRS diffusi |
Qui |
Note sull’implementazione di questo progetto |
|---|---|---|---|
Generazione report meteo APRS proprio |
✅ (Xastir, aprx, molti firmware TNC con kit WX) |
✅ |
Set completo del cap. 12 + aggiunte APRS 1.2 (neve, luminosità, alluvione) |
Framework di polling sensori live (driver collegabili) |
⚠️ (poco comune come framework generico; di solito fissato a una singola scheda WX) |
✅ |
Registro dinamico e autoregistrante |
Media per campo sull’intervallo di report |
⚠️ |
✅ |
Casella opzionale «Media» per campo |
Ricezione/registrazione dei report WX di altre stazioni |
✅ (overlay mappa Xastir, aprs.fi) |
⚠️ |
Viene classificato, instradato e digipeated come qualsiasi pacchetto, e ritrasmesso byte per byte, ma i valori non vengono decodificati di proposito: né il rapporto meteo completo, né la forma senza posizione, né i formati grezzi Peet Bros e Ultimeter vengono trasformati in letture, quindi non c’è una vista WX delle altre stazioni nell’amministrazione web. Una stazione che invia meteo grezzo o senza posizione deve inoltre inviare la propria posizione separatamente, quindi il filtro di distanza non ha una coordinata per essa e la lascia passare solo per il filtro di tipo |
Telemetria#
Capacità specifica |
Tipico nei software APRS diffusi |
Qui |
Note sull’implementazione di questo progetto |
|---|---|---|---|
Generazione telemetria propria ( |
✅ (alcuni TNC/client) |
✅ |
5 canali analogici + 8 digitali |
Messaggi di metadati PARM/UNIT/EQNS/BITS |
⚠️ (spesso configurati manualmente) |
✅ |
Generazione attivabile individualmente |
Calibrazione quadratica (EQNS) per canale analogico |
⚠️ |
✅ |
Coefficienti a/b/c per canale trasmessi nel messaggio |
Mappatura dei sensori in tempo reale per canale di telemetria |
⚠️ (di solito fissa nel codice, o alimentata da uno script esterno) |
✅ |
Ogni canale analogico A1-A5 e digitale B1-B8 sceglie la sorgente dal
registro |
Telemetria nel commento base-91 APRS 1.2 ( |
⚠️ (una manciata di client/tracker) |
✅ |
Opzionale, accanto al report |
Ricezione/grafico della telemetria altrui |
✅ (grafici Xastir, aprs.fi) |
❌ |
Non implementato — nessuna vista di grafico/storico per la telemetria ricevuta. I rapporti |
Oggetti, Item, Bollettini, Stato#
Capacità specifica |
Tipico nei software APRS diffusi |
Qui |
Note sull’implementazione di questo progetto |
|---|---|---|---|
Oggetti propri (con timestamp) |
✅ |
✅ |
Fino a 5, RF e/o INET, con intervallo/decadimento |
Item propri (senza timestamp) |
✅ |
✅ |
Stesso pool di 5 slot; un controllo di Tipo sceglie tra Oggetto e Item |
Oggetti permanenti ( |
✅ |
✅ |
Casella esclusiva dell’Oggetto; emette il timestamp fittizio fisso
|
«Uccidere» un oggetto/item |
✅ |
✅ |
Trasmette la rimozione qualche volta in più, poi si autodisattiva |
Bollettini ( |
✅ |
✅ |
5 slot, testo/intervallo/rampa di decadimento/scadenza propri, |
Report di stato (testo libero della stazione) |
✅ |
✅ |
Beacon di stato in testo libero per ruolo (DTI |
Risposta a query ( |
⚠️ |
✅ |
Query generali ( |
Insieme di query dirette ( |
⚠️ (APRSISCE/32, YAAC) |
✅ |
Risposte fornite quando Interrogazioni dirette estese è abilitato. Le
risposte in forma di elenco tornano come messaggi APRS alla stazione
richiedente; |
Grafico della cronologia di ascolto di |
⚠️ |
✅ |
La stazione tiene un istogramma di ascolto di 18 ore per nominativo
(vedi |
Capacità di stazione (DTI |
✅ |
✅ |
Emesse come risposta a |
Mappatura / Visualizzazione#
Capacità specifica |
Tipico nei software APRS diffusi |
Qui |
Note sull’implementazione di questo progetto |
|---|---|---|---|
Mappa live delle stazioni ricevute |
✅ (Xastir, APRSIS32, YAAC, aprs.fi — centrale nella maggior parte dei client) |
❌ |
Non implementato. L’amministrazione web ha una tabella Last-Heard, non una mappa |
Rendering di simboli/icone secondo la tabella dei simboli APRS |
✅ |
✅ |
Esiste un selettore di simbolo per configurare beacon/oggetti propri; Last-Heard e il Traffic Log mostrano le icone dei simboli sia per i report di posizione non compressi ( |
Riproduzione dello storico delle tracce |
✅ (client desktop) |
❌ |
Non implementato |
Grafico di meteo/telemetria nel tempo |
✅ (aprs.fi, plugin Xastir) |
❌ |
Non implementato |
Gestione stazione / Operatività#
Capacità specifica |
Tipico nei software APRS diffusi |
Qui |
Note sull’implementazione di questo progetto |
|---|---|---|---|
UI di configurazione via web |
⚠️ (VP-Digi e alcuni progetti ESP32 ce l’hanno; la maggior parte dei client desktop usa GUI native) |
✅ |
22 pagine nella barra laterale + selettore di simbolo, autenticazione HTTP Basic, riapplicazione live della maggior parte delle impostazioni senza riavvio |
Dashboard live (stato, contatori) |
⚠️ |
✅ |
Indicatori di stato rete, pannello statistiche, log di traffico live, tabella last-heard (long-poll JSON) |
Log di traffico/pacchetti con vista del frame grezzo |
✅ |
✅ |
Etichettato per direzione (RX/TX/DIGI/INET2RF/RX-IS), include livello audio RMS |
Tabella delle ultime stazioni ascoltate |
✅ |
✅ |
Una riga per stazione anziché per pacchetto, la più recente per prima e
con sfratto LRU, più l’istogramma orario di 18 ore che risponde a
|
Ripristino ai valori di fabbrica compilati |
⚠️ |
✅ |
Un pulsante nella pagina Sistema riscrive tutti i file di configurazione con i valori di fabbrica |
UI multilingua |
⚠️ (raro; la maggior parte è solo inglese o localizzata dal SO) |
✅ |
EN/ES/IT, solo a tempo di compilazione — nessun cambio a runtime |
Aggiornamento firmware OTA/remoto |
⚠️ (raro nei TNC embedded; comune nell’IoT consumer) |
✅ |
Doppia partizione ( |
Archiviazione configurazione locale persistente e versionata |
✅ |
✅ |
LittleFS, scritture atomiche ( |
Gestione file (upload/download/esplorazione) |
❌ (non applicabile alla maggior parte del software APRS; rilevante qui trattandosi di un FS embedded) |
✅ |
Browser LittleFS completo (elenco/download/eliminazione/upload/formattazione) |
Gestione Wi-Fi AP/STA con scansione, potenza TX |
N/D (il software desktop non ne ha bisogno) |
✅ |
AP/STA/AP+STA, 5 profili STA, scansione live, controllo potenza TX |
Sincronizzazione NTP/orario |
⚠️ (il SO desktop se ne occupa; rilevante in ambito embedded) |
✅ |
3 host NTP configurabili, fissato a UTC per timestamp zulu corretti |
Regolazione prestazioni/CPU |
N/D per software desktop |
✅ |
Selezione a runtime di 80/160/240 MHz |
Accesso remoto/console seriale per diagnostica |
✅ (la maggior parte dei TNC ha una console seriale) |
✅ |
Nessuna console seriale interattiva per l’operatività ordinaria (per
progetto), ma l’output di console è leggibile senza cavo: la pagina Log
rispecchia |
Controllo accessi multiutente / basato su ruoli |
⚠️ (raro) |
❌ |
Singolo utente/password HTTP Basic, senza ruoli |
Limitazione dei tentativi di accesso / blocco dopo fallimenti ripetuti |
⚠️ (raro nei pannelli web embedded) |
✅ |
Backoff per IP sorgente, a partire da 5 s e raddoppiato a ogni ulteriore
fallimento durante il blocco (tetto di 300 s) dopo 5 credenziali
rifiutate; |