ICOM IC-705 — Terminal Mode na prática: entrar no D-STAR sem passar por um repetidor RF

No artigo anterior procurei explicar o conceito de Terminal Mode e de Access Point Mode no IC-705. Em ambos os casos há algo que, à primeira vista, parece quase estranho num rádio: podemos entrar na rede D-STAR através da Internet, mesmo que não exista qualquer repetidor D-STAR ao nosso alcance por RF. A diferença fundamental é que, em Terminal Mode, é o próprio IC-705 que utilizamos para falar; em Access Point Mode, o 705 funciona como ponto de acesso RF para um segundo rádio D-STAR.

Faltava a parte mais interessante: como se faz isto realmente? Foi precisamente aqui que comecei por complicar uma coisa que, depois de compreendida, é bastante lógica. O Advanced Manual da Icom explica o procedimento, mas algumas frases têm mesmo de ser interpretadas quase à letra. E desta vez tive uma vantagem extraordinária: como administro o XLX267, pude olhar para os logs do servidor e observar exactamente aquilo que o IC-705 estava a fazer do outro lado da Internet.

Antes de começar: o que faz realmente o Terminal Mode?

Numa utilização convencional do D-STAR, o primeiro salto é por rádio. O meu IC-705 transmite em DV para um repetidor próximo; esse repetidor possui um gateway ligado à Internet e é a partir daí que a chamada pode seguir para outro repetidor ou para outro utilizador da rede.

Simplificando:

IC-705 → RF → repetidor D-STAR → gateway → Internet → destino

No Terminal Mode retiramos precisamente esse primeiro salto por RF:

IC-705 → Internet → gateway D-STAR → destino

O rádio continua a tratar o áudio, a codificação DV, o nosso indicativo e o routing D-STAR. O que desaparece é a necessidade de transmitir pela antena para chegar a um repetidor local. O próprio manual é muito claro neste ponto: em Terminal Mode o transceptor não transmite nem recebe sinais RF através da antena.

Referência: IC-705 Advanced Manual, pág. 15-2 — “About the DV Gateway function”.

E aqui está uma surpresa importante: Terminal Mode não é “modo reflector”

Esta distinção merece ser feita logo no início porque eu próprio comecei por associar naturalmente Terminal Mode a “ligar o rádio pela Internet a um reflector”. O manual diz algo bastante diferente e muito mais interessante.

Na pág. 15-16, a Icom especifica que em Terminal Mode podemos fazer uma Gateway CQ Call ou uma chamada para uma estação específica através de call sign routing. E acrescenta explicitamente que não podemos efectuar a chamada seleccionando Local CQ ou Reflector.

Isto significa que o Terminal Mode preserva uma das características que considero mais elegantes do D-STAR: não precisamos necessariamente de saber onde está a estação que queremos chamar. Podemos seleccionar o indicativo dessa estação e o sistema de routing D-STAR procura encaminhar a chamada para onde esse indicativo foi registado/ouvido na rede.

Podemos igualmente escolher um repetidor remoto através de Gateway CQ. Portanto, conceptualmente, Terminal Mode não significa “Internet → reflector”; significa antes “Internet → gateway D-STAR”, e a partir daí utilizamos o routing que esse gateway disponibiliza.

Referência: IC-705 Advanced Manual, pág. 15-16 — “Operating in the Terminal mode”.

Então, e o XLX267?

Aqui começa precisamente a parte interessante da experiência.

No meu caso estou a utilizar o XLX267 como destino/gateway, e foi através dele que consegui chegar aos seus módulos. Isto não é o mesmo que seleccionar no menu DR a função normal Reflector, que o manual diz não estar disponível em Terminal Mode.

A solução apareceu quando segui literalmente a lógica do manual e utilizei:

TO → Direct Input (RPT)

Introduzindo, por exemplo:

XLX267 E

O “RPT” de Direct Input (RPT) pode induzir-nos a pensar exclusivamente num repetidor físico situado algures, a transmitir numa frequência VHF ou UHF. Mas aqui estamos a construir o routing D-STAR; não estamos a escolher a frequência do primeiro salto RF, porque esse primeiro salto simplesmente não existe.

Foi esta mudança de perspectiva que me fez finalmente compreender a operação.

O IC-705 possui Internal Gateway

