Skip to content

Latest commit

 

History

History
292 lines (189 loc) · 21.5 KB

File metadata and controls

292 lines (189 loc) · 21.5 KB

MeshCore JP ファームウェア

jirogit/MeshCore の日本向けビルドです。
ARIB STD-T108(920MHz帯)準拠の LBT(Listen Before Talk)実装 を含みます。

本家 meshcore-dev/MeshCore へのPR #2218 がマージされるまでの、日本ユーザー向け暫定ビルドです。


👉 まずはこれだけ読めば始められます: QUICKSTART_JP.md


📥 ファームウェアのダウンロードと書き込み

最新リリース → Releases ページ

デバイス MCU Radio ファイル 書き込み方法
WisMesh Tag nRF52840 SX1262 RAK_WisMesh_Tag_companion_radio_ble-jp-v*.uf2 ✅ UF2ドラッグ&ドロップ
T1000-E nRF52840 LR1110 t1000e_companion_radio_ble-jp-v*.uf2 ✅ UF2ドラッグ&ドロップ
T-Echo Lite nRF52840 SX1262 LilyGo_T-Echo-Lite_companion_radio_ble-jp-v*.uf2 ✅ UF2ドラッグ&ドロップ
XIAO nRF52840 nRF52840 SX1262 Xiao_nrf52_companion_radio_ble-jp-v*.uf2 ✅ UF2ドラッグ&ドロップ

両デバイスとも MCU は nRF52840 のため、どちらのフォーマットでも書き込めます。
初心者には .uf2(ドラッグ&ドロップ)を推奨します。


⚠️ 送信できる文字数について(jp-v1.8.0〜)

jp-v1.8.0でSF10/CR4/6に移行し、JP専用の文字数切り詰めロジックを廃止しました。送信できるバイト数は本家と同じ(DM150バイト/チャンネルメッセージ147-デバイスに付けた名前のバイト数)で、コーディングレートに依存しません。

コーディングレートは自分のデバイスだけで設定するもので、CRの情報はパケットのヘッダーに含まれるため、ネットワーク内の他のデバイスの設定を変える必要はありません。


WisMesh Tag (RAKwireless+MOKOSMART / MCU: nRF52840 / Radio: SX1262) の書き込み手順

必要なもの

  • WisMesh Tag本体
  • USB-Cケーブル(データ転送対応のもの)
  • PC(Windows / Mac / Linux)

手順(UF2 — 推奨)

1. ファームウェアをダウンロード
Releasesページから RAK_WisMesh_Tag_companion_radio_ble-jp-v*.uf2 をダウンロード。

2. ブートローダーモードに入る
WisMesh Tagのリセットボタンをすばやく2回押す(ダブルクリック)。
PCにUSBドライブとして表示されればOK(ドライブ名は環境により異なります)。

3. ファームウェアを書き込む
ダウンロードした .uf2 ファイルをそのドライブにドラッグ&ドロップする。
自動的に再起動して完了。


T1000-E (MCU: nRF52840 / Radio: LR1110) の書き込み手順

必要なもの

  • T1000-E本体
  • USB-Cケーブル(データ転送対応のもの)
  • PC

手順(UF2 — 推奨)

1. ファームウェアをダウンロード
Releasesページから t1000e_companion_radio_ble-jp-v*.uf2 をダウンロード。

2. ブートローダーモードに入る
ボタンを押し続けながら、磁石式充電ケーブルをすばやく2回、接続・切断する(磁石をくっつけて、はなす、をすばやく2回繰り返す)。
緑色LEDが点灯し続け、PCに T1000-E という名前のUSBドライブが表示されればOK。
※ この操作はすばやく行う必要があります。何度か試す必要がある場合があります。

3. ファームウェアを書き込む
ダウンロードした .uf2 ファイルをドライブにドラッグ&ドロップする。
自動的に再起動して完了。


リピーター / ルームサーバーの設定

以下のウェブ設定ツールにUSBで接続して設定してください:
👉 https://config.meshcore.io

初期パスワード

リピーター・ルームサーバーの管理者パスワードのデフォルトは password です。必ず変更してください。

リピーターの発見

リピーター側からadvertを送信していなくても、コンパニオンアプリの Tools → Discover Nearby Nodes から検出できます。


⚠️ 日本での法的地位について

T1000-E (Seeed Studio)

T1000-E は 工事設計認証(技適)を取得しています(認証番号:217-252754、Seeed Technology Co., Ltd.、2026年1月7日)。証明書上の型式名は以下の純正ファームウェア向けです:

  • SenseCAP Card Tracker(LoRaWAN版)
  • SenseCAP Card Tracker T1000-E for Meshtastic

