Dual band J-Pole

Nunca comprei uma antena para o QTH ou para os dias de campo. As únicas que adquiri foram para uso móvel ou portátil, pelas suas características ou preço.
Além do custo destas antenas, tenho gosto em construir, em validar as leis da física e aprender com a experiência. E a satisfação, imagino, é como a de um pintor ou escultor quando terminam a sua obra...

Não inventei nada. Este artigo é fruto de pesquisas sobre antenas com ângulos de radiação baixos e fáceis de construir. A J-Pole é uma antena óptima para quando compramos um novo rádio de VHF ou UHF e dizemos - então e agora!?
Constrói-se numa tarde, depois de adquirido todo o material e ferramenta.

O artigo original, de Jeffrey Bail, NT1K está muito bem explicado, apenas acrescento aqui algumas modificações e medidas métricas. Por exemplo, Jeffrey utiliza varão de alumínio que torna a antena mais pesada, eu utilizo tubo de alumínio de 9mm de diametro, 2 deles roscado por dentro, que apertam nos parafusos de fixação à cantoneira, e o elemento irradiante roscado por fora, que aperta no adaptador da SO-239 com rosca de 3/8". Deste modo melhora-se o peso e a resistência da antena ao vento.
Sempre que possível utilizem material em alumínio ou inox e no final, pintem a antena e toda a estrutura.

Mãos à obra

Eis como construir uma antena J-Pole para 2m e 70 cm para o seu QTH, casa de férias ou caravana.
Já fiz umas 5 e aqui vos deixo as medidas e métodos para a sua construção prática.

A vantagem de uma J-Pole relativamente ao dipolo é o angulo de saída na ordem dos 20º, melhorado apenas pelas Slim Jim com 8º ou por antenas Colineares.
A J-Pole é também uma excelente antena para comunicações satélite. Um bom compromisso entre ganho e ângulo de radiação.

A sua construção física é muito interessante e fácil. O elemento de maior comprimento liga a toda a extrutura metálica de suporte - mastro ou torre, comportando-se muito bem na descarga da ionização do ar à terra.

A largura de banda é influenciada pelo diametro do tubo: em VHF é superior a 5 MHz e em UHF superior a 10 MHz, que cobrem toda a largura das bandas de amador nestas frequências.

Utilize de preferência tubo de alumínio bruto, não anodizado. O comprimento dos tubos aqui referidos são para alumínio bruto, com coeficiente de velocidade de ~0,95.

Material:
1 (A) tubo de alumínio de 490mm (radiante)
1 (B) tubo de alumínio 165mm (elemento UHF)
1 (C) tudo de alumínio 1480mm (elemento VHF)
1 fixação para PL-259 fêmea isolada com espaçadores para elemento radiante
1 cantoneira de alumínio ou aço inox com 150mm x 25mm x 25mm
2 parafusos de 70mm M7 inox ou zincados
2 porcas para parafuso M7 inox ou zincadas
3 tampas de 9-10mm para tapar as extremidades superiores dos tubos
1 braçadeira em U para fixação da antena com o diâmetro necessário ao mastro que utilizar

Ferramenta:
cançonete 3/8"
macho para M7

Corte os 3 tubos com as medidas referidas no material a utilizar. Pode prescindir do tubo de UHF ou VHF se pretender apenas construir a antena mono banda.

Faça a furação na cantoneira de acordo com o desenho. A distância entre os elmentos verticais não é crítica e depende da relação distância dos elementos da antena e o diametro dos tubos.

Comece por aparafusar o conjunto parafusos M7 com as respectivas porcas, para os elementos antena B e C.

Abra rosca interior nestes tubos, B e C, com o comprimento do parafuso M7, desde a porca à sua extremidade. O alumínio é muito "guloso", são necessários movimentos como meia ou uma volta a fazer rosca, no sentido dos ponteiros do relógio, e 2 voltas a retirar material em sentido contrário. A seguir recupera as 2 voltas e dar mais uma, novamente 2 voltas em sentido contrário… e por aí fora até conseguir roscar o interior do tubo até ao comprimento do parafuso.

O tubo A é roscado por fora, com o cançonete apenas o tamanho necessário para apertar até ao fundo do conjunto adaptador/isolador que termina na PL-259.

Com cola de silicone aplicar as pequenas tampas com o cuidado de retirar o ar para que a tampa não salte enquanto a cola seca completamente. Em alternativa coloque apenas cola nas extremidades dos tubos de forma a selar a entrada de humidade.

Como acabamento final pintei todo o conjunto com tinta plástica sem base de carbono, de modo a não alterar as características do alumínio, já que, recorde, a radio frequência circula no exterior do condutor, isto é, do tubo da antena.

