LoRaWAN® ゲートウェイモジュール WM1302

LoRaWAN® は LoRa Alliance® からライセンスを受けて使用されているマークです。 LoRa® マークは Semtech Corporation またはその子会社の商標です。
私たちは最近、Wio-E5 モジュールをベースとした Wio-E5 シリーズをリリースしました。
こちらをクリックして、Wio-E5 Module Grove module、mini Dev boards から Development Kit まで、LoRa-E5 ファミリーの新しいメンバーをご覧ください。
STM32WL シリーズ用 STM32Cube MCU パッケージ(SDK)を使用して LoRaWAN® エンドノードを作成し、LoRaWAN® ネットワークに参加してデータを送信する方法について詳しく学ぶには、mini Dev boards と Development Kit の wiki ページをご覧ください。
WM1302 モジュールは、mini-PCIe フォームファクターを採用した新世代の LoRaWAN® ゲートウェイモジュールです。Semtech® SX1302 ベースバンド LoRaWAN® チップをベースとした WM1302 は、ゲートウェイ製品の長距離無線伝送のより大きな潜在能力を解き放ちます。従来の SX1301 および SX1308 LoRa® チップと比較して、より高い感度、より少ない消費電力、より低い動作温度を特徴としています。
WM1302 LoRaWAN® ゲートウェイモジュールは、US915 と EU868 の両方の周波数帯域で SPI と USB バージョンを提供し、EU868、US915、AS923、AS920、AU915、KR920、IN865 を含む幅広い LoRaWAN® 周波数プランオプションから選択できます。
WM1302 モジュールは CE、FCC、Telec 認証を取得しており、LoRaWAN® ゲートウェイデバイスの開発と認証プロセスを簡素化するのに役立ちます。
WM1302 は M2M および IoT アプリケーション向けに設計されており、LPWAN ゲートウェイ対応シナリオで広く適用できます。LoRaWAN® ゲートウェイ、ホットスポットなどの LoRa® ゲートウェイデバイスを開発する際の技術的困難と時間消費を大幅に削減するための完璧な選択肢となるでしょう。
特徴
- Semtech® SX1302 ベースバンド LoRa® チップを搭載、極めて低い消費電力と高性能。
- 標準 52 ピンゴールドフィンガーを備えた Mini-PCIe フォームファクター、様々なゲートウェイデバイスとの統合が容易。
- 超低動作温度、追加の放熱が不要で、LoRaWAN® ゲートウェイのサイズを削減。
- 高感度 SX1250 TX/RX フロントエンドで SF12 時 -139 dBm まで対応;TX 出力は 3.3V で最大 26 dBm。
- CE、FCC、TELEC 認証取得済み。最終製品の認証プロセスを簡素化。
ハードウェア概要
図

ピン配置


