Meshcore: Obsever

Un Observer (Observador) es un nodo MeshCore (repetidor, room server o companion) que escucha el tráfico de la malla cercana e informa a un broker MQTT por Internet. 

Los observers pueden configurarse para compartir solamente los avisos o anuncios (advertisements) sin mostrar el reso del tráfico de la malla.

Se puede dejar de compartir datos cuando el propietario lo desee.

Fuente: https://www.lorameshdevices.com/blog/meshcore/how-to-build-a-meshcore-observer-with-heltec-v3.html


El observer tiene dos funciones o partes

  • Una parte que es la de recepción de los mensajes de la malla
  • Una segunda parte que realiza el envío al servidor que los proceses (MQTT BROKER)

Así para  configurar un OBSERVER tenemos dos posibles soluciones

  • Conectar un nodo meshcore a un procesador 24/7 (p.e. una raspberry con el software adecuado y conexión a Internet) (ESTA ES LA SOLUCIÓN QUE SE VA A ANALIZAR EN ESTA ENTRADA)
  • Crear un unico dispositivo especifico OBSERVER sobre un hardware capaz de soportar ambas funciones (ESTA SOLUCIÓN NO SE VA A ANALIZAR EN ESTA ENTRADA)


¿Qué se necesita?

Un nodo Meshcore 

Se trata de un nodo estandar sin nada especial como los que hemos visto en Meshcor: montando una red y en Meshcore: Repetidores

Se ha optado por un NODO REPETIDOR


Un procesador funcionando 24/7 con conexión a Internet

Hemos optado por una Raspberry Pi 3B en la que ya se ejecutan otros programas

Preparando

  • sudo apt update
  • sudo apt install -y python3 python3-venv python3-dev build-essential
  • python3 --version    # ha de ser 3.11+
    • Python 3.13.5
Instalación

  • Conectar el nodo meshcore a un puerto USB de la rasberry
  • Ejecutar  ls /dev/ttyUSB* /dev/ttyACM* 2>/dev/null
    • Si devuelve algo como  /dev/ttyACM0  todo OK
    • Si no devuelve nada es que no detecta la placa, la causa mas comun es que el cable USB sea unicamente de alimentación y no de datos
  • curl -fsSL https://raw.githubusercontent.com/Cisien/meshcoretomqtt/main/install.sh | sudo bash
    • Installation directory: /opt/mctomqtt (Por defecto)
    • Configuration directory: /etc/mctomqtt (Por defecto)
    • Service account username [mctomqtt]: mctomqtt (Por defecto)
    • ℹ Choose installation method:
    • 1) System service (systemd/launchd) - installs Python dependencies on host
    • 2) Docker container - all dependencies in container (requires docker to be installed) => Se elige esta al disponer ya de docker
    • 3) Manual run only (install files, no auto-start)
    • Solicita el path del USB /dev/ttyACM0
    • Enter your IATA code (3 letters por defecto es BCN - Barceloa, en nuestro cso VLC - Valencia): VLC
      • ✓ IATA code set to: VLC
    • Server hostname/IP: broker.livemap-meshcorecat.com
    • Port [1883]: 8883
    • Use WebSockets transport? [y/N]: y
    • Use TLS/SSL encryption? [y/N]: y
    • Verify TLS certificates? [Y/n]: n
    • ℹ Authentication method:
      • 1) Username/Password
      • 2) MeshCore Auth Token
      • 3) None (anonymous)
      • Choose authentication method [1-3] [1]: 1
        • Username: cat-pub
        • Password: CatMesh2026pub
          • ✓ Broker 1 configured