Referências:
https://www.wimo.com/en/30016
https://m0ukd.com/calculators/slim-jim-and-j-pole-calculator/
https://nt1k.com/open-stub-j-pole-project-completed-many-times/

Instalar o Telegram no raspberry pi

Ou, para quem seguiu este projecto até aqui, a forma mais simples de instalar o telegram-desktop versão 1.5.11 desde a fonte, apenas com as livrarias em falta na distribuição debian buster onde temos vindo a trabalhar.

Porquê o Telegram?
É multi-plataforma, open source e um dos mais seguros software de chat e transferência de dados P2P! Algo que estava em falta neste projecto e permite a partilha de links, ideias, chat entre amigos e outros rádio amadores... Vamos a isso.

Actualize o seu sistema,

Para evitar adicionar mais lixo é boa prática instalar tudo a partir de directorias temporárias, que são limpas cada vez que reinicia o seu raspberry pi. Faça o seguinte,

A seguir descarregue as livrarias e programa, linha a linha,

E instale pela seguinte ordem de modo a evitar falhas nas dependências,

Se receber alguma mensagem de erro durante a instalação verifique a dependência, faça o download dessa dependência em https://packages.debian.org/buster/telegram-desktop para a versão armhf e recomece a instalação no pacote que lhe deu o erro...

Ao concluir com êxito a instalação, o Telegram pode ser chamado a partir do menu Internet > Telegram Desktop

Preencha o seu número de telefone móvel, confirme o código e eis a lista de contactos e mensagens que existe na sua aplicação mobile.

Se pretender que o Telegram seja iniciado e fique minimizado na barra de menus, abra o ficheiro ~/.config/lxsession/LXDE-pi/autostart e adicione a linha,

Configuração do exim4 para envio de e-mails

Muitas aplicações linux necessitam de enviar notificações por e-mail. Por exemplo o cron jobs utiliza o e-mail para enviar relatórios e alertas… no meu caso interessa-me que os diversos scripts descritos ao longo destes posts me enviem e-mails no caso de excedidas as características técnicas do raspberry pi, se tenho mensagens na BBS para mim, ou se houve actualizações de software…

Decidi-me pelo exim4 Mail Transport Agent pela simplicidade de configuração, espaço em disco e a necessidade de recursos mínimos de CPU.

O meu raspberry pi corre a versão Debian Buster e para instalar o exim4 deve fazer o seguinte,

Definir o nome da sua máquina descrito no artigo - Configurar correctamente o nome de uma máquina linux

Actualizar o seu sistema e instalar o exim4

Configurar o exim4

Siga os passos seguintes, responda às questões do instalador adaptando as respostas às suas configurações,

- a primeira janela pergunta-lhe qual o tipo de servidor que pretende. Para o que pretendo, seleccionei "mail sent by smarthost; no local mail"
- a próxima, pergunta-lhe pelo nome do servidor de e-mail. Escreva o nome que utilizou no hostname
- a seguir, quais são os endereços IP que podem utilizar o servidor. Responda com "127.0.0.1 ; ::1"
- próxima, outros destinos para os quais correio é aceite. No meu caso utilizei as configurações de hosts para o meu endereço de IP público (endereço fixo): "ct1ebq.oitaven.pt; localhost.localdomain; localhost;" ou deixe em branco
- nome de domínio visível para utilizadores locais, uma vez mais no meu caso "ct1ebq.oitaven.pt"
- endereço IP ou host name para o envio de correio. No meu caso "mail.opensolutions.pt::587". Aqui, por exemplo, poderia ser o servidor de envio do gmail, ao qual responderia "smtp.gmail.com::587"
- mantenha o pedido de nomes DNS mínimas (Dial-on-Demand)? Responda "No"
- dividir a configurações em diversos ficheiros? Seleccione "Yes"

O resultado do meu ficheiro de configuração foi,

Agora tem de configurar os detalhes da conta de envio de correio. Edite o ficheiro /etc/exim4/passwd.client e adicione esta linha no final, de acordo com as suas configurações

Proteja este ficheiro,

Os restantes ficheiros de configurações encontram-se em /etc/exim4
Não os altere. Sempre que faça alterações a qualquer configuração de correr o comando sudo update-exim4.conf e reiniciar o exim4.

Notas:

Acabei por fazer pequenas alterações aqui e ali. Deixo-as também para minha referência,

Editei o ficheiro /etc/exim4/exim4.conf.localmacros

O ficheiro /etc/exim4/exim4.conf deve conter as linhas seguintes, para a minha configuração,

Foram estas linhas que permitiram o meu servidor de e-mail aceitar e-mails sem erros.

