SORACOM Developers

SORACOM Air for LoRaWAN

STM32L0 LoRa Discovery Kit をセットアップする

はじめに

このドキュメントでは、STMicroelectronics社製STM32L0 LoRa Discovery Kit(以下、Discovery Kit)のセットアップ方法を紹介します。SORACOM Air for LoRaWAN の全体像やユーザコンソールの使い方は SORACOM Air for LoRaWAN Getting Started を参照してください。

当ガイドの前提は以下のとおりです。

なお、当ガイドの実施にあたっては、以下が必要となります。Discovery Kit に同梱の用紙およびご購入いただいた方には、メールにてお送りしています。

ステップ 1: Discovery Kit の受け入れをする

Discovery Kit の利用開始にあたっては、ユーザーコンソールの「発注」画面で受け取り処理が必要です。ユーザーコンソールにログインし、受け取り確認ボタンをクリックしてください。

ユーザーコンソールで受け取り確認ボタンを押すと、Discovery Kit がアカウントに登録されます。受け取り確認ボタンが押されない場合、ソラコムから発送後3日で自動的にご発注時のアカウントに登録されます。LoRaWAN デバイスには基本料金はありませんが、サービスの利用状況に応じて料金が発生します。 LoRaWAN デバイスをご発注時とは別のアカウントに登録することはできません。

ステップ 2: Discovery Kit の開発環境を準備する

本製品は開発環境としてKeil 社のMDK-ARMを利用します。 ご利用開始前に事前準備としてお手持ちのPCへ必要なソフトウェアをインストールしてください。

PC要件

※ 本資料ではmbedによる開発環境については割愛させて頂きます。

ST-Link Utility のインストール

ST-Link Utility では、LoRa ディスカバリ・ボードに搭載された ST-LINK / V2-1 デバッガを介して、Flash メモリの書込み/消去/アップロード/ダウンロードが実行できます。また、ST-LINK / V2-1 デバッガに必要なWindows デバイスドライバもインストールされます。

こちらより ST-LINK Utility のインストーラをダウンロードしてインストールして下さい。

上記のサイトを開き、最下部右側に「Get Software」というアイコンがありますので、そこをクリックしてダウンロードして下さい。(ST.com の MyST へのログインが必要になります。)

Keil 社 MDK-ARM のインストール

以下 URL より Keil 社 MDK-ARM をダウンロードしてインストールを行って下さい。 http://www.keil.com/mdk-st

当ガイドでは Keil MDK-ARM v5.22 以降が必要ですので、以前のバージョンの MDK-ARM を既にお持ちの場合は、今回使用する MDK-ARM を別のディレクトリにインストールすることをお勧めします。

重要:Keil の Web サイト(または、STM32L0 LoRa Discovery Kit をご購入のお客様へのメール)に記載されている STM32F0 / STM32L0 の特別なシリアル番号を使用して製品をアクティブにしてください。(未アクティブ状態ですとコンパイル可能サイズに制限があります。)

  • 製品シリアル番号 (PSN):
    STM32L0 LoRa Discovery Kit 製品に同梱のご案内、およびご購入のお客様のOperatorのメールアドレスにご連絡します。

アクティベーション方法

  1. インストールした MDK-ARM のアイコン上で右クリックし、「管理者として実行」を選びます
  2. 「File」メニューから「License Management」=>「Single-User License」を選択します
  3. 「Get LIC via Internet…」を選択後、OK をクリックし、製品登録を行います。その際、「Product Serial Number」欄に「U1E21-CM9GY-L3G4L」を入力し連絡先情報を入力し、最後に「Submit」を選択します。
  4. 数分後にメールでライセンス ID コード(LIC)が登録したメールアドレス宛におくられてきます
  5. 「License Management」の「New License ID Code (LIC)」欄に送られてきた LIC を入力して、「Add LIC」を選択します

STM32L0

MDK-ARM デバイスパックのインストール

Keil 社 MDK-ARM をインストール後、「Pack Installer」の実行についてポップアップが表示されます。この実行により、必要なデバイスのサポートパックがインストールされ、MDK-ARM 上で特定のデバイスファミリ向けの開発がスタートできます。

STM32L0

注意:図の右下にある青の更新パラメータ(%表記)が 100%になるのをお待ち頂いてから、該当のデバイスパックをインストールします。必ず更新パラメータが 100%まで到達しててから作業を行ってください。 100%に到達した後、画面左にあるDeviceベンダ一覧からSTMicroelectronicsを選択すると、右側の画面にインストール可能なパッケージが表示されます。

STM32L0

パックインストーラにて、以下の 3 つのデバイスパックをインストールして下さい。

