Como atribuir nomes a placas de som em linux (parte 2)

No post anterior tratámos da atribuição de nomes a devices série ttyUSB para identificar a ligação a rádios ou portas série.
Neste post vamos atribuir nomes a devices de audio, muito útil quando queremos configurar devices de som e nos aparecem listas de 30 e mais periféricos de som a configurar no software, por exemplo, para modos digitais como JS8Call, FT8, SSTV, ou direwolf em AX.25 e tudo nos parece uma confusão…

Confusão maior porque de cada vez que reiniciamos o computador ou o raspberry pi estes devices de som arrancam por ordem aleatória!

O método descrito tem uma condição - os devices de som USB têm de estar ligados sempre na mesma porta USB, seja directamente ou através de um HUB USB, isto se utilizarmos devices com o mesmo idVendor, idProduct e número de série.

Pode parecer estranho o porquê deste artigo! Mas neste projecto eu tenho a saída de audio do raspberry para os auscultadores, a saída do monitor, os 2 rádios Icom, um FT-817, e 5 placas de som alsa para AX.25 através do modem por software direwolf ligadas cada uma a seu rádio! De cada vez que reinicio o raspberry é uma trapalhada acertar todos os devices pela ordem com que foram configurados inicialmente! Já faz sentido?

Em linux existem diferentes camadas para a utilização de som: alsa e pulse audio. Há software que utiliza alsa outros que utilizam pulse audio…
Este é um artigo prático, consulte as referências bibliográfica para compreender a teoria por detrás dos devices de som em linux.

Atribuir nomes aos devices Alsa e Pulse Audio

Aqui o objectivo é, conhecer a identificação de cada um dos devices de som dos nossos Icom ou outro equipamento, adicioná-los ao ficheiro anterior /etc/udev/rules.d/99-hamlib.rules com um nome ou symlink que o designará mais facilmente…

Ligue à vez, a ficha USB do IC-7300, siga o procedimento abaixo descrito, desligue esta ficha e ligue agora a USB do IC-9700…

Para saber o id do device de som abra uma janela terminal e escreva,

ou, sem querer causar mais ruído, pode também conhecer o id de cada periférico fazendo, "udevadm monitor --subsystem=sound", desligando e voltando a ligar cada uma das fichas USB…

Bom, o primeiro comando devolverá uma série de linhas, das quais apenas nos interessa identificar algo semelhante a,

(para o IC-7300)
name: <alsa_input.usb-Burr-Brown_from_TI_USB_Audio_CODEC-00.analog-stereo>
sysfs.path = "/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.2/1-1.2.3/1-1.2.3.4/1-1.2.3.4:1.0/sound/card2"

(para o IC-9700)
name: <alsa_input.usb-Burr-Brown_from_TI_USB_Audio_CODEC-00.analog-stereo.2>
sysfs.path = "/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.2/1-1.2.2/1-1.2.2.4/1-1.2.2.4:1.0/sound/card3"

Agora, no output gerado para o IC-7300, pegamos apenas na expressão,
"/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.2/1-1.2.3/1-1.2.3.4/1-1.2.3.4:1.0/sound/card"

e construímos o código a escrever no ficheiro 99-hamlib.rules
Note que, este é o resultado do meu exemplo… deverá substituir esta expressão de acordo com o resultado que obteve! Estes valores identificam a porta USB a que o device se encontra ligado e o próprio device.

Na janela terminal escreva como sudo ou root,

e, a seguir às regras da primeira parte do artigo, relativas aos devices ttyUSB adapte e copie o seguinte código,

# ALSA devices
# IC-7300 Sound Card
SUBSYSTEM!="sound", GOTO="ic7300_alsa_naming_end"
ACTION!="add", GOTO="ic7300_alsa_naming_end"
DEVPATH=="/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.2/1-1.2.3/1-1.2.3.4/1-1.2.3.4:1.0/sound/card?", ATTR{id}="IC-7300"
LABEL="ic7300_alsa_naming_end"

