
Firmware per convertire radio LoRa consumer in modem KISS TNC con CLI seriale, packet sniffing BLE e compatibilità APRS/AX.25 per reti radio a pacchetto.
MeshTNC è uno strumento per instradare dati LoRa da e verso radio di livello consumer.
pio project config | grep '^env:'export FIRMWARE_VERSION="localbuild" ; ./build firmware <device-environment-name>Scarica i rilasci di firmware precompilati - github.com/datapartyjs/MeshTNC/releases
Non abbiamo ancora costruito uno strumento di flashing. Puoi flashare le build usando il flasher meshcore, gli strumenti di flashing forniti dall'OEM o seguendo le istruzioni per sviluppatori per flashare usando VS Code.
MeshTNC è progettato per dispositivi supportati da MeshCore, quindi controlla la loro lista di supporto in MeshCore Flasher. Supportiamo la maggior parte dello stesso hardware, vedi varianti.
Il firmware MeshTNC si avvia inizialmente in una modalità seriale leggibile dall'utente. Puoi connetterti alla console seriale usando un'applicazione terminale seriale. Potrebbe essere necessario configurare il baud rate, che per impostazione predefinita è 115200. Il comando seguente usa minicom per connettersi alla porta seriale, per favore sostituisci /dev/ttyACM0 con il nodo del dispositivo appropriato per la tua porta seriale:
minicom -b 115200 -D /dev/ttyACM0
Potrebbe essere utile sui sistemi Linux eseguire il seguente comando per impostare il baud predefinito quando si interagisce con la porta seriale:
stty -F /dev/ttyACM0 115200
Una volta connesso, il dispositivo MeshTNC ha una semplice CLI. La CLI è in gran parte simile a MeshCore con alcune notevoli aggiunte.
txraw <hex...> - Trasmetti un pacchettoget syncword <word> - Leggi l'impostazione della syncwordset kiss port <port> - Imposta la porta del dispositivo KISSset radio <freq>,<bw>,<sf>,<coding-rate>,<syncword> - Configura la radioserial mode kiss - Passa alla modalità KISSrxlog on - attiva il logging dei pacchetti LoRa
[timestamp],[type=RXLOG],[rssi],[snr],[hex...]\nrxlog off - disattiva il logging dei pacchetti LoRarxlog ble on - attiva il logging dei pacchetti BLE
[timestamp],[type=RXBLE],[rssi],[snr],[MAC - 6 octets][hex...]\nrxlog ble off - disattiva il logging dei pacchetti BLErebootclock syncstart otaclocktimetempradioclear statsget afget agc.reset.intervalget nameget latget longet radioget rxdelayLa modalità KISS consente di utilizzare la radio LoRa come modem KISS, rendendola compatibile con molti software radio esistenti, incluso il software APRS e il kernel Linux.
serial mode kissecho -ne '\xC0\xFF\xC0' > /dev/ttyUSBx
stty

Puoi usare i tuoi strumenti APRS preferiti con MeshTNC. Basta selezionare una frequenza, mettere la radio in modalità kiss e connetterti ai tuoi strumenti APRS come dispositivo KISS TNC.
minicom -D /dev/ttyACM0
set radio 918.25,500.0,7,5,0x16serial mode kissMeshTNC dovrebbe funzionare con molti client APRS, abbiamo testato sui seguenti:
C'è una ricchezza di conoscenza ed esempi disponibili qui: https://linux-ax25.in-berlin.de/wiki/AX.25
Ci sono molte cose molto interessanti che possono essere fatte direttamente su AX.25 senza coinvolgere IP, ma il seguente esempio mostrerà come assegnare un indirizzo IP all'interfaccia AX.25. Questo può essere fatto su due macchine diverse con due MeshTNC, e dovresti essere in grado di eseguire il ping tra di loro via etere, purché le impostazioni radio sui MeshTNC corrispondano, gli indirizzi IP assegnati su ogni sistema siano nella stessa sottorete e diversi tra loro, e gli indicativi (o almeno gli SSID) differiscano su ogni sistema. Il routing IP funzionerà anche se configurato correttamente!
/etc/ax25/axports:
0 AL1CE-1 115200 220 2 AX25 testAL1CE-1 con il tuo indicativo e 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
Esegui quanto segue su due o più computer, ciascuno con un dispositivo MeshTNC collegato, per creare una rete ethernet su 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 - mostra le impostazioni BLEset ble <active_scan>,<filter_dups>,<max_results>,<scantime>
active_scan - on / off - Se usare la scansione attiva. Predefinito a offfilter_dups - on / off - Se filtrare i duplicati. Predefinito a onmax_results - Numero massimo di risultati per scansionescantime - Numero di millisecondi per la scansioneset/get txpower - Il comando set/get tx di MeshCore è stato rinominato appropriatamenteget txdelayget freqset afset int.threshset agc.reset.intervalset nameset radioset latset lonset rxdelayset txdelayset freqeraseverlog startlog stoprxlog onrxlog off