Instalar un observer para o Hub de Mesh Galicia

Escolle entre dous firmwares Wi-Fi autónomos —Offband ou Gessaman— ou conecta unha radio Companion a Linux ou Raspberry Pi mediante MeshCore Packet Capture.

Contido actualizado o 14 de agosto de 2026. Offband foi comprobado fisicamente en Heltec LoRa 32 V3 e V4.3; o observer MQTT de Gessaman foi validado de extremo a extremo nunha Heltec V3 como Room Server listen-only; e o método Linux foi comprobado nunha instalación real de MeshCore Packet Capture.

Que é un observer

Un observer escoita o tráfico MeshCore recibido por unha radio e envía ao Hub de Mesh Galicia os paquetes e o estado do dispositivo. O Hub permite reunir observacións propias e incorporalas despois ao mapa de Mesh Noroeste.

Radio Companion

A radio debe executar firmwareCompanion. Packet Capture non captura mediante o protocolo propio de Repeaters, Room Servers ou sensores.

Non é un repetidor

O observer non crea rutas, non reenvía tráfico LoRa e non xera traceroutes por si mesmo. Publica unicamente o que recibe a súa radio.

Publicación por Internet

O equipo inicia unha conexión saínte cifrada por WebSocket amqtt.mesh.gal:443. Non é necesario abrir portos de entrada no router.

Tres métodos para publicar no Hub

Os tres métodos escoitan a mesma rede de radio e publican no mesmo Hub. A diferenza está no firmware empregado e en onde se executa a ponte entre LoRa e MQTT.

Opción sinxela: Offband na propia placa

O firmware Companion Observer Wi-Fi recibe por LoRa e publica directamente por Wi-Fi. Non necesita un computador nin unha Raspberry Pi para funcionar ou configurarse no uso diario, pero si require un computador compatible para instalar o firmware por USB.

Opción web: MQTT Observer de Gessaman

O firmware de Gessaman permite configurar desde o navegador un Repeater ou Room Server que publique as recepcións por Wi-Fi e MQTT. Pode deixarse con Repeat off para funcionar como observer listen-only.

Opción avanzada: Linux ou Raspberry Pi

Un Companion convencional conéctase por BLE, USB ou TCP a MeshCore Packet Capture. Ofrece máis posibilidades de administración e diagnóstico, pero necesita outro equipo permanentemente acendido.

Descarga e instala o firmware Observer Wi-Fi

Para este método Mesh Galicia publica unha compilación experimental baseada en Offband v1.3.0. Está pensada para deixar unha Heltec acendida de forma permanente, conectada porWi-Fi e enviando ao Hub de Mesh Galicia os paquetes MeshCore que recibe por LoRa.

A aplicación MeshCore emprégase para a configuración inicial e para revisar o dispositivo. Despois non é necesario deixar o móbil, Bluetooth, un computador ou unha Raspberry Pi conectados ao observer.

1. Descarga o firmware da túa placa

Abre o repositorio de Mesh Galicia e entra na versión publicada. Hai dúas carpetas:

heltec-v3/
heltec-v4/

Escolle heltec-v3 para unha Heltec V3 ou heltec-v4 para unha Heltec V4.3.

Dentro atoparás, entre outros, estes dous ficheiros:

firmware-merged.bin
Para unha instalación completa, unha placa nova, unha placa que vén doutro firmware ou unha recuperación.
firmware.bin
Para actualizar unha instalación compatible de Offband que xa funciona, sen facer unha instalación completa.

2. Instalación completa desde MeshCore Flasher

