My CW calling.

jueves, 16 de septiembre de 2021

Enlazando AllStarLink con DMR

Como radioexperimentadores que somos, siempre queremos llevar al límite de las posibilidades todos nuestros sistemas.

Llevo ya algunas semanas usando el nodo de AllStarLink de forma satisfactoria, enlazando a otros nodos y haciendo uno que otro QSO cuando el trabajo me lo permite, además de tenerlo al aire a través de RF en el área metropolitana en la frecuencia de 434.750 Mhz.

Por otro lado, los ùltimos años y meses he visto como han ido ganando terreno los sistemas digitales en el àmbito de la radioafición y particularmente el DMR, con la promesa de ofrecer una comunicación más confiable y eficiente.

Habida cuenta de las divergentes opiniones que cada quien tiene al respecto, DMR es un campo vàlido de experimentación y cada vez más radioaficionados instalan sus hotspots y se enlazan en TGs alrededor del globo.

Me surgió entonces la inquietud de cómo enlazarme localmente al mundo digital de manera simple y sencilla, con los recursos disponibles, empleando el nodo AllStarLink que ya tengo en línea y así no atiborrar la repisa de gadgets; eventualmente es un gasto en un hotspot, que no tendré que hacer ;-). Estaba particularmete animado además porque otros colegas ya lo han hecho, en especial el colega EA8EE con cuyos nodos suelo estar enlazado para aprovechar de uno que otro QSO con el viejo continente en habla hispana.

Fué así que encontré el proyecto DVSwitch que consiste en una serie de herramientas de software libre que nos permite interconectar diferentes sistemas de radioaficionados y enrutar el tráfico entre ellos. A decir verdad un trabajo impresionante por parte de los miembros de este equipo. Me dí a la tarea de implementarlo. Me tomó alrededor de 3 horas tenerlo completamente operativo; mucho menos de lo que me tomó escribir este artículo.

En éste artículo quiero compartir los pasos que seguí para implementar un sistema que interconecta mi nodo de ASL con un talkgroup DMR en la red de Brandmeister, y ya que no hay mucha literatura en español al respecto talves pueda animar a alguien más.

 Prerequistos:

  1. Pasión por la radioexperimentación.
  2. Tener instalado y operativo un nodo de AllStarLink. (Yo uso Raspberry pi 3B, tengo un artículo anterior si se anima).
  3. Tener el ID de DMR y estar registrado en  Brandmeister Network.

Parte 1. Ajustar la configuración del nodo ASL.

Lo primero es hacer algunos ajustes de configuración en los archivos de AllStarLink.

1. Modifique el archivo rpt.conf y coloque las siguientes líneas antes de la sección de su nodo, justo despues de la linea de ; :

[9999]
rxchannel = USRP/127.0.0.1:34001:32001
duplex = 0
hangtime = 0
althangtime = 0
holdofftelem = 1
telemdefault = 0
telemdynamic = 0
linktolink = no
nounkeyct = 1
totime = 180000
idrecording = |ie
idtalkover = |ie 

La primera línea (9999) corresponde a un número de nodo privado que usted puede elegir; es un nodo interno que usará para enrutar el tráfico hacia y desde otros sistemas (DMR en este caso), coloque un número de 4 dígitos.

La segunda línea  especifica el driver del canal, el host y los puertos a donde habla y escucha.

La sexta línea es importante para evitar que la telemetría del nodo ASL se filtre a las salas del talkgroup conectado, toda vez que eso resulta molesto e innecesario en este tipo de enlaces; es necesario si no quieres que te pongan en listas negras.

Posteriormente añada la siguiente línea en el bloque  [nodes] inmediatemente despues de las de su nodo particular:

9999 = radio@127.0.0.1:4569/9999,NONE

2. Abra el archivo modules.conf y ubique la línea que hace referencia al módulo chan_usrp.so; si esta comentado descomentelo y asegurese que quede con el paràmetro load. Debería quedar así:

 load => chan_usrp.so                         ;GNU Radio interface USRP Channel Driver

3. Para finalizar en el archivo extensions.conf añada las siguientes líneas: En el bloque [general] añada la línea:

NODE1 = 9999

Y en el bloque [radio-secure] añada la línea:

exten => ${NODE1},1,rpt,${NODE1}

Llegados a este punto ya tenemos los ajustes necesarios en los archivos de configuración, puede reiniciar su nodo de ASL y debería poder conectar el nodo privado 9999 de la forma como lo hace con otros nodos.

