メインコンテンツまでスキップ

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

pir

pir

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 モジュールは 2 つの異なるインターフェースバージョンを提供しています。SPI バージョンが現在主流の選択肢です。USB バージョンをお好みの場合、ハードウェアの変更により、モジュールが正常に機能するために元の公式ファームウェアに特定の調整が必要です。詳細については、FAQ 部分をご参照ください。

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 フロントエンドで -139 dBm @SF12 まで対応;TX 出力は @3.3V で最大 26 dBm。
  • CE、FCC、TELEC 認証取得済み。最終製品の認証プロセスを簡素化。

ハードウェア概要​

図​

pir

ピン配置​

pir

pir


Raspberry Pi ピン配置マッピング​

40 ピン番号(BOARD#)Raspberry Pi GPIO(BCM#)WM1302 Pi HAT ピン配置
13.3VNC
25V5V
3GPIO 2I2C_SDA
45V5V
5GPIO 3I2C_SCL
6GNDGND
7GPIO 4NC
8GPIO 14GPS_RXD
9GNDGND
10GPIO 15GPS_TXD
11GPIO 17SX1302_RESET
SPI バージョン:アクティブ HIGH
USB バージョン:アクティブ LOW
12GPIO 18SX1262_BUSY
13GPIO 27NC
14GNDGND
15GPIO 22NC
16GPIO 23SX1262_DIO1
173.3VNC
18GPIO 24SX1262_DIO2
19GPIO 10SPI_MOSI
20GNDGND
21GPIO 9SPI_MISO
22GPIO 25GPS_RST
23GPIO 11SPI_SCK
24GPIO 8SX1302_CS
25GNDGND
26GPIO 7NC
27GPIO 0I2C_SDA(EEPROM)
28GPIO 1I2C_SCL(EEPROM)
29GPIO 5SX1262_RST
30GNDGND
31GPIO 6SX1262_CS
32GPIO 12GPS_WAKE_UP
33GPIO 13NC
34GNDGND
35GPIO 19NC
36GPIO 16NC
37GPIO 26NC
38GPIO 20NC
39GNDGND
40GPIO 21NC

仕様​

地域EU868US915
周波数863-870MHz902-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 から 85°C
寸法30 mm(幅)× 50.95 mm(長さ)
認証CE

アプリケーション​

  • LPWAN ゲートウェイデバイス開発

  • あらゆる長距離無線通信アプリケーション開発

  • LoRa® および LoRaWAN® アプリケーションの学習と研究

寸法​

pir

入門ガイド​

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 ケーブル

必要なソフトウェア​


ステップ1. WM1302 Raspberry Pi Hat の取り付けと WM1302 モジュールのインストール​

まず Raspberry Pi の電源を切り、以下の写真のように WM1302 モジュールを Pi Hat に挿入してネジで固定します。

pir

ステップ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

pir

  1. Interface Options を選択

  2. SPI を選択し、Yes を選択して有効にする

  3. I2C を選択し、Yes を選択して有効にする

  4. Serial Port を選択し、"Would you like a login shell..." に対して No を選択し、"Would you like the serial port hardware..." に対して Yes を選択

  5. この後、これらの設定が動作することを確認するために 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)

ここでは cat /sys/kernel/debug/gpio コマンドを使用します。これはカーネルの debugfs ファイルシステムによって提供されるデバッグインターフェースです。主に Raspberry Pi 上のすべての GPIO ピンのリアルタイムステータスを監視するために使用されます。

gpiochip0 が実際に興味のある部分です:WM1302 モジュールは Pi HAT の 40ピンヘッダー経由で Raspberry Pi に接続され、すべてこのコントローラーによって管理されます。

pi@raspberrypi:~/sx1302_hal/packet_forwarder $ cat /sys/kernel/debug/gpio
gpiochip0: GPIOs 571-624, parent: platform/1f000d0000.gpio, pinctrl-rp1:
gpio-571 (ID_SDA )
gpio-572 (ID_SCL )
gpio-573 (GPIO2 )
gpio-574 (GPIO3 )
gpio-575 (GPIO4 )
gpio-576 (GPIO5 )
gpio-577 (GPIO6 )
gpio-578 (GPIO7 |spi0 CS1 ) out hi ACTIVE LOW
gpio-579 (GPIO8 |spi0 CS0 ) out hi ACTIVE LOW
gpio-580 (GPIO9 )
gpio-581 (GPIO10 )
gpio-582 (GPIO11 )
gpio-583 (GPIO12 )
gpio-584 (GPIO13 )
gpio-585 (GPIO14 )
gpio-586 (GPIO15 )
gpio-587 (GPIO16 )
gpio-588 (GPIO17 )
gpio-589 (GPIO18 )
gpio-590 (GPIO19 )
gpio-591 (GPIO20 )
gpio-592 (GPIO21 )
gpio-593 (GPIO22 )
gpio-594 (GPIO23 )
gpio-595 (GPIO24 )
gpio-596 (GPIO25 )
gpio-597 (GPIO26 )
gpio-598 (GPIO27 )
gpio-599 (PCIE_RP1_WAKE )
gpio-600 (FAN_TACH )
gpio-601 (HOST_SDA )
gpio-602 (HOST_SCL )
gpio-603 (ETH_RST_N |phy-reset ) out hi ACTIVE LOW
gpio-604 (- )
gpio-605 (CD0_IO0_MICCLK |cam0_reg ) out lo
gpio-606 (CD0_IO0_MICDAT0 )
gpio-607 (RP1_PCIE_CLKREQ_N )
gpio-608 (- )
gpio-609 (CD0_SDA )
gpio-610 (CD0_SCL )
gpio-611 (CD1_SDA )
gpio-612 (CD1_SCL )
gpio-613 (USB_VBUS_EN )
gpio-614 (USB_OC_N )
gpio-615 (RP1_STAT_LED |PWR ) out hi ACTIVE LOW
gpio-616 (FAN_PWM )
gpio-617 (CD1_IO0_MICCLK |cam1_reg ) out lo
gpio-618 (2712_WAKE )
gpio-619 (CD1_IO1_MICDAT1 )
gpio-620 (EN_MAX_USB_CUR )
gpio-621 (- )
gpio-622 (- )
gpio-623 (- )
gpio-624 (- )

システムが debugfs を自動的にマウントしない場合は、まず手動でマウントする必要があります:

sudo mount -t debugfs none /sys/kernel/debug

この情報に基づいて、GPIO ピン gpio-588, gpio-589, gpio-576 とそれに対応する物理ピンアウトインデックス (GPIO17), (GPIO18), (GPIO5) の関係を見つけることができます。

注記

包括的な GPIO ピンマッピングについては、Raspberry Pi ピンアウトマッピングテーブルを参照してください。

取得した GPIO 情報に基づいて、以下のように 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

これで、パケットフォワーダーが正常に動作できるようになりました。LoRaWAN ネットワークサーバー(TTN や ChirpStack など)にデータを正常に転送するには、サーバー側でいくつかの設定を行う必要があります。

そのためには、まず構築した 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。

pir


ゲートウェイの登録が正常に完了したら、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 を再作成してください。

ソース​

認証​

技術サポート & 製品ディスカッション​

技術的な問題については、フォーラム に投稿してください。

弊社製品をお選びいただきありがとうございます!弊社製品での体験が可能な限りスムーズになるよう、さまざまなサポートを提供しています。さまざまな好みやニーズに対応するため、複数のコミュニケーションチャンネルを提供しています。

Loading Comments...