packet/APRS iGate, BBS, node e DX cluster com Raspberry Pi (parte 4)

O DX Cluster é uma rede de computadores dedicada que partilha informação dos seus utilizadores sobre a actividade de DX. Estes computadores na rede têm o nome de “nós” ou nodes em inglês.
Os nodes interligam-se por rádio ou sobre a Internet, por AX.25 ou telnet, formando um cluster.

Este serviço, suportado por rádio amadores ou clubes, mantêm a rede funcional, difundindo as estações de amador a fazerem DX em tempo real.

Nesta rede a informação é chamada de spot, uma linha com o indicativo de quem chama, ou coloca o spot na rede, a frequência de DX, a estação de amador com quem estabelece contacto, uma mensagem curta de 30 caracteres e a hora de envio do spot.

Tem inúmeros filtros que permitem a quem se liga a um node do cluster receber por exemplo spots de uma ou várias bandas, de indicativos “CT”, por modos digitais como o RTTY ou CW, entre outros…

Permite-nos ainda fazer simulações de DX entre 2 pontos, obter dados sobre a MUF e propagação, a distância entre pontos do globo, os azimutes e elevação do Sol e da Lua no horizonte, enviar e receber mensagens com outros amadores ou o posicionamento de satélites.

Satellites available/Age of Keps (days):-
               AO-07: 5125                 AO-10: 5126
               AO-16: 5125                 AO-27: 5125
               AO-40: 5124                 AO-51: 5124
            FENGYUN1: 5124                 FO-29: 5125
               GO-32: 5124                HUBBLE: 5124
               IO-26: 5125                   ISS: 5124
               KO-23: 5124                 LO-19: 5125
               MO-46: 5124                NCUBE2: 5124
               NO-44: 5125                 NO-45: 5124
             NOAA-10: 5124               NOAA-11: 5124
             NOAA-12: 5124               NOAA-14: 5124
             NOAA-15: 5124               NOAA-16: 5124
             NOAA-17: 5124               NOAA-18: 5124
             OKEAN-0: 5125               OKEAN-4: 5124
               OO-38: 5125                 PO-28: 5124
               PO-34: 5125                RESURS: 5124
               RS-15: 5125                SICH-1: 5125
               SO-33: 5124                 SO-50: 5125
               TO-31: 5124                  UARS: 5124
               UO-11: 5125                 UO-22: 5125
               UO-36: 5124                 UWE-1: 5124
               VO-52: 5125                 WO-18: 5125
                XI-V: 5124                 XO-53: 5124

A lista completa de comandos pode ser consultada em http://www.dxcluster.org/main/usermanual_en-12.html

Veja a rede de DX Cluster em http://www.hamcluster.net/

No contexto deste projecto o DX Cluster é uma opção, e talvez a mais difícil de configurar.
Para fazer parte de um cluster é necessário solicitar a outro provedor autorização para fazer parte da rede, já que, haverá tráfego constante a difundir entre os membros do cluster.

Em Portugal podem-no solicitar a CS5SEL.

Mãos à obra!

Comecemos por instalar algumas ferramentas essenciais para a instalação do DX Cluster também conhecido por Spider.

Instale o wget, para download de ficheiros na linha de comandos ou modo terminal,

sudo apt-get install wget

Git é a ferramenta que lhe permite descarregar o DX Spider e futuras actualizações,

sudo apt-get install git-core

Criemos um link para a directoria de instalação. Por coerência com o software anteriormente instalado, optei por o fazer em /usr/local/bin/

sudo ln -s /usr/local/bin/spider /spider

Procede-se à instalação de algumas livrarias de perl,

sudo apt-get install libtimedate-perl (42Kb)
sudo apt-get install libnet-telnet-perl (56,7Kb)
sudo apt-get install libcurses-perl (86,4Kb)
sudo apt-get install libdigest-sha-perl (54,4Kb)
sudo apt-get install libdata-dumper-simple-perl (12,9Kb)

Cria-se a directoria de instalação e descarrega-se o spider,

cd /usr/local/bin/
git clone git://scm.dxcluster.org/scm/spider
cd /usr/local/bin/spider
sudo git reset --hard