Seeed社に正式問い合わせたところ(2026年7月22日付、書面回答)、証明はT1000-E完成品としての構成に基づくが、送信出力・周波数などRFパラメータが証明範囲内である限り、ファームウェアの変更は証明の有効性に影響しないとの回答を得ています。証明書の「for Meshtastic」という表記は、厳密な法的制約ではなかった可能性が高いです。

証明された920MHz帯の出力上限は 19mW(≈12.79dBm) で、これは厳格な上限(丸め誤差の余地なし)とのことです。本ファームウェアはこれを踏まえ、T1000-Eの送信出力のデフォルトを 12dBm(≈15.85mW)に設定しています。

注: Wio-SX1262(後述)については、証明された試験報告書が本ファームウェアの送信時間制御方式(5ms/4秒/50ms)ではなく別方式(128μs/0.4秒)でのみ試験されていたことが判明しています。T1000-Eについても同様の不一致があるかどうかは、該当する試験報告書を未入手のため確認できていません。

証明内容の確認:

T1000-Eの技適は、920MHz帯(第8号)と2.4GHz帯(第19号)で総務省データベース上の行が分かれています。LoRaの運用に関係するのは第8号の方です。

Wio-SX1262搭載機(XIAO nRF52840/ESP32S3+Wio-SX1262、Wio Tracker L1 Pro)

Wio-SX1262モジュール単体で工事設計認証(技適)を取得しています(認証番号:201-250230、Seeed Technology Co., Ltd.、2026年4月30日)。証明された出力は 10.000mW(10dBm) のみです。

Seeed社に正式問い合わせたところ(2026年7月20日付、書面回答)、以下の3条件を満たせば ホスト側ファームウェアの変更(本リポジトリのカスタムファームウェア含む)は技適の有効性に影響しない との回答を得ています:

  • Wio-SX1262モジュールのハードウェアを無改造であること
  • アンテナ構成が証明範囲内であること
  • 動作周波数・RFパラメータ(送信出力含む)が証明範囲内であること

これを受けて、本ファームウェアはWio-SX1262搭載機(XIAO nRF52840+Wio-SX1262、XIAO ESP32S3+Wio-SX1262、Wio Tracker L1 Pro)の送信出力のデフォルトを 10dBm に設定しています(他の対応機種は13dBm)。

証明内容の確認:

⚠️ 重要な留保(2026年8月追記): 上記の試験報告書(BL-SZ2531376-601)を直接確認したところ、実際に試験・合格しているのは告示49号の128マイクロ秒キャリアセンス/0.4秒送信/1時間あたり360秒以下という方式のみで、本ファームウェアが実装している5ミリ秒連続キャリアセンス/4秒送信/50ミリ秒休止という方式の試験データは報告書内に見当たりませんでした。

Seeed社の「RFパラメータが範囲内ならファームウェア変更は証明の有効性に影響しない」という回答が、この送信時間制御方式(ルート)自体の変更まで含むのか、それとも周波数・出力といった物理的なパラメータのみを指すのかは、現時点で確認が取れていません。この点について2026年8月7日付でSeeed社へ追加確認を依頼しており、回答待ちです。

結論として、Wio-SX1262搭載機の技適については、本ファームウェアでの動作が法的に問題ないとまだ言い切れる状態ではありません。回答があり次第、このセクションを更新します。それまでの間は、特例制度の届出と併用することを推奨します。

アンテナについて: 証明対象のアンテナは3種類です(試験報告書 BL-SZ2531376-601 より)。

アンテナ 利得 本ファームウェア(10dBm設定)での使用
Seeed FPC Antenna (M01-0401030R0A) 2.36 dBi ✅ 使用可
Seeed Spring Antenna (M04-0101870R0A) 3.11 dBi ✅ 使用可
VLG Dipole Antenna (V1194-145-A-01) 8.00 dBi 使用不可

試験報告書に記載されている8dBiのダイポール型アンテナは、証明対象ではありますが、10dBmの出力設定と組み合わせるとEIRPが18dBmとなり、920MHz帯の上限16dBmを超えます(試験時は出力を約7.7dBmまで下げて8.0dBiと組ませることでEIRP15.7〜15.8dBmに収め、合格しています)。Wio-SX1262搭載機では付属の低利得アンテナ(FPCまたはSpring、概ね3dBi以下)を使用してください。

WisMesh Tag (RAKwireless+MOKOSMART)