Outra característica importante do 705 é que não precisamos obrigatoriamente de colocar um PC ou um telefone Android entre o rádio e a Internet. O IC-705 possui aquilo a que a Icom chama Internal Gateway Function.

Com o rádio ligado à Internet através da sua interface de rede, podemos utilizar directamente Terminal Mode e Access Point Mode. As aplicações RS-MS3W, para Windows, e RS-MS3A, para Android, continuam a ser possíveis através da função External Gateway, sobretudo quando o rádio não pode estabelecer directamente a ligação à Internet, mas não são necessárias na configuração que estou a utilizar.

No meu caso, portanto, o percurso é simplesmente:

IC-705 → Wi-Fi → Internet → gateway D-STAR

Sem computador, sem Raspberry Pi, sem hotspot MMDVM e sem qualquer outro equipamento intermédio.

Referências: IC-705 Advanced Manual, pág. 15-3 — “When using the External Gateway function”; págs. 15-11 e 15-12 — “When using the Internal Gateway function”.

O que precisamos de preparar

Primeiro, naturalmente, o IC-705 tem de conseguir chegar à Internet. No meu caso utilizo a ligação Wi-Fi do próprio rádio através da rede local.

Depois precisamos de ter o nosso indicativo D-STAR devidamente registado e, além dele, um Terminal/AP Call Sign. O manual chama especial atenção para isto: não basta que o nosso MY Call Sign esteja correcto; o indicativo Terminal/AP também tem de estar registado no gateway.

No meu caso:

MY Call Sign: CT1EBQ

Terminal/AP Call Sign: CT1EBQ H

H não é uma letra que outro radioamador deva simplesmente copiar. É o sufixo que tenho registado para este acesso. A Icom especifica que o Terminal/AP Call Sign tem oito caracteres e que o último é um identificador entre A e Z, com algumas letras reservadas que não devem ser usadas.

Referência: IC-705 Advanced Manual, pág. 15-4 — “About the Terminal and Access Point (AP) Call sign”.

Configurar o Internal Gateway

No IC-705 entramos em:

MENU → SET → DV GW → Internal Gateway Settings

É aqui que configuramos os parâmetros necessários ao gateway interno. Entre eles encontramos o endereço do Gateway Repeater (Server IP/Domain), o nosso Terminal/AP Call Sign, o tipo de gateway e a opção UDP Hole Punch.

No Terminal/AP Call Sign coloquei, naturalmente:

CT1EBQ H

Gateway Type, fora do Japão, deve ficar em:

Global

E depois temos o UDP Hole Punch, que merece alguma atenção própria.

Referência: IC-705 Advanced Manual, pág. 15-11 — “Setting the Internal Gateway Settings”.

UDP Hole Punch: o que é e porque pode ser necessário

A maioria das nossas redes domésticas está atrás de NAT. O computador, rádio ou telefone possui um endereço IP privado e é o router que mantém a ligação com a Internet. Isto cria uma dificuldade óbvia quando alguém no exterior pretende iniciar tráfego UDP directamente para um equipamento que está dentro da nossa rede.

O mecanismo UDP Hole Punch procura contornar precisamente esta situação. Ao iniciarmos comunicação para o exterior é criada uma associação no NAT do router que permite que a resposta percorra o caminho inverso, sem termos necessariamente de encaminhar manualmente a porta UDP 40000.

No meu IC-705 utilizo:

UDP Hole Punch: ON

Mas esta solução tem uma limitação importante, e o manual explica-a muito bem: o “buraco” criado pelo NAT não permanece aberto indefinidamente. Passados alguns minutos — a Icom indica menos de três minutos, dependendo do router — podemos deixar de conseguir receber uma chamada de retorno até transmitirmos novamente para aquela estação.

Também não devemos entender UDP Hole Punch como substituto universal de um endereço IPv4 público ou de port forwarding. É sobretudo uma forma muito prática de permitir determinadas comunicações Terminal/AP em redes onde não controlamos toda a infraestrutura.

Referência: IC-705 Advanced Manual, pág. 15-6 — “About the UDP Hole Punch function”.

Finalmente: colocar o IC-705 em Terminal Mode

Depois de termos a ligação de rede e o Internal Gateway configurados, a entrada em Terminal Mode é extremamente simples:

MENU → DV GW → <<Terminal Mode>>

O rádio muda automaticamente alguns parâmetros: passa para DV, activa a função DR e coloca o nosso próprio indicativo em FROM. A Icom chama ainda a atenção para um detalhe curioso: Terminal Mode não é automaticamente cancelado quando desligamos e voltamos a ligar o transceptor.

No ecrã aparece também o ícone do Internal Gateway, que nos permite perceber se está em standby, a transmitir, a receber ou se existe algum erro de rede ou comunicação.

Referência: IC-705 Advanced Manual, pág. 15-15 — “Setting the Terminal mode”.

E agora, para onde queremos falar?

É aqui que o manual esclarece de forma muito interessante aquilo que podemos fazer em Terminal Mode.

Para fazer uma chamada geral através de outro repetidor escolhemos:

TO → Gateway CQ

e depois seleccionamos o grupo e o repetidor de destino.

Para chamar directamente outro radioamador escolhemos:

TO → Your Call Sign

e seleccionamos o indicativo da estação. O routing D-STAR trata depois de procurar o caminho para ela.

Isto é uma diferença conceptual enorme em relação a sistemas onde temos primeiro de descobrir o talkgroup, reflector ou repetidor em que a outra pessoa se encontra. No D-STAR, o indicativo pode ser o próprio endereço da chamada.

Referência: IC-705 Advanced Manual, pág. 15-16 — “Operating in the Terminal mode”.

O caso especial que experimentei: Direct Input (RPT) e o XLX267

Foi contudo outra possibilidade que me interessou nesta experiência: introduzir directamente o XLX267 como destino.

Em:

TO → Direct Input (RPT)

introduzi inicialmente:

XLX267 E

O módulo E do XLX267 encontra-se interligado ao XLX268, e essa ligação dá-me acesso ao REF095C. Assim, do ponto de vista da experiência, o percurso tornou-se aproximadamente:

IC-705 → Internet → XLX267 E → XLX268 E → REF095C

Há aqui uma distinção importante: no IC-705 eu não seleccionei Reflector → REF095C. Isso seria precisamente a operação que o manual diz não estar disponível em Terminal Mode.

Introduzi um destino através do routing de repetidor/gateway:

XLX267 E

e foi a configuração existente no XLX que tratou posteriormente da interligação.

Esta nuance explica grande parte da confusão inicial.

Uma experiência ainda melhor: XLX267 Z

Entretanto surgiu uma oportunidade perfeita para comprovar tudo isto.

Actualizei o servidor do XLX267 para passar dos dez módulos que tinha disponíveis para os 26 módulos possíveis, de A a Z. Depois de recompilar e instalar o XLXD 2.5.3 precisava de responder a uma pergunta muito simples: será que o módulo Z funciona realmente?

Em vez de montar um hotspot ou procurar um repetidor D-STAR, usei precisamente o Terminal Mode do IC-705.

No rádio:

TO → Direct Input (RPT) → XLX267 Z

Poucos segundos depois apareceu no servidor:

Presence from ... as CT1EBQ on terminal CT1EBQ H

e logo a seguir:

Config request ... for XLX267 Z (repeater)

Carreguei no PTT e o XLXD respondeu:

Opening stream on module Z for client CT1EBQ H

Quando larguei o PTT:

Closing stream of module Z

Repeti a transmissão várias vezes e o resultado foi sempre o mesmo.

Não havia qualquer dúvida: o IC-705 estava a chegar pela Internet ao XLX267, o reflector reconhecia a ligação como Terminal/AP e abria efectivamente o stream no novo módulo Z.

O que o servidor vê do outro lado

Esta é uma das vantagens de termos acesso ao servidor: podemos ver aquilo que normalmente fica escondido atrás da interface do rádio.

No XML do XLX267 surgiu:

CT1EBQ H

LinkedModule: Z

Protocol: Terminal/AP

E, depois da transmissão, apareceu ainda:

CT1EBQ / 705

Há portanto duas informações diferentes. CT1EBQ H identifica a sessão Terminal/AP através da qual estou ligado ao gateway; CT1EBQ /705 identifica a estação que acabou de transmitir.

Foi também uma bela forma de confirmar que o novo módulo Z do reflector estava verdadeiramente operacional, e não apenas definido no código.

Uma coisa que o manual diz e que vale a pena decorar