# IC-9700 Sound Card
SUBSYSTEM!="sound", GOTO="ic9700_alsa_naming_end"
ACTION!="add", GOTO="ic9700_alsa_naming_end"
DEVPATH=="/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.2/1-1.2.2/1-1.2.2.4/1-1.2.2.4:1.0/sound/card?", ATTR{id}="IC-9700"
LABEL="ic9700_alsa_naming_end"

# PulseAudio devices
# IC-7300  pulseaudio device
SUBSYSTEM!="sound", GOTO="ic7300_pa_naming_end"
ACTION!="change", GOTO="ic7300_pa_naming_end"
KERNEL!="card*", GOTO="ic7300_pa_naming_end"
DEVPATH=="/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.2/1-1.2.3/1-1.2.3.4/1-1.2.3.4:1.0/sound/card?", ENV{SOUND_DESCRIPTION}="IC-7300"
LABEL="ic7300_pa_naming_end"

# IC-9700 pulseaudio device
SUBSYSTEM!="sound", GOTO="ic9700_pa_naming_end"
ACTION!="change", GOTO="ic9700_pa_naming_end"
KERNEL!="card*", GOTO="ic9700_pa_naming_end"
DEVPATH=="/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.2/1-1.2.2/1-1.2.2.4/1-1.2.2.4:1.0/sound/card?", ENV{SOUND_DESCRIPTION}="IC-9700"
LABEL="ic9700_pa_naming_end"

Não se esqueça de ligar as fichas dos rádios sempre nos mesmos portos de ligação USB! Caso contrário este procedimento não servirá para nada!

Placas de som Alsa ligadas ao direwolf

Se for também o seu caso, proceda como anteriormente descrito, e ao meu ficheiro 99-hamlib.rules acrescentei ainda,

# CM108 ALSA devices for direwolf
# DEVPATH can be obtained by looking at `udevadm monitor --subsystem=sound` while pluging in the sound card.
# Do one card at a time, the "?" char on card should stay as it matches any card number that may pop on that USB port.
SUBSYSTEM!="sound", GOTO="alsa_naming_end"
ACTION!="add", GOTO="alsa_naming_end"
DEVPATH=="/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.1/1-1.2.4.1:1.0/sound/card?", ATTR{id}="UHFpacket"
DEVPATH=="/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.2/1-1.2.4.2:1.0/sound/card?", ATTR{id}="VHFpacket"
DEVPATH=="/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.2/1-1.2.4/1-1.2.4.3/1-1.2.4.3:1.0/sound/card?", ATTR{id}="VHFpacketSat"
DEVPATH=="/devices/platform/scb/fd500000.pcie/pci0000:00/0000:00:00.0/0000:01:00.0/usb1/1-1/1-1.2/1-1.2.1/1-1.2.1.1/1-1.2.1.1:1.0/sound/card?", ATTR{id}="HFpacket"
LABEL="alsa_naming_end"

Desligue e volte a ligar estas placas de som e escreva no terminal, substituindo nomes ou wildcards... exemplo,

Artigo relacionado - Solução de problemas com a placa de som CM108

Outros comando utilizados para melhor compreender este projecto

Continua...

Referências:
https://x8x.net/2019/04/04/icom-ic-9700-and-ic-7300-coexisting-in-linux/
https://gist.github.com/Aishou/f39c2f970c6db20e1845925c5cc0890e
https://www.florian-wolters.de/posts/static-sound-device-names-ic9700-ic7300/
https://blog.habets.se/2021/12/Linux-Sound-devices-are-a-mess.html

Como atribuir nomes a devices e a placas de som em linux

Em linux, ou no projecto descrito nestes posts, quando tentamos ligar 2 ou mais rádios deixamos de saber que periféricos foram atribuidos a cada ligação USB, porta ou placa de som, seja para fazer modos digitais JS8Call, FT8, SSTV, AX.25 ou para controlar remotamente os rádios…

