
消費者向け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> - syncword設定を読み取る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でシリアルポートの設定とボーレートが正しく設定されていることを確認してください。

お気に入りのAPRSツールをMeshTNCで使用できます。周波数を選択し、無線機を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アドレスを割り当てる方法を示します。これは2台の異なるマシンに2つのMeshTNCを使用して行うことができ、MeshTNCの無線設定が一致し、各システムに割り当てられたIPアドレスが同じサブネット内で互いに異なり、各システムのコールサイン(または少なくともSSID)が異なる限り、空中でpingが可能になるはずです。適切に設定すればIPルーティングも機能します!
/etc/ax25/axportsを編集します:
0 AL1CE-1 115200 220 2 AX25 testAL1CE-1を自分のコールサインとSSIDに置き換えてください。kissattach /dev/ttyACM0 0を使用してMeshTNCをAX.25ポートに接続します。
sudo dmesg | grep mkiss
[88447.885556] mkiss: ax0: crc mode is auto.ip addr add 10.10.10.10/24 dev ax0を実行してIPアドレスを割り当てることができます。
2台以上のコンピュータ(それぞれにMeshTNCデバイスが接続されている)で以下を実行し、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 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