Depois desta experiência voltei à pág. 15-16 do Advanced Manual e percebi que esta talvez seja a parte mais importante de toda a secção.

Em Terminal Mode podemos fazer:

Gateway CQ

ou

uma chamada para uma estação específica por call sign routing.

Mas não podemos efectuar a chamada seleccionando:

Local CQ

ou

Reflector

Isto acaba por ser perfeitamente lógico. Local CQ pressupõe uma área RF local e nós não estamos ligados por RF a um repetidor. E a operação normal Reflector do menu DR não é o mecanismo utilizado pelo DV Gateway em Terminal Mode.

O nosso teste com o XLX267 não contradiz esta regra: estamos a apresentar o XLX como um destino de gateway/repeater através de Direct Input (RPT), e é depois o próprio XLX que encaminha o tráfego para o respectivo módulo ou interlink.

Para mim, foi esta peça que finalmente arrumou todo o puzzle.

Terminal Mode e Access Point Mode são muito diferentes

Apesar de aparecerem lado a lado nos menus do IC-705, convém manter a distinção muito clara.

Em Terminal Mode:

IC-705 → Internet → D-STAR

Falamos directamente no IC-705 e não existe RF no primeiro salto.

Em Access Point Mode:

outro rádio D-STAR → RF → IC-705 → Internet → D-STAR

Neste caso o 705 passa a funcionar como um pequeno ponto de acesso para outro transceptor. Existe uma frequência simplex entre os dois rádios e, naturalmente, aplicam-se todas as regras habituais relacionadas com uma emissão radioeléctrica.

O manual trata esta segunda operação imediatamente a seguir, nas págs. 15-17 a 15-21.

E afinal, para que serve isto se tenho um hotspot?

Um hotspot continua a ser uma solução extraordinariamente conveniente. Pode ficar ligado vinte e quatro horas por dia, consumir muito pouco, suportar vários modos digitais e libertar o IC-705 para aquilo que ele realmente é: um transceptor extremamente versátil.

Mas Terminal Mode resolve outro problema.

Se estou numa casa sem cobertura D-STAR, numa viagem, num hotel ou simplesmente quero experimentar um gateway sem montar mais equipamento, tenho o rádio, uma ligação Wi-Fi e tudo aquilo de que necessito para entrar na rede.

No caso particular do IC-705, um rádio concebido para ser transportável e que já inclui Wi-Fi, a função faz muito sentido. Levo o rádio, ligo-o à Internet e posso continuar a utilizar o D-STAR mesmo num lugar onde não exista um único repetidor da rede ao alcance da antena.

Se eu tivesse de configurar tudo novamente amanhã

A sequência que guardaria seria esta:

1. Ligar o IC-705 à Internet por Wi-Fi.

2. Confirmar o registo D-STAR do meu indicativo e do Terminal/AP Call Sign.

No meu caso:

MY: CT1EBQ

Terminal/AP: CT1EBQ H

3. Configurar o Internal Gateway:

MENU → SET → DV GW → Internal Gateway Settings

e verificar o servidor/gateway, Gateway Type = Global e, quando apropriado, UDP Hole Punch = ON.

4. Entrar em Terminal Mode:

MENU → DV GW → <<Terminal Mode>>

5. Escolher o tipo de chamada:

Gateway CQ — para outro repetidor;

Your Call Sign — para uma estação específica através de call sign routing;

ou, na experiência que fiz com o XLX:

Direct Input (RPT) → XLX267 Z

6. Carregar no PTT.

No meu caso, do outro lado da Internet apareceu imediatamente:

Opening stream on module Z for client CT1EBQ H

E nesse momento soube que tudo estava a funcionar.

O que aprendi com o Terminal Mode

A dificuldade desta função não está verdadeiramente nos menus. Está na nossa cabeça.

Estamos habituados a pensar uma comunicação D-STAR como uma sequência inseparável:

frequência → repetidor → gateway → destino

O Terminal Mode obriga-nos a separar duas coisas:

como entro na rede

e

para onde quero que a chamada seja encaminhada.

Em Terminal Mode entramos na rede através da Internet. A partir daí continuamos a utilizar o routing D-STAR: Gateway CQ, call sign routing e os destinos suportados pelo gateway que escolhemos.

Quando se percebe esta distinção, aqueles campos FROMTORPT e os indicativos deixam de parecer uma herança estranha de uma comunicação RF que já não existe. Estamos simplesmente a construir o cabeçalho e o percurso de uma chamada D-STAR.

