Meshcom
Meshcomは、実際、アマチュア無線オペレーター向けの回復力のあるテキストベースのコミュニケーションツールを作成することを目的とした、宇宙&ワイヤレスコミュニケーション(www.icssw.org)のための市民科学研究所(www.icssw.org)のエキサイティングなプロジェクトです。 LORA™変調技術とAPRSプロトコルを利用して、70cmバンドでメッシュネットワークを確立します。 Meshcomの主な目的は、低エネルギー消費と費用対効果の高いハードウェアを備えた接続されたオフグリッドメッセージングシステムを実現することです。技術的な実装は、LORA™ラジオモジュールに基づいており、メッセージ、位置、測定などを送信することができます。 Meshcomモジュールを接続してメッシュネットワークを形成するか、Meshcom Gatewaysを介してメッセージングネットワークを確立することができます。
基本機能:
- 各ノードは、アマチュアラジオコールサイン(オプションのSSIDを使用)によって識別されます
- Server/GatewayからACKを使用して、短いテストメッセージをすべて(すべての人)に送信できます
- 短いテキストメッセージは、エンドツーエンドaknowledgementを使用して、他のcallignに直接送信できます
- 一部のノードは、hamnetまたはインターネット(WiFi)のゲートウェイとして機能するように構成することができます
- 各ノードは、放送中の他のすべてのMeshcomメッセージのリピーターとして機能する必要があります
- サーバーとゲートウェイには、冗長なトラフィックの送信を避けるための機能がある場合があります
- ノードは自動的にステータスメッセージと位置メッセージを送信します
- オプションのセンサーを備えたノードは、WX-DATAまたはテレメトリーデータを定期的に送信します
- メッセージは、小さなOLEDディスプレイまたはBT接続されたスマートフォンまたはタブレットデバイスを介して、またはUSB接続されたシリアルコンソールを介して外出されます
主な目標は、HamNet(IP-Network)、集中または分散型Meshcomサーバーなどのアマチュア無線サービスの他のコンポーネントによって強化できる自動ビルディングと自己育児メッシュネットワークを持つことです。これにより、すべての大陸へのカバレッジが増加し、他のモードとサービス(APR、WinLink、DMR、TETRA-SDS、SOTA-WATCH、POCSAG、VARA-ACなど)との相互接続が可能になります。特に便利なのは、災害または停電の場合の緊急通信(EMCOM)のMeshcomです。すべてのUSECASESの用語とアマチュア無線サービスの規則(厳密に非商用、実験的)を尊重する必要があります。これは、アカデミックと社会の中でアマチュアラジオサービスを促進するのに役立つオープンな市民科学プロジェクトです。
地域の頻度:
EU:433.175 UK:TBD NORDIC:TBD USA:433.175 Afrika:433.175アジア/太平洋:TBD
LORAパラメーター:
SF:11帯域:250kHz Cr:4/6
APRS-Protokoll:
ドキュメント:http://www.aprs.org/doc/aprs101.pdfアドレス:コールシド、ソース、ターゲット、digi1-5テレメトリー:データ、フォーミュラ、ユニット、…天気、圧力、雨、雨など
ハードウェア:
esp32/lora-modul、rak-wisblock、esp32-dev4/e22-lora、...
Meshcom 4.0ファームウェア
Meshcomは、Lora Radioモジュールを介してテキストメッセージを交換するプロジェクトです。主な目標は、低電力と低コストのハードウェアでネットワーク化されたオフグリッドメッセージングを実現することです。
技術的なアプローチは、メッセージ、位置、測定値、テレコントロールなど、長距離にわたる低いトランスミッションパワーを伴うLORA無線モジュールの使用に基づいています。 Meshcomモジュールを組み合わせてメッシュネットワークを形成できますが、Meshcom Gatewaysを介してメッセージネットワークに接続することもできます。MeshcomGatewaysは、HAMNETを介して理想的な接続されています。これにより、ラジオを介して互いに接続されていないMeshcomラジオネットワークが互いに通信できます。
Meshcomプロトコル
Meshcom 4.0は、APRSで定義されているように、ソース、宛先、デジピアーター、ペイロードデータにAPRSプロトコルリファレンスを使用します。 (APRS101.PDF APRS Protocol Referenceバージョン1.0 2000、12ページ)Meshcom 4.0VerwendetFürDiePayload-Daten Das ax.25 Protokoll、WieEsfürAPRSDefiniert IST。 (APRS101.PDF APRSプロトコルリファレンスバージョン1.0 2000、Seite 12)
条項:
- 識別子 - APRSデータ型識別子
- メッセージID - 32ビットLSB-> MSB一意の値
- マックスホップ - マックス。 7(マスク0x07)デフォルト5が使用され、さらに4つの転送が可能になります。
- 0x80 - このメッセージが既にMQTTサーバーを介して送信されているかどうかについて
- 0x40 - このメッセージを各メッシュクライアントに対して送信ステーションのコールサインで補完する必要があることを識別します。測定および制御の目的で。
- ソースアドレス - このフィールドには、送信ステーションのCallignとSSIDが含まれています
- 宛先アドレス - このフィールドには、APRSの宛先コールサインを含めることができます。
- Digipeater - このフィールドには0〜8のDigipeater Callignsがあります。注:これらのデジピーターアドレスは、一般的なAPRSデジピアーターパス(宛先アドレスのSSIDで指定)によって上書きできます。
- ペイロード - このフィールドには輸送データが含まれています。このフィールドの最初の文字は、APRSデータ型識別子です。これは、どのタイプのペイロードデータが続くかを示します。
- ハードウェアID-以下の表を参照してください
- Lora -Modulation Index -以下の表を参照してください
- フレームチェックシーケンス - FCSは、受信したフレームの完全性を確認するために使用される16ビットのシーケンスです。
メッセージ:
- テキストメッセージ:
- :|!mmmmmmmm |!hh | oe0xxx-99 |>*|:|テキストメッセージ|!00 |!hw |!mod | fcs#
- メッシュからのパス付きのテキストメッセージ:
- :|!mmmmmmmm |!hh | oe0xxx-99、oe3xxx-12、oe3yy-12 |>*|:|テキストメッセージ|!00 |!hw |!mod | fcs#
- ポジションレポート:
- !|!mmmmmmmm |!hh | oe0xxx-99 |>*|!| 4800.00 | n |/| 01600.00 | e |#| bbb /a = hhhh |!00 |!hw |!mod | fcs#
- 伝説:
- | ...ここでテキストの分離を表示するのに役立つのは役立ちます
メッセージ要素
- Medlution ID:! @ ...テキスト、位置、天気メッセージ
- MMMMMMMMメッセージID 32ビットLSB-> MSB
- HH Max-Hop 8ビットマスク0x07
- MQTTサーバービットマスク0x80経由のメッセージ
- メッシュにパスを挿入します(コンマを分離として)ビットマスク0x40
- 4800.00緯度度/小数x 100
- 01600.00 Longidude degrees/decimal x 100
- nノース /サウスチャル
- / APRSシンボルグループ(/または)char
- EE AST / WEST CHAR
- #APRSシンボルチャー
- %int 0-100のBBBバッテリーステータス
- /a = HHHH GPS海面(M)INT 0-9999
- メッセージの完了は、APRSメッセージの範囲を0x00から閉じます
- HW ...ハードウェアタイプID
- mod ... lora変調ID
- FCS#識別子を含むチェックサムとメッセージの完了unsigned int 16ビットからの0x00
- mheardを形成するための追加の情報
- gggggggゲートウェイID(meshcom 2.0互換性のみ)32ビットlsb-> msb
- HWハードウェアID 8ビット(表を参照)
MeshcomハードウェアID
- ハードウェアID HWタイプMCUタイプLORAタイプHWショートネームHWバージョン
- 1 TTGO ESP32 Paxcounter ESP32 SX1278 Tlora V2
- 2 TTGO ESP32 Paxcounter ESP32 SX1278 Tlora V1
- 3 TTGO ESP32 Paxcounter ESP32 SX1278 Tlora V2 1.6
- 4 TTGO T-Beam ESP32 SX1278 T-Beam 1.1
- 5 TTGO T-Beam ESP32 SX1268 T-Beam-1268 1.1 1268
- 6 TTGO T-Beam ESP32 SX1262 T-BEAM-0.7 0.7
- 7 T-ECHO LORA SX1262 NRF SX1262 T-ECHO
- 8 T-DECK ESP32-S3 SX1262 T-DECK
- 9 Wisblock Rak4631 NRF Wisblock NRF RAK4631
- 10 Wifi Lora 32 V2 ESP32 SX1262 HELTEC-V2-1 V2
- 11 Wifi Lora 32 V1 ESP32 SX1276 HELTEC-V1 V1
- 12 TTGO T-Beam ESP32 SX1278 TBEAM-AXP2101
- 39 ebyte lora e22 esp32 sx1278 ebyte-e22
- 43 WiFi Lora 32 V3 ESP32-S3 SX1262 HELTEC-V3 V3
Meshcom LORA変調インデックス
- 0拡張範囲10〜20速い
- 1拡張範囲10-20スロー(堅牢)0.275 kbps
- 2追加の拡張範囲20-40遅い(堅牢)0.183 kbps
- 3通常の範囲5-10スロー(堅牢)
- 4正常範囲5-10高速5,469 kbps
- 5ローカルレンジ0〜5スロー(堅牢)
- 6ローカルレンジ0-5高速21,875 kbps
Platform.io vscodeプラグインの準備
- プラットフォームの下に必要なフレームワークをインストールします。
- espressif 32
- Nordic NRF52バージョン9.6.0(今のところ)
- RAK Wireless Rak4631の正しいボードデフォンションを追加するには、https://github.com/rakwireless/wisblock/blob/master/platformio/readme.mdに従ってください。
フラッシュファームウェア
通常、VSCODEのアップロードボタンを介して直接実行されます。
コマンドライン経由のESP32:
- このタスクには、Esptoolが必要です。
.platformio/tool-esptoolpy/esptool.pyにあるplatform.ioの1つを使用することができます.platformio/penv/bin/python Hidden .platformioディレクトリは、ユーザーディレクトリにあります。
それ以外の場合は、まだインストールされていない場合は、最近のPythonバージョンをインストールしてください。次に、PIP: pip install esptoolを介してEsptoolを取得する必要があります
- firemware.bin、bootloader.bin、およびpartition.binファイルは、meshcom-firmwareリポジトリディレクトリの非表示
.pio/buildディレクトリにコンパイルした後に記述されます。
ファームウェアのみを更新する場合、対応するファイルのみがフラッシュする必要があります。
それぞれのファイルをフラッシュする場所をアドレスします:
| 住所 | ファイル |
|---|
| 0x1000 | bootloader.bin |
| 0x8000 | partitions.bin |
| 0x10000 | firmware.bin |
Mac: python esptool.py -p /dev/tty.usbserial-<NUMBER> write_flash 0x10000 <PATH-TO-BIN-FILE>/firmware.bin
Linux:同じですが、 /devの下のシリアルデバイスはttyUSB0または同様です。
Windows:シリアルデバイスは通常、COMです
Ready Buildファームウェアは、オンラインツール(Chrome、Edge、Opera)を介してフラッシュすることもできます。
https://oe1kfr.com/esptool/
NVSの消去:
ノードに保存されている設定をワイプする場合:
python esptool.py --port <SERIAL-PORT> erase_region 0x009000 0x005000
CLI経由のRak4631:
そのためには、Adafruit nrfutilが必要です。インストールと使用法:
https://github.com/adafruit/adafruit_nrf52_nrfutil
UF2ファイル経由のRAK4631:
モジュールのボタンをダブルクリックすると、USBデバイスをマウントし、.uf2ファイルをモジュールにコピーできます。そのファイルを生成するには、次のPythonスクリプトが必要です。
https://github.com/microsoft/uf2/blob/master/utils/uf2conv.py
./uf2conv.py <PATH_TO-HEX-FILE> -c -o firmware.uf2 -f 0xADA52840