¿Qué pasa con tus mensajes si se cae la red celular, se corta la luz en el barrio o simplemente estás en un sector rural sin cobertura? Meshtastic responde a eso con radio LoRa: cada equipo manda mensajes de texto, posiciones y lecturas de sensores directo a los demás, sin antena de celular, sin WiFi y sin crear cuentas. En Chile, donde un terremoto o un temporal pueden dejar zonas enteras sin comunicaciones, tener un nodo fijo en la casa es más útil que un juguete de fin de semana.

En esta guía vas a convertir una Raspberry Pi 4 o 5 en un nodo Meshtastic permanente usando el HAT WisMesh RAK6421, el módulo de radio RAK13300 y el sensor de temperatura y humedad RAK1901. Al final vas a tener el servicio meshtasticd corriendo en Raspberry Pi OS, una interfaz web para manejar el nodo desde cualquier computador de tu red, la región de radio configurada para Chile y un primer mensaje cruzando el aire hasta un segundo nodo. Además vas a entender por qué la región se configura distinto aquí que en Europa, qué hacer cuando el nombre del nodo se borra solo y por qué el sensor del HAT marca de más.

La idea: un nodo base que nunca se apaga

Qué es Meshtastic (y qué no es)

Meshtastic es un proyecto de código abierto que arma redes de radio sobre LoRa. Cada nodo transmite sus propios mensajes y, además, repite los paquetes de los demás. Así se forma una red mallada (mesh): un mensaje puede llegar a alguien que el remitente no alcanza a escuchar, porque otros nodos lo van pasando de mano en mano.

Conviene no confundirlo con LoRaWAN. Los dos usan la misma modulación de radio, pero la arquitectura es opuesta: en LoRaWAN los sensores le hablan a un gateway, que reenvía todo a un servidor de red como The Things Network. En Meshtastic no hay gateway ni servidor: los equipos conversan entre ellos y cualquier nodo puede repetir.

¿Por qué LoRa llega tan lejos con tan poca potencia? Porque usa modulación de espectro ensanchado (chirp spread spectrum): cada bit se "estira" en el tiempo con un barrido de frecuencia, y el receptor puede recuperarlo incluso cuando la señal está por debajo del nivel de ruido. El precio es la velocidad. La configuración por defecto de Meshtastic, LongFast, transmite apenas un par de kilobits por segundo, suficiente para texto corto y telemetría, pero no para fotos ni audio.

Para qué sirve un nodo en una Raspberry Pi

La mayoría de los nodos Meshtastic son placas chicas con batería que se llevan en la mochila. Una Raspberry Pi es demasiado grande y gasta demasiado para eso; su lugar es otro: el nodo fijo de la casa.

  • Estación base: la Pi está siempre enchufada, escucha todo el tráfico y repite paquetes mientras los nodos móviles andan afuera.
  • Manejo desde el navegador: la interfaz web se abre desde cualquier computador de la red local, sin emparejar un celular por Bluetooth.
  • Puente hacia la red de la casa: por MQTT puedes mandar mensajes y lecturas a Home Assistant.
  • Sensores sin WiFi: un nodo en la bodega, el patio o el invernadero puede mandarle temperatura y humedad a la Pi por radio.

Esta guía cubre los dos primeros puntos. MQTT y los sensores remotos quedan como variante al final.

El hardware

Lista de componentes

  • Raspberry Pi 5 o Raspberry Pi 4 con su fuente. Para la Pi 5, la fuente oficial USB-C de 27 W evita los avisos de bajo voltaje. Con Raspberry Pi OS de 64 bits actualizado; la versión Lite basta, porque todo se maneja por SSH y desde el navegador.
  • HAT WisMesh RAK6421. Trae dos ranuras para módulos de radio (IO Slot 1 y 2) y cuatro para sensores (Slot A a D), pero no incluye la radio.
  • Módulo LoRa RAK13300 (chip Semtech SX1262). Ojo con la banda: para Chile necesitas la versión de 915 MHz, no la de 868 MHz que usa el tutorial original. En la bolsa venía una pequeña antena de PCB con cable.
  • Sensor RAK1901 (opcional), para temperatura y humedad.
  • Un segundo nodo Meshtastic como contraparte. El autor original usó el WisMesh RAK4631 Starter Kit; cualquier placa LoRa compatible con Meshtastic en la misma banda sirve. Más un celular con la app Meshtastic.