Para unha placa nova, unha instalación desde outro firmware ou unha recuperación:

  1. Conecta primeiro unha antena adecuada para 868 MHz.
  2. Conecta a Heltec ao computador cun cable USB que admita datos.
  3. AbreMeshCore Flasher.
  4. Na lista de dispositivos escolleCustom Firmware.
  5. Selecciona ofirmware-merged.bincorrespondente á túa placa.
  6. Se queres unha instalación completamente limpa ou a placa vén doutro firmware e non necesitas conservar a identidade anterior, activa Erase device. Esta opción borra a identidade e a configuración gardadas.
  7. Inicia o flasheo, selecciona o porto USB da Heltec cando o navegador o solicite e non desconectes a placa ata que remate.

3. Se queda en Connecting…

Se o flasher non detecta a placa ou queda esperando enConnecting…, entra manualmente no bootloader:

  1. Mantén premido PRG/BOOT.
  2. Sen soltar PRG/BOOT, preme e soltaRST/RESET.
  3. Mantén PRG/BOOT un ou dous segundos máis.
  4. Solta PRG/BOOT.
  5. Volve seleccionar o porto USB e inicia de novo o flasheo.

Este procedemento non é necesario sempre: úsao só cando a placa non entra automaticamente no modo de programación.

Se o flasheo remata pero a placa non arranca automaticamente, preme unha vez RST/RESET.

4. Actualizar unha instalación existente

Se a placa xa executa unha instalación compatible deOffband Companion Observer Wi-Fi e só queres actualizar a aplicación, descarga:

firmware.bin

No MeshCore Flasher escolle de novoCustom Firmware e carga ese ficheiro. Nunha actualización normal non actives Erase device: un borrado completo eliminaría a identidade e a configuración gardadas.

Despois da actualización reinicia a placa e comproba que conserva a conexión Wi-Fi e MQTT.

Configura o observer desde a aplicación MeshCore

1. Conecta a Heltec coa aplicación

Despois do primeiro arranque, abre a aplicación MeshCore e conecta por Bluetooth coa Heltec. Escolle un nome claro para poder identificar facilmente o observer no Hub.

Bluetooth só se necesita para configurar ou revisar a placa. Cando remates, o observer funcionará de maneira autónoma mediante Wi-Fi.

2. Configura a radio

Aplica o preset Portugal 868. Os valores esperados son:

Frecuencia: 869.618 MHz
Bandwidth: 62.5 kHz
Spreading Factor: 7
Coding Rate: 6

Mantén a repetición desactivada. Un observer debe escoitar e enviar por Internet o que recibe, non actuar como repeater.

repeat=off

3. Configura a posición

Se o observer vai quedar nun lugar fixo, configura na aplicación a súa posición real.

Gardar a posición na placa non a publica automaticamente no Hub. Ao final da configuración haberá que enviar un advert do propio nodo que inclúa esas coordenadas.

4. Entra en Canles e abre _sys

Os seguintes comandos non se escriben nun terminal do computador. Na aplicación MeshCore abreCanles e entra na conversa de sistema_sys.

Dentro de _sys os comandos envíanse como mensaxes. Envía sempreun comando cada vez e agarda a resposta antes de escribir o seguinte.

5. Configura o Wi-Fi

En _sys envía estas tres ordes, unha por unha:

set wifi.ssid NOME_DA_REDE
set wifi.pwd CONTRASINAL
wifi enable

Substitúe NOME_DA_REDE eCONTRASINAL polos datos reais da túa rede Wi-Fi.

Algunhas respostas poden indicarreboot. Non reinicies entre comando e comando. Remata primeiro as tres ordes e despois premeunha soa vez RST/RESET.

Agarda a que a placa arranque, volve conectala coa aplicación e abre de novo Canles → _sys. Comproba:

wifi status

Debe indicar que o Wi-Fi está conectado e mostrar un enderezo IP.

6. Configura o MQTT de Mesh Galicia

Primeiro consulta os slots MQTT existentes:

mqtt status

Os seguintes exemplos empregan o slot 5. Se ese slot está ocupado por unha configuración que queres conservar, escolle outro número e substitúe o 5 polo mesmo número en todas as ordes.

En Canles → _sys, envía un por un:

