Pagine

Direwolf 1.6 - Installazione e avvio di un digi, iGate VHF UHF, kissutil e beacon personalizzati in semplici passi

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

sudo systemctl daemon-reload

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:

filebeaconraw

Rendetelo eseguibile con:

chmod +x raw-ax

Editatelo con nano raw-ax

Di seguito la descrizione delle righe da personalizzare:

  1. ps: Identifica se il simbolo primario o secondario nella tabella simboli aprs
     / per i simboli primari
     \ per i simboli secondari
     
  2. symbol: Identifica il simbolo da visualizzare in mappa

  3. lat e long identificano la posizione in mappa.
    Qui trovate tutti i formati https://www.sunearthtools.com/dp/toolsS/conversion.php?lang=it
     
  4. alt: Sempre tra virgolette, "/A=000120" identifica l'altezza SLM in piedi
     
  5. fromcall: inserite il nominativo da visualizzare in mappa
     
  6. dest: potete lasciarlo così. Documentatevi in rete per eventuali modifiche
     
  7. unproto: Percorso che seguirà il pacchetto secondo il new paradigma.
    WIDE1-1,WIDE2-2 permetterà tre ripetizioni
     
  8. 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)
     
  9. commento: Commento visualizzato nella bandierina informazioni mappa previsto dal sistema
     
  10. status: Identifica lo stato della stazione. Di solito su usa: Attivo, Connesso, QRT, QRV e via dicendo. Informazioni brevi sullo stato del nodo.
     
  11. 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
     
  12. cartellavhf e cartellauhf identificano le cartelle preposte e precedentemente configurate in kissutil per l'invio via radio dei beacon personalizzati

  13. 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=
     
  14. 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: