Debido a la versatilidad que ofrece GNU Radio para adaptarse a la mayoría de los protocolos de radio, es factible desarrollar proyectos independientes que puedan trabajar sobre estos protocolos usándolo como base. Un ejemplo de ello es el proyecto gr-ax25 para GNU Radio, donde a través de Python desarrollan una interfaz gráfica que captura los paquetes transmitidos por este protocolo, entre ellos la ISS y APRS.

Introducción.

De acuerdo con AX25 Layer 2, la comunidad de radio amateur expresó su necesidad y deseo de definir un protocolo que pueda aceptar y entregar datos de manera fiable sobre diversos enlaces de comunicación entre dos terminales de señalización. El protocolo de capa 2 AX.25 versión 2.2 ofrece este servicio, independientemente de la existencia de capas superiores.

Este protocolo trabaja suficientemente bien tanto en ambientes de radio amateur half-duplex o full-duplex. Así mismo también trabaja sobre conexiones directas entre estaciones de radio amateur portátiles o punto-multipunto.

Instalación

Prerequisitos

gr-ax25 utiliza los proyectos gr-display y gr-fcdproplus para el ejemplo que incluye en su distribución.

Instalación de gr-display

gr-display es una herramienta que permite desplegar texto en la interfaz gráfica de GRC.

Desde una terminal de linux se clona el repositorio de github con git y se instala de acuerdo al procedimiento definido por GNU Radio para módulos out-of-tree.

$ git clone https://github.com/dl1ksv/gr-display.git
$ cd gr-display
$ mkdir build
$ cd build
$ cmake ../
$ make
$ sudo make install
$ sudo ldconfig

Instalación de gr-fcdproplus

Esta herramienta permite utilizar los dispositivos de FUNcube Dongle dentro del ambiente de GNU Radio.

Para instalar se requiere de instalar algunos prerequisitos antes de descargar el repositorio desde github y proceder con a la instalación.

Instalando HIDAPI

$ sudo apt-get install libudev-dev libusb-1.0-0-dev libfox-1.6-dev autotools-dev autoconf automake libtool
$ git clone https://github.com/signal11/hidapi.git
$ cd hidapi
$ ./bootstrap
$ ./configure
$ make
$ sudo make install

Instalando gr-fcdproplus

$ git clone https://github.com/dl1ksv/gr-fcdproplus.git
$ cd gr-fcdproplus
$ mkdir build
$ cmake ../
$ make
$ sudo make install
$ sudo ldconfig

Instalación de gr-ax25

Una vez instalados los prerequisitos, se procede a instalar gr-ax25 desde una terminal.

$ git clone https://github.com/dl1ksv/gr-ax25.git
$ cd gr-ax25
$ mkdir build
$ cd build
$ cmake ../
$ make
$ sudo make install
$ sudo ldconfig

Instalación utilizando PyBombs

Si se tiene instalado PyBombs, es posible instalar el proyecto con una sola línea de comando.

$ sudo pybombs -p myprefix install gr-ax25 gr-display gr-fcdproplus

Funcionamiento

Para la demostración, gr-ax25 incluye en gr-ax25/apps un archivo llamado APRS.grc, este diagrama de flujo de GRC contiene un bloque jerárquico llamado detectmarkspace.grc, para que APRS.grc detecte el bloque jerárqico, es necesario que dentro de detectmarkspace.grc se presione el botón que genera los archivos .py, una vez hecho esto se procede a correr el archivo APRS.grc con el dispositivo de FUNcube Dongle instalado.

Así mismo, se puede remplazar el bloque de FUNcube por uno de UHD para las tarjetas USRP, tal como se muestra a continuación.

De esta forma queda instalado el protocolo AX.25 en una plataforma de GNU Radio. Una vez funcionando el archivo APRS.grc, se mostrará una interfaz gráfica que desplegará en una pestaña el espectro recibido y en otra el mensaje recibido por AX.25 de la ISS o por APRS, tal como se muestra a continuación.

@viktor_ivan