set mqtt.broker.5.url wss://mqtt.mesh.gal:443/
set mqtt.broker.5.transport wss
set mqtt.broker.5.port 443
set mqtt.broker.5.auth_type jwt
set mqtt.broker.5.jwt_audience mqtt.mesh.gal
set mqtt.broker.5.iata_override GAL
set mqtt.broker.5.ca_cert letsencrypt

Se algunha resposta pide reiniciar, continúa ata completar este bloque. Non é necesario reiniciar entre cada orde.

Revisa antes de activar:

mqtt view 5

Agora activa o slot e comproba o seu estado:

mqtt enable 5
mqtt status

Un estado correcto debe mostrar o slot habilitado, transportewss/jwt estate=up. Se a conexión está estable, normalmente tamén mostraráretries=0.

Cando remates todos os comandos MQTT, preme unha vezRST/RESET. Agarda a que a placa arranque de novo.

7. Publica a posición cun advert

Se configuraches unha posición fixa, volve á aplicación MeshCore e usa a opción de enviar un advert do propio nodo.

O advert debe enviarse despois de gardar a posición. Cando o Hub reciba ese anuncio coas coordenadas, poderá asociar a localización ao observer.

Non é necesario deixar adverts automáticos frecuentes. Este advert serve para publicar a identidade e a posición do observer.

8. Comproba que todo funciona

Volve a Canles → _sys e comproba:

wifi status
mqtt status

A publicación periódica destatus confirma que funcionan o Wi-Fi e MQTT. Cando exista tráfico LoRa real, a chegada depackets confirma a cadea completa:

LoRa → Heltec → Wi-Fi → MQTT → Hub

Pode pasar un tempo ata que a radio reciba o primeiro paquete. Non conclúas que o observer non funciona simplemente porque non apareza tráfico inmediatamente.

Se a placa se bloquea

Se deixa de responder durante a configuración, agarda uns segundos e preme unha vez RST/RESET. O reset reinicia a placa pero non debería borrar a configuración gardada.

Se segue sen arrancar ou non pode ser detectada para reflashear, emprega o procedemento PRG/BOOT + RST/RESET explicado na sección anterior e, se necesitas unha recuperación completa, instala de novo ofirmware-merged.bin.

Observer MQTT desde o flasher web

Outra opción é o firmware MQTT Observer publicado por Gessaman. O flasher permite preparar un Repeater ou un Room Server e configurar despois radio, Wi-Fi e MQTT desde un asistente web, sen necesitar unha Raspberry Pi.

1. Flashea o dispositivo

  1. Conecta primeiro unha antena adecuada para 868 MHz.
  2. Conecta a placa ao computador mediante USB.
  3. Abre o flasher de Gessaman.
  4. Escolle o modelo exacto da placa.
  5. Escolle Room Server se queres que o mesmo nodo ofreza ademais unha sala con historial, ouRepeater se prefires ese rol.
  6. Se buscas un observer listen-only, a repetición desactivarase posteriormente na configuración.
  7. Para unha instalación limpa desde outro firmware, emprega a opción de borrado completo cando corresponda.
  8. Inicia o flasheo e agarda a que remate.

Se a placa queda esperando enConnecting…, usa o mesmo procedemento PRG/BOOT + RST/RESET explicado para Offband.

2. Configura primeiro radio e rol

Despois do flasheo entra en Configure via USB e selecciona manualmente o preset Portugal 868. Comproba:

Frecuencia: 869.618 MHz
Bandwidth: 62.5 kHz
Spreading Factor: 7
Coding Rate: 6

Para un observer que non deba retransmitir tráfico, deixaRepeat desactivado. Na pantalla de resumo debe aparecer:

Repeat: off (listen-only)

Se escolliches Room Server, ese nodo será a propia sala. O Room Server e o observer son funcións diferentes: pode almacenar mensaxes da súa sala e, ao mesmo tempo, publicar no Hub os paquetes LoRa que recibe.

