Skip to content

Releases: Lora-net/LoRaMac-node

v4.7.0

09 Dec 13:56
Compare
Choose a tag to compare

General

  • Release based on "LoRaWAN specification 1.0.4" and "LoRaWAN specification 1.1.0 + FCntDwn ERRATA" with "LoRaWAN Regional Parameters 2-1.0.3"
  • GitHub reported issues corrections.

Known limitations

  • SAMR34 platform does not implement NVM storage functionality. This is a requirement for LoRaWAN versions greater or equal to 1.0.4.
    No work on this subject is forseen by the maintainers. Implementation proposals are welcome.

Added

  • Trigger NVM update on MacGroup2.DutyCycleOn change
  • Configure radio sync word upon state restoration from NVM
  • Added missing return status initialization for Class A
  • Added a check for GroupId in order to avoid out of bounds access
  • Make LBT RSSI free channel threshold and carrier sense time (CST) parameters configurable
  • Signal NVM data change in LoRaMacMc* functions
  • Teach LoRaMacIsBusy return false if the MAC is stopped
  • Added support for new release of ARIB STD-T108 Ver1.4 under AS923 region
  • Support LoRaWAN 1.1 with ATECC608A/B secure element
  • Added a function to reset the stack internal state machine
  • Added an option for MAC commands to verify against an explicit confirmation
  • Added a check to verify that SystemMaxRxError provided value is in the range 0..500 ms

Changed

  • Updated regions implementation to regional parameters RP2-1.0.3
  • Move AdrAckLimit and AdrAckDelay to NVM MacGroup2
  • Refactored and improved the way the duty-cycle is managed

Fixed

  • Fixed class B multicast handling in LoRaMacClassBProcessMulticastSlot()
  • Restore RegionGroup2 in RestoreNvmData
  • Fix a duty cycle related deadlock in ScheduleTx
  • Fixed where LastDownFCnt update takes place for LoRaWAN 1.1.x
  • Fixes for class C activation and deactivation
  • Don't memset the TX/RX buffer when radio is set to receive mode
  • Fixed usage of wrong API for general purpose keys
  • Fixed and refactored JoinReq, ReJoinType0Req, ReJoinType1Req, ReJoinType2Req handling
  • Fixed Rx windows timer handling
  • Fixed FUOTA fragmentation implementation
  • Fixed time credits check as proposed
  • Fixed potential buffer overflow in ProcessRadioRxDone - Security
  • Applied the proposed fix for the CRC check of empty struct
  • Fixed inconsistent handling of undefined callbacks
  • Fixed HardFault_Handler for Cortex-M0 targets
  • Fixed ABP join handling to be similar to OTAA join handling
  • Fixed issue with RX2 data rate in case of 0x0F for RxParamSetupReq and JoinAccept

Removed

  • Removed useless FOptsLen filed check
  • Removed unused ACTIVE_REGION pre-processing check

Security

v4.6.0

11 Jan 12:47
Compare
Choose a tag to compare

General

  • Release based on "LoRaWAN specification 1.0.4" and "LoRaWAN specification 1.1.0 + FCntDwn ERRATA" with "LoRaWAN Regional Parameters 2-1.0.1"
  • GitHub reported issues corrections.

Known limitations

  • SAMR34 platform does not implement NVM storage functionality. This is a requirement for LoRaWAN versions greater or equal to 1.0.4.
    No work on this subject is forseen by the maintainers. Implementation proposals are welcome.

Added

  • Added NbTrans default value reset under JoinAccept processing
  • Added missing Class B certification commands
  • Added missing classBParams.NetworkActivation variable initialization
  • Added Class B remote multicast setup support
  • Added data rate validation to the join accept message handling
  • Added channel id limits verification to DlChannelReq handling

Changed

  • Changed LmHandlerDeviceTimeReq API to be publicly accessible
  • Changed improved the way USE_LRWAN_1_1_X_CRYPTO pre-processing directive is used
  • Changed improved the way JoinNonce is checked

Fixed

  • Fixed first beacon acquisition after receiving a DeviceTimeAns.
  • Fixed LmHandlerParams_t PingSlotPeriodicity field type from bool to uint8_t
  • Fixed i2c.h to include "utilities.h".
  • Fixed VSCode periodic-uplink-lpp project default LoRaWAN class selection
  • Fixed SX127x FSK transmission when radio current operating mode is RX.

Removed

  • Removed no more needed MLME_SCHEDULE_UPLINK notification

