Introduzione a UIDIGI Copyright 2000 Marco Savegnago IW3FQG UIDIGI e' un firmware da utilizzare con un normale TNC2 per realizzare un digipeater packet radio con funzioni avanzate adatto all'uso come digipeater APRS (APRS is a register trademark of Bob Bruninga WB4APR). Questo firmware NON serve a coloro che fanno uso dei vari software di localizzazione utilizzando il protocollo APRS. I firmware compresi nei TNC sono gia' sufficenti per questo. Il sistema APRS sfrutta la caratteristica del protocollo AX.25 (che tipicamente e' un protocollo dove le stazioni che si scambiano informazioni sono virtualmente connesse tra loro) di inviare frame con informazioni definiti UI (Unnumbered Information) anche tra stazioni che non risultano connesse tra loro. Tale metodo al contrario del trasporto di informazioni tra due stazioni connesse da un lato permette di trasmettere informazioni con il criterio uno a molti, dall'altro non garantisce che tutti i possibili destinatari ricevano le informazioni con certezza. Il sistema APRS si affida a questa caratteristica del protocollo AX.25 per trasmettere le informazioni tra le stazioni. In origine il metodo di propagazione dei frame AX.25 usati dal sistema APRS era una semplice ripetizione di frame destinati a nominativi generici ( CQ o APRS) e con percorsi di ripetizione generici (RELAY o WIDE) in modo da permettere a stazioni in movimento sul territorio di spostarsi permettendo ai propri beacon di propagarsi senza dover modificare alcun parametro del TNC. Questo si realizzava semplicemente installando dei digipeater costituiti da TNC ai quali veniva impostato come nominativo il nome del digipeater e come alias un nominativo generico (RELAY o WIDE). Questo sistema ha funzionato e funziona finche' stazioni e digipeater isofrequenza sono pochi ma comincia ad andare in crisi quando le stazioni aumentano e il territorio da coprire si estende. Per questo nel corso degli anni sono stati introdotti dei metodi di ripetizione applicati ai digipeater che consentono di limitare i problemi dovuti alla progressiva congestione dei canali radio dovuta al traffico e all'eccesso di ripetizioni dei frame. Tutte le regole che seguono sono delle modifiche richieste dal sistema APRS al comportamento standard di un puro digipeater AX.25 perche' va' ricordato che il sistema APRS si serve di AX.25 per funzionare. Il primo metodo introdotto fu' quello che forza la sostituzione, da parte del digipeater che ripete il frame, del nominativo generico usato dalla stazione che ha trasmesso in origine il frame. Cosi' un frame del tipo: IW3FQG>APRS v RELAY, WIDE, WIDE viene ripetuto dal primo UIDIGI con la sostituzione del call: IW3FQG>APRS v UIDIGI*, WIDE, WIDE Questo consente che frame gia' ripetuti da un digipeater non vengano nuovamente ripetuti generando loop e duplicazioni e in definitiva traffico inutile. Il secondo metodo e' stato quello di introdurre delle semplici regole di propagazione dei frame fino a certo numero di 'salti' senza dover aumentare eccessivamente la lunghezza del frame da trasmettere e ricevere. La prima di queste regole fa' in modo che frame inviati a nominativi tipo WIDEn-n (con n > 0 e n < 8) vengano trattati in questo modo: Un frame del tipo: IW3FQG>APRS v RELAY,WIDE1-1 viene ripetuto dal primo UIDIGI: IW3FQG>APRS v UIDIGI*, WIDE1-1 e dal secondo UIDIGI (viene decrementato l'ssid e NON viene settato il bit H): IW3FQG>APRS v RELAY*, WIDE1-0 e dal terzo UIDIGI (non viene decrementato l'ssid perche' e' gia' zero e viene settato il bit H): IW3FQG>APRS v RELAY, WIDE1-0* In definitiva il frame pur rimanendo con lunghezza limitate (ogni nominativo nella lista digipeater occupa 7 byte) viene ripetuto automaticamente fino a un massimo di 7 volte. La seconda regola derivata dalla prima serve allo stesso scopo ma consente alla stazione che riceve il frame di conoscere il percorso di ritrasmissione che il frame ha compiuto: Un frame del tipo: IW3FQG>APRS v RELAY,TRACE1-1 viene ripetuto dal primo UIDIGI: IW3FQG>APRS v UIDIGI*, TRACE1-1 e quindi dal secondo digipeater: e dal secondo UIDIGI (viene decrementato l'ssid e viene inserito il call del digipeater con il bit H settato): IW3FQG>APRS v RELAY, DIGI1*, TRACE1-0 e dal terzo UIDIGI (l'ssid e' a zero viene fatta la sostituzione del nominativo con quello del digipeater e su questo viene settato il bit H): IW3FQG>APRS v RELAY, DIGI1, DIGI2* Infine il terzo metodo piu' recente e' quello che consente a una stazione di indicare il percorso di propagazione geografica da utilizzare e che i digipeater opportunamente settati facciano compiere al frame. Questo metodo e' ancora sperimentale e non completamente documentato si riassume come segue: Per SSID > 0 e SSID < 8 su qualunque AX.25 UI frame con qualunque callsign di destinazione l'SSID viene decrementato di uno e il call del digipeater viene inserito nel path della lista di digipeater. Un frame IW3FQG>APRS-7: viene ripetuto: IW3FQG>APRS-6, UIDIGI*: Con SSID maggiore di 8 i frame viene trattato in maniera diversa perche' ci sono le regole di direzione: Se SSID e' uguale a 8 (Nord) su qualunque AX.25 UI frame con qualunque callsign di destinazione l'SSID viene posto a zero il call del digipeater viene inserito nel path della lista di digipeater seguito dal path per il nord inserito nella lista dei digipeater. Esempio un frame come: IW3FQG>APRS-8: viene ripetuto da un UIDIGI con NPATH = NORTH in: IW3FQG>APRS,UIDIGI*,NORTH: Se SSID e' uguale a 12 (Nord) su qualunque AX.25 UI frame con qualunque callsign di destinazione l'SSID viene posto allo stesso di quello che e' stato ricevuto (es 12) il call del digipeater viene inserito nel path della lista di digipeater seguito dal path per il nord inserito nella lista dei digipeater. IW3FQG>APRS-12: viene ripetuto da un UIDIGI con NPATH = NORTH in: IW3FQG>APRS-12,UIDIGI*,NORTH: La stessa regola vale per: Sud SSID 9, 13 Est SSID 10, 14 Ovest SSID 11, 15 In tutti i casi se il frame e' inviato al digipeater con anche un solo indirizzo nella lista di digipeater il frame non viene ripetuto: Es il frame: IW3FQG>APRS-8,UIDIGI: Non viene ripetuto. Tutti questi metodi, che ripeto modificano il comportamento standard di un digipeater standard AX.25, sono stati introdotti negli anni sia per iniziativa dei vari produttori di TNC che per idee dei vari utilizzatori. Il firmware UIDIGI e' liberamente utilizzabile e realizza tutto questo con un TNC2 autocostruito. Il risultato non e' molto bello, anche perche' manca un valido riferimento certo su come le cose devono funzionare, ma si e' dimostrato funzionante. La prospettiva (anche dal punto di vista di Bob Bruninga WB4APR), sempre che ci sia una effettiva esigenza, e' quella di gestire la propagazione dei frame tra le diverse aree locali con un mezzi piu' efficenti e meno dispersivi dell'attuale. Per fare questo occorrera' impiegare un hardware diverso (con almeno una porta radio in piu') ma in ogni caso questa versione non andrebbe gettata via. Aprile 2000 Marco Savegnago IW3FQG