Raspberry Pi ピン配置マッピング
| 40 ピン番号(BOARD#) | Raspberry Pi GPIO(BCM#) | WM1302 Pi HAT ピン配置 |
|---|---|---|
| 1 | 3.3V | NC |
| 2 | 5V | 5V |
| 3 | GPIO 2 | I2C_SDA |
| 4 | 5V | 5V |
| 5 | GPIO 3 | I2C_SCL |
| 6 | GND | GND |
| 7 | GPIO 4 | NC |
| 8 | GPIO 14 | GPS_RXD |
| 9 | GND | GND |
| 10 | GPIO 15 | GPS_TXD |
| 11 | GPIO 17 | SX1302_RESET SPI バージョン:アクティブ HIGH USB バージョン:アクティブ LOW |
| 12 | GPIO 18 | SX1262_BUSY |
| 13 | GPIO 27 | NC |
| 14 | GND | GND |
| 15 | GPIO 22 | NC |
| 16 | GPIO 23 | SX1262_DIO1 |
| 17 | 3.3V | NC |
| 18 | GPIO 24 | SX1262_DIO2 |
| 19 | GPIO 10 | SPI_MOSI |
| 20 | GND | GND |
| 21 | GPIO 9 | SPI_MISO |
| 22 | GPIO 25 | GPS_RST |
| 23 | GPIO 11 | SPI_SCK |
| 24 | GPIO 8 | SX1302_CS |
| 25 | GND | GND |
| 26 | GPIO 7 | NC |
| 27 | GPIO 0 | I2C_SDA(EEPROM) |
| 28 | GPIO 1 | I2C_SCL(EEPROM) |
| 29 | GPIO 5 | SX1262_RST |
| 30 | GND | GND |
| 31 | GPIO 6 | SX1262_CS |
| 32 | GPIO 12 | GPS_WAKE_UP |
| 33 | GPIO 13 | NC |
| 34 | GND | GND |
| 35 | GPIO 19 | NC |
| 36 | GPIO 16 | NC |
| 37 | GPIO 26 | NC |
| 38 | GPIO 20 | NC |
| 39 | GND | GND |
| 40 | GPIO 21 | NC |
仕様
| 地域 | EU868 | US915 |
|---|---|---|
| 周波数 | 863-870MHz | 902-928MHz |
| 感度 | -125dBm @125K/SF7 -139dBm @125K/SF12 | -125dBm @125K/SF7 -139dBm @125K/SF12 |
| TX 出力 | 26 dBm(3.3V 電源供給時) | 25 dBm(3.3V 電源供給時) |
| LED | 電源:緑 設定:赤 TX:緑 RX:青 | |
| フォームファクター | Mini PCIe、52 ピンゴールドフィンガー | |
| 消費電力(SPI バージョン) | スタンバイ:7.5 mA TX 最大出力:415 mA RX:40 mA | |
| 消費電力(USB バージョン) | スタンバイ:20 mA TX 最大出力:425 mA RX:53 mA | |
| LBT(Listen Before Talk) | サポート | |
| アンテナコネクタ | U.FL | |
| 動作温度 | -40°C to 85°C | |
| 寸法 | 30 mm (幅) × 50.95 mm (長さ) | |
| 認証 | CE | |
アプリケーション
-
LPWANゲートウェイデバイス開発
-
あらゆる長距離無線通信アプリケーション開発
-
LoRa®およびLoRaWAN®アプリケーションの学習と研究
寸法

入門ガイド
SPIバージョンとUSBバージョンの違い
WM1302 LoRaWAN®ゲートウェイモジュールSPIバージョンでは、Semtech SX1302とSX126xチップは、異なるチップセレクト(CS)ピンを使用して同じSPIバス経由でRaspberry Piに接続されます。
WM1302 LoRaWAN®ゲートウェイモジュールUSBバージョンでは、Semtech SX1302とSX126xチップはSTM32L4 MCUに接続され、この工場でプログラムされたMCUはUSBデバイスとして動作し、Raspberry PiとSX1302/SX126x間のブリッジとなります。
WM1302のクイックスタート
必要なハードウェア
-
WM1302 LoRaWAN®ゲートウェイモジュール
-
40ピンGPIOヘッダー付きRaspberry Piボード(例:Raspberry Pi 4BまたはRaspberry 3B+)
-
Raspberry Pi用WM1302 Pi Hat
-
Raspberry Pi用電源アダプタ
-
LoRa®アンテナ
-
8GB以上のSDカードとカードリーダー
-
WM1302 LoRaWAN®ゲートウェイモジュールUSBバージョンを使用する場合はType C USBケーブル
必要なソフトウェア
-
最新のRaspberry Pi OSイメージ:Raspberry Pi OS Liteを推奨
-
Balena Etcher:Raspberry Pi OSイメージをSDカードに書き込むため
-
putty:WindowsでSSH経由でRaspberry Piに接続するため
- WM1302 SPIバージョン
- WM1302 USBバージョン
ステップ1. WM1302 Raspberry Pi Hatの取り付けとWM1302モジュールのインストール
まずRaspberry Piの電源を切り、以下の写真のようにWM1302モジュールをPi Hatに挿入してネジで固定します。

ステップ2. Raspbian I2CおよびSPIインターフェースの有効化
WM1302モジュールはSPIおよびI2Cインターフェース経由でRaspberry Piと通信します。しかし、これら2つのインターフェースはRaspbianではデフォルトで有効になっていないため、開発者はWM1302を使用する前にそれらを有効にする必要があります。ここでは、SPIおよびI2Cインターフェースを有効にするコマンドライン方法を紹介します。
まず、SSH経由またはモニターを使用してRaspberry Piにログインし(Pi HatのGPSモジュールがPiのハードウェアUARTピンを占有するため、シリアルコンソールは使用しないでください)、コマンドラインでsudo raspi-configと入力してRaspberry Piソフトウェア設定ツールを開きます:
sudo raspi-config

-
Interface Optionsを選択 -
SPIを選択し、Yesを選択して有効にする -
I2Cを選択し、Yesを選択して有効にする -
Serial Portを選択し、"Would you like a login shell..."に対してNoを選択し、"Would you like the serial port hardware..."に対してYesを選択 -
この後、これらの設定が動作することを確認するためにRaspberry Piを再起動してください。
ステップ3. SX1302ソースコードの取得とコンパイル
それではgitをインストールし、githubからsx1302_hal(SX1302 LoRaゲートウェイ用ライブラリとプログラム)をダウンロードしましょう:
sudo apt update
sudo apt install -y git
cd ~
git clone https://github.com/Lora-net/sx1302_hal
sx1302_halフォルダに移動してすべてをコンパイルします:
cd ~/sx1302_hal
make
ステップ4. Semtech SX1302パケットフォワーダーの実行
reset_lgw.shをpacket_forwarderフォルダにコピーし、テキストエディタnanoを使用してreset_lgw.shスクリプト内のSX1302およびSX1261のreset pinを変更します:
cp tools/reset_lgw.sh packet_forwarder/
cd packet_forwarder
nano tools/reset_lgw.sh
以下のようなデフォルトのreset pinが表示されます:
# GPIO mapping has to be adapted with HW
#
SX1302_RESET_PIN=23 # SX1302 reset
SX1302_POWER_EN_PIN=18 # SX1302 power enable
SX1261_RESET_PIN=22 # SX1261 reset (LBT / Spectral Scan)
AD5338R_RESET_PIN=13 # AD5338R reset (full-duplex CN490 reference design)
SX1302_RESET_PIN、SX1302_POWER_EN_PIN、SX1261_RESET_PINを以下のように変更します:
# GPIO mapping has to be adapted with HW
#
SX1302_RESET_PIN=588 # SX1302 reset
SX1302_POWER_EN_PIN=589 # SX1302 power enable
SX1261_RESET_PIN=576 # SX1261 reset (LBT / Spectral Scan)
AD5338R_RESET_PIN=13 # AD5338R reset (full-duplex CN490 reference design)
CTRL + xを押し、続いてyとEnterを押してテキストエディタを閉じ、これらの変更を保存します。
以下の完全なスクリプトも参照できます:reset_lgw.sh
#!/bin/sh
# This script is intended to be used on SX1302 CoreCell platform, it performs
# the following actions:
# - export/unpexort GPIO23 and GPIO18 used to reset the SX1302 chip and to enable the LDOs
# - export/unexport GPIO22 used to reset the optional SX1261 radio used for LBT/Spectral Scan
#
# Usage examples:
# ./reset_lgw.sh stop
# ./reset_lgw.sh start
# GPIO mapping has to be adapted with HW
#
SX1302_RESET_PIN=588 # SX1302 reset
SX1302_POWER_EN_PIN=589 # SX1302 power enable
SX1261_RESET_PIN=576 # SX1261 reset (LBT / Spectral Scan)
AD5338R_RESET_PIN=13 # AD5338R reset (full-duplex CN490 reference design)
WAIT_GPIO() {
sleep 0.1
}
init() {
# setup GPIOs
echo "$SX1302_RESET_PIN" > /sys/class/gpio/export; WAIT_GPIO
echo "$SX1261_RESET_PIN" > /sys/class/gpio/export; WAIT_GPIO
echo "$SX1302_POWER_EN_PIN" > /sys/class/gpio/export; WAIT_GPIO
echo "$AD5338R_RESET_PIN" > /sys/class/gpio/export; WAIT_GPIO
# set GPIOs as output
echo "out" > /sys/class/gpio/gpio$SX1302_RESET_PIN/direction; WAIT_GPIO
echo "out" > /sys/class/gpio/gpio$SX1261_RESET_PIN/direction; WAIT_GPIO
echo "out" > /sys/class/gpio/gpio$SX1302_POWER_EN_PIN/direction; WAIT_GPIO
echo "out" > /sys/class/gpio/gpio$AD5338R_RESET_PIN/direction; WAIT_GPIO
}
reset() {
echo "CoreCell reset through GPIO$SX1302_RESET_PIN..."
echo "SX1261 reset through GPIO$SX1302_RESET_PIN..."
echo "CoreCell power enable through GPIO$SX1302_POWER_EN_PIN..."
echo "CoreCell ADC reset through GPIO$AD5338R_RESET_PIN..."
# write output for SX1302 CoreCell power_enable and reset
echo "1" > /sys/class/gpio/gpio$SX1302_POWER_EN_PIN/value; WAIT_GPIO
echo "1" > /sys/class/gpio/gpio$SX1302_RESET_PIN/value; WAIT_GPIO
echo "0" > /sys/class/gpio/gpio$SX1302_RESET_PIN/value; WAIT_GPIO
echo "0" > /sys/class/gpio/gpio$SX1261_RESET_PIN/value; WAIT_GPIO
echo "1" > /sys/class/gpio/gpio$SX1261_RESET_PIN/value; WAIT_GPIO
echo "0" > /sys/class/gpio/gpio$AD5338R_RESET_PIN/value; WAIT_GPIO
echo "1" > /sys/class/gpio/gpio$AD5338R_RESET_PIN/value; WAIT_GPIO
}
term() {
# cleanup all GPIOs
if [ -d /sys/class/gpio/gpio$SX1302_RESET_PIN ]
then
echo "$SX1302_RESET_PIN" > /sys/class/gpio/unexport; WAIT_GPIO
fi
if [ -d /sys/class/gpio/gpio$SX1261_RESET_PIN ]
then
echo "$SX1261_RESET_PIN" > /sys/class/gpio/unexport; WAIT_GPIO
fi
if [ -d /sys/class/gpio/gpio$SX1302_POWER_EN_PIN ]
then
echo "$SX1302_POWER_EN_PIN" > /sys/class/gpio/unexport; WAIT_GPIO
fi
if [ -d /sys/class/gpio/gpio$AD5338R_RESET_PIN ]
then
echo "$AD5338R_RESET_PIN" > /sys/class/gpio/unexport; WAIT_GPIO
fi
}
case "$1" in
start)
term # just in case
init
reset
;;
stop)
reset
term
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
exit 0
使用しているモジュールに基づいて、対応するglobal_conf.json.sx1250.xxxxxで希望するLoRaWANネットワークサーバーserver_addressとゲートウェイEUI gateway_IDを選択し、up/down portを1700に変更します。その後、以下のコードを実行してコンセントレータを開始します:
cd ~/sx1302_hal/packet_forwarder
# Please select one of the following comands based on your module
# for WM1302 LoRaWAN Gateway Module (SPI) - EU868
./lora_pkt_fwd -c global_conf.json.sx1250.EU868
# for WM1302 LoRaWAN Gateway Module (SPI) - US915
./lora_pkt_fwd -c global_conf.json.sx1250.US915
ステップ1. WM1302 Raspberry Pi Hatの取り付けとWM1302モジュールのインストール
まずRaspberry Piの電源を切り、以下の写真のようにWM1302モジュールをPi Hatに挿入してネジで固定します。Type CポートをType C USBケーブルでRaspberry PiのUSBポートの1つに接続します。