v4.5.2

31 May 11:39
Compare
Choose a tag to compare

General

  • Release based on "LoRaWAN specification 1.0.4" and "LoRaWAN Regional Parameters 2-1.0.1"
  • GitHub reported issues corrections.

Known limitations

  • SAMR34 platform does not support NVM storage. This is a requirement for LoRaWAN versions greater or equal to 1.0.4.
    No work on this subject is forseen by the maintainers. Implementation proposals are welcome.

Added

  • Added possibility to override periodic-uplink-lpp example LORAWAN_DEFAULT_CLASS
  • Added I2C driver support for B-L072Z-LRWAN1 and Nucleo platforms to the build system
  • Added battery voltage and MCU temperature reading functions implementation for Nucleo platforms
  • Added a default value for Request->ReqReturn.DutyCycleWaitTime to ensure that a valid value is always returned
  • Added SX126x REG_RX_GAIN and REG_TX_MODULATION to the radio registers retention list
  • Added SX126x missing registers definitions
  • Added radio image calibration enforcement after radio initialization and radio sleep cold start.
  • Added possibility to query minimal Tx data rate

Changed

  • Updated ADC driver based on en.en-st-stm32cubeide examples
  • Changed improved the way LmHandler handles the packages transmissions
  • Changed certification OnTxPeriodicityChanged callback implementation in order to directly apply the requested change
  • Changed the LmHandler initialization to apply user default data rate
  • Changed SX1272 and SX1276 FSK FIFO threshold from 15 to 31 in order to give more time for the MCU to make other processing tasks
  • Changed the way IrqFired global variable is handled by RadioIrqProcess
  • Changed the place of call to TimerStop( &RxTimeoutTimer ) on RadioIrqProcess implementation
  • Changed utilities.h SUCCESS/FAIL definition by an enumeration LMN_STATUS_OK/LMN_STATUS_ERROR

Fixed

  • Fixed Null pointer exception when CN470 region was selected
  • Fixed src/system/gps.c HasFix variable type from double to bool
  • Fixed Class C downlink handling
  • Fixed I2C driver for L476
  • Fixed re-transmissions handling when ClassB or ClassC downlink is received
  • Fixed certification FPort224DisableReq command NVM handling
  • Fixed Class B & C confirmed downlink acknowledge management when CLASS_B_C_RESP_TIMEOUT expires
  • Fixed an issue when receiving downlinks in class C window during a class A procedure
  • Fixed SX126x and LR1110 driver IrqFired variable management
  • Fixed LmhpCompliance.c periodicity array size computation
  • Fixed join back-off by not storing band usage on the NVM memory.
  • Fixed LoRaMacMibGetRequestConfirm MIB_SE_PIN handling
  • Fixed ping-slot frequency to take in account the AS923_FREQ_OFFSET_HZ parameter
  • Fixed fragmentation loop variable type in order to allow more than 255 fragments
  • Fixed RtcMs2Tick conversion on SAMR34
  • Fixed compiling issue when RU864 region is selected
  • Fixed MLME_SCHEDULE_UPLINK handling.

Removed

  • Removed STM32 platforms system wake up time calibration

v4.5.1

18 Jan 12:52
Compare
Choose a tag to compare

General

  • Release based on "LoRaWAN specification 1.0.4" and "LoRaWAN Regional Parameters 2-1.0.1"
  • GitHub reported issues corrections.

Fixed

  • Fixed compiling issues

v4.4.7

18 Jan 12:51
Compare
Choose a tag to compare

Changelog

General

  • Release based on "LoRaWAN specification 1.0.3" and "LoRaWAN Regional Parameters v1.0.3revA"
  • Release 4.4.7 is an hotfix of 4.4.6 and is the last one supporting "LoRaWAN specification 1.0.3"

Changed

  • Changed examples GitHub version to 4.4.7

Fixed

  • Fixed compiling issues when KR920 or RU864 regions are selected
  • Fixed compiling issues for fuota-test-01 example

v4.5.0

18 Dec 17:02
Compare
Choose a tag to compare

Changelog

General

  • Release based on "LoRaWAN specification 1.0.4" and "LoRaWAN Regional Parameters 2-1.0.1"
  • GitHub reported issues corrections. Please refer to Release Version 4.5.0

Added

  • Added implementation of LoRaWAN 1.0.4 changes
  • Added implementation for new Certification protocol specification
  • Added GitHub repository and firmware examples version definitions

v4.4.6