HAT RAK6421, módulo de radio RAK13300, sensor RAK1901, antena de PCB y bolsa de tornillos sobre una mesa de madera

868 o 915 MHz: el detalle que más se equivoca en Chile

El tutorial original está escrito para Europa, donde Meshtastic transmite sin licencia en 868 MHz. Chile no usa esa banda para dispositivos de corto alcance: aquí el rango habilitado está en torno a 915 MHz (la Subtel autoriza equipos de baja potencia entre 915 y 928 MHz). Por eso:

  1. La radio y la antena tienen que ser de 915 MHz. Un módulo de 868 MHz configurado en otra región puede transmitir, pero su filtro y su antena están afinados para otra frecuencia: pierdes alcance y obligas al amplificador a trabajar contra una carga desadaptada.
  2. La región del firmware no es EU_868. La comunidad Meshtastic en Chile usa normalmente ANZ (915 a 928 MHz), que cae entero dentro de la banda chilena. US cubre de 902 a 928 MHz y parte de ese rango queda fuera, así que no es la mejor opción. Revisa la norma vigente de la Subtel si vas a subir la potencia o usar antenas de alta ganancia.
  3. Todos los nodos que quieran hablar entre sí deben estar en la misma región y con el mismo preset (LongFast por defecto).

Cuando compres hardware LoRa en tiendas internacionales vas a ver versiones "EU868" y "US915". Para Chile, la segunda.

Armar el HAT

Las ranuras vienen rotuladas en la placa. El módulo de radio va en IO Slot 1 y el sensor en una de las ranuras chicas B, C o D. La ranura A es más grande y está pensada para el módulo GPS RAK12501.

HAT RAK6421 visto desde arriba, con las ranuras de sensores Slot A a D y las ranuras IO Slot 1 y IO Slot 2 rotuladas

  1. Apaga la Raspberry Pi y desenchúfala.
  2. Presiona el RAK13300 en IO Slot 1 hasta que el conector calce, y atorníllalo.
  3. Inserta el RAK1901 en Slot B y atorníllalo también.
  4. Conecta el cable de la antena al conector pequeño (tipo IPEX/U.FL) del módulo de radio.
  5. Monta el HAT sobre el header GPIO de 40 pines de la Pi.

HAT RAK6421 con el módulo RAK13300 en IO Slot 1, el sensor RAK1901 en Slot B y el cable de antena conectado

⚠️ Primero la antena, después la energía. Conecta siempre la antena antes de darle corriente a la Pi. Un módulo LoRa que transmite sin antena refleja la potencia de vuelta hacia el amplificador y puede dañarse. Por la misma razón, cambia módulos solo con la Pi apagada.

El autor original montó el HAT por fuera de un gabinete SunFounder Pironman 5 Max, sobre el header GPIO que el gabinete deja expuesto. Esa decisión trae un conflicto que se explica más abajo.

HAT RAK6421 con módulo de radio y antena montado por fuera sobre el header GPIO de un gabinete Pironman

El software

Preparar Raspberry Pi OS

El módulo de radio habla con la Pi por SPI y el sensor por I2C, así que ambos buses tienen que estar activos. Puedes hacerlo desde el menú de raspi-config o con dos comandos:

Bash
sudo raspi-config nonint do_spi 0
sudo raspi-config nonint do_i2c 0

El HAT también trae una pequeña memoria EEPROM con la que meshtasticd debería reconocerlo solo. La guía rápida de RAK pide agregar estas dos líneas al final de /boot/firmware/config.txt:

Text
dtparam=i2c_vc=on
dtoverlay=i2c0

¿Para qué sirven? La especificación de HATs de Raspberry Pi reserva los pines GPIO 0 y 1 como un bus I2C aparte (i2c0, conocido como bus "ID") solo para leer esa EEPROM al arrancar. Esas dos líneas habilitan ese bus para que el sistema pueda identificar la placa.

Reinicia y comprueba que las interfaces aparecieron:

Bash
ls /dev/spidev* /dev/i2c-*

En la salida tienen que estar /dev/spidev0.0 y /dev/i2c-1. Si falta alguna, el resto de la guía no va a funcionar: vuelve a revisar raspi-config antes de seguir.

Instalar meshtasticd