Alguns processos, como referi no início, poderão enviar e-mails para o root ou outros utilizadores do sistema: pi ou pi-star.
Edite o ficheiro /etc/aliases e modifique de acordo com as suas configurações. O meu ficou assim,

Basicamente, todos os e-mails enviados são re-encaminhados para root, que por sua vez re-encaminha para o user pi-star, tendo como final destinatário ct1ebq.
Corra o seguinte comando para aplicar as alterações,

Pode ainda criar configurações mais complexas que resolvam users e nome de máquina em e-mails verdadeiros. Edite o ficheiro /etc/email-addresses

sudo nano /etc/email-addresses

E acrescente as linhas que pretender. Eis um pequeno exemplo,

Vamos testar

Aplique as suas configurações e reinicie o exim4,

Envie um e-mail a partir da linha de comandos linux,

"-v" dá-lhe os detalhes da comunicação e indica-lhe algum erro que possa ter de corrigir.
Mais 2 exemplos, para o envio de um pequeno texto,

Não esqueça de fazer cópias de segurança depois do exim4 bem configurado e testado!

Referências:
(alguns dos links que segui)
https://www.exim.org/docs.html
https://www.digitalocean.com/community/tutorials/how-to-install-the-send-only-mail-server-exim-on-ubuntu-12-04
https://raspinotes.wordpress.com/2019/03/10/send-email-from-raspberrypi-with-exim4/
http://www.manu-j.com/blog/wordpress-exim4-ubuntu-gmail-smtp/75/
https://askubuntu.com/questions/167043/how-do-i-configure-exim4-to-send-mail-through-a-password-protected-ssl-smtp-mail
https://linuxcommando.blogspot.com/2014/04/how-to-setup-exim4-on-debian-to-use.html
https://www.vultr.com/docs/setup-exim-to-send-email-using-gmail-in-debian

Configurar correctamente o nome de uma máquina linux

Quando temos um servidor linux, um computador desktop, ou mesmo um raspberry pi há serviços que gostariamos de correr que dependem de uma boa configuração do nome da máquina.

No meu caso o que me levou a esta necessidade foi a instalação do serviço para envio de e-mails de alerta e notificação, o exim4 a correr no raspberry pi.

A instalação do exim4, se pretendermos enviar e-mails como cliente para servidores como o gmail ou servidores de correio muito exigentes em termos de filtragem do que é ou não é spam obriga-nos a uma configuração bem feita.

Em qualquer distribuição linux o nome da nossa máquina é configurado em 2 ficheiros: /etc/hosts e /etc/hostname, idependentemente de existirem ferramentas para os editar e configurar automaticamente…

Deixo aqui o exemplo da configuração de ambos os ficheiros,

hostname, deve conter apenas uma linha com o nome da máquina. Faça,

e na primeira linha escreva o nome que quer dar à sua máquina. Geralmente o nome define a função deste computador ou servidor. No meu caso, escrevi: ct1ebq

Para ver o resultado, após o reboot da máquina faça,

O que no meu caso devolve,

 Static hostname: ct1ebq
       Icon name: computer
      Machine ID: 18634e1464184094bc66dcacfba0bf43
         Boot ID: ac42129fd59b46528ae6c13fd83ca8d6
Operating System: Raspbian GNU/Linux 10 (buster)
          Kernel: Linux 5.4.72-v7l+
    Architecture: arm

Agora o ficheiro hosts.

Este ficheiro permite o computador resolver nomes sem consultar qualquer servidor de DNS. Resolve os nomes em endereços IP do próprio computador, de computadores da rede de intranet ou da Internet.

Recordem que o que me levou a uma correcta configuração do nome da máquina foi a necessidade de autenticação num servidor de e-mail na Internet.
Tive então de utilizar um domínio que já tenho: oitaven.pt e indicar que o nome da minha pequena máquina é um subdomínio de oitaven.pt

Não esquecer que, para toda a Internet, o nome da minha máquina só será reconhecido depois de configurar no servidor de DNS um A HOST com a variável "ct1ebq".

Edite o ficheiro hosts,

O ficheiro ficou então assim,

89.115.0.209 ct1ebq.oitaven.pt
127.0.0.1 localhost.localdomain localhost

::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
127.0.1.1 ct1ebq

O nome do meu raspberry pi é ct1ebq e traduz o endereço 89.115.0.209 como subdomínio de oitaven.pt