Qual a solução?

Para as portas série é relativemente fácil.
Quando listamos as portas ttyUSB* aparecem-me 3. Uma relativa ao IC-7300 e 2 do IC-9700.

crw-rw----+ 1 pi-star dialout 188, 0 Mar 9 18:01 /dev/ttyUSB0
crw-rw----+ 1 pi-star dialout 188, 1 Mar 9 17:39 /dev/ttyUSB1
crw-rw----+ 1 pi-star dialout 188, 2 Mar 9 17:39 /dev/ttyUSB2

Mas não sabemos a que rádio foi atribuído o ttyUSB0, ou o 1 ou o 2!
Para resolver este problema vamos dar nomes a cada ttyUSB, para que cada rádio seja reconhecido pelo sistema, independentemente da ordem de ligação dos rádios ao computador, ou raspberry pi…

Atribuir nomes a devices

1. Listamos os devices USB para conhecer as variáveis idVendor e idProduct.
Escreva na janela terminal,

Bus 001 Device 010: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP2102/CP2109 UART Bridge Controller [CP210x family]
Bus 001 Device 025: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP2102/CP2109 UART Bridge Controller [CP210x family]
Bus 001 Device 024: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP2102/CP2109 UART Bridge Controller [CP210x family]

Entre outros dispositivos identifique algo idêntico a,
Bus 001 Device 076: ID 10c4:ea60 Cygnal Integrated Products, Inc. CP2102/CP2109 UART Bridge Controller [CP210x family]

Percebemos que para qualquer um dos rádios o idVendor="10c4" e o idProduct="ea60".

2. Agora pretende-se conhecer o serial number de cada rádio.
Numa janela terminal como sudo ou root escreva,

iSerial 3 IC-7300 06002344
iSerial 3 IC-9700 13005928 B
iSerial 3 IC-9700 13005928 A

Conhecendo estes valores, criamos uma regra para lhe atribuir um nome, ou melhor um symlink.

Crie então um ficheiro, escrevendo na janela terminal com sudo ou root e substitua os valores que obteve pelos que aqui mostro,

# IC-7300
SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", ATTRS{serial}=="IC-7300 06002344", SYMLINK+="ic7300"
# IC-9700
SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", ATTRS{serial}=="IC-9700 13005928 A", SYMLINK+="ic9700a"
SUBSYSTEM=="tty", ATTRS{idVendor}=="10c4", ATTRS{idProduct}=="ea60", ATTRS{serial}=="IC-9700 13005928 B", SYMLINK+="ic9700b"

…e agora, se a aplicação o permitir podemos definir nas suas configurações, no separador de ligação aos rádios, por ic7300 ou ic9700a ou b em vez de ttyUSB...

Desligue e volte a ligar os cabos USB aos rádios e escreva no terminal,

e obtém agora os nomes dos rádios e os devices ttyUSB correspondentes,

lrwxrwxrwx 1 root root 7 Mar  9 17:35 /dev/ic7300 -> ttyUSB0
lrwxrwxrwx 1 root root 7 Mar  9 19:07 /dev/ic9700a -> ttyUSB1
lrwxrwxrwx 1 root root 7 Mar  9 19:07 /dev/ic9700b -> ttyUSB2

Continua...

Antenas de fio longo de comprimento aleatório (Long Wire)

São antenas de compromisso, fáceis de utilizar e instalar. Trata-se apenas de desenrolar um fio, fixá-lo entre um ponto alto e directamente no antena tuner, não necessita de baixada em coaxial ou linha paralela.

As antenas de fio longo são alimentadas na extremidade e obrigam à utilização de um antena tuner quando se pretendem utilizar várias bandas na mesma antena.
Mas, mesmo os melhores antena tuner não conseguem adaptar as alta impedâncias quando múltiplos de meio comprimento de onda são utilizados.

