
소비자용 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> - 동기화 단어 설정 읽기set kiss port <port> - KISS 장치 포트 설정set radio <freq>,<bw>,<sf>,<coding-rate>,<syncword> - 라디오 구성serial mode kiss - KISS 모드로 전환rxlog on - LoRa 패킷 로깅 활성화
[timestamp],[type=RXLOG],[rssi],[snr],[hex...]\nrxlog off - LoRa 패킷 로깅 비활성화rxlog ble on - BLE 패킷 로깅 활성화
[timestamp],[type=RXBLE],[rssi],[snr],[MAC - 6 octets][hex...]\nrxlog ble off - BLE 패킷 로깅 비활성화get ble - BLE 설정 덤프rebootclock syncstart otaclocktimetempradioclear statsget afget agc.reset.intervalget nameget latget longet radioget rxdelayKISS 모드를 사용하면 LoRA 라디오를 KISS 모뎀으로 작동할 수 있어 APRS 소프트웨어 및 Linux 커널을 포함한 많은 기존 라디오 소프트웨어와 호환됩니다.
serial mode kissecho -ne '\xC0\xFF\xC0' > /dev/ttyUSBx
stty를 사용하여 시리얼 포트의 설정과 전송 속도가 올바르게 설정되었는지 확인하십시오.

MeshTNC와 함께 선호하는 APRS 도구를 사용할 수 있습니다. 주파수를 선택하고 라디오를 KISS 모드로 전환한 다음 KISS TNC 장치로 APRS 도구에 연결하십시오.
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
IP를 사용하지 않고 AX.25를 통해 직접 수행할 수 있는 매우 흥미로운 작업이 많지만, 다음 예제에서는 AX.25 인터페이스에 IP 주소를 할당하는 방법을 보여줍니다. 두 대의 다른 컴퓨터에 두 개의 MeshTNC를 사용하여 이 작업을 수행할 수 있으며, MeshTNC의 라디오 설정이 일치하고, 각 시스템에 할당된 IP 주소가 동일한 서브넷에 있고 서로 다르며, 각 시스템의 호출 부호(또는 적어도 SSID)가 다른 경우 공중파를 통해 ping을 할 수 있어야 합니다. 올바르게 구성되면 IP 라우팅도 작동합니다!
/etc/ax25/axports를 편집합니다:
0 AL1CE-1 115200 220 2 AX25 testAL1CE-1을 자신의 호출 부호와 SSID로 바꾸십시오.kissattach /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
LoRa를 통한 이더넷 네트워크를 만들려면 각각 MeshTNC 장치가 연결된 두 대 이상의 컴퓨터에서 다음을 실행하십시오.
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 115200set ble <active_scan>,<filter_dups>,<max_results>,<scantime>
active_scan - on / off - 능동 스캔 사용 여부 기본값은 offfilter_dups - on / off - 중복 필터링 여부 기본값은 onmax_results - 스캔당 최대 결과 수scantime - 스캔 시간(밀리초)set/get txpower - MeshCore의 set/get tx가 적절하게 이름이 변경되었습니다.get txdelayget freqset afset int.threshset agc.reset.intervalset nameset radioset latset lonset rxdelayset txdelayset freqeraseverlog startlog stoprxlog onrxlog off