Guía de infraestrutura MeshCore
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.
01 · Función
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.
02 · Escoller
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.
03 · Offband
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:
- Conecta primeiro unha antena adecuada para 868 MHz.
- Conecta a Heltec ao computador cun cable USB que admita datos.
- AbreMeshCore Flasher.
- Na lista de dispositivos escolleCustom Firmware.
- Selecciona o
firmware-merged.bincorrespondente á túa placa. - 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.
- 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:
- Mantén premido PRG/BOOT.
- Sen soltar PRG/BOOT, preme e soltaRST/RESET.
- Mantén PRG/BOOT un ou dous segundos máis.
- Solta PRG/BOOT.
- 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.binNo 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.
04 · Configurar Offband
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: 6Mantén a repetición desactivada. Un observer debe escoitar e enviar por Internet o que recibe, non actuar como repeater.
repeat=off3. 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 enableSubstitú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 statusDebe 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 statusOs 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 letsencryptSe algunha resposta pide reiniciar, continúa ata completar este bloque. Non é necesario reiniciar entre cada orde.
Revisa antes de activar:
mqtt view 5Agora activa o slot e comproba o seu estado:
mqtt enable 5
mqtt statusUn 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 statusA 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 → HubPode 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.
05 · Gessaman
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
- Conecta primeiro unha antena adecuada para 868 MHz.
- Conecta a placa ao computador mediante USB.
- Abre o flasher de Gessaman.
- Escolle o modelo exacto da placa.
- Escolle Room Server se queres que o mesmo nodo ofreza ademais unha sala con historial, ouRepeater se prefires ese rol.
- Se buscas un observer listen-only, a repetición desactivarase posteriormente na configuración.
- Para unha instalación limpa desde outro firmware, emprega a opción de borrado completo cando corresponda.
- 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: 6Para 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- No móbil ou computador abre a lista de redes Wi-Fi dispoñibles.
- Busca a rede
MeshCore-Setup-XXXXque aparece na pantalla da túa placa. - Conéctate a esa rede.
- É normal que o sistema indique«sen Internet»: esta rede serve unicamente para configurar o nodo.
- 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.15. 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.galNos 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: NONEDesta 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.galPulsa 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 → Hub06 · Linux · Preparación
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.
07 · Linux · Instalar
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.serviceO instalador tamén ofrece Docker, pero esta guía recomenda o servizo nativo porque facilita o acceso a BLE e aos dispositivos serie.
08 · Linux · Dispositivo
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.
09 · Linux · Hub
Importa o preset e usa o código GAL
No menú MQTT Broker Configuration, selecciona:
2) Import a preset from a URL or local pathIntroduce o preset público de Mesh Galicia:
https://mesh.gal/config/meshcore-galicia.tomlO 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:
GALO 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>/packetsA 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
10 · Comprobación
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.serviceConsulta o estado detallado:
sudo systemctl --no-pager --full status meshcore-packet-capture.serviceConsulta os últimos rexistros:
sudo journalctl \
--unit meshcore-packet-capture.service \
--no-pager \
--lines 100Para seguilos en tempo real:
sudo journalctl \
--unit meshcore-packet-capture.service \
--followManté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.
11 · Resultado
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 rebootAo 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 100O resultado esperado das dúas primeiras comprobacións éenabled eactive.
12 · Mantemento
Reinicia, actualiza ou desinstala
Reiniciar despois dun cambio
sudo systemctl restart meshcore-packet-capture.service
sudo systemctl --no-pager --full status meshcore-packet-capture.serviceActualizar 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)"13 · Diagnóstico
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' \
-printComprobar que o preset público está accesible
curl \
--fail \
--location \
--silent \
--show-error \
https://mesh.gal/config/meshcore-galicia.toml14 · Peche
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.
Infraestrutura comunitaria
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.