meshtasticd es el firmware de Meshtastic empaquetado como servicio de Linux. El proyecto mantiene un repositorio propio, separado por versión de Debian; la página de instalación de Meshtastic lista los sistemas soportados. Para saber cuál tienes:

Bash
grep VERSION_ID /etc/os-release

En la Pi del autor la respuesta fue 13 (Debian 13, base del Raspberry Pi OS actual), por eso los comandos siguientes dicen Debian_13. Si tu versión es otra, cambia el número en los dos lugares donde aparece.

Bash
echo 'deb http://download.opensuse.org/repositories/network:/Meshtastic:/beta/Debian_13/ /' | sudo tee /etc/apt/sources.list.d/network:Meshtastic:beta.list
curl -fsSL https://download.opensuse.org/repositories/network:Meshtastic:beta/Debian_13/Release.key | gpg --dearmor | sudo tee /etc/apt/trusted.gpg.d/network_Meshtastic_beta.gpg > /dev/null
sudo apt update
sudo apt install meshtasticd

En la prueba original se instaló la versión 2.7.26. El paquete deja el servicio configurado y lo arranca de inmediato. Como todavía no tiene configuración, no encuentra la radio y se reinicia cada pocos segundos: es normal en este punto y se arregla con el paso siguiente.

Activar la radio, el sensor y la interfaz web

El paquete trae configuraciones listas para hardware conocido en la carpeta /etc/meshtasticd/available.d; salen del repositorio del firmware de Meshtastic. Para el RAK6421 con el RAK13300 en IO Slot 1, copia el archivo correspondiente a config.d:

Bash
sudo cp /etc/meshtasticd/available.d/lora-RAK6421-13300-slot1.yaml /etc/meshtasticd/config.d/

Si pusiste el módulo en IO Slot 2, usa el archivo que dice slot2. Ese YAML le dice al servicio en qué pines está la radio: Reset en GPIO 16, interrupción (IRQ) en GPIO 22, Busy en GPIO 24, GPIO 12 y 13 para encenderla, y spidev0.0 como dispositivo SPI. La señal Busy es propia del SX1262: el chip la levanta mientras procesa un comando, y el driver espera a que baje antes de mandarle el siguiente. Si ese pin está mal, la radio falla de forma intermitente y difícil de diagnosticar.

En la prueba original este paso fue necesario aunque las dos líneas de la EEPROM estaban puestas: el servicio decía Could not locate Pi HAT+. La EEPROM respondía en el bus I2C, pero la Pi no registraba el HAT en su lista de dispositivos. Lo más probable es que fuera por el montaje sobre el header del gabinete; el autor no pudo comprobarlo con una Pi sin gabinete. Copiar la plantilla a mano lo resuelve igual.

Ahora abre la configuración principal:

Bash
sudo nano /etc/meshtasticd/config.yaml

Quítale el # del comienzo a estas líneas para activar el bus I2C y el servidor web. Respeta la sangría de dos espacios: YAML es estricto con los espacios y un tab o un espacio de más rompe el archivo.

YAML
I2C:
  I2CDevice: /dev/i2c-1

Webserver:
  Port: 9443
  RootPath: /usr/share/meshtasticd/web

Inicia el servicio y revisa el registro:

Bash
sudo systemctl enable --now meshtasticd
journalctl -u meshtasticd -b --no-pager | grep -E "sx1262|SHTC3|Web Server"

En la prueba original aparecieron estas líneas (abreviadas):

Text
SHTC3 found at address 0x70
sx1262 init success
Web Server framework started on port: 9443

sx1262 es el chip de radio del RAK13300 y SHTC3 el sensor del RAK1901. Mensajes como Could not open / read /prefs/config.proto en el primer arranque son inofensivos: todavía no hay ajustes guardados.

Si usas un gabinete Pironman 5: el conflicto con su servicio

Dentro de un Pironman 5 Max, la radio solo funcionó estable después de detener el servicio del gabinete. Chocan dos cosas:

  • GPIO 13: el receptor infrarrojo del gabinete ocupa ese pin, que la radio necesita. Se libera agregando dtoverlay=sunfounder-pironman5,ir=off a config.txt.
  • El bus SPI: el servicio del gabinete controla sus LEDs RGB por spidev0.0 y escribe ahí cada segundo, incluso con las luces apagadas. Resultado: la radio se caía cada dos o tres minutos con RadioLib err=-705.

