ESP32 LoRa for dummys - TinyGS

TinyGS es una red abierta de estaciones terrestres distribuidas por todo el mundo para recibir y operar satélites LoRa, sondas meteorológicas y otros objetos aéreos, utilizando módulos económicos y versátiles, en concreto  placas  de desarrollo ESP32  LoRa (por el momento con los módulos de comunicaciones LoRa SX126x y SX127x de Semetech).

Los chips de la serie  SX127x tienen una sensibilidad en RX de hasta -148 dBm y una potencia en TX de 20 dBm (100 mW) en la banda de 137MHz a 1.020MHz 

Arquitectura de la red TinyGS

Los imprescindibles: 
  • placa ESP32-Lora (consulte compatibilidad)
  • cuenta en Telegram (para obtener las credenciales MQTT)
  • un ordenador o dispositivo móvil para la configuración inicial.
Los aconsejables: 
  • Disponer de un entorno de desarrollo para Arduino como Arduino IDE o PlatformIO (no es necesaria, pero se puede usar para compilar y cargar el firmware en la placa de desarrollo). TinyGS aconseja usar  PlatforIO (aconsejable) pero, si su placa está soportada por el instalador WEB su uso no le aporta nada y por tanto es perder el tiempo, otra cosa es que no lo esté y haya que por ejemplo modificar la definición de los pines.
  • Una antena externa, con la antena que acompaña a la placa desde una ventana despejada se pueden recibir en la banda de 446 MHZ algunas tramas de satélites que disten hasta 500 km 
Cargando en la Lilygo el software de TinyGS desde la web y con la antena que lleva de serie se reciben satelite directamente en la banda de 446 MHZ

Captura de algunos de los satelites recibidos con la configruación mínima de la ESP 32 LoRa 446 MHz


Con una antena externa incrementará el número de tramas o paquetes recibidos y el número de satélites (La banda más gratificante es la de 446, seguida de la de 137 MHz, y en la de 868 MHz puede desesperar pues es muy dificil recibir paquetes de datos). Algunas antenas que pueden usarse con comentarios de mi experiencias:
    • Antena vertical
    • J-Pole: da muy buenos resultados, similares a la Turnstiel y es maas sencilla de construir.
    • Dipolo 
    • Eggbeater En teoria superior a la Turnstile para satelrites la tengo pendiente
    • Turnstile: probada para 136 MHz, solo recibe bien los satelites que pasan con una gran elevación, precisa de amplificador LNA y filtro pasabajos. En 446 MHz tiene un buen comportamiento
    • QFH
    • Logperiodica (elevación 90º, en vertical): fue la primera antena usada pues la tenía a mano y dio buenos resultados
    • Discone: por su ancho de banda no es aconsejable

Sencillo dipolo de 9A4QV con el que se obtienen buenos resultados

  • Amplificador LNA (amplificador de bajo ruido). Tiene que ser un amplificador de calidad pues de lo contrario introduce ruido y empeora la relación S/N por lo que no se gana nada. 