Ao contrário de antenas dipolo ou as end-fed que devem ser cortadas para múltiplos de comprimento de onda, as de fio longo não devem utilizar estes múltiplos de comprimento de onda.
Devem ter comprimento superior a 1/4 de onda para a banda mais baixa que pretendemos utilizar e ter um bom aterramento ou serem contrabalanceadas com um fio de pelo menos 1/4 de onda igualmente da banda mais baixa.

A utilização de baluns de 1:5 a 1:9 para adaptar antenas de fio longo também pode ser considerada melhorando o alcance no ajuste de impedâncias pelo antena tuner.

Com certeza já deve ter experimentado um formigueiro ou mesmo choques elétricos dolorosos em transmissão quando as antenas não se encontram bem aterradas e balanceadas.
Quando era mais novo, e como a minha casa é antiga, ligava um fio de terra do equipamento ao cano de água mais próxima. Hoje é preciso confirmar se a canalização é em tubo metálico ou em PVC, pois este último não oferece bom aterramento!

Para evitar comprimentos de fios cortados para os múltiplos de meia onda em todas as bandas de amador há que verificar quais são os comprimentos a evitar.

Adaptei o código C, do Mike AB3AP, para medidas métricas e para as bandas utilizadas na região 1.
Pode passar directamente para a Análise, sem necessitar de utilizar este código, a não ser que queira alterar as bandas a operar.

Grave o ficheiro com o nome rw.c e compile o código,

atribua permissões de execução

e execute,

Análise

Com os resultados do script anterior compõe-se a tabela seguinte sobre o comprimento do fio em metros que não deve ser utilizado,

Comprimento
de onda
½ onda2º múltiplo3º múltiplo4º múltiplo
160m78,2156,3234,5
80m39,278,5117,7157,0
40m20,140,360,480,6
30m14,128,242,456,5
20m10,120,230,340,4
17m7,915,823,731,6
15m6,713,520,227,0
12m5,711,517,222,9
10m5,09,914,919,8
6m2,85,68,411,2

Podemos então retirar alguns comprimentos de fio possíveis para a nossa antena, que serão todos os outros com excepção dos da tabela anterior,

Comprimento do fiomenor banda utilizável
8,8m30m
10,8m40m
12,5m40m
17,7m40m
21,6m80m
25,6m80m
32,6m80m
36,3m80m
61,9m160m
105,8m160m
124,1m160m
128,9m160m

Referências
https://udel.edu/~mm/ham/randomWire/
http://www.arrl.org/random-wires
https://www.hamuniverse.com/randomwireantennalengths.html

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.

Pré-amplificador de microfone

esquema do pré-amplificador

Por vezes é difícil encontrar um pré-amplificador com uma tensão de saída que se adapte a qualquer rádio de amador.

Quis aproveitar um microfone de mesa antigo para ligar ao IC-7300 ou ao IC-9700 mas não conseguia, os diversos circuitos que experimentei tinham muita pré-amplificação e pouca tensão de saída!
Com este circuito, tenho a entrada do microfone no rádio a 50% e excelentes reportes de outros colegas, com uma modulação forte e bem preenchida.

O primeiro estágio é um pré-amplificador com bom ganho (hFE ~500) dado pelo BC549C e o segundo um adaptador em corrente que permite tensões de saída superiores a +-5V.
Pode utilizar praticamente qualquer transistor NPN, como o BC109C ou outros da mesma família...

Se pretender ligar um microfone de condensador "electrec" terá de acrescentar uma resistência de 2k2 do positivo da alimentação ao condensador de 2.2uF na entrada. Deve ainda inverter a polaridade deste condensador, com o positivo do lado do microfone.

Experimente diversos microfones, dinâmicos ou de condensador, e escolha aquele que lhe oferece uma voz mais natural.

