diff --git a/.github/workflows/jp-release.yml b/.github/workflows/jp-release.yml index 35d99e55e0..aece1500b3 100644 --- a/.github/workflows/jp-release.yml +++ b/.github/workflows/jp-release.yml @@ -27,8 +27,8 @@ jobs: -w -DNDEBUG -DRADIOLIB_STATIC_ONLY=1 -DRADIOLIB_GODMODE=1 -D LORA_FREQ=920.800 -D LORA_BW=125.0 - -D LORA_SF=12 - -D LORA_CR=8 + -D LORA_SF=10 + -D LORA_CR=6 -D ENABLE_ADVERT_ON_BOOT=1 -D ENABLE_PRIVATE_KEY_IMPORT=1 -D ENABLE_PRIVATE_KEY_EXPORT=1 diff --git a/README_JP.md b/README_JP.md index 69524173e6..901b4f2acb 100644 --- a/README_JP.md +++ b/README_JP.md @@ -27,30 +27,12 @@ --- -### ⚠️ 送信できる文字数について +### ⚠️ 送信できる文字数について(jp-v1.8.0〜) -本ファームウェアはARIB STD-T108準拠のLBT実装により、**送信できるメッセージ長が本家より短くなります**。 - -チャットアプリ側は本家の上限(DM: 150バイト、グループチャット: 139バイト)を表示しますが、**実際に送信できる上限は設定(コーディングレート)によって異なります**。 - -| コーディングレート | DM上限 | グループチャット上限 | 日本語の目安(約3バイト/文字) | -|---|---|---|---| -| CR4/5 | 64バイト | 64バイト | 約21文字 | -| CR4/6 | 48バイト | 48バイト | 約16文字 | -| CR4/7 | 32バイト | 39バイト | 約10〜13文字 | -| CR4/8 | 24バイト | 29バイト | 約8〜9文字 | +jp-v1.8.0でSF10/CR4/6に移行し、JP専用の文字数切り詰めロジックを廃止しました。**送信できるバイト数は本家と同じ(DM150バイト/チャンネルメッセージ147-デバイスに付けた名前のバイト数)で、コーディングレートに依存しません。** コーディングレートは**自分のデバイスだけで設定するもの**で、CRの情報はパケットのヘッダーに含まれるため、ネットワーク内の他のデバイスの設定を変える必要はありません。 -電波ノイズが多い環境(秋葉原など都市部)では **CR4/8 を推奨**します。電波環境が良い場所では CR4/7、CR4/6 なども使えます。数字が小さいほど送れる文字数が増えます。 - -**DMとグループチャットで挙動が異なります:** - -- **DM** — 上限を超えると**エラーになり送信されません**。アプリ側にエラーが表示されます。 -- **グループチャット** — 上限を超えると**超えた部分がサイレントに切り落とされて送信されます**。送信者には通知されません。 - -**グループチャットの追加注意:** ペイロードにはデバイス名が `デバイス名: メッセージ` の形式で含まれます。**デバイス名が長いほど、本文として送れる文字数が少なくなります**。デバイス名は短めに設定することを推奨します。 - --- ## WisMesh Tag (RAKwireless+MOKOSMART / MCU: nRF52840 / Radio: SX1262) の書き込み手順 @@ -98,20 +80,11 @@ PCにUSBドライブとして表示されればOK(ドライブ名は環境に --- -## リピーター / ルームサーバーの初期設定 - -### CR4/8(デフォルト)でのリモート管理について - -日本向け設定(SF12/BW125/CR4/8)では、コンパニオンアプリからLoRa無線経由でリピーターを設定・管理するのは、通信時間が長くなるため、かなり困難です。 -**初期設定は USB 接続を推奨します。** +## リピーター / ルームサーバーの設定 以下のウェブ設定ツールにUSBで接続して設定してください: 👉 https://config.meshcore.io -### CRの設定について - -クライアント・リピーター両方を **CR4/5** に設定することで、LoRa経由のリモート管理が実用的になります。CR4/8のままでは応答が遅くタイムアウトしやすいです。 - ### 初期パスワード リピーター・ルームサーバーの管理者パスワードのデフォルトは `password` です。必ず変更してください。 @@ -217,11 +190,10 @@ WisMesh Tagの日本向け技適取得状況は現時点で確認できていま |---|---|---| | 周波数 | 920.8 MHz | ARIB STD-T108 CH25 | | 帯域幅(BW) | 125 kHz | | -| スプレッディングファクター(SF) | 12 | | -| コーディングレート(CR) | 4/8 | 都市部・ノイズ環境向け推奨 | +| スプレッディングファクター(SF) | 10 | jp-v1.8.0〜 | +| コーディングレート(CR) | 4/6 | jp-v1.8.0〜 | | 送信出力 | ≤ 13 dBm(Wio-SX1262搭載機は ≤ 10 dBm、T1000-Eは ≤ 12 dBm) | ARIB STD-T108 上限/各機種の証明出力に準拠 | -> 電波環境が良好な場所では CR4/7 や CR4/6 も使用できます(送れる文字数が増えます)。 > 周波数を 920.8 / 921.0 / 921.2 MHz のいずれかに設定すると、このファームウェアが自動的に日本モードになります。 --- @@ -236,10 +208,6 @@ TX出力などの設定値は、書き込み後に内部ファイルシステム **技適・法令遵守に関わる設定(TX出力等)は、機種を問わず、ファームウェア更新の 度に手動で確認・更新してください。** -``` -set txpower 10 -``` - スマホアプリの **Export Config / Import Config** 機能で秘密鍵・連絡先・ チャンネルをまとめてバックアップ・復元できます。**Import Configは古いTX出力設定も そのまま復元してしまう**ため、Import Config後もTX出力の再確認・再設定が diff --git a/src/helpers/radiolib/RadioLibWrappers.h b/src/helpers/radiolib/RadioLibWrappers.h index 1d9a5b94c9..ebd3197a82 100644 --- a/src/helpers/radiolib/RadioLibWrappers.h +++ b/src/helpers/radiolib/RadioLibWrappers.h @@ -65,24 +65,6 @@ class RadioLibWrapper : public mesh::Radio { fabsf(freq - 921.200f) < 0.05f); } - int getMaxTextLen() const override { - if (!isAS923_1_JP()) return 10 * 16; // default 160 bytes - uint8_t cr = getCodingRate(); - if (cr <= 5) return 64; // 3874ms @ SF12/BW125/CR4-5 - if (cr == 6) return 48; // 3874ms @ SF12/BW125/CR4-6 - if (cr == 7) return 32; // 3678ms @ SF12/BW125/CR4-7 - return 24; // 3547ms @ SF12/BW125/CR4-8 - } - - int getMaxGroupTextLen() const override { - if (!isAS923_1_JP()) return 10 * 16; // default 160 bytes - uint8_t cr = getCodingRate(); - if (cr <= 5) return 64; // 3710ms @ SF12/BW125/CR4-5 - if (cr == 6) return 48; // 3678ms @ SF12/BW125/CR4-6 - if (cr == 7) return 39; // 3907ms @ SF12/BW125/CR4-7 - return 29; // 3809ms @ SF12/BW125/CR4-8 - } - PacketMillis calcMaxPacketMillis(uint8_t sf, float bw, uint8_t cr, uint8_t preambleSymbols); virtual int16_t performChannelScan();