Después de la disponibilidad de una nueva y mejorada pila Lorawan® mejorada dentro del módem Lora Basics ™, Semtech ha decidido hacer la transición del nodo Loramac al modo de mantenimiento (las correcciones de errores críticas aún se admitirán).
Lora Basics ™ Modem es la plataforma que implementa nuevas características de Lorawan (es decir, Relay, CSMA) y apoyará las mejoras futuras introducidas por la Alianza Lora (por ejemplo, Lorawan 1.2). Mientras que las transiciones de pila de nodo Loramac anteriormente introdujeron al modo de mantenimiento Semtech recomiendan que los clientes usen el módem Lora Basics ™ para nuevos diseños.
El objetivo de este proyecto es mostrar un ejemplo de una implementación de la pila de lorawan de dispositivo final.
Este proyecto tiene 2 ramas activas en su lugar.
| Rama | Especificación L2 | Especificación de RP | Etiqueta/hito | Clase | Comentario |
|---|---|---|---|---|---|
| 1.0.4 / 1.1.0 + fcntdwn errata | 2-1.0.3 | V4.7.0 | ABECEDARIO | Lorawan L2 1.0.4 - Lanzado | |
| maestro | 1.0.4 / 1.1.0 + fcntdwn errata | 2-1.0.3 | V4.7.0 | ABECEDARIO | Lorawan L2 1.0.4 / 1.1.0 |
| v5.0.0-rama | 1.0.4 / 1.1.0 + fcntdwn errata | 2-1.0.3 | M 5.0.0 | ABECEDARIO | Lorawan L2 1.0.4 / 1.1.0 - Agrega soporte para la modulación LR -FHSS |
Este proyecto implementa completamente las clases de dispositivos finales ClassA, ClassB y ClassC y también proporciona controladores de radio SX1272/73, SX1276/77/78/79, SX1261/2 y LR1110.
Para cada ejemplo de plataforma compatible actualmente se proporcionan aplicaciones.
Loramac/Fuota-Test-01 : Escenario de prueba de Fuota 01 Aplicación de ejemplo de servicio final. (Basado en paquetes comunes de la aplicación proporcionada)
Loramac/periódico-suplink-lpp : classa/b/c final de ejemplo de ejemplo de servicio. Periódicamente enlace ascendente un marco utilizando el protocolo de Cayenne LPP. (Basado en paquetes comunes de la aplicación proporcionada)
Ping-pong : Punto a punto de la aplicación de ejemplo de enlace de RF.
RX-SENSI : Aplicación de ejemplo útil para medir el nivel de sensibilidad de radio utilizando un generador de RF.
TX-CW : Aplicación de ejemplo para mostrar cómo generar una transmisión de onda continua RF.
Nota : Cada ejemplo de la aplicación de Lorawan (Loramac/*) incluye una implementación de la Allianza Lora; Protocolo de certificación Lorawan.
Nota : La documentación de la API de la pila de Lorawan se puede encontrar en: http://stackforce.github.io/loramac-doc/
Este proyecto actualmente proporciona soporte para las plataformas a continuación.
Este proyecto se puede portar a otras plataformas que utilizan MCU diferentes a las que actualmente admiten.
El documento de la Guía de Porting proporciona líneas de guía sobre cómo portar el proyecto a otras plataformas.
Namote72
Nucleolxxx - kit de descubrimiento
SKIM880B, SKIM980A, SKIM881AXL
Samr34
Siga las instrucciones proporcionadas por el documento de entorno de desarrollo.
Clon el repositorio de Github
$ git clone https://github.com/lora-net/loramac-node.git loramac-nodeEl proyecto loramac-nodo contiene submódulos Git que deben inicializarse
$ cd loramac-node
$ git submodule update --init Este proyecto actualmente admite 3 implementaciones diferentes de Secure-Elements soft-se , lr1110-se y atecc608a-tnglora-se .
Para personalizar el archivo binario MCU con Lorawan Euis o/y las claves AES128, uno debe seguir las instrucciones proporcionadas por los capítulos Soft-SE, LR1110-SE y ATECC608A-Tnglora-SE
Soft-SE es una emulación de software pura de un elemento seguro. Significa que todo está ubicado en los recuerdos de MCU anfitriones. Las AES128 keys DevEUI , JoinEUI y AES128 pueden almacenarse en una memoria no volátil a través de API dedicadas.
Para actualizar la identidad del dispositivo final (las claves DevEUI , JoinEUI y AES128 keys ) uno debe actualizar el archivo se-identity.h ubicado en el directorio ./src/peripherals/soft-se/ .
Nota: En versiones anteriores de este proyecto, esto se realizó dentro de los archivos Commissioning.h H ubicados en cada directorio de ejemplo proporcionado.
La implementación de abstracción LR1110-SE maneja todos los intercambios requeridos con el motor de radio LR1110.
Todos los chips de radio LR1110 se proponen previamente fuera de fábrica para ser utilizados con el servicio de unión de dispositivos en la nube Lora.
En caso de que se utilicen otros servidores de unión, las claves DevEUI , Pin , JoinEUI y AES128 keys se pueden actualizar siguiendo las instrucciones proporcionadas en el Capítulo "13. Provisión LR1110" del Manual de usuario LR1110.
Cuando la opción de compilar se establece ON el SECURE_ELEMENT_PRE_PROVISIONED -SE, utilizará los datos aprovisionados de fábrica (las teclas DevEUI , JoinEUI y AES128 keys ).
Cuando la opción de compilar se debe OFF a SECURE_ELEMENT_PRE_PROVISIONED , se debe aprovisionar el LR1110-SE siguiendo uno de los métodos descritos en el Capítulo "13. Provisión LR1110" del manual del usuario LR1110. El DevEUI , Pin y JoinEUI se pueden cambiar editando el archivo se-identity.h ubicado en el directorio ./src/peripherals/lr1110-se/ .
La implementación de abstracción ATECC608A-Tnglora-SE maneja todos los intercambios requeridos con el ATECC608A-Tnglora y ATECC608B-Tnglora Secure Elements.
Este elemento seguro siempre se proporciona preprovisión y su contenido no se puede cambiar.
Ejemplo periódico-suplink-lpp para la plataforma Nucleol476 con escudo mBed LR1110MB1DIS y utilizando el elemento seguro pre-proporcionado 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 " ..
$ makeEjemplo de ping-pong utilizando la modulación Lora para la plataforma Nucleol476 con 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 " ..
$ makeEjemplo periódico-suplink-lpp para la plataforma Nucleol476 con escudo mBed LR1110MB1DIS y utilizando el elemento seguro pre-proporcionado 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/Ejemplo de ping-pong utilizando la modulación Lora para la plataforma Nucleol476 con 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/ Los ejemplos periodic-uplink-lpp y fuota-test-01 permiten restablecer el almacenamiento NVM a través de la interfaz serie.
Para restablecer el contenido NVM, uno debe presionar las teclas ESC + N de teclado en una terminal en serie.
El terminal de serie mostrará lo siguiente después de que se golpeen las teclas ESC + N del teclado. Después de restablecer el dispositivo final, se utilizará el NVM limpio.
ESC + N
NVM factory reset succeed
PLEASE RESET THE END-DEVICE