18 Dec 17:00
Compare
Choose a tag to compare

Changelog

General

  • Release based on "LoRaWAN specification 1.0.3" and "LoRaWAN Regional Parameters v1.0.3revA"
  • GitHub reported issues corrections. Please refer to Release Version 4.4.6
  • Release 4.4.6 is the last one supporting "LoRaWAN specification 1.0.3"

Changed

  • Refactored MAC layer and examples Non Volatile Memory data handling
  • Changed NewChannelReq amd DlChannelReq handling to ignore command for AU915, CN470 and US915 regions
  • Updated behavior of SX126xSetLoRaSymbNumTimeout to round up the timeout to the nearest possible number of symbol.
  • Changed radio drivers floating point to integer computations
  • Improved GetNextLowerTxDr function implementation.
  • Changed SX1272 and SX1276 FSK FIFO handling by using FifoLevel IRQ instead of FifoEmpty IRQ
    WARNING DIO1 IRQ MCU pin detection has changed from RISING to RISING_FALLING edge.
  • Changed IMST boards default power source to USB_POWER

Fixed

  • Fixed certification test application handling
  • Fixed ping-pong and rx-sensi examples to use the right FSK_BANDWIDTH and FSK_AFC_BANDWIDTH parameters
  • Fixed one byte transmissions over I2C
  • Fixed RegionIN865RxParamSetupReq DrOffset verification
  • Fixed STM platforms IRQ handlers when using a C++ compiler
  • Fixed an issue where the Join back off algorithm wasn't being applied when the duty-cycle enforcement was OFF
  • Fixed AU915_MAX_RX1_DR_OFFSET value to 5 instead of 6

Removed

  • Removed ClassA, ClassB and ClassC examples.

v4.5.0-rc.1

24 Nov 10:45
Compare
Choose a tag to compare
v4.5.0-rc.1 Pre-release
Pre-release

Changelog

General

  • Release based on "LoRaWAN specification 1.0.4" and "LoRaWAN Regional Parameters 2-1.0.1"
  • GitHub reported issues corrections. Please refer to Release Version 4.5.0

Added

  • Added implementation of LoRaWAN 1.0.4 changes
  • Added implementation for new Certification protocol specification
  • Added GitHub repository and firmware examples version definitions

Changed

  • Changed IMST boards default power source to USB_POWER

Fixed

  • Fixed an issue where the Join back off algorithm wasn't being applied when the duty-cycle enforcement was OFF.
  • Fixed AU915_MAX_RX1_DR_OFFSET value to 5 instead of 6

Removed

  • Removed NvmCtxCallback calls as they should only be done when a modification happens.
  • Removed ClassA, ClassB and ClassC examples.

v4.4.5

14 Oct 12:33
Compare
Choose a tag to compare

Changelog

General

  • Release based on "LoRaWAN specification 1.0.3" and "LoRaWAN Regional Parameters v1.0.3revA"
  • GitHub reported issues corrections. Please refer to Release Version 4.4.5

Added

  • Added to FRAGMENTATION_FRAG_SESSION_SETUP_REQ checks which verify FragNb and FragSize validity.
  • Added missing call to SX126xSetOperatingMode on SX126xSetTxContinuousWave and SX126xSetTxInfinitePreamble functions
  • Added new specific board API to initialize the RF switch (SX126xIoRfSwitchInit)
  • Add to AS923 and KR920 regions a definition for the Rx bandwidth to be used while executing the LBT algorithm
  • Added support for other AS923 channel sub plan groups.
  • Added FPort filtering to loramac handler packages.
  • Added missing NVM update notifications

Changed

  • Refactored function RegionXXInitDefaults. Fixes an issue on US based bands where the channels mask was not being reset.
  • Changed hard coded JoinAccept max payload size (33) by LORAMAC_JOIN_ACCEPT_FRAME_MAX_SIZE definition.
  • Moved radio operating mode management to specific board implementation
  • Changed radio IsChannelFree API in order to provide reception bandwidth
  • Back port 1.0.4 region implementation improvements
  • Changed RegionCommonComputeSymbolTimeLoRa, RegionCommonComputeSymbolTimeFsk and RegionCommonComputeRxWindowParameters
    API implementations to use integer divisions instead of double division.
  • Changed DeriveSessionKey10x and DeriveSessionKey11x functions API (Removed pointer based variable usage)

