tag:blogger.com,1999:blog-25935943348683027192024-03-19T05:09:10.301+01:00IT9FDP Biagio La FauciSemplici progetti con esempi pratici. Svxlink, APRS, Wview, Webcam con raspberry.Biagio La Fauci IT9FDPhttp://www.blogger.com/profile/17819145852822412886noreply@blogger.comBlogger28125tag:blogger.com,1999:blog-2593594334868302719.post-82354709474039714172021-06-25T16:10:00.058+02:002022-04-17T19:45:53.498+02:00Direwolf 1.6 - Installazione e avvio di un digi, iGate VHF UHF, kissutil e beacon personalizzati in semplici passi<p><span style="color: #38761d;"><span>17 sett. 2021: Corretta la stringa <b>DIGIPEAT</b> per digi fill-in<br />15 luglio 2021: Completata la prima sezione beacon raw via script</span></span><br /></p><p>Direwolf è un programma AX25 packet modem-tnc, APRS
encoder/decoder, creato da WB2OSZ e scaricabile da <a href="https://www.github.com/wb2osz/direwolf" target="_blank">https://www.github.com/wb2osz/direwolf</a></p><p>Aggiorniamo e installiamo le librerie e il software necessario per la compilazione della versione 1.6. </p><p>Per questa guida ho usato un raspberry 4 con sistema operativo raspbian buster.</p><p> Aggiorniamo il sistema:<br /></p><p><b>sudo apt-get update</b></p><p><b>sudo apt-get upgrade</b></p><p> Riavviamo:<br /></p><p><b>sudo shutdown -r now <br /></b></p><p> Installiamo il necessario<b>:<br /></b></p><p><b>sudo apt-get install libasound2-dev libudev-dev git cmake </b><br /></p><div><p> Scarichiamo e installiamo l'ultima versione stabile:<br /></p><ul style="text-align: left;"><li><b>cd </b></li><li><b>git clone https://www.github.com/wb2osz/direwolf</b></li><li><b>cd direwolf</b></li><li><b>git tag </b></li><li><b>git checkout 1.6</b></li><li><b>mkdir build && cd build</b></li><li><b>cmake .. </b></li><li><b>make -j4</b></li><li><b>sudo make install</b></li><li><b>make install-conf</b></li><li><b>sudo ldconfig</b></li></ul><p>A fine compilazione, con il comando <b>make install-conf</b>, verranno creati una serie di file nella home dell'utente in uso.<br /><br />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.</p><span><a name='more'></a></span><p>Creiamo la cartella che conterrà tutti i file e spostiamoci al suo interno:</p><ul style="text-align: left;"><li><b>cd</b></li><li><b>mkdir dwconf</b></li><li><b>cd dwconf</b></li></ul><p>Attiviamo un i-Gate APRS. <br /></p><p>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. </p><ul style="text-align: left;"><li><b>nano igv.conf</b></li></ul><p>Copiamo al suo interno il seguente contenuto:</p><ul style="text-align: left;"><li><b># Audio VHF</b></li><li><b>ADEVICE plughw:3,0</b></li><li><b>ACHANNELS 1</b></li><li><b>CHANNEL 0</b></li><li><b>MYCALL INSERTYUORCALL-SSID-FOR-VHF</b></li><li><b>MODEM 1200</b></li><li><b>#PTT GPIO 26</b></li><li><b>DCD GPIO 13</b></li><li><b>#DEDUPE 10</b></li><li><b>#TXDELAY 25</b></li><li><b> </b></li><li><b>AGWPORT 8000</b></li><li><b>KISSPORT 8001</b></li><li><b> </b></li><li><b>########## Beacon ###########################</b></li><li><b> </b></li><li><b>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"</b></li><li><b> </b></li><li><b><b> #PBEACON VIA=WIDE1-1,WIDE2-1 DELAY=1 EVERY=20 SYMBOL=\# OVERLAY=D LAT=00.0000N LONG=000.0000E ALT=</b><b><b>altezzaSLM</b> POWER=4 HEIGHT=40 GAIN=6 COMMENT="Digi VHF 144800KHz"</b></b></li><li><b><br /></b></li><li><b>##########################################</b></li><li><b> </b></li><li><b>##DIGIPEAT 0 0 ^WIDE1-1$ ^WIDE1-1$<br />#DIGIPEAT 0 0 ^WIDE1-1$ ^WIDE[23]-[123]$ TRACE <br /></b></li><li><b> </b></li><li><b>IGSERVER euro.aprs2.net</b></li><li><b>IGLOGIN YOURCALL YOURPASSCODEAPRS<br /></b></li><li><b> </b></li><li><b>IGTXLIMIT 20 30</b><br /></li></ul><p><b>CTRL+O per salvare e successivamente CTRL+X per uscire</b> <br /></p><p>Nei modelli precedenti alla versione 4 del nostro raspberry, la voce <b>ADEVICE plughw:3,0 </b>potrebbe variare in<b> </b><b>ADEVICE plughw:2,0</b></p><p><span style="color: #990000;">Per identificare la numerazione
della scheda audio basta dare il comando <b>alsamixer</b> nel terminale e
successivamente F6. Verranno mostrate le periferiche e la numerazione.</span></p><span style="color: #990000;">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, <b>Auto Gain Control</b> e digitate <b>M</b>
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.</span><b> </b> <p>Creiamo il prossimo file. Come il precedente, impostiamo il file per le UHF:</p><ul style="text-align: left;"><li><b>nano igu.conf</b> </li></ul><div><p>Copiamo al suo interno il seguente contenuto: <br /></p><ul><li><b># Audio UHF</b></li><li><b>ADEVICE plughw:2,0</b></li><li><b>ACHANNELS 1</b></li><li><b>CHANNEL 0</b></li><li><b>MYCALL INSERTYUORCALL-SSID-FOR-UHF</b></li><li><b>MODEM 1200</b></li><li><b>#PTT GPIO 19</b></li><li><b>DCD GPIO 6</b></li><li><b>#DEDUPE 10</b></li><li><b>#TXDELAY 25</b></li><li><b> </b></li><li><b>AGWPORT 8010</b></li><li><b>KISSPORT 8011</b></li><li><b> </b></li><li><b>########## Beacon ###########################</b></li><li><b> </b></li><li><b>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"</b></li><li><b> </b></li><li><b>#PBEACON VIA=WIDE1-1,WIDE2-1 DELAY=1 EVERY=20 SYMBOL=\# OVERLAY=D LAT=00.0000N LONG=000.0000E ALT=</b><b><b>altezzaSLM</b> POWER=4 HEIGHT=40 GAIN=6 COMMENT="Digi UHF 432500KHz" <br /></b></li><li><b> </b></li><li><b><br /></b></li><li><b>##########################################</b></li><li><b> </b></li><li><b>##DIGIPEAT 0 0 ^WIDE1-1$ ^WIDE1-1$<br />#DIGIPEAT 0 0 ^WIDE1-1$ ^WIDE[23]-[123]$ TRACE <br /></b></li><li><b> </b></li><li><b>IGSERVER euro.aprs2.net</b></li><li><b>IGLOGIN <span style="color: #ffa400;">YOURCALL</span> <span style="color: #ffa400;">YOURPASSCODEAPRS</span><br /></b></li><li><b> </b></li><li><b>IGTXLIMIT 20 30</b></li></ul><p><b>CTRL+O per salvare e successivamente CTRL+X per uscire</b> <br /></p><p>Anche per questo file, nel caso si usasse una versione di raspberry precedente alla 4, la voce <b>ADEVICE plughw:2,0 </b>potrebbe variare in<b> </b><b>ADEVICE plughw:1,0</b> </p><p>Verificate tramite <b>alsamixer</b> la corretta numerazione.<br /></p><p>I due file appena creati contengono tutto il necessario per l'attivazione di un igate, rispettivamente nelle bande vhf e uhf.</p><p> </p><p>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. </p><p>Ho inserito due righe diverse per la funzione digipeater, di alto e basso livello. La riga <b>DIGIPEAT 0 0 ^WIDE1-1$ ^WIDE1-1$</b> ripeterà solo le chiamate dirette, digi di basso livello, mentre se il sistema verrà posizionato in altura, potete attivare la riga contenente <b>DIGIPEAT 0 0 ^WIDE1-1$ ^WIDE[23]-[123]$ TRACE</b>. O una o l'altra. Togliendo a quest'ultima <b>^WIDE1-1$</b> 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. </p><p>Se volete solo un digi, e non un iGate, commentate con un cancelletto ad inizio riga, <b>IGSERVER</b> e <b>IGLOGIN.</b><br /></p><p></p><p>Creiamo i file di log:</p><ul style="text-align: left;"><li><b>touch /home/pi/dwconf/logv</b></li><li><b>touch </b><b><b>/home/pi/dwconf/</b>logu</b><br /> </li></ul><p></p><p>Impostiamo adesso la rotazione di questi file e la progressiva cancellazione, questo per evitare che crescano a dismisura fino a saturare la memoria sd:<br /></p><ul style="text-align: left;"><li><b>sudo nano /etc/logrotate.d/dwu</b></li></ul><p>copiate al suo interno:</p><ul style="text-align: left;"><li><b>/home/pi/dwconf/logu {</b></li><li><b> daily</b></li><li><b>rotate 4</b></li><li><b>missingok</b></li><li><b>copytruncate</b></li><li><b>notifempty</b></li><li><b>create 0644 pi pi</b></li><li><b>}</b><br /> </li></ul><p><b>CTRL+O per salvare e successivamente CTRL+X per uscire</b></p><p>Per le VHF facciamo la stessa cosa:</p><ul style="text-align: left;"><li><b>sudo nano /etc/logrotate.d/dwv</b> </li></ul><p>Copiate al suo interno:<br /> </p><ul style="text-align: left;"><li><b>/home/pi/dwconf/logv {</b></li><li><b>daily</b></li><li><b>rotate 4</b></li><li><b>missingok</b></li><li><b>copytruncate</b></li><li><b>notifempty</b></li><li><b>create 0644 pi pi</b></li><li><b>}</b><br /> </li></ul><p><b>CTRL+O per salvare e successivamente CTRL+X per uscire</b> </p><p>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. </p><p>Creiamo i due file, per le vhf:<br /> </p><p><b>sudo nano /etc/systemd/system/dwv.service</b></p><p>Copiamo al suo interno le seguenti righe: <b><br /></b></p><ul style="text-align: left;"><li><b>[Unit]</b></li><li><b>Description=DireWolf vhf Deamon</b></li><li><b>After=network.target</b></li><li><b>After=sound.target</b></li><li><b>After=syslog.target</b></li><li><b> </b></li><li><b>[Service]</b></li><li><b>StandardOutput=append:/home/pi/dwconf/logv</b></li><li><b>StandardError=append:/home/pi/dwconf/logv</b></li><li><b>Type=simple</b></li><li><b>ExecStart=/usr/local/bin/direwolf -c /home/pi/dwconf/igv.conf</b></li><li><b>Restart=always</b></li><li><b>RestartSec=15</b></li><li><b>User=pi</b></li><li><b> </b></li><li><b>[Install]</b></li><li><b>WantedBy=multi-user.target</b></li></ul><p><b>CTRL+O per salvare e successivamente CTRL+X per uscire</b> <br /></p><p>Creiamo il file per le uhf:</p><p><b>sudo nano /etc/systemd/system/dwu.service</b></p><p>Copiamo al suo interno le seguenti righe: <br /></p><ul style="text-align: left;"><li><b>[Unit]</b></li><li><b>Description=DireWolf uhf Deamon</b></li><li><b>After=network.target</b></li><li><b>After=sound.target</b></li><li><b>After=syslog.target</b></li><li><b> </b></li><li><b>[Service]</b></li><li><b>StandardOutput=append:/home/pi/dwconf/logu</b></li><li><b>StandardError=append:/home/pi/dwconf/logu</b></li><li><b>Type=simple</b></li><li><b>ExecStart=/usr/local/bin/direwolf -c /home/pi/dwconf/igu.conf</b></li><li><b>Restart=always</b></li><li><b>RestartSec=15</b></li><li><b>User=pi</b></li><li><b> </b></li><li><b>[Install]</b></li><li><b>WantedBy=multi-user.target</b></li></ul><p> </p><p><b>CTRL+O per salvare e successivamente CTRL+X per uscire</b> </p><p>Rendiamo effettive le modifiche per systemd, pena il mancato funzionamento dei file di avvio appena creati.<br /></p><p><b>sudo systemctl daemon-reload</b><br /> </p><p><span style="color: #660000;">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:</span></p><p><span style="color: #660000;"><b>sudo systemctl start dwv.service</b><br /></span> </p><p><span style="color: #660000;"><b>sudo systemctl start dwu.service</b></span> </p><p><span style="color: #660000;">Systemd permette di verificare lo stato dell'applicazione appena avviata con questo comando:</span></p><p><span style="color: #660000;"><b>sudo systemctl status dwv.service<br /></b></span> </p><p><span style="color: #660000;"><b>sudo systemctl status dwu.service</b></span> </p><p><span style="color: #660000;">Mentre per leggere l'output delle due istanze, beacon ricevuti, ripetizioni e quant'altro, usate il comando tail con l'opzione f:</span></p><p><span style="color: #660000;"><b>tail -f -n 100 /home/pi/dwconf/logv</b> Per le VHF</span></p><p><span style="color: #660000;"><span style="color: #660000;"><b>tail -f -n 100 /home/pi/dwconf/logu</b> Per le UHF</span></span></p><p><span style="color: #660000;">CTRL+C per uscire</span></p><p><span style="color: #660000;">Per fermare il programma nella banda desiderata:</span></p><p><span style="color: #660000;"><b>sudo systemctl stop dwv.service</b><br /></span> </p><p><span style="color: #660000;"><b>sudo systemctl stop dwu.service</b></span></p><p>Semplice e comodo! <br /></p><p> </p><p><b><span style="color: #20124d;">KISSUTIL </span></b><br /></p><p>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.</p><p>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. <br /></p><p>Creiamo le due cartelle:</p><ul style="text-align: left;"><li><b>cd</b></li><li><b>cd dwconf <br /></b></li><li><b>mkdir utilv</b></li><li><b>mkdir utilu</b> <br /></li></ul><p>Creiamo i due file di log anche per kissutil:</p><p><b>touch</b> <b>kissutilv.log</b> </p><p><b>touch</b> <b>kissutilu.log</b> </p><p>Stessa procedura fatta per i log di direwolf; creiamo i file per ruotarli e cancellarli.</p><p>Per le vhf:</p><p><b>sudo nano /etc/logrotate.d/kissutilv</b></p><p>Copiate al suo interno le seguenti righe:</p><ul style="text-align: left;"><li><b>/home/pi/dwconf/kissutilv.log {</b></li><li><b>daily</b></li><li><b>rotate 4</b></li><li><b>missingok</b></li><li><b>copytruncate</b></li><li><b>notifempty</b></li><li><b>create 0644 pi pi</b></li><li><b>}</b><br /></li></ul><p><b>CTRL+O per salvare e successivamente CTRL+X per uscire</b> </p><p></p><p>Per le uhf:</p><p><b>sudo nano /etc/logrotate.d/kissutilu</b></p><p>Copiate al suo interno le seguenti righe:</p><ul><li><b>/home/pi/dwconf/kissutilu.log {</b></li><li><b>daily</b></li><li><b>rotate 4</b></li><li><b>missingok</b></li><li><b>copytruncate</b></li><li><b>notifempty</b></li><li><b>create 0644 pi pi</b></li><li><b>}</b></li></ul><p><b>CTRL+O per salvare e successivamente CTRL+X per uscire</b> </p><p></p><p>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.</p><p><b>sudo nano /etc/systemd/system/utilkissv.service</b></p><p>Copiamo al suo interno le seguenti righe:</p><ul style="text-align: left;"><li><b>[Unit]</b></li><li><b>Description=Utilita kissutil vhf</b></li><li><b>After=network.target</b></li><li><b>After=sound.target</b></li><li><b>After=syslog.target</b></li><li><b> </b></li><li><b>[Service]</b></li><li><b>StandardOutput=null</b></li><li><b>StandardError=append:/home/pi/dwconf/kissutilv.log</b></li><li><b>Type=simple</b></li><li><b>ExecStart=/usr/local/bin/kissutil -p 8001 -f /home/pi/dwconf/utilv</b></li><li><b>Restart=always</b></li><li><b>RestartSec=20</b></li><li><b>User=pi</b></li><li><b> </b></li><li><b>[Install]</b></li><li><b>WantedBy=dwv.service</b><br /></li></ul><p><b>CTRL+O per salvare e successivamente CTRL+X per uscire</b> <br /></p><p>Per le uhf:</p><p><b>sudo nano /etc/systemd/system/utilkissu.service</b> <br /></p><p> <b>[Unit]</b></p><ul><li><b>Description=Utilita kissutil uhf</b></li><li><b>After=network.target</b></li><li><b>After=sound.target</b></li><li><b>After=syslog.target</b></li><li><b> </b></li><li><b>[Service]</b></li><li><b>StandardOutput=null</b></li><li><b>StandardError=append:/home/pi/dwconf/kissutilu.log</b></li><li><b>Type=simple</b></li><li><b>ExecStart=/usr/local/bin/kissutil -p 8011 -f /home/pi/dwconf/utilu</b></li><li><b>Restart=always</b></li><li><b>RestartSec=20</b></li><li><b>User=pi</b></li><li><b> </b></li><li><b>[Install]</b></li><li><b>WantedBy=dwu.service</b></li></ul><p> </p><p><b>CTRL+O per salvare e successivamente CTRL+X per uscire</b> <br /></p><p>Rendiamo anche qui effettive le modifiche per systemd, pena il mancato riconoscimento e funzionamento dei file appena creati<br /></p><b>sudo systemctl daemon-reload</b><b></b><p> </p><p>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.<br /> </p><p>Scaricate il file da questo link:</p><p><a href="https://drive.google.com/file/d/1iDe5YX7iAcVo_ZNbLfvIvjEApHXe61Lu/view?usp=sharing" target="_blank">filebeaconraw</a><br /> </p><p>Rendetelo eseguibile con:</p><b>chmod +x raw-ax</b><p>Editatelo con <b>nano raw-ax</b> <br /></p><p>Di seguito la descrizione delle righe da personalizzare:</p><ol style="text-align: left;"><li><b><span style="color: #20124d;">ps: Identifica se il simbolo primario o secondario nella tabella simboli aprs<br /> / per i simboli primari<br /> \ per i simboli secondari<br /> <br /></span></b></li><li><b><span style="color: #20124d;">symbol: Identifica il simbolo da visualizzare in mappa<br /><br /></span></b></li><li><b><span style="color: #20124d;">lat e long identificano la posizione in mappa.<br />Qui trovate tutti i formati https://www.sunearthtools.com/dp/toolsS/conversion.php?lang=it<br /> </span></b></li><li><b><span style="color: #20124d;">alt: Sempre tra virgolette, "/A=000120" identifica l'altezza SLM in piedi<br /> </span></b></li><li><b><span style="color: #20124d;">fromcall: inserite il nominativo da visualizzare in mappa<br /> </span></b></li><li><b><span style="color: #20124d;">dest: potete lasciarlo così. Documentatevi in rete per eventuali modifiche<br /> </span></b></li><li><b><span style="color: #20124d;">unproto: Percorso che seguirà il pacchetto secondo il new paradigma.<br />WIDE1-1,WIDE2-2 permetterà tre ripetizioni<br /> </span></b></li><li><b><span style="color: #20124d;">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.<br />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<br /><br /></span></b> DIGITS 0 1 2 3 4 5 6 7 8 9 Equation<br /> -------------------------------------------------------------------<br /> POWER 0, 1, 4, 9, 16, 25, 36, 49, 64, 81 watts SQR(P)<br /> HEIGHT 10,20,40, 80,160,320,640,1280,2560,5120 feet LOG2(H/10)<br /> GAIN 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 dB<br /> DIR 0,45,90,135,180,225,270, 315, 360, . deg (D/45)<b><span style="color: #20124d;"><br /> </span></b></li><li><b><span style="color: #20124d;">commento: Commento visualizzato nella bandierina informazioni mappa previsto dal sistema<br /> </span></b></li><li><b><span style="color: #20124d;">status: Identifica lo stato della stazione. Di solito su usa: Attivo, Connesso, QRT, QRV e via dicendo. Informazioni brevi sullo stato del nodo.<br /> </span></b></li><li><b><span style="color: #20124d;">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<br /> </span></b></li><li><b><span style="color: #20124d;">cartellavhf e cartellauhf identificano le cartelle preposte e precedentemente configurate in kissutil per l'invio via radio dei beacon personalizzati<br /><br /></span></b></li><li><b><span style="color: #20124d;">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<br /><br /> vhfenable=true<br /> uhfenable=<br /> vhfstatusenable=<br /> uhfstatusenable=<br /> </span></b></li><li><b><span style="color: #20124d;">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</span></b></li></ol><p><b>CTRL+O per salvare e successivamente CTRL+X per uscire</b> <br /></p><p>Per eseguirlo digitate:</p><ul style="text-align: left;"><li><b>./raw-ax</b></li></ul><p>Se tutto è corretto con direwolf e kissattach attivi, il beacon verrà immediatamente trasmesso via radio.</p><p>Buon divertimento.<br /> </p><p><br /> </p><p><br /> </p></div></div>Biagio La Fauci IT9FDPhttp://www.blogger.com/profile/17819145852822412886noreply@blogger.com0tag:blogger.com,1999:blog-2593594334868302719.post-71158446942603581502019-07-23T21:20:00.037+02:002022-04-17T19:48:25.743+02:00Direwolf, dbeacon, installazione con esempi di configurazione digi, igate, telemetria e beacon via radio<p>Ultima modifica 20 Gennaio 2021.<br />20 Genn. 2021: Inserita procedura installazione versione 1.6.</p><p>Direwolf è un programma AX25 packet modem-tnc, APRS
encoder/decoder, creato da WB2OSZ e scaricabile da <a href="https://www.github.com/wb2osz/direwolf" target="_blank">https://www.github.com/wb2osz/direwolf</a></p><p>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.<br />
<br />
Successivamente spiegherò brevemente come installare il protocollo ax25 e dbeacon, per inviare beacon via radio usando direwolf con semplici script bash e kissutil. <br />
<br />
Tutte le informazioni qui riportate potete trovarle nella cartella doc del progetto Direwolf.<br /><br />
<a href="https://github.com/wb2osz/direwolf/tree/master/doc" target="_blank">https://github.com/wb2osz/direwolf/tree/master/doc</a></p><p>Quanto prima tratterò kissutil, molto utile in caso si vogliano trasmettere beacon personalizzati.<br />Le opzioni kissutil le trovate a questo indirizzo: <a href="https://www.mankier.com/1/kissutil" target="_blank">https://www.mankier.com/1/kissutil</a><br /><br />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:<br />
<span style="color: #20124d;"><b><br /></b></span>
<span style="color: #20124d;"><b>Installiamo le librerie utili alla compilazione:</b></span><br />
</p><a name='more'></a><ul>
<li><b>sudo apt-get install libasound2-dev libudev-dev git cmake<br /></b></li>
</ul>
<b><span style="color: #20124d;">Scarichiamo e settiamo l'ultima versione stabile:</span></b><br />
<ul>
<li><b>cd </b></li>
<li><b>git clone https://www.github.com/wb2osz/direwolf</b></li>
<li><b>cd direwolf</b></li>
<li><b>git tag</b></li>
</ul><p>
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:</p><ul style="text-align: left;"><li><b>git checkout 1.6</b></li><li><b>mkdir build && cd build</b></li><li><b>cmake .. </b></li><li><b>make -j4</b></li><li><b>sudo make install</b></li><li><b>make install-conf</b></li><li><b>sudo ldconfig<br /></b> </li></ul><p>Fatto! Adesso vediamo, invece, come installare la versione 1.5 e precedenti:<br /></p><ul style="text-align: left;"><li><b>git checkout 1.5</b></li><li><b>make</b></li><li><b>sudo make install</b></li><li><b>make install-conf</b></li><li><b>sudo ldconfig </b></li></ul><ul>
</ul><p>Fatto! Da questo momento in poi le configurazioni trattate sono uguali per la 1.6 e versioni precedenti. <br /></p><p>Spostiamoci nella home:<br />
</p><ul>
<li><b>cd</b> </li>
</ul>
Creiamo una copia del file di configurazione originale:<br />
<ul>
<li><b>cp direwolf.conf direwolf.conf.old</b></li>
</ul>
Installiamo il protocollo ax25, socat e dbeacon:<br />
<ul>
<li><b>sudo apt-get install ax25-apps </b><b><b>ax25-tools </b></b><b><b><b>libax25 </b></b></b><b><b><b><b>libax25-dev </b></b></b></b><b><b><b><b><b>dbeacon socat</b></b></b></b></b></li>
</ul>
<br />
<span style="color: #741b47;"><b>Primo esempio, igate vhf.</b></span><br />
<br />
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:<br />
<ul>
<li><b>mkdir dwconf</b></li>
<li><b>cd dwconf</b></li>
<li><b>nano ig.conf</b> </li>
</ul>
Incollate nell'editor le seguenti righe: <br />
<br />
<b>ADEVICE0 plughw:1,0<br />ACHANNELS 1<br />CHANNEL 0<br />MYCALL MYCALL-10<br />MODEM 1200<br />DCD GPIO 24</b><br />
<b><br /></b>
<b>AGWPORT 8000<br />KISSPORT 8001</b><br />
<b></b><br />
<br />
<span style="color: #0b5394;"># La seguente è un'unica riga</span><br />
<b>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"</b><br />
<b><br /></b>
<b>IGSERVER euro.aprs2.net<br />IGLOGIN MYCALL-10 idcall<br />IGTXLIMIT 6 1</b><br />
<br />
Salvate il file con<b> ctrl+o</b>,<b> ctrl+x </b>per uscire.<br />
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.<br />
<br />
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:<br />
<br />
<a href="http://www.aprs.org/symbols/symbols-new.txt" target="_blank">http://www.aprs.org/symbols/symbols-new.txt</a><br />
<br />
A seguire le due righe AGWPORT e KISSPORT. Queste servono per connettere direwolf ad altri programmi come Xastir, UI-View e altro ancora.<br />
<br />
Successivamente la sezione beacon. Modificate i valori con i vostri dati corretti. Per ricavare la posizione potete usare aprs.fi o <a href="https://www.sunearthtools.com/dp/tools/conversion.php?lang=it" target="_blank">questo sito</a> più in dettaglio. Aggiungete qualche info in più nel commento, se volete, un'email per esempio.<br />
<br />
Nella riga IGLOGIN inserite le credenziali di connessione ai server aprs, nominativo-ssid e rispettiva password calcolabile facilmente <a href="https://apps.magicbug.co.uk/passcode/" target="_blank">qui</a><br />
<br />
<span style="color: #20124d;"><b>Connessioni:</b></span><br />
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.<br />
<br />
Connettetevi via terminale con linux o Putty da windows. Aprite due sessioni ssh. <br />
<br />
Per verificare la corretta numerazione assegnata alla scheda audio avviate <b>alsamixer</b> 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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
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.<br />
<br />
Per avviare direwolf usate questo comando:<br />
<br />
<b>direwolf -t 0 -c ~/dwconf/ig.conf</b><br />
<br />
<b>-t 0</b> elimina i colori dai pacchetti ricevuti e <b>-c</b> identifica il percorso del file di configurazione da usare.<br />
<br />
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. <br />
<br />
<span style="color: #20124d;"><b>Configurazione semplice TNC</b></span><br />
<br />
<b>ADEVICE0 plughw:1,0<br />ACHANNELS 1<br />CHANNEL 0<br />MYCALL MYCALL-10<br />MODEM 1200</b><br />
<b><b><b>PTT GPIO 5</b></b></b><br />
<b>DCD GPIO 24</b><br />
<b><br /></b>
<b>AGWPORT 8000<br />KISSPORT 8001</b><br />
<br />
<br />
<span style="color: #741b47;"><b>Secondo esempio, igate vhf-uhf.</b></span><br />
<br />
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. <br />
<br />
<b>ADEVICE0 plughw:1,0<br />ACHANNELS 1<br />CHANNEL 0<br />MYCALL MYCALL-10<br />MODEM 1200<br />DCD GPIO 24<br /><br />ADEVICE1 plughw:2,0<br />ACHANNELS 1<br />CHANNEL 2<br />MYCALL MYCALL-10<br />MODEM 1200<br />DCD GPIO 22<br /><br />AGWPORT 8000<br />KISSPORT 8001</b><br />
<br />
<span style="color: #0b5394;"># La seguente è un'unica riga</span><br />
<b>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"</b><br />
<b><br /></b>
<b>IGSERVER euro.aprs2.net<br />IGLOGIN MYCALL-10 idcall<br />IGTXLIMIT 6 1</b><br />
<br />
Seguite le istruzioni sopra, nella sezione <b>igate vhf</b> per le regolazioni e l'individuazione delle schede audio.<br />
<br />
<b><br /></b>
<b><span style="color: #741b47;">Terzo esempio, digi igate vhf-uhf e configurazioni varie digi.</span></b><br />
<br />
<b># VHF</b><br />
<b>ADEVICE0 plughw:1,0<br />ACHANNELS 1<br />CHANNEL 0<br />MYCALL MYCALL-2<br />MODEM 1200</b><b><b> </b></b><br />
<b><b>PTT GPIO 5</b></b><br />
<b>DCD GPIO 24</b><br />
<b>DEDUPE 10 </b><br />
<b>TXDELAY 20<br />#TXTAIL 10</b><br />
<b><br /></b>
<b># UHF<br />ADEVICE1 plughw:2,0<br />ACHANNELS 1<br />CHANNEL 2<br />MYCALL MYCALL-2<br />MODEM 1200<br />PTT GPIO 6 </b><br />
<b>DCD GPIO 22</b><br />
<b>DEDUPE 10 </b><br />
<b>TXDELAY 20</b><br />
<b>#TXTAIL 10<br /><br />AGWPORT 8000<br />KISSPORT 8001</b><br />
<br />
<span style="color: #0b5394;"># La seguente è un'unica riga</span><br />
<b>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"</b><br />
<br />
<b>DIGIPEAT 0 0 ^WIDE[1]-[1]$|^TEST$ ^WIDE[2]-[12]$ TRACE<br />DIGIPEAT 2 2 ^WIDE[1]-[1]$|^TEST$ ^WIDE[2]-[12]$ TRACE </b><br />
<b><br /></b>
<b>IGSERVER euro.aprs2.net<br />IGLOGIN MYCALL-10 idcall<br />IGTXLIMIT 6 1</b><br />
<br />
Come prima, anche qui il file è molto simile ai precedenti. Nei primi due blocchi sono stati aggiunti il <b>PTTGPIO</b> 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.<br />
<br />
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.<br />
<br />
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. <br />
<br />
A seguire <b>^WIDE[2]-[12]$ TRACE</b>. 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.<br />
<br />
<br />
<b><span style="color: #20124d;">Esempio di fill-in digi:</span></b><br />
<br />
<b>DIGIPEAT 0 0 ^WIDE1-1$ ^WIDE1-1$</b><br />
<br />
Ripete
e scala solo i beacon ricevuti direttamente da una stazione
trasmittente contenente nel percorso WIDE1-1. Digipeater fill-in, riempimento.<br />
<br />
Mentre questa potrebbe essere una configurazione digi d'altura:<br />
<b>DIGIPEAT 0 0 ^WIDE[3-7]-[1-7]$|^TEST$ ^WIDE[2]-[12]$ TRACE</b><br />
<br />
Nel
caso non serva l'igate, commentate con un cancelletto le ultime tre
righe del file riguardante la connessione ai server aprs.fi.<br />
<br />
<br />
<span style="color: #20124d;"><span style="color: #741b47;"><b>Altro sulle schede audio</b></span></span> <br />
<br />
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.<br />
<br />
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 <b>ACHANNELS 1</b> rispettivamente <b>CHANNEL 0 </b>per la prima e <b>CHANNEL 2</b> per la seconda nel caso stiate usando un sistema doppia banda.<br />
<b></b><br />
<br />
<span style="color: #741b47;"><b>Impostazione del beacon, esempi.</b></span><br />
Passiamo adesso alla configurazione e personalizzazione della sezione beacon.<br />
Le possibilità sono tante, faccio qualche esempio per rendere l'idea:<br />
<br />
<span style="color: #0b5394;"># La seguente è un'unica riga</span><br />
<b>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"</b><br />
<br />
<span style="color: #0b5394;"># La seguente è un'unica riga</span><br />
<b><b>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"</b></b><br />
<br />
<span style="color: #0b5394;"># La seguente è un'unica riga</span><br />
<b><b><b>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"</b> </b> </b><br />
<br />
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.<br />
<br />
Questa configurazione invia un primo beacon dopo 25 secondi dall'attivazione del programma con l'instradamento <b>via=WIDE1-1,WIDE2-1</b>, verrà così ripetuto da eventuali digi in ascolto fino un massimo di due volte.<br />
<br />
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.<br />
<br />
<span style="color: #20124d;"><b>Altro esempio:</b></span><br />
<br />
<span style="color: #0b5394;"># La seguente è un'unica riga</span><br />
<b>PBEACON </b><b><b>via=WIDE1-1,WIDE2-1</b> delay=0:30 every=30:00 symbol=\# overlay=D lat=00.0000N long=000.0000E comment="Igate 144.800 432.500"</b><br />
<br />
<span style="color: #0b5394;"># La seguente è un'unica riga</span><br />
<b>PBEACON </b><b><b>via=WIDE1-1,WIDE2-1</b> delay=15:30 every=30:00 symbol=\# overlay=I lat=00.0000N long=000.0000E comment="Igate 144.800 432.500"</b><br />
<br />
In questo caso il primo beacon verrà inviato dopo trenta secondi dall'avvio del programma, ma con la <b>D</b> più grande del simbolo digi standard.<br />
Dopo un quarto d'ora verrà inviato il secondo beacon, questa volta con la <b>I</b> all'interno del simbolo digi.<br />
La rotazione del simbolo permette di identificare facilmente un digi igate in mappa, anche se in realtà la <b>I</b> sarebbe più che sufficiente.<br />
<br />
<br />
<span style="color: #741b47;"><b>Impostazioni kissattach ax25, socat e beacon via radio</b></span><br />
<br />
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. <br />
<br />
Configuriamo con <b>sudo nano /etc/ax25/axports</b> il file axports in questo modo:<br />
<br />
# /etc/ax25/axports<br />
#<br />
# The format of this file is:<br />
#<br />
# name callsign speed paclen window description<br />
#<br />
#1 OH2BNS-1 1200 255 2 144.675 MHz (1200 bps)<br />
#2 OH2BNS-9 38400 255 7 TNOS/Linux (38400 bps)<br />
<br />
ax0 MYCALL-ssid 1200 255 2 144.800 MHz (1200 bps)<br />
<br />
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'è.<br />
<br />
Fate in modo da far corrispondere l'SSID con quello impostato nell'igate, digi o semplice tnc.<br />
<br />
<br />
<span style="color: purple;"><b>In costruzione...</b></span><br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />
<br />Biagio La Fauci IT9FDPhttp://www.blogger.com/profile/17819145852822412886noreply@blogger.com1tag:blogger.com,1999:blog-2593594334868302719.post-55065692967135590442017-09-17T19:30:00.004+02:002022-04-17T19:50:30.457+02:00Direwolf, sperimentiamo un igate APRS con raspberry<p>Pubblicato il 17 sett. 2017<br />
Ultima modifica 9 sett. 2018</p><p>Direwolf è un programma AX25 packet modem-tnc, APRS
encoder/decoder, creato da WB2OSZ e scaricabile da <a href="https://www.github.com/wb2osz/direwolf" target="_blank">https://www.github.com/wb2osz/direwolf</a></p><p>La realizzazione di un semplice igate APRS in ricezione
necessita di una radio vhf sintonizzata sulla frequenza nazionale aprs 144.800, una chiavetta audio usb e un raspberry con installato raspbian, meglio se la versione due o tre. Sarà possibile impostare il sistema in dual rx, diciamo cosi, doppio igate, sintonizzando un secondo ricevitore sulla frequenza uhf 432.500 (poco diffusa in verità) collegando una seconda scheda audio usb per la sezione uhf. <br />
<br />
Ho voluto scrivere questa guida come promemoria e per chi volesse sperimentare, in maniera semplice ed economica, un I-GATE aprs con poca spesa.<br />
<br />
Cercherò di descrivere in dettaglio tutti i passaggi riguardanti l'installazione e la
configurazione. Chiaramente chi ha avuto modo di usare linux sarà
avvantaggiato, ma non sarà complicato anche per chi non lo conosce affatto.<br />
<br />
Il programma include una serie di funzionalità come i-gate, digipeater, APRStt gateway e altro ancora. Qui mi limiterò a spiegare l'installazione, una configurazione minimale per la decodifica dei pacchetti aprs, l'attivazione di un i-gate, l'invio di un beacon via tcp/ip con le coordinate del simbolo in mappa aprs.fi e l'attivazione del PTT. Inutile dirlo, per la funzionalità I-GATE è necessaria una connessione internet.<br />
<br />
</p><a name='more'></a>Una volta configurato, direwolf sarà utilizzabile anche con Xsastir e UI-View32.<br />
<br />
Questo il link al progetto Direwolf:<br />
<a href="https://github.com/wb2osz/direwolf">https://github.com/wb2osz/direwolf</a><br />
<br />
Rimuoviamo pulseaudio, se presente, e facciamo un po di pulizia:<br />
<ul>
<li><b>sudo apt-get remove --purge pulseaudio</b></li>
<li><b>sudo apt-get autoremove</b></li>
<li><b>rm -rf /home/pi/.pulse</b></li>
<li><b>sudo reboot</b></li>
</ul>
Installiamo il necessario per la compilazione e l'installazione. Alcuni pacchetti presenti nel comando successivo, anche se non necessari, potrebbero tornare utili nel caso vogliate installare svxlink. L'installazione non comporta alcun appesantimento significativo in termini di spazio occupato e processi attivi, ma avremo la certezza di non incappare in errori e dipendenze mancanti. Copiate e incollate sul terminale tutto il seguente blocco e date invio:<br />
<ul>
<li><b>sudo
apt-get install build-essential sigc++ gcc g++ make cmake
libgcrypt-dev libgsm1-dev libsigc++-2.0-dev tcl-dev libspeex-dev
libasound2-dev libpopt-dev libssl-dev libopus-dev groff tcl8.5-dev
tk8.5-dev git</b></li>
</ul>
Impiegherà qualche minuto, al termine riavviate:<br />
<ul>
<li><b>sudo shutdown -r now</b></li>
</ul>
Questo il link alla guida ufficiale riguardante l'installazione su raspberry: <a href="https://github.com/wb2osz/direwolf/blob/master/doc/Raspberry-Pi-APRS.pdf" target="_blank">https://github.com/wb2osz/direwolf/blob/master/doc/Raspberry-Pi-APRS.pdf</a><br />
<br />
Installiamo direwolf:<br />
<ul>
<li><b>sudo apt-get install libasound2-dev</b></li>
<li><b>cd </b></li>
<li><b>git clone https://www.github.com/wb2osz/direwolf</b></li>
<li><b>cd direwolf</b></li>
</ul>
A questo punto possiamo decidere quale versione installare, se l'ultima stabile, una precedente, oppure ancora una di sviluppo per testarne le nuove funzionalità. Consiglio di installare la versione stabile più recente. Con il comando successivo visualizzerete tutte le versioni disponibili:<br />
<ul>
<li><b>git tag</b></li>
</ul>
Queste le versioni disponibili a settembre 2017:<br />
<br />
1.0<br />
1.1<br />
1.2<br />
1.3<br />
1.3-beta<br />
1.3-dev-F<br />
1.3-dev-I<br />
1.3-dev-K<br />
1.4<br />
1.4-beta<br />
1.4-dev-D<br />
1.4-dev-E<br />
<br />
Nella pagina del progetto: <a href="https://github.com/wb2osz/direwolf" target="_blank">https://github.com/wb2osz/direwolf</a> troverete ogni genere di informazione. Le guide si trovano nella cartella doc.<br />
<br />
Installiamo l'ultima versione stabile, la 1.4 a Giugno 2017.<br />
<ul>
<li><b>git checkout 1.4</b></li>
<li><b>make</b><br /><br />Impiegherà qualche minuto... al termine verrà suggerito, a terminale, il comando successivo, eseguiamo:<br /><b> </b></li>
<li><b>sudo make install</b></li>
</ul>
Fatto! Concludiamo l'installazione con il comando:<br />
<ul>
<li><b>make install-conf </b></li>
</ul>
Se tutto è andato a buon fine possiamo effettuare una prima configurazione minimale, ci consentirà di vedere i pacchetti aprs ricevuti.<br />
<br />
Torniamo nella nostra home digitando <b>cd</b> e invio.<br />
<br />
Facciamo subito una copia del file di configurazione, utile riferimento in caso di errori accidentali nella modifica dello stesso.<br />
<ul>
<li><b>cp direwolf.conf direwolf.conf.old</b></li>
</ul>
Dando il comando ls -l vedrete una lista di file e cartelle. I nostri file sono direwolf.conf e direwolf.conf.old. Come già detto, in caso di errore nella configurazione del file direwolf.conf, fate sempre riferimento alla copia dell'originale, <b>direwolf.conf.old,</b> facendo però attenzione a non modificarlo.<br />
<br />
Editiamo il file con l'editor nano:<br />
<ul>
<li><b>nano direwolf.conf</b></li>
</ul>
Scorrendo il file con le frecce, il primo valore da impostare è la scheda audio. Togliamo il cancelletto iniziale alla riga successiva:<br />
<b><br class="Apple-interchange-newline" />ADEVICE plughw:1,0</b><br />
<br />
Uno spaccato della sezione interessata:<br />
------------------------------------------------------------------------------------<br />
# ADEVICE plughw:1,0<br />
<br />
# Starting with version 1.0, you can also use "-" or "stdin" to<br />
# pipe stdout from some other application such as a software defined<br />
# radio. You can also specify "UDP:" and an optional port for input.<br />
# Something different must be specified for output.<br />
<br />
<b>ADEVICE - plughw:1,0</b><br />
# ADEVICE UDP:7355 default<br />
<br />
<br />
<br />
#<br />
# Number of audio channels for this souncard: 1 or 2.<br />
#<br />
<br />
ACHANNELS 1<br />
#ACHANNELS 2<br />
------------------------------------------------------------------------------------<br />
<br />
Il primo numero dopo i due punti, identifica l'indirizzo numerico assegnato dal sistema alla scheda audio usb. Verificatelo digitando sul terminale <b>alsamixer</b> e successivamente il tasto <b>F6</b>. Di solito alla <b>prima scheda audio usb</b> viene assegnato il numero 1, ma alcuni sistemi la posizionano a zero o numeri superiori. Impostate quello corretto. Dopo la virgola va bene lo zero.<br />
<br />
Scorriamo ancora il file direwolf.conf. Alla sezione <b>MYCALL</b> sostituite <b>NOCALL</b> con il vostro nominativo in maiuscolo. Questo sarà il nominativo visualizzato in mappa aprs.fi.<br />
<br />
<b>MYCALL VOSTRONOMINATIVO</b><br />
<br />
<br />
<br />
<b>Impostazione PTT</b><br />
<br />
<span style="color: red;">Attenzione, i pin GPIO del raspberry sono
collegati direttamente al processore, senza protezione alcuna. Con ritorni rf, </span><span style="color: red;"><span style="color: red;">su uno qualsiasi di questi pin, </span>o tensioni superiori a 3,3 volt si rischia di renderlo inutilizzabile! Usate un fotoaccoppiatore, sempre!</span><br />
<br />
Per abilitare il pin GPIO25 basta togliere il cancelletto dalla riga interessata:<br />
<br />
<b>PTT GPIO 25</b><br />
<br />
Utile nel caso vogliate abilitare la funzionalità digi, oppure per rendere disponibile il ptt in modalità pseudo terminal, agw kiss e utilizzare cosi Direwolf anche in tx da remoto con altri software.<br />
<br />
A questo punto basterà avviare il programma digitando <b>direwolf</b>. Sul terminale vedrete i servizi attivati e i pacchetti decodificati man mano che vengono ricevuti. Per fermarlo <b>ctrl+c</b>.<br />
<br />
Se avete difficoltà a leggere le righe per via dello sfondo chiaro, predefinito, avviate direwolf con l'opzione <b>-t 0</b><br />
<br />
<b>direwolf -t 0</b><br />
<br />
Visualizzerete le righe molto meglio, ma ogni colore e simbolo ha un significato preciso. Per maggiori info consultate la guida.<br />
<br />
Il led della scheda audio comincerà a lampeggiare, segno di un corretto funzionamento.<br />
<br />
Per visualizzare tutte le opzioni disponibili digitate <b>man direwolf, </b>nella shell, <b>q</b> per uscire.<br />
<br />
<span style="color: #990000;"><span style="color: #990000;">Se usate la versione 3B del raspberry, <u>c</u></span><u>onnettetelo esclusivamente via lan</u>. Non usate la connessione wifi integrata e non lasciatela attiva, pena il blocco dell'intero sistema. Il blocco è casuale in termini temporali e si presenta sempre entro la prima ora di funzionamento. Testato solo con raspbian jessie.</span><br />
<br />
<span style="color: #990000;">Nel caso di utilizzo anche in TX, il blocco porterà lo stato del GPIO25 a +3,3V, molto rischioso per radio non adeguatamente raffreddate e il conseguente disturbo del canale aprs con portante fissa. Prevedete sempre un timer fra GPIO25 e il circuito del ptt per la radio. In alternativa,</span><span style="color: #990000;"> se presente,</span><span style="color: #990000;"> potete attivate la funzione taglia lingua </span><span style="color: #990000;">a pochi secondi</span><span style="color: #990000;"> </span><span style="color: #990000;">nel menù della radio</span><span style="color: #990000;">.</span><br />
<br />
Una semplice soluzione di temporizzatore la trovate al link sopra, sul sito del progetto, nella guida di installazione su raspberry. Verso la fine del documento vedrete lo schema di un semplice temporizzatore realizzato con un ne555 e pochi altri componenti.<br />
<br />
Per disabilitare la scheda wifi all'avvio editate il file rc.local con:<br />
<br />
<b>sudo nano /etc/rc.local</b><br />
<br />
e inserite le due righe seguenti prima di exit 0:<br />
<b><br /></b>
<b>sleep 2</b><br />
<b>ifconfig wlan0 down</b><br />
<br />
In quest'ordine:<br />
<br />
---------------------------------------------------------------------<br />
<br />
# Print the IP address<br />
_IP=$(hostname -I) || true<br />
if [ "$_IP" ]; then<br />
printf "My IP address is %s\n" "$_IP"<br />
fi<br />
<div>
<br /></div>
<b>sleep 2</b><br />
<b>ifconfig wlan0 down</b><br />
<br />
exit 0<br />
---------------------------------------------------------------------<br />
<div>
<br />
<b>ctrl+o</b> per salvare <b>ctrl+x</b> per uscire dall'editor.<br />
<br />
<br /></div>
<div>
</div>
<b><span style="font-size: large;">Attiviamo l'I-Gate e configuriamo il beacon con l'icona visibile in mappa aprs.fi</span></b><br />
<br />
Scorriamo il file fino alla sezione Internet Gateway. Togliamo il cancelletto alla riga IGSERVER e modificamola cosi:<br />
<br />
<b>IGSERVER euro.aprs2.net</b><br />
<div>
<br />
Ottenete adesso il vostro id associato al nominativo inserendolo a questo link:</div>
<br />
<a href="http://apps.magicbug.co.uk/passcode/" target="_blank">http://apps.magicbug.co.uk/passcode/</a><br />
<br />
Segnate l'id ottenuto.<br />
Scorrete ancora il file direwolf.conf verso il basso e togliete il commento a questa riga:<br />
<b><br /></b><b>IGLOGIN </b><b><b>WB2OSZ-5</b></b><b> 12345..</b><br />
<br />
Sostituite <b>WB2OSZ-5</b> con il vostro nominativo e <b>12345..</b> con il vostro id.<br />
<br />
Passiamo adesso al nome visualizzato in mappa.<br />
Fatevi un'idea chiara su come impostare correttamente il vostro ssid leggendo la pagina al seguente link:<br />
<br />
<a href="http://www.aprs.org/aprs11/SSIDs.txt" target="_blank">http://www.aprs.org/aprs11/SSIDs.txt</a> <br />
<br />
Cerchiamo di fare le cose per bene; in mappa aprs si trovano spesso ssid strampalati e note, commenti, poco esplicativi.<br />
<br />
I beacon verranno inviati in mappa con il nominativo impostato nella sezione iniziale del file, <b>MYCALL NOACALL</b>. Pertanto se utilizzate il vostro nominativo di stazione, o sezione, inserite -10 per l'i-gate.<br />
<div>
<br /></div>
<b>Settiamo il beacon</b><br />
<br />
Fate riferimento alla guida ufficiale per conoscere in dettaglio le tante opzioni disponibili per questa sezione. Qui mi limiterò a far comparire l'icona igate, solo rx.<br />
<br />
Sempre nella sezione riguardante l'I-GATE, copiate e incollate la seguente riga sotto <b>IGLOGIN </b><b><b>WB2OSZ-5</b></b><b> 12345...</b><br />
<br />
<b>PBEACON sendto=IG delay=0:40 every=20 symbol=R& alt=40 lat=41.0203N long=011.2839E comment="IGate solo RX"</b><br />
<br />
Sostituite i valori di <b>lat</b> e <b>long</b> nel precedente esempio con i vostri corretti.<br />
<br />
Per ricavare le coordinate esatte usate questa mappa:<br />
<br />
<a href="https://www.sunearthtools.com/dp/tools/conversion.php?lang=it" target="_blank">https://www.sunearthtools.com/dp/tools/conversion.php?lang=it</a><br />
<b></b><br />
Usate la riga corretta corrispondente al formato nell'esempio sopra.<br />
<br />
<br />
Andiamo adesso a vedere in dettaglio le voci di questa sezione:<br />
<br />
<b><br /></b>
<b>PBEACON </b>Personal beacon.<br />
<b><br /></b>
<b>sendto</b> specifica dove inviare il beacon, in questo caso <b>IG</b>, internet gateway, via tcp/ip.<br />
<br />
<b>delay</b> setta il ritardo di invio del primo beacon dopo l'attivazione del programma. Nell'esempio è settato a 40 secondi. Va bene cosi.<br />
<br />
<b>every</b> setta l'intervallo di invio del beacon. Nell'esempio l'ho impostato a venti minuti. Per conoscenza, la pagina web aprs.fi, su browser, visualizza i punti mappa per un'ora dall'ultimo aggiornamento, altri software visualizzano gli ultimi trenta minuti. Ritengo inutile una riduzione di questo intervallo, servirebbe solo a generare inutile traffico dati. Venti minuti vanno più che bene.<br />
<br />
<b>symbol </b>specifica l'icona visualizzata. In questo caso <b>&</b> visualizza un quadratino nero ed <b>R</b> la lettera bianca al suo interno. RX solo IGATE. Questo è il simbolo corretto per un I-Gate, solo rx<br />
<br />
Qui trovate l'elenco aggiornato con tutti i simboli:<br />
<a href="http://www.aprs.org/symbols/symbols-new.txt" target="_blank">http://www.aprs.org/symbols/symbols-new.txt</a><br />
<br />
<b>alt </b>specifica l'altitudine in metri.<br />
<br />
<b>lat</b> e <b>long</b> specificano la posizione.<br />
<br />
Il testo scritto in <b>comment</b> verrà visualizzato in verde nella bandierina delle info in mappa aprs.fi. Potete scrivere per esempio una e-mail di riferimento, sempre utile e spesso assente, successivamente RX solo IGATE.<br />
<br />
<b>Attiviamo direwolf all'avvio del raspberry.</b><br />
<br />
Per attivare direwolf all'avvio provate le seguenti soluzioni:<br />
<ol>
<li>Aggiungete in fondo al file <b>/etc/rc.local</b> il comando per avviarlo, prima di <b>exit 0</b>. <br /><br />Editiamo il file:<br /><br /><ul>
<li><b>sudo nano /etc/rc.local</b></li>
</ul>
<br />Aggiungiamo in fondo, prima di <b>exit 0</b>:<br /><br /><ul>
<li><b>sleep 2</b></li>
<li> <b>/usr/local/bin/direwolf -t 0 -c /home/pi/direwolf.conf > /dev/null 2>&1</b></li>
</ul>
</li>
<li>Fatto! Non è necessario configurare altro se non avete la necessità di memorizzare il traffico. Se volete invece creare un file di log con tutti i beacon ricevuti, dovrete sostituire il precedente comando con il seguente e continuare a leggere i passi successivi:</li>
<li><b>usr/local/bin/direwolf -t 0 -c /home/pi/direwolf.conf >> /home/pi/logdirewolf &</b><br /> </li>
<li>Come detto prima, cosi facendo verrà creato il file logdirewolf e verranno scritti al suo interno tutti i beacon ricevuti. Necessariamente bisogna fare in modo che vengano cancellati periodicamente seguendo la logica di logrotate, altrimenti la memoria dalla sd del raspberry verrà completamente saturata.<br /> </li>
<li>Creiamo adesso il file di log nella home.<br /><br />Per essere sicuri di creare il file nella home pi, digitate <b>cd </b>e date invio. Il file verrà creato con il seguente comando:<br /><br /><b>touch logdirewolf</b></li>
<br />
<li><span style="color: red;">Come detto prima, il prossimo passaggio è fondamentale per ruotare e successivamente eliminare i file di log più vecchi</span>. Con questo sistema i file di log vengono giornalmente ruotati fino ad un massimo di quattro per poi essere definitivamente cancellati. In quest'ordine; logdirewolf, logdirewolf.1 logdirewolf.2 e cosi via. Cosi facendo, come detto prima, tutto il traffico ricevuto verrà scritto nel file logdirewolf.<br /><span style="color: #990000;"><b></b></span><br />Creiamo il file che si occuperà della rotazione:<br /><br /><b>sudo nano /etc/logrotate.d/logdw</b><br /><br />Copiamo al suo interno le seguenti righe rispettando i ritorni a capo e la posizione delle parentesi graffe, potete fare copia incolla, se state usando il terminale, potete incollarlo tenendo premuto contemporaneamente Ctrl+Maiuscolo e v:<br /><br /><b>/home/pi/logdirewolf {<br /> daily<br /> rotate 4<br /> missingok<br /> copytruncate<br /> notifempty<br /> create 0644 pi pi<br />}</b><br /><br />Cosi facendo, se il vostro raspberry sarà acceso alle 6:45 di ogni mattino, il file di log verrà ruotato da logdirewolf a logdirewolf.1 e cosi via fino a quattro per poi essere cancellato.</li>
</ol>
Bene, per visualizzare il file di log, <b>logdirewolf</b>, mentre viene scritto dal programma date questo comando:<br />
<b><b><br />tail -f -n 100 /home/pi/logdirewolf</b> </b><br />
<br />
<b>Altra soluzione s</b><b>e non volete creare un file di log all'avvio del programma.</b><br />
<br />
Procedete cosi. <br />
<br />
Create un file, start-dw nella vostra home pi con questi comandi:<br />
<b><br /></b>
<b>cd </b>per tornare nella home.<br />
<b></b><br />
<b>nano start-dw </b>per creare il file.<br />
<b></b><br />
Copiate le seguenti righe al suo interno:<br />
<br />
<b>#! /bin/bash</b><br />
<b>/usr/local/bin/direwolf -c /home/pi/direwolf.conf > /dev/null 2>&1 &</b><br />
<div>
<br /></div>
<div>
<b>ctrl+o</b> per salvare <b>ctrl+x</b> per uscire dall'editor.</div>
<div>
<br /></div>
<div>
Rendiamo eseguibile il file con:</div>
<div>
<b>chmod +x start-dw</b></div>
<div>
<br /></div>
Adesso editiamo il file <b>rc.local</b> con <b>sudo nano /etc/rc.local</b> e inseriamo prima di exit 0 queste righe:<br />
<b><br /></b>
<b>sleep 2</b><br />
<b>/home/pi/start-dw &</b><br />
<br />
Fatto! Se avete seguito tutti i passaggi alla lettera, ed io non ho commesso errori nel descriverli, il vostro igate dovrebbe attivarsi all'avvio del sistema. Verificate se il led della scheda audio usb lampeggia e successivamente verificate il punto mappa su aprs.fi.<br />
<br />
Alcune considerazioni riguardo i livelli audio, l'interfacciamento con la scheda audio usb e il mixer alsamixer.<br />
<br />
Non connettete l'uscita audio della
radio, altoparlante o auricolare che sia, direttamente all'ingresso mic
della scheda audio usb. Interponete in serie al polo caldo una resistenza di alcune decine di
Kohm e un condensatore da 100 nano. 33Kohm dovrebbe
già andar bene, eventualmente aumentate o diminuite il valore empiricamente, ma di solito, per ottenere un giusto livello, vengono raggiunti e superati i 100K. Aggiungere un trimmer non guasterebbe.<br />
<br />
Fate la stessa cosa per l'uscita audio usb verso l'ingresso mic della radio. In questo caso bastano un paio di kohm e sempre un condensatore da 100 nano. A dire il vero, per fare le cose per bene,
l'interfacciamento corretto prevede l'isolamento galvanico tra radio e
scheda audio usb con l'uso di trasformatori audio 1:1 600 ohm.<br />
<br />
Stessa cosa per il ptt, dovreste usare, per sicurezza, un fotoaccoppiatore. In giro per il web si trovano tante interfacce per modi digitali ed
esempi, più o meno semplici per una soluzione ottimale.<br />
<br />
Non
esagerate con il livello del volume della radio e lasciate lo squelch
aperto. Alcune radio, in particolare le cinesi, sono un po lente nella
commutazione squelch e per questo potreste non ricevere
correttamente i pacchetti iniziali del beacon.<br />
<br />
Regolate i livelli audio da shell di gitando <b>alsamixer</b> sul terminale.<br />
<br />
Successivamente <b>F6</b>, visualizzerete tutte le schede audio presenti.<br />
Di
solito sono due, quella integrata nel raspberry, solo audio out, e la
chiavetta audio usb.<br />
<br />
Spostatevi con le frecce sulla scheda audio usb e date invio.<br />
<br />
Successivamente <b>F5</b> per visualizzare
tutti i cursori.<br />
<br />
L'ingresso microfono
viene regolato dal cursore Capture e non mic.<br />
<br />
Lasciatelo a zero e "giocate" sul volume della radio.<br />
<br />
questo livello va
incrementato solo in presenza di segnali bassi, preamplificati (uscita 1200-9600 baud ecc.).<br />
<br />
L'uscita volume audio altoparlante o cuffia della radio regolatela sempre
partendo dal minimo, aumentando poco alla volta finché non vedrete
comparire i pacchetti nella shell man mano che vengono ricevuti. <b>Esc</b> per uscire da <b>alsamixer</b>.<br />
<br />
Buon divertimento.<br />
<br />
<br />
I seguenti comandi installano il protocollo AX25 utile a collegare in pseudoterminal direwolf avviato con l'opzione -p, KISS mode:<br />
<br />
sudo apt-get install ax25-apps<br />
<br />
sudo apt-get install ax25-tools<br />
<br />
sudo apt-get install libax25<br />
<br />
sudo apt-get install libax25-dev<br />
<br />
Mi riprometto di scrivere una breve guida sul protocollo ax25, direwolf e kissattach. <br />
<br />
<b> </b><br />
<ul>
</ul>
Biagio La Fauci IT9FDPhttp://www.blogger.com/profile/17819145852822412886noreply@blogger.com2tag:blogger.com,1999:blog-2593594334868302719.post-91286239021691575332017-09-17T19:25:00.001+02:002017-09-17T19:25:48.197+02:00Configurazioni iniziali RaspbianPreparate una scheda sd con l'ultimo sistema
operativo raspbian. Non entro nel dettaglio su come fare, sul forum ufficiale
e in rete si trova tanto materiale.<br />
<br />
Collegate
una tastiera usb e un monitor hdmi al raspberry. Avviato il sistema
bisogna effettuare alcune configurazioni iniziali importanti.
Effettuiamo l'accesso con le credenziali originali di sistema:<br />
<br />
User: pi<br />
Password: raspberry<br />
<br />
Effettuato l'accesso date questo comando:<br />
<br />
<b>sudo raspi-config</b><br />
<br />
Per
effettuare le scelte muovetevi nella finestra di dialogo con le
frecce, il tasto tabulatore, la barra spaziatrice e invio o return.<br />
Settate i seguenti parametri:<br />
<ol>
<li>Espandete il filesystem e riavviate. </li>
<li>Al riavvio, sempre nello stesso menù, attivate il server ssh.</li>
<li>Settate la corretta time zone.</li>
<li>Riavviate ancora con <b>sudo reeboot</b> (se non richiesto).</li>
<li>Impostate un ip statico in modo da raggiungere facilmente sempre
con lo stesso indirizzo il vostro raspberry in rete. Modificate con
l'editor nano il file dhcpcd.conf:<br /><a name='more'></a><br /> <b>sudo nano /etc/dhcpcd.conf</b> <br /><br />Scorrete il file e copiate le seguenti righe in fondo dopo l'ultima riga:<br /><br /><b>interface eth0<br />static ip_address=192.168.1.210/24<br />static routers=192.168.1.1<br />static domain_name_servers=8.8.8.8</b><br /><br />Sostituite gli indirizzi ip con quelli della vostra rete.<br /><br />Salvate il file con <b>ctrl+o</b> e Invio, uscite dall'editor con <b>ctrl+x</b> e invio.<br /><br />Assegnate
al raspberry un ip distante dall'indirizzo del router. Di solito l'ip
del router è 1 nelle classi 192.168.XX.XX.<br /><br />Nell'esempio l'ip assegnato
al nostro raspberry sarà 210 (nella rete 192.168.1.x).<br /><br /> Lo "/24" alla fine dell'indirizzo identifica la maschera a
255.255.255.0.<br /><br /> Per l'ip potete usare lo stesso dell'esempio, 210
finale. 210 va più che bene senza incorrere in conflitti di indirizzi
ip. Gli ndirizzi assegnati dinamicamente dal dhcp del router spesso cominciano dal 2 in su.<br /><br />Verificate sul sito ufficiale e sul forum per maggiori dettagli.</li>
<li>Riavviate con <b>sudo shutdown -r now</b><br /><br />Verificate adesso se le configurazioni di rete sono andate a buon fine con il comando <b>sudo ifconfig</b>.
Verranno visualizzate tutte le impostazioni di tutte le schede.
Provate adesso a pingare google.com per vedere se tutto funziona
correttamente. Date questo comando:<br /><br /><b>ping google.com</b><br /><br />se otterrete risposta allora tutto funziona correttamente. Fermate il ping con <b>ctrl+c</b>.</li>
</ol>
A questo punto potete collegarvi da remoto via putty, con windows,
oppure via shell se usate linux. A questo punto potete scollegare, se volete, tastiera
e monitor dal raspberry. Usandolo da remoto non serviranno. Prima di
staccarli spegnete il raspberry con il comando <b>sudo shutdown -h now</b>,
aspettate una decina di secondi, fin quando il led verde del raspberry
non lampeggia più, togliete l'alimentazione e scollegate tutto.<br />
<br />
Bene,
a questo punto alimentate il raspberry e aspettate una ventina di
secondi, il tempo di avviarsi. Effettuate l'accesso dal pc remoto via
ssh puntando all'indirizzo statico assegnato in precedenza. <br />
<br />
Aggiornate il sistema e installate l'ultimo firmware:<br />
<ul>
<li><b>sudo apt-get update</b></li>
<li><b>sudo apt-get dist-upgrade</b></li>
<li><b>sudo reboot</b></li>
</ul>
Al riavvio:<br />
<ul>
<li><b>sudo rpi-update</b></li>
<li><b>sudo reboot</b></li>
</ul>
<br />
Buon divertimento.<br />
<ul>
</ul>
Biagio La Fauci IT9FDPhttp://www.blogger.com/profile/17819145852822412886noreply@blogger.com0tag:blogger.com,1999:blog-2593594334868302719.post-21195525952378419472015-12-24T11:40:00.002+01:002017-09-14T21:20:23.690+02:00APRS TCP/IP update via webUltima modifica 14 sett. 2017 <br />
<br />
Vediamo come aggiornare il nostro QTH, e quant'altro, sulla mappa APRS via tcp/ip usando un programma da linea di comando, netcat.<br />
<br />
Si può ottenere lo stesso risultato con ui-view32 su windows, ma i consumi non sono neanche lontanamente paragonabili al raspberry vista la necessità di utilizzare un pc. <br />
<br />
Installiamo il necessario:<br />
<ul>
<li><b>sudo apt-get update</b></li>
<li><b>sudo apt-get upgrade</b></li>
<li><b>sudo apt-get install netcat </b></li>
</ul>
<ul>
<li><b>mkdir ~/aprs</b></li>
<li><b>cd ~/aprs</b></li>
</ul>
Otteniamo la password per il nostro nominativo dal seguente link:<br />
<br />
<a href="http://apps.magicbug.co.uk/passcode/" target="_blank">http://apps.magicbug.co.uk/passcode/</a><br />
<br />
<a name='more'></a>Copiate il numero ottenuto. Creiamo adesso il file per creare il punto in mappa aprs.fi e mostrare le info nella finestra dettaglio. Per comodità chiamate questo file con il vostro nominativo, faccio un esempio. Aprite il terminale e digitate:<br />
<ul></ul>
<b><br />nano VOSTRONOMINATIVO.txt</b><br />
<ul></ul>
Sostituite le voci in giallo, NOMINATIVO e XXXXX con i vostri dati corretti:<br />
<ul>
<li><b>user <span style="color: orange;">NOMINATIVO</span> pass <span style="color: orange;">XXXXX</span></b></li>
<li><b><span style="color: orange;">NOMINATIVO</span>>APRS,TCPIP*:!0000.00N/00000.00E- 73' op <span style="color: orange;">tuonome</span> ___.___Mhz e-mail</b> </li>
</ul>
La riga successiva verrà visualizzata in fucsia. Serve a comunicare il vostro stato nella bandierina delle info. Modificatelo, per esempio con: <br />
<ul>
<li><b><span style="color: orange;">NOMINATIVO</span>>APRS,TCPIP*:</b>>In stazione QRV</li>
</ul>
Ottenete adesso le coordinate corrette per il vostro punto mappa, usate il seguente sito:<br />
<br />
<a href="http://www.sunearthtools.com/dp/tools/conversion.php?lang=it" target="_blank">http://www.sunearthtools.com/dp/tools/conversion.php?lang=it</a><br />
<br />
La riga utile al nostro scopo è la seguente:<br />
<br />
GPS: ddmm.mmmm[N,S]ddmm.mmmm[E,W] (Dec Min)4045.6N7359.04W<br />
<br />
Dopo il punto, latitudine e longitudine, bastano solo due cifre. Omettete tutte le altre. Fate attenzione ad anteporre lo zero nella longitudine e specificare nelle coordinate <b>N</b> e <b>E</b>, pena il mancato funzionamento dello script.<br />
<br />
Per modificare l'icona in mappa cambiate il carattere subito dopo la <b>E</b> della longitudine. Io ho inserito il trattino centrale, corrispondente alla casetta gialla.<br />
<br />
Alcune precisazioni; subito dopo il trattino, nella riga delle coordinate, mettete le vostre info e un breve commento, come nell'esempio sotto. Cominciate con la frequenza monitor e l'e-mail, per esempio.<br />
<br />
Le info appariranno in verde nella bandierina. <br />
<br />
Di seguito il contenuto completo del file <b>VOSTRONOMINATIVO.txt. </b>Copiatelo e incollatelo nell'editor modificando i valori con i vostri dati corretti.<b></b><br />
<b><br /></b>
<b>nano </b><b><b>VOSTRONOMINATIVO.txt.</b></b><br />
<ul>
<li><b>user <span style="color: orange;">NOMINATIVO</span> pass <span style="color: orange;">XXXXX</span></b></li>
<li><b><span style="color: orange;">NOMINATIVO</span>>APRS,TCPIP*:!0000.00N/00000.00E- 73' op <span style="color: orange;">tuonome</span> ___.___Mhz e-mail</b></li>
<li><b><b><span style="color: orange;">NOMINATIVO</span>>APRS,TCPIP*:</b>>In stazione QRV </b> </li>
</ul>
Bene, creiamo adesso il file bash per richiamare il file <span style="color: orange;">NOMINATIVO</span>.txt. Lo chiameremo aprsup.sh.<br />
<br />
<b>nano aprsup.sh</b><br />
<br />
Incollate nel file le righe seguenti:<br />
<ul>
<li><b>#!/bin/bash</b></li>
<li><b>nc -v euro.aprs2.net 14580 < /home/pi/aprs/</b><b>VOSTRONOMINATIVO.txt</b></li>
</ul>
<b>ctrl+o </b>per salvare<b> ctrl+x</b> per uscire dall'editor.<br />
<br />
Rendiamolo eseguibile: <b>chmod +x aprsup.sh</b><br />
<br />
Nel caso vogliate modificare solo lo status, potete farlo creando altri due file distinti qrv.sh e qrt.sh<br />
<br />
In questo caso cancellate prima l'ultima riga dal precedente file <b>VOSTRONOMINATIVO.txt</b><br />
<br />
Usando questo metodo aggiornerete solo il vostro stato e in maniera indipendente dal precedente sistema. L'aggiornamento potrete effettuarlo in qualsiasi momento lo desideriate eseguendo uno alla volta i file qrv.sh se siete in stazione o qrt.sh se state andando via. In mappa aprs.fi lo status sarà visibile per le successive ventiquattro ore dall'ultimo aggiornamento.<br />
<br />
Creiamo i due file: <br />
<ul></ul>
<b>nano qrv.sh</b><br />
<br />
e copiamo al suo interno le due seguenti righe:<b><br /></b><br />
<ul>
<li><b>#!/bin/bash</b></li>
<li><b>now="$(date +'%d-%m-%Y %H:%M')"</b></li>
<li><b>sleep 2</b></li>
<li><b>nc -v euro.aprs2.net 14580 << EOF</b></li>
<li><b>user <span style="color: orange;">Yourcall</span> pass <span style="color: orange;">your-id</span></b></li>
<li><b><span style="color: orange;">Yourcall</span>>STATUS,WIDE1-1,TCPIP*:>$now -<span style="color: orange;"> scrivi qui le tue info</span></b></li>
<li><b>EOF</b> </li>
</ul>
Creiamo il file qrt.sh<br />
<br />
<b>nano qrt.sh</b><br />
<ul>
<li><b>#!/bin/bash</b></li>
<li><b>now="$(date +'%d-%m-%Y %H:%M')"</b></li>
<li><b>sleep 2</b></li>
<li><b>nc -v euro.aprs2.net 14580 << EOF</b></li>
<li><b>user <span style="color: orange;">Yourcall</span> pass <span style="color: orange;">your-id</span></b></li>
<li><b><span style="color: orange;">Yourcall</span>>STATUS,WIDE1-1,TCPIP*:>$now -<span style="color: orange;"> QRT</span></b></li>
<li><b>EOF</b></li>
</ul>
rendiamoli eseguibili con <b>chmod +x qrv.sh</b> e <b>chmod +x qrt.sh</b><br />
<br />
Eseguiamo i file uno alla volta, manualmente, per prova:<br />
<br />
<b>./aprsup.sh</b><br />
<br />
Aspettate qualche secondo e verificate il risultato su aprs.fi. Se non avete commesso errori comparirà il vostro punto mappa.<b><br /></b><br />
<br />
Come già detto ./qrv.sh ./qrt.sh modificheranno solo lo stato in fucsia nella bandierina in mappa aprs.fi.<br />
<br />
Eseguiamoli, prima qrv:<br />
<br />
<b>./qrv.sh</b><br />
<br />
Stessa cosa, come prima, aspettate o rileggete la pagina aprs.fi e controllate lo stato nella bandierina.<br />
<br />
<b>./qrt.sh</b><br />
<br />
Anche qui, aspettate o rileggete la pagina aprs.fi e controllate lo stato.<br />
<br />
Facciamo in modo che aprsup.sh venga eseguito ad intervalli regolari, in modo da aggiornare il nostro punto mappa anche in nostra assenza. Editiamo il file crontab ed impostiamo l'intervallo di aggiornamento a trenta minuti.<b><br /> <br />nano crontab -e</b><br />
<br />
inserite alla fine del file questa riga:<br />
<br />
<b>*/30 * * * * /home/pi/aprs/aprsup.sh</b><br />
<br />
<b>ctrl+o </b>per salvare<b> ctrl+x</b> per uscire dall'editor.<br />
<br />
Con questo sistema sarà possibile, vista la logica di funzionamento e l'impostazione dei file, aggiornare più punti mappa con lo stesso raspberry.<br />
<br />
Buon divertimento!<br />
<br />
<br />
<br />Biagio La Fauci IT9FDPhttp://www.blogger.com/profile/17819145852822412886noreply@blogger.com0tag:blogger.com,1999:blog-2593594334868302719.post-79755473906673012092015-09-20T17:25:00.003+02:002019-02-25T11:04:42.873+01:00Webcam meteoRealizziamo una webcam meteo con una fotocamera digitale, un raspberry e alcuni semplici script.<br />
<br />
Ad oggi ne ho costruite un paio. La fotocamera utilizzata è la nikon L20, ma è possibile usarne tante altre, la lista dei modelli e marche é davvero lunga.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
Questo il risultato: <a href="http://www.milisanmarco.it/image/cam2_web.jpg" target="_blank">Webcam Mili San Marco - Messina</a><br /><a href="http://www.messinameteo.it/images/img.jpg" target="_blank">webcam Messina centro</a></div>
<br />
<a name='more'></a><br />
I software utilizzati per la realizzazione sono essenzialmente tre. Gphoto2 scatta la foto, imagemagick inserisce le piccole icone nell'immagine con i dati e wview gestisce la stazione meteo generando grafici e quant'altro.<br />
<br />
I dati meteo visualizzati nell'immagine, del primo link, provengono da una stazione meteo Davis vantage pro 2, collegata in rete lan tramite datalogger ip. Per lo scopo va comunque bene anche il più economico datalogger usb.<br />
<br />
Wview è personalizzabile sotto diversi aspetti. Dico questo perchè bisognerà modificare un paio di file per generare le pagine html con i dati da inserire successivamente nell'immagine. Sarà poi cura di uno script, avviato ad intervalli regolari, tramite crontab (in questo caso due minuti) generare l'immagine e caricarla successivamente su uno spazio web via ftp.<br />
<br />
La fotocamera va collegata via usb al raspberry. Se la distanza dalla fotocamera al raspberry è superiore alla lunghezza del cavo in dotazione, sarà possibile utilizzare prolunghe attive usb, oppure adattatori usb rj45 per cavo rete utp. Con questi ultimi sarà possibile raggiungere distanze di cinquanta metri circa.<br />
<br />
Cominciamo:<br />
Creiamo un file con il nome scatto.sh<br />
<br />
<ul>
<li><b>nano scatto.sh</b></li>
</ul>
<br />
Copiamo queste righe di codice:<br />
<br />
<ul>
<li><b>#!/bin/bash</b></li>
<li><b>gphoto2 --capture-image-and-download --force-overwrite --filename image.jpg</b></li>
</ul>
<br />
La riga precedente invia il comando di scatto alla fotocamera, scarica l'immagine sul raspberry e la cancella dalla memoria sd della fotocamera.<b> </b><br />
<br />
Il comando successivo controlla se il file esiste e toglie i 100 pixel nella parte bassa della foto. La seconda riga, utile al taglio dei 100px nella parte bassa dell'immagine, è necessaria in questo caso per motivi di privacy, potete ometterla se non serve.<br />
<b><br /></b>
<br />
<ul>
<li>
<b>if [ -f image.jpg ]; then</b></li>
<li><b>convert image.jpg -crop 1024x768+0-100 -quality 80 crop.jpg</b></li>
</ul>
<br />
Scriviamo nella parte alta della foto i dati che identificano posizione, orario e quant'altro. Copiate il codice seguente e incollatelo nel file senza modificare i ritorni a capo:<br />
<b><br /></b>
<br />
<ul>
<li><b>convert -size 1024x20 xc:none -gravity west \</b></li>
<li><b> -pointsize 12 -stroke black -strokewidth 2 -annotate 0 'messinameteo.it Stretto di Messina webcam Mili S. Marco Puntamento S-SE '"$(date "+%A %d %B %Y %H:%M")" \</b></li>
<li><b> -background none -shadow 100x1+0+0 +repage \</b></li>
<li><b> -pointsize 12 -stroke none -fill white -annotate 0 'messinameteo.it Stretto di Messina webcam Mili S. Marco Puntamento S-SE '"$(date "+%A %d %B %Y %H:%M")" \</b></li>
<li><b> crop.jpg +swap -gravity north -geometry +5+0 \</b></li>
<li><b> -composite img.jpg</b></li>
</ul>
<br />
Adesso estrapoliamo dalla stringa contenuta nel file dati.html, generato da wview, (spiegherò come generare questa pagina in un altro post nella sezione wview) i dati da inserire nell'immagine:<br />
<br />
<ul>
<li><b>dati=/var/lib/wview/img/dati.htm</b></li>
<li><b>temp=`cat $dati | cut -d \; -f4` </b></li>
<li><b>hum=`cat $dati | cut -d \; -f6` </b></li>
<li><b>bar=`cat $dati | cut -d \; -f5` </b></li>
<li><b>wind=`cat $dati | cut -d \; -f7`</b></li>
<li><b>windgust=`cat $dati | cut -d \; -f9` </b></li>
<li><b>windir=`cat $dati | cut -d \; -f8`</b></li>
<li><b>rainrate=`cat $dati | cut -d \; -f10`</b></li>
<li><b>dailyrain=`cat $dati | cut -d \; -f11`</b></li>
<li><b>baromtrend=`cat $dati | cut -d \; -f19`</b></li>
<li><b>hiwindspeed=`cat $dati | cut -d \; -f20`</b></li>
<li><b>hiwindtime=`cat $dati | cut -d \; -f21`</b></li>
<li><b>beaufort=`cat $dati | cut -d \; -f22`</b></li>
</ul>
<br />
Convertiamo in lingua italiana i dati della scala di Beaufort:<br />
<br />
<br />
<ul>
<li><b>case $beaufort in</b></li>
<li><b>Calm) beaufortit="0 - Calma";;</b></li>
<li><b>Light\ Air) beaufortit="1 - Bava di vento";;</b></li>
<li><b>Light\ Breeze) beaufortit="2 - Brezza leggera";;</b></li>
<li><b>Gentle\ Breeze) beaufortit="3 - Brezza tesa";;</b></li>
<li><b>Moderate\ Breeze) beaufortit="4 - Vento moderato";;</b></li>
<li><b>Fresh\ Breeze) beaufortit="5 - Vento teso";;</b></li>
<li><b>Strong\ Breeze) beaufortit="6 - Vento fresco";;</b></li>
<li><b>Near\ Gale) beaufortit="7 - Vento forte";;</b></li>
<li><b>Gale) beaufortit="8 - Burrasca moderata";;</b></li>
<li><b>Strong\ Gale) beaufortit="9 - Burrasca forte";;</b></li>
<li><b>Storm) beaufortit="10 - Tempesta";;</b></li>
<li><b>Violent\ Storm) beaufortit="11 - Tempesta violenta";;</b></li>
<li><b>Hurricane) beaufortit="12 - Uragano";;</b></li>
<li><b>esac</b></li>
</ul>
<br />
Proseguiamo:<br />
<br />
Assegniamo un valore in lingua italiana per pioggia assente e intensità. Sostituiamo i valori barometrici aumento e diminuzione + e - con due immagini up e down. Sostituiamo il tilde per pressione costante con un simbolo più appropriato:<br />
<br />
<br />
<ul>
<li><b>if [[ "$rainrate" = "0.00" ]]; then</b></li>
<li><b> rainonoff='Pioggia assente'</b></li>
<li><b>else</b></li>
<li><b> rainonoff='Intensità '$rainrate' mm/h'</b></li>
<li><b>fi</b></li>
<li><b>if [ "$baromtrend" = "+" ]; then</b></li>
<li><b> composite -geometry +270+634 up.png img.jpg img.jpg</b></li>
<li><b>fi</b></li>
<li><b>if [ "$baromtrend" = "-" ]; then</b></li>
<li><b> composite -geometry +270+634 down.png img.jpg img.jpg</b></li>
<li><b>fi</b></li>
<li><b>if [ "$baromtrend" = "~" ]; then</b></li>
<li><b> baromstable="<>"</b></li>
<li><b>fi</b></li>
</ul>
<br />
Inseriamo le piccole icone che identificano temperatura, pressione, vento e pioggia:<br />
<b><br /></b>
<br />
<ul>
<li><b>composite -geometry +0+625 term.png img.jpg img.jpg</b></li>
<li><b>composite -geometry +165+625 bar.png img.jpg img.jpg</b></li>
<li><b>composite -geometry +295+625 wind.png img.jpg img.jpg</b></li>
<li><b>composite -geometry +580+627 rain.png img.jpg img.jpg</b></li>
</ul>
<br />
Inseriamo adesso i valori:<br />
<br />
<b><br /></b>
<br />
<ul>
<li><b>convert -size 1024x20 xc:none -gravity west \</b></li>
<li><b> -pointsize 14 -stroke black -strokewidth 2 -annotate 0 $temp'°C - '$hum'\%'' UR' \</b></li>
<li><b> -background none -shadow 100x1+0+0 +repage \</b></li>
<li><b> -pointsize 14 -stroke none -fill white -annotate 0 $temp'°C - '$hum'\%'' UR' \</b></li>
<li><b> img.jpg +swap -gravity south -geometry +30+12 \</b></li>
<li><b> -composite img.jpg</b></li>
<li><b> convert -size 1024x20 xc:none -gravity west \</b></li>
<li><b> -pointsize 14 -stroke black -strokewidth 2 -annotate 0 $bar' hpa'"$baromstable" \</b></li>
<li><b> -background none -shadow 100x1+0+0 +repage \</b></li>
<li><b> -pointsize 14 -stroke none -fill white -annotate 0 $bar' hpa'"$baromstable" \</b></li>
<li><b> img.jpg +swap -gravity south -geometry +198+12 \</b></li>
<li><b> -composite img.jpg</b></li>
<li><b> convert -size 1024x20 xc:none -gravity west \</b></li>
<li><b> -pointsize 14 -stroke black -strokewidth 2 -annotate 0 $wind' km/h - '$windir \</b></li>
<li><b> -background none -shadow 100x1+0+0 +repage \</b></li>
<li><b> -pointsize 14 -stroke none -fill white -annotate 0 $wind' km/h - '$windir \</b></li>
<li><b> img.jpg +swap -gravity south -geometry +335+18 \</b></li>
<li><b> -composite img.jpg</b></li>
<li><b> convert -size 1024x20 xc:none -gravity west \</b></li>
<li><b> -pointsize 14 -stroke black -strokewidth 2 -annotate 0 'Raffica '"$windgust"' km/h' \</b></li>
<li><b> -background none -shadow 100x1+0+0 +repage \</b></li>
<li><b> -pointsize 14 -stroke none -fill white -annotate 0 'Raffica '"$windgust"' km/h' \</b></li>
<li><b> img.jpg +swap -gravity south -geometry +442+18 \</b></li>
<li><b> -composite img.jpg</b></li>
<li><b> convert -size 1024x20 xc:none -gravity west \</b></li>
<li><b> -pointsize 14 -stroke black -strokewidth 2 -annotate 0 'Raffica max '$hiwindspeed' km/h alle '"$hiwindtime" \</b></li>
<li><b> -background none -shadow 100x1+0+0 +repage \</b></li>
<li><b> -pointsize 14 -stroke none -fill white -annotate 0 'Raffica max '$hiwindspeed' km/h alle '"$hiwindtime" \</b></li>
<li><b> img.jpg +swap -gravity south -geometry +335+0 \</b></li>
<li><b> -composite img.jpg</b></li>
<li><b> convert -size 1024x20 xc:none -gravity west \</b></li>
<li><b> -pointsize 14 -stroke black -strokewidth 2 -annotate 0 $dailyrain' mm - '"$rainonoff" \</b></li>
<li><b> -background none -shadow 100x1+0+0 +repage \</b></li>
<li><b> -pointsize 14 -stroke none -fill white -annotate 0 $dailyrain' mm - '"$rainonoff" \</b></li>
<li><b> img.jpg +swap -gravity south -geometry +620+12 \</b></li>
<li><b> -composite img.jpg</b></li>
<li><b> convert -size 1024x20 xc:none -gravity west \</b></li>
<li><b> -pointsize 14 -stroke black -strokewidth 2 -annotate 0 'Scala di Beaufort: '"$beaufortit" \</b></li>
<li><b> -background none -shadow 100x1+0+0 +repage \</b></li>
<li><b> -pointsize 14 -stroke none -fill white -annotate 0 'Scala di Beaufort: '"$beaufortit" \</b></li>
<li><b> img.jpg +swap -gravity north -geometry +740+0 \</b></li>
<li><b> -composite cam2_web.jpg</b></li>
</ul>
<br />
A questo punto l'immagine è pronta per essere caricata via ftp su uno spazio web. Spiegherò, più in la, come effettuare l'upload, la cancellazione del file appena creato, il controllo del corretto funzionamento della fotocamera e il reset dello slot usb. Spiegherò anche come creare un'immagine, offline.jpg, da caricare via ftp nel caso la fotocamera andasse in blocco.<br />
<br />
In questa guida, nella parte finale, mancano i controlli sopracitati e la chiusura dell'if iniziale, utile proprio alla verifica del corretto funzionamento della fotocamere.<br />
<br />
Sarà possibile ottenere lo stesso risultato, se non migliore, percorrendo strade diverse e altri linguaggi, ma lo script da me pensato va bene per un uso casalingo e amatoriale. <br />
<br />Biagio La Fauci IT9FDPhttp://www.blogger.com/profile/17819145852822412886noreply@blogger.com1tag:blogger.com,1999:blog-2593594334868302719.post-10755429559688209732015-09-19T13:20:00.001+02:002017-03-29T12:15:10.182+02:00 Verifica vocale rete elettrica Può essere utile conoscere lo stato di alcuni parametri, verifica on/off, in un qualsiasi contesto. In questo caso verificheremo la presenza della rete elettrica, se assente un messaggio vocale ci avvertirà via radio. <br />
<br />
Per utilizzare questo sistema, raspberry e radio devono essere alimentati da una batteria o gruppo di continuità. Potete realizzare un sistema simile a <a href="http://it9fdp.blogspot.it/2015/09/gruppo-continuita.html">questo</a> (da completare).<br />
<br />
Uno
script lanciato da crontab ad intervalli di cinque minuti (impostabile) si occuperà di attivare lo script. Nel caso venisse a mancare la rete elettrica, verrà attivato il ptt della radio e avviato un file audio .wav preparato precedentemente. <br />
<a name='more'></a>In parole povere, lo script verifica il livello logico
sul GPIO24. Se uguale a zero attiva il ptt e il file audio. Semplice!<br />
<br />
<div>
È possibile trasmettere l'annuncio, rete elettrica assente, anche verso i nodi svxlink o remotetrx a cui
si è collegati. Ho pensato a come realizzarlo, ma
non l'ho ancora messo in pratica.<br />
<br />
<span style="color: #20124d;">Prima di avviare svxlink, o script che impegnano i pin GPIO, bisogna editare il file /etc/rc.local ed attivare i pin interessati. Questo per renderli disponibili all'accensione del raspberry. </span><a href="http://it9fdp.blogspot.it/2015/09/file-rclocal.html">In questa pagina trovate le righe da inserire nel file /etc/rc.local</a>.</div>
<br />
La scheda audio utilizzata per gli annunci quella integrata nel raspberry.<br />
<div>
<div>
Per rilevare la presenza della rete uso il GPIO24, vedi schema in basso.</div>
<div>
Creiamo una cartella <b>script</b> nella nostra home. Tanto per avere un po d'ordine.</div>
<div>
<ul>
<li><b>mkdir script</b></li>
</ul>
</div>
<div>
Spostiamoci al suo interno</div>
<div>
<ul>
<li> <b>cd script</b></li>
</ul>
</div>
Creiamo il file rete.sh<br />
<ul>
<li> <b>nano rete.sh</b></li>
</ul>
<b>
</b>
<br />
<div>
Copiamo nel file le seguenti righe:</div>
<ul>
<li><b>#! /bin/bash</b></li>
<li><b>#Verifico se il ricevitore sta ricevendo.</b></li>
<li><b>#No tx annuncio se presente qso in rx radio</b></li>
<li><b>rxradio=`cat /sys/class/gpio/gpio27/value`</b></li>
<li><b>#Controllo RX. Valore uguale reitera, diverso prosegue</b></li>
<li><b>while test "$rxradio" = "1"</b></li>
<li><b>do</b></li>
<li><b>sleep 0.3</b></li>
<li><b>rxradio=`cat /sys/class/gpio/gpio27/value`</b></li>
<li><b>done</b></li>
<li><b>sleep 1</b></li>
<li><b>#Verifico presenza rete, se assente play reteassente wav</b></li>
<li><b>retee=`cat /sys/class/gpio/gpio24/value`</b></li>
<li><b>if [ "$retee" = "0" ]; then</b></li>
<li><b>#attivazione ptt radio</b></li>
<li><b>echo 1 > /sys/class/gpio/gpio22/value</b></li>
<li><b>sleep 1</b></li>
<li><b>#Riproduco reteassente</b></li>
<li><b>aplay -D default:CARD=ALSA /home/pi/script/audio/reteassente.wav</b></li>
<li><b>sleep 0.3</b></li>
<li><b>#Rilascio PTT</b></li>
<li><b>echo 0 > /sys/class/gpio/gpio22/value</b></li>
<li><b>fi</b></li>
</ul>
</div>
<div>
<br />
La prima verifica, while, ricevitore in ricezione, è necessaria affinché non venga interrotto il qso in ricezione se presente.<br />
Nel caso venga usato svxlink con logica ripetitore (RepeaterLogic), il controllo non è necessario.<br />
<br />
Rendiamo eseguibile il file con <br />
<ul>
<li><b>chmod +x rete.sh</b></li>
</ul>
<div class="sites-codeblock sites-codesnippet-block">
Proviamolo manualmente e verifichiamo se tutto funziona correttamente:<br />
<ul>
<li><b>sudo ./rete.sh</b></li>
</ul>
Adesso inseriamo il comando nel file crontab di root editandolo con:<br />
<ul>
<li><b>sudo crontab</b></li>
</ul>
</div>
</div>
Aggiungiamo alla fine del file:<br />
<ul>
<li><b>*/5 * * * * /home/pi/script/rete.sh > /dev/null 2>&1</b></li>
</ul>
<br />
<br />
<div>
Lo
script verrà cosi avviato ogni cinque minuti.<br />
Nel caso la rete
elettrica risultasse assente e il ricevitore non stia ricevendo un segnale, verrà avviato il ptt della radio e
l'annuncio reteassente.wav.<br />
<br /></div>
<div>
<br /></div>
<div>
Potete creare i file audio .wav sul web, su un sito gratuito di sintesi vocale TTS. Per esempio: <a href="https://acapela-box.com/AcaBox/index.php" target="_blank">https://acapela-box.com/AcaBox/index.php</a></div>
<div>
<br /></div>
<div>
Questo lo schema per interfacciare i 12 volt dell'alimentatore al GPIO24<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtrs9T040xAmQfJ7tR-5L12Wb_LT0lIgXxAqarhNKytYi5nGB71-raGV6-iJ0ZfpO8-eZn_K_DyuewCpMteIdgxcEtJinmbSGIVOqJLqcaVNE7zi0LyaJ7u52maaMisP-5p12ssHxH30U/s1600/Rilevamento+rete.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="205" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjtrs9T040xAmQfJ7tR-5L12Wb_LT0lIgXxAqarhNKytYi5nGB71-raGV6-iJ0ZfpO8-eZn_K_DyuewCpMteIdgxcEtJinmbSGIVOqJLqcaVNE7zi0LyaJ7u52maaMisP-5p12ssHxH30U/s320/Rilevamento+rete.png" width="320" /></a></div>
<br /></div>
<div>
<div style="display: block; text-align: left;">
</div>
</div>
<div>
Con
una piccola modifica allo script, aggiungendo un file .wav rete
presente, potrete ottenere una risposta anche per la rete elettrica
presente, attivabile da tastiera dtmf.</div>
<div>
<br />
Vediamo come fare.</div>
<div>
<a href="http://it9fdp.blogspot.it/2015/09/dtmf-exec-script.html">Qui spiego come attivare la funzionalità dtmf exec script</a>. <br />
<br />
Creiamo un altro file con il nome <b>rete1.sh</b></div>
<div>
<div class="sites-codeblock sites-codesnippet-block">
<b><code>nano rete1.sh</code></b></div>
<br />
e copiamo dentro il file le righe seguenti:<br />
<div class="sites-codeblock sites-codesnippet-block">
<br />
<b><code>#! /bin/bash</code></b><br />
<b><code>#Verifico se il ricevitore sta ricevendo. No tx annuncio se presente qso in rx radio</code></b><br />
<b><code>rxradio=`cat /sys/class/gpio/gpio27/value`</code></b><br />
<b><code>#Controllo RX. Valore uguale reitera, diverso prosegue</code></b><br />
<b><code>while test "$rxradio" = "1"</code></b><br />
<b><code>do</code></b><br />
<b><code>sleep 0.3</code></b><br />
<b><code>rxradio=`cat /sys/class/gpio/gpio27/value`</code></b><br />
<b><code>done</code></b><br />
<b><code>sleep 1</code></b><br />
<b><code>#Verifico presenza rete, se assente play reteassente wav</code></b><br />
<b><code>retee=`cat /sys/class/gpio/gpio24/value`</code></b><br />
<b><code>if [ "$retee" = "0" ]; then</code></b><br />
<b><code>#attivazione ptt radio</code></b><br />
<b><code>echo 1 > /sys/class/gpio/gpio22/value</code></b><br />
<b><code>sleep 1</code></b><br />
<b><code>#Riproduco reteassente</code></b><br />
<b><code>aplay -D default:CARD=ALSA /home/pi/script/audio/reteassente.wav</code></b><br />
<b><code>sleep 0.3</code></b><br />
<b><code>#Rilascio PTT</code></b><br />
<b><code>echo 0 > /sys/class/gpio/gpio22/value</code></b><br />
<b><code>else</code></b><br />
<b><code>#attivazione ptt radio</code></b><br />
<b><code>echo 1 > /sys/class/gpio/gpio22/value</code></b><br />
<b><code>sleep 1</code></b><br />
<b><code>#Riproduco retepresente</code></b><br />
<b><code>aplay -D default:CARD=ALSA /home/pi/script/audio/retepresente.wav</code></b><br />
<b><code>sleep 0.3</code></b><br />
<b><code>#Rilascio PTT</code></b><br />
<b><code>echo 0 > /sys/class/gpio/gpio22/value</code></b><br />
<b><code>fi</code></b></div>
<br /></div>
<div>
Rendetelo eseguibile con <br />
<div class="sites-codeblock sites-codesnippet-block">
<b><code>chmod +x rete1.sh</code></b></div>
<b><br /></b></div>
<div>
Lo
script è uguale al precedente, quello avviato dal crontab root ogni
cinque minuti, ma in questo caso otterremo una risposta anche con rete
elettrica presente.</div>
<div>
Adesso possiamo attivarlo collegandoci via ssh, oppure comodamente
dalla nostra radio portatile digitando il codice DTMF preimpostato.</div>
<div>
<br />
Questa è la sezione da modificare nel file <b>Logic.tcl</b> contenuto nella cartella <b>/usr/share/svxlink/events.d/local</b> <br />
<br />
<div class="sites-codeblock sites-codesnippet-block">
<code> if {$cmd == "81"} {</code><br />
<code> puts "Verifica presenza rete elettrica"</code><br />
<code> exec /home/pi/script/rete1.sh &</code><br />
<code> playSilence 1000</code><br />
<code> playTone 880 60 150;</code><br />
<code> playTone 440 60 100;</code><br />
<code> return 1</code><br />
<br />
<code> }</code></div>
<br />
Avviate svxlink, se
non avete commesso errori, digitando dalla radio *81# verrà avviato lo
script e ascolterete l'audio .wav corrispondente allo stato del GPIO24.</div>
<div>
<u>Svxlink deve essere attivo per utilizzare questa funzionalità.</u><br />
<br />
</div>
<div>
<br /></div>
Buon divertimento!Biagio La Fauci IT9FDPhttp://www.blogger.com/profile/17819145852822412886noreply@blogger.com0Messina ME, Italia38.1938137 15.55401519999998137.7943867 14.90856819999998 38.5932407 16.199462199999981tag:blogger.com,1999:blog-2593594334868302719.post-55806619555170471862015-09-19T13:15:00.000+02:002016-11-01T18:02:37.827+01:00Ventola PTTHo
pensato di avviare una ventola all'attivazione del PTT per un tempo impostabile.<br />
Cominciamo; leggo i livelli logici sui pin GPIO17 (PTT svxlink) e
GPIO22 (PTT Audio raspberry) con un ciclo while. Se lo script rileva il livello logico 1
su uno dei due pin, il GPIO23 viene portato a livello logico 1 (oppure
0, dipende della logica del relè) per un tempo n.<br />
<a name='more'></a>Il pin GPIO23 andrà collegato direttamente all'ingresso di un
modulo relè, già pronto, per comodità. È anche possibile usare un relè comandato da un semplice transistor, usando possibilmente un fotoaccoppiatore per preservare i pin gpio. Si tratta di moduli, ad uno o più relè,
reperibili sul web. Basta cercare: relè arduino o raspberry.<br />
Questi
moduli prevedono semplicemente l'alimentazione e i pin di comando. Per il nostro scopo va bene il modello a cinque volt. Verificate le specifiche prima dell'acquisto. Stessa la
tensione per il comando, 5 Volt (vanno bene anche i 3,3 volt GPIO).<br />
Il pin di comando, come detto prima, può avere logica positiva o negativa, dipende dal
modello. Imposteremo nello script il livello logico corretto.<br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVkwO_ptwtlgUhhLtB4DCQ7ysCy2o0bI6ZnUlrCbabRebFPAfaQjRqu8IPNuaMSQUENwho1yO0IzV91beubqcQC59VTG7_AUeNdUv8cfeWCRUtdKjLZlBwlNPAsfYD2_rVTWxD3warX_o/s1600/rel%25C3%25A8.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEiVkwO_ptwtlgUhhLtB4DCQ7ysCy2o0bI6ZnUlrCbabRebFPAfaQjRqu8IPNuaMSQUENwho1yO0IzV91beubqcQC59VTG7_AUeNdUv8cfeWCRUtdKjLZlBwlNPAsfYD2_rVTWxD3warX_o/s1600/rel%25C3%25A8.jpg" /></a></div>
<br />
<br />
<span style="color: #20124d;">Prima di avviare svxlink, e qualsiasi altro script, bisogna settare i pin GPIO nel file /etc/rc.local e renderli attivi all'accensione del raspberry</span>. <a href="http://it9fdp.blogspot.it/2015/09/file-rclocal.html">In questa pagina trovate le righe da inserire nel file /etc/rc.local</a>.<br />
<div>
<br />
<div>
Il GPIO22 viene usato per attivare il ptt degli annunci con l'audio della scheda integrata. Nel nostro caso considerato alla stregua del GPIO17, PTT svxlink.<br />
Il
GPIO23 viene usato per attivare la ventola, andrà collegato al pin di comando del relè. Nell'esempio, sotto, ho
settato come attivo il livello logico 1 per relè con logica positiva.</div>
<br />
Nella riga <b>for (( C=0; C<=10; C++ )); do</b>
segnata in rosso, ho inserito il valore 10 per prova. Essendoci uno <b>sleep 1</b>, nel ciclo
while, il timer resterà attivo per dieci secondi dall'ultima
attivazione del PTT. Variatelo in base alle vostre necessità.</div>
<div>
<br />
Questo
il codice da inserire nel file fun.sh. Salvatelo nella cartella
script, nella home.</div>
<div>
<ul>
<li><b>#!/bin/bash</b></li>
<b>
</b>
<li><b># Pin gpio impostati all'avvio in rc.local</b></li>
<b>
</b>
<li><b>while true;</b></li>
<b>
</b>
<li><b>do</b></li>
<b>
</b>
<li><b>sleep 1</b></li>
<b>
</b>
<li><b>ptt_echo=`cat /sys/class/gpio/gpio17/value`</b></li>
<b>
</b>
<li><b>ptt_ann=`cat /sys/class/gpio/gpio22/value`</b></li>
<b>
</b>
<li><b>if [ $ptt_echo -eq 1 -o $ptt_ann -eq 1 ]</b></li>
<b>
</b>
<li><b>then</b></li>
<b>
</b>
<li><span style="color: red;"><b>for (( C=0; C<=10; C++ )); do</b></span></li>
<b>
</b>
<li><b>ptt_echo=`cat /sys/class/gpio/gpio17/value`</b></li>
<b>
</b>
<li><b>ptt_ann=`cat /sys/class/gpio/gpio22/value`</b></li>
<b>
</b>
<li><b>sleep 1</b></li>
<b>
</b>
<li><b>if [ $ptt_echo -eq 1 -o $ptt_ann -eq 1 ]</b></li>
<b>
</b>
<li><b>then</b></li>
<b>
</b>
<li><b>C=0</b></li>
<b>
</b>
<li><b>fi</b></li>
<b>
</b>
<li><b>echo "N: $C"</b></li>
<b>
</b>
<li><b>echo 1 > /sys/class/gpio/gpio23/value</b></li>
<b>
</b>
<li><b>done</b></li>
<b>
</b>
<li><b>fi</b></li>
<b>
</b>
<li><b>if [ $ptt_echo -eq 0 -a $ptt_echo -eq 0 ]</b></li>
<b>
</b>
<li><b>then</b></li>
<b>
</b>
<li><b>echo 0 > /sys/class/gpio/gpio23/value</b></li>
<b>
</b>
<li><b>fi</b></li>
<b>
</b>
<li><b>done</b></li>
</ul>
</div>
<div>
Rendete il file eseguibile con <br />
<ul>
<li><b>chmod +x fun.sh</b></li>
</ul>
</div>
<div>
Avviatelo per verificarne il corretto funzionamento:<br />
<ul>
<li><b>sudo ./fun.sh</b></li>
</ul>
Se non avete commesso errori, lo script sarà attivo.<br />
Per verificare se è in esecuzione:<br />
<ul>
<li><b>pgrep fun.sh</b></li>
</ul>
Se otterrete un numero significa che lo script è attivo. Mandate in trasmissione svxlink oppure un annuncio, per esempio verifica rete elettrica, e il livello logico dovrebbe passare a uno, 3,3 volt sul pin 23.<br />
<br />
Per fermarlo:<br />
<ul>
<li><b>kill XXXX</b> dove le x identificano il numero di pid ottenuto con il comando precedente.</li>
</ul>
<br /></div>
<div>
Per
avviare lo script, all'accensione del raspberry, inserite nel file
/etc/rc.local, sempre in fondo al file, dopo le righe di
inizializzazione GPIO e prima di <b>exit 0</b>, queste due righe: </div>
<ul>
<li><b>sleep 3</b></li>
<b>
</b>
<li><b>/home/pi/script/fun.sh</b></li>
</ul>
<div>
È
possibile far girare la ventola un po più lentamente quando lo script
non attiva il relè, questo per far circolare sempre aria dentro il
contenitore. Basta inserire una resistenza, di adeguata
potenza e valore, in parallelo ai contatti del relè.<br />
<br /></div>
Biagio La Fauci IT9FDPhttp://www.blogger.com/profile/17819145852822412886noreply@blogger.com0Messina ME, Italia38.1938137 15.55401519999998137.7943867 14.90856819999998 38.5932407 16.199462199999981tag:blogger.com,1999:blog-2593594334868302719.post-75207746017527981592015-09-19T13:10:00.004+02:002018-11-30T16:55:14.955+01:00Reverse tunnel ssh<div>
<div>
<div>
<div>
<div>
<span style="background-color: white;">Aggiornato 29-3-2017 </span><br />
<br />
<span style="background-color: white;">Vediamo come realizzare un reverse tunnel ssh persistente, utile per raggiungere il nostro raspberry, o pc linux, dietro nat. Per lo scopo bisogna
avere un ddns registrato e funzionante sull'ip della rete
raggiungibile oppure un ip statico. Il servizio gratuito offerto da no-ip.com va più che bene, ma bisogna confermarlo mensilmente, almeno nella versione libera. Registratevi e aggiungete un
host scegliendo un nome a vostro piacere.</span><br />
<a name='more'></a><br />
<span style="background-color: white;">Per aggiornare</span><span style="background-color: #a2c4c9;"><span style="background-color: white;"> l'ip del ddns ricordatevi di configurarlo nel vostro router adsl oppure eseguite il <a href="https://www.noip.com/download?page=win" rel="nofollow" target="_blank">client DUC</a> windows, <a href="http://it9fdp.blogspot.it/2015/09/client-noip2-con-questo-software.html" target="_blank">client DUC</a> linux, da un pc dalla vostra rete locale.</span></span></div>
</div>
</div>
<br />
Cominciamo, per prima cosa apriamo la porta 22 ssh verso l'esterno sul router adsl della connessione raggiungibile, impostando, allo stesso tempo, un ip statico al pc linux nella nostra rete locale. Installate su quest'ultimo ssh server.</div>
Impostate nel router, verso l'esterno, wan, una porta diversa dalla 22, per esempio la 4725. Interna 22 esterna 4725.<br />
<br />
Se il router
non consente la personalizzazione di porta interna esterna, potrete reimpostarla nel file di configurazione del server ssh <b>/etc/ssh/sshd_config </b>Bisogna riavviare ssh per confermare la modifica: <b>sudo service ssh restart</b>.</div>
<div>
<br />
<b>Adesso configuriamo il raspberry nella rete non raggiungibile, telefonia mobile:</b></div>
<div>
<br />
Creiamo una coppia di chiavi ssh senza password:</div>
<div>
<ul>
<li><b>ssh-keygen</b></li>
</ul>
</div>
<div>
Aspettate qualche istante, date invio al prompt. Ancora invio e invio, lasciando la passphrase vuota.</div>
<div>
<br />
Adesso
copiamo la chiave pubblica appena creata, dal raspberry al pc con ip pubblico. <br />
<ul>
<li><b>ssh-copy-id "user@my-public-ddns -p 4725"</b></li>
</ul>
</div>
<div>
Inserite la password. se non otterrete errori, la chiave è stata copiata con successo.</div>
<div>
<b><br /></b></div>
<div>
Facciamo adesso una prova di connessione ssh dal raspberry della rete non raggiungibile al pc nella rete raggiungibile:</div>
<div>
<ul>
<li><b>ssh -p 4725 user@my-public-ddns</b></li>
</ul>
</div>
<div>
Se accedete al pc raspberry senza richiesta di password avete eseguito fin qui tutto correttamente, se così non è, verificate i passaggi precedenti.<b> </b></div>
<div>
<br /></div>
<div>
Creiamo adesso il reverse tunnel dal raspberry nella rete non raggiungibile verso il pc con ip pubblico raggiungibile:<br />
<ul>
<li><b>ssh -N -R 3700:localhost:22 user@my-public-ddns -p 4725</b></li>
</ul>
</div>
<div>
In ordine, partendo dalla fine, le porte sono: <br />
<ul>
<li>4725 Porta ssh del pc remoto con ip pubblico</li>
<li>22 Porta del raspberry nella rete non raggiungibile da traslare, in questo caso la 22, ssh server</li>
<li>3700 Porta traslata disponibile sul pc con ip pubblico </li>
</ul>
Proviamo a conneterci al raspberry, digitiamo sul pc nella rete con ip pubblico:<br />
<ul>
<li><b>ssh -p 3700 user@127.0.0.1</b></li>
</ul>
Oppure<br />
<ul>
<li><b>ssh -l user -p 3700 127.0.0.1 </b></li>
</ul>
Se tutto è stato impostato correttamente ci verrà chiesta la password per l'utente in uso sul raspberry o pc nella rete non raggiungibile.<br />
<ul>
<li><b>ctrl+d sul pc per chiudere il tunnel</b></li>
<li><b>ctrl+c sul raspberry per chiudere il reverse tunnel ssh appena creato</b></li>
</ul>
<div>
</div>
<div>
Adesso creiamo il tunnel all'avvio del raspberry. Per prima cosa facciamo che resti attivo, in vita, una volta creato:<br />
<br />
Modifichiamo i file di configurazione del client e server ssh sia sul pc che sul raspberry:<br />
<ul>
<li><b>sudo nano /etc/ssh/sshd_config</b></li>
</ul>
aggiungiamo alla fine del file:<br />
<ul>
<li><b>ClientAliveInterval 30</b></li>
</ul>
successivamente editiamo:<br />
<ul>
<li><b>sudo nano /etc/ssh/ssh_config</b></li>
</ul>
aggiungiamo sempre alla fine di questo file:<br />
<ul>
<li><b>ServerAliveInterval 15</b></li>
</ul>
Creiamo adesso il file bash per verificare e instaurare la connessione: <br />
<ul>
<li><b>nano tunnel.sh</b></li>
</ul>
Copiamo all'interno il seguente codice:<br />
<ul>
<li><b>#!/bin/bash</b></li>
<li><b>ps -A x |grep "ssh -N -R 3700:localhost:22 user@</b><b><b>my-public-ddns -p 4725</b>" |grep -v grep > /dev/null 2>&1</b></li>
<li><b> if [[ $? -eq 1 ]]; then</b></li>
<li><b>ssh -N -R </b><b><b>3700:localhost:22 user@</b><b><b>my-public-ddns -p 4725</b></b> &</b></li>
<li><b> fi</b></li>
</ul>
Modificate in tutte le righe <b>user@</b><b><b>my-public-ddns</b></b> con<b><b> </b></b>l'utente e il ddns o ip corretto.<br />
<b><b></b></b><br />
Rendiamolo eseguibile con:<br />
<ul>
<li><b>chmod +x tunnel.sh</b></li>
</ul>
e ichiamiamolo ogni minuto da crontab:<br />
<ul>
<li><b>crontab -e</b></li>
</ul>
incollate alla fine del file questa riga:<br />
<ul>
<li><b> */1 * * * * ~/tunnel.sh > /dev/null 2>&1 &</b></li>
</ul>
Crontab avvia lo script ogni minuto. Se la verifica dà esito negativo, lo script creerà il tunnel.<br />
<br />
Buon divertimento.<br />
<br />
<br />
<br /></div>
</div>
Biagio La Fauci IT9FDPhttp://www.blogger.com/profile/17819145852822412886noreply@blogger.com0tag:blogger.com,1999:blog-2593594334868302719.post-24848719715151147982015-09-19T13:06:00.003+02:002018-01-28T18:48:12.812+01:00svxlink.confAggiornato il 28-01-2018 <br />
<br />
Il file di configurazione si trova nella cartella /etc/svxlink/ <br />
<div>
<br /></div>
<div>
Nel caso si voglia usare un riferimento in tensione per la ricezione da parte del ricetrasmettitore bisogna usare alcuni pin GPIO. <a href="http://it9fdp.blogspot.it/2015/09/gpio.html">Qui spiego come settarli</a>.</div>
<div>
<br />
Il programma permette più possibilità per il rilevamento del segnale ricevuto come vox, ctcss, tensione su pin gpio o seriale (cp2102). Qui mi limiterò al settaggio in tensione su pin GPIO.<br />
<br />
Supponiamo di voler usare il nostro raspberry svxlink collegato ad una radio simplex.<br />
<br />
Editiamo il file:</div>
<ul>
<li><b>sudo nano /etc/svxlink/svxlink.conf</b></li>
</ul>
<div>
Nella sezione [GLOBAL] ad inizio file, trovate già impostato <b>SimplxLogic</b> per il funzionamento in simplex.<br />
<br />
<a name='more'></a><ul></ul>
</div>
<div>
<ul>
<li><b>[GLOBAL]<br />#MODULE_PATH=/usr/lib/arm-linux-gnueabihf/svxlink<br />LOGICS=SimplexLogic<br />CFG_DIR=svxlink.d<br />TIMESTAMP_FORMAT="%c"<br />CARD_SAMPLE_RATE=48000<br />#CARD_CHANNELS=1<br />#LOCATION_INFO=LocationInfo<br />#LINKS=LinkToR4</b> </li>
</ul>
<br />
Svxlink può essere implementato anche come core ripetitore. Ho fatto alcune prove, ma mi
limiterò a descrivere solo le voci principali per avviarlo in modalità simplex.</div>
<div>
<br />
Passiamo alla sezione <b>[Simplexlogic]</b>.</div>
<div>
<br />
Inserite il vostro nominativo in maiuscolo seguito da -L:<br />
<br />
<span style="color: #cc0000;">Attenzione, <b>NOMINATIVO</b> e <b>NOMINATIVO-L</b> sui server echolink non sono la stessa cosa. Nella rete echolink equivalgono a due nominativi distinti e separati. Svxlink, nella configurazione simplexlogic, prevede l'utilizzo di <b>NOMINATIVO-L</b><span style="color: #cc0000;">. Se non l'avete ancora attivato, seguite la breve procedura su http://www.echolink.org/.</span></span> <span style="color: #cc0000;">Stessa cosa per</span> <span style="color: #cc0000;"><b><b>NOMINATIVO-R.</b></b></span><br />Sostituite il vostro nominativo <b>NOMINATIVO-L</b><span style="color: #cc0000;"><b><b><br /></b></b></span></div>
<div>
<ul>
<li><b>CALLSIGN=NOMINATIVO-L</b></li>
</ul>
</div>
<div>
Settiamo l'intervallo per gli annunci:<br />
<ul>
<li><b>SHORT_IDENT_INTERVAL=10</b></li>
<li><b>LONG_IDENT_INTERVAL=60</b></li>
</ul>
</div>
<div>
Se non volete ascoltare gli annunci commentate le voci precedenti inserendo un cancelletto ad inizio riga. I valori sono espressi in minuti.</div>
<div>
<br /></div>
<div>
Andiamo alla sezione [Rx1] e [Tx1]</div>
La riga <b>AUDIO_DEV</b>, sia nella sezione [Rx1] che [Tx1] identifica l'hardware audio. Identifichiamolo tramite il mixer alsamixer: <b>sudo alsamixer</b>, si aprirà una finestra con il mixer, premete adesso F6. Vedrete una seconda finestra con tutte le periferiche audio attive. Ogni riga inizia con un numero, annotate quello corrispondente alla scheda audio usb. Questa la riga alla sezione [RX1]:<b> AUDIO_DEV=alsa:plughw:<span style="color: red;">X</span></b><br /><br />Sostituite la X con il numero della periferica corretta.<b><span style="color: red;"> </span></b><b> </b><br />
<ul>
<li><b>[Rx1]</b></li>
<li><b>TYPE=Local</b></li>
<li><b>AUDIO_DEV=alsa:plughw:1</b></li>
<li><b>AUDIO_CHANNEL=0</b></li>
<li><b>SQL_DET=GPIO #Qui settate il sistema di rilevamento usato, se GPIO, VOX o SERIAL</b></li>
<li><b>..............................</b></li>
<li><b>SQL_HANGTIME=2000 #Questo valore io l'ho ridotto a 200 (0.2 secondi). Fate qualche prova.</b></li>
<li><b>...................................</b></li>
<li><b>GPIO_SQL_PIN=gpio27</b></li>
<li><b>...................................</b></li>
</ul>
<br />
Passiamo al trasmettitore, stessa cosa anche qui per <b>plughw:<span style="color: red;">x</span></b> identificato con il comando precedente, nel mio caso 1<code><span style="color: red;"><span style="color: black;">:</span></span></code><br />
<ul>
<li><b>[Tx1]</b></li>
<li><b>TYPE=Local</b></li>
<li><b>AUDIO_DEV=alsa:plughw:1</b></li>
<li><b>AUDIO_CHANNEL=0</b></li>
<li><b>PTT_TYPE=GPIO</b></li>
<li><b>PTT_PORT=/dev/ttyS0</b></li>
<li><b>#PTT_PIN=DTRRTS</b></li>
<li><b>PTT_PIN=gpio17</b></li>
<li><b>..................................</b></li>
<li><b>#PTT_HANGTIME=1000</b></li>
<li><b>TIMEOUT=300</b></li>
<li><b>TX_DELAY=500 #Io l'ho ridotto a 50. Se attivo RGR_SOUND_DELAY=500 nella sezione [Simplexlogic] va bene lasciarlo a 500.</b></li>
<li><b>..................................</b></li>
</ul>
A questo punto concludete le impostazioni iniziali, prima di avviare svxlink, inserendo il votro nominativo, password e altre informazioni nel file ModuleEchoLink.conf. <a href="http://it9fdp.blogspot.it/2015/09/moduleecholinkconf.html" target="_blank">Spiego qui come fare</a>. <br />
<br />
Fate riferimento al <a href="http://svxlink.sourceforge.net/man/man5/svxlink.conf.5.html" target="_blank">manuale del file svxlink.conf</a> per conoscere tutte le voci.<br />
<br />Biagio La Fauci IT9FDPhttp://www.blogger.com/profile/17819145852822412886noreply@blogger.com0tag:blogger.com,1999:blog-2593594334868302719.post-8006643920521108412015-09-19T13:04:00.000+02:002015-09-21T14:41:27.626+02:00Streaming con remotetrxIn costruzione........Biagio La Fauci IT9FDPhttp://www.blogger.com/profile/17819145852822412886noreply@blogger.com0tag:blogger.com,1999:blog-2593594334868302719.post-44391307449578665462015-09-19T13:00:00.003+02:002015-09-21T14:41:56.976+02:00RemotetrxLink con remotetrx. In costruzione....Biagio La Fauci IT9FDPhttp://www.blogger.com/profile/17819145852822412886noreply@blogger.com0tag:blogger.com,1999:blog-2593594334868302719.post-10812569822993799922015-09-19T12:57:00.004+02:002017-03-03T07:27:32.614+01:00ModuleEchoLink.confIl file si trova nella cartella /etc/svxlink/svxlink.d<br />
<div>
Questo è il primo file da editare per rendere funzionante svxlink.</div>
<div>
Le righe principali da settare sono:<br />
<a name='more'></a><b></b><br />
<ul>
<li><b>CALLSIGN=MYCALL-L</b></li>
<li><b>PASSWORD=MyPass</b></li>
<li><b>SYSOPNAME=MyName</b></li>
<li><b>LOCATION=[Svx]</b></li>
</ul>
</div>
<div>
Inserite il vostro nominativo con -L, precedentemente registrato sul sito echolink, alla voce CALLSIGN.</div>
<div>
Inserite successivamente la password e il vostro nome alla voce SYSOPNAME.</div>
<div>
Alla voce LOCATION potete lasciare [Svx] in modo da rendere riconoscibile il software utilizzato nella lista dei nodi. Completate con altre informazioni, sempre nella riga LOCATION, aggiungendo per esempio locator, frequenza, tono, facendo attenzione a non superare i 25 caratteri, spazi compresi.</div>
<div>
<br /></div>
<div>
In fondo al file aggiungete le caratteristiche del vostro Link e quant'altro.<br />
<ul>
<li><b>DESCRIPTION="You have connected to a SvxLink node,\n"</b></li>
<li><b> "a voice services system for Linux with EchoLink\n"</b></li>
<li><b> "support.\n"</b></li>
<li><b> "Check out http://svxlink.sf.net/ for more info\n"</b></li>
<li><b> "\n"</b></li>
<li><b> "QTH: My_QTH\n"</b></li>
<li><b> "QRG: Simplex link on ???.??? MHz\n"</b></li>
<li><b> "CTCSS: My_CTCSS_fq_if_any Hz\n"</b></li>
<li><b> "Trx: My_transceiver_type\n"</b></li>
<li><b> "Antenna: My_antenna_brand/type/model\n"</b></li>
</ul>
Esiste
anche la possibilità di accettare, rifiutare o limitare il numero di
nodi creando una white-list, black-list. Impostando le righe interessate consentirete cosi
l'accesso dal web, o via radio, solo ai nominativi inseriti.</div>
<div>
<br />
Per esempio, se volessimo consentire l'accesso al nostro nodo esclusivamente ad alcuni nominativi, basta editare la riga seguente:</div>
<br />
Togliere il <b>#</b> da ACCEPT_INCOMING<br />
<b><br /></b>
<br />
<ul>
<li><b>ACCEPT_INCOMING=^(NOMINATIVO1|NOMINATIVO1-L|NOMINATIVO2|NOMINATIVO3)$</b></li>
</ul>
<br />
Ricordatevi di inserire lo stesso nominativo registrato con <b>-L</b> (link) oppure single user, cioè senza <b>-L</b> o <b>-R</b>. Ogni nominativo ha un id echolink univoco. Nominativo, nominativo-L e nominativo -R, sono nodi differenti.<br />
<br />
Nella
man-page del file ModuleEchoLink.conf (link in basso) trovate tutte le
possibilità, opzioni e combinazioni offerte dalle seguenti direttive:<br />
<b></b><br />
<ul>
<li><b>#DROP_INCOMING=^()$</b></li>
<li><b>#REJECT_INCOMING=^()$</b></li>
<li><b>#ACCEPT_INCOMING=^(.*)$</b></li>
<li><b>#REJECT_OUTGOING=^()$</b></li>
<li><b>#ACCEPT_OUTGOING=^(.*)$</b></li>
<li><b>#REJECT_CONF=0</b></li>
<li><b>#CHECK_NR_CONNECTS=2,300,120</b></li>
<li><b>..........................................................</b></li>
<li><b>MAX_QSOS=10</b></li>
<li><b>MAX_CONNECTIONS=11</b></li>
</ul>
Togliete il cancelletto alla direttiva da abilitare e inserite i vostri nominativi. Buona personalizzazione.<br />
<br />
<a href="http://svxlink.sourceforge.net/man/man5/ModuleEchoLink.conf.5.html" target="_blank">http://svxlink.sourceforge.net/man/man5/ModuleEchoLink.conf.5.html</a>Biagio La Fauci IT9FDPhttp://www.blogger.com/profile/17819145852822412886noreply@blogger.com0tag:blogger.com,1999:blog-2593594334868302719.post-8393505115526063052015-09-19T12:54:00.004+02:002017-09-14T18:07:06.655+02:00IP staticoAggiornato il 14 sett. 2017 <br />
<br />
<b><b>Configurazione ip statico Debian</b> Wheezy</b><br />
<br />
<div>
<div>
<div>
Guida valida per versioni senza interfaccia grafica. <br />
<br />
Per rendere statico l'ip del vostro raspberry potete seguire due strade. Riservare un ip associato al mac del raspberry nella sezione
client list DHCP reservation del router. Oppure impostarlo manualmente editando un file di sistema.<br />
<br />
Per la prima soluzione bisogna conoscere l'indirizzo mac della scheda di rete del raspberry. Digitate <b>sudo ifconfig</b> nella shell. Segnatevi il mac della scheda
interessata e inseritelo nella configurazione del router associandogli
un ip nel suo intervallo utile di indirizzi DHCP.<br />
<br />
Solo per non ammattire, nel caso abbiate modificato in precedenza il file /etc/network/interfaces, accertatevi che sia impostato il dhcp e non static nella riga <b>iface eth0 inet dhcp</b>. Anche il nome della scheda di rete lan dovrebbe essere eth0. Per il wifi è wlan0.<br />
<br />
Cosi facendo ci
penserà il router ad impostare sempre lo stesso ip al raspberry. Con questa soluzione eviterete collisioni di ip e potrete cambiarlo facilmente in qualsiasi momento intervenendo sul router.<br />
<br />
<a name='more'></a><br />
Se il vostro router non prevede questa funzionalità, per renderlo statico dovrete mettere mano al
file <b>/etc/network/interfaces</b>.</div>
<br />
Assegnate un ip fuori dall'intervallo DHCP (verificatelo nella sezione DHCP del vostro router) in modo da non creare collisioni con altri indirizzi assegnati dinamicamente.<br />
<br />
Se il DHCP usa tutto l'intervallo di ip della rete in uso e non potete modificarlo, impostatelo distante dall'indirizzo del router. 210 andrà più che bene. Vedi esempio sotto.<br />
<br />
Questa potrebbe essere una soluzione del file <b>/etc/network/interfaces</b> <br />
<br />
auto lo<br />
iface lo inet loopback</div>
<div>
<br />
allow-hotplug eth0<br />
iface eth0 inet dhcp<br />
<br />
allow-hotplug wlan0<br />
iface wlan0 inet manual<br />
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf<br />
iface default inet static<br />
address 192.168.1.220<br />
netmask 255.255.255.0<br />
network 192.168.1.0<br />
broadcast 192.168.1.255<br />
gateway 192.168.1.1<br />
#dns-nameservers 8.8.8.8 8.8.4.4</div>
<br />
In questo caso la rete Wi-Fi ha indirizzo statico mentre eth0 usa il DHCP.</div>
<br />
<b>Un'altra possibile soluzione:</b><br />
<br />
auto lo<br />
iface lo inet loopback<br />
<br />
iface eth0 inet static<br />
address 192.168.1.210<br />
gateway 192.168.1.1<br />
netmask 255.255.255.0<br />
<br />
allow-hotplug wlan0<br />
iface wlan0 inet manual<br />
wpa-roam /etc/wpa_supplicant/wpa_supplicant.conf<br />
iface default inet dhcp<br />
<div>
<br />
Qui la scheda eth0 usa un ip statico mentre la rete wi-fi usa il DHCP.</div>
<div>
<br />
<b>Configurazione ip statico Debian Jessie.</b> <br />
<br />
In quest'ultima versione la configurazione per l'assegnazione di un ip statico è leggermente diversa. Non bisogna modificare il file /etc/network/interface. Per impostarlo bisogna editare il file /etc/dhcpcd.conf ed aggungere alla fine del file le seguenti righe:<br />
<b><br /></b>
<b>sudo nano /etc/dhcpcd.conf</b><br />
<br />
#configurazione ip statico eth0<br />
interface eth0<br />
static ip_address=192.168.1.210/24<br />
static routers=192.168.1.1<br />
static domain_name_servers=8.8.8.8,8.8.4.4<br />
<br />
Questa configurazione andrà ad impostare la scheda eth0. Aggiungete le stesse righe, modificando l'ip e il nome dell'interfaccia, anche per la scheda di rete wifi. <b>sudo ifconfig</b> per verificare il nome della scheda. <br />
<br />
<b>Impostiamo le credenziali d'accesso per le nostre reti wifi (wheezy e jessie)</b><br />
<br />
Se
decidete di utilizzare la rete wifi è necessario inserire il nome della rete wifi a cui collegarsi e la rispettiva password d'accesso. Bisogna editare il file
/etc/wpa_supplicant/wpa_supplicant.conf ed inserire le credenziali della vostra rete wireless:</div>
<b><br />sudo nano /etc/wpa_supplicant/wpa_supplicant.conf</b><br />
<div>
<br />
È possibile inserire più di una rete con diverse credenziali:</div>
<div>
<div class="sites-codeblock sites-codesnippet-block">
<br />
ctrl_interface=DIR=/var/run/wpa_supplicant GROUP=netdev<br />
update_config=1<br />
network={<br />
ssid="myssid1"<br />
psk="mypassword"<br />
priority=1<br />
}<br />
<br />
network={<br />
ssid="myssid2"<br />
psk="mypassword"<br />
priority=2<br />
}</div>
</div>
<br />
L'inserimento di più sezioni risulta comoda se avete la necessità di spostare il vostro
raspberry in luoghi diversi con accessi diversi. Inserite i dati secondo le vostre necessità nel file wpa_supplicant.conf. Per la priorità ha peso maggiore il numero maggiore. Pertanto, se nello stesso raggio di copertura sono presenti più reti, avrà priorità quella con numero più altro, nel nostro caso "myssid2".<br />
<br />
<b>Porte svxlink</b><br />
<br />
Per rendere svxlink raggiungibile dal web,
ricordatevi di aprire le porte 5198, 5199 nel router. La porta 5200
viene utilizzata in uscita, verso i server, per cui non è necessario
aprirla. Solitamente
nel menù del router questa configurazione si trova nella sezione virtual
server o nat. Queste porte vanno aperte verso l'ip
assegnato al raspberry (statico).Biagio La Fauci IT9FDPhttp://www.blogger.com/profile/17819145852822412886noreply@blogger.com0tag:blogger.com,1999:blog-2593594334868302719.post-48808816670164696422015-09-19T12:45:00.001+02:002018-09-09T14:48:10.915+02:00 Interfaccia audio UV-5R <h3 align="left" id="sites-page-title-header">
</h3>
<br />
Vediamo le connessioni audio dal Baofeng UV-5R alla chiavetta audio usb
inserita nel raspberry. La seguente soluzione non fa uso di trasformatori di disaccoppiamento 1:1. Cosi facendo non ho riscontrato problemi di ritorno radiofrequenza. L'audio è di buona qualità e non ci sono ronzii di fondo di alcun genere. L'uso dei trasformatori di disaccoppiamento è da preferire<br />
<a name='more'></a><br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkBrcPfE-BDImKWC06-ULzJToImNTivoFINQ7haa60-9w29PRX-OgmdkyRTqNApDiL_oUuCAA6Q3flmdSwoFgbYMREMIL94uwJ2W1uJ1jcnOsgoFyBeN7KtxljgPPQGWlrbWazgBWS84o/s1600/Audio-interface+uv-5r+saund+key.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="185" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgkBrcPfE-BDImKWC06-ULzJToImNTivoFINQ7haa60-9w29PRX-OgmdkyRTqNApDiL_oUuCAA6Q3flmdSwoFgbYMREMIL94uwJ2W1uJ1jcnOsgoFyBeN7KtxljgPPQGWlrbWazgBWS84o/s400/Audio-interface+uv-5r+saund+key.png" width="400" /></a></div>
<br />
Sul polo caldo del connettore esterno dell'altoparlante si presenta una tensione a vuoto poco superiore ai 4 volt
all'apertura dello squelch. Questa tensione fa al caso nostro per
attivare l'SQL_DET di svxlink. Nel secondo schema ho usato un fotoaccoppiatore per interfacciare la tensione proveniente dalla radio ai pin GPIO, questo per prevenire qualsiasi danno agli stessi ed eliminare fastidiosi inneschi e rientri rf. <span style="color: red;">Attenzione, i pin GPIO del raspberry sono collegati direttamente al processore e senza protezione alcuna, se vengono superati i 3,3 volt, rischiate di renderlo inutilizzabile!</span><br />
<br />
Ecco lo schema del ptt e
l'SQL_DET.<br />
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf6qD-sWWBj7R6xtCmL4CLBV8-L7iC9ZHNuVN6Po5A1e5tGCsyRmTw4NuWGNPO3byjo2DlhhIVmz1-2AOfT9QFBac2kgfqLg1sNEPnMiH_Kla9vjbes9mja4-6JKxQfq1Hb0o0AXHr69s/s1600/PTT%252BSQL_DET.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="385" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEjf6qD-sWWBj7R6xtCmL4CLBV8-L7iC9ZHNuVN6Po5A1e5tGCsyRmTw4NuWGNPO3byjo2DlhhIVmz1-2AOfT9QFBac2kgfqLg1sNEPnMiH_Kla9vjbes9mja4-6JKxQfq1Hb0o0AXHr69s/s400/PTT%252BSQL_DET.png" width="400" /></a></div>
<br />
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
Questi sono i livelli nel mio mixer (alsamixer) usando una scheda audio usb. Il volume della radio, nel mio caso, è posizionato quasi al massimo. Fate qualche prova guardando l'utput con tail -f /var/log/svxlink se il programma è attivo, come server (daemon), altrimenti visualizzatelo nell'output della shell. In caso di saturazione audio, vedrete un testo che vi segnalerà il superamento della soglia.<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
<br /></div>
<div class="separator" style="clear: both; text-align: center;">
</div>
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdj92K2_xRmPj1KyYjKVJeJXGDQKlPgdp1ZY_dhywCW0HrZOnudp7bJaGa6L82Y3vFqL3Srmt3i-811vAZZm5tuyx5QeD1_Q-BbROYyH3QRR8_clgJQKOKWBroyH2ZnM8XUWlRHZjnkgE/s1600/alsamixer.jpg" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="251" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEhdj92K2_xRmPj1KyYjKVJeJXGDQKlPgdp1ZY_dhywCW0HrZOnudp7bJaGa6L82Y3vFqL3Srmt3i-811vAZZm5tuyx5QeD1_Q-BbROYyH3QRR8_clgJQKOKWBroyH2ZnM8XUWlRHZjnkgE/s400/alsamixer.jpg" width="400" /></a></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
<div class="separator" style="clear: both; text-align: left;">
<br /></div>
Biagio La Fauci IT9FDPhttp://www.blogger.com/profile/17819145852822412886noreply@blogger.com0tag:blogger.com,1999:blog-2593594334868302719.post-55783823068301280642015-09-19T12:39:00.001+02:002018-01-16T07:51:27.083+01:00LogrotateAd installazione completata, nella cartella <b>/etc/logrotate.d</b> ho notato la mancanza dei file utili a far ruotare i file di log svxlink e remotetrx.<br />
<div>
<div>
<div>
<ul>
<li><b>Portatevi nella cartella: </b></li>
<li><b>cd /etc/logrotate.d</b></li>
</ul>
<div>
<a name='more'></a><br />
Verificate se esistono i file:<br />
<div class="sites-codeblock sites-codesnippet-block">
<ul>
<li><code> </code><b>ls -l</b></li>
</ul>
</div>
<br />
Se nella lista vedete svxlink e remotetrx non è necessario continuare.<b><br /></b></div>
<div>
<br />
Se non sono presenti createli cosi:</div>
Per svxlink:<br />
<ul>
<li><b>sudo nano svxlink</b></li>
</ul>
incollate le righe seguenti:<b></b><br />
<ul>
<li><b>/var/log/svxlink {</b></li>
<li><b> missingok</b></li>
<li><b> notifempty</b></li>
<li><b> weekly</b></li>
<li><b> create 0644 svxlink daemon</b></li>
<li><b> postrotate</b></li>
<li><b> killall -HUP svxlink</b></li>
<li><b> endscript</b></li>
<li><b>}</b></li>
</ul>
<b>Ctrl+o</b> per salvare e <b>Ctrl+x</b> per uscire</div>
<div>
<br /></div>
Per Remotetrx:<br />
<ul>
<li><b>sudo nano remotetrx</b></li>
</ul>
incollate le seguenti righe:<br />
<ul>
<li><b>/var/log/remotetrx {</b></li>
<li><b> missingok</b></li>
<li><b> notifempty</b></li>
<li><b> weekly</b></li>
<li><b> create 0644 svxlink daemon</b></li>
<li><b> postrotate</b></li>
<li><b> killall -HUP remotetrx</b></li>
<li><b> endscript</b></li>
<li><b>}</b></li>
</ul>
<b>Ctrl+o</b> per salvare e <b>Ctrl+x</b> per uscire</div>
Fatto!
Adesso i file di log nella cartella /var/log verranno ruotati ogni
settimana, fino ad un massimo di quattro, per poi essere definitivamente
cancellati.</div>
Se volete approfondire l'argomento cercate logrotate sul web.<br />
<br />Biagio La Fauci IT9FDPhttp://www.blogger.com/profile/17819145852822412886noreply@blogger.com0tag:blogger.com,1999:blog-2593594334868302719.post-36408204836466379612015-09-19T12:36:00.006+02:002018-03-23T15:30:58.437+01:00MacroAggiornato il 23-03-2018 <br />
<br />
Le
macro sono configurabili nel file /etc/svxlink/svxlink.conf. Servono a
velocizzare le connessioni quando siamo in giro con il nostro portatile. <br />
<br />
Per esempio, digitando <b>D1#</b> dalla tastiera dtmf della radio, sarà
possibile collegarsi all'ID memorizzato nella macro n°1.<br />
<br />
Una volta registrato il vostro nominativo sul sito echolink, vi verrà assegnato un numero composto da sei cifre. Uno per ognuno dei tre nominativi disponibili nel caso vogliate abilitarli tutti. -L link, -R ripetitore e il solo nominativo, utilizzabile ad esempio dall'applicazione del vostro telefonino o pc. Ognuno di questi è un ID univoco. Scriveteli e conservateli.<br />
<a name='more'></a><br />
Per le registrazioni -L e -R non è necessario ripetere l'intera procedura, basterà richiederla via e-mail.<br />
<br />
Nel caso l'abbiate smarrito, verificate sul sito echolink
l'associazione nominativo numero nodo. Come dicevo, solitamente sono
sei cifre (utenti non a pagamento) ma anche a quattro e cinque per quelli a
pagamento.<br />
<br />
Nel file svxlink.conf, portatevi nella sezione [Macros], vedrete delle righe già impostate.<br />
Una possibile soluzione potrebbe essere questa:<br />
<br />
<div class="sites-codeblock sites-codesnippet-block">
<b><code>[Macros]</code></b><br />
<b><code>1=EchoLink:254857#Biagio IT9FDP</code></b><br />
<div>
<b><code></code></b></div>
<div>
<b><code>2=EchoLink:831575#R6-IR9K-R</code></b></div>
</div>
<br />
Nell'esempio precedente c'è il mio nodo, senza estensione, e quello del ripetitore locale R6-IR9K-R Dinnammare Messina.<br />
<br />
<div>
A questo punto, se dalla testiera della radio digito <b>D2#</b>
si attiverà subito il modulo echolink e successivamente la connessione al nodo R6-IR9K-R. Nel caso non sia raggiungibile riceverete un avviso vocale. Il
mio nodo single user sarà raggiungibile digitando <b>D1#</b>. </div>
<br />
Buona personalizzazione.Biagio La Fauci IT9FDPhttp://www.blogger.com/profile/17819145852822412886noreply@blogger.com0tag:blogger.com,1999:blog-2593594334868302719.post-68512244448688288692015-09-19T12:32:00.001+02:002017-03-29T12:18:41.495+02:00Gruppo continuità per raspberryEcco
come realizzare un semplicissimo, ma funzionale, gruppo di continuità
per il piccolo raspberry, e non solo, con l'impiego di un ponte
raddrizzatore, una resistenza e una batteria ricaricabile al piombo o
gel.<br />
<div>
<div>
<br />
<a name='more'></a></div>
Molto importante, è necessario, staccare il carico dalla batteria al
raggiungimento degli undici volt in fase di scarica; questo per evitare di
danneggiarla. Con un comparatore il controllo risulta fattibile facilmente.
Un secondo comparatore potrebbe essere utile per verificare la tensione della batteria prossima agli undici volt, diciamo 11,3 - 11,4 volt, in
modo da poter attivare lo shutdown tramite script del raspberry, o pc che sia, prima ancora del controllo precedente. Il tutto risulta facilmente realizzabile leggendo lo stato logico di un pin GPIO ad intervalli regolari tramite un script.<br />
<br />
Immaginiamo,
invece, un altro scenario.... Una volta avviato lo shutdown, potrebbe
verificarsi il ritorno della rete elettrica, per cui la tensione di
scarica non ha raggiunto gli undici volt, il comparatore per il controllo degli 11 volt non è intervenuto e l'alimentazione dalla
batteria non si è disattivata. In questa
situazione ci ritroveremmo con il raspberry alimentato, ma in realtà spento. Per far ripartire il sistema l'unica soluzione sarà quella di togliere e ridare l'alimentazione. Qui sorgono dei problemi, se il sistema è posizionato in punti non facilmente raggiungibili,
come postazioni montane ecc... Per ovviare al problema sarà sufficiente una scheda
toni dtmf collegata alla radio, da usare come interruttore per la sola alimentazione del raspberry.
Cosi facendo riporteremo in vita il nostro raspberry.</div>
<br />
In costruzione....Biagio La Fauci IT9FDPhttp://www.blogger.com/profile/17819145852822412886noreply@blogger.com0tag:blogger.com,1999:blog-2593594334868302719.post-82783354516937686282015-09-19T12:28:00.002+02:002017-10-09T15:13:17.293+02:00Start/stop svxlinkQuesti i comandi per avviare svxlink:<br />
<div>
<br /></div>
<div>
<b>sudo svxlink</b> per avviare svxlink e <b>sudo remotetrx</b> per avviare remotetrx.</div>
<div>
Nella
shell si vedrà l'output del programma e sarà possibile inserire i comandi a fine pagina. In pratica sarà una sessione interattiva su shell.<br />
<br />
Come detto precedentemente, potremmo, per esempio, inserire i comandi per attivare connessioni, moduli, attivare le macro, chiudere collegamenti a nodi e quant'altro. <br />
<a name='more'></a></div>
<div>
<br />
Attiviamo il modulo echolink:</div>
<div>
<br />
Dopo aver digitato <b>sudo svxlink</b> vedrete sul terminale, in rapida sequenza, l'attivazione del ricevitore e trasmettitore, il caricamento dei moduli inseriti nella direttiva MODULES nel file /etc/svxlink.conf e infine la corretta connessione ad uno dei server echolink.<br />
<br />
Digitate adesso <b>2</b> e subito dopo <b>#</b><br />
<b> </b> </div>
<div>
Verrà attivato il PTT e l'annuncio: Activating echolink!</div>
<div>
<br />
Per disattivare il modulo echolink digitate <b>#</b></div>
<div>
<br />
Ascolterete: deactivating echolink!</div>
<div>
<br /></div>
<div>
Se chiudete la shell si fermerà anche il programma.</div>
<div>
<br /></div>
<div>
Per fermarlo, invece, <b>Ctrl+c</b>, cosi facendo tornerete al prompt.</div>
<div>
<br />
<div>
Per avviare svxlink o remotetrx e liberare la shell:<br />
<div class="sites-codeblock sites-codesnippet-block">
<b><span style="font-weight: normal;"><code><br /></code></span></b> Per svxlink:<br />
<ul>
<li><b>sudo svxlink --daemon --config=/etc/svxlink/svxlink.conf --logfile=/var/log/svxlink</b></li>
</ul>
Per remotetrx:<br />
<ul>
<li><b>sudo remotetrx --daemon --config=/etc/svxlink/remotetrx.conf --logfile=/var/log/remotetrx</b></li>
</ul>
</div>
<b>
</b><b> </b><b> </b></div>
<div>
Per fermare il programma in uso:</div>
<div class="sites-codeblock sites-codesnippet-block">
<ul>
<li><b>sudo killall svxlink</b></li>
<li><b>sudo killall remotetrx</b></li>
</ul>
</div>
<br />
Non è possibile far funzionare contemporaneamente con lo stesso hardware le due applicazioni svxlink e remotetrx o una seconda istanza dello stesso.<br />
<br />
Nel caso venga lanciato erroneamente uno dei comandi sopra descritti mentre attivo svxlink o remtetrx, il software di fatto si bloccherà andando in errore. Verrà attivato il pin di trasmissione bloccando il PTT in TX.<br />
<br />
Per sbloccare l'applicazione, andata in errore, e liberare cosi il PTT, date da terminale il comando sudo killall nome applicazione. Per esempio <b>sudo killall svxlink</b>. Si dovrebbe fermare l'applicazione con conseguente disattivazione del PTT. (Errore riscontrato con cp2102. Non ho avuto modo di verificarlo con GPIO)<br />
<br />
<div>
Per avviare svxlink all'accensione del raspberry, gli stessi comandi vanno inseriti, senza sudo, nel file <b>/etc/rc.local</b>, alla fine delle righe di inizializzazione GPIO (se usate GPIO) e prima di <b>exit 0</b>. <br />
<br />
Per remotetrx:<br />
<ul>
<li><b>remotetrx --daemon </b><b><b>--config=/etc/svxlink/remotetrx.conf </b>--logfile=/var/log/remotetrx</b></li>
</ul>
Per svxlink:</div>
<div>
<ul>
<li><b>svxlink --daemon </b><b><b>--config=/etc/svxlink/svxlink.conf </b>--logfile=/var/log/svxlink</b></li>
</ul>
<br /></div>
Se non esistono, i file di log verranno generati dal software al primo avvio.</div>
<div>
<br />
Comandi svxlink:</div>
<div>
* informazioni sul proprio nodo echolink</div>
<div>
0# Play help</div>
<div>
1# Lista dei nodi collegati</div>
<div>
2# Attiva il modulo echolink</div>
<div>
4# Riconnette l'ultimo nodo connesso</div>
<div>
7# Usato per disconnettere una specifica stazione dalla lista</div>
<div>
31# Connessione casuale ad un link o ripetitore<br />
32# Connessione casuale ad una conferenza</div>
<div>
50# Disattiva la modalità solo ascolto</div>
<div>
51# Attiva la modalità solo ascolto</div>
6*(??) Usa la connessione tramite nominativoBiagio La Fauci IT9FDPhttp://www.blogger.com/profile/17819145852822412886noreply@blogger.com0tag:blogger.com,1999:blog-2593594334868302719.post-51918170337087330652015-09-19T12:24:00.002+02:002018-04-28T16:59:58.584+02:00GpioAggiornato il 28-01-2017 <br />
<br />
Settiamo i pin GPIO per rilevare l'apertura dello squelch e attivare il PTT<span style="color: red;"></span>.<br />
<span style="color: red;"><br /></span>
<span style="color: red;"><b><u>Attenzione a non superare i 3.3 Volt sui pin GPIO</u>!!</b></span><br />
<br />
<b><span style="color: red;">I
pin GPIO sono collegati direttamente al processore, senza le dovute
precauzioni si corre il rischio di bruciarlo definitivamente e renderlo cosi inutilizzabile!! Usate sempre un'interfaccia modi digitali con fotoaccoppiatori.</span></b><br />
<br />
<div>
Inizializziamo i pin GPIO all'accensione modificando il file /etc/rc.local.</div>
<a name='more'></a>Eseguiamo il login via ssh e editiamo il file rc.local:<br />
<ul>
<li><b>sudo nano /etc/rc.local</b>
</li>
</ul>
<div>
Inseriamo le seguenti righe prima di <b>exit 0</b></div>
<div>
<ul>
<li><b># PTT OUT GPIO17></b></li>
<li><b>sleep 5</b></li>
<li><b>echo 17 > /sys/class/gpio/export</b></li>
<li><b>echo 'out' > /sys/class/gpio/gpio17/direction</b></li>
<li><b>echo 0 > /sys/class/gpio/gpio17/value</b></li>
<li><b># SQL_DET IN GPIO27</b></li>
<li><b>sleep 2</b></li>
<li><b>echo 27 > /sys/class/gpio/export</b></li>
<li><b>echo 'in' > /sys/class/gpio/gpio27/direction</b></li>
</ul>
</div>
<div>
<br />
<b>Ctrl+o</b> per salvare e successivamente <b>Ctrl+x</b> per uscire dall'editor.</div>
<div>
<br /></div>
<div>
Cosi
facendo, ad ogni avvio, verranno inizializzati il pin GPIO17 (pin 11) per
la trasmissione e il GPIO27 (pin 13) per la ricezione.</div>
<div>
<br />
A questo punto configuriamo i pin GPIO in <b>/etc/svxlink/svxlink.conf</b> oppure <b>/etc/svxlink/remotetrx.conf</b> nella sezione [Rx1] e [Tx1].</div>
<div>
<br />
Nell'esempio seguente le due righe interessate per il trasmettitore.</div>
<div>
Con l'editor nano editate il file:</div>
<div>
</div>
<div class="sites-codeblock sites-codesnippet-block">
<div>
<br />
<b>sudo nano /etc/svxlink/svxlink.conf
</b></div>
</div>
<div>
</div>
<br />
La sezione TX:<br />
<div class="sites-codeblock sites-codesnippet-block">
<div>
<br /></div>
<div>
[Tx1]<br />
TYPE=Local</div>
</div>
AUDIO_DEV=alsa:plughw:1<br />
AUDIO_CHANNEL=0<br />
#PTT_TYPE=SerialPin<br />
<b>PTT_TYPE=GPIO</b><br />
PTT_PORT=/dev/ttyS0<br />
#PTT_PIN=DTRRTS<br />
<b>PTT_PIN=gpio17</b><br />
#HID_DEVICE=/dev/hidraw3<br />
#HID_PTT_PIN=GPIO3<br />
#SERIAL_SET_PINS=DTR!RTS<br />
#PTT_HANGTIME=1000<br />
TIMEOUT=300<br />
TX_DELAY=500<br />
#CTCSS_FQ=136.5<br />
#CTCSS_LEVEL=9<br />
PREEMPHASIS=0<br />
DTMF_TONE_LENGTH=100<br />
DTMF_TONE_SPACING=50<br />
DTMF_DIGIT_PWR=-15<br />
#MASTER_GAIN=0.0
<br />
<br />
La sezione RX:<br />
<div>
<div class="sites-codeblock sites-codesnippet-block">
<br />
[Rx1]<br />
TYPE=Local</div>
</div>
AUDIO_DEV=alsa:plughw:1<br />
AUDIO_CHANNEL=0<br />
<b>SQL_DET=GPIO</b><br />
SQL_START_DELAY=0<br />
.............................<br />
#EVDEV_OPEN=1,163,1<br />
#EVDEV_CLOSE=1,163,0<br />
<b>GPIO_SQL_PIN=gpio27</b><br />
#PTY_PATH=/tmp/rx1_sql<br />
#HID_DEVICE=/dev/hidraw3<br />
#HID_SQL_PIN=VOL_UP
<br />
<div>
<br />
<b>Ctrl+o</b> per salvare <b>Ctrl+x </b>per uscire.<br />
<br />
Il
gioco è fatto! Basta portare a livello logico 1 il GPIO27 con <span style="color: red;">una
tensione non superiore ai 3,3 volt</span> (ma ne bastano anche 3) e il software rileverà
l'apertura dello squelch del ricevitore.<br />
<br />
Per la trasmissione stessa
cosa, ma in uscita. Il GPIO17 si porterà a livello logico 1, 3,3 volt, quando il
software attiverà il PTT.<br />
Con un semplice transistor collegato ad un fotoaccoppiatore sarà possibile attivare il PTT della radio (vedi schema
sotto) </div>
<div>
<br />
Come detto prima, in ricezione, bisognerà fornire al GPIO27 una tensione per l'apertura dello squelch. Se questa soluzione non è disponibile, sarà possibile usare comunque la funzione
vox, certamente molto meno precisa del rilevamento con tensione, ma ugualmente funzionale.</div>
<div>
<br />
Qui l'esempio per l'utilizzo con vox:<br />
<br />
[Rx1]<br />
TYPE=Local<br />
AUDIO_DEV=alsa:plughw:1<br />
AUDIO_CHANNEL=0<br />
<b>SQL_DET=VOX</b><br />
SQL_START_DELAY=0<br />
VOX_FILTER_DEPTH=20<br />
VOX_THRESH=1000 <br />
.............................<br />
<br />
Aggiungo anche un esempio sull'utilizzo del rilevamento con toni sub-audio.<br />
<br />
<br />
[Rx1]<br />
TYPE=Local<br />
AUDIO_DEV=alsa:plughw:1<br />
AUDIO_CHANNEL=0<br />
<b>SQL_DET=CTCSS</b><br />
SQL_START_DELAY=0<br />
#CTCSS_MODE=2<br />
<b>CTCSS_FQ=94.8</b><br />
#CTCSS_SNR_OFFSET=0<br />
#CTCSS_OPEN_THRESH=15<br />
#CTCSS_CLOSE_THRESH=9<br />
#CTCSS_BPF_LOW=60<br />
#CTCSS_BPF_HIGH=270 <br />
.............................<br />
<br />
In questo caso il ricevitore non deve avere filtri passa alto nella sezione audio BF dopo il discriminatore. Nel caso ci sia il filtro sarà comunque possibile fare qualche prava funzionale con il tono più alto, 250.3. Naturalmente solo per prova, i toni utilizzati dovranno essere regionali, quelli assegnati dal ministero.<br />
<br /></div>
<div>
Testiamolo avviando il programma con <b>sudo svxlink</b>. Verifichiamo l'output nella shell. Proviamo a far ricevere un segnale al
nostro ricevitore; se tutto è corretto, vedrete, sempre nella shell, in tempo reale, la riga che conferma l'avvenuta apertura dello
squelch. Ctrl+c per fermare svxlink e tornare al prompt.</div>
<br />
<a href="http://it9fdp.blogspot.it/2015/09/startstop-svxlink.html">Avviare svxlink all'accenzione del raspberry. </a><br />
<br />
<div class="separator" style="clear: both; text-align: center;">
<a href="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ6Cjl37Wbp30m5SaEmav10285et55k3DeF8dwa1288lyilSUHdGj0briR1N_oIsVCwyZ21x7ABGs8DrVqxtJNbyexNWMlQ38-7CutulptRCvwIvsSb9X2_tGYh_PRLfGdW9HwrbcoYns/s1600/PTT%252BSQL_DET.png" imageanchor="1" style="margin-left: 1em; margin-right: 1em;"><img border="0" height="308" src="https://blogger.googleusercontent.com/img/b/R29vZ2xl/AVvXsEgJ6Cjl37Wbp30m5SaEmav10285et55k3DeF8dwa1288lyilSUHdGj0briR1N_oIsVCwyZ21x7ABGs8DrVqxtJNbyexNWMlQ38-7CutulptRCvwIvsSb9X2_tGYh_PRLfGdW9HwrbcoYns/s320/PTT%252BSQL_DET.png" width="320" /></a></div>
<br />Biagio La Fauci IT9FDPhttp://www.blogger.com/profile/17819145852822412886noreply@blogger.com2tag:blogger.com,1999:blog-2593594334868302719.post-54518809095424178052015-09-19T12:21:00.002+02:002016-04-27T09:07:58.896+02:00File rc.localQueste le righe da inserire nel file /etc/rc.local per attivare, all'accensione del raspberry, le connessioni GPIO interessate.<br />
Nei commenti ho specificato la risorsa e la direzione.<br />
<a name='more'></a><ul>
<li><b># PTT OUT GPIO17</b></li>
<li><b>sleep 5</b></li>
<li><b>echo 17 > /sys/class/gpio/export</b></li>
<li><b>echo 'out' > /sys/class/gpio/gpio17/direction</b></li>
<li><b>echo 0 > /sys/class/gpio/gpio17/value</b></li>
<li><b># SQL_DET IN GPIO27</b></li>
<li><b>sleep 2</b></li>
<li><b>echo 27 > /sys/class/gpio/export</b></li>
<li><b>echo 'in' > /sys/class/gpio/gpio27/direction</b></li>
<li><b># Set pin 22 out for ptt vocal</b></li>
<li><b>sleep 2</b></li>
<li><b>echo 22 > /sys/class/gpio/export</b></li>
<li><b>echo 'out' > /sys/class/gpio/gpio22/direction</b></li>
<li><b>echo 0 > /sys/class/gpio/gpio22/value</b></li>
<li><b># Set pin 23 out for fun</b></li>
<li><b>sleep 2</b></li>
<li><b>echo 23 > /sys/class/gpio/export</b></li>
<li><b>echo 'out' > /sys/class/gpio/gpio23/direction</b></li>
<li><b>echo 0 > /sys/class/gpio/gpio23/value</b></li>
<li><b>#Set pin 24 in for verify power supply</b></li>
<li><b>sleep 2</b></li>
<li><b>echo 24 > /sys/class/gpio/export</b></li>
<li><b>echo "in" > /sys/class/gpio/gpio24/direction</b></li>
</ul>
Biagio La Fauci IT9FDPhttp://www.blogger.com/profile/17819145852822412886noreply@blogger.com0tag:blogger.com,1999:blog-2593594334868302719.post-15593079921155228322015-09-19T12:17:00.003+02:002017-03-29T08:39:12.363+02:00Dtmf exec scriptVediamo come far eseguire uno script digitando un codice dalla tastire DTMF della radio.<br />
<div>
<div>
<div>
<div>
<div>
<div>
Con
questa opzione possiamo anche attivare relè, effettuare verifiche su
pin GPIO e quant'altro.<br />
<br />
Per sfruttare questa funzionalità, svxlink deve
essere correttamente installato e avviato.</div>
<br />
Create una cartella chiamata <b>local</b>, dentro la cartella <b>/usr/share/svxlink/events.d/</b> </div>
<b></b><br />
<ul>
<li><b>sudo mkdir /usr/share/svxlink/events.d/local</b></li>
</ul>
<div>
<a name='more'></a></div>
Dentro questa cartella creiamo un file chiamato Logic.tcl<b> </b><br />
<ul>
<li><b>sudo nano Logic.tcl</b></li>
</ul>
</div>
</div>
Copiamo le seguenti righe:<br />
<b><br /></b>
<br />
<ul>
<li><b>###############################################################################</b></li>
<li><b>#</b></li>
<li><b># Generic Logic event handlers (local extension)</b></li>
<li><b>#</b></li>
<li><b>###############################################################################</b></li>
<li><b> #</b></li>
<li><b># This is the namespace in which all functions and variables below will exist.</b></li>
<li><b>#</b></li>
<li><b>namespace eval Logic {</b></li>
<li><b> #</b></li>
<li><b># Executed when a DTMF command has been received</b></li>
<li><b># cmd - The command</b></li>
<li><b>#</b></li>
<li><b># Return 1 to hide the command from further processing is SvxLink or</b></li>
<li><b># return 0 to make SvxLink continue processing as normal.</b></li>
<li><b>#</b></li>
<li><b>proc dtmf_cmd_received {cmd} {</b></li>
<li><b> global active_module</b></li>
<li><b> if {$active_module != "" && [string index $cmd 0] != "*"} {</b></li>
<li><b> return 0</b></li>
<li><b> }</b></li>
<li><b> if {[string index $cmd 0] == "*"} {</b></li>
<li><b> set cmd [string range $cmd 1 end]</b></li>
<li><b> }</b></li>
<li><b> if {$cmd == "81"} {</b></li>
<li><b> puts "Eseguo test script 81"</b></li>
<li><b> playSilence 1000</b></li>
<li><b> playTone 880 60 150;</b></li>
<li><b> playTone 440 60 100;</b></li>
<li><b><b>exec /home/pi/script/81test.sh &</b> </b></li>
<li><b>return 1</b></li>
<li><b> }</b></li>
<li><b> if {$cmd == "82"} {</b></li>
<li><b> puts "Eseguo test script 82"</b></li>
<li><b> playSilence 1000</b></li>
<li><b> playTone 880 60 150;</b></li>
<li><b> playTone 440 60 100;</b></li>
<li><b><b>exec /home/pi/script/82test.sh &</b> </b></li>
<li><b>return 1</b></li>
<li><b> }</b></li>
<li><b> if {$cmd == "83"} {</b></li>
<li><b> puts "Eseguo test script 83"</b></li>
<li><b> playSilence 1000</b></li>
<li><b> playTone 880 60 150;</b></li>
<li><b> playTone 440 60 100;</b></li>
<li><b><b>exec /home/pi/script/83test.sh &</b> </b></li>
<li><b>return 1</b></li>
<li><b> }</b></li>
<li><b> if {$cmd == "84"} {</b></li>
<li><b> puts "Esecuzione codice CW"</b></li>
<li><b> playSilence 1000</b></li>
<li><b> CW::play "CQ"</b></li>
<li><b> return 1</b></li>
<li><b> }</b></li>
<li><b> return 0</b></li>
<li><b> } </b></li>
<li><b># end of namespace</b></li>
<li><b>}</b></li>
<li><b> #</b></li>
<li><b># This file has not been truncated</b></li>
<li><b>#</b></li>
</ul>
</div>
<div>
Tutti gli script devono essere presenti e funzionanti nel percorso specificato alla riga <b>exec</b>. Ho aggiunto più sezioni per rendere meglio l'idea. Togliete quelle che non servono facendo attenzione alle parentesi graffe. L'ultima parte, codice 84, produce un codice cw "CQ".<br />
<br />
<u>Preparate e provate gli script prima di avviarli con questo sistema</u>.</div>
<br />
Adesso avviate svxlink; <b>sudo svxlink</b> e digitate dalla tastiera della radio il codice DTMF *81#<br />
Verrà attivato lo script <b>/home/pi/script/81test.sh</b> </div>
Alla fine dello script verrà eseguito un secondo di silenzio e poi due toni in rapida sequenza, questo per avere la conferma della corretta ricezione del codice dtmf.<br />
<br />
<div>
Come già detto, svxlink
deve essere attivo per poter sfruttare questa funzionalità. Può essere utile non
caricare alcun modulo commentando con # le seguenti righe nel file
/etc/svxlink.conf alla sezione della logica interessata,
SimplexLogic o RepeaterLogic:<br />
<div class="sites-codeblock sites-codesnippet-block">
<ul>
<li><b>#MODULES=ModuleEchoLink</b></li>
<li><b>#SHORT_IDENT_INTERVAL=10</b></li>
<li><b>#LONG_IDENT_INTERVAL=60</b></li>
</ul>
</div>
<br />
Cosi facendo, svxlink non si collegherà ad alcun server echolink e il software sarà attivo esclusivamente per questa funzionalità, decoder dtmf.</div>
<div>
<br />
Con questa logica possiamo attivare svxlink con due file di configurazione diversi, svxlink1.conf e svxlink2.conf. Uno senza commenti, associato ad un codice dtmf, echolink attivo e collegato ai server echolink e l'altro con le righe commentate, echolink non attivo. Cosi facendo svxlink sarà sempre "in ascolto" e riconoscerà i codici dtmf. Aggiungerò alcuni esempi più in la.<br />
<br /></div>
Buon divertimento!Biagio La Fauci IT9FDPhttp://www.blogger.com/profile/17819145852822412886noreply@blogger.com0tag:blogger.com,1999:blog-2593594334868302719.post-70039211197603085102015-09-19T12:06:00.000+02:002018-01-09T16:04:08.998+01:00Rimuovere svxlink <div>
<div>
<div>
<div>
Questo
script, suggerito da Rob Janssen, elimina tutti i file del
programma. Ricordatevi di fare un backup dei file di configurazione
prima di cancellarli, ma non usateli in sostituzione ai nuovi, serviranno solo come
riferimento o promemoria.<br />
<br />
<a name='more'></a>Spesso
nelle nuove versioni vengono modificate-migliorate, aggiunte o rimosse voci, sostituire i file con versioni precedenti potrebbe
causare errori.</div>
<div>
<br />
I file di configurazione da salvare sono principalmente due:<br />
<ul>
<li><b>/etc/svxlink/svxlink.conf </b></li>
<li><b>/etc/svxlink/svxlink.d/ModuleEchoLink.conf</b></li>
</ul>
</div>
<div>
</div>
<div>
</div>
Create un file rmsvx.sh, va bene anche nella vostra home:</div>
<ul>
<li><b>sudo nano rmsvx.sh</b></li>
</ul>
</div>
<div>
Copiate il codice dal link sottostante e incollatelo nell'editor:<br />
<br />
<a href="http://sourceforge.net/p/svxlink/mailman/message/33063390/" target="_blank">http://sourceforge.net/p/svxlink/mailman/message/33063390/</a> <br />
<br />
Salvate con <b>Ctrl+o</b> e uscite con <b>Ctrl+x</b></div>
<div>
<br /></div>
Date i permessi di esecuzione al file appena creato:</div>
<ul>
<li><b>sudo chmod +x rmsvx.sh</b></li>
</ul>
<div>
Eseguitelo con</div>
<div>
<div class="sites-codeblock sites-codesnippet-block">
<ul>
<li>
<b>sudo ./rmsvx.sh</b></li>
</ul>
</div>
</div>
<div>
Rispondete <u>y</u> a tutte le domande. Fatto!</div>
Biagio La Fauci IT9FDPhttp://www.blogger.com/profile/17819145852822412886noreply@blogger.com0tag:blogger.com,1999:blog-2593594334868302719.post-44973998080245775942015-09-19T12:03:00.050+02:002022-04-19T15:52:21.464+02:00Installare svxlink<div>
<div>
<div>
<div></div><div><span style="color: #274e13;">18-4-2022 Aggiunta libreria </span><span style="color: #274e13;">libgpiod-dev. Aggiunta breve nota per l'avvio via systemctl.<br /></span></div><div><span style="color: #274e13;"> </span></div><div><span style="color: #274e13;">24-3-2022 Aggiunto </span><span style="color: #274e13;"><span style="color: #274e13;">in fase di compilazione </span>l'avvio via systemd. Aggiornate tcl8.6-dev tk8.6-dev all'ultima versione. Aggiunte note relative ad armbian su dispositivi diversi dal raspberry.<br /></span> <span style="color: #274e13;"><br /></span></div><div><span style="color: #274e13;">24-1-2021 Aggiunta libreria libogg-dev e nuova procedura installazione clip audio. <br /></span></div><div><span style="color: #274e13;"><br />23-4-2020 Aggiunta libreria libjsoncpp-dev causa errore cmake.</span></div><div>
<br />
<br />
Svxlink è un software sviluppato da Tobias Blomberg SM0SVX, installabile su sistemi linux unix. Serve fondamentalmente per collegare nodi distanti utilizzando il sistema echolink tramite la rete internet o intranet. Per lo scopo può essere impiegata una singola radio in simplex, oppure un rx e un tx in configurazione ponte radio, veicolando cosi il traffico voce con il metodo voip. L'hardware può essere un vecchio pc o meglio un piccolo raspberry dai consumi ridotti. Nelle ultime versioni di svxlink è consigliato un hardware di ultima generazione.<br />
<br />
Questa
guida è valida per Ubuntu, Debian, Raspbian wheezy, jessie, stretch, buster, bullseye e armbian testato su orange-pi 2. Nell'ultima versione è stato aggiunto svxreflector e svxserver permettendo di collegare più nodi svxlink in parallelo ai nodi echolink o in tutta autonomia.</div>
<div>
<a name='more'></a><br />
Per prima cosa bisogna installare tutte le dipendenze.</div>
Qui farò riferimento all'ultima versione di sviluppo disponibile su github.</div>
<div>
</div>
<div>
<br /></div>
Per l'installazione su raspberry preparate una schedina sd con il sistema operativo
installato e funzionante. Non spiego qui come fare, sul web si trova tanto
materiale.</div>
<div>
<br />
Eseguite il login via ssh. Prima di ogni cosa aggiornate il kernel:</div>
<div>
</div>
<div>
<div>
<br />
<ul>
<li><b>sudo rpi-update<br /><u><span style="background-color: #20124d;"><br /></span></u><u><span style="color: #20124d;">A fine aggiornamento riavviate:</span></u></b><br /><br /><b>sudo shutdown -r now</b><br /><b> </b><br />Riavviato il sistema, aggiornatelo:<b><br /></b></li>
<li><b>sudo apt-get update</b></li>
<li><b>sudo apt-get upgrade</b></li>
</ul>
</div>
</div>
Impiegherà qualche minuto, alla fine riavviate ancora. <br />
<br />
Adesso bisogna installare tutto il necessario per compilare il programma. Copiate e incollate nella shell tutto il blocco successivo.<br />
<ul></ul><b></b><ul style="text-align: left;"><li><b>sudo apt-get install build-essential sigc++ gcc g++ make cmake libgcrypt20-dev tk-dev libgsm1-dev libsigc++-2.0-dev tcl-dev libspeex-dev libasound2-dev alsa-utils librtlsdr-dev vorbis-tools libpopt-dev libssl-dev libopus-dev groff tcl8.6-dev tk8.6-dev git curl libcurl4-openssl-dev librtlsdr-dev rtl-sdr libjsoncpp-dev libogg-dev opus-tools speex libtool autoconf automake m4 libgpiod-dev</b></li></ul><ul></ul>Aggiungiamo l'utente svxlink al sistema. Per un corretto funzionamento bisogna aggiungere l'utente svxlink anche al gruppo dialout (grazie al suggerimento di Tony IS0HHA) Copiate e incollate il blocco successivo in grassetto.<br /><br />Su sistemi armbian, con gruppo gpio non presente, togliete gpio, pena errore nella creazione dell'utente svxlink.<br /><div>
<ul>
<li><b>sudo useradd -c "Echolink user" -G gpio,audio,dialout,plugdev,daemon -d /home/svxlink -m -s /sbin/nologin svxlink</b></li>
</ul>
</div>
Installiamo il ricevitore usb rtl2832 (Potete omettere questo passaggio se non volete utilizzarlo.<br />
<ul>
<li><b>sudo apt-get install libusb-1.0-0.dev</b></li>
<li><b>git clone git://git.osmocom.org/rtl-sdr.git</b></li>
<li><b>cd rtl-sdr</b></li>
<li><b>mkdir build</b></li>
<li><b>cd build</b></li>
<li><b>cmake ../</b></li>
<li><b>cmake -DINSTALL_UDEV_RULES=ON -DDETACH_KERNEL_DRIVER=ON ../</b></li>
<li><b>make</b></li>
<li><b>sudo make install</b></li>
<li><b>sudo ldconfig</b>
</li>
</ul>
</div>
<div>
</div>
<div>
<div>
Torniamo alla nostra home, digitando <b>cd</b></div><div><b> </b><br />
</div><div></div><div></div><div></div><div></div><div>Se avete la necessità di usare la parte grafica, installate qt4-default e impostate nel blocco successivo in grassetto, cmake <b>-DUSE_QT=ON</b><br />
<ul><li><b>sudo apt-get install qt4-default</b></li></ul>
Installiamo adesso svxlink:<br />
<ul></ul>
<ul>
<li><b>git clone https://github.com/sm0svx/svxlink.git </b></li>
<li><b>cd svxlink/src </b></li>
<li><b>mkdir build </b></li>
<li><b>cd build </b></li>
<li><b>cmake -DUSE_QT=OFF -DCMAKE_INSTALL_PREFIX=/usr -DSYSCONF_INSTALL_DIR=/etc -DLOCAL_STATE_DIR=/var ../ -DCMAKE_BUILD_TYPE=Release -DWITH_CONTRIB_SVXSERVER0.0.6=OFF -DWITH_SYSTEMD=ON cmake-gui ..</b></li>
<li> <b>make<br /></b></li>
<li><b>sudo make install</b></li>
<li><b>sudo ldconfig</b></li>
</ul>
</div>Installiamo le clip audio.</div><p>Versione 19.0....</p><ul style="text-align: left;"><li><b>cd /usr/share/svxlink/sounds/ </b></li><li><b>sudo wget https://github.com/sm0svx/svxlink-sounds-en_US-heather/releases/download/19.09.99.1/svxlink-sounds-en_US-heather-16k-19.09.99.1.tar.bz2<br /></b></li><li><b>sudo bunzip2 svxlink-sounds-en_US-heather-16k-19.09.99.1.tar.bz2</b></li><li><b>sudo tar -xvf svxlink-sounds-en_US-heather-16k-19.09.99.1.tar <br /></b></li><li><b>sudo cp -r en_US-heather-16k en_US</b></li></ul><p>Versione 18.03 e precedenti:<br />
</p><ul>
<li><b>cd /usr/share/svxlink/sounds/ </b></li>
<li><b>sudo curl -LO https://github.com/sm0svx/svxlink-sounds-en_US-heather/releases/download/18.03.1/svxlink-sounds-en_US-heather-16k-18.03.1.tar.bz2</b><b> </b></li>
<li><b>sudo tar xvjf svxlink-sounds-en_US-heather-16k-18.03.1.tar.bz2</b></li>
<li><b>sudo ln -s en_US-heather-16k en_US </b></li></ul><p>Per il corretto funzionamento e utilizzo dei pin gpio, fate riferimento
all'hardware in uso per l'identificazione degli stessi. Su schede
diverse dal raspberry, tipo orange e altre, la numerazione e posizione è differente.<br /><br />Per avviare correttamente
l'applicazione e la configurazione dei pin gpio, sarà necessario usare
systemd. Verranno così inizializzati i pin richiesti nel
file gpio.conf e successivamente svxlink.conf per l'utilizzo definitivo.
<br /><br />Aggiungerò, appena possibile, una descrizione dettagliata per
l'avvio via systemctl con gli esempi del caso. Vi consiglio di documentarvi se non conoscete systemd e volete farvi un'idea sulla logica di funzionamento. Sul web si trova tanto materiale ben
scritto con tanti esempi. I file creati in fase di compilazione e installazione non
necessitano di modifiche.<br /></p><p>Adesso bisogna configurare i due file <b>/etc/svxlink/svxlink.d/ModuleEchoLink.conf</b> e <b>/etc/svxlink/svxlink.conf</b><br />
<br />
Nel primo file di configurazione, /etc/svxlink/svxlink.d/ModuleEchoLink.conf, bisogna inserire le credenziali, User, Password, Nome e poche altre informazioni, per accedere ai server echolink. Nel secondo, /etc/svxlink/svxlink.conf, bisogna settare correttamente il tipo di configurazione rx, tx, nominativo e logica di funzionamento in base all'interfaccia usata. Seguite le guide successive:<br />
</p><div>
<br />
<a href="http://it9fdp.blogspot.it/2015/09/moduleecholinkconf.html">ModuleEchoLink.conf</a> e <a href="http://it9fdp.blogspot.it/2015/09/svxlinkconf.html">svxlink.conf</a> </div>
<div>
<br />
<a href="http://it9fdp.blogspot.it/2015/09/startstop-svxlink.html" target="_blank">Qui</a> trovate un breve guida con i comandi.<br />
<br />
Buon divertimento!<br />
<br />
<b><u>Aggiornare svxlink all'ultima versione</u></b><br />
<u><br /> Prima di effettuare l'aggiornamento all'ultima versione di sviluppo bisogna rimuovere completamente il vecchio software. <a href="http://it9fdp.blogspot.it/2015/09/disinstallare-svxlink.html" target="_blank">Seguite questa guida</a></u><u> </u><br />
<br />
Aggiornare all'ultima versione<br />
<div>
<br />
Loggatevi via ssh<b> </b>e date questi comandi<b>:</b><br />
<ul>
<li><b>cd svxlink</b></li>
<li><b>git pull</b></li>
<li><b>cd src/build</b></li>
<li><b>make clean</b></li>
<li><b>make</b></li>
<li><b>sudo make install</b></li>
<li><b>sudo ldconfig</b><b><br /></b></li>
</ul>
<br />
<br />
<ul></ul>
</div>
</div>
Biagio La Fauci IT9FDPhttp://www.blogger.com/profile/17819145852822412886noreply@blogger.com6tag:blogger.com,1999:blog-2593594334868302719.post-81374661553523137932015-09-19T11:57:00.002+02:002022-04-08T15:54:07.167+02:00Client noip2Aggiornato il 20-8-2018 <br />
<br />
Con
questo software potrete aggiornare il vostro DDNS no-ip direttamente dal
raspberry, anche se molti router prevedono questa funzionalità.<br />
<div>
<br />Mensilmente no-ip vi invierà una e-mail di avviso-conferma per ogni ddns registrato. Ricordatevi di confermarlo, pena la cancellazione.</div><div> <br />
Eseguite il login sul vostro raspberry via ssh.</div>
<div>
<br /></div>
<div>
<div>
Prima del comando <b>sudo make install</b> bisogna avere un account registrato su no-ip.com e un un nome a dominio pronto all'uso.<br /><br />
No-ip prevede un
massimo di tre host nella versione gratuita.</div>
<div>
Creato l'host eseguite i seguenti comandi:<br />
<a name='more'></a></div>
<ul>
<li><b>mkdir noip</b></li>
<li><b>cd noip</b></li>
<li><b>wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz</b></li>
<li><b>tar vzxf noip-duc-linux.tar.gz</b></li>
<li><b>cd noip-2.1.9-1</b></li>
<li><b>sudo make</b></li>
<li><b>sudo make install</b></li>
</ul>
</div>
<div>
A fine installazione, al comando <b>sudo make install</b>, verrà richiesta l'email per il login a no-ip e successivamente la password, inserite i dati corretti.</div>
<div>
<br />
Alla domanda successiva:<br />
<ul>
<li><span style="color: #444444;"><span style="color: blue;">Do you wish to have them all updated?[N] (y/N)</span></span></li>
</ul>Se avete solo un nome dns potete rispondere y. Verrà cosi inserito nel file di configurazione. </div>
<div>
Se invece avete più di un host e volete aggiornarne uno solo di questi, rispondete N. Verranno elencati i nomi uno alla volta con la domanda: <br />
<ul>
<li><span style="color: #444444;"><span style="color: black;"><span style="color: blue;">Do you wish to have host <span style="color: red;">[my.name.xx.xx]</span> updated?[N] (y/N)</span></span></span></li>
</ul>
<ul>
</ul>
</div>
<div>
Date invio pe passare al successivo. Fra parentesi quadre verranno proposti i nomi dns registrati sul vostro utente no-ip.<br />
Rispondete y solo a quello interessato.</div>
<div>
<br />
Alla domanda successiva:<br />
<ul>
<li><span style="color: blue;">Please enter an update interval:[30]</span></li>
</ul>
</div>
<div>
Io ho inserito 5 (cinque minuti l'intervallo di aggiornamento)</div>
<div>
<br />
Infine:<br />
<ul>
<li><span style="color: blue;">Do you wish to run something at successful update?[N] (y/N)</span></li>
</ul>
</div>
<div>
Rispondete N</div>
<div>
<br />
Fatto!<br />
<br />
<div>
Avviamo adesso il client:</div>
<ul>
<li><b>sudo noip2</b></li>
</ul>
</div>
<div>
<br />
<u><b>Comandi utili e di verifica: </b></u><br />
<br />
Verificate il funzionamento con:<br />
<ul>
<li><b>sudo /usr/local/bin/noip2 -S</b></li>
</ul>
</div>
<div>
<br />
Per ottenere il pid di noip2, utile per fermare il programma:</div>
<ul>
<li><b>pidof noip2</b></li>
</ul>
<div>
<br />
Per fermare noip2:<br />
<ul>
<li><b>sudo noip2 -K pid</b></li>
</ul>
dove <b>pid</b> è il numero del processo ottenuto con il comando precedente.</div>
<div>
<br />
<br />
Nel caso sia necessario ricreare la configurazione:<br />
<ul>
<li><b>sudo noip2 -C </b></li>
</ul>
(C maiuscolo)<b><br /></b></div>
<div>
Inserite, come prima, i dati corretti alle domande proposte.<br />
<br />
<br />
Per cancellare le configurazioni attuali, eliminare il file /usr/local/etc/no-ip2.conf<br />
<ul>
<li><b>sudo rm /usr/local/etc/no-ip2.conf</b></li>
</ul>
</div>
<div>
<span style="color: #990000;">Per avviare noip2 all'accensione editate il file /etc/rc.local</span><br />
<ul>
<li><b>sudo nano /etc/rc.local</b></li>
</ul>
<span style="color: #990000;">e inserite prima di <b>exit 0</b></span><br />
<ul>
<li><b>/usr/local/bin/noip2</b></li>
</ul>
<div class="sites-codeblock sites-codesnippet-block">
<span style="color: #990000;"><b>Ctrl+o</b> per salvare e <b>Ctrl+x</b> per uscire dall'editor.</span></div>
</div>
<br />
È possibile avviare no-ip2 in altro modo, come spiegato nel file README situato nella cartella di installazione dello stesso client.<br />
<div>
<br />
Bisognerà creare un file da inserire in /etc/init.d<br />
<ul>
<li><b>sudo nano /etc/init.d/startnoip</b></li>
</ul>
copiare lo script contenuto nel file README in base alla vostra distribuzione e rendetelo eseguibile con chmod +x startnoip<br />
<br />
Al prossimo avvio verificate se attivo con <b>pidof noip2</b> o <b>sudo /usr/local/bin/noip2 -S</b></div>
Per visualizzare tutte le opzioni:<br />
<b>noip2 -c </b>(c minuscolo).<br />
<br />
<br />
<br />Biagio La Fauci IT9FDPhttp://www.blogger.com/profile/17819145852822412886noreply@blogger.com0