
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 BLEget 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 adequadamenterebootclock syncstart otaclocktimetempradioclear statsget afget agc.reset.intervalget nameget latget longet radioget rxdelayget txdelayget freqset afset int.threshset agc.reset.intervalset nameset radioset latset lonset rxdelayset txdelayset freqeraseverlog startlog stoprxlog onrxlog offO 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