Con sudo systemctl disable --now pironman5 el error desapareció, a cambio de perder la pantalla OLED y el control del ventilador del gabinete. Curiosamente, los LEDs se volvieron a encender después, probablemente porque comparten la línea de datos con la radio.

La lección general sirve para cualquier gabinete o HAT con "extras": antes de montar una radio SPI, revisa quién más usa el bus. El comando sudo lsof /dev/spidev0.0 te muestra qué procesos lo tienen abierto.

Configurar el nodo

Abrir la interfaz web y fijar la región

La interfaz se abre en el navegador en https://IP-DE-TU-PI:9443; la IP te la da hostname -I. El navegador va a advertir que el certificado es autofirmado: acéptalo una vez. En el diálogo para conectar un dispositivo nuevo quédate en la pestaña HTTP, escribe la IP y el puerto, y deja activado el interruptor de HTTPS.

Interfaz web de Meshtastic con el diálogo para conectar un dispositivo nuevo, pestaña HTTP, dirección IP y puerto 9443

Un nodo recién instalado no tiene región y por eso no transmite. En Configuración → Configuración de radio → LoRa, elige la región y presiona Guardar arriba a la derecha. El original usa EU_868 porque está en Alemania; en Chile elige ANZ, por lo explicado en la sección del hardware. El servicio se reinicia y queda transmitiendo con el preset LongFast. En el registro de la prueba original la potencia era de 22 dBm, el máximo del SX1262.

Interfaz web de Meshtastic, configuración de radio, pestaña LoRa con la región seleccionada

Si prefieres la terminal, una vez instalada la herramienta de línea de comandos (más abajo) puedes hacer lo mismo con:

Bash
meshtastic --host localhost --set lora.region ANZ

🔓 Canal abierto, interfaz abierta. El canal LongFast por defecto usa una clave conocida públicamente: cualquier nodo Meshtastic al alcance puede leer lo que escribas ahí, y también tu posición y tus lecturas de sensores. Para algo privado, crea un canal propio con clave propia. Los mensajes directos a un nodo específico se cifran, según la documentación, desde la versión 2.5 con la clave pública del destinatario, así que solo él puede leerlos. La interfaz web, en cambio, no pidió ninguna clave: cualquiera en tu misma red que conozca la dirección puede reconfigurar el nodo. No abras el puerto 9443 hacia internet.

El nombre se cambia desde la opción para cambiar el nombre del dispositivo, al final de la barra lateral izquierda. El nombre largo admite 40 caracteres y el corto, cuatro; el corto es el que aparece en las listas de nodos y en el mapa.

Interfaz web de Meshtastic con el diálogo para cambiar el nombre largo y el nombre corto del nodo

Cuando el nombre se borra al reiniciar

Con la versión 2.7.26, el nodo del autor volvía a llamarse Meshtastic c180 cada vez que se reiniciaba el servicio, sin importar si el nombre se había puesto desde la web o desde la terminal. La región y los ajustes del sensor sí se mantenían. El registro mostraba la causa: el servicio guardaba el nombre nuevo solo en su base de datos de nodos, no en el archivo device.proto del que lo lee al arrancar.

La solución fue poner el nombre y después apartar ese archivo una vez. Si no existe, el servicio toma el nombre de la base de datos de nodos y crea el archivo de nuevo:

Bash
sudo systemctl stop meshtasticd
sudo mv /var/lib/meshtasticd/.portduino/default/prefs/device.proto /root/device.proto.bak
sudo systemctl start meshtasticd

Desde ahí el nombre sobrevivió a los reinicios. No se sabe si versiones posteriores siguen con el problema, así que antes de aplicar el arreglo comprueba si tu nombre de verdad desaparece después de sudo systemctl restart meshtasticd. El respaldo queda en /root por si necesitas volver atrás.

Activar el sensor RAK1901

El sensor se detecta al arrancar, pero sus lecturas solo se envían cuando activas el módulo de telemetría. En la interfaz web ve a Configuración → Configuración de módulos → Telemetría, activa el módulo en la sección de datos ambientales y guarda.

Interfaz web de Meshtastic, configuración de módulos, pestaña Telemetría con la telemetría ambiental activada

El autor puso un intervalo de 300 segundos y el nodo reportó 1800. Cuenta con una lectura cada 30 minutos. Tiene sentido: Meshtastic limita la telemetría frecuente para no saturar un canal compartido donde cada paquete ocupa tiempo de aire de todos.