Varie a resistência de 22k entre 4,7k e 47k para obter menor ou maior tensão de saída no último estágio.

Alimentei o circuito com uma pequena pilha de 9V, mas pode ir buscar a tensão de alimentação ao pino 2 da ficha de microfone do seu Icom, que disponibiliza 8V com 10mA, o que é mais do que suficiente.

Montei tudo numa tarde chuvosa, numa placa de circuito impresso perfurada e em pouco mais de uma hora ficou a funcionar!

Pode fazer o download do projecto e do programa iCircuit para Mac OS X e testar outros valores ou componentes...

Imagens de SSTV enviadas pela ISS – 2

Estas foram as imagens recebidas durante o exercício do Instituto da Aviação de Moscovo nas órbitas sobre a Rússia europeia, entre os dias 7 e 8 de Fevereiro de 2022.

Recebidas no modo PD120, na frequência de 145.800 MHz, com uma antena J-Pole vertical e o IC-9700, com um raspberry pi em linux e o programa QSSTV.

Foram poucas as passagens e por isso também poucas as imagens recebidas com boa qualidade…

Escuta de modos digitais com RTL-SDR + Gqrx + WSJT-X

No post Monitor de WSPR com raspberry pi + dongle RTL-SDR descrevi como receber sinais de WSPR em diversas frequências com um raspberry pi, em linux bash scripts.
Agora aqui, uma solução ainda mais eficaz com interface gráfico...

Descobri que é possível criar um stream de audio virtual através do Pulseaudio, e com este "fio" virtual de audio ligar o Gqrx, que funciona como receptor da RTL-SDR, ao WSJT-X onde nos é permitido ainda a escuta de outros modos digitais para além do WSPR…

Primeiro instalamos o Gqrx.
Siga as instruções seguintes, copiando e colando linha a linha numa janela terminal em linux,

A seguir escreva gqrx para iniciar a aplicação que, entretanto deve ter sido adicionado num dos menus do seu interface gráfico.

Agora corra o comando a seguir descrito, numa única linha, para adicionar o stream de audio,

Ligue o seu dispositivo SDR, eu utilizo a RTL-SDR, pois custa menos de 30€ e configure este device no Gqrx,

Para que funcione correctamente o output de audio deve ser configurado como Virtual_Sink, o nome que demos no nosso comando.

Configure agora o Gqrx para que possa receber instruções do WSJT-X da frequência a utilizar…
No menu "Tools - Remote control settings" verifique se existe, ou acrescente a porta 7356 para o endereço IPv4 127.0.0.1
Grave as alterações.

Instale agora o WSJT-X

Faça o download da página https://physics.princeton.edu/pulsar/K1JT/wsjtx.html para o seu sistema operativo. No meu caso o debian buster, actualmente na versão 2.5.4, wsjtx_2.5.4_armhf.deb

O WSJT-X foi adicionado ao menu. Corra-o e vamos às configurações…
No menu "File - Settings" seleccione o separador "Radio". Em "Rig:" escolha a opção "Hamlib NET rigctl"; em "Network Server" o endereço e a porta definidas no Gqrx, 127.0.0.1:7356.

Agora, no separador "Audio" escolha como input o stream virtual que anteriormente criámos "Virtual_Sink.monitor". No output é indiferente o que escolha, pois não vai fazer emissão.
Grave as suas configurações. É possível que o WSJT-X lhe dê alguma mensagem de erro, pois o Gqrx ainda não tem o serviço a correr.

No menu "Tools" do Gqrx inicie o serviço "Remote control"
Faça "play" e imediatamente deve ver na waterfall a recepção de sinais. Ajuste o volume Gain de modo a ter cerca de 50dB de input no WSJT-X.
No WSJT-X, escolha uma banda, por exemplo nos 30m ou 40m, o modo WSPR, inicie a recepção e deverá observar na waterfall de audio riscos verticais amarelo ou vermelho consoante a intensidade dos sinais. Aguarde pelo menos 2 minutos, para a recepção de WSPR, e o botão "Decode" acende-se em azul cian durante uns segundos até lhe aparecerem algumas estações na caixa de texto no topo.