ステップ2. Raspbian I2CおよびSPIインターフェースの有効化
WM1302モジュールはSPIおよびI2C経由でRaspberry Piと通信します。しかし、これら2つのインターフェースはRaspbianではデフォルトで有効になっていないため、開発者はWM1302を使用する前にそれらを有効にする必要があります。ここでは、SPIおよびI2Cインターフェースを有効にするコマンドライン方法を紹介します。
まず、SSH経由またはモニターを使用してRaspberry Piにログインし(Pi HatのGPSモジュールがPiのハードウェアUARTピンを占有するため、シリアルコンソールは使用しないでください)、コマンドラインでsudo raspi-configと入力してRaspberry Piソフトウェア設定ツールを開きます:
sudo raspi-config

-
Interface Optionsを選択します -
SPIを選択し、Yesを選択して有効にします -
I2Cを選択し、Yesを選択して有効にします -
Serial Portを選択し、"Would you like a login shell..." に対してNoを選択し、"Would you like the serial port hardware..." に対してYesを選択します -
この後、これらの設定が動作することを確認するために Raspberry Pi を再起動してください。
ステップ3. SX1302 ソースコードの取得とコンパイル
それでは git をインストールし、github から sx1302_hal(SX1302 LoRa ゲートウェイ用のライブラリとプログラム)をダウンロードしましょう:
sudo apt update
sudo apt install -y git
cd ~
git clone https://github.com/Lora-net/sx1302_hal
sx1302_hal フォルダに移動してすべてをコンパイルします:
cd ~/sx1302_hal
make
ステップ4. Semtech SX1302 パケットフォワーダーの実行
特定の USB ポートを取得するには、以下の手順に従ってください:
lsusb
私の場合、WM1302 モジュールの Product ID は 8047 です
pi@raspberrypi:~/sx1302_hal/packet_forwarder $ lsusb
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
Bus 001 Device 002: ID 2109:3431 VIA Labs, Inc. Hub
Bus 001 Device 003: ID 2886:8047 Seeed Technology Co., Ltd. WM1302 USB Port
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
次に、Product ID 8047 の USB デバイスを取得します。
sudo dmesg | grep 8047
sudo modprobe cdc_acm
私の場合、USB ポート番号は 1-1.3 です。
pi@raspberrypi:~/sx1302_hal/packet_forwarder $ sudo dmesg | grep 8047
[ 215.459617] usb 1-1.3: New USB device found, idVendor=2886, idProduct=8047, bcdDevice= 2.00
これで以下を使用してデバイスポートを取得できます:
sudo dmesg | grep 1-1.3
pi@raspberrypi:~/sx1302_hal/packet_forwarder $ sudo dmesg | grep 1-1.3
[ 215.364299] usb 1-1.3: new full-speed USB device number 3 using xhci_hcd
[ 215.459617] usb 1-1.3: New USB device found, idVendor=2886, idProduct=8047, bcdDevice= 2.00
[ 215.459643] usb 1-1.3: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 215.459657] usb 1-1.3: Product: WM1302 USB Port
[ 215.459669] usb 1-1.3: Manufacturer: SEEED
[ 215.459680] usb 1-1.3: SerialNumber: 4E100336FF7F
[ 215.543301] cdc_acm 1-1.3:1.0: ttyACM0: USB ACM device
つまり私の場合、USB デバイスは ttyACM0 です。global_conf.json.sx1250.xxxxx.USB のデフォルト USB デバイス設定は ttyACM0 なので、ここでは何もする必要がありません。
デバイスが他の USB ポートを使用している場合、sed コマンド sed -i 's/search_string/replacement_string/g' filename を使用して、対応する地域の global_conf.json.sx1250.xxxxx.USB 設定ファイルを変更できます。
使用しているモジュールに基づいて、対応する global_conf.json.sx1250.xxxxx で希望する LoRaWAN ネットワークサーバー server_address とゲートウェイ EUI gateway_ID を選択し、up/down port を 1700 に変更します。その後、以下のコードを実行してコンセントレーターを開始します:
cd ~/sx1302_hal/packet_forwarder
# Please select one of the following comands based on your module
# for WM1302 LoRaWAN Gateway Module (USB) - EU868
./lora_pkt_fwd -c global_conf.json.sx1250.EU868.USB
# for WM1302 LoRaWAN Gateway Module (USB) - US915
./lora_pkt_fwd -c global_conf.json.sx1250.US915.USB
これで、パケットフォワーダーが正常に動作できるようになりました。LoRaWAN ネットワークサーバー(TTN や ChripStack など)にデータを正常に転送するには、サーバー側でいくつかの設定を行う必要があります。
そのためには、まず構築した Raspberry Pi ゲートウェイを LoRa ネットワークサーバーに登録する必要があります。TTN を例に取ると、TTN コンソール にログインし、左側のパネルの Gateways ボタンをクリックして Register gateway をクリックします。Gateway EUI、Gateway Server address、Frequency plan を入力し、他のオプションはデフォルト設定のままにします。
-
Gateway EUI: ゲートウェイの 64 ビット一意識別子。
-
Gateway Server address: ネットワークサーバーがデプロイされているクラスターの URL(例:
eu1.cloud.thethings.network)。 -
Frequency plan: 地域に基づいて対応する周波数プランを設定します。ヨーロッパの場合は
Europe 863-870 MHz (SF9 for RX2-recommended)、米国の場合はUnited States 902-928 MHz, FSB 2。