Pasos para la instalación rápida del firmware
  • Identificar la placa de desarrollo ESP32 LoRa que vamos a usar(p.e. LiLYGO 433/470 MHz Model: LORA 32 T3_V1.6.1 que monta los siguientes chips: ESP32-PICO-D4, SX1278 y CH9102) y comprobar que está soportada directamente por el proyecto. Se ha elegido la banda de 433 MHz pues es la que dispone de un mayor número de satelites con telemetría LoRa en octubre de 2024 ( 5 en 137 Mhz; 46 en 433 Mhz; 5 en 868 MHz; 0 en 2400 MHz).
  • Darse de alta como usuario en la red TinyGS, para ello:
    • Conéctese a Telegram
    • Únase al grupo TinyGS
    • Envíe el mensaje @tinygs_personal_bot para iniciar una conversación privada con el sistema.
    • Ejecute el comando /mqtt y recibirá como respuesta un usuario único y su contraseña, guardelos y no los comparta
    • Otros comandos del bot son:
      • /stations le permiten conocer el estatus de la estación, en este momento informa que está inactiva.
      • /delete da de baja una estación de la base de datos
      • /weblogin genera un loginlink
  • Instalar el firmware para ello:
    • Entre en un navegador (p.e. Chrome) y conéctese a la URL   https://installer.tinygs.com/ 
    • Seleccione la conexión USBSerial a través de la cual se va flashear (Cargar) el firmware en la placa de desarrollo, recuerde que cada placa tiene un nombre y solamente aparece en el combo cuando la placa está conectada por USB al ordenador con un cable que admita datos (no todos los soportan)
    • Elegir la acción a realizar: instalar borrando o conectarse a la consola (Desde consola se puede resetear la placa, descargar el log)
    • Confirmar la instalación (tarda unos 2' en flashear la memoria con el firmware procedente del servidor, son unos 4 M)
    • Tras la instalación aparece una pantalla de comandos, hacer reset


  • Configurar el firmware
    • Lo mas sencillo es que se conécte a su teléfono móvil y vaya a la  configuración del sistema (p.e. la rueda en Android) para seleccionar el AP sin cifrar "My TinyGS" y así poder acceder por primera vez a la placa de desarrollo
    • Entrar en el navegador y conectarse a la IP192.168.4.1 que es la que tiene la placa/firmware por defecto (si no puede acceder compruebe que tiene seleccionada la red y en caso necesario haga RESET a la placa, la placa indica cuando tiene su AP activo con "config AP available").
    • Si todo va bien le aparecerá un menú como el siguiente:


    • Station dashboard: permite configurar los parámetros de funcionamiento. Los comandos de consola son:
      • !e borrar y reset
      • !b reboot
      • !p emite una trama de prueba (Hay que haber habilitado que se tiene licencia o que no se usan amplificadores en 400.45 MHz con 500 KHz de BW)
      • Ejemplo de log en hora local con:
01:00:46 TinyGS Version 2403242 - 2403241-4-gbc3e3a7
01:00:46 Chip  ESP32-PICO-D4 - 1
01:00:46 AXPxxx chip?

... 

01:00:47 [SX12xx] Initializing ... 
01:00:47 [SX1278] Starting to listen to Waiting
02:00:49 ------------- Controls -------------
02:00:49 !e - erase board config and reset
02:00:49 !b - reboot the board
02:00:49 !p - send test packet to nearby stations (to check transmission)
02:00:49 ------------------------------------

... 

02:01:02 Attempting MQTT connection...
02:01:03 Connected to MQTT!
02:01:21 [SX1278] Starting to listen to ONDOSAT-OWL-1 
....
02:14:16 [SX1278] RSSI: -119.500000 dBm
[SX1278] SNR: -16.500000 dB
[SX1278] Frequency error: 57285.804688 Hz
02:14:16 Filter enabled, Error CRC filtered 
...
16:17:17 [SX1278] RSSI: -126.500000 dBm
[SX1278] SNR: -8.500000 dB
[SX1278] Frequency error: -11834.228516 Hz
16:17:17 Packet (143 bytes):
16:17:17 8effffffff0a0601c9a8ba00000000f10f0000f94c327aeb2e42524b204d57205645523a3035615f303100000000000e0100c50b0000000714000cce0a8af6510700000000000000000000000000000000000000000000002500deff3a01b0000000000000001104040f0f0f0f0f0f000b0ca36c924008cc370200000c0002
16:17:17 3602840f72070f110e0020009220b10a 

 

    • Configure Parameters: permite la configuración de la placa (nombre de la estación, usuario (admin) y contraseña de la AP, nombre/SSID y contraseña de la WIFI, modelo de la placa, uso horario, coordenadas (Muy importante pues en base a ellas se suministran desde el servidor la información de paso y frecuencia de los satélites), usuario y contraseña MQTT que hemos obtenido por Telegram con el bot y con los que se conecta a mqtt.tinygs.com:8883, board template)
    • Upload new version: permite actualizar directamente el dispositivo
    • restart station: rearrancarla
  • Cuando la estación esté funcionando y actualizando datos recibirá un mensaje de confirmación por Telegram y ademas la placa comenzará con la el carrusel de pantallas
Conectandose a la WiFi


Pantalla inicial con la hora y el nombre de la estacion "MalvaRosa
"

Pantalla en espera del paso de un satélite

Pantalla en espera del paso de un satélite

Pantalla de estado de conexion MQTT:ON WIFI Connected e IP


Además puede acceder al servidor TinYGS via web https://tinygs.com/ para obtener mas información




Log de las tramas recibidas por una estación

Consola web de la estación TinyGS

Localización de las estaciones terrestres TinyGS


Canal de Telegram TinyGS Test

Canal de Telegram TinyGS Test, tambien hay otro canal de tinyGS Telemetry



Cuestiones

¿Cuántas estaciones TinyGS puede tener un mismo usuario?

Ninguna, una o más de una. 

¿Se puede hacer que trabaje una placa ESP32 LoRa como TinyGS en otra banda distinta a la predefinida?

Stefan OS6ISP me puso en la pista que por firmware se puede hacer que una placa de desarrollo Lilygo ESP32 Lora para 433 con SX1278 se puede hacer trabajar en 137 MHz.

En principio del análisis de las hojas de características de la serie SX127x de SEMTECH toda ella puede trabajar en 134 y 433, pero únicamente SX1276, SX1277 y SX1279 pueden hacerlo en 868 MHz, visto de otra manera el SX1278 no puede trabajar en 868 MHz, por último el SX1280 es el único que podría hacerlo en 2,1 GHz.

Por defecto en la instalación de TinyGS está activada la opción Auto Tuning que en función de la placa selecciona  y de los satélites predefinidos que pueden ser recibidos (localización y hora) se pone en recepción en la frecuencia correspondiente desde que es visible en el horizonte hasta su desaparición, esta opción es una buena idea sobre todo cuando queremos ahorrar energia (p.e. alimentado por batería). 

Para quitar el "autotuner" (Para seleccionar manualmente frecuencia y modulación.)  o hacer que trabaje en otra banda que la predefinida por la placa de desarrollo hay que solicitar el enlace de conexión (es temporal y caduca) al bot de Telegram con el comando /weblogin y en la variables Auto tunning seleccionar (DISABLED,  Enabled 137, Enabled 433, Enabled 868-915, Enabled 2.4 G) . 

De las pruebas realizadas con placas Lilygo ESP32 Lora he encontrado que seguramente por la circuiteria (filtros, etc.):

  • La placa 433 (SX1278) trabaja con 137 MHz y con 433 MHz  ajustando la banda de auto tunning
  • La placa 433  (SX1278) T-Beam (incorpora GPS) tiene una peor recepción que la normal pero funciona

 

  • La placa de 868 (SX1276)solamente trabaja con 868 MHz ajustando la banda de auto tunning

Lo que reafirma que la mejor opción para configurar una TinyGS es una placa como  Lilygo ESP32 LoRa 433 con SX1278

 ¿Se pueden recibir todos los satélites de órbita baja?

No, solamente aquellos que envían telemetría LoRa en las bandas de 137, 446, 866 y 2.100 MHz, y además han hecho pública la descripción de los campos de las tramas emitidas y estas no van cifradas.

La banda con mas actividad y diversidad es la de 446, la de 137 auqnque muy activa está monopolizada por Starlink, la de 866 la actividad es muy baja y comporta bastantes retos técnicos, y la de 2.100 la activida en 2024 es inexitente 

¿Se pueden transmitir a los satelites?

Casi ningún satélite tiene habilitado la recepción y retransmisión de tramas, pero a veces se habilita (EN 2024 lo hizo el satélite HOD-HOD).

Dado que las trnasmisiones de radiofrecuencia estasn reguladas a nivel internacional y nacional, dependiendo de la frecuencia debe contar con licencia de radioaficionado para transmitir o simplemente estar prohibido apra particulares

Para leer mas sobre ESP32 LoRa for dummys - TinyGS

Referencias

Prohibida la reproducción parcial o total de este artículo sin permiso previo del autor

Comentarios

Entradas populares de este blog

SDR - Software Defined Radio - IIIb: Receptores RSP o MSI (MSI3001: MSI2500 + MSI001)

Antena exterior logarítmica UHF/VHF : Metronic 425010 - Ia Características

ESP32 LoRa for dummys - Inicio