Como identificar a sua RTL-SDR 2832U

RTL-SDR 2832U back

Este post resolve o problema de identificação quando temos diversas pen USB RTL-SDR 2832U e as precisamos de chamar pelos programas às quais se encontram ligadas para os diversos serviços e antenas, já que de fábrica vêm todas com o serial number 00000001 (8 digitos).

Saiba que, é possível re-escrever a memória da eeprom da RTL-SDR e atribuir-lhe um número de série à nossa escolha.

Assim é fácil identificar cada uma das suas RTL-SDR 2832U e ter várias instâncias do Gqrx, ou de Web-SDR, ou ainda como eu para receber telemetria de balões e satélites.

Ler o número de série

Para ler as diversas pen RTL-SDR abra uma janela terminal e escreva,

0x0bda é o código do vendedor e 0x2838 o código do produto. E o sistema devolve-lhe,

Bus 001 Device 009: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838 DVB-T
Bus 001 Device 007: ID 0bda:2838 Realtek Semiconductor Corp. RTL2838 DVB-T

…e, se quiser saber em detalhe faça,

indicando -d vendor:[product] e -v para detalhes,

Mas, se instalou as livrarias necessárias pode utilizar o comando "rtl_eeprom" para ler e escrever em cada uma das suas RTL-SDR 2832U.

Experimente,

Found 2 device(s):
0: Realtek, RTL2838UHIDIR, SN: 00000001
1: Realtek, RTL2838UHIDIR, SN: 00000001

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner
Supported gain values (29): 0.0 0.9 1.4 2.7 3.7 7.7 8.7 12.5 14.4 15.7 16.6 19.7 20.7 22.9 25.4 28.0 29.7 32.8 33.8 36.4 37.2 38.6 40.2 42.1 43.4 43.9 44.5 48.0 49.6
[R82XX] PLL not locked!
Sampling at 2048000 S/s.
No E4000 tuner found, aborting.

Nota o sistema identificou 2 pen USB mas aborta na leitura do device 0...
Agora, identifique qual o device que pretende obter informações,

Found 2 device(s):
0: Generic RTL2832U OEM
1: Generic RTL2832U OEM

Using device 0: Generic RTL2832U OEM
Found Rafael Micro R820T tuner

Current configuration:

Vendor ID: 0x0bda
Product ID: 0x2838
Manufacturer: Realtek
Product: RTL2838UHIDIR
Serial number: 00000001
Serial number enabled: yes
IR endpoint enabled: yes
Remote wakeup enabled: no

Idem para o device 1…

Gravar o número de série

Para mudar o número de série da segunda RTL-SDR #1 escreva,

Found 2 device(s):
0: Generic RTL2832U OEM
1: Generic RTL2832U OEM

Using device 1: Generic RTL2832U OEM
Found Rafael Micro R820T tuner

Current configuration:

Vendor ID: 0x0bda
Product ID: 0x2838
Manufacturer: Realtek
Product: RTL2838UHIDIR
Serial number: 00000001
Serial number enabled: yes
IR endpoint enabled: yes
Remote wakeup enabled: no

New configuration:

Vendor ID: 0x0bda
Product ID: 0x2838
Manufacturer: Realtek
Product: RTL2838UHIDIR
Serial number: 00000002
Serial number enabled: yes
IR endpoint enabled: yes
Remote wakeup enabled: no

Write new configuration to device [y/n]? y

Configuration successfully written.
Please replug the device for changes to take effect.

Retire a pen USB e volte a liga-la! Repito as instruções do programa pois a mim passou-me despercebido!
Dicas de CT1EDG...

Como atribuir nomes a devices HidRaw (parte 3)

Este artigo conclui o tema sobre a atribuição de nomes a devices, referidos na parte 1 e parte 2, quando os fabricantes não atribuiem um número de série e 2 ou mais dispositivos parecem-nos iguais e impossíveis de identificar…
Os dispositivos HidRaw permitem aceder a interfaces USB e bluetooth sem alteração de dados ou protocolo. Significa em inglês original - Raw Access to USB and Bluetooth Human Interface Devices.

Por vezes os nossos projectos necessitam de chamar estes devices para comunicarem… dou como exemplo a utilização do controlo de PTT pelas placas de som CM108 e CM119, descrito no artigo packet/APRS iGate, BBS, node e DX cluster com Raspberry Pi (parte 2), onde o direwolf usa o pino 13 do GPIO para pôr o rádio em transmissão, através do comando "PTT CM108 3 /dev/hidraw3".