Fixed

  • Fixed SX126xSetLoRaSymbNumTimeout to call the workaround only if the number of symbols is equal to or higher than 64.
  • Fixed IAR C++ compiler warnings
  • Fixed missing { after extern "C" in cmac.h file
  • Fixed FragSessionStatusAns message construction for Received&index field
  • Fixed LoRaMacCryptoHandleJoinAccept function DevNonce, RJCount0 and RJCount1 handling.
  • Fixed nonce variable declaration
  • Fixed LoRaMacCrypto.c conditional pre-processing.
  • Fixed missing Rx1Frequency reset for dynamic channel plans
  • Applied Japan ARIB restrictions to the AS923_1_JP sub plan
  • Applied Regional Parameters 1.0.3.revA ERRATA note concerning the ClassB beacon format
  • Fixed SAMR34 compiling issue when USE_RADIO_DEBUG directive is defined
  • Fixed SX126xClearIrqStatus call to only clear read flags
  • Fixed GFSK bandwidth handling for SX126x and LR1110 radios.
  • Fixed version handling for MC root keys derivation
  • Fixed Class B initialization.
  • Fixed duty-cycle implementation

v4.4.4

25 Jun 11:22
Compare
Choose a tag to compare

Changelog

General

  • Release based on "LoRaWAN specification 1.0.3" and "LoRaWAN Regional Parameters v1.0.3revA"
  • GitHub reported issues corrections. Please refer to Release Version 4.4.4

Added

  • Added the possibility to setup multicast channels locally
  • Added new SecureElementProcessJoinAccept API to the secure-element.h
  • Added possibility to select the secure-element to be used as well as to select if it is pre-provisioned or not
  • Added support for LR1110 radio
  • Added support for LR1110 crypto-engine to be used as secure-element
  • Added support for ATECC608A-TNGLORA secure-element
  • Added LoRaMacDeInitialization API to ease dynamic region change
  • Added possibility to query implemented versions of the LoRaWAN MAC layer and Regional Parameters specifications
  • Added MOTE_MAC_TX_PARAM_SETUP_ANS as sticky MAC command
  • Added a filter to handle multicast downlinks exceptions
  • Added CHANGELOG.md file

Changed

  • Updated examples to use OTAA activation method by default
  • Updated LmhpFragmentation implementation
  • Updated Radio APIs to handle 32-bit register addresses
  • Changed SX126x driver to only process a received packet when there is no CRC error
  • Moved Commissioning.h files to a single one located under src/apps/LoRaMac/common directory
  • Updated Radio.TimeOnAir API in order to be independent of the current hardware settings
  • Moved keys definition and management to the secure-element implementation
  • Moved device identity to secure-element se-identity.h file
  • Changed support of SAML21 platform by SAMR34 platform
  • Changed the MlmeRequest and McpsRequest APIs to report back when the next transmission is possible
  • Changed ResetMacParameters to perform a complete re-initialization of the regional layer after processing the join accept
  • Updated the implementation to verify the MAC commands size
  • Changed the way the duty-cycle management is handled

Removed

  • Removed the LoRaWAN keys display on serial terminal
  • Removed GEN_APP_KEY support as it is equivalent to LoRaWAN 1.1.x APP_KEY
  • Removed tables definition for repeater support. LoRa-Alliance will provide details on these tables usage in future versions
  • Removed Changelog chapter from readme.md file

Fixed

  • Fixed SX126xGetRandom API implementation
  • Fixed SX126x driver missing call to RadioStandby in LoRa modem case inside RadioSetRxConfig API
  • Fixed SX126x driver LoRaSymbNumTimeout handling
  • Fixed soft-se/cmac for misaligned 32-bit access
  • Fixed ping-pong and rx-sensi projects for packets with sizes bigger than 64 bytes handling
  • Fixed missing switch case PHY_BEACON_CHANNEL_FREQ for AU915 region
  • Fixed default data rates for Class B beacon and ping-slots for AU915 region
  • Fixed join request limitation due to duty cycle restrictions
  • Fixed SRV_MAC_DEVICE_TIME_ANS, SRV_MAC_PING_SLOT_INFO_ANS and SRV_MAC_BEACON_TIMING_ANS processing to be executed only if corresponding MLME request is queued
  • Fixed issue where the stack could get stuck in MCPS busy state after MLME Device Time Request
  • Fixed duty-cycle enforcement by disabling it for IN865 region
  • Fixed potential issue where the FCntUp counter could sometimes be incremented by 2 instead of 1
  • Fixed wrong beacon time-on-air calculation

Security