En la interfaz web no aparecen las lecturas del propio nodo. Se ven en la app Meshtastic del segundo nodo y, en la Pi, en el registro:

Bash
journalctl -u meshtasticd --no-pager | grep "relative_humidity"

Como sensor de ambiente, el RAK1901 montado en el HAT sirve a medias. Marcó 33,8 °C recién encendido y 36 °C una hora después, con una pieza que el autor estimaba en unos 21 °C (sin termómetro de referencia). El sensor queda a pocos centímetros de una Pi 5 cuyo procesador estaba entre 46 y 50 °C en reposo: lo que mide es, sobre todo, el calor de la propia Pi. Para lecturas útiles hay que alejarlo, por ejemplo en un nodo chico aparte. Si quieres probar sin mover nada, compara contra un termómetro y anota la diferencia, aunque la corrección va a cambiar con la carga del procesador.

Probar la red

El segundo nodo: RAK4631 Starter Kit

Un nodo solo no tiene con quién hablar. Como contraparte, el autor usó el WisMesh RAK4631 Starter Kit: una placa base con módulo de radio y GPS, una pequeña pantalla OLED y antenas. En el módulo de radio dice "RAK4630", que es el nombre del chip montado en la placa RAK4631.

Contenido del WisMesh RAK4631 Starter Kit: placa base, pantalla OLED, antenas, cable USB y tornillos

Armarlo toma dos pasos: insertar la OLED en su header y conectar las tres antenas (LoRa, Bluetooth y GPS). Para LoRa venían una antena de varilla y una de PCB; el autor usó la de varilla. También aquí vale la regla: primero las antenas, después la energía por USB-C.

RAK4631 Starter Kit armado, con la pantalla OLED insertada, la antena de varilla para LoRa y las antenas de GPS y Bluetooth

El firmware Meshtastic venía instalado de fábrica (versión 2.7.15 en la prueba). La configuración se hace con la app Meshtastic para iOS o Android:

  1. En la app, en Conectar, elige el dispositivo. Se llama Meshtastic_ más cuatro caracteres.
  2. Escribe el código de emparejamiento que muestra la OLED. Quédate en la app durante el proceso: si cambias a otra app, el emparejamiento se puede cortar.
  3. Toca el aviso rojo para fijar la región LoRa, elige la misma que pusiste en la Pi (ANZ en Chile) y guarda. La placa se reinicia.

App Meshtastic en la pantalla de conexión, con el nodo vinculado, firmware 2.7.15 y el aviso para fijar la región LoRa

La app ofreció actualizar a 2.7.26. El autor no lo hizo y la conexión con la Pi funcionó igual: dentro de la misma rama 2.7 los nodos se entienden sin problemas.

El primer mensaje por la malla

Con los dos nodos en la misma región, se escuchan. Para verlo desde la Pi, instala la herramienta de línea de comandos de Meshtastic:

Bash
sudo apt install pipx
pipx install "meshtastic[cli]"
pipx ensurepath

Cierra la sesión y vuelve a entrar; después meshtastic --host localhost --nodes lista todos los nodos conocidos. En la prueba, el Starter Kit apareció con una relación señal/ruido (SNR) de 6 dB y 0 saltos, es decir, recepción directa; los dos equipos estaban en el mismo escritorio.

¿Qué dice ese SNR? En LoRa, un valor positivo indica una señal limpia y holgada. Lo interesante es que el SX1262 con el preset LongFast todavía decodifica con SNR negativos, de hasta unos, 20 dB: la señal puede estar muy por debajo del ruido y el mensaje igual llega. Ese margen es el que hace posibles los enlaces de varios kilómetros.

En la app, la Pi no aparecía al comienzo. Un nodo solo se muestra cuando la contraparte recibió algo de él, y la Pi había hablado por última vez antes de que el Starter Kit tuviera región. Un mensaje de prueba desde la Pi lo resuelve (el texto entre comillas puede ser el que quieras):

Bash
meshtastic --host localhost --sendtext "Hallo vom Raspberry Pi"

App Meshtastic con el mensaje enviado desde la Pi y la respuesta desde el celular, marcada como entregada a la malla

La respuesta desde el celular llegó al registro de la Pi como Received text msg, con 7 dB de SNR.

