17 sett. 2021: Corretta la stringa DIGIPEAT per digi fill-in
15 luglio 2021: Completata la prima sezione beacon raw via script
Direwolf è un programma AX25 packet modem-tnc, APRS encoder/decoder, creato da WB2OSZ e scaricabile da https://www.github.com/wb2osz/direwolf
Aggiorniamo e installiamo le librerie e il software necessario per la compilazione della versione 1.6.
Per questa guida ho usato un raspberry 4 con sistema operativo raspbian buster.
Aggiorniamo il sistema:
sudo apt-get update
sudo apt-get upgrade
Riavviamo:
sudo shutdown -r now
Installiamo il necessario:
sudo apt-get install libasound2-dev libudev-dev git cmake
Scarichiamo e installiamo l'ultima versione stabile:
- cd
- git clone https://www.github.com/wb2osz/direwolf
- cd direwolf
- git tag
- git checkout 1.6
- mkdir build && cd build
- cmake ..
- make -j4
- sudo make install
- make install-conf
- sudo ldconfig
A fine compilazione, con il comando make install-conf, verranno creati una serie di file nella home dell'utente in uso.
Per comodità, e ordine, vi consiglio di raggruppare i file di configurazione in una cartella dedicata. Quando andremo ad avviare il programma bisognerà specificare il percorso del file da utilizzare. Vedremo più avanti come fare. Come impostazione principale, se non verranno specificate opzioni, il programma andrà ad utilizzare direwolf.conf nella home dell'utente in uso.
Creiamo la cartella che conterrà tutti i file e spostiamoci al suo interno:
- cd
- mkdir dwconf
- cd dwconf
Attiviamo un i-Gate APRS.
Creiamo e impostiamo i due file di configurazione. Cominciamo con le VHF. Impostiamo la periferica audio corretta per la banda selezionata collegata alla radio vhf e tutti i parametri del caso.
- nano igv.conf
Copiamo al suo interno il seguente contenuto:
- # Audio VHF
- ADEVICE plughw:3,0
- ACHANNELS 1
- CHANNEL 0
- MYCALL INSERTYUORCALL-SSID-FOR-VHF
- MODEM 1200
- #PTT GPIO 26
- DCD GPIO 13
- #DEDUPE 10
- #TXDELAY 25
- AGWPORT 8000
- KISSPORT 8001
- ########## Beacon ###########################
- PBEACON SENDTO=IG delay=1 every=20 symbol=/& overlay=R lat=00.0000N long=000.0000E alt=altezzaSLM power=0 height=0 gain=0 comment="i-Gate VHF 144800KHz"
- #PBEACON VIA=WIDE1-1,WIDE2-1 DELAY=1 EVERY=20 SYMBOL=\# OVERLAY=D LAT=00.0000N LONG=000.0000E ALT=altezzaSLM POWER=4 HEIGHT=40 GAIN=6 COMMENT="Digi VHF 144800KHz"
- ##########################################
- ##DIGIPEAT 0 0 ^WIDE1-1$ ^WIDE1-1$
#DIGIPEAT 0 0 ^WIDE1-1$ ^WIDE[23]-[123]$ TRACE - IGSERVER euro.aprs2.net
- IGLOGIN YOURCALL YOURPASSCODEAPRS
- IGTXLIMIT 20 30
CTRL+O per salvare e successivamente CTRL+X per uscire
Nei modelli precedenti alla versione 4 del nostro raspberry, la voce ADEVICE plughw:3,0 potrebbe variare in ADEVICE plughw:2,0
Per identificare la numerazione della scheda audio basta dare il comando alsamixer nel terminale e successivamente F6. Verranno mostrate le periferiche e la numerazione.
Selezionata la scheda audio, con le frecce da tastiera, date invio, poi F5 per mostrare tutte le voci della periferica in uso. Successivamente spostatevi con il cursore destro-sinistro alla prima voce, a destra, Auto Gain Control e digitate M nella tastiera. Da 00 deve comparire MM. Questa è la corretta impostazione per l'ingresso audio, consigliata nel manuale direwolf. Il cursore per regolare il livello in ingresso è Capture. Tasto ESC per uscire. Il livello ottimale, visualizzato in ogni pacchetto ricevuto nel file di log, deve essere circa 50.Creiamo il prossimo file. Come il precedente, impostiamo il file per le UHF:
- nano igu.conf
Copiamo al suo interno il seguente contenuto:
- # Audio UHF
- ADEVICE plughw:2,0
- ACHANNELS 1
- CHANNEL 0
- MYCALL INSERTYUORCALL-SSID-FOR-UHF
- MODEM 1200
- #PTT GPIO 19
- DCD GPIO 6
- #DEDUPE 10
- #TXDELAY 25
- AGWPORT 8010
- KISSPORT 8011
- ########## Beacon ###########################
- PBEACON SENDTO=IG delay=1 every=20 symbol=/& overlay=R lat=00.0000N long=000.0000E alt=altezzaSLM power=0 height=0 gain=0 comment="i-Gate UHF 432500KHz"
- #PBEACON VIA=WIDE1-1,WIDE2-1 DELAY=1 EVERY=20 SYMBOL=\# OVERLAY=D LAT=00.0000N LONG=000.0000E ALT=altezzaSLM POWER=4 HEIGHT=40 GAIN=6 COMMENT="Digi UHF 432500KHz"
- ##########################################
- ##DIGIPEAT 0 0 ^WIDE1-1$ ^WIDE1-1$
#DIGIPEAT 0 0 ^WIDE1-1$ ^WIDE[23]-[123]$ TRACE - IGSERVER euro.aprs2.net
- IGLOGIN YOURCALL YOURPASSCODEAPRS
- IGTXLIMIT 20 30
CTRL+O per salvare e successivamente CTRL+X per uscire
Anche per questo file, nel caso si usasse una versione di raspberry precedente alla 4, la voce ADEVICE plughw:2,0 potrebbe variare in ADEVICE plughw:1,0
Verificate tramite alsamixer la corretta numerazione.
I due file appena creati contengono tutto il necessario per l'attivazione di un igate, rispettivamente nelle bande vhf e uhf.
Le voci commentate servono per attivare il sistema in modalità digi, beacon di posizione compreso. Togliete il cancelletto ad inizio riga per attivare la funzione digi e il beacon via radio. Personalizzate le coordinate.
Ho inserito due righe diverse per la funzione digipeater, di alto e basso livello. La riga DIGIPEAT 0 0 ^WIDE1-1$ ^WIDE1-1$ ripeterà solo le chiamate dirette, digi di basso livello, mentre se il sistema verrà posizionato in altura, potete attivare la riga contenente DIGIPEAT 0 0 ^WIDE1-1$ ^WIDE[23]-[123]$ TRACE. O una o l'altra. Togliendo a quest'ultima ^WIDE1-1$ Il sistema non ripeterà le chiamate dirette WIDE1-1, digi esclusivo di alto livello. Approfondite l'argomento sul web, ci sono molti esempi. Valutate e impostate questi valori in base alle necessità del territorio dove verrà attivato il sistema.
Se volete solo un digi, e non un iGate, commentate con un cancelletto ad inizio riga, IGSERVER e IGLOGIN.
Creiamo i file di log:
- touch /home/pi/dwconf/logv
- touch /home/pi/dwconf/logu
Impostiamo adesso la rotazione di questi file e la progressiva cancellazione, questo per evitare che crescano a dismisura fino a saturare la memoria sd:
- sudo nano /etc/logrotate.d/dwu
copiate al suo interno:
- /home/pi/dwconf/logu {
- daily
- rotate 4
- missingok
- copytruncate
- notifempty
- create 0644 pi pi
- }
CTRL+O per salvare e successivamente CTRL+X per uscire
Per le VHF facciamo la stessa cosa:
- sudo nano /etc/logrotate.d/dwv
Copiate al suo interno:
- /home/pi/dwconf/logv {
- daily
- rotate 4
- missingok
- copytruncate
- notifempty
- create 0644 pi pi
- }
CTRL+O per salvare e successivamente CTRL+X per uscire
Bene, abbiamo quasi finito. Ci restano da impostare i due file che provvederanno ad avviare il programma, tramite systemd. Systemd avvia le nostre istanze vhf e uhf con un semplice comando, verificando il corretto funzionamento. In caso di crash, provvederà a riavviare l'applicazione senza alcun intervento da parte nostra.
Creiamo i due file, per le vhf:
sudo nano /etc/systemd/system/dwv.service
Copiamo al suo interno le seguenti righe:
- [Unit]
- Description=DireWolf vhf Deamon
- After=network.target
- After=sound.target
- After=syslog.target
- [Service]
- StandardOutput=append:/home/pi/dwconf/logv
- StandardError=append:/home/pi/dwconf/logv
- Type=simple
- ExecStart=/usr/local/bin/direwolf -c /home/pi/dwconf/igv.conf
- Restart=always
- RestartSec=15
- User=pi
- [Install]
- WantedBy=multi-user.target
CTRL+O per salvare e successivamente CTRL+X per uscire
Creiamo il file per le uhf:
sudo nano /etc/systemd/system/dwu.service
Copiamo al suo interno le seguenti righe:
- [Unit]
- Description=DireWolf uhf Deamon
- After=network.target
- After=sound.target
- After=syslog.target
- [Service]
- StandardOutput=append:/home/pi/dwconf/logu
- StandardError=append:/home/pi/dwconf/logu
- Type=simple
- ExecStart=/usr/local/bin/direwolf -c /home/pi/dwconf/igu.conf
- Restart=always
- RestartSec=15
- User=pi
- [Install]
- WantedBy=multi-user.target
CTRL+O per salvare e successivamente CTRL+X per uscire
Rendiamo effettive le modifiche per systemd, pena il mancato funzionamento dei file di avvio appena creati.
sudo systemctl daemon-reload
A questo punto, se non avete commesso errori, basta avviare le singole istanze di direwolf, vhf e uhf, con i seguenti comandi, e verificare l'outoput nei rispettivi file di log:
sudo systemctl start dwv.service
sudo systemctl start dwu.service
Systemd permette di verificare lo stato dell'applicazione appena avviata con questo comando:
sudo systemctl status dwv.service
sudo systemctl status dwu.service
Mentre per leggere l'output delle due istanze, beacon ricevuti, ripetizioni e quant'altro, usate il comando tail con l'opzione f:
tail -f -n 100 /home/pi/dwconf/logv Per le VHF
tail -f -n 100 /home/pi/dwconf/logu Per le UHF
CTRL+C per uscire
Per fermare il programma nella banda desiderata:
sudo systemctl stop dwv.service
sudo systemctl stop dwu.service
Semplice e comodo!
KISSUTIL
Adesso vediamo come inviare via radio un beacon personalizzato, messaggi e quant'altro, scrivendo in un file una stringa aprs raw, opportunamente formattata. Brevemente, scritta la stringa nel file, lo salviamo nella cartella predisposta allo scopo. Kissutil si occuperà di riconoscere il file appena creato, la stringa raw al suo interno, inviare il beacon tramite direwolf e cancellare il file una volta processato.
Anche per kissutil creeremo due file in /etc/systemd/system per l'avvio automatico, in modo che si avvii senza alcun intervento da parte nostra ed avere le sue funzioni disponibili una volta attivato direwolf, indipendentemente per le due bande, due istanze.
Creiamo le due cartelle:
- cd
- cd dwconf
- mkdir utilv
- mkdir utilu
Creiamo i due file di log anche per kissutil:
touch kissutilv.log
touch kissutilu.log
Stessa procedura fatta per i log di direwolf; creiamo i file per ruotarli e cancellarli.
Per le vhf:
sudo nano /etc/logrotate.d/kissutilv
Copiate al suo interno le seguenti righe:
- /home/pi/dwconf/kissutilv.log {
- daily
- rotate 4
- missingok
- copytruncate
- notifempty
- create 0644 pi pi
- }
CTRL+O per salvare e successivamente CTRL+X per uscire
Per le uhf:
sudo nano /etc/logrotate.d/kissutilu
Copiate al suo interno le seguenti righe:
- /home/pi/dwconf/kissutilu.log {
- daily
- rotate 4
- missingok
- copytruncate
- notifempty
- create 0644 pi pi
- }
CTRL+O per salvare e successivamente CTRL+X per uscire
Creiamo adesso i due file per fare in modo che l'utilità si avvii in automatico una volta attivato direwolf in vhf e/o uhf.
sudo nano /etc/systemd/system/utilkissv.service
Copiamo al suo interno le seguenti righe:
- [Unit]
- Description=Utilita kissutil vhf
- After=network.target
- After=sound.target
- After=syslog.target
- [Service]
- StandardOutput=null
- StandardError=append:/home/pi/dwconf/kissutilv.log
- Type=simple
- ExecStart=/usr/local/bin/kissutil -p 8001 -f /home/pi/dwconf/utilv
- Restart=always
- RestartSec=20
- User=pi
- [Install]
- WantedBy=dwv.service
CTRL+O per salvare e successivamente CTRL+X per uscire
Per le uhf:
sudo nano /etc/systemd/system/utilkissu.service
[Unit]
- Description=Utilita kissutil uhf
- After=network.target
- After=sound.target
- After=syslog.target
- [Service]
- StandardOutput=null
- StandardError=append:/home/pi/dwconf/kissutilu.log
- Type=simple
- ExecStart=/usr/local/bin/kissutil -p 8011 -f /home/pi/dwconf/utilu
- Restart=always
- RestartSec=20
- User=pi
- [Install]
- WantedBy=dwu.service
CTRL+O per salvare e successivamente CTRL+X per uscire
Rendiamo anche qui effettive le modifiche per systemd, pena il mancato riconoscimento e funzionamento dei file appena creati
Vedremo adesso come scrivere un beacon raw in un file tramite semplici comandi da terminale, salvarlo in una delle cartelle sopracitate e innescare il processo di invio via radio.
Scaricate il file da questo link:
Rendetelo eseguibile con:
chmod +x raw-axEditatelo con nano raw-ax
Di seguito la descrizione delle righe da personalizzare:
- ps: Identifica se il simbolo primario o secondario nella tabella simboli aprs
/ per i simboli primari
\ per i simboli secondari
- symbol: Identifica il simbolo da visualizzare in mappa
- lat e long identificano la posizione in mappa.
Qui trovate tutti i formati https://www.sunearthtools.com/dp/toolsS/conversion.php?lang=it
- alt: Sempre tra virgolette, "/A=000120" identifica l'altezza SLM in piedi
- fromcall: inserite il nominativo da visualizzare in mappa
- dest: potete lasciarlo così. Documentatevi in rete per eventuali modifiche
- unproto: Percorso che seguirà il pacchetto secondo il new paradigma.
WIDE1-1,WIDE2-2 permetterà tre ripetizioni
- phg: Identifica rispettivamente la potenza trasmessa dalla stazione, altezza dellantenna dal suolo e il guadagno della stessa. Lultima cifra identifica la direttività dellantenna, zero per omnidirezionale. Queste informazioni sono sempre visibili nella bandierina informazioni del nodo in mappa. Se non desiderate che compaiano o velete resettare le ultime inviate e presenti su aprs.fi, impostate tutto a zero.
I valori da inserire sono esclusivamente quelli nella prima riga DIGITS che corrisponderanno ai valori delle rispettive colonne. Verificate le corrette impostazioni dei valori nella seguente tabella aprs.fi, pena il mancato funzionamento
DIGITS 0 1 2 3 4 5 6 7 8 9 Equation
-------------------------------------------------------------------
POWER 0, 1, 4, 9, 16, 25, 36, 49, 64, 81 watts SQR(P)
HEIGHT 10,20,40, 80,160,320,640,1280,2560,5120 feet LOG2(H/10)
GAIN 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 dB
DIR 0,45,90,135,180,225,270, 315, 360, . deg (D/45)
- commento: Commento visualizzato nella bandierina informazioni mappa previsto dal sistema
- status: Identifica lo stato della stazione. Di solito su usa: Attivo, Connesso, QRT, QRV e via dicendo. Informazioni brevi sullo stato del nodo.
- Le righe sleep 2 introducono una pausa di due secondi fra l'nivio dei beacon. Qesto per evitare di mandare in trasmissione contemporaneamente la radio nelle due bande e un inutile sovracarico del sistema
- cartellavhf e cartellauhf identificano le cartelle preposte e precedentemente configurate in kissutil per l'invio via radio dei beacon personalizzati
- Le seguenti voci permettono di attivare la banda da utilizzare e lo status, per banda, true=attiva. Vuota non attiva. Nell'esempio sotto è attivo solo il beacon in banda vhf
vhfenable=true
uhfenable=
vhfstatusenable=
uhfstatusenable=
- Alla riga unproto, se sostituite, per esempio, i vari WIDE... con il nominativo di un digi specifico, il pacchetto iviato verrà ripetuto dallo stesso se in portata radio. Utile per capire la copertura nella vostra zona
CTRL+O per salvare e successivamente CTRL+X per uscire
Per eseguirlo digitate:
- ./raw-ax
Se tutto è corretto con direwolf e kissattach attivi, il beacon verrà immediatamente trasmesso via radio.
Buon divertimento.
Nessun commento:
Posta un commento