Atribuíem-se permissões a directorias e ficheiros. Neste projecto o utilizador é “pi-star”, mude-o de acordo com a sua instalação

sudo chown -R pi-star. /usr/local/bin/spider
sudo find /usr/local/bin/spider -type d -exec chmod 2755 {} \;
sudo find /usr/local/bin/spider -type f -exec chmod 755 {} \;

Configuração,

cd /usr/local/bin/spider
mkdir local
mkdir local_cmd
cp perl/DXVars.pm.issue local/DXVars.pm
cp perl/Listeners.pm local/Listeners.pm
cd local

Edite o ficheiro DXVars.pm e siga as instruções que se encontram nos comentários das linhas.

Edite o ficheiro Listeners.pm e remova o caracter # na linha onde é configurada a porta de ligação.

Configure o cluster com o seu indicativo,

/usr/local/bin/spider/perl/create_sysop.pl

Vamos criar a base de dados,

cd /tmp
wget http://ftp.w1nr.net/usdbraw.gz
/usr/local/bin/spider/perl/create_usdb.pl /tmp/usdbraw.gz

…este comando pode demorar alguns minutos.

Compilamos o software para o nosso sistema operativo,

cd /usr/local/bin/spider/src
make

E, vamos agora iniciar o nosso programa,

/usr/local/bin/spider/perl/cluster.pl &

ou, daqui para a frente,

/spider/perl/cluster.pl &

“&” no fim da linha abre o programa em background. Se não o utilizar abra outra janela terminal e faça login no sistema como sysop, o seu indicativo,

/spider/perl/console.pl

Agora, na consola execute os comandos,

> load/usbd
> set/node [indicativo do node]
> connect [ficheiro de ligação com o mesmo nome]

Estes comandos são memorizados pelo sistema, não sendo necessário escrever-los cada vez que se liga ou inicia o programa.
Para sair da consola e fechar o spider, faça “quit” ou “shutdown”.

Para interligar o DX Cluster com o linbpq, identifique as linhas seguintes no ficheiro de configuração bpq32.cfg e descomente-as ou escreva,

CMDPORT 7300;

no port de telnet, no meu caso nas configurações do portnum=2,
e, a linha seguinte geralmente no final do ficheiro de configuração

APPLICATION 1,DX,C 2 HOST 0

assumindo que a porta de ligação telnet é a porta 2.

Iniciar o DX Cluster no arranque do sistema

Crie o ficheiro de arranque,

sudo nano /etc/systemd/system/spider.service

Copie e cole o seguinte conteúdo corrigindo o utilizador e caminhos,

[Unit]
Description=Dxspider DXCluster service
After=network.target
[Service]
Type=simple
User=pi-star
Group=pi-star
ExecStart=/bin/bash -c "/usr/bin/perl -w /spider/perl/cluster.pl" pi-star > /dev/tty3
Comment out line below for logging everything to /var/log/messages
StandardOutput=null
Restart=always
[Install]
WantedBy=multi-user.target

Atribua permissões de execução ao ficheiro,

sudo chmod 755 /etc/systemd/system/spider.service

e, active o serviço

sudo systemctl enable spider.service

Agora inicie o serviço escrevendo,

sudo systemctl start spider

Para verificar se o serviço se encontra a correr faça,

sudo systemctl status spider

