Lora Basics™モデム内の新しい機能強化Lorawan®スタックの可用性に続いて、SemTechはLoramac-Nodeをメンテナンスモードに遷移させることを決定しました(重要なバグ修正は引き続きサポートされます)。
Lora Basics™Modemは、新しいLorawan機能(IEリレー、CSMA)を実装するプラットフォームであり、Lora Alliance(Lorawan 1.2など)によって導入された将来の改善をサポートします。以前に導入されたLoramac-Nodeスタックはメンテナンスモードへの移行をsemtechに移行しますが、顧客は新しいデザインにLora Basics™モデムを使用することをお勧めします。
このプロジェクトの目的は、最終デバイスのロラワンスタックの実装の例を示すことです。
このプロジェクトには、2つのアクティブなブランチがあります。
| 支店 | L2仕様 | RP仕様 | タグ/マイルストーン | クラス | コメント |
|---|---|---|---|---|---|
| 1.0.4 / 1.1.0 + fcntdwn errata | 2-1.0.3 | v4.7.0 | A/B/C | Lorawan L2 1.0.4-リリース | |
| マスター | 1.0.4 / 1.1.0 + fcntdwn errata | 2-1.0.3 | v4.7.0 | A/B/C | ロラワンL2 1.0.4 / 1.1.0 |
| v5.0.0-branch | 1.0.4 / 1.1.0 + fcntdwn errata | 2-1.0.3 | M 5.0.0 | A/B/C | Lorawan L2 1.0.4 / 1.1.0- LR -FHSS変調のサポートを追加 |
このプロジェクトは、Classa、ClassB、およびClassCの終了部門のクラスを完全に実装し、SX1272/73、SX1276/77/78/79、SX1261/2、LR1110無線ドライバーも提供します。
現在サポートされているプラットフォームの例については、アプリケーションが提供されています。
loramac/fuota-test-01 :fuotaテストシナリオ01エンドデバイスの例アプリケーション。 (提供されたアプリケーションの共通パッケージに基づく)
loramac/ripuric-uplink-lpp :classa/b/c最終デバイスの例アプリケーション。定期的にCayenne LPPプロトコルを使用してフレームをアップリンクします。 (提供されたアプリケーションの共通パッケージに基づく)
Ping-Pong :ポイントツーポイントRFリンクの例アプリケーション。
RX-SENSI :RFジェネレーターを使用して無線感度レベルを測定するのに役立つアプリケーションの例。
TX-CW :RF連続波伝達を生成する方法を示すためのアプリケーションの例。
注:各ロラワンアプリケーションの例(loramac/*)には、lora-allianceの実装が含まれています。ロラワン認定プロトコル。
注: Lorawan Stack APIドキュメントは、http://stackforce.github.io/loramac-doc/にあります。
このプロジェクトは現在、以下のプラットフォームのサポートを提供しています。
このプロジェクトは、現在サポートされているMCUとは異なるMCUを使用して他のプラットフォームに移植できます。
ポーティングガイドドキュメントでは、プロジェクトを他のプラットフォームに移植する方法に関するガイドラインを提供します。
namote72
Nuclolxxx -Discovery Kit
SKIM880B、SKIM980A、SKIM881AXL
SAMR34
開発環境文書が提供する指示に従ってください。
Githubからリポジトリをクローンします
$ git clone https://github.com/lora-net/loramac-node.git loramac-nodeLoramac-Nodeプロジェクトには、初期化する必要があるGitサブモジュールが含まれています
$ cd loramac-node
$ git submodule update --initこのプロジェクトは現在、3つの異なるSecure-Elements soft-se 、 lr1110-se 、 atecc608a-tnglora-se実装をサポートしています。
MCUバイナリファイルをLorawan EUISまたは/およびAES128キーでパーソナライズするには、Soft-SE、LR1110-SE、ATECC608A-TNGLORA-SE Chaptersが提供する指示に従う必要があります。
Soft-SEは、安全な要素の純粋なソフトウェアエミュレーションです。これは、すべてがホストMCUのメモリにあることを意味します。 DevEUI 、 JoinEUI 、およびAES128 keys 、専用のAPIを介して不揮発性メモリに保存される場合があります。
End-Device Identity( DevEUI 、 JoinEUIおよびAES128 keys )を更新するには、 ./src/peripherals/soft-se/ soft-se/ディレクトリの下にあるse-identity.hファイルを更新する必要があります。
注:このプロジェクトの以前のバージョンでは、これは、提供された各例のディレクトリの下にあるCommissioning.hファイル内で行われました。
LR1110-SE抽象化の実装は、LR1110 Radio Crypto-Engineとの必要なすべての交換を処理します。
すべてのLR1110ラジオチップは、LORA Cloud Device Joinサービスで使用するために、工場から事前に解決されています。
他の結合サーバーが使用される場合、 DevEUI 、 Pin 、 JoinEUIおよびAES128 keys 、LR1110ユーザーマニュアルの第13章「LR1110プロビジョニング」に記載されている指示に従って更新できます。
コンパイルオプションSECURE_ELEMENT_PRE_PROVISIONEDがLR1110-SE ON設定されている場合、Factory Provisioned Data( DevEUI 、 JoinEUI 、 AES128 keys )が使用されます。
コンパイルオプションSECURE_ELEMENT_PRE_PROVISIONEDがLR1110-seのOFFに設定されている場合、LR1110ユーザーマニュアルの章「LR1110プロビジョニング」で説明されている方法の1つに従ってプロビジョニングする必要があります。 DevEUI 、 Pin 、およびJoinEUI 、 ./src/peripherals/lr1110-se/ lr1110-se/ディレクトリにあるse-identity.hファイルを編集することで変更できます。
ATECC608A-TNGLORA-SE ABSTRACTION実装は、ATECC608A-TNGLORAおよびATECC608B-TNGLORAセキュアエレメントとのすべての必要な交換を処理します。
この安全な要素は常に事前に生成されており、その内容を変更することはできません。
LR1110MB1DIS MBED SHIELDを使用したNucLeol476プラットフォームの定期的なUplink-LPP例およびLR1110事前に解除されたセキュアエレメントを使用して
$ mkdir build
$ cd build
$ cmake -DCMAKE_BUILD_TYPE=Release
-DTOOLCHAIN_PREFIX= " <replace by toolchain path> "
-DCMAKE_TOOLCHAIN_FILE= " ../cmake/toolchain-arm-none-eabi.cmake "
-DAPPLICATION= " LoRaMac "
-DSUB_PROJECT= " periodic-uplink-lpp "
-DCLASSB_ENABLED= " ON "
-DACTIVE_REGION= " LORAMAC_REGION_EU868 "
-DREGION_EU868= " ON "
-DREGION_US915= " OFF "
-DREGION_CN779= " OFF "
-DREGION_EU433= " OFF "
-DREGION_AU915= " OFF "
-DREGION_AS923= " OFF "
-DREGION_CN470= " OFF "
-DREGION_KR920= " OFF "
-DREGION_IN865= " OFF "
-DREGION_RU864= " OFF "
-DBOARD= " NucleoL476 "
-DMBED_RADIO_SHIELD= " LR1110MB1XXS "
-DSECURE_ELEMENT= " LR1110_SE "
-DSECURE_ELEMENT_PRE_PROVISIONED= " ON "
-DUSE_RADIO_DEBUG= " ON " ..
$ makeLR1110MB1DIS MBEDシールドを使用したNucLool476プラットフォームのLORA変調を使用したPing-Pongの例
$ mkdir build
$ cd build
$ cmake -DCMAKE_BUILD_TYPE=Release
-DTOOLCHAIN_PREFIX= " <replace by toolchain path> "
-DCMAKE_TOOLCHAIN_FILE= " ../cmake/toolchain-arm-none-eabi.cmake "
-DAPPLICATION= " ping-pong "
-DMODULATION: " LORA "
-DREGION_EU868= " ON "
-DREGION_US915= " OFF "
-DREGION_CN779= " OFF "
-DREGION_EU433= " OFF "
-DREGION_AU915= " OFF "
-DREGION_AS923= " OFF "
-DREGION_CN470= " OFF "
-DREGION_KR920= " OFF "
-DREGION_IN865= " OFF "
-DREGION_RU864= " OFF "
-DBOARD= " NucleoL476 "
-DMBED_RADIO_SHIELD= " LR1110MB1XXS "
-DUSE_RADIO_DEBUG= " ON " ..
$ makeLR1110MB1DIS MBED SHIELDを使用したNucLeol476プラットフォームの定期的なUplink-LPP例およびLR1110事前に解除されたセキュアエレメントを使用して
// Place your settings in this file to overwrite default and user settings.
{
"cmake.configureSettings" : {
// In case your GNU ARM-Toolchain is not installed under the default
// path:
// Windows : No default path. Specify the path where the
// toolchain is installed. i.e:
// "C:/PROGRA~2/GNUTOO~1/92019-~1".
// Linux : /usr
// OSX : /usr/local
// It is required to uncomment and to fill the following line.
"TOOLCHAIN_PREFIX" : " /path/to/toolchain " ,
// In case your OpenOCD is not installed under the default path:
// Windows : C:/openocd/bin/openocd.exe
// Linux : /usr/bin/openocd
// OSX : /usr/local/bin/openocd
// Please uncomment the following line and fill it accordingly.
//"OPENOCD_BIN":"C:/openocd/bin/openocd.exe",
// Specifies the path to the CMAKE toolchain file.
"CMAKE_TOOLCHAIN_FILE" : " cmake/toolchain-arm-none-eabi.cmake " ,
// Determines the application. You can choose between:
// LoRaMac (Default), ping-pong, rx-sensi, tx-cw.
"APPLICATION" : " LoRaMac " ,
// Select LoRaMac sub project. You can choose between:
// periodic-uplink-lpp, fuota-test-01.
"SUB_PROJECT" : " periodic-uplink-lpp " ,
// Switch for Class B support of LoRaMac:
"CLASSB_ENABLED" : " ON " ,
// Select the active region for which the stack will be initialized.
// You can choose between:
// LORAMAC_REGION_EU868, LORAMAC_REGION_US915, ..
"ACTIVE_REGION" : " LORAMAC_REGION_EU868 " ,
// Select the type of modulation, applicable to the ping-pong or
// rx-sensi applications. You can choose between:
// LORA or FSK
"MODULATION" : " LORA " ,
// Target board, the following boards are supported:
// NAMote72, NucleoL073 (Default), NucleoL152, NucleoL476, SAMR34, SKiM880B, SKiM980A, SKiM881AXL, B-L072Z-LRWAN1.
"BOARD" : " NucleoL476 " ,
// MBED Radio shield selection. (Applies only to Nucleo platforms)
// The following shields are supported:
// SX1272MB2DAS, SX1276MB1LAS, SX1276MB1MAS, SX1261MBXBAS(Default), SX1262MBXCAS, SX1262MBXDAS, LR1110MB1XXS.
"MBED_RADIO_SHIELD" : " LR1110MB1XXS " ,
// Secure element type selection the following are supported
// SOFT_SE(Default), LR1110_SE, ATECC608A_TNGLORA_SE
"SECURE_ELEMENT" : " LR1110_SE " ,
// Secure element is pre-provisioned
"SECURE_ELEMENT_PRE_PROVISIONED" : " ON " ,
// Region support activation, Select the ones you want to support.
// By default only REGION_EU868 support is enabled.
"REGION_EU868" : " ON " ,
"REGION_US915" : " OFF " ,
"REGION_CN779" : " OFF " ,
"REGION_EU433" : " OFF " ,
"REGION_AU915" : " OFF " ,
"REGION_AS923" : " OFF " ,
"REGION_CN470" : " OFF " ,
"REGION_KR920" : " OFF " ,
"REGION_IN865" : " OFF " ,
"REGION_RU864" : " OFF " ,
"USE_RADIO_DEBUG" : " ON "
}
}

./build/src/apps/LoRaMac/で利用できますLR1110MB1DIS MBEDシールドを使用したNucLool476プラットフォームのLORA変調を使用したPing-Pongの例
// Place your settings in this file to overwrite default and user settings.
{
"cmake.configureSettings" : {
// In case your GNU ARM-Toolchain is not installed under the default
// path:
// Windows : No default path. Specify the path where the
// toolchain is installed. i.e:
// "C:/PROGRA~2/GNUTOO~1/92019-~1".
// Linux : /usr
// OSX : /usr/local
// It is required to uncomment and to fill the following line.
"TOOLCHAIN_PREFIX" : " /path/to/toolchain " ,
// In case your OpenOCD is not installed under the default path:
// Windows : C:/openocd/bin/openocd.exe
// Linux : /usr/bin/openocd
// OSX : /usr/local/bin/openocd
// Please uncomment the following line and fill it accordingly.
//"OPENOCD_BIN":"C:/openocd/bin/openocd.exe",
// Specifies the path to the CMAKE toolchain file.
"CMAKE_TOOLCHAIN_FILE" : " cmake/toolchain-arm-none-eabi.cmake " ,
// Determines the application. You can choose between:
// LoRaMac (Default), ping-pong, rx-sensi, tx-cw.
"APPLICATION" : " ping-pong " ,
// Select LoRaMac sub project. You can choose between:
// periodic-uplink-lpp, fuota-test-01.
"SUB_PROJECT" : " periodic-uplink-lpp " ,
// Switch for Class B support of LoRaMac:
"CLASSB_ENABLED" : " ON " ,
// Select the active region for which the stack will be initialized.
// You can choose between:
// LORAMAC_REGION_EU868, LORAMAC_REGION_US915, ..
"ACTIVE_REGION" : " LORAMAC_REGION_EU868 " ,
// Select the type of modulation, applicable to the ping-pong or
// rx-sensi applications. You can choose between:
// LORA or FSK
"MODULATION" : " LORA " ,
// Target board, the following boards are supported:
// NAMote72, NucleoL073 (Default), NucleoL152, NucleoL476, SAMR34, SKiM880B, SKiM980A, SKiM881AXL, B-L072Z-LRWAN1.
"BOARD" : " NucleoL476 " ,
// MBED Radio shield selection. (Applies only to Nucleo platforms)
// The following shields are supported:
// SX1272MB2DAS, SX1276MB1LAS, SX1276MB1MAS, SX1261MBXBAS(Default), SX1262MBXCAS, SX1262MBXDAS, LR1110MB1XXS.
"MBED_RADIO_SHIELD" : " SX1261MBXBAS " ,
// Secure element type selection the following are supported
// SOFT_SE(Default), LR1110_SE, ATECC608A_TNGLORA_SE
"SECURE_ELEMENT" : " SOFT_SE " ,
// Secure element is pre-provisioned
"SECURE_ELEMENT_PRE_PROVISIONED" : " ON " ,
// Region support activation, Select the ones you want to support.
// By default only REGION_EU868 support is enabled.
"REGION_EU868" : " ON " ,
"REGION_US915" : " OFF " ,
"REGION_CN779" : " OFF " ,
"REGION_EU433" : " OFF " ,
"REGION_AU915" : " OFF " ,
"REGION_AS923" : " OFF " ,
"REGION_CN470" : " OFF " ,
"REGION_KR920" : " OFF " ,
"REGION_IN865" : " OFF " ,
"REGION_RU864" : " OFF " ,
"USE_RADIO_DEBUG" : " ON "
}
}

./build/src/apps/ping-pong/で入手できますperiodic-uplink-lppおよびfuota-test-01例では、シリアルインターフェイスを介してNVMストレージをリセットできます。
NVMコンテンツをリセットするには、シリアル端子にESC + Nキーボードキーを押す必要があります。
シリアル端子は、 ESC + Nキーボードキーがヒットした後に次のことを示します。エンドデバイスをリセットすると、クリーンNVMが使用されます。
ESC + N
NVM factory reset succeed
PLEASE RESET THE END-DEVICE