E talvez seja esta a parte do Terminal Mode de que mais gosto.

O IC-705 continua a ser um rádio. Continuamos a carregar no PTT e a falar para o seu microfone. Mas desta vez não há qualquer onda de 144 ou 430 MHz a sair da antena à procura de um repetidor próximo.

Uns instantes depois, a centenas ou milhares de quilómetros, um gateway D-STAR recebe o nosso indicativo e sabe para onde deve encaminhar aquela chamada.

É uma bela combinação entre rádio, redes IP e aquilo que o D-STAR foi pensado para fazer desde o princípio.


Referências no IC-705 Advanced Manual

Secção 15 — ABOUT THE DV GATEWAY FUNCTION

  • 15-2 — About the DV Gateway function: conceitos de Terminal Mode e Access Point Mode.
  • 15-3 — External Gateway Function e utilização de RS-MS3W/RS-MS3A.
  • 15-4 — Terminal/AP Call Sign e requisitos de registo.
  • 15-5 a 15-10 — configuração da rede.
  • 15-6 — UDP Hole Punch, porta UDP 40000 e respectivas limitações.
  • 15-11 e 15-12 — Internal Gateway Settings do IC-705.
  • 15-13 — configuração através de RS-MS3W.
  • 15-14 — configuração através de RS-MS3A.
  • 15-15 — activação do Terminal Mode e significado do ícone Internal Gateway.
  • 15-16 — operação em Terminal Mode: Gateway CQ e chamada individual por call sign routing.
  • 15-17 a 15-21 — Access Point Mode.
  • 15-22 a 15-27 — diagnóstico e resolução de problemas; especificamente Terminal Mode nas págs. 15-23 e 15-24.

O manual inglês actualizado pode ser obtido na página oficial de suporte da Icom procurando por IC-705 Advanced Manual. Prefiro indicar desta forma em vez de copiar imagens ou páginas do manual, cuja reprodução pública é limitada pelas condições de utilização da própria Icom.

73 de Ricardo Oitavén — CT1EBQ,
and Eyla IA

ICOM IC-705 — Terminal Mode, Access Point Mode e D-STAR através da Internet

O D-STAR nasceu para ser utilizado por rádio. Falamos para um repetidor em VHF ou UHF, esse repetidor entra na rede e, através dela, podemos chegar a outro repetidor, a um reflector ou directamente a outro radioamador. É provavelmente esta a imagem que quase todos temos quando começamos a utilizar D-STAR.

Mas há outra possibilidade menos conhecida e, no caso do IC-705, bastante interessante: entrar na rede D-STAR sem utilizar um repetidor local por RF.

É para isso que existem o Terminal Mode e o Access Point Mode.

À primeira vista parecem duas variantes da mesma função. Não são. No Terminal Mode o próprio IC-705 é a estação com que falamos; no Access Point Mode o IC-705 transforma-se numa porta de entrada RF para outro rádio D-STAR.

A diferença parece pequena quando dita assim, mas muda completamente a arquitectura da ligação.

Primeiro, o mínimo indispensável sobre D-STAR

Numa utilização tradicional de D-STAR, o percurso é aproximadamente este:

Rádio → RF → repetidor D-STAR → Internet → rede D-STAR → destino

O nosso rádio preocupa-se essencialmente com chegar ao repetidor. A partir daí é o gateway desse repetidor que encaminha a comunicação pela rede.

O destino pode ser outro repetidor, outro utilizador ou um reflector onde várias estações se encontram.

O que Terminal Mode e Access Point Mode fazem é permitir-nos substituir essa primeira parte do percurso.

Em vez de precisarmos de um repetidor D-STAR suficientemente próximo para receber o nosso sinal, podemos chegar à infraestrutura D-STAR através de uma ligação à Internet.

É especialmente interessante quando estamos num local sem cobertura D-STAR, em viagem, num hotel, numa segunda residência ou simplesmente quando queremos experimentar a rede sem depender de um repetidor local.

A própria Icom descreve estes dois modos precisamente desta forma: permitem fazer comunicações D-STAR pela Internet mesmo em locais onde não existe um repetidor D-STAR acessível por RF.

Terminal Mode: o IC-705 é o terminal