更新が完了しても該当の製品ファミリが表示されない場合、以下より Keil.STM32F0xxDFP と Keil.STM32L0xxDFP をダウンロードして下さい。

https://www.keil.com/dd2/pack/

次図のように、Keil.STM32F0xxDFP と Keil.STM32L0xxDFP の右側のアイコンが緑色になり「Up to date」と表示されていれば無事デバイスパックがインストールされたことになります。

STM32L0

「Pack Installer」のポップアップを閉じても、MDK-ARM を起動後に表示される以下のアイコンにより再度「Pack Installer」を表示させることができます。

STM32L0

MDK-ARM 日本向けコンパイルオプションの追加

MDK-ARMを起動し、”Options for Target”ボタンをクリックします。

STM32L0

”C/C++”タブをクリックし、Processor Symbols→Define部分に以下の定義を追加します。

STM32L072xx,USE_B_L072Z_LRWAN1, USE_HAL_DRIVER,REGION_AS923, REGION_AS923_JAPAN, APPKEY_USE_TRNG

※既に設定されている場合は割愛して頂いて構いません

STM32L0

ターミナルソフトウェアのインストール

本ドキュメントではTeraTermを利用した解説を行います。下記サイトよりダウンロードしてインストールしてください。 https://ja.osdn.net/projects/ttssh2/

ソラコム向けDiscovery Kitパッケージのダウンロード

STM32L0 LoRa Discovery Kit をご購入のお客様へのメールに記載しているURLよりソラコム向けDiscovery Kitのソフトウェアパッケージをダウンロードしてください。本パッケージは日本の周波数運用(AS923)に対応したLoRaプロトコルスタックと複数のサンプルプログラムが同梱されていますので、必ずこちらをご利用下さい。ダウンロードしたzipファイルを任意のフォルダに解凍しておきます。

ソラコム向けDiscovery KitパッケージのダウンロードURLは、STM32L0 LoRa Discovery Kit 製品に同梱のご案内、およびご購入のお客様のOperatorのメールアドレスにご連絡します。

ステップ 3: Discovery Kit をセットアップする

まず、Discovery Kit のSMAコネクタに付属のアンテナ を接続します。続いてデバッグ用のUSBコネクタとお手持ちのPCをUSBケーブル(micro-B)で接続します。コネクタの横のLED(LD5)が(点滅ではなく)点灯したらPCがボードを認識したことになります。以上でセットアップは完了です。

STM32L0

ステップ 4: Discovery Kit でデータを送信する

LoRaGWの準備

LoRaでデータを送信するにはGateway(以下GW)が必要です。ソラコムがご提供するLoRaGW(所有 or 共有)をご準備下さい。あるいはSORACOM LoRa Spaceもご利用可能です。 詳細は既存のURLへ飛ばす

サンプルプログラム

ステップ2でダウンロードしたパッケージを確認すると以下のフォルダにサンプルプログラムが格納されています。 ..\Lora_soracom_rev1\Projects\Multi\Applications\LoRa

STM32L0

試しにサンプルプログラムを用いてLoRaネットワークへデータを送信してみましょう。

..\Lora_soracom_rev1\Projects\Multi\Applications\LoRa\End_Node\MDK-ARM\B-L072Z-LRWAN1

上記のフォルダに格納されているLora.uvprojxをダブルクリックするとKeil MDK ARMが起動します。

プロジェクトのビルド

Tera Termの設定

TeraTermを使用してデバッグ出力を監視します。 次の設定を使用します。

STM32L0

以上で出力準備ができましたので、リセットボタン(黒のボタン、B2)を押して先ほど書き込んだプログラムを実行して下さい。

ターミナル上での出力確認

本プログラムではLoRaネットワークへの接続方式=OTAAになっておりますので、リセット後の最初にJOIN処理が行われます。

下記のようにJOIN REQUEST送出後、JOINEDというメッセージが表示されればLoRaネットワークへの接続が成功したことになります。(ネットワーク、GWの通信状況により接続までに複数回JOIN REQUESTを送信する場合があります)

STM32L0

その後デバイスは定期的にサンプルデータを送信します。(Defaultでは10秒間隔)Tx Doneと表示されていてば、デバイスからは正常にLoRaパケットを送出できたことを意味します。RxはLoRaWANにおけるRX1/Rx2を意味します。特に下りのデータがない場合はRxはそのまま満了するためrxTimeout が表示され、下りの受信windowはクローズされます。本サンプルプログラム(EndNode)ではセンサ非搭載の場合はnullのセンサデータ(0x00000000000000fe)が送信されます。

STM32L0

ソラコムコンソール(Harvest)上での受信確認

