Como ligar o IC-7300 a Amplificadores Lineares não Icom

De modo a proteger o transceptor IC-7300, quando queremos usar Amplificadores Lineares não Icom esta sugere, no capítulo 2-5 do manual básico, utilizar-se um relé directamente na ficha SEND. Ou com um cabo único ligado à ficha de ACC que pode levar também a informação de ALC (verifique as especificações, de 0 a -4V)

O circuito que aqui partilho permite substituir o relé por semi-conductores evitando o ruído audível de comutação do relé, que poderá incomodar sobre tudo quando estamos em CW.

Utilizo aqui a ficha ACC, descrita no capítulo 12-1, por ter incluída a alimentação de 13,8V a 1A para o circuito. Este circuito consome poucos miliamperes e a carga do relé do Amplificador Linear depende da alimentação do próprio amplificador, já que o PTT é feito à massa (negativo) através do MOSFET IRF830.

O divisor de tensão com as resistências 3,3k e 1k permite manter uma tensão de threshold de cerca de 4V na gate do IRF830, indicada pelo fabricante.

Quando o sinal de entrada em SEND vai a zero, o Led acende e o IRF830 leva a sinal de PTT ao nível de ground.

Se quiser simular o esquema pode descarregar o iCircuit e testar este projecto.

As melhores modificações para o IC-7300

O radio-amadorismo é uma actividade de experimentação, com tantas disciplinas que é difícil alguém as dominar todas. Com esta intenção experimentalista, proponho estas modificações e fica à consideração de cada um fazê-las ou não, dependendo dos seus conhecimentos e destreza, pois estamos a lidar com circuitos SMD e, material para o fazer…

Sugiro no entanto que não o façam com o equipamento no período de garantia!

1. Protecção contra sobretensão

O IC-7300 carece de uma protecção contra sobre-tensão como o seu irmão IC-9700 no circuito de alimentação do rádio, depois do fusível de 5A, na placa do andar de potência final. O IC-9700, se observarem no esquema tem um diodo de protecção imediatamente a seguir ao fusível.

Esta protecção é feita com um díodo zener unidireccional TVS (supressão de tensão transiente), por exemplo o 5KP15A-DIO de 15V com potência instantânea que chega aos 5kW e 400A a 10/1000us com um duty cycle de 0,01%

A modificação é simples e o diodo axial pode ser montado sobre os componentes já existentes…

Se a tensão de alimentação ultrapassar os 15V o fusível de 5A abre e terá de ser substituído. Mas, protegeu o rádio!

2. Redução de ruído dos relés do tuner interno e ventoínha de TX


O IC-7300 para quem gosta de silêncio é um pouco ruídoso. O ruído vem sobre tudo dos relés quando se liga o tuner no processo de sintonia da antena e da ventoínha de arrefecimento quando em transmissão.

Relés
No caso dos relés são 2 aqueles que mais ligam e desligam durante a sintonia e é com estes que nos devemos preocupar.
Uma ideia, que não é minha, é envolver com massa adesiva patafix da UHU ambos os relés, por cima e a toda a volta moldando a massa à volta do relé.

Esta melhoria foi sugerida pelo colega Steve Ellington N4LQ, reduz o ruído em cerca de 10dB e o resultado pode ser visto aqui,


Ventoinha
A ventoinha pode ser substituída por uma com as mesmas dimensões mas mais silenciosa. Deve ter sensivelmente a mesma rotação, fluxo e pressão de ar.
Há quem sugira o modelo Noctua NF8-A PWM.
Apesar de se conseguir reduzir o ruído com técnicas na construção das pás, o método mais usual é reduzir a rotação e fluxo de ar…

Informações bem documentadas no blog do colega SP3RNZ

Mas a escolha é muita pois estas ventoinhas são utilizadas nos mais diversos computadores pessoais e aplicações de eletrónica.

3. Extensão do ajuste do tuner para SWR até 1:6 de estacionárias

Quem já teve uma antena multi-banda que tem ligeiramente mais de 3 de SWR (onda-estacionária) em alguma das bandas e não conseguiu ajustar o rádio?
Esta situação é comum em antenas de banda larga, multi-banda, end-fed's, e fios longos com baluns de 9:1…
A opção pode ser utilizar um tuner externo ou fazer esta pequena modificação.

A Icom limitou o ajuste a 3 de estacionárias para evitar possíveis alta tensões no circuito do tuner que podem danificar componentes como consensadores e relés durante o processo de ajuste, por isso não vamos abusar destes limites!

A técnica é sempre iniciar o ajuste do tuner com menos de 50W e só depois, aplicar toda a potência.
Não esquecer que o IC-7300 tem um modo de emergência, com potência limitada a 50W, e que pode lidar com situações de onda-estacionária de 1:10.

A modificação que proponho, e está mais do que descrita noutros posts sobre o tema, é subir o limite a uma relação de 1:6 (impedância da antena entre 8 e 300Ω), isto é, o seu rádio consegue agora ajustar até 6 de onda estacionária. Com 6 de estacionárias a eficiência da antena é apenas metade! Mais do que 6, mude de antena!

Para o conseguir, solde uma resistência de 100kΩ em paralelo com a R1507 de 180kΩ.
Atenção que esta é uma zona de componentes SMD. Assegure-se que tem ferro de soldar de ponta fina e destreza para o fazer!

No meu caso, o resultado foi este.

4. Melhoria da potência de saída em SSB

Em comparação com outros equipamentos a Icom tem um ALC com resposta muito agressiva, onde um pico de voz limita a potencia de saída e só recupera depois de 2 a 3 segundos.
A Icom defende-se dizendo que assim se consegue melhor fidelidade de voz, evitando possíveis distorções… daí este ser um tema muito controverso e haver quem defenda esta modificação e outros que não a aconselham.

Esta modificação leva a um maior stress do andar final, já que incrementa a potência em cerca de 30% a 40%, ou seja mais 2.4dB o que nem chega a ser meio ponto de sinal na recepção de quem nos escuta!

Outros referem que se consegue o mesmo resultado ligando o compressor entre 3 e 5.

Seja como for, eu quis experimentar e o resultado foi o esperado. Picos de 40W passaram para 70W. A potência máxima subiu ligeiramente para 110W e não notei qualquer distorção da modelação…

Esta modificação é simples e basta soldar um pequeno condensador de 2µF a 4,7µF. Eu utilizei um de 3,3µF conforme as instruções de PC5E.

Fica ao vosso critério… boas experiências e muito cuidado para não danificar este excelente rádio!

Os créditos deste artigo não são meus, mas sim dos autores aqui descritos.

Outros links de interesse:
https://www.ab4oj.com/icom/ic7300/7300notes.pdf
https://www.mancuso.net.au/ic_7300.html
https://www.pc5e.nl/downloads/ic7300/Mods/IC-7300-Antenna-tuner-wider-range-modification-by-SP9SOY.pdf
https://klop.solutions/alc-and-the-ic-7300-about-talk-power-and-modifications/
https://www.ad5gg.com/2017/11/01/ic-7300-average-ssb-power-modification/
http://thestingyham.blogspot.com/2018/01/does-your-icom-7300-suffer-from-low.html

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

Sincronize 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