Après la disponibilité d'une nouvelle pile Lorawan® améliorée en fonctionnalité dans le modem LORA Basics ™, SemTech a décidé de transmettre le nœud loramac en mode de maintenance (les correctifs de bogue critiques seront toujours pris en charge).
Le modem LORA Basics ™ est la plate-forme implémentant de nouvelles fonctionnalités de Lorawan (c.-à-d. Relais, CSMA) et prendra en charge les améliorations futures introduites par la Lora Alliance (par exemple Lorawan 1.2). Alors que les transitions de pile Loramac-Node anciennement introduites vers le mode de maintenance SemTech recommandent aux clients d'utiliser le modem LORA Basics ™ pour les nouveaux conceptions.
L'objectif de ce projet est de montrer un exemple de mise en œuvre de la pile Lorawan.
Ce projet a 2 branches actives en place.
| Bifurquer | L2 spec | RP Spec | Tag / jalon | Classe | Commentaires |
|---|---|---|---|---|---|
| 1.0.4 / 1.1.0 + fcntdwn errata | 2-1.0.3 | V4.7.0 | ABC | Lorawan L2 1.0.4 - Sortie | |
| maître | 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 - Ajoute la prise en charge de la modulation LR-FHSS |
Ce projet implémente entièrement Classa, ClassB et ClassC End-Device Classes et fournit également SX1272 / 73, SX1276 / 77/78/79, les pilotes radio SX1261 / 2 et LR1110.
Pour chaque exemple de plate-forme actuellement pris en charge, des applications sont fournies.
LORAMAC / FUOTA-TEST-01 : Scénario de test FUOTA 01 Exemple d'exemple de l'application. (Sur la base des packages communs de l'application fournis)
LORAMAC / Période UpLink-LPP : Classa / B / C Exemple d'application d'exemple de périphérique. Préparent périodiquement un cadre en utilisant le protocole LPP Cayenne. (Sur la base des packages communs de l'application fournis)
Ping-Pong : Exemple de lien point à point RF.
RX-SENSI : Exemple d'application utile pour mesurer le niveau de sensibilité radio à l'aide d'un générateur RF.
TX-CW : Exemple d'application pour montrer comment générer une transmission d'onde continue RF.
Remarque : chaque exemple d'application Lorawan (Loramac / *) comprend une implémentation de l'alliance lora; Protocole de certification Lorawan.
Remarque : La documentation de l'API Lorawan Stack peut être trouvée sur: http://stackforce.github.io/loramac-doc/
Ce projet fournit actuellement une prise en charge des plateformes ci-dessous.
Ce projet peut être porté vers d'autres plateformes en utilisant différents MCU de ceux actuellement pris en charge.
Le document de guide de portage fournit des lignes de guidage sur la façon de porter le projet vers d'autres plates-formes.
Namote72
Nucléolxxx - kit de découverte
SKIM880B, SKIM980A, SKIM881AXL
SAMR34
Veuillez suivre les instructions fournies par le document de l'environnement de développement.
Clone le référentiel de GitHub
$ git clone https://github.com/lora-net/loramac-node.git loramac-nodeLe projet Loramac-Node contient des sous-modules Git qui doivent être initialisés
$ cd loramac-node
$ git submodule update --init Ce projet prend actuellement en charge 3 éléments sécurisés différents soft-se , lr1110-se et atecc608a-tnglora-se .
Afin de personnaliser le fichier binaire MCU auprès des clés Lorawan EUIS ou / et AES128, il faut suivre les instructions fournies par Soft-Se, LR1110-SE et ATECC608A-TNGLORA-SE
Soft-SE est une pure émulation de logiciels d'un élément sécurisé. Cela signifie que tout est situé sur l'hôte MCU Memories. Les touches DevEUI , JoinEUI et AES128 keys peuvent être stockées sur une mémoire non volatile via des API dédiées.
Afin de mettre à jour l'identité finale ( DevEUI , JoinEUI et AES128 keys ), il faut mettre à jour le fichier se-identity.h situé sous ./src/peripherals/soft-se/ Directory.
Remarque: Dans les versions précédentes de ce projet, cela a été réalisé dans les fichiers Commissioning.h situés dans chaque exemple de répertoire fourni.
La mise en œuvre de l'abstraction LR1110-SE gère tous les échanges requis avec la radio Crypto-moteur LR1110.
Toutes les puces radio LR1110 sont pré-provisoires hors de l'usine afin d'être utilisées avec le service de jointure de périphérique LORA Cloud.
Dans le cas où d'autres serveurs de jointure doivent être utilisés, les touches DevEUI , Pin , JoinEUI et AES128 keys peuvent être mises à jour en suivant les instructions fournies sur le chapitre "13. Provisioning LR1110" du manuel d'utilisation LR1110.
Lorsque l'option de compilation SECURE_ELEMENT_PRE_PROVISIONED est définie ON le LR1110-SE utilisera les données provisionnées d'usine ( DevEUI , JoinEUI et AES128 keys ).
Lorsque l'option de compilation SECURE_ELEMENT_PRE_PROVISIONED est définie OFF le LR1110-SE doit être provisoire en suivant l'une des méthodes décrites au chapitre "13. Provisioning LR1110" du manuel d'utilisation LR1110. Le DevEUI , Pin et JoinEUI peuvent être modifiés en modifiant le fichier se-identity.h situé dans ./src/peripherals/lr1110-se/ répertoire.
La mise en œuvre de l'abstraction ATECC608A-TNGLORA-SE gère tous les échanges requis avec les éléments sécurisés ATECC608A-Tnglora et Atecc608B-Tnglora.
Cet élément sécurisé est toujours pré-provisoire et son contenu ne peut pas être modifié.
Exemple périodique de la liaison vers le haut de la plate-forme Nucleol476 avec LR1110MB1DIS MBED SHIELD ET Utilisation de l'élément sécurisé pré-provisionné 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 " ..
$ makeExemple de ping-pong utilisant la modulation LORA pour la plate-forme Nucleol476 avec LR1110MB1DIS MBED SHIELD
$ 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 " ..
$ makeExemple périodique de la liaison vers le haut de la plate-forme Nucleol476 avec LR1110MB1DIS MBED SHIELD ET Utilisation de l'élément sécurisé pré-provisionné 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/Exemple de ping-pong utilisant la modulation LORA pour la plate-forme Nucleol476 avec LR1110MB1DIS MBED SHIELD
// 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/ Les exemples periodic-uplink-lpp et fuota-test-01 permettent de réinitialiser le stockage NVM via l'interface série.
Afin de réinitialiser le contenu NVM, il faut appuyer sur les touches de clavier ESC + N sur un terminal série.
Le terminal série affichera ce qui suit après que les touches de clavier ESC + N soient touchées. Après avoir réinitialisé le dispositif de fin, le NVM propre sera utilisé.
ESC + N
NVM factory reset succeed
PLEASE RESET THE END-DEVICE