では実際に送信されたデータがGWを経由して受信できているか確認してみましょう。 予め下記を参照してグループ設定を行って下さい。 https://dev.soracom.io/jp/start/lora_uc_device/

ソラコムコンソールにログインし、メニュー→LoRaデバイスのタブをクリックします。一覧から利用しているデバイスにチェックを入れ、”データの確認”をクリックします。正常に受信されていれば下記のようにコンソール上(Harvest)にデバイスから送信されたデータが表示されます。以上でサンプルプログラムによるデータ送信確認は終了です。

STM32L0

送信間隔の変更

先ほどBuildしたProjectのmain.cを開いてみましょう。 87行目の #define APP_TX_DUTYCYCLE 10000 は送信間隔が1000ms(10s)であることを意味しています。それでは間隔を15sに変更するため、 #define APP_TX_DUTYCYCLE 15000 に変更して再度Builld→Download→リセットしてみましょう。今度は送信間隔が15s間隔に変更されている事が確認できます。

ステップ 5: Discovery Kit でデータを受信する

データの受信については以下のガイドを参照して、コンソール上(あるいはAPI)でダウンリンクデータの設定を行って下さい。

応用編3:ダウンリンク通信機能を使ってデバイスでデータを受信する

コンソール上でダウンリンクデータの設定を行うと、設定されたデータはソラコムNetwork Server内にセットされ、次のUplink通信が来るのを待ちます。以下のようにRx windowにてソラコムコンソールから送信したデータを受信できていれば成功です。

STM32L0

応用編: カスタマイズ

LoRaWANに関連するパラメータの変更方法を紹介します。 BuildされたProject内に格納されている Comissioning.h,RegionAS923.h,hw_conf.h を修正することで各種設定の変更が可能です。

ファイル名 パス
Comissioning.h ¥STM32CubeExpansionLRWANV1.1.1¥Projects¥Multi¥Applications¥LoRa¥End_Node¥inc
RegionAS923.h ¥STM32CubeExpansionLRWANV1.1.1¥Middlewares¥Third_Party¥Lora¥Mac¥region
hw_conf.h ¥STM32CubeExpansionLRWANV1.1.1¥Projects¥Multi¥Applications¥LoRa¥End_Node¥inc

STM32L0 STM32L0

※Commisioning.h内のDevEUI/AppEUI/Appkeyのコードについては一切の修正を加えないでください。別の値に書き換えてしまうと二度とソラコムLoRaWANネットワークにJOIN出来なくなります。その他パラメータについてもEIRPやLBTなど、変更内容によっては電波法違反になる可能性がありますので無線有識者以外のパラメータ変更はご注意下さい。 ※ST-Link Utility他による「Erase Chip」といった初期化処理は行わないでください。当社より出荷した製品には先の注意書きにも記載したDevEUI等のパラメータがすでに書き込まれた状態で出荷されており、初期化処理などで消去してしまうとソラコムLoRaWANネットワークにJOINするための情報が失われてしまうためです。(ダウンロード等の転送処理で消去されることはありませんので、通常の利用においては問題とはなりえませんのでご安心してお使いください。) ※本作業によるいかなる不具合、生ずる不利益について弊社では一切の責任を負いません。

トラブルシュート

「ダウンロード」で失敗する

コンパイル後、バイナリをボードへ転送する「ダウンロード」を実行した際に、下記のように失敗する場合があります。

ダウンロードに失敗

※表示が若干違うかもしれませんが、ダウンロードに失敗している事には変わりありません

対策

これはダウンロードに使用するツールが違っているために発生します。ダウンロードには ST-Link Debugger を使用するに指定します。

手順は以下の通りです。

MDK-ARMの “Options for Target” ボタンで表示される設定画面から「Debug」タブの「Use」で ST-Link Debugger を選択し、その後「Settings」ボタンをクリックします。

Options for Target

次の画面では「Debug Adapter」が ST-LINK/V2-1 になっている事と、「SW Device」のSWDIOに何かしらのデバイス名が表示されていれば正常です。認識できていない場合は “No ST-LINK detected” と表示されます。

Options for Target

STM32L0 LoRa Discovery Kitを接続しているのに “No ST-LINK detected” と表示されてしまう場合は「Target Com」を SW から JTAG に変更し、再度 SW に戻して再認識させてみてください。

以上の手順で、SWDIOにデバイスが表示されれば成功していますので、OKボタンを押して設定画面を閉じ、改めてダウンロードを行ってください。

はじめに

SORACOM Air for セルラー

SORACOM Air for LoRaWAN

SORACOM Air for Sigfox

SORACOM Beam

SORACOM Canal

SORACOM Endorse

SORACOM Funnel

SORACOM Gate

SORACOM Harvest

SORACOM Inventory

SORACOM Junction

pagetop