Como consegue imaginar, ao reiniciar o sistema operativo, estes devices mudam a ordem à medida que o kernel as lê e lhes atribui um número… este é o problema que aqui resolvo, a atribuição de um nome ou symlink a um device hidraw para que, independentemente da ordem atribuída pelo kernel, saibamos sempre como comunicar com ele!
Note, este procedimento só é válido (à semelhança dos procedimentos descritos nos artigos anteriores) se e só se o nosso device USB se encontrar sempre ligado à mesma porta USB, seja directamente à board ou através de um HUB USB!

Identificar o device

Antes de ligar o seu dispositivo USB, execute o comando,

e obtém, por exemplo

crw------- 1 root root 243, 3 Mar 14 22:44 /dev/hidraw0
crw------- 1 root root 243, 4 Mar 15 09:25 /dev/hidraw1
crw-rw---- 1 root audio 243, 5 Mar 14 22:44 /dev/hidraw2

Agora ligue o seu dispositivo e execute o comando novamente… apareceu um novo device. Este é o nosso device, aquele que vamos configurar,

crw------- 1 root root 243, 3 Mar 14 22:44 /dev/hidraw0
crw------- 1 root root 243, 4 Mar 15 09:25 /dev/hidraw1
crw-rw---- 1 root audio 243, 5 Mar 14 22:44 /dev/hidraw2
crw-rw---- 1 root audio 243, 5 Mar 14 22:44 /dev/hidraw3

Agora que sabemos que ao nosso device lhe foi atribuido o número 3, como /dev/hidraw3, fazemos

de modo a obtermos toda a informação deste device,

De onde retiramos algumas das variáveis que nos permitem agora identificar o nosso dispositivo, uma vez mais, sempre que este se encontre ligado à mesma porta USB.

Criar o nome ou symlink

Escrevemos ACTION=="add", pois só queremos adicionar este dispositivo quando ele é ligado.
Apenas queremos identificar dispositivos hidraw, então escrevemos SUBSYSTEM=="hidraw", ver linha 9.
Se tiver vários dispositivos iguais repare na linha 32 que identifica pelo kernel a porta USB a que este dispositivo está ligado como, KERNELS=="1-1.2.1.1"
Comum aos nossos vários dispositivos, se existirem 2 ou mais, é o id do fabricante e o id do producto, respectivamente verificados nas linhas 38, ATTRS{idVendor}=="0d8c" e 57, ATTRS{idProduct}=="0012"
Agora é só atribuir-lhe um nome alternativo, com a instrução SYMLINK+="", que no meu caso se trata de uma placa de som CM108 que pretendo, como disse, controlar o PTT através do GPIO…

Construímos a linha a colocar no nosso ficheiro udev rules descrito nos artigos anteriores em /etc/udev/rules.d/99-hamlib.rules, na continuação das instruções que já escrevi…

Na janela terminal escreva, como sudo ou root,

Avance até à última linha, substitua as variáveis ao seu dispositivo e escreva, neste meu exemplo, e para cada uma das suas placas de som onde pretende controlar o PTT,

ACTION=="add", SUBSYSTEM=="hidraw", KERNELS=="1-1.2.1.1", ATTRS{idVendor}=="0d8c", ATTRS{idProduct}=="0012", SYMLINK+="hidHFpacket"

Cada vez que escreve no ficheiro rules aplique as configurações, com sudo ou root, o comando,

Agora, no direwolf o comando passará a ser,

PTT CM108 3 /dev/hidHFpacket

O nosso dispositivo é agora reconhecido pelo nome "hidHFpacket". Verifique, escrevendo no terminal,

crw------- 1 root root 243, 3 Mar 14 22:44 /dev/hidraw0
crw------- 1 root root 243, 4 Mar 15 09:25 /dev/hidraw1
crw-rw---- 1 root audio 243, 5 Mar 14 22:44 /dev/hidraw2
crw-rw---- 1 root audio 243, 5 Mar 14 22:44 /dev/hidraw3
lrwxrwxrwx 1 root root       7 Mar 14 22:44 /dev/hidHFpacket -> hidraw3

Quer ver agora todos os symlinks criados nestes artigos? Substitua as palavras de acordo com o nome que atribuiu e escreva,

Referências:
https://docs.kernel.org/hid/hidraw.html
https://github.com/nasa/IDF/wiki/Differentiating-Identical-Devices
http://reactivated.net/writing_udev_rules.html
https://github.com/nasa/IDF/wiki/Device-Permissions

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/