WisMesh Tagの日本向け技適取得状況は現時点で確認できていません。

アンテナ・送信出力について(全機種共通)

日本の電波法では、次のすべてを同時に満たす必要があります(どれか1つ守ればいい、という関係ではありません)。

  • アンテナ利得:3dBi以下(技適の対象外の機種、および技適済み機種でも証明範囲外のアンテナを使う場合の一般原則)
  • 送信出力:本ファームウェアが各機種に設定した値(10〜13dBm)を越えた値に変更しないでください
  • 技適済み機器:上記の一般原則より優先。認証時の出力・アンテナ構成の範囲内で使用してください(上記のT1000-E・Wio-SX1262搭載機の項を参照)

高利得アンテナ(八木・指向性・ハイゲインコリニア等)は3dBiを超えるため使用できません。通常のホイップ/チップアンテナ(概ね0〜2dBi)の範囲で使ってください。


カスタムファームウェアを日本で使うには

技適対象外:実験試験局 or 特例制度

本ファームウェアで使われる無線機のうち、T1000-Eはメーカーから条件付きで技適の有効性が確認できています(送信出力・アンテナ構成の条件あり)。Wio-SX1262搭載機についても同様の回答を得ていますが、上記の通り試験ルートに関する未解決の論点があり、現時点では「確認済み」と言い切らない扱いにしています。詳細は上記の各機種の項を参照してください。それ以外の無線機は、2026年7月時点でどれも技適を通っていません。技適の対象外となる機種で日本国内で電波を発射する場合は、次のいずれかの手続きが必要だと思われます(開発は米国で行っているので、ちょっと自信がないです、すいません)。

おすすめ:特例制度(届出のみ・180日)

外国認証や無線従事者確認がなくても、ARIB STD-T108への適合を根拠に届出できます(令和元年総務省告示第263号 五号3)。本ファームウェアはARIB STD-T108準拠を目的に設計されているため、これが一番現実的なルートです。 👉 総務省:特例制度

実験試験局免許は非推奨

常設運用に向いていそうに見えますが、免許人以外の使用を認めない条件(電波法施行規則第6条)があり、不特定多数と通信するメッシュ用途とは相性が悪いです。加えて920MHz帯は簡易審査の「特定実験試験局」の対象外で、通常審査(無線従事者資格者の選任も必要)になります。

まとめ:特例制度で実地検証を重ね、運用が固まったら技適取得済みハードウェアへ移行していくのが現実的です。

免責事項

このファームウェアは技術検証・実験用途を主な想定としています。実際に電波を発射して使用する場合は、利用者自身が電波法を確認し、適切な手続きを行ってください。このリポジトリの作者は、利用者による電波法上の違反について責任を負いません。


📻 日本向け無線設定