La ficha de detalle de la Pi en la app solo se pudo abrir después de que la Pi reenviara su información de nodo, que lleva el nombre y la clave pública. Antes, la lista de nodos mostraba un candado amarillo abierto junto a la entrada. La Pi manda esa información unos 30 segundos después de cada arranque del servicio, así que un sudo systemctl restart meshtasticd basta.

App Meshtastic con los detalles del nodo Raspberry Pi: número de nodo, nombre de usuario, clave pública y registros

Con el candado verde, también aparecen las lecturas ambientales del RAK1901 que la Pi mandó por radio:

App Meshtastic con el registro de mediciones ambientales del nodo Raspberry Pi: 36 °C y 34 % de humedad

De dos nodos a una malla

Dos nodos son el caso mínimo; Meshtastic está pensado para muchos más. Cada nodo que recibe un paquete lo retransmite hasta que se acaba su contador de saltos (hop limit), que por defecto es 3. Así, un mensaje llega a destinatarios que el remitente no escucha directamente. No hay rutas fijas: los paquetes pasan de nodo en nodo y cada uno recuerda lo que ya repitió para no hacerlo dos veces.

¿Por qué no subir el contador a 7 y llegar más lejos? Porque cada salto extra multiplica el tiempo de aire que ocupa un mismo mensaje. En una malla con muchos nodos, un hop limit alto satura el canal y termina perdiendo más mensajes de los que salva. Para una red de barrio, 3 suele ser el equilibrio razonable.

Los nodos ajenos también son parte de la red. Todos los equipos con la misma región y el preset LongFast comparten canal y aparecen solos en tu lista apenas los recibes. La Pi, en el rol "Client", repite todos los paquetes, y lo hizo con los del Starter Kit: en el registro aparecen como Rebroadcast received message.

En la prueba original no apareció ningún nodo ajeno en dos horas, con la antena de PCB dentro de la pieza junto al gabinete. LoRa necesita, en lo posible, línea de vista despejada. Para saber si ya hay una malla en tu zona, mira un mapa como meshmap.net. Solo incluye nodos que comparten su posición y reportan a internet, así que un sector vacío no significa que nadie esté transmitiendo ahí.

Medir el alcance

Para saber hasta dónde llega tu antena, Meshtastic incluye un módulo de prueba de alcance. Un nodo fijo transmite paquetes numerados a intervalos cortos y tú sales a caminar con el otro. Mientras los números lleguen sin saltos, sigues en alcance. El autor no hizo la prueba; este es el procedimiento según la documentación:

  1. En la Pi, activa el módulo y que transmita cada 30 segundos, el intervalo recomendado para LongFast.
  2. En el nodo móvil, activa también el módulo en la app, dentro de Configuración de módulos, en la prueba de alcance. Sin eso, la app no muestra los paquetes de prueba.
  3. Sal con el nodo y el celular. La app guarda la posición de cada paquete recibido; en iPhone puedes exportar después el registro de posiciones del nodo.
  4. Al terminar, apaga el emisor. Los paquetes de prueba ocupan mucho tiempo de aire y molestan a otros nodos del canal; de todas formas el módulo se apaga solo a las ocho horas.
Bash
meshtastic --host localhost --set range_test.enabled true --set range_test.sender 30
meshtastic --host localhost --set range_test.sender 0 --set range_test.enabled false

La primera línea arranca el emisor en la Pi y la segunda termina la prueba.

Errores comunes

Mensaje o síntoma Causa Solución
Could not locate any devices y el servicio se reinicia sin parar No hay configuración en config.d y el HAT no se detectó solo Copiar la plantilla de available.d a config.d
Wanted region 0, using UNSET Región sin configurar: el nodo no transmite Fijar la región (ANZ en Chile) y guardar
RadioLib err=-705 cada pocos minutos Otro programa escribe en spidev0.0 (en la prueba, el servicio del Pironman) Revisar con sudo lsof /dev/spidev0.0 y detener al otro usuario del bus
El nombre del nodo vuelve al de fábrica al reiniciar El nombre no se escribe en device.proto (2.7.26) Apartar el archivo una vez, como se explica arriba
El nodo no aparece en la app de la contraparte Todavía no se recibió ningún paquete suyo Enviar un mensaje de prueba o reiniciar el servicio
La interfaz web no carga Port y RootPath siguen comentados en config.yaml Activar las dos líneas y reiniciar el servicio
Nodos en distintas regiones no se ven Uno quedó en EU_868 o US y el otro en ANZ Poner todos en la misma región y el mismo preset
Alcance muy pobre aunque todo "funciona" Radio o antena de 868 MHz trabajando en la banda de 915 Usar módulo y antena de 915 MHz