A configuração do ficheiro /etc/hosts tem efeito imediato e é consultado cada vez que o sistema operativo ou qualquer aplicação solicita a resolução de nomes, por exemplo um browser.
Pode ser alterado a qualquer momento sem reiniciar o computador.

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 07:00 - 22:14, UTC time), 80W 1/4λ sloper dipole antenna
  port 7 – HF 14.1035MHz ARDOP 2000 (ON between 07:00 - 22:14, 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.

Actualização automática do linbpq

Requisitos:
- linbpq instalado em qualquer distribuição linux, incluso em raspberry pi
- linbpq a correr como serviço, descrito no final deste post

Encontrei esta ideia em https://packet-radio.net/update-linbpq-with-up2bpq/ mas, falhava sob determinadas circunstâncias e fui melhorando ao longo do tempo…
Por exemplo, o script original não via 2 updates no mesmo dia, por vezes necessário para corrigir problemas detectados pelos utilizadores, no lançamento de uma nova versão beta.

Este script corrige este problema ao utilizar o timestamp, com horas e minutos. Irá guardar também todas as versões actualizadas, caso pretendamos voltar atrás, e fazer um downgrade, por uma qualquer funcionalidade perdida.

Recordo que no meu caso, tenho o linbpq instalado num raspberry pi no directório /usr/local/bin/linbpq/.
Corrija os caminhos do script de acordo com o seu local de instalação.

Para criar o script faça,

Copie e cole este script no seu editor de texto

A seguir dê-lhe permissões de execução

E, corra-o, por exemplo a partir do directório onde se encontra,

De modo a actualizar automaticamente, insira a seguinte linha no crontab, fazendo sudo nano /etc/crontab

Praticamente todos os exemplos neste blog dizem respeito a projectos a correr sob pi-star. Altere o utilizador "pi-star" para "pi" se correr sob raspberry pi ou o seu utilizador de login!
Veja ainda o meu post mais recente sobre este assunto.

Referências:
https://packet-radio.net/update-linbpq-with-up2bpq/

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.

Gerir a performance no Raspberry pi

No Rpi é possível actuar sobre a frequência de clock do processador. Pode ser definida uma frequência mínima e máxima, por omissão no Rpi 4, respectivamente 600MHz e 1500MHz.

No meu caso o sistema operativo vinha configurado em modo "powersave", isto quer dizer que ao iniciar, o sistema opta pela velocidade máxima definida e minutos depois muda para 600MHz.
No meu caso, interessa-me que maioritariamente o sistema tenha a máxima performance e só entrar em powersave se não lhe estiver a solicitar processamento, por exemplo em portátil alimentado a baterias...

Este é também o método utilizado para fazer overclocking.

O kernel do Linux utiliza um driver para gerir a política de frequência do CPU.
As opções são as seguintes:

performance - usa sempre a frequência máxima do CPU
powersave - usa sempre a frequência mínima
ondemand - altera a frequência dependendo da carga do CPU (apenas muda entre o mínimo e o máximo)
conservative - altera suavemente a frequência da CPU dependendo da carga da CPU
userspace - permite que o utilizador controle a frequência do CPU

Como root ou sudo podemos alterar a configuração na shell em tempo real via sysfs.

Para ler a configuração actual,

Para alterar para uma das opções descritas, faça por exemplo,

Pode em qualquer momento saber a frequência do seu CPU, escrevendo no terminal,

Para modificar permanentemente esta opção no arranque, deve instalar o software "cpufrequtils",

E a seguir editar ou criar o ficheiro /etc/default/cpufrequtils e escrever a linha GOVERNOR="ondemand". Este ficheiro vai ser lido pelo script /etc/init.d/cpufrequtils

Outra opção, talvez mais simples é modificar as definições sempre no início do sistema. Edite o ficheiro /etc/rc.local

Adiciona esta linha, com o modo desejado, antes de "exit 0"

Referências:
http://with-raspberrypi.blogspot.com/2014/03/cpu-frequency.html
https://www.kernel.org/doc/Documentation/cpu-freq/governors.txt
https://www.raspberrypi.org/documentation/configuration/config-txt/overclocking.md

Carga fictícia 250W 0-3GHz

Um destes dias o meu amigo Pinto, CT1EDG ofereceu-me uma resistência de 50 ohm - "toma, é para fazeres uma carga fictícia!"

Pensei, nada mais simples, um qualquer dissipador, uma ficha SO-239 e a resistência. O resto é bricolage... Eis como ficou,

Notem que, a furação da resistência coincide com a da SO-239, daí a facilidade e simplicidade desta montagem!

O tamanho do dissipador, material e o interface entre a resistência e este dimensionam a potência dissipada. Para altas frequências, UHF, é importante que a ligação da ficha SO à resistência seja o mais curta possível, tal como neste exemplo.

Podem comprar estas resistências no e-bay por pouco mais de 3€. Pesquisem por "RFP 250N50".