Contacto de APRS com Marrocos via ISS

Hoje recebi um e-mail de um colega rádio amador de Marrocos, o CN8MM, que publicou um filme sobre a reparação e programação de um rádio Motorola GM360 e que o utilizou para contactos de packet e APRS via satélite... no final, ao minuto 44 e 43 segundos demonstra o contacto comigo em 145.825 via ISS!

Uma recordação a guardar!
Obrigado amigo Cherkaoui Mustapha, 73.

SSID packet/APRS

30 anos separam a época actual com aquela em que comecei a fazer rádio packet. Na altura ainda não se ouvia falar de APRS...

Hoje com o APRS a crescer e a ganhar relevância parece que não há entendimento sobre quais os SSID a utilizar num e noutro modo, entrando por vezes em conflito na nossa percepção, os SSID utilizados no packet e em APRS.

Compilei aqui algumas fontes sobre como sugerem a organização de ambos e um pequeno ensaio do que, com base nos SSID de packet e APRS proponho adoptar...

A minha proposta para a utilização de SSID no packet/APRS

-0 (or without SSID) your station/node, network nodes
-1 BBS or personnal mailboxes (usually a TNC-based pBBS)
-2 chat rooms, P2P, conference bridges
-3 gateways and cross-port digipeater
-4 DX cluster network
-5 other networks integration (D-Star, DMR, Fusion...)
-6 special activity, IOTA, SOTA, Satellite, camping or 6 meters…
-7 radio handheld, walkie talkies, HT's or other human portable
-8 boats, sailboats, RV's or second main mobile
-9 mobile phones, tablets and computers
-10 internet links, iGates, echolink, Winlink/RMS, AVRS, APRN…
-11 balloons, aircraft, spacecraft, etc
-12 APRStt, DTMF, RFID, devices, one-way trackers…
-13 weather stations
-14 truckers or generic, additional stations or activities
-15 generic, additional stations or activities

Este ensaio tem como fundamento as duas correntes de ideias a seguir descritas e pretende encontrar um entendimento respeitando o mais possível cada uma delas, assim como as práticas de utilização de SSID no dia a dia, por escuta das radio frequências.

Na perspectiva de APRS

Note, the SSID of zero is dropped by most display applications. So a callsign with no SSID has an SSID of 0.
-0 your primary station usually fixed and message capable
-1 generic additional station, digi, mobile, wx…
-2 generic additional station, digi, mobile, wx…
-3 generic additional station, digi, mobile, wx…
-4 generic additional station, digi, mobile, wx…
-5 other networks (Dstar, Iphones, Androids, Blackberry's etc)
-6 special activity, Satellite ops, camping or 6 meters…
-7 walkie talkies, HT's or other human portable
-8 boats, sailboats, RV's or second main mobile
-9 primary Mobile (usually message capable)
-10 internet links, Igates, echolink, winlink, AVRS, APRN…
-11 balloons, aircraft, spacecraft, etc
-12 APRStt, DTMF, RFID, devices, one-way trackers…
-13 weather stations
-14 truckers or generally full time drivers
-15 generic additional station, HF, digi, mobile, wx…

Referências:
http://www.aprs.org/aprs11/SSIDs.txt

Na perspectiva de packet & net105

none (-0) home stations
-1 home station personnal mailboxes (usually a TNC-based PBBS)
-2 gateways and cross-port digipeater
-3 full-service BBS's (those that forward mail/bulletins)
-4 network nodes (having two or more radio ports that
                  perform routing functions via TCP/IP,
                  NetROM, etc... Can be combined with BBS's that also
                  perform routing)
-5 console/keyboard -or- printer
-6 conference bridges
-7 NetROM/X1J/Knet/BPQ nodes
-8 cross-band digipeaters
-9 mobile / modats
-10 Winlink 2K
-11 - unassigned -
-12 - unassigned -
-13 - unassigned -
-14 - unassigned -
-15 (often used as a downlink address when exiting the far
end of a network connection)

Referências:
https://groups.io/g/network105/topic/welcome_to_all_network_105/11899281
https://wiki.complete.org/PacketRadio
https://wiki.complete.org/PacketRadioOnHF
http://www.mi-drg.org/ssid.shtml
https://www.ea1uro.com/pdf/Paradigma_APRS_IARU.pdf

Beacons e APRS de CT1EBQ

Este serviço de packet rádio e APRS corre num raspberry pi 4, com 4Gb de RAM, projecto descrito nos diversos posts do blog, e tem activas as seguintes portas, frequências e modos em RF.
Estes rádios ligam-se e desligam-se sob determinadas condições, nascer e pôr do Sol, propagação e o AOL/LOS de satélites no locator IM58.

  port 1 – AX.25 UDP
  port 2 – telnet Internet access
  port 3 – UHF 432.500MHz packet 9600baud, 30W J-Pole antenna
  port 4 – VHF 145.800MHz packet 1200baud, 40W J-Pole antenna
  port 5 – VHF 145.825MHz packet 1200baud SatGate, 50W J-Pole antenna (ON only if APRS Sat in the sky)
  port 6 – HF 14.105MHz LSB packet 300baud net105 (ON between 06:28 - 20:56, UTC time), 80W 1/4λ sloper dipole antenna
  port 7 – HF 14.1035MHz ARDOP 2000 (ON between 06:28 - 20:56, UTC time), 80W 1/4λ sloper dipole antenna (experimental)
  port 8 - HF 10.1475MHz USB packet 300baud, 15W terminated folded dipole (problemas em TX, rádio em reparação)
(frequências recomendadas pela IARU)

Todas as portas suportam APRS e estão ligadas ao iGate. Pode ver o que elas estão a escutar...

Os beacons funcionam em cross port digi de acordo com as seguintes regras:

  • todos os beacons escutados em qualquer port são retransmitidos em UHF na porta 3
  • os beacons recebidos no port 3 e 4 são retransmitidos na frequência de APRS Satélite no port 5
  • os beacons de APRS dos satélites ou de estações terrestres retransmitidos pelos satélites são enviados para as redes de VHF, na porta 4 e UHF na porta 3
  • por fim os beacons recebidos em HF são retransmitidos em UHF na porta 3

Existe ainda uma bridge de packet entre HF e VHF na porta 4, apenas num sentido e, entre o VHF satélite e o VHF nacional, porta 4 e o UHF, também apenas neste sentido.

Com excepção dos beacons de identificação e weather, disponibilizados pelo BPQ, é fruto de um trabalho exaustivo de programação em linux shell script e python, que me deram um gozo enorme!

Beacons de presença e identificação da estação

CT1EBQ: !3842.76N925.38W-PHG9130CT1EBQ, Cascais PT IM58gr, Rpi project bit.do/ct1ebq
CT1EBQ: !3842.76N/00925.38W-PHG5330CT1EBQ, Cascais PT IM58gr, Rpi project bit.do/ct1ebq
CT1EBQ-3: !3842.76N/00925.38W&APRS WX/iSatXGate/RMS/BBS/DX Cluster HF/VHF/UHF, bit.do/ct1ebq
CT1EBQ, port 6: !3842.76N\00925.38W-PHG9130CT1EBQ, Cascais PT IM58gr, Rpi project bit.do/ct1ebq

Informação de meteorologia

Port: 3, 4
TX: a cada 20 minutos
Fonte: https://openweathermap.org
Beacon output (CT1EBQ-13):

@184830z3842.76N/00925.38W_220/011g000t014r000h00b10120WX in Cascais, PT - IM58GR

Formato de envio pelo BPQ

Jun 25 2020 14:15
340/022g000t072r000h60b10170

wind Direction/speed,gusts,temperature,rain,humidity,pressure

Telemetria

Port: 3, 4
TX: cada 10 minutos depois da hora
Fonte: origem no hardware local
Objectivo: testar condições do hardware (raspberry pi), dados e comunicações
Beacon output:

T#36.0C,5.084V,514.0mA,2635mW,70.98mV,11x11111111111

a)
get raspberry pi ups values
- temperature: 36,0 ºC - temperatura: 55 < need atention > 60 erro
- Bus Voltage: 5.084 V - tensão < 4,9 erro > need atention > 5V ok
- Bus Current: 514,0 mA - corrente > 750 mA need atention
- Power: 2635 mW - power > 4000 mW need atention
- Shunt voltage: 70,98 mV - shunt voltage > 120 mV need atention