Preguntas frecuentes

¿Meshtastic funciona en cualquier Raspberry Pi? El servicio meshtasticd corre en Raspberry Pi OS y otros Linux. El HAT RAK6421, según el fabricante, está pensado para la Raspberry Pi 4 y la Raspberry Pi 5; la prueba se hizo en una Pi 5 de 4 GB.

¿Necesito licencia de radioaficionado? No para el uso normal. Meshtastic trabaja en bandas de uso libre para equipos de baja potencia, siempre que el nodo tenga la región correcta: con ella, el firmware ajusta frecuencia, potencia y tiempo de transmisión a esa norma. En Chile eso significa la banda de 915 MHz.

¿Puedo conectar la Pi a la app del celular por Bluetooth? No: según la documentación, meshtasticd no soporta Bluetooth. El acceso es por red: la interfaz web en el puerto 9443 o la línea de comandos por el puerto de API 4403.

¿Cuántos nodos necesito como mínimo? Dos. Uno solo puede transmitir, pero recién con una contraparte sabes si los mensajes y las lecturas llegan.

Variantes y mejoras

  • Sin HAT, con un módulo SX1262 por SPI. El RAK6421 es cómodo, pero no imprescindible. meshtasticd funciona con otros módulos basados en SX1262 conectados por SPI a los pines de la Pi; dentro de /etc/meshtasticd/available.d vienen plantillas para varios HATs y módulos (revísalas con ls). Si tu módulo no tiene plantilla, copia la más parecida y ajusta los pines de CS, IRQ, Busy y Reset según tu cableado. Antes de soldar nada, confirma que el módulo es de 915 MHz.
  • Puente a Home Assistant por MQTT. Activa el módulo MQTT del nodo apuntando a un broker Mosquitto en la misma Pi o en tu servidor, y Home Assistant puede crear entidades con la temperatura, la humedad y los mensajes que llegan por radio. Es la base para automatizaciones como "si el invernadero baja de 2 °C, avisa".
  • Mejor antena en el techo. La antena de PCB del kit sirve para pruebas en el escritorio. Una antena de varilla de 915 MHz en el exterior, con un cable coaxial corto (cada metro de cable delgado se come señal), puede multiplicar el alcance. La altura importa más que la potencia: subir la antena unos metros sobre los techos vecinos suele rendir más que cualquier ajuste de software.
  • Nodo solar sin Pi. Para el sensor del patio, una placa LoRa con microcontrolador (ESP32 o nRF52 con SX1262), una batería 18650 y un panel solar chico gastan una fracción de lo que gasta la Pi y pueden quedar meses sin mantención. La Pi se queda como base en la casa y recibe sus lecturas por radio.

Personalización para Chile

En Chile consigues buena parte de lo necesario en MechatronicStore. Busca en el catálogo:

  • Raspberry Pi 5 (4 GB) o Raspberry Pi 4: el computador del nodo fijo. La de 4 GB sobra para meshtasticd y deja espacio para correr Mosquitto o Home Assistant en paralelo.
  • Fuente oficial Raspberry Pi 27 W USB-C: para la Pi 5 es la que evita los avisos de bajo voltaje cuando el HAT y la radio transmiten.
  • Tarjeta microSD de 32 GB clase A1 o superior: para Raspberry Pi OS Lite.
  • Módulo LoRa de 915 MHz: si sigues la variante sin HAT, busca un módulo basado en SX1262 en la banda de 915 MHz y su antena correspondiente.
  • Placa LoRa con ESP32 para el segundo nodo: cualquier placa LoRa de 915 MHz compatible con el firmware Meshtastic cumple el papel del RAK4631 Starter Kit del original.

El HAT RAK6421, el módulo RAK13300 y el sensor RAK1901 se compran en la tienda del fabricante; al pedirlos, elige siempre la variante de 915 MHz, nunca la de 868 MHz que usa el tutorial original. Si en el original usan el RAK4631 Starter Kit en 868 MHz, una placa LoRa con ESP32 en 915 MHz cumple la misma función como contraparte.

Recursos

Versión chilena con componentes que consigues en Chile.