После наличия нового и функционального стека Lorawan® в модемом Lora Basics ™ Semtech решил перейти к режиму Loramac в режим обслуживания (все еще будут поддерживаться критические исправления ошибок).
Lora Basics ™ Modem - это платформа, внедряющая новые функции Lorawan (IE Relay, CSMA), и будет поддерживать будущие улучшения, введенные Альянсом Lora (например, Lorawan 1.2). В то время как ранее введенные переходы Loramac Node Transitions в режим обслуживания Semtech рекомендует клиентам использовать Lora Basics ™ Modem для новых проектов.
Цель этого проекта-показать пример реализации стека Lorawan в конечном счете.
Этот проект имеет 2 активных филиала на месте.
| Ветвь | L2 Спец | RP спецификация | Тег/веха | Сорт | Комментарии |
|---|---|---|---|---|---|
| 1.0.4 / 1.1.0 + fcntdwn ошибки | 2-1.0.3 | v4.7.0 | A/B/C. | Lorawan L2 1.0.4 - выпущен | |
| владелец | 1.0.4 / 1.1.0 + fcntdwn ошибки | 2-1.0.3 | v4.7.0 | A/B/C. | Lorawan L2 1,0.4 / 1.1.0 |
| v5.0.0 | 1.0.4 / 1.1.0 + fcntdwn ошибки | 2-1.0.3 | М 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/Периодический Uplink-LPP : Classa/B/C Пример в конечном итоге. Периодически восходящая ливня с использованием протокола Cayenne LPP. (На основе предоставленных приложений общие пакеты)
Ping-Pong : точка на точку RF-ссылки пример применения.
Rx-Sensi : пример приложения, полезное для измерения уровня радио чувствительности с использованием RF-генератора.
TX-CW : пример применения, чтобы показать, как генерировать RF непрерывную волновую передачу.
Примечание . Каждый пример приложения Lorawan (loramac/*) включает в себя реализацию Алляуна Лора; Протокол сертификации Лоравана.
ПРИМЕЧАНИЕ . Документацию API Lorawan Stack можно найти по адресу: http://stackforce.github.io/loramac-doc/
Этот проект в настоящее время обеспечивает поддержку приведенных ниже платформ.
Этот проект может быть перенесен на другие платформы с использованием разных MCU, чем те, которые поддерживаются в настоящее время.
В документе «Руководство по портированию» представлены руководящие строки о том, как переносить проект на другие платформы.
Намот72
Nucleolxxx - Kit Discovery
Skim880b, skim980a, skim881axl
SAMR34
Пожалуйста, следуйте инструкциям, предоставленным документом Development Environment.
Клонировать репозиторий от GitHub
$ git clone https://github.com/lora-net/loramac-node.git loramac-nodeПроект Loramac 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
Soft-SE -это чистая программная эмуляция защищенного элемента. Это означает, что все находится на воспоминаниях хозяина MCU. Ключи DevEUI , JoinEUI и AES128 keys могут храниться в нелетучих памяти посредством выделенных API.
Чтобы обновить идентификацию конечного девиса ( DevEUI , JoinEUI и AES128 keys ) ./src/peripherals/soft-se/ необходимо обновить файл se-identity.h
ПРИМЕЧАНИЕ. В предыдущих версиях этого проекта это было сделано в файлах Commissioning.h .
Реализация Abstraction LR1110-SE обрабатывает все необходимые обмены с помощью радио-крипто-двигателя LR1110.
Все радиопликации LR1110 предварительно предварительно предварительно представлены на заводе, чтобы использоваться с службой соединения LORA Cloud Device.
В случае, если другие серверы соединения должны использоваться клавишами DevEUI , Pin , JoinEUI и AES128 keys могут быть обновлены, следуя инструкциям, представленным в главе «13. LR1110 PRESISING» Руководства пользователя LR1110.
Когда параметр компиляции SECURE_ELEMENT_PRE_PROVISIONED установлен ON LR1110-SE, будет использовать предназначенные данные на заводе ( AES128 keys DevEUI , JoinEUI и AES128).
Когда параметр компиляции SECURE_ELEMENT_PRE_PROVISIONED установлен на OFF LR1110-SE, должна быть предоставлена, следуя одному из методов, описанных в главе «13. LR1110 PRESISING» Руководства пользователя LR1110. DevEUI , Pin и JoinEUI могут быть изменены путем редактирования файла se-identity.h расположенного в каталоге ./src/peripherals/lr1110-se/ .
Реализация абстракции ATECC608A-TNGLORA-SE обрабатывает все необходимые обмены с безопасными элементами ATECC608A-TNGLORA и ATECC608B-TNGLORA.
Этот защитный элемент всегда предварительно подсчитана, и его содержимое не может быть изменено.
Периодический пример Uplink-LPP для платформы Nucleol476 с Shield LR1110MB1DIS MBED и с использованием предварительно предварительно предоставленного элемента 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 " ..
$ makeПример пинг-понга с использованием модуляции LORA для платформы Nucleol476 с 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 " ..
$ makeПериодический пример Uplink-LPP для платформы Nucleol476 с Shield LR1110MB1DIS MBED и с использованием предварительно предварительно предоставленного элемента 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/Пример пинг-понга с использованием модуляции LORA для платформы Nucleol476 с 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/ periodic-uplink-lpp и fuota-test-01 позволяют сбросить хранилище NVM через последовательный интерфейс.
Чтобы сбросить содержимое NVM, нужно нажимать клавиши ESC + N на серийном терминале.
Серийный терминал покажет следующее после того, как клавиши клавиш ESC + N нажимают. После сброса конечного устройства будет использоваться чистый NVM.
ESC + N
NVM factory reset succeed
PLEASE RESET THE END-DEVICE