Para aplicar permanentemente as definições no Pulseaudio, abra o ficheiro /etc/pulse/default.pa, avance até à última linha e acrescente as instruções a seguir numa única linha,

Se quiser contribuir para a rede mundial de WSPR, para estudo dos fenómenos de propagação e compreensão da MUF seleccione a opção "Upload spots" no WSJT-X.
A seguir pode configurar as bandas que gostaria de utilizar no botão "Schedule"

Referências:
https://www.onetransistor.eu/2017/10/virtual-audio-cable-in-linux-ubuntu.html
https://gqrx.dk/download/gqrx-sdr-for-the-raspberry-pi
https://dl1gkk.com/setup-raspberry-pi-for-ham-radio/

Fonte de alimentação comutada de baixo custo

À procura de uma solução portátil, de baixo custo e de pequenas dimensões para alimentar um IC-7300, IC-9700 ou qualquer outro rádio de 13,8V? Encontrei uma fonte comutada de 12V de tensão ajustável e 40A. Há vários modelos em lojas de eletrónica para 20 e mais amperes com valores a partir de 15€!

As especificações dizem que estas fontes são protegidas contra sobrecargas, sobretensão e curto-circuito… no entanto há um pequeno senão - o ruído que provocam em HF.

Depois de uma análise ao esquema, um esquema idêntico a todos estes modelos, com diferentes componentes de acordo com a potência envolvida, foi fácil reparar que no circuito de baixa tensão a filtragem é pouco eficaz e resume-se a uma bobine, L1 e um condensador, C13 de 100nF.

De modo a filtrar qualquer componente de onda alternada de alta frequência e harmónicas geradas pela unidade de alta tensão com alguns KHz coloquei 2 condensadores de 100nF aos terminais 1 e 2 da bobine L1 e outro de 10nF em paralelo com o C13, à saída dos 12V.
Todo o ruído desapareceu e tornou possível a utilização destas fontes comutadas em equipamentos de HF tão sensíveis como o IC-7300. Apesar do valor de fontes de alimentação para estas finalidades ter vindo a reduzir, as fontes industriais custam 1/3 ou mesmo 1/4 do preço das principais marcas utilizadas em radio comunicações amadoras.

Mãos à obra

A ideia inicial era colocar um cabo de alimentação por dentro da fonte de modo a evitar o toque e electrocussão pela tensão da rede (~220V) aos terminais, onde vamos ligar a saída dos 13,8V.
Por isso abri um furo de 10mm e apliquei um passador de borracha para passar o cabo por dentro da fonte. Na ficha onde se fixam os cabos nos terminais, com o circuito impresso na mão, fiz um furo no plástico para que o fio pudesse ser ligado por dentro e mais tarde isolei estes terminais.

Identifiquei a bobine L1, e os pontos 1 e 2, e liguei os condensadores ao positivo comum. Coloquei outro condensador na saída dos 12V.

Voltei a montar a caixa e ajustei a fonte para os 13,8V no potenciómetro que se encontra num dos lados do conjunto de terminais. Este potenciómetro ajusta uns +-2V relativamente aos 12V com que a fonte vem regulada inicialmente.

Testes finais

Aplicando em paralelo uma carga de lâmpadas, por exemplo dos faróis da frente de automóveis, o que perfaz cerca de 15A a 20A a tensão de 13,8V não chega a oscilar 1mV!
Rádios ligados e até hoje sem problemas.

Referências
http://www.imajeenyus.com/electronics/20151028_smps_variable_voltage/index.shtml
http://www.imajeenyus.com/electronics/20151028_smps_variable_voltage/s-400-12_supply.pdf
https://mauser.pt/catalog/product_info.php?cPath=23_2630_723&products_id=035-0880