Parte 2. Instalar y configurar DVSwitch.

 1. Si no los tiene ya, instale los repositorios de DvSwitch. A la fecha en que yo hice esta instalación emplee los siguiente comandos para hacer dicha instalación:

: wget http://dvswitch.org/buster
: chmod +x buster
: ./buster
: apt-get update -y

2. Instale ahora DVSwitch usando:

apt-get install dvswitch-server -y

o

apt-get install dvswitch

3. Cambiese al direcrorio /opt/MMDVM_Bridge y edite el archivo MMDVM_Bridge.ini para hacer los siguientes ajustes:

  • Bajo el bloque [general] cambie el valor por el que corresponda con su indicativo de llamada en el parámetro callsign y en el paràmetro id use su DMR ID añadiendo al final dos digitos; por ejemplo añada el número 10.
  • En el bloque [info] puede modificar la información con la suya propia.
  • En el bloque [DMR] cambie el parámetro Enable a 1.
  • En el bloque [DMR_Network] cambie el parámetro Enable a 1, y cambie el paràmetro Address colocando la IP o URL de su servidor DMR (yo estoy usando el servidor de la red de brandmeister 3108.repeater.net) ; verifique si su servidor requiere un password personalizado y cambielo de acuerdo a su caso.

En este punto usted puede reiniciar su nodo o ejecutar el comando  ./MMDVM_Bridge MMDVM_Bridge.ini; y si accede a su cuenta en https://brandmeister.network, podrá ver su hotspot activo.

Haciendo clic en el enlace de su hotspot usted accede a la información del mismo y allí encontrará un recuadro con el título Static Talkgroups; añada el número del TG de DMR al que quiere enlazar su nodo.

4. Volviendo a los ajustes en su nodo; cambiese a la carpeta /opt/Analog_Bridge y edite el archivo Analog_Bridge.ini para hacer los siguientes ajustes:

  • Bajo el bloque [General] cambie el valor del parámetro decoderFallBack a true.
  • En el bloque [AMBE_AUDIO] cambie el valor del paràmetro gatewayDMRId a su DMR ID, y el valor del parámetro repeaterID a su DMR ID añadiendo al final dos dígitos adicionales; esto se corresponde con su SSID (tenga cuidado de usar los mismos que usò en el paso 3; en mi caso yo uso el número 10). En el paràmetro txTg debe colocar el DMR TG que haya usado en la seccion Static Talkgroups de su hotspot en su consola de  https://brandmeister.network brandmeister.network.
  • NOTA: En el bloque [USRP] tenga en cuenta los paràmetros txPort y rxPort ya que estos son los puertos por los que fluyen las tramas de audio de ida y venida entre su nodo ASL y el TG de DMR y deben corresponderse con los establecidos en el paràmetro  rxchannel de su nodo, que vimos arriba en la parte 1.

5. Para finalizar esta parte y habiendo hecho los anteriores ajustes configure los servicios para que inicien el momento de arrancar el sistema con los siguientes comandos y reinicie el nodo:

systemctl enable analog_bridge
systemctl enable md380-emu
systemctl enable mmdvm_bridge

En éste punto tiene el sistema preparado para enlazar y enrutar tràfico entre su nodo y el TG de DMR que haya configurado. Simplemente enlace el nodo privado y listo.

Para mayor detalle puede encontrar ésta formula originalmente haciendo click en éste enlace.

 

Y nuevamente como una imágen vale más que mil palabras aquí les comparto un video clip del cacharreo!

73s



 

 



viernes, 13 de agosto de 2021

Mejorando el nodo de ALLStarLink con Motorola EM200

Tras un tiempo de estar usando el nodo AllStarLink estaba decidido a mejorar el desempeño en radiofrecuencia.

Mi propósito es permitir que otros radioaficionados en un área extensa puedan usar el nodo vía radio, bien sea en modo parrot, tanto como para hacer QSOs con otros radioaficionados en los nodos que tengo enlazados.

En el artículo anterior acerca de AllStarLink, estaba utilizando radios Baofeng; específicamente el 888 y el UV82; los cuales tuve que abrir para el conexionado de la interface de sonido USB. El principal problema con estos radios es que no puedes esperar tener una cobertura razonable, son muy sordos y no para todos resulta fàcil hacer las adaptaciones.