Bits
estado normal: 11x111111111111

Primeiros 2 bits, antes de "x", (bit- descrição)
0- resume leituras de valores analógicos em a)
1- resume condições dos estados dos programas em b)

b)
verifica hardware e programas a correr em caso de falha envia mensagem para sysop (bit- descrição)
0- rádio HF ligado ou desligado de acordo com o cron
1- pi-star modem MMDVM está a correr em modo D-Star
2- linbpq (BPQ32) está a correr
3- direwolf 300 baud HF está a correr
4- direwolf 1k2 baud VHF está a correr
5- direwolf 1k2sg baud VHF (sat gate) está a correr
6- direwolf 9k6 baud UHF está a correr
7- descodificador de WSPR e pen USB RTL-SDR está presente e a correr
8- ficheiros de keplers actualizados (com menos de 5 horas)
9- o disco USB de backup está ligado e existe um backup inferior a 24 horas
10- verifica ligação de HRoT (ham radio of things)
11- aviso de alto nível de radiação beta ou gama

Envio de alerta por e-mail se existir erro, isto é, algum dos bits a zero.

Alerta de aproximação de satélites

Port: 3, 4
TX: sai 10 minutos antes do AOS dos satélites que estão a ser seguidos, no locator IM58
Fonte: predict local
Condições: o beacon só é enviado se a elevação máxima for superior a 8º (antena e topologia do terreno)
Beacon output (exemplo):

;ISS      *193003h3000.00N\01400.00ESAOS19:30 mEl51 Az314 Lat49N Long27W Rg1939Km @IM58 Mode: APRS

ISS - nome do satélite
193003h - hora de AOS (19h30m03s), compatibilidade com APRS
30.0000N - latitude onde o satélite irá fazer o AOS
014.0000E - longitude onde o satélite irá fazer o AOS

Valores para leitura humana,
AOS19:30 - hora local de AOS de ISS
mEl8 - 51º de elevação máxima nesta passagem em IM58
Az314 - azimute de AOS
Lat49N - latitude de AOS
Long27E - longitude de AOS
Rg1939Km - distância no AOS, de IM58
Mode - APRS, XPDR (Transponder - SSB ou CW), FM, CW

Satélites seguidos