ao qual o sistema deverá responder,

 spider.service - Dxspider DXCluster service
   Loaded: loaded (/etc/systemd/system/spider.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2020-09-08 22:00:46 WEST; 8min ago
 Main PID: 2215 (perl)
    Tasks: 1 (limit: 4915)
   CGroup: /system.slice/spider.service
           └─2215 /usr/bin/perl -w /spider/perl/cluster.pl


Sep 08 22:00:46 pi-star systemd[1]: Started Dxspider DXCluster service.

Continua na parte 5

Referências:
http://www.hamcluster.net/
http://www.cantab.net/users/john.wiseman/Documents/LinBPQtoSpider.html
https://packet-radio.net/install-dxspider-on-a-debian-system/
https://gitlab.com/glaukos/dxspider_installation_script/blob/master/install_dxspider.sh
https://do7psl.de/installation-of-dxspider-on-a-raspberry-pi/
http://www.cantab.net/users/john.wiseman/Documents/BPQCFGFile.html
https://www.hamradiodeluxe.com/blog/Ham-Radio-Deluxe-Newsletter-April-19-2018–Understanding-DX-Clusters.html

packet/APRS iGate, BBS, node e DX cluster com Raspberry Pi (parte 3)

Instalação do “linbpq”, o core do projecto.

O linbpq, versão linux do BPQ32 para windows, foi e continua a ser desenvolvido desde os anos 90 até aos dias de hoje, por John Wiseman de indicativo G8BPQ.
Responde activamente a questões em Groups.io

Para instalar o linbpq vou manter a mesma estrutura de dados em /usr/local/bin/. Vamos começar por descarregar o programa e as páginas de HTML para acesso por browser…

$ sudo mkdir /usr/local/bin/linbpq
$ cd /usr/local/bin/linbpq
$ sudo wget http://www.cantab.net/users/john.wiseman/Downloads/Beta/pilinbpq
$ sudo mv pilinbpq linbpq
$ sudo chmod +x linbpq

$ sudo setcap "CAP_NET_ADMIN=ep CAP_NET_RAW=ep CAP_NET_BIND_SERVICE=ep" linbpq

$ sudo mkdir HTML
$ cd HTML
$ sudo wget http://www.cantab.net/users/john.wiseman/Downloads/Beta/HTMLPages.zip
$ sudo unzip HTMLPages.zip
$ sudo rm HTMLPages.zip

$ cd ../
$ sudo mkdir BPQAPRS
$ cd BPQAPRS
$ sudo wget http://www.cantab.net/users/john.wiseman/Documents/Samples/APRSHTML.zip
$ sudo unzip APRSHTML.zip
$ sudo rm APRSHTML.zip

$ cd /usr/local/bin/
$ sudo chown -R pi. linbpq

Copie um outro ficheiro de configuração do linBPQ, com o nome de bpq32.cfg para o directório de instalação; no meu caso /usr/local/bin/linbpq/ e reproduza neste ficheiro as alterações necessárias à ligação do BPQ32 com o Direwolf.
Para facilitar descarregue este exemplo que, utilizei na minha configuração depois de substituir algumas expressões (instruções no próprio ficheiro).

Veja o exemplo a seguir para a configuração dos PORTS de RF,

;****** PORT 3 Direwolf 300-baud ****** PORT PORTNUM=1 ; Port number ID=HF Packet 300-baud ; PORTS command text TYPE=ASYNC ; RS232 connection IPADDR=127.0.0.1 ; DIREWOLF TCPPORT=8001 ; DIREWOLF SPEED=19200 CHANNEL=A ; TNC channel MAXFRAME=4 ; Max outstanding frames FRACK=5000 ; Level 2 timeout (ms) RESPTIME=200 ; Level 2 delayed ACK (ms) RETRIES=10 ; Level 2 max retries PACLEN=236 ; Max packet length (bytes) TXDELAY=300 ; Transmit keyup delay (ms) SLOTTIME=100 ; CMSA interval timer (ms) TXTAIL=30 PERSIST=63 ; Persistence (256/(# transmissions-1) DIGIFLAG=1 ; Allow Digipeat on this port ENDPORT

;****** PORT 4 Direwolf 1200-baud ****** PORT PORTNUM=2 ; Port number ID=VHF Packet 1200-baud ; PORTS command text TYPE=ASYNC ; RS232 connection IPADDR=127.0.0.1 ; DIREWOLF TCPPORT=8003 ; DIREWOLF SPEED=19200 CHANNEL=A ; TNC channel MAXFRAME=1 ; Max outstanding frames FRACK=5000 ; Level 2 timeout (ms) RESPTIME=40 ; Level 2 delayed ACK (ms) RETRIES=10 ; Level 2 max retries PACLEN=236 ; Max packet length (bytes) TXDELAY=100 ; Transmit keyup delay (ms) SLOTTIME=100 ; CMSA interval timer (ms) TXTAIL=30 PERSIST=63 ; Persistence (256/(# transmissions-1) DIGIFLAG=1 ; Allow Digipeat on this port ENDPORT

Guarde o ficheiro de configuração como bpq32.cfg no directório do linbpq.
Inicie o direwolf, se estiver a usar algum equipamento de RF, como descrito anteriormente.
Abra uma nova janela de terminal e inicie o linbpq,

$ cd /usr/local/bin/linbpq
$ sudo -u pi ./linbpq &

O linBPQ deve ligar-se ao Direwolf por localhost através da porta 8001 ou 8003 de acordo com as configurações que definiu.

Quando corre o linbpq pela primeira vez, este cria uma série de outros ficheiros e pastas…

Aceder ao BPQ

Pode aceder ao BPQ de 3 formas, por:

  • RF, ligando-se através de um TNC
  • telnet, desde uma janela terminal
  • browser, onde vamos acabar por fazer algumas configurações

por RF

Ligue outro rádio na mesma frequência e, se tem um TNC2, escreva,

cmd: C [indicativo]

por telnet

Se nas suas configurações do linbpq definiu a porta 8010 na instrução “TCPPORT=8010”, abra uma janela terminal e escreva,

$ telnet [endereço IP do raspberry pi] 8010

Consulte o artigo Manual de Packet para mais informações e opções disponíveis na ligação por RF e telnet.

Nota: num computador com Microsoft Windows 10 terá de instalar o programa telnet.

por browser

Abrindo uma janela no seu browser preferido e escrevendo no campo de endereços: http://[endereço IP do raspberry pi]:9123
caso tenha definido como eu no config do bpq a instrução “HTTPPORT=9123”

As primeiras configurações devem ser feitas através de browser. Pelo browser é-lhe possível re-escrever o bpq32.cfg, depois de autenticado como sysop.

Ao entrar no BPQ a página deve ser semelhante a esta,

Painel do BPQ

As configurações de Node e APRS são feitas todas dentro do ficheiro de configuração – o bpq32.cfg
Mas para configurar a BBS temos de as fazer por browser. Siga o link “Mail Mgmt”, faça o login como sysop, que definiu na instrução do PORT 2, para telnet, como “USER=[CALSIGN login],[password],[CALSIGN],,SYSOP”, excluindo os parêntesis rectos,

Página de login

Siga o link “Configuration”, e preencha os campos de acordo com a figura e com o seu indicativo,

Configurações gerais da BBS

Vamos ao menu “Users” e preenchemos os dados que conhecemos, seguindo o exemplo,

Configurações de utilizadores da BBS

Para começar a receber tráfego e mensagens na sua BBS, terá de estabelecer ligação com outra BBS na rede.
As mensagens entre BBS podem ser difundidas em ax.25 pela Internet ou caso esta se encontre indisponível, por RF.

Solicite ao sysop de outra BBS que se encontre ligada à rede de packet que configure o encaminhamento de mensagens para a sua BBS, adicionando as seguintes linhas no ficheiro de configuração bpq32.cfg
Na secção “BROADCAST NODES”,

MAP CT1EBQ-8 node.oitaven.pt UDP 10093 B

(uma vez mais substitua na linha acima o seu indicativo, a ligação ou endereço IP, se for fixo, ou por um DNS dinâmico)

No seu ficheiro de configuração, e na mesma secção deve acrescentar a linha,

MAP CQ0PCV-8 node.arlc.pt UDP 10093 B

(novamente, faça as substituições necessárias…)

Na secção “ROUTES” acrescente a linha,

CQ0PCV-8,193,1

onde CQ0PCV-8 é a BBS que, no meu exemplo, me entrega as mensagens.

Para enviar mensagens da sua BBS para outra BBS ou pBBS, neste caso a sua estação deve fazer o envio de tráfego, configure a opção “Forwarding”, conforme a figura, procedendo às alterações necessárias…

Configurações de re-encaminhamento

Explore todas as potencialidades do BPQ, navegando nas páginas da sua BBS e consultando os manuais online de John Wiseman, G8BPQ

Iniciar o linbpq no arranque

Comece por criar um script para chamar o linbpq, por exemplo no mesmo directório de instalação do linbpq,

cd /usr/local/bin/linbpq
nano runbpq
#!/bin/bash

cd /usr/local/bin/linbpq
sudo -u pi-star ./linbpq > /dev/tty2

atribua permissões de execução ao runbpq.sh

chmod 755 runbpq

A seguir crie o ficheiro para arranque do serviço escrevendo

sudo nano /etc/systemd/system/linbpq.service
[Unit]
After=network.target
[Service]
ExecStart=/bin/bash /usr/local/bin/linbpq/runbpq
Restart=always
[Install]
WantedBy=multi-user.target

Agora, para iniciar o serviço no arranque do sistema faça,

sudo systemctl enable linbpq.service

Se não quiser iniciar no arranque faça em qualquer momento,

sudo systemctl disable linbpq.service

Outros comandos,
Para iniciar o linbpq como serviço,

sudo systemctl start linbpq.service

Para parar o linbpq

sudo systemctl stop linbpq.service

Para verificar o estado do serviço,

sudo systemctl status linbpq.service

Continua na parte 4

packet/APRS iGate, BBS, node e DX cluster com Raspberry Pi (parte 1)

…ou, como montar uma estação de rádio packet/APRS com Raspberry Pi 3/4 e algum software.

Esta documentação é a síntese de diversos sites sobre o tema, referidos mais abaixo nas diversas Referências para este projecto.

Faça o download do zip e instale o Raspian Buster Lite no seu Raspberry Pi 3 ou superior.

Estas instruções podem ser utilizadas a partir de uma janela terminal SSH em linux ou Mac OS X. Para Microsoft utilize o Putty.

Abra então uma janela terminal local (apenas para linux e Mac OS X) e insira o cartão micro SD (2Gb é suficiente), no computador. Faça,

$ diskutil list

…para identificar o disco (cartão SD) a formatar.

Em resposta, o sistema irá devolver disk2 ou disk3. No meu caso foi o disk3. Por favor substitua este número conforme o seu caso quando necessário. Não se engane ou corre o risco de destruir a informação existente noutro disco!

Nota: não utilize “sudo” ou o operador “root” a não ser quando for absolutamente necessário. Eu indicarei.
Nestes comandos que refiro, o símbolo “$” indica que o seu utilizador não é “root”. Se lhe aparecer “#” na linha de comandos, saia e volte a entrar com um utilizador com menos privilégios…
Pode copiar e colar os comandos que aqui escrevo, excluindo o “$” ou “#” no início da linha.

Identificado o disco, SD card, vamos formata-lo,

$ sudo diskutil eraseDisk FAT32 PACKET-PI MBRFormat /dev/disk3

Desmonte o disco,

$ diskutil unmount /dev/disk3s1

E vamos instalar a imagem do Raspbian Buster a partir do nosso disco. Descomprima o download, caso a imagem do sistema operativo venha comprimida em ZIP ou TAR.
Esta operação é natural que tarde uns minutos, dependendo da velocidade de escrita do cartão SD,

$ sudo dd bs=1m if=Downloads/2020-02-13-raspbian-buster-lite.img of=/dev/rdisk3

Até finalizar a instalação da imagem o computador não lhe mostra nada. Pode demorar entre 2 a 10 minutos…
Faça CTRL+T ou CTRL+SHIFT+T para ver o progresso e aguarde.

Finalizado… desmonte o disco,

$ diskutil unmount /dev/disk3s1

Aguarde a mensagem do sistema, indicando que pode retirar o disco e coloque no raspberry pi…

Na primeira instalação deve ligar o raspberry a um monitor e teclado USB.
Faça login com o utilizador: pi
Password: raspberry
Corra o “raspi-config”, configure uma rede, por exemplo a rede wireless e habilite o SSH para ligação remota.

$ sudo raspi-config

…e siga os seguintes menus,

2 Network Options
N1 Hostname: (o nome do raspberry na rede)
N2 Wi-fi: SSID e passkey
4 Localisation Options
I1 Change Locale -> Local: pt_PT.UTF-8 UTF-8 (default: en_GB.UTF-8 UTF-8) e, Default locale for the system environment: pt_PT.UTF-8 (default: none)
I2 Change Timezone -> Geographic area: Europe -> Time zone: Lisboa
I3 Change Keyboard Layout: Generic 105-key PC (intl.)
I4 Change Wi-fi Country: PT Portugal
5 Interfacing Options
P2 SSH: enable
8 Update

No final seleccione “<Finish>”, com o tabulador e saia do configurador.

Continua na parte 2

Referências:
https://www.raspberrypi.org/documentation/installation/installing-images/README.md
…e, siga os links.

packet/APRS iGate, BBS, node e DX cluster com Raspberry Pi (parte 2)

Se pretender criar uma estação de packet e APRS com iGate por RF, agora ou mais tarde, siga estas instruções. Caso contrário, pode passar à parte 3.

Após a instalação do sistema operativo linux, vamos então instalar o “modem” Direwolf e o linBPQ responsável pelas aplicações de BBS, APRS, DX Cluster, Node, Chat entre outras…

Devemos garantir que temos todas as actualizações necessárias:

$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo reboot now

Depois de re-iniciar vamos instalar a livraria de som,

$ sudo apt-get install libasound2-dev

Em opção, se quisermos utilizar o Direwolf para controlar o PTT (emissão do rádio), através do GPIO, ou do GPIO da placa de som externa USB, instalamos também a biblioteca,

 $ sudo apt-get install libudev-dev

Instale o git, software para controlo de versões para programadores,
$ sudo apt-get install git

Agora vamos compilar e instalar o Direwolf

$ cd /tmp
$ git clone https://www.github.com/wb2osz/direwolf
$ cd /tmp/direwolf
$ git tag
$ git checkout 1.5
$ make -j
$ sudo make install
$ make install-conf

No meu caso ficou instalado em /usr/local/bin/direwolf

Agora fazemos um pequeno truque para ficar tudo arrumadinho,

$ sudo mkdir /usr/local/bin/dw
$ cd /usr/local/bin
$ sudo mv * dw/
$ sudo mv dw/ direwolf/
$ sudo chown -R pi. direwolf/

Pode optar por ter os ficheiros de configuração em /etc ou copia-los para o directório do direwolf – por questões de backup prefiro que fique tudo em direwolf/,

$ cp -n /tmp/direwolf/direwolf.conf /usr/local/bin/direwolf
$ cp -n /tmp/direwolf/sdr.conf /usr/local/bin/direwolf
$ cp -n /tmp/direwolf/telemetry-toolkit/telem-m0xer-3.txt /usr/local/bin/direwolf
$ cp -n /tmp/direwolf/telemetry-toolkit/telem-*.conf /usr/local/bin/direwolf
$ sudo cp -n /tmp/direwolf/dw-start.sh /sbin
$ sudo chmod +x /sbin/dw-start.sh

Como o Raspberry Pi 3 ou 4 não tem nenhuma entrada de som, temos de utilizar uma placa externa. O mais fácil e mais barato são as placas USB.


Pode encontrar facilmente no eBay diversas marcas e modelos… Sugiro que encomende mais do que uma para um dia mais tarde poder ligar vários rádios. É importante que escolha uma com o circuito integrado CM108, à vista, para poder fazer modificações.

Neste projecto utilizamos o GPIO da placa de som para o PTT, com de um simples transistor ligado ao pino 13 do CM108 através de uma resistência de 10k.


Ligue a sua placa de som USB, abra uma janela terminal e escreva,

$ aplay -l ("L" minúsculo, não o número 1)

Se o Raspberry Pi tiver a saída de som onboard activa, deve de aparecer como Card 0, Device 0.
A nova placa de som USB deve ser reconhecida como Card 1, Device 0, uma segunda por Card 2, Device 0 e por aí fora…

De notar que podemos correr várias instalações de Direwolf no caso de pretendermos estabelecer ligações ao BPQ em diversas velocidades, por exemplo 300 bauds para HF, 1200 para VHF e 9600 para UHF. Sim, o Direwolf faz comunicações a 9600 bauds com um transceptor preparado para tal!

Abra o ficheiro de configuração do Direwolf (pode descarregar o meu exemplo), em /usr/local/bin/direwolf/direwolf.conf com um editor de texto à sua escolha: “nano” ou “vi” e, habilite a placa de som USB correcta removendo o caracter “#” no início da linha apropriada, escrevendo,

ADEVICE  plughw:1,0

desça algumas linhas e altere “NOCALL” para o seu indicativo,

MYCALL NOCALL

Defina a velocidade do modem, por exemplo 1200 bauds,

MODEM 1200

Avance algumas linhas e defina a opção de PTT que pretende utilizar. No meu caso utilizei o GPIO da placa de som para o efeito.

PTT CM108 3 /dev/hidraw0

Mais abaixo active e altere as opções AGWPORT e KISSPORT para as definições que irá utilizar no linBPQ.
Desactive as opções APRS, se pretende utilizá-las através do linBPQ.

Grave as alterações introduzidas e execute o Direwolf através do terminal,

cd /usr/local/bin/direwolf
./direwolf (ou direwolf -t 0 -p -c /usr/local/bin/direwolf/direwolf.conf)

Se já tiver os cabos preparados, ligados ao seu transceptor, e na frequência correcta, deverá ver de imediato a actividade de packet ou APRS a surgir no terminal.

Se receber alguma mensagem idêntica,

“audio level = 193(95/67)…
Audio input level is too high. Reduce so most stations are around 50.”

Ajuste a entrada e a saída de som com o programa “alsamixer”. Escreva,

$ alsamixer

Prima F6 para seleccionar a placa de som USB e ajuste os cursores de modo a obter o valor aproximado de 50, na recepção do direwolf. Faça ESC para gravar e sair.

Para guardar estas definições após um reboot,

$ sudo alsactl store

O direwolf só por si tem todas as funcionalidades de APRS que precisa. Para complementar esta informação faça o download do manual.

Prima CTRL+C para fechar o Direwolf e, instale o pilinBPQ.

Problemas na configuração da(s) placas de som? Vejam também,
Solução de problemas com a placa de som CM108

Continua na parte 3

Referências:
https://github.com/wb2osz/direwolf/blob/master/doc/Raspberry-Pi-APRS.pdf
https://github.com/wb2osz/direwolf/tree/master/doc
http://www.hardwaresecrets.com/datasheets/CM108.pdf
http://m0nfi.uk/info/cm108-soundcard.html

packet radio – onde estamos?

No final dos anos 80 contruí um TNC 2, para 1200 bauds e outro para 9600. Comprei os PCB a um colega e os componentes no mercado.

Pequenos computadores, equipados com o processador Z80, estes TNC (Terminal Node Controler), ligados a um transceptor de VHF/UHF, possibilitavam a comunicação em packet AX.25, para QSO entre estações, a transmissão de pequenas imagens e ficheiros, e dispunham de uma pBBS (personal BBS) que indicava quando era recebida uma mensagem na mailbox!

Uma década depois o packet foi perdendo adeptos, para a recente Internet que se insurgiu com velocidades cada vez maiores… o princípio era o mesmo mas com o protocolo X.25, onde o cabeçalho dos pacotes em vez do indicativo de amador levava os endereços de ligação ponto a ponto.

No final dos anos 90, surgiram projectos como a FBB e o BPQ32 que podiam funcionar stand alone ou integrados com a própria Internet – apareceram as primeiras comunicações digitais de dados, para os mais familiarizados com o que se faz actualmente com o VoIP (voz sobre IP) nas tecnologias D-Star, DMR e recentemente com a Fusion.

O packet recebeu um novo impulso com o interesse da comunidade de rádio-amadores pelo APRS, um sistema inicialmente utilizado para dar a conhecer a geolocalização, permite hoje o envio de mensagens, informação da frequência de voz, comunicações de emergência, consultas ao QRZ, envio de e-mails e, que equipam já um conjunto de rádios móveis e portáteis pelas diversas marcas onde alguns incluem também GPS.

Continua a ser amplamente utilizado em comunicações de amador via satélite, para receber os dados de telemetria, a retransmissão de pacotes por digipeating ou APRS.

Muitos destes equipamentos oferecem o modo KISS, um terminal de packet simples, que pode ser utilizado por software terminal, são exemplos o linpac para linux, uma estação terminal completa em todo idêntica ao TNC 2 ou, sistemas como os que referi – FBB e BPQ32.

Para facilitar tudo isto, hoje é possível construir uma BBS com FBB ou o BPQ32 por menos de 40€ com recurso ao Raspberry Pi 3 (hardware), ao modem Dire Wolf que emula a placa de som, e ao sistema de packet radio com terminal, BBS, node, APRS, DX cluster, e chat (software) que integram com KISS… tema do próximo artigo.

Configurar um TNC para fazer de digipeater em APRS

Se ainda tem um TNC, e gostaria de fazer parte da rede APRS como fill-in, retransmitindo os pacotes que escuta, deve configurar o MYALIAS para WIDE1-1, e abandonar o termo RELAY. Defina a variável UNPROTO, por exemplo para,

CQ VIA WIDE1-1,WIDE2-2
e,
DIGIPEAT ON

Se o firmware do TNC estiver preparado para APRS e no pacote recebido o valor de “N” for maior que zero, o TNC decrementa “N” de 1 e retransmite o pacote.
Ver post “Digipeating em APRS com novos padrões“.

Não necessita de ter o TNC ligado a um GPS para que este se registe na rede de APRS.
Se estiver ao alcance rádio de uma iGate, ou através de outros digipeaters, altere o beacon do TNC para,

![latitude]/[longitude][tipo] [texto]

Onde,
! – indica o formato de dados a serem interpretados pelo APRS

[latitude] – expressa até ao máximo de 8 caracteres, em graus e minutos com 2 decimais seguido de “N” para Norte ou “S” para Sul

/ – símbolo primário da estação (ver página 102 a 104 do link em referência)

[longitude] – expressa até ao máximo de 9 caracteres, em graus e minutos com 2 decimais seguido de “E” para Este ou “W” para Oeste

[tipo] – segundo símbolo da estação de rádio

[texto] – texto livre

Exemplo do beacon para a minha estação,

!3612.34N/11518.95W- CT1EBQ, digi WIDE1-1, QRA Ricardo, Cascais PT

Neste exemplo, o conjunto /- representa o símbolo “House QTH (VHF)”

Glossário:
fill-in – um digipeater WIDE1-1 de apenas um salto, que possibilita as estações móveis a chegarem a um iGate
Digipeater – uma estação que retransmite pacotes de AX.25 identificada por um indicativo no máximo de 8 digitos
iGate – um digipeater que regista um beacon na rede aprs.fi

Referências:
APRS Protocol Reference

Digipeating de APRS com novos padrões

As convenções de APRS estabelecidas décadas atrás já não servem o número de utilizadores e o tráfego actualmente existente, gerado por digipeaters e equipamentos obsoletos que duplicam os pacotes enviados às iGates ocupando a banda desnecessariamente.

Não esquecer que o principal objectivo do APRS é informar os utilizadores da rede da geolocalização de cada estação de rádio ou dispositivo. É desnecessário por isso utilizar métodos que retransmitam o beacon diversas vezes sobre tudo quando o sinal já foi escutado por uma iGate e disponibilizado à rede.

No entanto, é importante a existência de digipeaters para garantir que os pacotes de dados de APRS cheguem à iGate. Apesar de utilizarem o AX.25, estes pacotes de APRS podem ser comparados a uma transmissão de broadcasting não havendo qualquer protocolo para garantia de uma boa recepção. Se forem escutados e chegarem correctamente são retransmitidos e, eventualmente chegam a uma iGate.

A rede de APRS na Europa funciona nos 144,800MHz a 1200 bauds, FM, em modo simplex e, em satélites adoptou-se os 145,825MHz à semelhança da ISS.

Normalmente a rede de APRS de RF é suportada por clubes de rádio-amadores, ou por equipamentos TNC, raspberry pi ou computadores a correrem FBB ou BPQ32 entre outros, em estações de amadores…

Para resolver este paradigma, de congestionamento da rede, eliminaram-se as nomenclaturas de RELAY e WIDE, alterando-se para caminhos do tipo WIDEn-N, onde o primeiro “n” representa o número de saltos desejados e o segundo “N” o número de saltos restantes, valor decrementado por cada digi que retransmite o pacote. Evita-se assim que o pacote de RF percorra o país gerando tráfego desnecessário!

Glossário:
Digipeater – uma estação que retransmite pacotes de AX.25 identificada por um indicativo no máximo de 8 digitos
iGate – gateway entre a rede de APRS de HF, VHF e UHF e a Internet

Referências:
APRS Protocol Reference