Luego de explorar un poco y por recomendación del colega YY1DAZ,  encontré el Motorola EM200, un radio más que probado en el entorno comercial y que viene quedando en desuso, en favor de nuevas tecnologías; pero que también es perfecto para radioaficionados. La ventaja de usar este radio es que no necesita moficaciones internas o externas de electrònica para usarlo con  la interface de sonido USB que estaba usando originalmente; basta con conectarla a los pines apropiados en el puerto de accesorios del radio.

 


 

La parte trasera del radio Motorola EM200 tiene un puerto con 16 pines para conectar accesorios, como se ve en la imágen; unos pines tienen funciones fijas y otros son programables por software.



La conexión de nuestra interface de sonido USB es muy simple como se ilustra:  

FOB USB   RADIO
SPKR  ==> Pin 2
PTT  ==> Pin 3
Tierra  ==> Pin 7
COS  ==> Pin 8
MIC  ==> Pin 11

Detalle del conexionado.


 




Al momento de programar el radio debe tener en cuenta como ha establecido los valores para COS y PTT en el software de AllStarLink; para definir si se activan en bajo o en alto.

Nodo 52619, Bienvenidos todos los radioexperimentadores.

73s




miércoles, 27 de enero de 2021

AllStarLink Node - Guía en Español - Parte 3/3

 Demostración.

Para terminar con la experimentación acerca de AllStarLink, en este último post os dejo un vídeo; porque como dice el refrán, una imágen vale más que mil palabras.

Mis agradecimientos a Raúl KG6QBW por responder al mi llamado en la parte final de ésta demostración.

 


Click aquí para ver la primera parte del artículo sobre AllStarLink en español.

Click aquí para ver la segunda parte del artículo sobre AllStarLink en español.

 

Utilizando un softphone en un smartphone para acceder y usar el nodo.


 

Para usar un softphone o teléfono IP en lugar de un radio, solo tienes que modificar dos archivos: iax.conf y extensions.conf de la siguiente forma:

Edite el archivo iax.conf y añada el siguiente bloque de líneas justo al final del archivo y antes de la linea que dice #includeifexists custom/iax.conf.

[softphone]
username = softphone <=ESTE NOMBRE ES ARBITRARIO CAMBIELO A GUSTO
type = friend
context = softphone
host = dynamic
auth = md5
secret = AQUI SU CONTRASEÑA
disallow = all
allow = ulaw
allow = g726aal2
allow = gsm
codecpriority = host
transfer = no
callerid = AQUI SU INDICATIVO DE LLAMADA

Edite el archivo extensions.conf y añada el siguiente bloque de líneas justo al final del archivo y antes de la línea que dice #includeifexists custom/extensions.conf.

[softphone]
;Configuración para telefono IP
exten => 52619,1,answer()
exten => 52619,n,Playback(rpt/node)
exten => 52619,n,Playback(digits/4)
exten => 52619,n,Playback(digits/1)
exten => 52619,n,Playback(digits/7)
exten => 52619,n,Playback(digits/6)
exten => 52619,n,Playback(digits/4)
exten => 52619,n,Playback(rpt/connected)
exten => 52619,n,rpt(52619|Pv)

Cámbie en todas las líneas el número 52619 por el que corresponda a su nodo.

Una vez haya editado y guardado los archivos reinicie su nodo.

Ahora instále el softphone de su preferencia en su celular o en la computadora (Yo uso Zoiper o la versión 6 de 3CXPhone). O si va a utilizar un teléfono VoIp y haga  la configuración con los siguientes parámetros:

Crée una cuenta manual del tipo IAX (Normalmente los teléfonos IP permiten dos tipos de cuenta SIP o IAX).

En el parámetro donde se píde host o servidor, digite la dirección ip de su nodo con puerto, por ejemplo: 192.168.1.70:4569

En los parámetros de usuario y contraseña use los que haya colocado en el bloque del archivo iax.conf

Normalmente el resto de los parámetros no son mandatorios y pueden dejarse por defecto, a menos que tenga condiciones particulares en su red o que desee acceder desde lugares diferentes a su red local.

Configuración Zoiper

Una vez creada la cuenta en su softphone este debe reportar que se ha registrado y ya está listo para usarse en su nodo. Simplemente marque el número de su nodo y deberá escuchar el anuncio de conexión; a partir de allí funciona igual que el radio; marcando asterisco más el comando que se quiere ejecutar inclusive para conectarse a otros nodos. 


 

Vídeo demostración control del nodo AllStarLink usando un teléfono en lugar de un radio.


73s

miércoles, 20 de enero de 2021

AllStarLink Node - Guía en Español - Parte 2/3

Implementación del nodo AllStarLink