Mode: XPDR
AO-7 (OSCAR 7)
FO-29 (JAS 2)
AO-73 (FUNCUBE 1)
XW-2A
XW-2B
XW-2C
XW-2D
XW-2E
XW-2F
NUSAT 1 (FRESCO)
EO-88 (NAYIF)
CAS 4A (ZHUHAI-1 01)
CAS 4B (ZHUHAI-1 02)
JO-97 (JY1SAT)
FO-99 (NEXUS)
CAS-6 (TO-108)
RS-44 (DOSAAF-85)
AO-109 (RADFXSAT-2)
JAISAT 1
TECHSAT 1B (GO-32)
LILACSAT 2
RS-15
Mode: FM
SO-50 (SAUDISAT 1)
AO-91 (FOX-1B)
AO-92 (FOX-1D)
LILACSAT 2
IO-86 (LAPAN A2)
PO-101 (DIWATA 2B)
AO-27 (EYESAT-1)
AO-95
FMN 1
AO-85 (FOX-1A)
UVSQ-SAT
TEVEL 1
TEVEL 2
TEVEL 3
TEVEL 4
TEVEL 5
TEVEL 6
TEVEL 7
TEVEL 8
Mode: APRS
ISS (ZARYA)
CSS (TIANHE-1)
FALCONSAT 3
PCSAT (NO-44)
LAPAN-A2 (IO-86)
AISat 1
PSAT2 (NO-104)
CAPE 3
TSURU (BIRDS-4)
GUARANISAT-1 (BIRDS-4)
Mode: DSTR
ISAT
SPARROW

A sua elaboração teve por base as referências da AMSAT e da N2YO
Communications Satellites
AMSAT Live OSCAR Satellite Status
Amateur Radio Satellites

Envio de mensagem para satélites de APRS

Port: 5
TX: de 30 em 30 segundos
Fonte: predict local
Condições: apenas durante a passagem de satélites de APRS com elevação superior a 6º (ângulo de take-off da antena e topologia circundante)
Path: CQ NA1SS,ARISS,APRSAT,PSAT
Beacon output (exemplos): posição e mensagens aleatórias

