
Прошивка для преобразования потребительских LoRa-радиостанций в модемы KISS TNC с последовательным CLI, сниффингом пакетов BLE и совместимостью с APRS/AX.25 для пакетной радиосвязи.
MeshTNC — это инструмент для передачи данных LoRa между потребительскими радиостанциями.
pio project config | grep '^env:'export FIRMWARE_VERSION="localbuild" ; ./build firmware <device-environment-name>Загрузите предварительно скомпилированные релизы прошивки - github.com/datapartyjs/MeshTNC/releases
Мы еще не создали инструмент для прошивки. Вы можете прошить сборки с помощью прошивальщика meshcore, инструментов прошивки от OEM или следуя инструкциям для разработчиков по прошивке через VS Code.
MeshTNC разработан для устройств, поддерживаемых MeshCore, поэтому ознакомьтесь со списком поддерживаемых устройств в MeshCore Flasher. Мы поддерживаем большинство того же оборудования, смотрите variants.
Прошивка MeshTNC изначально запускается в последовательном режиме, который читается человеком. Вы можете подключиться к последовательной консоли с помощью приложения последовательного терминала. Возможно, потребуется настроить скорость передачи данных, по умолчанию 115200. Следующая команда использует minicom для подключения к последовательному порту, пожалуйста, замените /dev/ttyACM0 на правильный узел устройства для вашего последовательного порта:
minicom -b 115200 -D /dev/ttyACM0
На системах Linux может быть полезно выполнить следующую команду для установки скорости по умолчанию при взаимодействии с последовательным портом:
stty -F /dev/ttyACM0 115200
После подключения устройство MeshTNC имеет простой CLI. CLI во многом похож на MeshCore, но с несколькими заметными дополнениями.
txraw <hex...> - Передать пакетget syncword <word> - Прочитать настройку syncwordset kiss port <port> - Установить порт устройства KISSset radio <freq>,<bw>,<sf>,<coding-rate>,<syncword> - Настроить радиоserial mode kiss - Переключиться в режим KISSrxlog on - включить журналирование пакетов LoRa
[timestamp],[type=RXLOG],[rssi],[snr],[hex...]\nrxlog off - отключить журналирование пакетов LoRarxlog ble on - включить журналирование пакетов BLE
[timestamp],[type=RXBLE],[rssi],[snr],[MAC - 6 octets][hex...]\nrxlog ble off - отключить журналирование пакетов BLErebootclock syncstart otaclocktimetempradioclear statsget afget agc.reset.intervalget nameget latget longet radioget rxdelayРежим KISS позволяет использовать радио LoRa в качестве KISS-модема, что делает его совместимым со многими существующими радио-программами, включая APRS-программы и ядро Linux.
serial mode kissecho -ne '\xC0\xFF\xC0' > /dev/ttyUSBx
stty

Вы можете использовать свои любимые APRS-инструменты с MeshTNC. Просто выберите частоту, переведите радио в режим kiss и подключитесь к APRS-инструментам как устройство KISS TNC.
minicom -D /dev/ttyACM0
set radio 918.25,500.0,7,5,0x16serial mode kissMeshTNC должен работать со многими APRS-клиентами, мы тестировали на следующих:
Богатый набор знаний и примеров доступен здесь: https://linux-ax25.in-berlin.de/wiki/AX.25
Существует множество очень интересных вещей, которые можно делать напрямую через AX.25 без использования IP, но следующий пример покажет, как назначить IP-адрес интерфейсу AX.25. Это можно сделать на двух разных машинах с двумя MeshTNC, и вы сможете пинговать друг друга по воздуху, при условии что настройки радио на обеих MeshTNC совпадают, IP-адреса, назначенные на каждой системе, находятся в одной подсети и отличаются друг от друга, а позывные (или хотя бы SSID) на каждой системе разные. Маршрутизация IP также будет работать при правильной настройке!
/etc/ax25/axports:
0 AL1CE-1 115200 220 2 AX25 testAL1CE-1 на ваш позывной и 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
Выполните следующее на двух или более компьютерах, каждый с подключенным устройством MeshTNC, чтобы создать сеть Ethernet через 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 - вывести настройки BLEset ble <active_scan>,<filter_dups>,<max_results>,<scantime>
active_scan - on / off - Использовать ли активное сканирование. По умолчанию offfilter_dups - on / off - Фильтровать ли дубликаты. По умолчанию onmax_resulrs - Максимальное количество результатов за сканированиеscantime - Количество миллисекунд для сканированияset/get txpower - Команды set/get tx от MeshCore были переименованы соответствующим образомget txdelayget freqset afset int.threshset agc.reset.intervalset nameset radioset latset lonset rxdelayset txdelayset freqeraseverlog startlog stoprxlog onrxlog off