Maillot
Meshcom est en effet un projet passionnant de l'Institut de Citizen Science for Space & Wireless Communication (www.icsw.org) visant à créer un outil de communication résilient basé sur le texte pour les opérateurs radio amateurs. Il utilise la technologie de modulation LORA ™ et le protocole APRS pour établir un réseau de maillage dans la bande de 70 cm. Les principaux objectifs de Meshcom sont de réaliser un système de messagerie hors réseau connecté avec une faible consommation d'énergie et un matériel rentable. La mise en œuvre technique est basée sur les modules radio LORA ™, qui peuvent transmettre des messages, des positions, des mesures et plus sur de longues distances avec une faible puissance de transmission. Les modules MESHCOM peuvent être connectés pour former un réseau de maillage ou établir un réseau de messagerie via des passerelles MESHCOM, idéalement connectés via Hamnet.
Fonctions de base:
- Chaque nœud est identifié par un indicatif radio amateur (avec SSID facultatif)
- Les messages de test courts peuvent être envoyés à tous (tout le monde), avec ACK du serveur / passerelle
- De courts messages texte peuvent être envoyés directement à un autre indicatif, avec de fin
- Certains nœuds peuvent être configurés pour agir comme passerelle vers Hamnet ou Internet (WiFi)
- Chaque nœud doit agir comme un répéteur pour tous les autres messages Meshcom à l'air
- Les serveurs et les passerelles peuvent avoir des fonctionnalités pour éviter la transmission de la trafic redondant
- Les nœuds enverront automatiquement les messages d'état et de position
- Les nœuds avec des capteurs en option enverront périodiquement les données WX-Data ou Télémétrie
- Les messages seront placés sur un petit écran OLED ou via un smartphone ou une tablette connecté BT ou via une console série connectée USB
L'objectif principal est d'avoir un réseau de maillage d'auto-construction et d'auto-guérison, qui peut être amélioré par d'autres composants du service radio amateur, comme Hamnet (réseau IP), serveurs Meshcom centralisés ou distribués. Cela augmentera la couverture de tous les continents et permettra l'interconnexion à d'autres modes et services (APRS, Winlink, DMR, Tetra-SDS, Sota-watch, POCSAG, VARA-AC,…) construisant un plateau de communication unifié. Particulièrement utile est Meshcom pour la communication d'urgence (EMCOM) en cas de catastrophe ou de panne. Dans tous les termes et règles de la radio amateur (strictement non commerciaux, expérimentaux) devraient être respectés. Il s'agit d'un projet scientifique en plein air qui devrait aider à promouvoir le service de radio amateur au sein des universitaires et de la société.
Fréquence dans la région:
UE: 433.175 Royaume-Uni: TBD Nordic: TBD USA: 433.175 Afrika: 433.175 Asie / Pacifique: TBD
Paramètre LORA:
SF: 11 Bandwith: 250 kHz CR: 4/6
APRS-PROTOKOLL:
Document: http://www.aprs.org/doc/aprs101.pdf Adresse: call-ssid, source, cible, digi1-5 télémétrie: données, formule, unités,… temps: temp, pression, pluie,… le but est d'être entièrement compatible à ap.fi
Matériel:
ESP32 / LORA-MODUL, RAK-WISBLOCK, ESP32-DEV4 / E22-LORA, ...
Firmware MESHCOM 4.0
MESHCOM est un projet pour échanger des messages texte via les modules de radio LORA. L'objectif principal est de réaliser des messages hors réseau en réseau avec un matériel à faible puissance et à faible coût.
L'approche technique est basée sur l'utilisation des modules radio LORA qui transmettent des messages, des positions, des valeurs mesurées, de la téléconstrol et bien plus encore avec une faible puissance de transmission sur de longues distances. Les modules MESHCOM peuvent être combinés pour former un réseau de maillage, mais peuvent également être connectés à un réseau de messages via des passerelles Meshcom, qui sont idéalement connectés via HamNet. Cela permet aux réseaux radio MESHCOM, qui ne sont pas connectés les uns aux autres via la radio, de communiquer entre eux.
Protocole Meshcom
MESHCOM 4.0 utilise la référence du protocole APRS pour les données source, destination, digipeater et charge utile telle que définie pour APRS. (APRS101.PDF APRS Protocol Reference Version 1.0 2000, page 12) Meshcom 4.0 Verwendet Für Die Payload-Daten Das Ax.25 Protokoll, wie es für APRS DÉFINIERT IST. (APRS101.PDF APRS Protocol Reference Version 1.0 2000, Seite 12)
Termes:
- Identifiant - APRS Type de données Identificateur
- ID de message - LSB 32 bits> Valeur unique MSB
- Max-hop - Max. 7 (Masque 0x07) Par défaut 5 est utilisé qui permet 4 autres transferts.
- 0x80 - Id pour savoir si ce message a déjà été envoyé via le serveur MQTT
- 0x40 - Identification que ce message doit être complété pour chaque maillage avec le signal d'appel de la station de transmission. À des fins de mesure et de contrôle.
- Adresse source - Ce champ contient le signal d'appel et le SSID de la station de transmission
- Adresse de destination - Ce champ peut contenir un indicatif d'appel de destination APRS ou
- «*» Pour les transmissions à tous.
- Digipeater - Il peut y avoir 0 à 8 signaux de signalisation Digipeater dans ce domaine. Remarque: Ces adresses Digipeater peuvent être écrasées par un chemin de digileater APRS générique (spécifié par le SSID de l'adresse de destination).
- Charge utile - Ce champ contient des données de transport. Le premier caractère de ce champ est l'identifiant de type de données APRS, qui indique le type de données de charge utile.
- ID matériel - voir le tableau ci-dessous
- Index de la modulation LORA - Voir le tableau ci-dessous
- Séquence de vérification du cadre - Le FCS est une séquence de 16 bits utilisés pour vérifier l'intégrité d'un cadre reçu.
Messages:
- Messages texte:
- : |! MMMMMMMM |! HH | OE0XXX-99 |> * |: | Message texte |! 00 |! HW |! MOD | FCS #
- Messages texte avec chemin à partir de mesh:
- : |! MMMMMMMM |! HH | OE0XXX-99, OE3XXX-12, OE3YYYY-12 |> * |: | Message texte |! 00 |! HW |! Mod | Fcs #
- Rapports de position:
- ! |! MMMMMMMM |! HH | OE0XXX-99 |> * |! | 4800.00 | N | / | 01600.00 | E | # | BBB / A = HHHH |! 00 |! HW |! MOD | FCS #
- Légende:
- | ... ne sert qu'à montrer les séparations ici dans le texte
Éléments de message
- MEDLUTION ID :! @ ... texte, position, message météo
- MMMMMMMM Message ID 32 bits LSB-> MSB
- Masque bit 8 bits HH Max-Hop 0x07
- Message via MQTT Server Bit Mask 0x80
- Insérer le chemin dans Mesh (avec la virgule comme séparation) Masque Bit 0x40
- 4800,00 degrés de latitude / décimal x 100
- 01600.00 Degrés Longidude / décimal x 100
- N CHAR NORD / SOUTH
- / Groupe de symboles APRS (/ ou) char
- EE AST / West Char
- # APRS Symbole Char
- État de la batterie BBB en% int 0 - 100
- / A = HHHH GPS Niveau de la mer (M) Int 0 - 9999
- L'achèvement des messages ferme la plage de messages APRS de 0x00
- HW ... ID de type matériel
- Mod ... ID de modulation Lora
- FCS # Vérification, y compris l'identificateur et 0x00 à partir de l'achèvement du message non signé int 16 bits
- Informations supplémentaires pour former Mheard
- ID de passerelle GGGGGGGG (uniquement pour la compatibilité Meshcom 2.0) LSB 32 bits
- HW matériel ID 8 bits (voir tableau)
ID de matériel MeshCom
- ID de matériel HW Type MCU Type LORA Type HW Nom court HW Version
- 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-PORD ESP32 SX1278 PORD 1,1
- 5 TTGO T-PORD ESP32 SX1268 T-BEAM-1268 1.1 1268
- 6 ttgo toam ESP32 SX1262 T-BEAM-0.7 0.7
- 7 T-Echo Lora SX1262 NRF SX1262 T-Echo
- 8 pont T ESP32-S3 SX1262
- 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-Boam ESP32 SX1278 TBEAM-AXP2101
- 39 EBYTE LORA E22 ESP32 SX1278 EBYTE-E22
- 43 WiFi Lora 32 V3 ESP32-S3 SX1262 HELTEC-V3 V3
Index de modulations MeshCom Lora
- 0 Plage étendue 10-20 rapide
- 1 plage étendue 10-20 lent (robuste) 0,275 kbps
- 2 plage étendue supplémentaire 20-40 lent (robuste) 0,183 kbps
- 3 plage normale 5-10 lent (robuste)
- 4 Plage normale 5-10 Rapide 5 469 kbps
- 5 Plage locale 0-5 Slow (robuste)
- 6 plage locale 0-5 rapide 21 875 kbps
Préparations pour le plugin vscode plateforme.io
- Installez les frameworks nécessaires sous plates-formes:
- Espresstif 32
- Nordic NRF52 Version 9.6.0 (pour l'instant)
- Pour ajouter les correctifs de la carte pour RAK Wireless RAK4631, suivez ces instructions: https://github.com/rakwireless/wisblock/blob/master/platformrio/readme.md
Firmware clignotant
Habituellement, cela se fait via le bouton Télécharger directement dans VScode.
ESP32 via la ligne de commande:
- Pour cette tâche, l'Esptool est nécessaire. Vous pouvez soit utiliser celui de Platform.io qui est situé sur le
.platformio/tool-esptoolpy/esptool.py en plus avec le Venv Python, qui est à: .platformio/penv/bin/python . Le répertoire Hidden .platformio est situé dans votre répertoire utilisateur.
Sinon, s'il n'est pas déjà installé, installez une version Python récente. Ensuite, vous devez obtenir l'Esptool via PIP: pip install esptool
- Le fichier firmware.bin, bootloader.bin et partition.bin est écrit après la compilation du répertoire caché
.pio/build du répertoire Meshcom-Firmware.
Si vous mettez uniquement à mettre à jour le firmware, vous voulez que le fichier correspondant clignote.
Adresse où flasher chacun des fichiers:
| Adresse | Déposer |
|---|
| 0x1000 | bootloader.bin |
| 0x8000 | partitions.bin |
| 0x10000 | firmware.bin |
Mac: python esptool.py -p /dev/tty.usbserial-<NUMBER> write_flash 0x10000 <PATH-TO-BIN-FILE>/firmware.bin
Linux: identique mais en série sous /dev peut être ttyUSB0 ou similaire.
Windows: le périphérique série est généralement un COM
Le firmware Ready Build peut également être flashé via l'outil en ligne (Chrome, Edge, Opera):
https://oe1kfr.com/esptool/
Effacer les NV:
Si vous souhaitez effacer les paramètres stockés sur le nœud:
python esptool.py --port <SERIAL-PORT> erase_region 0x009000 0x005000
RAK4631 via CLI:
Pour ce faire, vous avez besoin du nrfutil adafruit. Installation et utilisation:
https://github.com/adafruit/adafruit_nrf52_nrfutil
RAK4631 via le fichier UF2:
Lorsque vous double-cliquez sur le bouton du module, il monte un périphérique USB où vous pouvez copier un fichier .uf2 sur le module. Pour générer ce fichier, vous avez besoin du script Python suivant:
https://github.com/microsoft/uf2/blob/master/utils/uf2conv.py
./uf2conv.py <PATH_TO-HEX-FILE> -c -o firmware.uf2 -f 0xADA52840