No Terminal Mode, falamos directamente para o IC-705.

Não há um segundo rádio e não existe uma transmissão RF entre nós e um repetidor D-STAR.

Podemos imaginar o percurso desta maneira:

IC-705 → Internet → gateway D-STAR → reflector/repetidor → destino

O microfone, altifalante, codec de voz D-STAR e interface de operação continuam a ser os do próprio IC-705. A diferença é que, em vez de o sinal DV sair pela antena em direcção a um repetidor, os dados entram na rede através da ligação Internet utilizada pelo sistema.

É quase como se tivéssemos deslocado virtualmente o nosso rádio até à entrada da rede D-STAR.

Continuamos a seleccionar destinos, repetidores ou reflectores e continuamos a fazer uma comunicação D-STAR normal do ponto de vista do operador, mas a primeira etapa deixou de ser uma ligação RF.

Esta distinção é importante: Terminal Mode não transforma o IC-705 num hotspot.

O IC-705 é, neste caso, o próprio terminal.

Access Point Mode: agora o IC-705 passa a ser a porta de entrada

No Access Point Mode, a situação muda.

Agora utilizamos outro rádio D-STAR para falar por RF com o IC-705. Este recebe essa comunicação e encaminha-a para a rede através da Internet.

O percurso passa a ser:

Rádio D-STAR → RF → IC-705 → Internet → rede D-STAR → destino

Aqui sim, o IC-705 desempenha uma função bastante semelhante àquilo que normalmente associamos a um hotspot.

Podemos, por exemplo, ter um portátil D-STAR connosco e deixar o IC-705 a funcionar como Access Point. O portátil comunica por RF numa frequência simplex com o 705 e este fornece-lhe acesso à rede D-STAR.

Na prática criámos um pequeno ponto de acesso D-STAR privado.

É fácil perceber a diferença olhando apenas para quem utilizamos para falar:

Terminal ModeAccess Point Mode
Rádio onde falamosIC-705Outro rádio D-STAR
Ligação RF localNãoSim
Papel do IC-705Terminal D-STARPonto de acesso
Segundo rádio necessárioNãoSim
Internet necessáriaSimSim

Então para que serve o Terminal Mode?

Imagine-se numa casa onde não chega qualquer repetidor D-STAR.

Temos Internet, temos o IC-705, mas nenhuma infraestrutura D-STAR alcançável por rádio.

Tradicionalmente precisaríamos de instalar um hotspot — um pequeno equipamento composto normalmente por um modem digital, algum tipo de computador ou controlador e uma ligação Internet.

Com o Terminal Mode, para determinadas utilizações, podemos dispensar esse elemento intermédio.

O IC-705 já contém a electrónica necessária para codificar e descodificar D-STAR e pode funcionar como terminal da própria rede.

Isto torna-se particularmente interessante num rádio como o IC-705, pensado desde a origem para utilização portátil. Podemos levá-lo para outra casa, para um hotel ou para um local temporário e continuar a aceder ao D-STAR mesmo que não haja qualquer repetidor da rede nas proximidades.

E para que serve então o Access Point Mode?

O Access Point Mode resolve um problema diferente.

Suponhamos que queremos andar pela casa com um pequeno portátil D-STAR.

O IC-705 pode ficar ligado à Internet e funcionar como ponto de entrada para esse portátil.

O percurso seria, por exemplo:

ID-52 → 430 MHz simplex → IC-705 → Internet → D-STAR

Nesse cenário já existe RF local, mas não estamos a utilizar um repetidor.

Criámos nós próprios o nosso pequeno acesso à rede.

É também por isso que devemos ter atenção às frequências utilizadas e às regras aplicáveis à emissão: no Access Point Mode existe efectivamente uma transmissão radioeléctrica entre dois equipamentos.

Terminal Mode, Access Point ou hotspot?

É provavelmente a pergunta mais interessante.

Se Terminal Mode e Access Point Mode permitem fazer isto, porque razão existem tantos hotspots D-STAR?

Porque as soluções não são exactamente equivalentes.

Um hotspot dedicado pode ficar permanentemente ligado, consumir pouca energia, suportar várias redes digitais e libertar o rádio principal para outras utilizações. Dependendo do equipamento, pode ainda oferecer DMR, YSF, P25, NXDN ou outras redes além de D-STAR.