exemplos de CT1EBQ:
:CQ       :73 de ricardo@oitaven.pt IM58gr, join Rpi project ct1ebq.com
!3842.76N/00925.38W`PHG523073 de ricardo@oitaven.pt, Rpi ct1ebq.com

Nota: desde 16 de Abril de 2021 este projecto de APRS corre um bot que, envia beacons de posição, faz CQ a colegas escutados e responde a pedidos de contacto, 24h/dia automaticamente. Se fez algum contacto pode encontrar a sua QSL aqui...

Informação da Propagação

Port: 3, 4
TX: aos 4 minutos depois da hora, a cada 3 horas
Fonte: informações do DX Cluster
Tipo: Boletim
Beacon output:

:BLNP     :Propagation - SFI:73 A:1 K:0 No Storms -> Minor w/G1

Condições de propagação baseadas nos 3 factores:
SFI - Solar Flux Index
A - A Index, depende de K
K - K Index, melhores condições com valores baixos
No Storms -> Minor w/G1 - [situação actual] -> [previsão]

Referências:
DX spider command reference

Previsão das condições de MUF

Port: 3, 4
TX: 3 minutos após a hora
Fonte: informações do DX Cluster
Tipo: Boletim
Beacon output:

:BLNM     :MUF(26DbW)@IM58:PT80mS9,AZ30mS6+,MA40mS7+,EU30mS6+,NA15mS1,SA13mS1,AF13mS2,AS40mS1,OC-

(interpretation example)
MUF Bands and Signals
(26DbW) ~400Watts
@IM58: (QRA locator) previsão desde Cascais, Portugal
Portugal (PT): 80m, Signal: S9
Azores Island (AZ): 30m, Signal: S6+
Madeira Island (MA): 40m, Signal: S7+
Europe (EU): 30m, Signal: S6+
Norte America (NA): 15m, Signal: S1
South America (SA): 13m, Signal: S1
Africa (AF): 13m, Signal: S2
Asia (AS): 40m, Signal: S1
Oceania (OC): no communications

Referências:
DX spider command reference

Notificação da abertura da banda dos 6m

Port: 3, 4
TX: a cada 30 minutos
Fonte: spots de WSPR em 6m enviados por CT1EBQ @IM58
Tipo: Boletim
Condições: sempre que forem escutados beacons de WSPR de ~10mW em 6m emitidos por CT1EBQ e registados em wsprnet.org
Beacon output:

:BLN1PROP6:Good propagation condition on 6m band @IM58 #8 spots

Notificação da ocorrência de Sismos

Port: 3, 4
TX: à hora certa durante as 12h seguintes
Fonte: IPMA
Tipo: Boletim
Condições: na ocorrência de um sismo localizado ou sentido em Portugal com magnitude igual ou superior a 3.0 na escala de Richter
Beacon output:

:BLN1EQUAK:Sismo Mag.3.6 a Golfo de Cadiz @Wed 6 Out 06:08:44GMT 2021

Alerta de radioactividade

Port: 3, 4
TX: sempre que a radioactividade local exceda os 100uSv/h e depois de hora a hora enquanto o risco existir
Fonte: Geiger local
Tipo: Boletim
Condições: caso a radioactividade beta ou gama do radão, raios cósmicos, ou causas externas, excedam os valores naturais
Beacon output:

:BLN1GAMMA:Warning high level of radiation 100uSv/h in IM58gr @Fri 16 Sep 15:18:29 UTC 2022


Se tiveres curiosidade em saber como desenvolvi o código e tens outras ideias, por exemplo para enviar telemetria, ligar à tua estação meteorológica… terei todo o gosto em ajudar-te.

No entanto se algum destes beacons te incomodam, forem excessivos ou simplesmente não tens qualquer interesse em os receber por favor diz-me…

Todo o radio-amador é um experimentalista, logo é possível que estas dados sejam alterados e nem sempre aqui actualizados... última actualização a 06/01/2023.

Notificação de novas mensagens na sua BBS

(versão beta)
Só recentemente e a meu pedido o John Wiseman, G8BPQ, introduziu a notificação de mensagens pessoais por APRS.

Com este artigo pretendo ir mais longe...
Quem tinha um TNC2 recorda-se com certeza que, quando recebia novas mensagens na pBBS, no painel frontal piscava um led amarelo, que se apagava quando estas eram lidas.
Essa funcionalidade, fácil de ser implementada num raspberry pi perdeu-se! Talvez por questões de compatibilidade com a versão do BPQ para Microsoft Windows já não é possível...

Se quem como eu substituiu o velhinho TNC2 por um computador ou Rpi sente a falta desta funcionalidade.
Este projecto pretende resolver esta questão e abrir a ideia a outras possíveis aplicações como as que recentemente criei,

  • envio de dados meteo por APRS a partir do projecto Open Weather
  • notificações em APRS de AOS de satélites de APRS/AX.25
  • envio automático de beacons para satélites de APRS
  • telemetria do raspberry pi
  • anúncios de propagação

Neste projecto, os scripts precisam de se ligar ao linbpq e verificar se existem novas mensagens para o seu indicativo, por telnet. Por isso é necessário instalar o software "expect" para linux. Faça,

Depois na directoria onde está instalado o linbpq crie o seguinte ficheiro,

e, copie e cole as ligas a seguir

Substitua o [CALLSIGN], [PASSWORD] e [YOUR NODE ADDRESS] pela sua conta de login no linbpq, sem os parêntesis rectos "[ ]".

Dê permissões de execução ao script,

Se tudo funcionar como planeei execute o script fazendo ./lmBBS.sh e observe a ser feita automaticamente a ligação ao seu node por telnet, a entrada na BBS, a leitura de novas mensagens e, a seguir o fecho da ligação.

Agora vamos criar o script que irá receber e tratar os dados provenientes desta interação com o BPQ.
Para a notificação por e-mail vai ter de instalar e configurar o exim4.

Crie um novo script, supondo que se encontra na directoria de instalação do linbpq e corrija os caminhos e variáveis de acordo com a sua instalação.

Ligue-se à sua BBS pelo seu browser favorito. No menu da consola web, clique em "WebMail" e em seguida "Mine". Retire do endereço URL a variável key. Copie e cole no código abaixo este valor.

Nota: lamento mas esta key que aqui refiro tem prazo de validade, findo o qual será sempre necessário fazer o login! Use apenas para fins experimentais...

http://node.ct1ebq.com:9123/WebMail/WMMine?WB09K2721

Crie o ficheiro,

e, copie e cole o seguinte código,

Substitua o seu endereço de e-mail e o seu endereço URL do linbpq onde acede por webmail.

Ligue o Led ao GPIO, em série com uma resistência de valor entre 100 ohm e 330 ohm, ao raspberry pi, entre um dos pinos GND e o GP17,

Crie o script que irá piscar o led, fazendo,

copie e cole o seguinte conteúdo,

Dê permissões de execução a ambos os scripts,

E, a partir de agora é este o ficheiro que passa a chamar para verificar se tem novas mensagens ./bbsnewmsg.sh

Ao correr o script, este faz a chamada ao script de ligação por telnet e leitura da lista de novas mensagens, se as houver, envia um e-mail de notificação e acende um led ligado à porta 17 do GPIO.

Para correr o script automaticamente de 6 em 6 horas, adicione uma linha no seu crontab em /etc/crontab

Este foi um exemplo de como se podem integrar outros programas com o BPQ de modo simples e não intrusivo.
Este último script tem algumas falhas, por exemplo sempre que é chamado notifica todas as mensagens por ler... A ideia era ser chamado a cada 5 minutos, mas então não deveria enviar múltiplos e-mails de notificação de mensagens anteriores... Fica para próximas versões!

Logo que possível farei actualizações nestes scripts. Teste e crie os seus script com esta ideia. Sinta-se livre de copiar e distribui-los... agradeço menção a CT1EBQ.

pi-star +GUI, packet e aplicações desktop

Este bem poderia ser o primeiro post do site já que, daqui fui construindo todos os outros projectos...

Há uns meses atrás comecei este projecto. Sempre fui adepto de "all in one", nas impressoras, nos rádios, nos gadgets, até nos canivetes suíços! Compreendo quem prefira um rádio para HF, outro para VHF e UHF, mas eu gosto deles com tudo!
Este projecto é para os que gostam de "tudo na mesma caixa"!

Há uns meses, nem sabia o que era um Raspberry Pi até que me rendi... comprei um zero com wireless, experimentei o 3B + e depois comprei um 4. Foi com o mesmo entusiasmo com que recebi o meu ZX81 ou o Spectrum em 1982, mas com tecnologia mais recente e capaz de um projecto deste tipo!
- Era o computador que faltava na minha estação de rádio! Sem ventoinhas, logo sem barulho, a 5V ou facilmente alimentado a partir de 12V e, o Raspberry 4 com uma capacidade de processamento suficiente para correr um sem número de aplicações em simultâneo! Estas características maravilharam-me...

Tudo começou quando adquiri o meu rádio D-Star, instalei num Pi zero W o software pi-star, num computador antigo a correr linux, apenas linha de comandos, o linbpq para packet e APRS e depois precisava de outro brincar com modos digitais...
Eram muitos computadores, todos ligados, a consumir energia 24 horas por dia! Não, tinha de haver outra solução.
A solução passava por um computador, todos os sistemas e software a correr ali...
Pretendia ainda uma solução alimentada a 12V, de modo a poder alimenta-lo a baterias e criar sistemas de alimentação redundante.

A solução era mesmo um Raspberry Pi!

Fiz teste num 3B + de um amigo. Percebi que tinha de instalar primeiro o pi-star, a última versão "buster" do debian, disponível para download no site deste excelente projeto.
O pi-star tem uma excelente característica, depois do arranque o sistema entra em modo read-only, e apesar de o podermos pôr em read-write, tudo está feito para que volte a read-only no instante seguinte! Era um quebra cabeças e o primeiro problema a resolver! Todos os posts anteriores foram o caminho a percorrer para chegar até aqui e resumem a minha experiência em Pi.

Se quiser ter os modos digitais, o propósito de ter instalado o core do pi-star, terá de adquirir uma pequena placa de RF, chamada MMDVM hotspot. Encontra-se facilmente no eBay e a minha custou cerca de 15€ mais despesas de envio.

As instruções seguintes mostra como o fazer.

No final deste projecto, com algumas horas e muita paciência, fica com um Raspberry Pi (recomendo o 4, com 2 ou mais Gb de RAM) com,

pi-star, para modos digitais (D-Star, DMR, YSF...)
packet e APRS no linbpq + (Hamlib, Direwolf, Xastir, Linpac)
recepção de WSPR com uma simples RTL-SDR v3
FLRig e FLDigi
WSJT-X
JTDX
GridTracker (Display connections on a map)
JS8CALL
CQRLOG + TQSL (Advanced Ham Radio Logbook)
GPredict (Sat-Tracking)
QSSTV (Slow Scan Televison)
GQRX (SDR)
FreeDV (Digital Voice)
VOACAP (Propagation Prediction)
Chirp (Programming transceivers)
Qtel (Echolink Client)
WSPR with RTL-SDR v3
VNC server para acesso externo (tablet, telefone ou computador)

Que tal? 🙂

Instruções

Não há fórmulas mágicas, os bons projecto levam tempo!
Precisa tempo e paciência, sobre tudo se não tem muita experiência com sistemas operativos linux em linha de comandos. No entanto tentei tanto neste como nos posts anteriores criar instruções para que fosse apenas copiar e colar...
Neste projecto, e porque não sou o autor de tudo, deixo links para outros sites, para os siga e instale tudo pela ordem que sugiro.

Comecemos por instalar o pi-star

Faça o download e siga as instruções para o seu sistema operativo.
A instalação do pi-star não é opcional já que este projecto se baseia nele, que inclui o último sistema operativo "buster" à data em que escrevo este artigo.

Depois vamos instalar o interface gráfico GUI. Sim, vai ter uma consola gráfica, mas toda a instalação corre praticamente em linha de comandos.

Depois de instalado o pi-star, identifique a sua versão. Terá de habilitar o SSH, configurar o acesso à network ou, ligar um monitor, teclado e rato. Abra uma janela terminal, ou aceda por SSH e faça,

...dá-lhe algumas informações sobre a versão, processador e hardware
Para conhecer qual o sistema operativo, pelo nome que conhecemos digite,

PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
NAME="Raspbian GNU/Linux"
VERSION_ID="10"
VERSION="10 (buster)"
VERSION_CODENAME=buster
ID=raspbian
ID_LIKE=debian
HOME_URL="http://www.raspbian.org/"
SUPPORT_URL="http://www.raspbian.org/RaspbianForums"
BUG_REPORT_URL="http://www.raspbian.org/RaspbianBugs"

ou, digite o comando "lsb_release -a".
Actualize agora o seu sistema já instalado,

O pi-star, foi desenhado com propósito único, e será necessário instalar diversos componentes: software, plugins de terceiros e livrarias de código; de modo a dotá-lo de todo o software para o nosso projecto.

Instale a componente de configuração do Raspberry Pi, que facilitará muito qualquer configuração de rede, hardware, serviços, etc...

Ambiente gráfico de janelas

Agora vamos instalar o X ou interface gráfico GUI. Passo simples. Depois já terá acesso ao sistema pelo interface gráfico de janelas que lhe será mais familiar...

A partir deste momento, pode aceder já por teclado e rato, ligando um monitor à porta HDMI do Pi.
Habilite o VNC, para lhe permitir aceder remotamente, se não pretender como eu, ligar o monitor. Na linha de comandos ainda, faça,

7 Advanced Options
A5 Resolution
…seleccione o modo à sua escolha, no meu caso escolhi uma das configurações 16:9
Faça "Ok", "Ok" de novo, "Finish", "Yes" vamos fazer um reboot…

Agora já se pode ligar por VNC.
Antes de fazer reboot, pode também habilitar o "auto-login" no sistema de janelas. Volte ao "raspi-config" e siga os menus "Boot option"->"Desktop / CLI"->"Desktop autologin".
Algumas instruções que li sugeriram também instalar o xinit. Considere-o para já como opção,

Para conhecer o endereço IP do seu Pi, faça

Identifique a sua ligação de rede, instale o VNC Desktop no seu computador e já pode aceder confortavelmente ao seu Pi, pelo sistema gráfico de janelas.
Note que, a partir do momento que tem acesso ao interface gráfico pode abrir ali uma janela terminal e executar todos os comandos que se seguem...
Eu continuo ligado por SSH.

Porque o pi-star é muito robusto, quase à prova de desligar a alimentação quando e sempre que quiser sem qualquer cuidado em particular, tem também um firewall onde é preciso permitir o acesso externo. Nada complicado. Crie o ficheiro ipv4.fw que será lido pelo sistema e adicione estas regras ao iptables, firewall linux,

Grave, CTRL + x, "yes" e volte à linha de comandos.

Nota: esta lista de regras tem sido actualizada ao longo do projecto embora nem sempre seja referido nos diversos posts. Sempre que uma aplicação ou serviço necessita de comunicar para fora, ou receber dados, temos de abrir a porta respectiva!

Configurei já as portas 5900 e 5901 para acesso por VNC, a 8010 para acesso por telnet ao linbpq, a 9123 o acesso web à consola do linbpq e a 10093 para transferência de mensagens entre nodes, também para o linbpq.
Para aplicar estas regras,

Configurar o pi-star em mode read-write permanente

Descobrir onde o pi-star re-escrevia as instruções de read-write para read-only deu algum trabalho, muitos ficheiros abertos e re-escritos, novas instalações, pesquisas na web, frustração e umas boas horas. Vamos começar.

Temos de substituir todas as instruções que montam o sistema como leitura apenas, para leitura e escrita, isto é de "ro /" por "rw /".
Comecemos pelas regras na montagem das partições,

Igualmente importante, edite o ficheiro /etc/rc.local e comente com "#" a última linha onde aparece a expressão,

ou melhor, não a comente e altere-a para,

na directoria /var/www, fazemos o login como root,

Verificamos quantas entradas existem, com o user root,

Trocamos todos os "ro /" por "rw /". Para evitar erros copie a seguinte expressão como root,

E, verificamos que já não existe nenhum "ro /" por substituir. O output deve ser vazio!

"exit" sai do user root.
Em cada actualização do pi-star bem sucedida devemos correr estes 3 últimos comandos "find..."! É natural que, durante o update surjam mensagens como: "os seguintes ficheiros foram modificados..." Ignore e, volte a fazer os procedimentos descritos anteriormente.

Vamos editar ainda os seguintes ficheiros e substituir todas as entradas de "ro /" por "rw /"

Renomear os seguintes ficheiros, por exemplo para _[ficheiro]

Existem mais alguns ficheiros encontrados em /usr/local/sbin, /usr/sbin e /usr/bin mas não detectei nada que provocasse o sistema a voltar a read-only.

Notas:
1. Ao tentar actualizar agora o pi-star deve aparecer-lhe uma mensagem com esta,

Starting Services…
Done
Updates complete, sleeping for a few seconds before making the disk Read-Only
mount: /: mount point is busy.
Finished

O que é normal visto que o sistema é read-write. Não há problema.

2. Recentemente dei que o meu raspberry entrava em modo "halt" todas as noites à hora que executava o cron.daily
O problema manifestava-se quando corria no script "powersave" a instrução "tvservice -o" que desliga o port HDMI. Desabilite esta linha, editando o ficheiro /etc/cron.daily/powersave e comentando a instrução com "#",
#/opt/vc/bin/tvservice -o

Instalação de modos digitais em ambiente gráfico

Quer ter uma estação de rádio digital completa no seu raspberry pi?
Prossiga agora para o artigo - https://dl1gkk.com/setup-raspberry-pi-for-ham-radio/

Instalou tudo? Fantástico!

Instalação de Packet AX.25 e APRS com linbpq

Siga os meus posts anteriores, instale e configure de acordo com as suas preferências, o seu indicativo, o QRA locator, etc...

packet/APRS iGate, BBS, node e DX cluster com Raspberry Pi (parte 2)
packet/APRS iGate, BBS, node e DX cluster com Raspberry Pi (parte 3)
packet/APRS iGate, BBS, node e DX cluster com Raspberry Pi (parte 4)
packet/APRS iGate, BBS, node e DX cluster com Raspberry Pi (parte 5)
Mapas de APRS em BPQ32

Opcional

Acesso linux a partir do linbpq
Direwolf AX.25 + FEC = FX.25 (para quem pretende explorar o HF)
Monitor de WSPR com raspberry pi + dongle RTL-SDR

Veja também

Solução de problemas com a placa de som CM108
Como criar Menus no Gnome para o raspberry pi

...aspecto final


Referências:
https://gist.github.com/kmpm/8e535a12a45a32f6d36cf26c7c6cef51
https://forum.pistar.uk/viewtopic.php?t=1237&start=10
https://forum.pistar.uk/viewtopic.php?t=858

Referências avançadas:
https://hallard.me/raspberry-pi-read-only/
https://gist.github.com/paulfurley/8e2e2ead269d81d6c41604233a696acd
https://medium.com/@andreas.schallwig/how-to-make-your-raspberry-pi-file-system-read-only-raspbian-stretch-80c0f7be7353
https://github.com/km4ack/pi-build
https://forum.pistar.uk/viewtopic.php?f=3&t=2059&start=40

Direwolf AX.25 + FEC = FX.25

Nesta data o projecto direwolf vai na sua versão 1.6 D e suporta FX.25

Trata-se do protocolo AX.25 perfeitamente compatível com compressão de erros, útil sobretudo em comunicações de packet em HF.

Para dispormos desta característica devemos instalar esta versão de desenvolvimento. Siga os passos seguintes,

Após instalada a nova versão, chamo o direwolf com a seguinte linha,

As opções a seguir dizem respeito a,

-X - número de check bytes
-d - as opções de debug, optei por x
-t 0 - evita que ao chamar o direwolf o ecrã cintile
-c - local onde se encontra o ficheiro de configuração para esta placa de som, bauds, PTT entre outras definições
-l (L minúsculo) - onde será guardo o log

Quadro com opções de debug

Um exemplo do output com a função de debug -d x

FX.25: Matched correlation tag 0x05 with 6 bit errors.  Expecting 223 data & 32 check bytes.
FX.25: Matched correlation tag 0x05 with 0 bit errors.  Expecting 223 data & 32 check bytes.
FX.25: Matched correlation tag 0x05 with 0 bit errors.  Expecting 223 data & 32 check bytes.
FX.25: FEC complete with no errors.
FX.25: FEC complete with no errors.
FX.25: FEC complete, fixed 13 errors in byte positions: 11 19 65 73 74 92 116 117 132 138 143 144 192

FX.25: Matched correlation tag 0x06 with 1 bit errors.  Expecting 128 data & 32 check bytes.
FX.25: Matched correlation tag 0x06 with 1 bit errors.  Expecting 128 data & 32 check bytes.
FX.25: Matched correlation tag 0x06 with 1 bit errors.  Expecting 128 data & 32 check bytes.
FX.25: Matched correlation tag 0x06 with 1 bit errors.  Expecting 128 data & 32 check bytes.
FX.25: FEC complete with no errors.
FX.25: FEC complete with no errors.
FX.25: FEC complete with no errors.
FX.25: FEC complete, fixed  1 errors in byte positions: 97

O modo de FX.25 é automático e utilizado pela aplicação quando detecta erros na recepção.

Este modo é mais lento do que o protocolo AX.25 mas com melhor rendimento em comunicações a grande distância onde existe ruído, como as bandas de HF.

A estação que transmite define o número de check bytes a utilizar.

Melhorias do FX.25 em APRS

Um exemplo no envio de 1000 pacotes de APRS onde se introduz uma taxa de erro, controlada, e no final da transmissão contam-se os pacotes recebidos correctamente,

Melhorias do FX.25 em packet radio

O modo de ligação utiliza os mesmos pacotes de AX.25, mas de uma maneira diferente.
Em vez de transmitir broadcasting, isto é para todos como o APRS, é utilizado na comunicação entre duas estações específicas. O TNC que escuta atribui números de sequência aos pacotes recebidos.
O receptor reconhece o que foi recebido e solicita o preenchimento de pacotes ausentes, isto é, com erro.

Este teste utiliza 100 pacotes, cada um com 128 bytes de informação.
A quantidade total de dados da transferência, dividida pelo tempo decorrido, fornecerá uma taxa de transferência efectiva, medida em bytes por segundo neste exemplo.
À medida que a taxa de erro aumenta, são necessárias mais tentativas e a taxa de transferência diminui. Nalgum momento, o receptor simplesmente desiste antes de chegar ao fim. Damos aqui uma pontuação de 0.

Referências:
https://packet-radio.net/direwolf-1-6-d-mar-1-2020-fx-25/
https://packet-radio.net/direwolf-ax-25-fec-fx-25/
https://github.com/wb2osz/direwolf/blob/dev/doc/AX25_plus_FEC_equals_FX25.pdf

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

Integrando tudo

Vamos agora ligar o nosso DX Cluster ao BPQ.

Edite o ficheiro de configuração do BPQ, escrevendo na consola terminal,

Na configuração do port Telnet acrescente a linha CMDPORT=7300 ou adiciona o port 7300 na linha já existente,

CMDPORT=23 63000 7300

Na secção Applications acrescente a linha,

APPLICATION 4,DX,C 2 HOST 0 S,CT1EBQ-9,EBQDXC

onde,

4 é o número de série, isto é, a aplicação 4
DX o nome com que aparece na linha de comandos do BPQ
C 2 HOST 0 S para a ligação telnet no port 2
CT1EBQ-9 o indicativo e SSID para ligação directa por RF ao DX Cluster
EBQDXC é o alias da ligação

Agora no terminal linux, edite os seguintes ficheiro e acrescente no final as linhas seguintes em cada um deles. Grave e saia, com CTRL+S, CTRL+X

bpqapp 63000/tcp # bpq hardware information

e,

bpqapp stream tcp nowait pi-star /usr/local/bin/linbpq/app.pl

Agora, no final deste projecto, e se começou por ler o artigo pi-star +GUI, packet e aplicações desktop vamos ter um computador, tão simples quanto um raspberry pi, com pi-star e modem MMDVM, servidor de APRS e packet radio, com quantas bandas e modos, quantas as placas de som instaladas com um node de DX Cluster!

Actualmente este projecto está a funcionar ininterruptamente e faz parte da estação de CT1EBQ, com packet a 300, 1200 e 9600 bauds, em HF, VHF e SatGate, UHF para comunicações mais rápidas e ARDOP em 14.1035 MHz LSB.

E pode ser vista aqui

APRS location of CT1EBQ

Referências:

Sobre as frequências a utilizar:
http://www.cantab.net/users/john.wiseman/Documents/LinBPQtoSpider.html
https://en.wikipedia.org/wiki/Automatic_Packet_Reporting_System
http://wiki.complete.org/PacketRadioOnHF
https://vapn.org/about/virginia-packet-network-design/references/hf-robust-packet-frequency-list

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,

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

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/

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

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

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

Configuração,

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,

Vamos criar a base de dados,

...este comando pode demorar alguns minutos.

Compilamos o software para o nosso sistema operativo,

E, vamos agora iniciar o nosso programa,

ou, daqui para a frente,

"&" 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,

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. Proteja a sua conta escrevendo na consola,

set/password [your callsign] [your password]

Para sair da consola e fechar o spider, faça "B", "quit" ou "shutdown".

Para entrar como sysop na consola, escreva "sysop". Supondo que a sua password era "abcdef", o sistema pergunta-lhe "05223" que corresponde às letras da sua password "afccd".

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,

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
WorkingDirectory=/usr/local/bin/spider
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,

e, active o serviço

Agora inicie o serviço escrevendo,

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

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.

Ligue-se a outros nodes de DX
ou, estableça um cluster com outros nodes de DX.

Ligar-se a outros…

Contacte uma estação de amador que faça parte do DX Cluster e peça-lhe se se pode ligar a ele para fazer crescer o cluster na sua área.

Crie um script para cada nova estação que venha a fazer parte do seu cluster em ./connect/[callsign]
Supondo que se pretende ligar a CT1EBQ-9. Crie o ficheiro /spider/connect/ct1ebq-9

Com o seguinte conteúdo,

timeout 60
connect telnet node.ct1ebq.com 7300
'login' 'yourcallsign+SSID'
'password' 'passthatIgiveyou'
client ct1ebq-9 telnet

…grave e feche o ficheiro.

O próximo passo é criar um ficheiro para o arranque destas contas…
Eis o meu exemplo,

e, copie e cole este modelo alterando o indicativo das estações que vai adicionando ao cluster,

# Startup Script
set/var $Spot::maxspots = 100
set/var $DXMsg::email_server = 'localhost'
set/var $main::reqreg = 0
set/spider pe1rrr-9
set/spider k3chb-2
set/spider cs5sel-5

Ao criar um cluster com CT1EBQ-9 teria de acrescentar a linha, "set/spider ct1ebq-9" e apagar as restantes com indicativos que não fazem parte da sua rede. Recorde que, é apenas um exemplo.

Depois devemos adicionar também cada indicativo ao crontab do DX Cluster, em /spider/local_cmd/crontab
Um vez mais deixo-lhe o meu exemplo para que tudo faça sentido,

# check every 10 minutes to see if ct1ebq-9 is connected and if not
# start a connect job going

0,10,20,30,40,50 * * * * start_connect('cs5sel-5') unless connected('cs5sel-5')
0,10,20,30,40,50 * * * * start_connect('pe1rrr-9') unless connected('pe1rrr-9')
0,10,20,30,40,50 * * * * start_connect('k3chb-2') unless connected('k3chb-2')

USDB Update
31 5 * * 6 spawn('cd /tmp; wget -q ftp://ftp.w1nr.net/usdbraw.gz; /usr/local/bin/spider/perl/create_usdb.pl /tmp/usdbraw.gz; rm -f /tmp/usdbraw.gz')
45 5 * * 6 run_cmd('load/usdb')

No seu caso apagava as linhas com os indicativos que não fazem parte da sua rede e acrescentaria,
0,10,20,30,40,50 * * * * start_connect('ct1ebq-9') unless connected('ct1ebq-9')

Ligue outros...

Agora vamos permitir a ligação de outros nodes ao nosso DX Cluster.

É muito simples, apenas tem de abrir a consola, no terminal ou por telnet ligando-se com o seu indicativo. Faça,

...e, agora crie o novo utilizador, por exemplo, de modo a que ct1ebq-9 se ligue também à sua estação,

set/password ct1ebq-9 [password]

[password] é uma string com letras, números ou outros caracteres aceites pelo sistema.

Ainda na consola, utilize o comando "spoof" para atribuir o nome e locator ao novo node,

spoof CT1EBQ-9 set/name Ricardo
spoof CT1EBQ-9 set/qra IM58GR

Para instruções do comando spoof faça "help spoof" na consola do DX Cluster. Para sair escreva B e Enter.
Por favor informe-me que pretende ligar-se ao cluster através de mim e envie-me,

o seu URL e o port do DX Cluster, habitualmente o 7300
o seu indicativo para o cluster, callsign e SSID
e a password que atribuiu a ct1ebq-9
o seu nome
o seu QRA locator

Muito grato ao Red, PE1RRR pela sua ajuda na compilação destes dados em como criar um cluster de DX.

Esta foi a explicação que lhe permite saber como configurar tudo desde o princípio...
Mas se quiser fazer a instalação sem se preocupar com estas configurações pode utilizar o script descrito nesta página ou, para fazer a actualização de uma instalação existente siga este link...

Continua na parte 5

Referências:
https://dxheat.com/dxc/
http://www.dxcluster.org/main/usermanual_en.html
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...

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,

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,

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 node.ct1ebq.com 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,

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

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

[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,

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

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

Para parar o linbpq

Para verificar o estado do serviço,

Continua na parte 4