Gestion del Docker

  •   Start:   docker start mctomqtt
  •   Stop:    docker stop mctomqtt
  •   Status:  
    • docker ps -a | grep mctomqtt
    • sudo docker ps -a | grep mctomqtt

    •   Logs:    docker logs -f mctomqtt
      • 2026-06-30 18:00:09,319 - INFO - Loaded base config from /etc/mctomqtt/config.toml
      • 2026-06-30 18:00:09,324 - INFO - Loading config override: /etc/mctomqtt/config.d/99-user.toml
      • 2026-06-30 18:00:09,330 - INFO - Configuration loaded from TOML
      • 2026-06-30 18:00:09,333 - INFO - IATA: BCN
      • 2026-06-30 18:00:09,334 - INFO - Serial ports: ['/dev/ttyACM0']
      • 2026-06-30 18:00:09,334 - INFO - Brokers configured: 1
      • 2026-06-30 18:00:09,339 - INFO - Connected to /dev/ttyACM0
      • 2026-06-30 18:00:09,346 - WARNING - timedatectl not found — skipping sync check and continuing.
      • 2026-06-30 18:00:10,352 - INFO - Repeater name: VC.V EA5JTT R8
      • 2026-06-30 18:00:11,356 - INFO - Repeater pub key: ...
      • 2026-06-30 18:00:12,365 - INFO - Repeater priv key: D018... (truncated for security)
      • 2026-06-30 18:00:13,369 - INFO - Firmware version: v1.16.0-07a3ca9 (Build: 06-Jun-2026)
      • 2026-06-30 18:00:13,871 - INFO - Board type: LILYGO T-LoRa V2.1-1.6
      • 2026-06-30 18:00:15,378 - INFO - Device stats: {'battery_mv': 4194, 'uptime_secs': 1947, 'debug_flags': 0, 'queue_len': 0, 'noise_floor': -120, 'tx_air_secs': 10, 'rx_air_secs': 15, 'recv_errors': 35}
      • 2026-06-30 18:00:15,379 - INFO - Client version: meshcoretomqtt/1.3.0.0-preview
      • 2026-06-30 18:00:15,380 - INFO - Remote serial: DISABLED
      • Todo OK
    •   Restart: docker restart mctomqtt

    Comprobaciones

    Debe verse en https://www.livemap-meshcorecat.com/ => Analyzer => observadors

    Listado de los observers


    Detalle de un observer concreto


    En el mapa  https://mapa.livemap-meshcorecat.com/ solo sale Catalunya


    Mas

    Un mismo observer puede publicar en "catalunya", que es el ejemplo que hemos visto, pero tambien en otros BROKERS como LetsMesh, MeshMapper, etc.

    MESHMAPPER 

    Editar con sudo nano /etc/mctomqtt/config.d/99-user.toml e incluir a continuación:

    # 2. BROKER MESHMAPPER (WebSockets + TLS + Token)
    [[broker]]
    name = "meshmapper"
    enabled = true
    server = "mqtt.meshmapper.net"
    port = 443
    transport = "websockets"
    keepalive = 60
    qos = 0
    retain = false
    tls = { enabled = true, verify = true }
    auth = { method = "token", audience = "mqtt.meshmapper.net" }"

    Se comprueba que arranca con  docker logs -f mctomqtt y tenemos que ver

    2026-06-30 19:55:29,438 - INFO - [meshmapper] Connected to broker




    LETSMESH 

    Editar con sudo nano /etc/mctomqtt/config.d/99-user.toml e incluir a continuación:

    # 2. BROKER LETSMESH
    [[broker]]
    name = "letsmesh"
    enabled = true
    server = "mqtt-us-v1.letsmesh.net"
    port = 443
    transport = "websockets"
    keepalive = 60
    qos = 0
    retain = false
    tls = { enabled = true, verify = true }
    auth = { method = "token", audience = "mqtt-us-v1.letsmesh.net" }


    Se comprueba que arranca con  docker logs -f mctomqtt y tenemos que ver
    2026-06-30 20:17:18,656 - INFO - [letsmesh] Connecting to mqtt-us-v1.letsmesh.net:443 (transport=websockets, tls=True, keepalive=60s)
    2026-06-30 20:17:18,838 - INFO - [letsmesh] Connected to broker


    Tambien aparece en https://vlc.meshmapper.net/

    MM de MeshMapper y LM de LetsMesh


    Visualizaciones



    Resolucion de problemas

    Si se aborta la instalación, se borran las carpetas y se vuelve a comenzar
    • sudo rm -rf /opt/meshcoretomqtt
    • sudo rm -rf ~/meshcoretomqtt


    Falta de permisos

    permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.45/containers/json?all=1": dial unix /var/run/docker.sock: connect: permission denied

    • sudo usermod -aG docker $USER
    • newgrp docker


    Errores de configuración

    • sudo nano /etc/mctomqtt/config.d/99-user.toml
    [[broker]]
    name = "catalunya"
    enabled = true
    server = "broker.livemap-meshcorecat.com"
    port = 8883
    keepalive = 60
    qos = 0
    retain = true

    [broker.tls]
    enabled = true
    verify = true

    [broker.auth]
    method = "password"
    username = "cat-pub"
    password = "CatMesh2026pub"


    reiniciar hilos

    • docker restart mctomqtt && docker logs -f mctomqtt

    reinicio total

    • sudo systemctl restart docker 
    • docker restart mctomqtt && docker logs -f mctomqtt
    Si tiene mas aplicaciones en docker las tendra que reiniciar de nuevo asi para ADS-B se hará
    • sudo docker restart docker-node-sdr-1
    • sudo docker restart ultrafeeder

    Referencias


    Advertencia importante

    Las modificaciones, configuraciones y procedimientos descritos en este sitio pueden implicar riesgos técnicos, legales o de seguridad. El autor no se responsabiliza del mal funcionamiento de los equipos, daños permanentes, pérdida de garantía ni de posibles infracciones legales derivadas del uso de esta información.
    El lector asume plena responsabilidad por cualquier acción que decida realizar basándose en el contenido de este blog.

    © 2026 EA5JTT. Queda prohibida la reproducción total o parcial sin autorización expresa del autor.




    Tropo vs. Sporadic-E: The VHF/UHF Propagation Dilemma

    If we listen to a transmission on the VHF or UHF bands from a distance greater than what a direct line-of-sight ray provides, we are experiencing sporadic propagation. But has it occurred in the troposphere or in the ionosphere's E-layer?

    Differences in Appearance

    • If it is Sporadic-E (Es): The signal bursts in suddenly but is highly unstable. It will sound perfectly clear for 2 or 3 minutes, after which it will begin to distort deeply and then disappear completely. The phenomenon usually lasts from a few minutes to a couple of hours at most, vanishing without a trace.

    • If it is Tropospheric: The signal is much more stable and progressive. Stations start to be heard with background noise early in the morning or at sunset, gradually increasing in intensity. The signal remains stable on the dial for hours (sometimes entire days) without sudden fading.

    Geographic Distance

    • If it is Sporadic-E: The skip distance is usually between 800 km and a maximum of 2200 km.

    • If it is Tropospheric: The maximum range rarely exceeds 400 or 500 km.

    Geographic Areas

    • If it is Sporadic-E: Signals are received from stations across a very wide geographical area.

    • If it is Tropospheric: It is much more localized.

    Example 1

    On Friday, I was traveling by car, and while scanning the FM band, an Italian station came in (the minimum distance is 795 km) => Sporadic-E.

    Example 2

    On the afternoon of the 29th, my MeshCore client (868 MHz) located in Valencia received signals coming from central Catalonia between 17:57 and 20:05. (A specific area, a distance of around 300 km, and a prolonged opening—the three textbook characteristics of a tropo opening).

    Detailed breakdown of the tropospheric opening on Monday, June 29, 2026, including times (17:57 - 22:11) and distances (256 - 327 km). Map generated with https://geojson.io/

    General overview of the tropospheric opening on Monday, June 29, 2026, on 868 MHz. Generated with https://geojson.io/


    Note the difference in propagation (distance and times) of the tropospheric openings toward the south.



    See also:


    Important Warning The modifications, configurations, and procedures described on this site may involve technical, legal, or security risks. The author is not responsible for equipment malfunction, permanent damage, loss of warranty, or potential legal violations arising from the use of this information. The reader assumes full responsibility for any action they choose to take based on the content of this blog.

    © 2026 EA5JTT. Total or partial reproduction is prohibited without the express authorization of the author.

    ¿Apertura de Tropo o Esporádica-E? El dilema de la propagación en VHF/UHF

    Si escuchamos una transmisión en las bandas de VHF o UHF desde una distancia superior a la que proporciona el rayo directo, nos encontramos ante una propagación excepcional. Pero, ¿se ha producido en la troposfera o en la capa E de la ionosfera?

    Diferencia en su aparición

    • Si es Esporádica-E: La señal entra de golpe pero de forma muy inestable. Se escuchará perfecta durante 2 o 3 minutos, tras lo cual empezará a sufrir una profunda distorsión y desaparecerá por completo. El fenómeno suele durar desde unos minutos hasta un par de horas como mucho, y desaparece sin dejar rastro.

    • Si es Troposférica: La señal es mucho más estable y progresiva. Las emisoras empiezan a escucharse con ruido de fondo a primera hora de la mañana o al atardecer, van subiendo de intensidad poco a poco y se mantienen estables en el dial durante horas (a veces días enteros) sin desvanecimientos bruscos (fading).

    Distancia geográfica

    • Si es Esporádica-E: El salto suele ser de entre 800 km hasta un máximo de 2200 km.

    • Si es Troposférica: El alcance máximo rara vez supera los 400 o 500 km.

    Zonas geográficas

    • Si es Esporádica-E: Se reciben señales de emisoras de una zona geográfica muy amplia.

    • Si es Troposférica: Es mucho más localizada.

    Ejemplo 1

    El viernes viajaba en coche y, escaneando emisoras de FM, entró una emisora italiana (la distancia mínima es de 795 km) => Esporádica-E.

    Ejemplo 2

    La tarde del lunes 29, mi cliente MeshCore (868 MHz) situado en Valencia recibió señales procedentes de la Cataluña central entre las 17:57 y las 20:05 (zona concreta, distancia sobre los 300 km y apertura prolongada: las tres características de una apertura troposférica).

    Detalle de la apertura troposférica del lunes 29/06/2026 en el que se incluyen horas (17:57 - 22:11) y distancias (256 - 327 km). Mapa generado con https://geojson.io/

    Vista general de la esporadica tropo del lunes 29/6/2026 en 868 MHz 
    Generado con 
    https://geojson.io/


    Observe la diferencia de propagacion (distancia y horas)de los tropos hacia el sur.


    Detalle sobre la propagación por troposcatter sobre tierra que es aproximadamente 1/3 de la que se obtiene sobre el mar

    ANEXO

    De las mas de 80 de observaciones de troposcatters en Meshcore 868MHz se observa que no produce desde las 7h00 a las 16h00 hora local (05h00 a 12h00 UTC) hacia el NE (sobre el mar). Se produce el pico a las 04h00




    Desde las 7h00 a las 20h00 hora local (05h00 a 18 h00 UTC) hacia el S (sobre tierra). Se produce el pico a las 05h00

     

    Ver también:


    Advertencia importante Las modificaciones, configuraciones y procedimientos descritos en este sitio pueden implicar riesgos técnicos, legales o de seguridad. El autor no se responsabiliza del mal funcionamiento de los equipos, daños permanentes, pérdida de garantía ni de posibles infracciones legales derivadas del uso de esta información. El lector asume plena responsabilidad por cualquier acción que decida realizar basándose en el contenido de este blog.

    © 2026 EA5JTT. Queda prohibida la reproducción total o parcial sin autorización expresa del autor.


    Estación de enlaces troposfericos en Lefkada (Grecia)

    Antigua estación  de la red  USAF MEDCOM 486L  que conserva las antenas en la isla griega de Lefraka

     
    Imagen satelite actual del emplazamiento en el que se distinguen dos pares de antenas para comunicaciones troposcatter
    Coordenadas (38.734630362435496, 20.64207978361481)
    Fuente: Google Maps



    REferencias

    Ver también

    Otras estaciones de la red de comunicaciones troposcatter:


    Advertencia importante

    Las modificaciones, configuraciones y procedimientos descritos en este sitio pueden implicar riesgos técnicos, legales o de seguridad. El autor no se responsabiliza del mal funcionamiento de los equipos, daños permanentes, pérdida de garantía ni de posibles infracciones legales derivadas del uso de esta información.
    El lector asume plena responsabilidad por cualquier acción que decida realizar basándose en el contenido de este blog.

    © 2026 EA5JTT. Queda prohibida la reproducción total o parcial sin autorización expresa del autor.


    Estación de enlaces troposfericos en Serra de Nogueira (Portugal)

     La estación de enlaces troposfericos en  Serra de Nogueira   (concelho de Bragança, Portugal) conectaba directamente con Francia, hay que recordar que españa en el momento de constituirse esta red no formaba parte de la OTAN/NATO.

    Esta estación enlazaba con la de Artzamendi de 926m de altitud (Francia) con una distancia del enlace de 490 Km en linea recta.

    Disponia de equipos  Thomson dTHC 955, que operaban en la banda de 830-960 MHz con una capacidad de  120 lkineass telefonicas y en este caso con una potencia de 10 kW y parábolas de   27 metros de diâmetro que pesaban 110 toneladas diseñadas para resistir vientos de hasta 220 Km/h





    Imagen de la zona en la actualidad en la que se aprecia una unica antena para troposcattr orientada hacia el NE (Francia)
    Coordenadas (41.7204982423383, -6.853551232563821)
    Fuente: Google Maps





    En la actualidad la antigua estación del enlace troposcatter de Artzamendi (Francia) se ha reconvertido en un radar no quedando resto de las antenas
    Coordenadas (43.283904579021325, -1.4067725195772216)

     Ver también

    Otras estaciones de la red de comunicaciones troposcatter:


    Referencias

    Advertencia importante

    Las modificaciones, configuraciones y procedimientos descritos en este sitio pueden implicar riesgos técnicos, legales o de seguridad. El autor no se responsabiliza del mal funcionamiento de los equipos, daños permanentes, pérdida de garantía ni de posibles infracciones legales derivadas del uso de esta información.
    El lector asume plena responsabilidad por cualquier acción que decida realizar basándose en el contenido de este blog.

    © 2026 EA5JTT. Queda prohibida la reproducción total o parcial sin autorización expresa del autor.





    Estación de enlaces troposfericos AFEZ en Felberg (Alemania)


    Vista actual de Felberg en la que no se aprecian antenas de troposcatter.
    Enlazaba con Dosso del Galli (ITalia)
    Coordenadas (47.87400637847656, 8.004058576966159)
    Fuente: Google Maps


    Plano de las estaciones troposcatter de la NATO en Alemania,
    donde se ve la conexión de AFEZ al sur con Italia



    Foto de archivo de una de las antenas de troposcatter


    Ver también

    Otras estaciones de la red de comunicaciones troposcatter:

    Referencias
    Advertencia importante

    Las modificaciones, configuraciones y procedimientos descritos en este sitio pueden implicar riesgos técnicos, legales o de seguridad. El autor no se responsabiliza del mal funcionamiento de los equipos, daños permanentes, pérdida de garantía ni de posibles infracciones legales derivadas del uso de esta información.
    El lector asume plena responsabilidad por cualquier acción que decida realizar basándose en el contenido de este blog.

    © 2026 EA5JTT. Queda prohibida la reproducción total o parcial sin autorización expresa del autor.

    Estación de enlaces troposfericos FLYZ en Pierre-sur-Haute (Francia)

     

    Pierre-sur-Haute  FLYZ 
    Imagen pixelada (Coordenads 45.653439352507995, 3.8082893867802405, 1459m de altitud)
    Fuente: Google maps

    Ver también

    Otras estaciones de la red de comunicaciones troposcatter:

    Referencias
    Advertencia importante

    Las modificaciones, configuraciones y procedimientos descritos en este sitio pueden implicar riesgos técnicos, legales o de seguridad. El autor no se responsabiliza del mal funcionamiento de los equipos, daños permanentes, pérdida de garantía ni de posibles infracciones legales derivadas del uso de esta información.
    El lector asume plena responsabilidad por cualquier acción que decida realizar basándose en el contenido de este blog.

    © 2026 EA5JTT. Queda prohibida la reproducción total o parcial sin autorización expresa del autor.

    Que se cuece en las bandas de raioaficionado

    La forma tradicional para conocer la actividad en las bandas de radioaficionado pasaba por la escucha, lo cual es una práctica muy aconsejable pero reactiva. Si queremos ser proactivos, podemos realizar una transmisión de pruebas y comprobar dónde y cómo se nos escucha mediante las siguientes herramientas:

    • WSPR: Podemos tener un emisor dedicado o usar la opción de transmitir en este protocolo desde WSJT-X o JTDX, para luego ver cómo y dónde se recibe la señal a través de WSPR APRSinfo , wsprnet o PSK Reporter.

    • CW: Podemos hacer una llamada de compromiso (CQ) y ver hasta dónde y cómo nos escuchan mediante PSK Reporter o la red Reverse Beacon Network.

    • Fonía: Podemos hacer una llamada CQ y entrar de forma individual a un SDR remoto (por ejemplo, de la red KiwiSDR) de la zona con la que queremos contactar, o hacer uso de EchoHunt para comprobarlo con múltiples KiwiSDR de forma simultánea y global.

    • FT8: Podemos utilizar programas como WSJT-X o JTDX para transmitir en este modo y ver en tiempo real el mapa de estaciones que nos reciben a través de PSK Reporter.

    • JS8: con el programa JS8CALL se puede lanzar un HB (HEARTBEAT) que obliga a las estaciones que lo reciben a contestar


    Monitoreo Automático y Redes de Avistamiento (Clusters)

    De forma automática, existen miles de equipos receptores en todo el mundo que informan a servidores centrales sobre las transmisiones recibidas. Un gran ejemplo para monitorizar FT8 y otros modos en vivo es FT8 Live. Otro ejemplo es https://www.dxmaps.com/

    Por último, disponemos de las herramientas conocidas popularmente como DX Clusters, que se alimentan de los reportes de actividad (spots) que proporcionan los propios usuarios o sistemas automáticos:


    Advertencia importante

    Las modificaciones, configuraciones y procedimientos descritos en este sitio pueden implicar riesgos técnicos, legales o de seguridad. El autor no se responsabiliza del mal funcionamiento de los equipos, daños permanentes, pérdida de garantía ni de posibles infracciones legales derivadas del uso de esta información.
    El lector asume plena responsabilidad por cualquier acción que decida realizar basándose en el contenido de este blog.

    © 2026 EA5JTT. Queda prohibida la reproducción total o parcial sin autorización expresa del autor.

    Meshcore: Obsever

    Un  Observer  (Observador) es un nodo MeshCore (repetidor, room server o companion) que escucha el tráfico de la malla cercana e informa a u...