ゲートウェイの登録が正常に完了したら、CTRL + c を押して lora_pkt_fwd を停止し、global_conf.json.sx1250.xxxx 設定ファイルを編集・確認して、"gateway_ID" と "server_address" エントリが LNS の設定と正確に一致することを確認します。
...
"gateway_conf": {
"gateway_ID": "AA555A0000000000",
/* change with default server address/ports */
"server_address": "eu1.cloud.thethings.network",
"serv_port_up": 1700,
"serv_port_down": 1700,
...
./lora_pkt_fwd -c global_conf.json.sx1250.xxxxx コマンドを使用して lora_pkt_fwd を再起動すると、Raspberry Pi ゲートウェイが TTN に接続されていることを確認できるはずです。
FAQ
すべての設定が正しくても、デバイスがネットワークサーバーに参加できないのはなぜですか?
ハードウェアの違いにより、特定のモジュール(WM1302-US915 USB バージョン)がダウンリンクデータパケットを適切に送信できない場合があることが確認されています。この問題を修正するには、マクロ TX_JIT_DELAY(このマクロは /sx1302_hal/packet_forwarder/src/jitqueue.c にあります)の値を 40000 から 120000 に変更し、sx1302_hal を再作成してください。
ソース
認証
技術サポート & 製品ディスカッション
技術的な問題については、フォーラム に投稿してください。
弊社製品をお選びいただき、ありがとうございます!弊社製品での体験が可能な限りスムーズになるよう、さまざまなサポートを提供しています。さまざまな好みやニーズに対応するため、複数のコミュニケーションチャンネルを提供しています。
