Meshcom
Meshcom es de hecho un proyecto emocionante del Instituto de Ciencias Ciudadanas para el Espacio y la Comunicación Inalámbrica (www.icssw.org) destinado a crear una herramienta de comunicación resistente basada en texto para operadores de radioaficionados. Utiliza la tecnología de modulación Lora ™ y el protocolo APRS para establecer una red de malla en la banda de 70 cm. Los objetivos principales de Meshcom son realizar un sistema de mensajería fuera de la red conectado con bajo consumo de energía y hardware rentable. La implementación técnica se basa en los módulos de radio Lora ™, que pueden transmitir mensajes, posiciones, mediciones y más a largas distancias con baja potencia de transmisión. Los módulos de Meshcom se pueden conectar para formar una red de malla o establecer una red de mensajería a través de las puertas de enlace de Meshcom, idealmente conectados a través de Hamnet.
Funciones básicas:
- Cada nodo se identifica mediante un indicador de radio amateur (con SSID opcional)
- Se pueden enviar mensajes de prueba cortos a todos (todos), con ACK desde el servidor/puerta de enlace
- Los mensajes de texto cortos se pueden enviar directamente a otro indicador de llamadas, con el gusto de fin de arriba.
- Algunos nodos pueden estar configurados para actuar como puerta de enlace a Hamnet o Internet (WiFi)
- Cada nodo debe actuar como repetidor para todos los demás mensajes de Meshcom en el aire
- Los servidores y las puertas de enlace pueden tener algunas funcionalidades para evitar la transmisión de Trafic redundante
- Los nodos enviarán automáticamente mensajes de estado y posición
- Los nodos con sensores opcionales enviarán datos WX o de telemetría periódicamente
- Los mensajes se batirán en una pequeña pantalla OLED o mediante un teléfono inteligente o tableta conectado BT o mediante una consola serie conectada con USB
El objetivo principal es tener una red de malla de autoconstrucción y autoehalado, que puede ser mejorado por otros componentes del servicio de radioaficionado, como Hamnet (Network IP), servidores de Meshcom centralizados o distribuidos. Esto aumentará la cobertura a todos los continentes y habilitará la interconexión a otros modos y servicios (APRS, Winlink, DMR, Tetra-SDS, SOTA-WATCH, POCSAG, VARA-AC, ...) Construyendo una plattform de comunicación unificada. Particulario útil es Meshcom para la comunicación de emergencia (EMCOM) en caso de desastre o apagón. En todos los usos de uso, se deben respetar los términos y reglas del servicio de radioaficionados (estrictamente no comerciales, experimentales). Este es un proyecto de ciencias ciudadanas abiertas que debería ayudar a promover el servicio de radioaficionado en el académico y la sociedad.
Frecuencia en la región:
UE: 433.175 Reino Unido: TBD Nordic: TBD USA: 433.175 Afrika: 433.175 Asia/Pacífico: TBD
Parámetro Lora:
SF: 11 Bandwith: 250kHz CR: 4/6
APRS-Protokoll:
Documento: http://www.aprs.org/doc/aprs101.pdf Dirección: Call-ssid, Fuente, Target, Digi1-5 Telemetría: datos, fórmula, unidades, ... clima: temperatura, presión, lluvia, ... AIMS debe ser completamente compatible a APRS.Fi
Hardware:
ESP32/LORA-MODUL, RAK-WISBLOCK, ESP32-DEV4/E22-LORA, ...
Firmware de Meshcom 4.0
Meshcom es un proyecto para intercambiar mensajes de texto a través de módulos de radio Lora. El objetivo principal es realizar mensajes fuera de la red en red con baja potencia y hardware de bajo costo.
El enfoque técnico se basa en el uso de módulos de radio Lora que transmiten mensajes, posiciones, valores medidos, telecontrol y mucho más con baja potencia de transmisión a largas distancias. Los módulos de Meshcom se pueden combinar para formar una red de malla, pero también se pueden conectar a una red de mensajes a través de las puertas de enlace de Meshcom, que están idealmente conectadas a través de Hamnet. Esto permite que las redes de radio Meshcom, que no están conectadas entre sí a través de la radio, se comuniquen entre sí.
Protocolo de Meshcom
Meshcom 4.0 utiliza la referencia del protocolo APRS para los datos de origen, destino, digipente y carga útil según lo definido para APRS. (APRS101.PDF APRS Protocolo Reference Versión 1.0 2000, página 12) Meshcom 4.0 Verwendet für Die Payload Daten-Das Ax.25 Protokoll, Wie es für Aprs Defintiert ist. (APRS101.PDF APRS Protocol Reference Versión 1.0 2000, SEITE 12)
Términos:
- Identificador - APRS Tipo de datos Identificador
- ID de mensaje-Valor único de 32 bits LSB-> MSB
- Max-Hop-Max. Se utiliza 7 (máscara 0x07) predeterminado 5, lo que permite otras 4 transferencias.
- 0x80 - ID en cuanto a si este mensaje ya se ha enviado a través del servidor MQTT
- 0x40 - Identificación de que este mensaje debe complementarse para cada mallient con el signo de llamada de la estación de transmisión. Para fines de medición y control.
- Dirección de origen: este campo contiene el indicador de llamadas y el SSID de la estación de transmisión
- Dirección de destino: este campo puede contener un signo de llamada de destino APRS o
- "*" Para transmisiones a todos.
- DIGIPEATOR: puede haber 0 a 8 indicadores de digipeater en este campo. Nota: Estas direcciones de digipeater se pueden sobrescribir mediante una ruta genérica de digipeater APRS (especificada por el SSID de la dirección de destino).
- Carga útil: este campo contiene datos de transporte. El primer carácter de este campo es el identificador de tipo de datos APRS, que indica qué tipo de datos de carga útil siguen.
- ID de hardware: ver la tabla a continuación
- Índice de modulación de Lora - consulte la tabla a continuación
- Secuencia de verificación de cuadro: el FCS es una secuencia de 16 bits utilizados para verificar la integridad de un marco recibido.
Mensajes:
- Mensajes de texto:
- Mensajes de texto con ruta desde malla:
- Informes de posición:
- ! | Bbb /a = hhhh |! 00 |! Hw |! Mod | fcs#
- Leyenda:
- | ... Solo sirve para mostrar las separaciones aquí en el texto
Elementos de mensaje
- ID de Medlution :! @ ... texto, posición, mensaje meteorológico
- ID de mensaje MMMMMMM LSB-> MSB de 32 bits
- Máscara de bits de 8 bits HH Max-Hop 0x07
- Mensaje a través de MQTT Server Bit Mask 0x80
- Inserte la ruta en la máscara de bits de malla (con coma como separación) 0x40
- 4800.00 grados de latitud/decimal x 100
- 01600.00 Longidude grados/decimal x 100
- N North / South Char
- / Grupo de símbolos APRS (/ o) char
- EE AST / WEST CHAR
- # Símbolo de APRS Char
- Estado de la batería BBB en % int 0 - 100
- /A = HHHH GPS Level (M) int 0 - 9999
- La finalización del mensaje cierra el rango de mensajes APRS de 0x00
- HW ... ID de tipo de hardware
- Mod ... ID de modulación Lora
- SUMA DE CHECKS FCS# que incluye el identificador y 0x00 desde la finalización del mensaje sin firmar int 16 bits
- Información adicional para formar mHeard
- ID de puerta de enlace GGGGGGGGG (solo para la compatibilidad de Meshcom 2.0) LSB-> MSB de 32 bits
- ID de hardware HW 8 bits (ver tabla)
ID de hardware de Meshcom
- ID de hardware HW Tipo MCU Tipo Lora Tipo HW Nombre corto HW Versión
- 1 TTGO ESP32 Paxcounter ESP32 SX1278 Tlora V2
- 2 TTGO ESP32 Paxcounter ESP32 SX1278 Tlora V1
- 3 TTGO ESP32 Paxcounter ESP32 SX1278 Tlora V2 1.6
- 4 TTGO T-BEAM ESP32 SX1278 T-Vigue 1.1
- 5 TTGO T-BEAM ESP32 SX1268 T-1268 1.1 1268
- 6 TTGO T-BEAM ESP32 SX1262 T-0.7 0.7
- 7 t-eco lora sx1262 nrf sx1262 t-eco
- 8 T-Deck ESP32-S3 SX1262 T-Deck
- 9 WISBLOCK RAK4631 NRF WISBLOCK NRF RAK4631
- 10 Wifi Lora 32 V2 ESP32 SX1262 Heltec-V2-1 V2
- 11 Wifi Lora 32 V1 ESP32 SX1276 Heltec-V1 V1
- 12 TTGO T-BEAM ESP32 SX1278 TBEAM-AXP2101
- 39 Ebyte Lora E22 ESP32 SX1278 Ebyte-E22
- 43 Wifi Lora 32 V3 ESP32-S3 SX1262 HELTEC-V3 V3
Índice de modulaciones de Meshcom Lora
- 0 Rango extendido 10-20 rápido
- 1 rango extendido 10-20 lento (robusto) 0.275 kbps
- 2 rango extendido adicional 20-40 lento (robusto) 0.183 kbps
- 3 Rango normal 5-10 lento (robusto)
- 4 rango normal 5-10 rápido 5.469 kbps
- 5 rango local 0-5 lento (robusto)
- 6 rango local 0-5 rápido 21,875 kbps
Preparaciones para el complemento VSCODE Platform.io
- Instale los marcos necesarios en plataformas:
- Espressif 32
- Nordic NRF52 versión 9.6.0 (por ahora)
- Para agregar las definiciones correctas de la placa para RAK Wireless RAK4631 siga estas instrucciones: https://github.com/rakwireless/wisblock/blob/master/platformio/readme.md
Firmware intermitente
Por lo general, se realiza a través del botón de carga en VScode directamente.
ESP32 a través de la línea de comandos:
- Para esta tarea se necesita el Esptool. Puede usar el uno de Platform.io que se encuentra en el
.platformio/tool-esptoolpy/esptool.py además de Python Venv, que está en: .platformio/penv/bin/python . El directorio Hidden .platformio se encuentra en su directorio de usuario.
De lo contrario, si aún no está instalado, instale una versión reciente de Python. Luego necesita obtener el Esptool a través de PIP: pip install esptool
- El archivo Firmware.bin, Bootloader.bin y Partition.bin se escribe después de compilar el directorio
.pio/build oculto del directorio de repo de Meshcom-Cirmware.
Si solo actualiza el firmware, solo desea que el archivo correspondiente flash.
Adesiva dónde flashear cada uno de los archivos:
| DIRECCIÓN | Archivo |
|---|
| 0x1000 | bootloader.bin |
| 0x8000 | Partición. Bin |
| 0x10000 | firmware.bin |
Mac: python esptool.py -p /dev/tty.usbserial-<NUMBER> write_flash 0x10000 <PATH-TO-BIN-FILE>/firmware.bin
Linux: mismo pero el dispositivo serie debajo /dev puede ser ttyUSB0 o similar.
Windows: el dispositivo en serie suele ser un com
El firmware de compilación listo también se puede flashear a través de la herramienta en línea (Chrome, Edge, Opera):
https://oe1kfr.com/esptool/
Borrando el NVS:
Si desea borrar la configuración almacenada en el nodo:
python esptool.py --port <SERIAL-PORT> erase_region 0x009000 0x005000
RAK4631 VIA CLI:
Para hacerlo, necesitas el Adafruit Nrfutil. Instalación y uso:
https://github.com/adafruit/adafruit_nrf52_nrfutil
RAK4631 a través del archivo UF2:
Cuando haga doble clic en el botón en el módulo, monta un dispositivo USB donde puede copiar un archivo .uf2 en el módulo. Para generar ese archivo, necesita el siguiente script de Python:
https://github.com/microsoft/uf2/blob/master/utils/uf2conv.py
./uf2conv.py <PATH_TO-HEX-FILE> -c -o firmware.uf2 -f 0xADA52840