En la primera parte de este post mencionamos los elementos necesarios para la construcción de un nodo AllStarLink. La verdad es que hay muchas recetas en Internet para hacerlo; yo recojo en ésta entrega el tutorial de 2E0BMT (Ben), el cual me pareció muy completo y fácil de abordar por los elementos empleados.

En el tutorial de 2E0BMT se emplea una Raspberry Pi, un radio Baofeng 888 y una tarjeta de sonido USB CM108 para la interfaz del radio a la Raspberry. Adicionalente se necesitan un transistor 2N3904, dos resistencias de 10Kohm y una de 1Kohm para modificar la tarjeta de sonido.

El documento original en inglés lo encuentras en https://allstarsetup.com

1. Modificar la tarjeta de sonido para usarla como interface al radio.

Lo primero que debes hacer es modificar la tarjeta de sonido CM108 conforme el diagrama.

  
Tarjeta de Sonido USB CM108 (Fuente: https://allstarsetup.com)

Diagrama de Modificación (Fuente: https://allstarsetup.com)

Si no tienes experiencia en electrónica o no eres hábil para soldar con el cautín, mejor es que pidas ayuda a alguien más. Debes quitar los conectores verde y rosa e interrumpir el circuito justo donde está marcado con rojo en el diagrama y debes  remover el condensador C2 y las resistencias R6 y R7. Luego sueldas las resistencias de 10K y de 1K  y el transistor 2N3904 como lo muestra el diagrama. Notarás que también hay que soldar dos cablecitos en el circuito integrado como se muestra.

De la tarjeta de sonido salen 5 cables; el que esta marcado como Tx que se conecta hacia el micrófono del radio, el Rx que se conecta hacia el speaker del radio, el PTT que se conecta hacia el PTT del radio, el COS que es la linea que se usa para detectar la portadora entrante y un cable adicional que no está pintado allí que es al ground o tierra y que se puede tomar de cualquiera de los puntos de tierra de la tarjeta de sonido, yo lo soldé del punto donde va el emisor del transistor.

El resultado final deberá ser como el de la imágen (En la imágen falta el cable de tierra).

Tarjeta CM108 Modificada para AllStarLink (Fuente: https://allstarsetup.com)

2. Modificar el radio Baofeng 888

Nuevamente aqui debes sentirte cómodo(a) con el bricolaje en electrónica o buscar ayuda de un técnico. El vídeo de 2E0BMT explica muy bien como desarmar el radio y conectar los respectivos cables.

Aquí solo una observación; noten que él quita el transistor de potencia, este paso no es necesario a menos que realmente quieras reducir la potencia de salida del radio, por otra parte no estoy seguro que sea necesario remover la bobina; así que lo único necesario en la parte de atras de la tarjeta de circuito es conectar el cable para COS. Tampoco es necesario que quites el led.

Detalle conexión cable COS (Fuente: https://allstarsetup.com)

Antes de desarmar el radio, debes programarlo para la frecuencia que vayas a utilizar y no olvidarte deshabilitar todas las opciones de la configuración básica. Nuevamente puedes referirte al post original en  https://allstarsetup.com/modify-the-baofeng-888s-for-allstar/.

 


En mi caso particular constantemente estoy experimentando con la Raspberry Pi, por lo tanto no la dejaré dedicada a este experimento; de tal manera que mi resultado final es el de la siguiente imagen. Así podré desconectarlo de la raspberry cuando la necesite para otro experimento; noten que tuve que romper la carcasa del radio para que los cables pudieran salir comodamente.

Vista Lateral Baofeng 888 + CM108


Vista Frontal Baofeng 888 + CM108


3. Instalar el software AllStarLinkk (ASL)

El dispositvo del paso anterior ya se puede usar en cualquier implementación del software ASL; pero en este experimento estoy usando la popular Raspberry Pi Modelo 3B. Si nunca has experimentado con Raspberry te sugiero buscar primero documentación al respecto.

Instalar la versión oficial resultó un poco truculento y solo logré hacerla funcionar con la versión del sistema operativo raspios_stretch.

Las opciones de instalación son:

  • Puedes descargarte una imágen "lista" de la web oficial de ASL que incluye el sistema operativo y el software ASL.
  • Puedes descargarte una imágen de HamVoip que viene con el sistema operativo y el software listo de ASL más otras funcionalidades.
  • Puedes descargarte una imágen limpia del sistema operativo RaspiOS de la web oficial de Raspberry Pi y luego instalarle el software de ASL de forma manual.

Para mencionar, las dificultades que tuve con la instalación (muchas personas consultan en los foros por estos errores) son debido a las dependencias en las versiones de las librerías requeridas por Asterisk en conflicto con librerías del sistema operativo, lo que provocaba que el asterisk no arrancara o se colgara (Asterisk es un sistema de telefonía de VozIp que se convirtió en un estándar de facto en el mundo de la telefonía y es el corazón del sistema ASL). Ya en funcionamiento no se puede correr comandos de actualización como update o upgrade porque de nuevo se rompen las dependencias y el asterisk deja de funcionar.

Para hacer fácil el proceso de instalación y configuración, recomiendo que tengas monitor y teclado conectados directamente a la Raspberry así como conectar ésta misma por cable ethernet a la red de tu router. Si estas comodo(a) batallando con redes puedes hacerlo a través de conexión ssh, en cuyo caso no necesitas ni monitor ni teclado.

Cualquiera que sea el camino que elijas solo debes descargar la imágen, quemarla en la microSD, colocarla en la RaspBerry Pi y arrancarla. En este artículo voy a detallar la instalación manual y dejo los vínculos para las otras dos opciones.

Instalacion con la imágen de la versión oficial de ASL. (Clic aquí para ver.)

Instalación con la imágen de HamVoip. (Clic aquí para ver.)

Instalación manual

Para la instalación manual debes tener una microsd quemada con una imágen de la versión Lite de RaspiOs Stretch (En mi caso la versión de kernel es  4.9.41-v7+). Esta versión es la más limpa posible, sin software superfluo que nos pueda causar problemas de conflicto de librerías.

Una vez iniciado el sistema operativo NO haga update (nunca corra el comando upgrade!!), cambie el password del usuario pi y habilite las opciones que necesite desde el menú de raspi-config; no instale ningún software adicional que no sea solo utilitariopara la gestión del S.O. y configure su red según se su caso.

Primero para evitar que se hagan actualizaciones del kernel debemos ejecutar:

    pi@HostName:~$ sudo apt-mark hold linux-image-generic linux-headers-generic

Para instalar manualmente el ASL ejecute la siguiente secuencia de comandos:

    pi@HostName:~$ wget http://dvswitch.org/install-allstarlink-repository
    pi@HostName:~$ sudo chmod +x install-allstarlink-repository
    pi@HostName:~$ cd install-allstarlink-repository
    pi@HostName:~$ sudo apt-get install raspberrypi-kernel-headers -y
    pi@HostName:~$ sudo apt-get update
    pi@HostName:~$ sudo apt-get install allstarlink -y

Una vez instalado asegurarse que las siguientes librerías esten en las versiones que se muestran:

asl-dahdi-linux-dkms          2.11.1

asl-dahdi-linux-tools           2.11.1-1

Normalmente ésta es la librería que causa problema; en tal caso hay que instalarla manualmente.

Ya instalado lo primero es verificar que el sistema esté corriendo el Asterisk lo cual comprobamos con el siguiente comando:

    pi@HostName:~$ sudo systemctl status asterisk.service

si todo estuvo bien, el resultado debe ser :

    Active: active (running)

4. Configuración Inicial

Una vez instalado el sistema ASL se ejecuta el siguiente comando para realizar las configuraciones iniciales:

    pi@HostName:~$ sudo asl-menu 

En este punto puede seguir la guía oficial en español, para la configuración de su nodo. Clic aquí para ver la guía.

Una observación que puede no ser tan evidente es que en el apartado donde se escoje el tipo de interfaz de radio, debe escojer la  SimpleUSB.

Una vez a configurado su nodo, se le pidió que ingresara los datos básicos (Nro de Nodo, Contraseña, Indicativo de Llamada, Tipo de Interface, etc) y su nodo ya está operativo; ahora es conveniente también instalar la utilidad "allmon2" que nos permite hacer un control básico de nuestro nodo desde una página web. Para ello sigue las instrucciones como se indican en éste enlace: Instrucciones para Instalar Allmon2

Cuando este instalado podrás ingresar desde un navegador web y veras la siguiente pantalla.

 

Ya puedes hacer login y dar cllick en el número de tu nodo


 Haciendo clic en el botón control panel ya puedes enviar comandos a tu nodo y revisar cierta información.

 

Llegados a este punto, ya tienes un nodo de AllStarLink montado, en la parte final de estos posts, te mostraré como usar el nodo y que funcionalidades tienes disponibles para explotar.

Click aquí para ir a la parte 3 (Vídeo de demostración).

73s