Ultima modifica 20 Gennaio 2021.
20 Genn. 2021: Inserita procedura installazione versione 1.6.
Direwolf è un programma AX25 packet modem-tnc, APRS encoder/decoder, creato da WB2OSZ e scaricabile da https://www.github.com/wb2osz/direwolf
In questa guida spiegherò passo passo come installare e impostare direwolf in modalità TNC, igate e digipeater bibanda. Vedremo come personalizzare il nostro beacon, attivare la telemetria e altro ancora.
Successivamente spiegherò brevemente come installare il protocollo ax25 e dbeacon, per inviare beacon via radio usando direwolf con semplici script bash e kissutil.
Tutte le informazioni qui riportate potete trovarle nella cartella doc del progetto Direwolf.
https://github.com/wb2osz/direwolf/tree/master/doc
Quanto prima tratterò kissutil, molto utile in caso si vogliano trasmettere beacon personalizzati.
Le opzioni kissutil le trovate a questo indirizzo: https://www.mankier.com/1/kissutil
La seguente guida è valida per l'installazione della versione 1.6, 1.5 e precedenti. Testata su raspbian stretch lite, rpi3, rpi zero e buster. Cominciamo:
Installiamo le librerie utili alla compilazione:
- sudo apt-get install libasound2-dev libudev-dev git cmake
- cd
- git clone https://www.github.com/wb2osz/direwolf
- cd direwolf
- git tag
La versione stabile a luglio 2019 è la 1.5, mentre a fine anno 2020 è la 1.6. Installiamo l'ultima stabile, 1.6. Di seguito lascio invariata la procedura per l'installazione della versione 1.5 e precedenti. La procedura per la versione 1.6 è leggermente diversa. Selezioniamola:
- git checkout 1.6
- mkdir build && cd build
- cmake ..
- make -j4
- sudo make install
- make install-conf
- sudo ldconfig
Fatto! Adesso vediamo, invece, come installare la versione 1.5 e precedenti:
- git checkout 1.5
- make
- sudo make install
- make install-conf
- sudo ldconfig
Fatto! Da questo momento in poi le configurazioni trattate sono uguali per la 1.6 e versioni precedenti.
Spostiamoci nella home:
- cd
- cp direwolf.conf direwolf.conf.old
- sudo apt-get install ax25-apps ax25-tools libax25 libax25-dev dbeacon socat
Primo esempio, igate vhf.
Per comodità, e leggibilità, vi consiglio di creare un file nuovo, senza tutti i commenti e suggerimenti del file originale, meglio se inserito in una cartella dedicata, magari nella vostra home. Creiamo cartella e file:
- mkdir dwconf
- cd dwconf
- nano ig.conf
ADEVICE0 plughw:1,0
ACHANNELS 1
CHANNEL 0
MYCALL MYCALL-10
MODEM 1200
DCD GPIO 24
AGWPORT 8000
KISSPORT 8001
# La seguente è un'unica riga
PBEACON sendto=IG delay=0:25 every=15:00 symbol="igate" overlay=R lat=00.0000N long=000.0000E ALT=50 comment="Igate vhf 144.800"
IGSERVER euro.aprs2.net
IGLOGIN MYCALL-10 idcall
IGTXLIMIT 6 1
Salvate il file con ctrl+o, ctrl+x per uscire.
Basta così, con queste poche righe sarete in grado di attivare facilmente un igate. Spiego brevemente; la prima riga identifica la scheda audio usb, la seconda il numero di canali audio, la terza il canale audio in uso, la quarta il nominativo, sostituitelo a MYCALL, la quinta riguarda la velocità del modem e la sesta il rilevamento afsk se volete aggiungere un led.
Il SSID per l'igate e -10 e l'icona è la R contenuta nel rombo nero. Per identificare un igate spesso compare in mappa l'icona generica tcp-ip, ache se richiama la rete internet non è esattamente appropriata, oppure la G, sempre nel rombo nero, identifica un igate HF. Qui trovate alcuni simboli aggiornati, aggiunti negli anni:
http://www.aprs.org/symbols/symbols-new.txt
A seguire le due righe AGWPORT e KISSPORT. Queste servono per connettere direwolf ad altri programmi come Xastir, UI-View e altro ancora.
Successivamente la sezione beacon. Modificate i valori con i vostri dati corretti. Per ricavare la posizione potete usare aprs.fi o questo sito più in dettaglio. Aggiungete qualche info in più nel commento, se volete, un'email per esempio.
Nella riga IGLOGIN inserite le credenziali di connessione ai server aprs, nominativo-ssid e rispettiva password calcolabile facilmente qui
Connessioni:
Se connettete una radio con uscita cuffia o altoparlante, inserite un condensatore da 100 nano e una resistenza in serie da 2,2KOhm a 10kohm al polo caldo dell'ingresso mic della scheda audio usb o un trimmer da 10K.
Connettetevi via terminale con linux o Putty da windows. Aprite due sessioni ssh.
Per verificare la corretta numerazione assegnata alla scheda audio avviate alsamixer in un terminale, successivamente f6 per verificare e selezionare la scheda audio interessata e f5 per visualizzare tutti i canali audio. Il canale è CAPTURE-MIC e non MIC.
Lasciatelo a zero e regolatevi con l'uscita audio della radio, una volta lanciato il programma avrete il livello audio in ogni pacchetto ricevuto. Regolatelo di conseguenza dal pomello della radio per un valore prossimo a 50.
Se usate un'uscita preamplificata, sostituite la resistenza da 10kohm con una da 1Kohm e lasciate sempre il condensatore da 100nano per eliminare la tensione di bias in uscita della scheda audio.
In questo caso aggiustate il livello MIC sotto CAPTURE per ottenere un livello prossimo a 50. Se risultasse sempre troppo alto, anche con il cursore mic-capture a zero, aumentate empiricamente il valore della resistenza o inserite come prima un trimmer da 10K. Più in la inserirò un semplice schemino.
Nei due terminali visualizzate alsamixer in una e il log del programma avviato nell'altro. In questo modo visualizzerete i pacchetti man mano che transitano.
Per avviare direwolf usate questo comando:
direwolf -t 0 -c ~/dwconf/ig.conf
-t 0 elimina i colori dai pacchetti ricevuti e -c identifica il percorso del file di configurazione da usare.
Lo squelch della radio lasciatelo aperto. Alcune radio hanno una velocità di commutazione squelch troppo alta e di conseguenza si perde la parte iniziale del pacchetto.
Configurazione semplice TNC
ADEVICE0 plughw:1,0
ACHANNELS 1
CHANNEL 0
MYCALL MYCALL-10
MODEM 1200
PTT GPIO 5
DCD GPIO 24
AGWPORT 8000
KISSPORT 8001
Secondo esempio, igate vhf-uhf.
In questo caso la configurazione è molto simile alla configurazione igate vhf, in più bisogna aggiungere una seconda scheda audio e radio e aggiungere una sezione nel file ig.conf.
ADEVICE0 plughw:1,0
ACHANNELS 1
CHANNEL 0
MYCALL MYCALL-10
MODEM 1200
DCD GPIO 24
ADEVICE1 plughw:2,0
ACHANNELS 1
CHANNEL 2
MYCALL MYCALL-10
MODEM 1200
DCD GPIO 22
AGWPORT 8000
KISSPORT 8001
# La seguente è un'unica riga
PBEACON sendto=IG delay=0:25 every=15:00 symbol="igate" overlay=R lat=00.0000N long=000.0000E ALT=50 comment="Igate vhf uhf 144.800 432.500"
IGSERVER euro.aprs2.net
IGLOGIN MYCALL-10 idcall
IGTXLIMIT 6 1
Seguite le istruzioni sopra, nella sezione igate vhf per le regolazioni e l'individuazione delle schede audio.
Terzo esempio, digi igate vhf-uhf e configurazioni varie digi.
# VHF
ADEVICE0 plughw:1,0
ACHANNELS 1
CHANNEL 0
MYCALL MYCALL-2
MODEM 1200
PTT GPIO 5
DCD GPIO 24
DEDUPE 10
TXDELAY 20
#TXTAIL 10
# UHF
ADEVICE1 plughw:2,0
ACHANNELS 1
CHANNEL 2
MYCALL MYCALL-2
MODEM 1200
PTT GPIO 6
DCD GPIO 22
DEDUPE 10
TXDELAY 20
#TXTAIL 10
AGWPORT 8000
KISSPORT 8001
# La seguente è un'unica riga
PBEACON via=WIDE1-1,WIDE2-1 delay=0:25 every=15:00 symbol="digi" overlay=I lat=00.0000N long=000.0000E ALT=50 power=4 height=40 gain=6 comment="Digi-Igate vhf uhf 144.800 432.500"
DIGIPEAT 0 0 ^WIDE[1]-[1]$|^TEST$ ^WIDE[2]-[12]$ TRACE
DIGIPEAT 2 2 ^WIDE[1]-[1]$|^TEST$ ^WIDE[2]-[12]$ TRACE
IGSERVER euro.aprs2.net
IGLOGIN MYCALL-10 idcall
IGTXLIMIT 6 1
Come prima, anche qui il file è molto simile ai precedenti. Nei primi due blocchi sono stati aggiunti il PTTGPIO per l'assegnazione di un pin gpio al ptt, txdelay per compensare il ritardo di commutazione della radio in tx e il txtail, la coda di fine beacon. 20 sta per 200ms e naturalmente 10 per 100ms.
La sezione beacon ha delle voci in più. PHG identificano rispettivamente la potenza del tx, l'altezza dell'antenna dal suolo e il guadagno. "via=" è settato a WIDE1-1,WIDE2-1 aggiungendo il percorso al beacon del digi via radio. Verrà ripetuto fino un massimo di due volte.
la sezione digipeat è molto semplice, ma allo stesso tempo ampiamente configurabile. I primi due numeri identificano rispettivamente il canale di provenienza e quello di destinazione. Nel nostro caso 0 per le vhf e 2 per le uhf. A seguire l'alias, di solito WIDE1-1. MYCALL è già incluso nell'alias. Utile nel caso si voglia inviare un beacon diretto al digi e verificare se raggiungibile. In caso positivo, risponderà solo il digi in questione anche se ricevuto da altri nelle vicinanze.
A seguire ^WIDE[2]-[12]$ TRACE. Qui il pacchetto viene trattato secondo il nuovo paradigma. Nel caso arrivino al digi pacchetti ripetuti da digi in bassa quota, provvede a scalarlo e aggiungere MYCALL al percorso.
Esempio di fill-in digi:
DIGIPEAT 0 0 ^WIDE1-1$ ^WIDE1-1$
Ripete e scala solo i beacon ricevuti direttamente da una stazione trasmittente contenente nel percorso WIDE1-1. Digipeater fill-in, riempimento.
Mentre questa potrebbe essere una configurazione digi d'altura:
DIGIPEAT 0 0 ^WIDE[3-7]-[1-7]$|^TEST$ ^WIDE[2]-[12]$ TRACE
Nel caso non serva l'igate, commentate con un cancelletto le ultime tre righe del file riguardante la connessione ai server aprs.fi.
Altro sulle schede audio
Per individuare la scheda audio potete fare qualche prova. Spostando le schede nei connettori usb, verrà modificata la numerazione assegnata. Di solito la scheda audio del raspberry è settata a zero, le due schede audio usb saranno in ordine crescente, uno e due. Una volta individuate non spostatele, pena l'inversione delle bande.
Le schede audio con cui ho fatto le prove sono le economiche con chip cm108 e si trovano facilmente anche in negozi cinesi. Sono mono sul canale d'ingresso. Per questo motivo nel file di configurazione vengono settate a mono ACHANNELS 1 rispettivamente CHANNEL 0 per la prima e CHANNEL 2 per la seconda nel caso stiate usando un sistema doppia banda.
Impostazione del beacon, esempi.
Passiamo adesso alla configurazione e personalizzazione della sezione beacon.
Le possibilità sono tante, faccio qualche esempio per rendere l'idea:
# La seguente è un'unica riga
PBEACON via=WIDE1-1,WIDE2-1 delay=0:25 every=30:00 symbol="digi" overlay=I lat=00.0000N long=000.0000E ALT=50 power=4 height=40 gain=6 comment="Digi-Igate vhf uhf 144.800 432.500"
# La seguente è un'unica riga
PBEACON delay=10:00 every=30:00 symbol="digi" overlay=I lat=00.0000N long=000.0000E ALT=50 power=4 height=40 gain=6 comment="Digi-Igate vhf uhf 144.800 432.500"
# La seguente è un'unica riga
PBEACON delay=20:00 every=30:00 symbol="digi" overlay=I lat=00.0000N long=000.0000E ALT=50 power=4 height=40 gain=6 comment="Digi-Igate vhf uhf 144.800 432.500"
Come evidenziato nel commento, ognuno dei questi blocchi, dovrete scriverlo in un'unica riga nell'editor, perciò in questo caso tre righe, una per ogni beacon.
Questa configurazione invia un primo beacon dopo 25 secondi dall'attivazione del programma con l'instradamento via=WIDE1-1,WIDE2-1, verrà così ripetuto da eventuali digi in ascolto fino un massimo di due volte.
I due beacon seguenti sono identici ma impostati senza instradamento e con dieci e venti minuti di ritardo. Questo per evitare di farlo ripetere ogni dieci minuti da altri digi su un'area più vasta e occupare inutilmente il canale. Un beacon ogni mezzora è più che sufficiente per segnalarne la presenza. I due beacon successivi al primo verranno ricevuti solo da chi si trova in copertura radio diretta.
Altro esempio:
# La seguente è un'unica riga
PBEACON via=WIDE1-1,WIDE2-1 delay=0:30 every=30:00 symbol=\# overlay=D lat=00.0000N long=000.0000E comment="Igate 144.800 432.500"
# La seguente è un'unica riga
PBEACON via=WIDE1-1,WIDE2-1 delay=15:30 every=30:00 symbol=\# overlay=I lat=00.0000N long=000.0000E comment="Igate 144.800 432.500"
In questo caso il primo beacon verrà inviato dopo trenta secondi dall'avvio del programma, ma con la D più grande del simbolo digi standard.
Dopo un quarto d'ora verrà inviato il secondo beacon, questa volta con la I all'interno del simbolo digi.
La rotazione del simbolo permette di identificare facilmente un digi igate in mappa, anche se in realtà la I sarebbe più che sufficiente.
Impostazioni kissattach ax25, socat e beacon via radio
Qui cominciamo un'altra sezione della guida. Come anticipato sopra, configureremo il file axports in modo da rendere disponibile una scheda di rete da poter utilizzare successivamente tramite socat e kissattach.
Configuriamo con sudo nano /etc/ax25/axports il file axports in questo modo:
# /etc/ax25/axports
#
# The format of this file is:
#
# name callsign speed paclen window description
#
#1 OH2BNS-1 1200 255 2 144.675 MHz (1200 bps)
#2 OH2BNS-9 38400 255 7 TNOS/Linux (38400 bps)
ax0 MYCALL-ssid 1200 255 2 144.800 MHz (1200 bps)
Non lasciate spazi dall'inizio alla fine del file, di solito uno è presente. Aggiungete alla fine la vostra riga, senza il cancelletto iniziale. Modificate MYCALL con il nominativo del digi o igate e se necessario aggiungete anche l'ssid. Lasciate tutto il resto così com'è.
Fate in modo da far corrispondere l'SSID con quello impostato nell'igate, digi o semplice tnc.
In costruzione...
1 commento:
Ottima guida , complimenti Biagio. Sono riuscito a installare e configurare il mio Digipeater con rasp 3b+ e adattatore USB-seriale e con interfaccia optoisolata fatta da me. 73 de ik7ejc Romolo.
Posta un commento