
Firmware para converter rádios LoRa comerciais em modems KISS TNC com CLI serial, sniffer de pacotes BLE e compatibilidade com APRS/AX.25 para redes de rádio de pacotes.
MeshTNC é uma ferramenta para transportar dados LoRa de e para rádios de consumo.
pio project config | grep '^env:'export FIRMWARE_VERSION="localbuild" ; ./build firmware <device-environment-name>Baixe versões pré-compiladas do firmware - github.com/datapartyjs/MeshTNC/releases
Ainda não construímos uma ferramenta de gravação. Pode gravar as compilações usando o flasher meshcore, as ferramentas de gravação fornecidas pelo fabricante ou seguindo as instruções para desenvolvedores para gravar usando VS Code.
MeshTNC foi projetado para dispositivos suportados pelo MeshCore, então verifique a lista de suporte deles no MeshCore Flasher. Suportamos a maioria dos mesmos hardwares, veja variants.
O firmware MeshTNC inicia inicialmente em um modo serial legível por humanos. Pode conectar-se ao console serial usando um aplicativo de terminal serial. Pode ser necessário configurar a taxa de transmissão (baud rate), que por padrão é 115200. O seguinte comando usa minicom para conectar-se à porta serial, por favor substitua /dev/ttyACM0 pelo nó de dispositivo adequado para sua porta serial:
minicom -b 115200 -D /dev/ttyACM0
Pode ser útil em sistemas Linux executar o seguinte comando para definir o baud padrão ao interagir com a porta serial:
stty -F /dev/ttyACM0 115200
Uma vez conectado, o dispositivo MeshTNC possui uma CLI simples. A CLI é em grande parte semelhante à do MeshCore, com algumas adições notáveis.
txraw <hex...> - Transmitir um pacoteget syncword <word> - Ler a configuração da syncwordset kiss port <port> - Definir a porta do dispositivo KISSset radio <freq>,<bw>,<sf>,<coding-rate>,<syncword> - Configurar o rádioserial mode kiss - Mudar para modo KISSrxlog on - ativar registro de pacotes LoRa
[timestamp],[type=RXLOG],[rssi],[snr],[hex...]\nrxlog off - desativar registro de pacotes LoRarxlog ble on - ativar registro de pacotes BLE
[timestamp],[type=RXBLE],[rssi],[snr],[MAC - 6 octetos][hex...]\nrxlog ble off - desativar registro de pacotes BLErebootclock syncstart otaclocktimetempradioclear statsget afget agc.reset.intervalget nameget latget longet radioget rxdelayO modo KISS permite operar o rádio LoRa como um modem KISS, o que o torna compatível com muitos softwares de rádio pré-existentes, incluindo software APRS e o kernel Linux.
serial mode kissecho -ne '\xC0\xFF\xC0' > /dev/ttyUSBx
stty

Pode usar suas ferramentas APRS favoritas com MeshTNC. Simplesmente selecione uma frequência, coloque o rádio em modo kiss e conecte-se às suas ferramentas APRS como um dispositivo KISS TNC.
minicom -D /dev/ttyACM0
set radio 918.25,500.0,7,5,0x16serial mode kissMeshTNC deve funcionar com muitos clientes APRS; testamos nos seguintes:
Há uma grande quantidade de conhecimento e exemplos disponíveis aqui: https://linux-ax25.in-berlin.de/wiki/AX.25
Há muitas coisas interessantes que podem ser feitas diretamente sobre AX.25 sem envolver IP, mas o exemplo a seguir demonstrará como atribuir um endereço IP à interface AX.25. Isso pode ser feito em duas máquinas diferentes com dois MeshTNCs, e você deve conseguir pingar entre elas pelo ar, desde que as configurações de rádio nos MeshTNCs coincidam, os endereços IP atribuídos em cada sistema estejam na mesma sub-rede e sejam diferentes um do outro, e os indicativos (ou pelo menos os SSIDs) difiram em cada sistema. O roteamento IP também funcionará se configurado corretamente!
/etc/ax25/axports:
0 AL1CE-1 115200 220 2 AX25 testAL1CE-1 pelo seu 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
Execute o seguinte em dois ou mais computadores, cada um com um dispositivo MeshTNC conectado, para criar uma rede Ethernet sobre 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 - exibir configurações BLEset ble <active_scan>,<filter_dups>,<max_results>,<scantime>
active_scan - on / off - Se deve usar escaneamento ativo. Padrão: offfilter_dups - on / off - Se deve filtrar duplicatas. Padrão: onmax_results - Número máximo de resultados por escaneamentoscantime - Número de milissegundos para escanearset/get txpower - O set/get tx do MeshCore foi renomeado adequadamenteget txdelayget freqset afset int.threshset agc.reset.intervalset nameset radioset latset lonset rxdelayset txdelayset freqeraseverlog startlog stoprxlog onrxlog off