LoRa & APRS

LoRa (Long Range) es una tecnología inalámbrica que utiliza la técnica de modulación de Espectro Disperso derivada de la tecnología «Chirp Spread Spectrum» (CCS). Es una plataforma inalámbrica de largo alcance y baja potencia que se ha convertido en la plataforma inalámbrica de facto de IoT (Internet de las Cosas). Los dispositivos y redes de LoRa, como LoRaWAN, permiten aplicaciones inteligentes de IoT utilizados en ciudades, casas y edificios inteligentes, sistemas de gestión de energías, control de contaminación, sistemas de monitoreo y medición a distancia, agricultura, etc. [1]

Por otro lado, APRS (Automatic Packet Reporting System) es un sistema de radio utilizado por los radioaficionados para comunicación de información o datos digitales en tiempo real. Estos datos pueden ser coordenadas de GPS, telemetría de estaciones metereológicas, mensajes de texto, anuncios, etc. Los datos de APRS pueden ser desplegados en un mapa en el cual se muestran estas estaciones fijas y móviles, seguimiento de objetos, estaciones meteorológicas, etc. ARPS utiliza el protocolo AX.25 a una velocidad de 1200bits/s en modulación FSK, con un ancho de banda estrecho. [2]

Si unimos «lo mejor de los dos mundos» (LoRa + APRS) podemos tener un sistema de posicionamiento en tiempo real de muy baja potencia y por lo tanto con equipos de bajo consumo. Esto se logra utilizando un sistema de modulación de espectro disperso, con un ancho de banda amplio y que permite la transmisión de datos a baja velocidad prácticamente inmune al ruido e interferencia. APRS convencional, al usar FSK, utiliza un ancho de banda estrecho pero necesita potencias más elevadas que un sistema LoRA. Así un sistema LoRa-APRS puede funcionar con potencias de 100mW logrando prácticamente la misma cobertura que el sistema convencional de APRS que necesita potencias de más de 5W para lograr una buena cobertura.

En internet existe ya mucha información sobre LoRa y APRS, por lo que no ahondaré más en estos temas en las siguientes líneas.

 

La tarjeta utilizada para la instalación y configuración del LoRa-APRS iGate es la siguiente: Lilygo TTGO LoRa32 433MHz v1.6.1

 

Esta tarjeta está basada en el microcontrolador ESP32 e incluye el módulo LoRa en la banda de 433MHz así como un transceptor en dicha banda, por lo que no es necesario agregar absolutamente nada adicional para su funcionamiento en el sistema LoRa-APRS. Incluye un display OLED y se puede alimentar por medio de una interfaz para cagra de baterías de litio o a través de un conectro microUSB que además es utilizado para su programación.

 

Instalación y Configuración de un IGate Lora-APRS

  1. Descargar e instalar el software Visual Studio Code para poder programar la tarjeta.
    https://code.visualstudio.com/download
  2. Una vez instalado el Visual Studio Code, descargar la extensión Platformio
    https://platformio.org/install/ide?install=vscode
  3. Descargar y guardar en el disco duro de la computadora las librerías del LoRa-APRS del siguiente link:
    https://github.com/lora-aprs/LoRa_APRS_iGate
    A pesar de que las librerías de Peter Buchegger funcionan perfectamente bien, hice una copia en mi espacio de github en caso de que por alguna razón fueran borradas o modificadas las que Peter subió (un agradecimiento enorme a Peter por su aportación):
    https://github.com/xe2ad/LoRa-APRS_iGate
  4. Abrir el Visual Studio Code y dar click en File –> Open Folder , buscar la carpeta descargada desde github, seleccionarla y dar click en abrir. Esto abrirá la carpeta en el Visual Studio Code que contiene varias subcarpetas con las librerías de programación del iGate (LoRA_APRS_iGate) y que son necesiarias para programar la tarjeta TTGO LoRa32 que usaremos como iGate.
  5. Buscar el archivo is-cfg.json (está en la subcarpeta data) que es precisamente el archivo que se tiene que modificar con tus datos. A continuación se presenta este archivo, dividido en un par de imágenes para mostrar los cuadros de texto agregados para una mejor explicación de los parámetros más importantes:

Los parámetros después de la línea 65 no suelen cambiarse y recomiendo dejarlos como están.

6. Una vez modificado el archivo is-cfg.json hay que compilar y programar la tarjeta TTGO. Dar click en el símbolo de la «palomita» (√) para compilar, si el mensaje de «SUCCESS» aparece en la ventana de la Terminal (parte inferior de la ventana principal), dar click en el símbolo de Upload o de la «flecha» (→), si el mensaje de «SUCCESS» aparece en la ventana de la Terminal quiere decir que el microcontrolador de la tarjeta está correctamente programado.

7. Finalmente hay que subir la imagen del archivo, para esto dar click en el símbolo del «allien» o Platformio en la parte izquierda de la ventana del Visual Studio Code y después en «Uploado Filesystem Image». Una vez hecho esto el iGate está listo. Verificar que se pueda ver en: http://www.aprs.fi

 

Configuración de un Digipeater Lora-APRS

Para poder configurar un Digipeater, se siguen exactamente los mismos pasos (lógicamente menos la instalación del Visual Studio Code y de la extensión Platformio, es decir pasos 1, 2 y 3). En el archivo is-cfg.json hay que modificar lo siguiente:

  • Callsign: El SSID debe ser distinto al del iGate. Generalmente se sigue la siguiente tabla [3]:
  • network –> DHCP= false. Al estar configurado como un Digipeater, no es necesario que tenga conexión a internet.
  • wifi –> active= false.
  • aprs_is –> active= false.
  • digi –> active= true & beacon= true
  • lora –> tx_enable= true. Para que el digipeater retransmita las balizas que recibe.
  • Seguir los pasos 6 y 7 para compilar y programar la tarjeta TTGO como Digipeater.

 

Un agradecimiento especial para Peter Buchegger y la página https://www.lora-aprs.info/ por la información proporcionada y por subir las librerías de código abierto para poder configurar las tarjetas TTGO como iGate o Digipeater. También un agradecimiento a Thomas DL3EL por su ayuda y paciencia. Este proyecto tiene una dedicación especial a mi amigo y tocayo, David de Ávila XE1SDK (sk), por haber sido un experto en estos temas e introducirme en el mundo del APRS.

[1] https://www.semtech.com/lora

[2] https://en.wikipedia.org/wiki/Automatic_Packet_Reporting_System

[3] http://www.aprs.org/aprs11/SSIDs.txt