現時点では本家MeshCoreに日本向けプリセットは存在しません(Issue #460 で提案・議論中)。チャットアプリから以下の値を手動で設定してください。

パラメータ 推奨値 理由
周波数 920.8 / 921.0 / 921.2 MHz ARIB STD-T108対応の単位チャネル中心周波数(916MHz+200kHzの整数倍)。この3波に設定すると自動的にJPモードになる
帯域幅(BW) 125 kHz 単位チャネル幅は200kHzで、規則上は複数チャネルを束ねた運用(最大20チャネル・約4MHz)も可能。ただし各機種の技適試験は125kHzでのみ行われているため、本ファームウェアは125kHz固定としている
スプレッディングファクター(SF) 10 SF11以上は4秒送信制限(下記)に収まらないため非対応
コーディングレート(CR) 4/6 送信側が自由に選んでよい値(CRはパケットヘッダに載るため、受信側の設定を変える必要はない)。送信時間が短いほど瞬時的な妨害の影響を受けにくくなる可能性を考えて、やや短めの4:6を既定値にしている
送信出力 ≤ 13 dBm(Wio-SX1262搭載機は ≤ 10 dBm、T1000-Eは ≤ 12 dBm) ARIB STD-T108上限、または各機種の技適証明出力に準拠

周波数を 920.8 / 921.0 / 921.2 MHz のいずれかに設定すると、このファームウェアが自動的に日本モードになります。

SF11・SF12はサポートしていません。 ARIB STD-T108(告示49号)は1回の送信を4秒以内に制限しており、BW125kHz環境ではSF11で本文139バイト以下、SF12で本文59バイト以下でないと収まりません(中継のたびに経路情報が付加されるため、実際にはさらに短くなります)。4秒を超えるパケットはファームウェアが自動的に送信をブロックします。


⚠️ ファームウェア更新時の注意:保存済み設定について

TX出力などの設定値は、書き込み後に内部ファイルシステムへ保存され、次回起動時は その保存値が使われます。新しいファームウェアでデフォルト値が変更されていても (例:Wio-SX1262搭載機が13dBm→10dBmに変更)、上書きインストールしただけでは 古い設定値が残ります。

技適・法令遵守に関わる設定(TX出力等)は、機種を問わず、ファームウェア更新の 度に手動で確認・更新してください。

スマホアプリの Export Config / Import Config 機能で秘密鍵・連絡先・ チャンネルをまとめてバックアップ・復元できます。Import Configは古いTX出力設定も そのまま復元してしまうため、Import Config後もTX出力の再確認・再設定が 必要です。バックアップ・復元があっても手動確認は省略できません。

💡 リピーター/ルームサーバーでもExport Configは使えます。 リピーター/ ルームサーバーはコンパニオンラジオチャットクライアントと同じ設定ファイルを 使用しているため、コンパニオンラジオチャットクライアントをインストールし、 そのクライアントにあるExport Config機能を使ってバックアップを保存できます。

イレースについて(任意・通常のアップグレードには不要)

設定が壊れた場合などにクリーンな状態からやり直したい場合のみ、以下の方法が 使えます。通常のアップグレードでは不要です。

nRF52系のデバイス(WisMesh Tag、T1000-E、T-Echo Lite、Heltec T114、XIAO nRF52840)

https://flasher.meshcore.io で対象デバイスを選択 → "Enter DFU Mode" → デバイス接続を選択 → "Erase Flash"。

ESP32系のデバイス(XIAO ESP32S3+Wio-SX1262、T3S3、Heltec V4、M5Stack Unit C6L、T-DECK、Heltec Wireless Paper)

flasher.meshcore.ioでは単体イレースができません("Flash"ボタンの上に "Erase"チェックボックスがあるのみで、書き込みと同時にイレースする形に なります)。手動での設定確認・更新(上記)で対応することを推奨します。

⚠️ イレース前に上記のExport Config(コンパニオンラジオチャットクライアント経由)で バックアップを取っておかないと、アイデンティティ(秘密鍵)が失われ、復元できません。 バックアップなしでイレースすると、既存のメッシュ参加デバイスからは「別ノード」として認識されます。

公開鍵とノード名について

公開鍵の先頭バイトが近隣ノードと衝突した場合は、アイデンティティを 作り直す(公開鍵を変える)のがおすすめです。公開鍵は運用上しょっちゅう 変わりうるものと考えて問題ありません。

一方、ノード名は同じものを使い続けることを推奨します。 近隣の利用者は 公開鍵ではなくノード名でノードを認識するため、公開鍵を変更した場合でも set name <ノード名> などで同じ名前を設定し直せば、周囲の利用者からは 引き続き同じノードとして認識されます。

リピーター/ルームサーバーには、公開鍵の先頭1バイト(16進数2文字)を 指定して新しいアイデンティティを生成する機能もあります。この際に生成される seed をテキストで保存しておけば、同じseedから同じ公開鍵を何度でも 再生成できます。イレースなどでアイデンティティが失われた場合の復元手段として 活用できます。


JP LBT実装の概要

項目 設定値 根拠
センシング方式 RSSI連続測定(5ms) ARIB STD-T108 エネルギー検出
閾値 −80 dBm 同上
バックオフ 指数(base 500ms、最大4000ms) 衝突回避
ジッター 0〜(airtime/32)ms(SF依存、目安 数十〜245ms) チャネル空き時
送信後待機 50ms キャリアリリース
Japan mode判定 920.8 / 921.0 / 921.2 MHz 周波数で自動検出

詳細は Issue #2079 および PR #2218 を参照。

📡 注意: 本実装はチャネルが空いていることを確認してから送信します(Listen Before Talk)。
周囲に強い電波干渉がある環境では、送信の遅延や困難が生じる場合があります。

バックオフの長さや、ジッターは私が調整、追加したものですが、それ以外の仕様は、ARIB STD-T108への準拠によるものです。詳しくは Issue #2079 を参照してください。 参考にした物:ARIB STD-T108 v1.5(英訳、参考資料)。法的根拠としては平成元年郵政省告示第49号(日本語原文)。内容に差がある場合は告示(日本語原文)を優先したつもりです。


ライセンス

本リポジトリは meshcore-dev/MeshCore のフォークです。
ライセンスは upstream と同じ MIT License です。