Nach der Verfügbarkeit eines neuen und feature Enhanced Lorawan®-Stack im LORA Basics ™ -Modem hat SemTech beschlossen, den Loramac-Knoten in den Wartungsmodus zu überweisen (kritische Fehlerbehebungen werden weiterhin unterstützt).
Das LORA Basics ™ -Modem ist die Plattform, die neue Lorawan -Funktionen (IE Relay, CSMA) implementiert und zukünftige Verbesserungen unterstützen, die von der LORA Alliance (z. B. Lorawan 1.2) eingeführt wurden. Während der früher eingeführte Loramac-Node-Stack-Übergang in den Wartungsmodus Semtech empfiehlt, Kunden für neue Designs zu verwenden.
Das Ziel dieses Projekts ist es, ein Beispiel für eine Endentargung Lorawan Stack-Implementierung zu zeigen.
Dieses Projekt verfügt über 2 aktive Zweige.
| Zweig | L2 Spec | RP Spec | Tag/Meilenstein | Klasse | Kommentare |
|---|---|---|---|---|---|
| 1.0.4 / 1.1.0 + fcntdwn errata | 2-1.0.3 | v4.7.0 | ABC | Lorawan L2 1.0.4 - veröffentlicht | |
| Master | 1.0.4 / 1.1.0 + fcntdwn errata | 2-1.0.3 | v4.7.0 | ABC | Lorawan 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 | ABC | Lorawan L2 1.0.4 / 1.1.0 - Fügt Unterstützung für die LR -FHSS -Modulation hinzu |
Dieses Projekt implementiert die Klassenklassen-, Klassen- und Klassenklassen und bietet auch SX1272/73, SX1276/77/78/79, SX1261/2 und LR1110-Radiosender.
Für jede derzeit unterstützte Plattform werden Beispielanwendungen bereitgestellt.
LORAMAC/FUOTA-TEST-01 : FUOTA-Testszenario 01 Beispielanwendung für Endverzerrungen. (Basierend auf der angebotenen Anwendung Common Pakete)
LORAMAC/Periodic-UPLINK-LPP : Classa/B/C-Endverzerrungsanwendung. In regelmäßigen Abständen wird ein Rahmen mit dem Cayenne -LPP -Protokoll angehoben. (Basierend auf der angebotenen Anwendung Common Pakete)
Ping-Pong : Pittto Point RF Link Beispielanwendung.
RX-SENSI : Beispielanwendung nützlich, um die Funksensitivitätsniveau mit einem HF-Generator zu messen.
TX-CW : Beispielanwendung, um anzuzeigen, wie eine HF-kontinuierliche Wellenübertragung generiert wird.
Hinweis : Jedes Lorawan-Anwendungsbeispiel (Loramac/*) enthält eine Implementierung der Lora-Alliance; Lorawan -Zertifizierungsprotokoll.
Hinweis : Die Lorawan Stack API-Dokumentation finden Sie unter: http://stackforce.github.io/loramac-doc/
Dieses Projekt bietet derzeit Unterstützung für die folgenden Plattformen.
Dieses Projekt kann mit verschiedenen MCU auf andere Plattformen portiert werden als die derzeit unterstützten.
Das Porting Guide -Dokument enthält Leitlinien zum Portieren des Projekts auf andere Plattformen.
Namote72
Nucleolxxx - Entdeckungskit
Skim880b, Skim980a, Skim881axl
SAMR34
Bitte befolgen Sie die Anweisungen im Entwicklungsumfelddokument.
Klonen Sie das Repository aus GitHub
$ git clone https://github.com/lora-net/loramac-node.git loramac-nodeDas Loramac-Node-Projekt enthält GIT-Submodules, die initialisiert werden müssen
$ cd loramac-node
$ git submodule update --init Dieses Projekt unterstützt derzeit 3 verschiedene soft-se , lr1110-se und atecc608a-tnglora-se Implementierungen.
Um die Binärdatei MCU mit Lorawan EUIS oder//und AES128-Tasten zu personalisieren
Soft-SE ist eine reine Softwareemulation eines sicheren Elements. Es bedeutet, dass sich alles auf den MCU -Erinnerungen der Gastgeber befindet. Die AES128 keys DevEUI , JoinEUI und AES128 können durch dedizierte APIs auf einem nichtflüchtigen Speicher gespeichert werden.
Um die Endentfernungsidentität ( DevEUI , JoinEUI und AES128 keys ) zu aktualisieren, muss man die unter ./src/peripherals/soft-se/ Verzeichnis befindliche Datei se-identity.h aktualisieren.
HINWEIS: In früheren Versionen dieses Projekts wurde dies innerhalb von Commissioning.h durchgeführt.
LR1110-SE -Abstraktionsimplementierung wird mit dem LR1010-Radio Crypto-Engine alle erforderlichen Börsen abgeschlossen.
Alle LR1110-Radio-Chips werden aus der Fabrik vorbereitet, um mit dem LORA Cloud Device Join-Service verwendet zu werden.
Falls andere Join -Server verwendet werden, können die AES128 keys DevEUI , Pin , JoinEUI und AES128 aktualisiert werden, indem die in Kapitel 13. LR1110 -Bereitstellung angegebenen Anweisungen des Benutzerhandbuchs LR1110 angegeben werden.
Wenn die Kompilieroption SECURE_ELEMENT_PRE_PROVISIONED ON das LR1110-SE eingestellt ist, verwendet die fabrikbereiteten Daten ( DevEUI , JoinEUI und AES128 keys ).
Wenn die Kompilieroption SECURE_ELEMENT_PRE_PROVISIONED OFF den LR1110-SE eingestellt ist, muss ein der in Kapitel 13. LR1110-Bereitstellung "des LR110-Benutzerhandbuchs beschriebenen Methoden vorgelegt werden. Die DevEUI , Pin und JoinEUI können durch Bearbeitung der Datei se-identity.h in ./src/peripherals/lr1110-se/ geändert werden.
Die ATECC608A-TNGLORA-Se- Abstraktionsimplementierung übernimmt alle erforderlichen Börsen mit den sicheren Elementen ATECC608A-TNGLORA und ATECC608B-TNGLORA.
Dieses Sicherheitselement ist immer vorbereitet und sein Inhalt kann nicht geändert werden.
Beispiel für die NucleOL476-Plattform mit LR1110MB1DIS MBED-Schild und Verwendung von LR1110 PREC110MB1DIS-BEISPREGERUNG
$ 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 " ..
$ makePing-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 " ..
$ makeBeispiel für die NucleOL476-Plattform mit LR1110MB1DIS MBED-Schild und Verwendung von LR1110 PREC110MB1DIS-BEISPREGERUNG
// 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/ verfügbar seinPing-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/ verfügbar sein Die Beispiele periodic-uplink-lpp und fuota-test-01 ermöglichen das Zurücksetzen des NVM-Speichers über die serielle Schnittstelle.
Um den NVM -Inhalt zurückzusetzen, muss man auf einem seriellen Terminal die Tastaturtaste ESC + N treffen.
Das Serienterminal zeigt Folgendes an, nachdem die Tastaturen von ESC + N -Tastaturen getroffen wurden. Nach dem Zurücksetzen des Endentarts wird die saubere NVM verwendet.
ESC + N
NVM factory reset succeed
PLEASE RESET THE END-DEVICE