
Firmware pour convertir les radios LoRa grand public en modems KISS TNC avec CLI série, sniffing de paquets BLE, et compatibilité APRS/AX.25 pour le réseau radio par paquets.
MeshTNC est un outil pour transférer des données LoRa vers et depuis des radios grand public.
pio project config | grep '^env:'export FIRMWARE_VERSION="localbuild" ; ./build firmware <device-environment-name>Téléchargez les versions précompilées du firmware - github.com/datapartyjs/MeshTNC/releases
Nous n'avons pas encore créé d'outil de flashage. Vous pouvez flasher les builds à l'aide du flasher meshcore, des outils de flashage fournis par le constructeur, ou en suivant les instructions pour développeurs pour flasher avec VS Code.
MeshTNC est conçu pour les périphériques supportés par MeshCore, vérifiez donc leur liste de support dans le MeshCore Flasher. Nous supportons la plupart du même matériel, voir variants.
Le firmware MeshTNC démarre initialement en mode série, lisible par un humain. Vous pouvez vous connecter à la console série à l'aide d'un terminal série. Vous devrez peut-être configurer le débit en bauds, dont la valeur par défaut est 115200. La commande suivante utilise minicom pour se connecter au port série, veuillez remplacer /dev/ttyACM0 par le nœud de périphérique approprié pour votre port série :
minicom -b 115200 -D /dev/ttyACM0
Il peut être utile sur les systèmes Linux d'exécuter la commande suivante pour définir le débit par défaut lors de l'interaction avec le port série :
stty -F /dev/ttyACM0 115200
Une fois connecté, le périphérique MeshTNC dispose d'une CLI simple. La CLI est très similaire à MeshCore avec quelques ajouts notables.
txraw <hex...> - Transmettre un paquetget syncword <word> - Lire le réglage du syncwordset kiss port <port> - Définir le port du périphérique KISSset radio <freq>,<bw>,<sf>,<coding-rate>,<syncword> - Configurer la radioserial mode kiss - Passer en mode KISSrxlog on - Activer la journalisation des paquets LoRa
[timestamp],[type=RXLOG],[rssi],[snr],[hex...]\nrxlog off - Désactiver la journalisation des paquets LoRarxlog ble on - Activer la journalisation des paquets BLE
[timestamp],[type=RXBLE],[rssi],[snr],[MAC - 6 octets][hex...]\nrxlog ble off - Désactiver la journalisation des paquets BLErebootclock syncstart otaclocktimetempradioclear statsget afget agc.reset.intervalget nameget latget longet radioget rxdelayLe mode KISS permet d'utiliser la radio LoRa comme un modem KISS, ce qui la rend compatible avec de nombreux logiciels radio existants, y compris les logiciels APRS et le noyau Linux.
serial mode kissecho -ne '\xC0\xFF\xC0' > /dev/ttyUSBx
stty

Vous pouvez utiliser vos outils APRS préférés avec MeshTNC. Il vous suffit de sélectionner une fréquence, de passer la radio en mode KISS et de vous connecter à vos outils APRS en tant que périphérique KISS TNC.
minicom -D /dev/ttyACM0
set radio 918.25,500.0,7,5,0x16serial mode kissMeshTNC devrait fonctionner avec de nombreux clients APRS, nous avons testé les suivants :
Une multitude de connaissances et d'exemples sont disponibles ici : https://linux-ax25.in-berlin.de/wiki/AX.25
Il y a beaucoup de choses très intéressantes qui peuvent être faites directement via AX.25 sans impliquer IP, mais l'exemple suivant montrera comment attribuer une adresse IP à l'interface AX.25. Cela peut être fait sur deux machines différentes avec deux MeshTNC, et vous devriez pouvoir effectuer un ping entre elles par liaison radio, à condition que les paramètres radio des MeshTNC correspondent, que les adresses IP attribuées sur chaque système soient dans le même sous-réseau et différentes l'une de l'autre, et que les indicatifs (ou au moins les SSID) diffèrent sur chaque système. Le routage IP fonctionnera également s'il est correctement configuré !
/etc/ax25/axports :
0 AL1CE-1 115200 220 2 Test AX25AL1CE-1 par votre indicatif et SSIDkissattach /dev/ttyACM0 0
sudo dmesg | grep mkiss
[88447.885556] mkiss: ax0: crc mode is auto.ip addr add 10.10.10.10/24 dev ax0
Exécutez les commandes suivantes sur deux ordinateurs ou plus, chacun avec un périphérique MeshTNC attaché, pour créer un réseau Ethernet sur LoRa.
tncattach
git clone https://github.com/markqvist/tncattach.gitcd tncattachmakesudo make installminicom -D /dev/ttyACM0
set radio 916.75,500.0,5,5,0x16serial mode kisssudo tncattach --mtu=230 -e -noipv6 --ipv4=10.10.10.10/24 /dev/ttyACM0 115200sudo tncattach --mtu=230 -e -noipv6 --ipv4=10.10.10.11/24 /dev/ttyACM0 115200get ble - Afficher les paramètres BLEset ble <active_scan>,<filter_dups>,<max_results>,<scantime>
active_scan - on / off - Utiliser ou non le scan actif. Valeur par défaut : offfilter_dups - on / off - Filtrer ou non les doublons. Valeur par défaut : onmax_results - Nombre maximum de résultats par scanscantime - Durée du scan en millisecondesset/get txpower - Le set/get tx de MeshCore a été renommé de manière appropriéeget txdelayget freqset afset int.threshset agc.reset.intervalset nameset radioset latset lonset rxdelayset txdelayset freqeraseverlog startlog stoprxlog onrxlog off