3. Protexe a administración

Configura unha Admin password propia antes de deixar o nodo en servizo. Non reutilices a clave do Wi-Fi nin publiques esta contraseña.

Se utilizas o Room Server tamén podes definir a credencial de acceso de convidado que corresponda á sala.

4. Conéctate ao hotspot de configuración

Despois do primeiro arranque, o firmware crea temporalmente unha rede Wi-Fi propia para completar a configuración. Onome exacto da rede aparece na pantalla da Heltec e terá un formato semellante a:

MeshCore-Setup-XXXX
  1. No móbil ou computador abre a lista de redes Wi-Fi dispoñibles.
  2. Busca a rede MeshCore-Setup-XXXXque aparece na pantalla da túa placa.
  3. Conéctate a esa rede.
  4. É normal que o sistema indique«sen Internet»: esta rede serve unicamente para configurar o nodo.
  5. Se o móbil pregunta se queres cambiar a outra Wi-Fi ou utilizar os datos móbiles porque esta rede non ten Internet,mantén a conexión con MeshCore-Setup.

O portal de configuración adoita abrirse automaticamente como portal cativo. Se non aparece, abre un navegador mentres continúas conectado ao hotspot e entra manualmente en:

http://192.168.4.1

5. Completa a Web config

No asistente introduce primeiro a rede Wi-Fi á que quedará conectado o observer e escolle un nome claro para identificalo.

Cando chegues á configuración MQTT, utiliza estes valores para Mesh Galicia:

IATA region code
GAL
Owner public key
Opcional. Pode quedar baleiro se non o necesitas.
Owner email
Opcional. Pode quedar baleiro.
Admin password
Establece un contrasinal propio para protexer a administración do nodo. Non reutilices a clave do Wi-Fi.

Configura o Slot 1 para Mesh Galicia

No primeiro slot MQTT seleccionacustom e completa:

Preset: custom
Username: baleiro
Password: baleiro
Server host: mqtt.mesh.gal
Port: 443
Topic template: meshcore/{iata}/{device}/{type}
JWT audience: mqtt.mesh.gal

Nos Packet types podes seleccionar os tipos que queres publicar. Para un observer completo recomendamos deixar seleccionados todos os tipos dispoñibles.

O firmware tamén publica información de estado e de veciñanza segundo o seu funcionamento interno; as casillas de Packet types controlan os tipos de paquetes observados que se envían.

Desactiva os brokers que non uses

O firmware ofrece varios slots MQTT. Se só queres enviar información ao Hub de Mesh Galicia, abre o despregablePreset de cada slot adicional e seleccionaNONE.

Slot 1: custom → mqtt.mesh.gal
Slot 2: NONE
Slots adicionais: NONE

Desta forma a proba queda limitada ao broker de Mesh Galicia e non envías simultaneamente as recepcións a outros servizos configurados por defecto.

6. Garda e reinicia

Revisa o resumo antes de continuar. Para un Room Server usado como observer listen-only esperamos, como mínimo:

Radio: Portugal 868
Repeat: off (listen-only)
IATA: GAL
Slot 1: custom
mqtt.mesh.gal:443
JWT audience: mqtt.mesh.gal

Pulsa Save & reboot e agarda o reinicio da placa. O nodo debería conectarse ao Wi-Fi e empezar a publicar o seu estado no broker.

7. Comproba tráfico real

Que o Hub mostre o nodo como observer confirma a conexión coa infraestrutura, pero a proba completa require que reciba tráfico LoRa doutro nodo. Un advert manual próximo é unha forma sinxela de provocar unha recepción de proba.

Cando o Hub atribúa esa recepción ao novo observer queda validada a cadea completa:

LoRa → Heltec → Wi-Fi → MQTT → Hub

Requisitos de Linux e Raspberry Pi