O IC-705, pelo contrário, é um transceptor completo que ocasionalmente pode assumir estas funções.

Terminal Mode é especialmente elegante quando queremos utilizar o próprio 705.

Access Point Mode é interessante quando queremos transformar temporariamente o 705 no acesso de outro rádio.

Um hotspot continua provavelmente a ser a solução mais cómoda para uma estação permanentemente ligada 24 horas por dia.

Não há uma solução “melhor”. Há arquitecturas diferentes para necessidades diferentes.

Uma particularidade importante: a Internet não substitui o D-STAR

Pode parecer uma distinção filosófica, mas tecnicamente é importante.

Quando utilizamos Terminal Mode não estamos a fazer uma chamada de voz pela Internet como no WhatsApp, Zoom ou numa aplicação VoIP.

A comunicação continua a ser D-STAR.

O áudio continua a ser tratado segundo o sistema DV e entra na infraestrutura D-STAR. O que mudou foi apenas o meio utilizado para chegar ao gateway.

É precisamente isto que torna o conceito interessante: RF e Internet deixam de ser duas redes separadas e passam a ser dois caminhos possíveis para entrar no mesmo sistema.

Um teste real: IC-705 directamente no XLX267

Enquanto actualizava o meu reflector XLX267 surgiu uma oportunidade perfeita para experimentar esta arquitectura.

O XLX267 tinha sido recompilado para permitir todos os 26 módulos, de A a Z, e precisava de confirmar se um dos módulos mais altos estava efectivamente operacional.

Escolhi o módulo Z.

Em vez de procurar um repetidor ou configurar um hotspot, coloquei o IC-705 em Terminal Mode e liguei-me directamente ao:

XLX267 Z

No servidor apareceu imediatamente:

Presence from ... as CT1EBQ on terminal CT1EBQ H
Config request ... for XLX267 Z
Opening stream on module Z for client CT1EBQ H

E no XML gerado pelo reflector:

<NODE>
    <Callsign>CT1EBQ  H</Callsign>
    <LinkedModule>Z</LinkedModule>
    <Protocol>Terminal/AP</Protocol>
</NODE>

Mais interessante ainda, depois de transmitir, o reflector registou também a estação:

<Callsign>CT1EBQ / 705</Callsign>

Era exactamente aquilo que queria observar.

Do lado do rádio estava simplesmente a utilizar o IC-705. Do lado do reflector, porém, era possível ver claramente que a ligação tinha chegado através do mecanismo Terminal/AP, directamente ao módulo Z.

E o Z apareceu imediatamente no dashboard do XLX267.

Há, contudo, uma pequena armadilha

Aqui começa uma segunda história.

Configurar o Terminal Mode no IC-705 não é tão intuitivo como a descrição anterior pode fazer parecer.

Advanced Manual explica o processo, mas existem alguns passos cuja formulação temos praticamente de interpretar à letra. Quando tentamos aplicar aquilo que intuitivamente pensamos que a Icom quis dizer, podemos acabar com uma configuração aparentemente correcta que simplesmente não estabelece a ligação como esperamos.

Foi precisamente isso que me levou a explorar com mais atenção a configuração.

E merece um artigo separado.

Nesse próximo texto quero fazer exactamente o contrário deste: em vez de explicar o que é Terminal Mode, vamos pegar no IC-705, abrir o Advanced Manual e configurar tudo, passo a passo, menu a menu, até vermos no servidor:

Opening stream on module Z...

Porque há coisas que se compreendem muito melhor depois de as vermos funcionar.

Então, afinal, qual escolher?

A regra mental que utilizo agora é extremamente simples:

Quero falar no próprio IC-705? → Terminal Mode.

Quero falar noutro rádio através do IC-705? → Access Point Mode.

Quero uma infraestrutura permanente e independente do meu rádio principal? → Hotspot dedicado.

Depois desta distinção, aquilo que inicialmente parece uma floresta de modos e opções fica bastante mais claro.

E talvez seja esta uma das características mais interessantes do D-STAR: podemos entrar na mesma rede por um repetidor a dezenas de quilómetros, por um pequeno hotspot em cima da secretária ou directamente através de um rádio como o IC-705 ligado à Internet.

Os caminhos são diferentes.

A rede, porém, continua a ser a mesma.

73,

Ricardo Oitavén — CT1EBQ

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