Construyendo una Red Reticulum (RNS) Autónoma con LoRa
Guía de implementación: Raspberry Pi Zero 2 W + Heltec V3
Esta guía documenta el proceso inicial para desplegar un nodo de comunicaciones descentralizado, fuera de la red (off-grid) y cifrado, utilizando el protocolo Reticulum Network Stack.
El objetivo es establecer comunicación vía texto (Nomad Network) entre una estación base “headless” (sin monitor) y un puesto de control (PC).
Inventario de Hardware
Nodo Base (La Torre):
SBC: Raspberry Pi Zero 2 W.
Conectividad: Waveshare Ethernet/USB HUB HAT (Chip RTL8152) para expansión de puertos y red cableada.
Radio: Heltec LoRa V3 (ESP32-S3).
Nodos Clientes (Puestos de Control):
-
Equipo 1: PC con DragonOS (Linux).
-
Equipo 2: PC con Windows 11.
-
Radio: Heltec LoRa V3 (ESP32-S3) adicional.
Paso 1: Preparación del Firmware (RNode)
Antes de conectar nada a la Raspberry Pi, debemos convertir los módulos de desarrollo Heltec V3 en interfaces de radio RNode puras.
Nota: Este paso se realiza mejor desde un PC con navegador Chrome/Edge.
1. Conectar el Heltec V3 al PC por USB.
2. Acceder al [Instalador Web de RNode]
3. Pulsar Install Firmware
4. Seleccionar el puerto serial detectado.
5. El instalador detectará automáticamente el chip ESP32-S3. Seguir los pasos para flashear.
6. Repetir el proceso con el segundo Heltec V3.
Paso 2: Preparación del Entorno en Raspberry Pi
Partimos de una instalación limpia de **Raspberry Pi OS Lite (64-bit)**. Accedemos vía SSH.
2.1. Actualización y Dependencias
El sistema operativo moderno (Debian 12 Bookworm) requiere el uso de entornos virtuales para Python. Usaremos `pipx`.
Actualizar sistema
sudo apt update && sudo apt upgrade -y
Instalar pipx (gestor de paquetes Python aislado)
sudo apt install pipx -y
pipx ensurepath
Cargar el path (o cerrar sesión y volver a entrar)
source ~/.bashrc
2.2. Instalación de Reticulum y Nomad Network
Instalamos el stack de red (rns) y la interfaz de chat (nomadnet).
pipx install rns
pipx install nomadnet
2.3. Permisos de Usuario
Para que Reticulum pueda usar el puerto USB sin sudo, añadimos nuestro usuario al grupo dialout.
sudo usermod -aG dialout $USER
IMPORTANTE: Reiniciar la Raspberry Pi para aplicar cambios
comando:: sudo reboot
Paso 3: Configuración de la Interfaz de Radio
Una vez reiniciada la Pi, conectamos el Heltec V3 a uno de los puertos USB del HAT.
3.1. Identificación del Puerto
Verificamos dónde ha montado Linux el dispositivo:
ls /dev/ttyUSB* /dev/ttyACM*
Debería aparecer /dev/ttyUSB0 (suele aparecer este) o /dev/ttyACM0
3.2. Fichero de Configuración Maestro
Reticulum necesita saber los parámetros físicos de la radio. Creamos una configuración limpia.
Ruta: ~/.reticulum/config
Configuración Básica de Reticulum
[logging]
loglevel = 4
--- INTERFACES ---
type = RNodeInterface
interface_enabled = yes
# Puerto detectado (Cambiar a /dev/ttyACM0 si es necesario)
port = /dev/ttyUSB0
# Configuración de Radio (Debe ser IDÉNTICA en todos los equipos)
frequency = 868000000
bandwidth = 125000
txpower = 7
spreadingfactor = 9
codingrate = 5
# Identificador opcional del nodo
id_callsign = Base_PiZero
# Control de flujo (Desactivado para ESP32 simple)
flow_control = false
Explicación técnica de los parámetros:
-
Frequency: 868 MHz (Banda ISM Europa).
-
Bandwidth (125kHz) / SF (9): Balance entre velocidad y alcance. Esta combinación es robusta para distancias medias-largas.
-
Coding Rate (5): 4/5, buena corrección de errores.
Paso 4: Configuración del Cliente (Windows/DragonOS)
Para que el PC “hable” con la Raspberry Pi, necesitamos conectar el segundo Heltec V3 al PC y configurar su software.
-
Instalar Python 3 en el PC.
-
Instalar Nomad Network: pip install nomadnet (o pipx en DragonOS).
-
Ejecutar rnsd una vez para generar la config.
-
Editar el archivo de configuración del PC (En Windows: %USERPROFILE%/.reticulum/config | En Linux: ~/.reticulum/config).
-
Copiar el bloque RNode LoRa Interface exacto de la Raspberry Pi, cambiando solo el puerto COM/Serial según corresponda al PC.
Frecuencia, BW, SF y CR deben ser idénticos
Paso 5: Prueba de Campo (Nomad Network)
Ahora tenemos dos nodos independientes. No necesitan WiFi ni Router. Se comunican por ondas de radio.
En la Raspberry Pi (SSH): Ejecutar Nomad Network. Al no tener entorno gráfico, usaremos la interfaz TUI (Terminal).
nomadnet
Deberíamos ver en el log: “RNodeInterface is up”.
En el PC (Windows): Ejecutar Nomad Network desde PowerShell.
nomadnet
El “Join”: Escribimos un mensaje en la pestaña [ Conversation ] de Nomad Network (por ejemplo, en el canal público lxmf).
Si las radios están configuradas igual, el mensaje viajará por LoRa y aparecerá en la pantalla de la heltec v3
Verificación de Enlaces
Para confirmar que la conexión es vía Radio y no por red local “fantasma”:
En Nomad Network, ir a la pestaña [ Network ] (Navegar con Flecha Derecha).
Deberíamos ver un “Announce” del otro nodo.
La columna “Interface” debe indicar RNode LoRa Interface y mostrar métricas como RSSI (potencia de señal) y SNR (ruido).
Notas Adicionales
-
Consumo: La Pi Zero 2 W con el HAT y el Heltec consume < 2W, ideal para operar con Power Bank pero consume mucho para un nodo solar
-
Seguridad: Todo el tráfico en Reticulum está encriptado de extremo a extremo (Fernet + Curve25519) por defecto. No hay metadatos visibles para terceros (ya veremos en un futuro)
-
Escalabilidad: Si añadimos un tercer Heltec, la red se convierte automáticamente en una malla (Mesh), donde los nodos rebotan mensajes para alcanzar destinos lejanos.