A ruta recomendada é unha instalación administrada como servizosystemd en Linux. O mesmo procedemento serve para unha Raspberry Pi cun sistema Linux compatible.

Hardware

Radio MeshCore con firmware Companion e conexión BLE, serie por USB ou TCP.

Sistema

Linux con systemd, Python 3.11 ou posterior, soporte para contornas virtuais e acceso administrativo mediante sudo. En Debian, Ubuntu, MX Linux e derivados instala antespython3-venv ou o paquete correspondente á versión de Python, por exemplopython3.13-venv.

Rede e radio

Acceso a Internet e parámetros de frecuencia, ancho de banda, spreading factor e coding rate correctos para a rede observada.

Executa o instalador oficial

MeshCore Packet Capture publica un instalador administrado que descarga a versión publicada, crea o usuario de servizo, instala o programa baixo /opt e escribe a configuración baixo /etc.

sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/agessaman/meshcore-packet-capture/main/install.sh)"

No menú Installation Method, selecciona:

1) System service (systemd/launchd)

En Linux instalarase o servizo:

meshcore-packet-capture.service

O instalador tamén ofrece Docker, pero esta guía recomenda o servizo nativo porque facilita o acceso a BLE e aos dispositivos serie.

Escolle BLE, serie ou TCP

No menú Device Connection Configuration, selecciona a conexión que existe realmente entre o computador e a radio Companion.

Bluetooth Low EnergyBLE

Permite buscar radios próximas ou introducir o enderezo BLE ou UUID e, opcionalmente, o nome. O instalador comproba e prepara BlueZ cando é necesario.

Pecha antes calquera outra conexión Bluetooth co Companion, como a aplicación móbil de MeshCore ou outro capturador. O Companion só admite unha conexión Bluetooth á vez.

USBSerial

Selecciona a ruta que mostre o equipo, por exemplo/dev/ttyACM0 ou/dev/ttyUSB0. Non asumas unha ruta fixa.

Ponte de redeTCP

Introduce o nome ou enderezo IP da ponte e o porto configurado. O valor predeterminado do instalador é o 5000. Pode empregarse, por exemplo, cunha ponte ser2net.

Importa o preset e usa o código GAL

No menú MQTT Broker Configuration, selecciona:

2) Import a preset from a URL or local path

Introduce o preset público de Mesh Galicia:

https://mesh.gal/config/meshcore-galicia.toml

O preset configura o servidor, WebSocket, TLS, autenticación e os temas de publicación. É público e non contén contrasinais nin claves privadas.

Cando o instalador solicite o código IATA de tres letras, utiliza:

GAL

O validador pode advertir que non recoñeceGAL como código IATA. Neste caso selecciona Y para empregalo sen validación: é o identificador territorial acordado para o Hub de Mesh Galicia.

Os temas publicados seguirán esta estrutura:

meshcore/GAL/<CLAVE_PUBLICA>/status
meshcore/GAL/<CLAVE_PUBLICA>/packets

A clave pública do propietario e o correo electrónico son opcionais. Podes deixalos baleiros durante a primeira instalación e configuralos máis adiante.

Configuración principal
/etc/meshcore-packet-capture/config.toml
Directorio adicional
/etc/meshcore-packet-capture/config.d/
Preset de Mesh Galicia
/etc/meshcore-packet-capture/config.d/10-meshcore-galicia.toml
Opcións locais
/etc/meshcore-packet-capture/config.d/99-user.toml

Comproba systemd e os rexistros

Comproba que o servizo está habilitado e activo:

sudo systemctl is-enabled meshcore-packet-capture.service
sudo systemctl is-active meshcore-packet-capture.service

Consulta o estado detallado:

sudo systemctl --no-pager --full status meshcore-packet-capture.service

Consulta os últimos rexistros:

sudo journalctl \
  --unit meshcore-packet-capture.service \
  --no-pager \
  --lines 100

Para seguilos en tempo real:

sudo journalctl \
  --unit meshcore-packet-capture.service \
  --follow

Mantén esta comprobación aberta durante a primeira proba e agarda a que aparezan a conexión coa radio, a conexión co broker e a publicación de estado ou paquetes.

Os rexistros deben permitir comprobar a conexión coa radio, o inicio da captura, a conexión co broker e a publicación de estado ou paquetes. As mensaxes literais poden cambiar entre versións.

Verifica o Hub, o mapa e o reinicio

Deixa que a radio reciba anuncios ou outros paquetes MeshCore e comproba primeiro a chegada de información ao Hub. O mapa incorpóraos posteriormente nos seus ciclos de recollida e publicación, polo que a aparición non ten que ser inmediata.

Despois proba o arranque automático:

sudo reboot

Ao volver conectar ao equipo:

sudo systemctl is-enabled meshcore-packet-capture.service
sudo systemctl is-active meshcore-packet-capture.service
sudo journalctl \
  --unit meshcore-packet-capture.service \
  --boot \
  --no-pager \
  --lines 100

O resultado esperado das dúas primeiras comprobacións éenabled eactive.

Reinicia, actualiza ou desinstala

Reiniciar despois dun cambio

sudo systemctl restart meshcore-packet-capture.service
sudo systemctl --no-pager --full status meshcore-packet-capture.service

Actualizar ou reconfigurar

Volve executar o instalador oficial. Antes de aceptar os cambios, comproba que detecta a instalación existente e conserva/etc/meshcore-packet-capture/.

sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/agessaman/meshcore-packet-capture/main/install.sh)"

Desinstalar

Conserva antes unha copia da configuración cando poida ser necesaria para reinstalar o observer.

sudo bash -c "$(curl -fsSL https://raw.githubusercontent.com/agessaman/meshcore-packet-capture/main/uninstall.sh)"

Resolución de problemas

O servizo non arranca

Revisa o estado e os últimos 200 rexistros. Busca erros TOML, ausencia da radio, permisos serie, enderezo BLE, host ou porto TCP, falta do código GAL ou ausencia dun broker.

Non aparece o preset

Comproba os ficheiros TOML deconfig.d e verifica que existe un ficheiro equivalente a10-meshcore-galicia.toml.

A radio conecta pero non publica paquetes

Confirma o firmware Companion, a recepción real de tráfico, os parámetros de radio, a conexión amqtt.mesh.gal, o reloxo do sistema e o código GAL.

Hai estado pero non aparecen nodos

O estado do observer e os paquetes publícanse por separado. Pode non haber anuncios útiles recibidos aínda. Revisa os rexistros e agarda tráfico antes de modificar a configuración.

Comprobar os ficheiros do preset

sudo find /etc/meshcore-packet-capture/config.d \
  -maxdepth 1 \
  -type f \
  -name '*.toml' \
  -print

Comprobar que o preset público está accesible

curl \
  --fail \
  --location \
  --silent \
  --show-error \
  https://mesh.gal/config/meshcore-galicia.toml

Lista final de aceptación

  • A radio utiliza firmware Companion.
  • A conexión BLE, serie ou TCP funciona.
  • O preset de Mesh Galicia está instalado.
  • O código territorial configurado é GAL.
  • O servizo está habilitado e activo.
  • Os rexistros confirman a conexión MQTT.
  • O Hub recibe tráfico da radio e identifícaa como observer.
  • Se se quere publicar a posición, o nodo emitiu un advert que a inclúe.
  • O servizo recupera a conexión tras reinicialo.
  • O observer volve funcionar despois de reiniciar o equipo.
  • A aparición posterior no mapa foi comprobada cando houbo tráfico útil.

Cada observer amplía a cobertura observada da rede

Unha localización útil e unha conexión estable permiten que o Hub reciba máis anuncios e paquetes reais de MeshCore.

Consultar o Hub