Sincronizar a hora do seu Icom 7300

Hoje percebi que o relógio do Icom 7300 não mostrava a hora certa!
Ao contrário do IC-9700 que se liga a um servidor NTP, o 7300 não tem acesso à Internet e por isso não sincroniza o relógio.

O relógio nestes modelos permite não só saber a hora mas também registar QSO's em log, gravações de audio e contactos feitos em RTTY.

Uma rápida pesquisa mostrou-me que já existia solução! Um pequeno código em python que permite utilizar os comandos CAT de controlo remoto do rádio (CI-V/USB) descrita na secção 19 do manual avançado.

Este script de python está disponível no github, projecto de Kevin Loughin, KB9RLW, desde Junho de 2019.

Copie e edite as variáveis de baudrate e serialport. Se necessário instale as livrarias utilizadas por este pequeno script.

No meu raspberry pi, tenho uma pasta em /home/pi/bin que se encontra na variável $PATH, onde coloco todos os meus scripts. Substitua "pi" por "pi-star" se estiver a acompanhar o meu projecto all-in-one!

Como fazer

Recorde que, nestes posts, o caracter "$" não deve ser copiado e escrito na linha de comandos. Indica apenas que nos encontramos no modo de utilizador. "#" indica o modo de root.

Abra uma janela terminal e escreva os seguintes comandos, um de cada vez,

Agora copie e cole o código de https://github.com/loughkb/IC-7300-time-sync/blob/master/Set_IC7300_time.py
Grave, CTRL + s, e saia CTRL + x.

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

e execute,

Aguarde até que o relógio do seu raspberry pi chegue a :00 e as horas no IC-7300 são sincronizadas.
Para o testar, altere previamente a hora do 7300 e corra o último comando. Ao minuto zero, eis que o rádio actualizou a hora!

Para que este sincronismo possa ser feito de forma automática e sempre que o 7300 está ligado, adicionei uma linha no meu crontab que chama este comando todas as horas. Em algum momento coincidirá o comando correr com o rádio ligado 🙂

Edite o seu crontab,

e cole as seguintes linhas no final do ficheiro,

Grave, CTRL + s, e saia CTRL + x.
Note que o linux é sensível a maiúsculas e minúsculas. Utilize pi ou pi-star de acordo com o seu user no raspberry pi.

Obrigado Kevin Loughin, KB9RLW!

Referências
https://github.com/loughkb/IC-7300-time-sync
https://youtu.be/GhuI-vrCBhs

NanoVNA Saver on the Raspberry Pi

NanoVNA console

Como utilizo o raspberry pi no meu shack como computador de comunicações, programação e para aplicações de eletrónica lembrei-me de procurar se existia alguma aplicação para ler os dados de um NanoVNC.

Aqui deixo o método para a instalação deste projecto…

Abra o terminal e na linha de comandos copie e cole cada uma das seguintes linhas,

Para testar e iniciar o programa, digite: python3 nanovna-saver.py

Se correu tudo bem, mova agora a pasta de instalação para outra directoria, no meu projecto pi-star, descrito ao longo deste blog fica como,

Agora adicione um atalho ao menu.
Crie um novo ficheiro fazendo,

E copie e cole o seguinte conteúdo corrigindo algum caminho de acordo com a sua instalação,

Grave e saia, CTRL+s seguido de CTRL+x

Ligue o cabo USB entre o raspberry pi e o NanoVNA. Ligue o seu NanoVNA e, na janela do NanoVNA, secção "Serial port control" deve aparecer de imediato uma porta /dev/ttyACM0 (S-A-A-2).
Prima o botão Connect to device e faça as suas medidas!…

Pode encontrar o modelo que experimentei aqui,
https://www.passion-radio.com/meter/saa2n-1076.html#/217-version-4_screen_10_1cm_with_n