
Прошивка для преобразования потребительских 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 - отключить журналирование пакетов BLEget 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 были переименованы соответствующим образомrebootclock 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 offРежим 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 также будет работать при правильной настройке!