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".

Adicionar CT1EBQ à sua lista de Nodes/BBS

Modo expert

Adicione esta linha em "BROADCAST NODES" no seu config: MAP CT1EBQ node.ct1ebq.com UDP 10093 B ; Ricardo Oitavén, EBQNOD in Cascais, Portugal

BBS para transferência de mensagens de packet: EBQBBS ou CT1EBQ-1

node/BBS HA (route path): CT1EBQ.CTLX.PRT.EU

...e, não esqueça - envie-me um e-mail com as suas configurações!

Passo a passo...

As primeiras configurações devem ser feitas no ficheiro bpq32.cfg
Edite este ficheiro, em linux por exemplo, fazendo,

…e acrescente as seguintes linhas, nas secções enunciadas,

Configuração do Node

Adicionar no port de AX25, na secção "BROADCAST NODES" uma entrada tal como,

MAP CT1EBQ node.ct1ebq.com UDP 10093 B

onde,

MAP - representa a instrução para iniciar o mapeamento do node
CT1EBQ - o indicativo + SSID do node
node.ct1ebq.com - endereço ou DDNS (DNS dinâmico)
UDP 10093 B - protocolo e port utilizado na ligação (não esquecer de criar uma regra no seu firewall/router para o endereço IP do BPQ/linbpq com port 10093 em UDP)

Caso o seu node não seja um node BPQ, por questões de compatibilidade, ou se pretender definir factores de qualidade distintos a cada node, adicione uma entrada na secção "ROUTES:", como,

CT1EBQ,193,1

onde,

CT1EBQ - o indicativo e SSID do node
193 - factor de qualidade estabelecido como óptimo  na maioria dos casos
1 - port (é possível definir rotas com diferentes factores de qualidade para cada port)

Estas configurações só são aplicadas quando reiniciar o BPQ!

Configuração da BBS

Supondo que já tem a sua BBS configurada, para partilhar e entregar correio noutras BBS através dos nodes... abra seu o browser preferido, e a partir da página de gestão do sistema, no menu "Mail Mgmt", faça o seguinte:

1. configure um novo utilizador (estação de packet ou BBS) em, "Users".
Escreva o indicativo CT1EBQ na caixa "Add" e prima este botão.

2. em seguida edite CT1EBQ na lista à sua esquerda nesta mesma página.
Preencha as check box: BBS, Expert e, Allow Sending Bulls.

no menu “Forwarding" seleccione CT1EBQ na lista à esquerda e preencha os campos de acordo com,

TO: CT1EBQ
AT: AMSAT; ARL; ARRL; WW; EU; PRT (1 por linha, sem ";")
Connect Script: C 1 EBQBBS (ou, CT1EBQ para entregar pelo port de AX.25, se for o seu caso, o port 1. Adicione regras de acordo com as instruções do BPQ)
BBS HA: CT1EBQ.CTLX.PRT.EU
Enable Forwarding: (check)
Interval: 3600 (Secs)
Request Reverse: (check)
Interval: 3600 (Secs)
Send new messages without waiting for poll timer: (check)
FBB Blocked: (check)
Max Block: 10000
Allow Binary: (check)
Use B1 Protocol: (check)
…e, não se esqueça de fazer "Update"

White Lists

As white lists servem para propagar novos indicativos pelas BBS. Deste modo, e se a informação BBS HA estiver completa em cada utilizador é possível partilhar endereços de hierarquia para que as BBS saibam o caminho e onde cada mensagem deve ser entregue a novos utilizadores.

Configure "WP Params" na página "Configurations"

Send WPUpdates: (check)
Reject WP Bulls: (check)
Type P: (check)
e, em "WP Destinations" adicione uma linha com,
WP@CT1EBQ.CTLX.PRT.EU

A seguir envie-me um e-mail com as suas configurações:

MAP [o seu callsign]-[SSID do node] [o seu endereço] UDP 10093 B (ex. MAP CT1EBQ node.ct1ebq.com UDP 10093 B)

BBS callsign: [o seu callsign]-[SSID do node] (ex. CT1EBQ-1, ou alias EBQBBS)

node/BBS HA (route path) ex. CT1EBQ.CTLX.PRT.EU

Referências
1) factor de qualidade
http://ohiopacket.org/index.php/Calculating_Net/Rom_route_quality
2) configuração do node
http://www.cantab.net/users/john.wiseman/Documents/BPQCFGFile.html
3) configuração da BBS
http://www.cantab.net/users/john.wiseman/Documents/BPQ%20Mail%20and%20Chat%20Server%20Mail%20Forwarding.htm