M2ゲートウェイにオープンソースファームウェアをフラッシュ
SenseCAP M2ゲートウェイは、成熟したハードウェアソリューションMT7628とSemtech SX1302ベースバンドLong Rangeチップを搭載した、LoRaゲートウェイのコスト効率的なソリューションです。特定のモデルは、工場設定の周波数帯域(EU868/US915/AS923/AU915)、オプションモジュール(4G/GPS)、サポートされるLoRaネットワーク(LoRaWAN®/Heliumネットワーク)によって区別されます。
このwikiでは、M2ゲートウェイにオープンソースファームウェアをフラッシュする方法をガイドします。オープンソースファームウェアに基づいて、追加機能の追加や動作帯域の変更(アンテナは帯域に適応させる必要があります)など、M2ゲートウェイを深くカスタマイズできます。
オープンソースファームウェアをフラッシュした後、工場出荷時ファームウェアに戻すことはできません。
Seeed studioは、ユーザーがオープンソースファームウェアまたはサードパーティファームウェアを使用することによってデバイスに生じた損害について責任を負いません。
サポート製品リスト
- M2 Multi-Platform LoRaWAN Indoor Gateway(SX1302)
- M2 Multi-Platform LoRaWAN Indoor Gateway(SX1302-4G)
- M2 Data-Only LoRaWAN Indoor Gateway(SX1302)
ハードウェアの違いにより、Helium用M2ゲートウェイ(モデル:114992751、114992752、114992755、114992808、114992826、114992828)にオープンソースファームウェアをフラッシュするには、ファームウェアイメージだけでなく、対応するU-Bootローダーも必要です。詳細な手順については、U-Bootのフラッシュセクションを参照してください。
ファームウェアの準備
プリビルドファームウェアのダウンロード
オープンソースファームウェアを手軽に体験したい場合、コンパイル済みのファームウェアを提供しています。 Seeed-Solution/LoRa_Gateway_OpenWRT/Releaseからダウンロードできます。
.binファイルの接尾辞を確認して、ファームウェアがM2ゲートウェイと互換性があることを確認してください。
例:openwrt-...-EU868-4G.binファームウェアは、4Gモジュール付きEU868帯域で動作するM2ゲートウェイ用にコンパイルされています。
ファームウェアのビルド
ゲートウェイがプリビルドファームウェアと互換性がない場合、またはさらに開発したい場合は、以下の手順で独自のファームウェアをビルドできます。
独自のファームウェアをビルドするには、GNU/Linux、BSD、またはMacOSXシステム(大文字小文字を区別するファイルシステムが必要)が必要です。Cygwinは大文字小文字を区別するファイルシステムがないためサポートされていません。
ステップ1: Seeed-Solution/LoRa_Gateway_OpenWRTからソースコードをクローンします。
git clone https://github.com/Seeed-Solution/LoRa_Gateway_OpenWRT.git
ステップ2: Build system setupを参照して前提条件パッケージをインストールします。
以下の手順は非rootユーザーで実行してください。
ステップ3: ソースコードフォルダに移動し、./scripts/feeds update -aを実行してfeeds.conf / feeds.conf.defaultで定義されたすべての最新パッケージ定義を取得します。
ステップ4: ./scripts/feeds install -aを実行して、取得したすべてのパッケージのシンボリックリンクをpackage/feeds/にインストールします。
ステップ5: cp diffconfig-sensecap-general .configを実行してSenseCAP diffファイルを使用し、make defconfigを実行して完全な設定を展開します。
ステップ6: make menuconfigを実行してSenseCAP ハードウェア情報を選択します。
-
SenseCAP Hardware->Have 4G(4Gハードウェアが含まれているかどうか)
-
SenseCAP Hardware->Have GPS(GPSハードウェアが含まれているかどうか)
-
SenseCAP Hardware->REGION(デフォルトのREGIONを選択)


ステップ7: makeを実行してファームウェアをビルドします。
これにより、すべてのソースがダウンロードされ、クロスコンパイルツールチェーンがビルドされ、その後ターゲットシステム用にGNU/Linuxカーネルと選択されたすべてのアプリケーションがクロスコンパイルされます。
コンパイル後、<prj>/bin/targets/ramips/mt76x8/ディレクトリでopenwrt-21.02.0-ramips-mt76x8-sensecap_wm7628n-squashfs-sysupgrade.binという名前のファームウェアを見つけることができます。
ファームウェアのフラッシュ
ゲートウェイにファームウェアをフラッシュする方法は3つあります。
Luci経由でファームウェアをフラッシュ
Luciにログインし、System > Backup/Flash Firmwareに移動します。

下にスクロールしてLocal upgradeに移動し、**Flash image...**をクリックします。

フォルダを参照してファームウェアをアップロードします。

アップロードが完了したら、アップロードされたファームウェア情報が正しいことを確認し、Continueをクリックします。

その後、ゲートウェイはファームウェアのインストールを開始し、インストールが完了するまでLEDがオレンジ色のゆっくりとした点滅状態になります。
TFTP経由でファームウェアをフラッシュ
開始する前に、コンピュータにTFTPサーバーツールをインストールし、適切なディレクトリにファームウェアを配置する必要があります。
ステップ1: Type-Cケーブルを使用してデバイスをコンピュータに接続し、ネットワークケーブルを使用してデバイスとコンピュータを同じLANに配置します。
ステップ2: ボーレート57600でUSB-SERIAL CH340というシリアルポートを使用してデバイスに接続します。
ステップ3: デバイスを再起動します。デバイスがubootに入ったら、コマンド2を選択してシステム更新に入ります。
ステップ4: デバイスIPを入力します。デバイスIPネットワークセグメントは自分のネットワークのネットワークセグメントである必要があります。サーバーIP(コンピュータのIP)を入力し、フラッシュするファームウェアの名前を入力します(ファイル拡張子を含める必要があります)。

ステップ5: ファームウェア更新の完了を待ちます。ゲートウェイはファームウェアのインストールを開始し、インストールが完了するまでLEDがオレンジ色のゆっくりとした点滅状態になります。

シリアル経由でファームウェアをフラッシュ
以下の手順を開始する前に、TeraTermの最新バージョンをダウンロードすることをお勧めします。このwikiの以下の操作はすべてTeraTermに基づいています。
ステップ1: Type-Cケーブルを使用してデバイスをコンピュータに接続します。
ステップ2: ボーレート57600でUSB-SERIAL CH340というシリアルポートを使用してデバイスに接続します。
ステップ3: デバイスを再起動します。デバイスがubootに入ったら、コマンド0を選択してシステム更新に入ります。
ステップ4: ボーレートを230400に切り替え、ENTERを押します。デバイスはReady for binary (kermit) download to 0x80100000 at 230400 bps...とプロンプトを表示します。
ステップ5: kermitプロトコルを使用してファームウェアをアップロードします。Teratermはkermit送信ツールを提供しています。以下の画像を参考にファームウェアをアップロードできます。

ステップ6: ファームウェアのアップロードが完了するまで待ちます。その後、デバイスはSwitch baudrate to 57600 bps and press ESC...とプロンプトを表示します。デバイスのプロンプトに従ってください。その後、デバイスは自動的にファームウェアをインストールして再起動します。

U-Bootのフラッシュ
Helium M2 LoRaWAN Indoor Gatewayにオープンソースファームウェアをフラッシュする際は、対応するU-Bootイメージもダウンロードしてデバイスにフラッシュしてください。この手順は、ゲートウェイが正常に機能するために必要です。
シリアル経由でファームウェアをフラッシュ
ステップ1: Type-Cケーブルを使用してデバイスをコンピュータに接続します。
ステップ2: ボーレート57600でUSB-SERIAL CH340というシリアルポートを使用してデバイスに接続します。
ステップ3: デバイスを再起動します。デバイスがU-Bootに入ったら、コマンド7を選択してシステム更新に入ります。

ステップ4: kermitプロトコルを使用してファームウェアをアップロードします。Teratermはkermit送信ツールを提供しています。以下の画像を参考にU-Bootをアップロードできます。

ステップ 5: フラッシュが完了してデバイスが再起動するまで待ちます。デバイスがU-Bootに入ったら、Command 4を選択してU-Bootコマンドに入ります。次にspi erase 0x50000 0x1FB0000を入力して、続くブロックを消去します。


その後、デバイスを再起動し、ファームウェアのフラッシュセクションの指示に従ってファームウェアイメージをフラッシュできます。
コンソールへのログイン
ファームウェアがインストールされると、デバイスは自動的にAPホットスポットを開き、名前はSenseCAP_XXXXになります
スマートフォンまたはコンピューターを使用してホットスポットに接続します(パスワードなし)
ブラウザで192.168.168.1を入力してLuCIインターフェースに入ります

ユーザー名rootとパスワードなしでコンソールにログインします

リソース
- [ウェブサイト] SenseCAP M2 Data Only LoRaWAN Indoor Gatewayに代替ファームウェアをインストールする方法 - Koen Vervloesem著
- [ウェブサイト] GitHub-Seeed-Solution/Lora_Gateway_OpenWRT
- [ウェブサイト] OpenWrt公式ウェブサイト
- [PDF] M2 Gatewayハードウェア説明書
技術サポート
オープンソースファームウェアでお困りですか?下記のDiscordリンクからコミュニティメンバーと気軽にディスカッションしてください。