Release Notes for

LoRaWAN Middleware

Copyright © 2020 STMicroelectronics

Purpose

This Middleware provides the LoRaWAN Stack. This stack is based on the LoRaMac from Semtech/StackForce (see readme.md)

This driver is composed of 5 directories:

Update History

Main Changes

  • Fix: Re-start LoraMac stack if it is stopped and device is already joined
  • Fix: Unalignment memory access within FUOTA Fragmentation package
  • Release Notes update

Known limitations:

  • The feature Class B Remote multicast setup implemented is not fully operational when more than one context defined (context priority management)
  • The Data Block Integrity Check required by TS004-2.0.0_LoRaWAN_Fragmented_Data_Block_Transport is not compliant with the current ComputeCmac method implementation

Main Changes

  • Feature: Integration of LoRaWAN Link Layer v1.0.4/v1.1 + Regional Parameters RP002-1.0.3 from LoRa Mac Semtech/StackForce master branch:
    • Semtech release v4.7.0 integration (latest commit [672b37d] 09-Dec-2022)
  • Feature: Added support for new release of ARIB STD-T108 Ver1.4 under AS923 region
  • Feature/Fix: Class C Certification support fix
  • Release Notes update

Known limitations:

  • The feature Class B Remote multicast setup implemented is not fully operational when more than one context defined (context priority management)
  • The Data Block Integrity Check required by TS004-2.0.0_LoRaWAN_Fragmented_Data_Block_Transport is not compliant with the current ComputeCmac method implementation

Main Changes

  • Feature: Integration of LoRaWAN Link Layer v1.0.4 + Regional Parameters RP002-1.0.1 from LoRa Mac Semtech/StackForce master branch:
    • Semtech release v4.6.0 integration (latest commit [fe8247e] 11-Jan-2022)
    • fix some issues from latest master commits (latest change integrated: commit [55f83f9] 13-Oct-2022)
  • Feature: Support of RU864-870 16 channels from Regional Parameters RP002-1.0.2
  • Feature: Support of AS923-4 from Regional Parameters RP002-1.0.3
  • Feature: LoRaWAN FUOTA packages v2.0.0 integration
    • TS003-2.0.0_LoRaWAN_Application_Layer_Clock_Synchronization
    • TS004-2.0.0_LoRaWAN_Fragmented_Data_Block_Transport
    • TS005-2.0.0_LoRaWAN_Remote_Multicast_Setup
    • TS006-1.0.0_LoRaWAN_Firmware_Management_Protocol
  • Feature: LoRaWAN Key Provisioning: Join EUI/Dev EUI/Dev Address with KMS
  • Feature: Set Tx power before join overridden by Mac
  • Fix: EIRP default configuration(AS923-JP channel plan) needs to be corrected, 13.0 -> 16.0
  • Release Notes update

Known limitations:

  • The feature Class B Remote multicast setup implemented is not fully operational when more than one context defined (context priority management)
  • The Data Block Integrity Check required by TS004-2.0.0_LoRaWAN_Fragmented_Data_Block_Transport is not compliant with the current ComputeCmac method implementation

Main Changes

  • Feature: Integration of LoRaWAN v1.0.4 from LoRa Mac Semtech/StackForce develop branch (31-May-2021 commits, version 4.5.2)
  • Feature: NVM Context store/restore implementation with Flash usage and SRAM2 retention (required by Certification code)
  • Feature: US915/CN470/AU915 HYBRID Frequency sub-band can be overloaded in lorawan_conf.h
  • Fix: Negative sensor Temperature
  • Fix: LmHandlerSend function returns an error when the App data is not sent because piggyback FOpts MAC commands is set as priority in the uplink payload
  • Fix: FragDecoder fragment max size update to support upper DRs
  • Licensing update: New way to declare licenses
  • Release Notes update

Known limitations:

None

Main Changes

  • Implements LoRa Mac from Semtech/StackForce develop branch (18-Jan-2021 commits, version 4.4.7)
  • SecureElementDeleteDerivedKeys dynamic implementation in using KMS APIs
  • Cleanup NVM key attributes with KMS default values definition
  • Printable Keys (Root and derived) with KEY_EXTRACTABLE
  • Remove GCCv9 compiler warnings
  • Fix SetAppEUI/SetDevEUI functions
  • Add LinkCheckReq and DeviceTimeReq support
  • Fragmentation processing move to application layer
  • Release Notes update

Known limitations:

None

Main Changes

  • Multiple tools write to the same file’ if AES + LoRaWAN + option .c/.h
  • Update file-license
  • remove KMS init from LoRaWAN Middleware (move to application part)
  • Update Key List usage with a reworked init part: set a static const + memcpy to prevent a Stop/Restart of LoRaMAC
  • Release Notes update

Known limitations:

None

Main Changes

  • Implements LoRa Mac from Semtech/StackForce develop branch (26-May-2020 commits, version 4.4.4)
  • Fixed SetLoRaSymbNumTimeout. RX Continuous bug on ClassC
  • revert AU915 regional parameters 1.0.3 errata feature
  • Remove LoRaWAN 1.1 + MC Group[1..3] Keys
  • Add missing ping_slot_nb_channels case to getPhy regions (hopping feature)
  • RepeaterSupport feature set back
  • LmHandlerSend error codes implementation

Known limitations:

None

Main Changes

  • Moves the contents of folder Patterns/Advanced/ to LmHandler/
  • Imports some features from Semtech/StackForce develop branch:
    • Remove repeater support. Will be removed from future Regional Parameters specifications.
    • Add Ping_Slot channel freq to prevent the offset between the RU864 Beacon and Ping_Slot frequencies
    • Update of TimeOnAir calculation
    • Update of CryptoJoinAccept with fix of security vulnerabilities
    • Fix uplink messages burst with ClassB usage
  • New LmHandler services addition: Firmware Management and Data Distribution
  • Fix some Keil-related issues
  • Update files license and copyright year

Known limitations:

  • IN865 ClassB beacon reception

Main Changes

  • readme.md update to version 4.4.3

Known limitations:

None

Main Changes

  • Implements LoRa Mac from Semtech/StackForce develop branch (17-Dec-2019 commits, version 4.4.3)
  • Patterns:
    • integration of Semtech LmHandler
    • ST specific certif features factorization
    • rearchitecture : removal of lora.c
    • new services addition: compliance, clock sync, multicast & fragmentation
  • KMS integration done in Crypto & LmHandler folders (mbed-crypto called)

Known limitations:

  • IN865 ClassB beacon reception

Main Changes

  • Implements LoRa Mac from Semtech/StackForce develop branch (31-Oct-2019 commits, version 4.4.2)
  • Patterns/basic and Patterns/modem directory structure change
  • update files license
  • certification obtained with LoRAWAN version v1.0.2 in the following regions:
    • EU868
    • IN865
    • KR920
    • AS923
    • US915

Known limitations:

None

Main Changes

Known limitations:

None

Main Changes

  • Trace logging & LoRa Mac version display updates
  • Some function prototypes added

Known limitations:

None

Main Changes

  • implements LoRa Mac 4.4.2-rc.5 from Semtech/StackForce develop branch

Known limitations:

None

Main Changes

  • Implements LoRa Mac 4.4.2-rc.1 from Semtech/StackForce develop branch
  • Supports Class B
  • Features secure element API
  • Added RU864 region
  • Removed US915-Hybrid

Known limitations:

None

Main Changes

  • Implements LoRa Mac 4.4.1 from Semtech/StackForce

Known limitations:

None

Main Changes

  • Bug fix in McpsIndication related to downlink Application data buffer

Known limitations:

None

Main Changes

Known limitations:

None

Main Changes

  • Implements LoRa Mac 4.4.0 release from Semtech/StackForce https://github.com/Lora-net/LoRaMac-node/tree/f42be67be402a40b3586724800771bfe13fb18e6
  • AckTimeoutRetriesCounter must be reset every time a new request (unconfirmed or confirmed) is performed.
  • Added verification for the power parameter in order to check that it is greater or equal to 0.
  • Enhancement for regions without FSK modulation support.
  • Bug fix for RX window 2 in class c mode.
  • AdrAckReq bit must be set to false as soon as we reach the lowest datarate.
  • MacCommandsBufferIndex must be reset when the mac commands are being sent on port 0.
  • Fixed RegionCommonSetBandTxDone in order to also update band->LastTxDoneTime when performing the Join procedure.
  • Added verification of payload size for Unconfirmed and Confirmed messages depending on Dwell time.
  • Added missing Rx1 timeout handling.
  • Updated all regions to use MAX output power by default.
  • Merge remote-tracking branch ‘origin/develop’ into develop
  • Bug fix in KR920 - update the maxEIRP calculation for continuous wave
  • Bug fix in IN865 - Update the band of the default channels
  • Bug fix in AS923 - for RX use always the payload limitation of dwell 0
  • Update function RegionCommonChanVerifyDr. Perform an ‘AND’ operation for security
  • Move the verification of ADR parameters into the common section. Update all regions with the related changes
  • Update comment for function RegionLinkAdrReq
  • Apply variables to data structure LinkAdrReqParams_t
  • Bug fix for KR920
  • Rename data structure LinkAdrParams_t
  • Issue(#238): Apply missing variable in sSetBandTxDoneParams
  • Bug fix in processing MAC commands for case SRV_MAC_TX_PARAM_SETUP_REQ.
  • Issue(#238): Apply missing variable in struct sBand
  • Update the MAC to enable the server to control the Channels Mask and the number of transmissions even ADR is off
  • Issue(#238): Update the backoff procedure for all regions. Move code parts into the common section
  • Update implementation to allow automatic MAC answers on port 0
  • Issue(#253): Delete all pre-configured channels when performing a join request
  • Initialize variable phyParam in functions RegionXXGetPhyParam
  • Remove assert_param from the radio drivers
  • Synchronize function RegionXXTxConfig
  • Update carrier sense functionality for LBT
  • Issue(#259): Update comment for variable HasLoopedThroughMain
  • Issue(#257): Fix typo in OnRxWindow2TimerEvent
  • Change scientific notation to numeric notation
  • Merge pull request #260 from clmklk/AU915
  • AU915: update Datarate limits according to LoRaWan 1.0.2rB
  • AU915: update Downstream datarate table according to LoRaWan 1.0.2rB
  • Merge pull request #225 from OpenChirp/patch_1

Known limitations:

None

Main Changes

  • Implements LoRa Mac from Semtech/StackForce develop branch (30-May-2017 commits, 4.4.0 release candidate) https://github.com/Lora-net/LoRaMac-node/tree/e2f35db75c1b449379d3b520c2d4e5922a9f5c81
  • Issue(235): Update functions RegionXXNextChannel.
  • Issue(238): Update initialization value of nextTxDelay.
  • Issue(234): Report back the aggregated time off.
  • Issue(232): Relocate function call to CalculateBackOff.
  • Issue(239): Update band TX power to the maximum.
  • Update LimitTxPower for US915.
  • Bug fix in function RegionCN470Verify.
  • Bug fix in function RegionAU915Verify.
  • Issue(229): Fix issue when receiving frames in second RX2 in Class C.
  • Add a command to get the next lower datarate.
  • Group initializations
  • Update regional definitions of KR920.
  • Update regional definitions of EU868.
  • Issue(239): Update regional definitions of AU915.
  • Update regional definitions of AU915.
  • Update regional definitions of AS923.
  • Update TX power computations.
  • Remove duplicated call to ApplyDrOffset in function RegionRxConfig.
  • Relocate the datarate, up- and downlink dwell time into a structure.
  • Change API of RegionGetPhyParam and the related functions.
  • Bug fix in function LoRaMacQueryTxPossible.
  • Apply patch for dwell time and minimum datarate.
  • Change the default datarate to DR_2 for AS923.
  • Take dwell time for ADR calculations and datarate settings into account.
  • Update LoRaMacQueryTxPossible to reset the MAC commands buffer.
  • Issue(#221): Add the dwell time in function ValidatePayloadLength.
  • Increase the transmission and reception timeout for KR920.
  • Bug fix in functions OnRxWindowXTimerEvent.
  • Remove datarate assignment.
  • Setup the downlink and uplink dwell time default value to 1.
  • Add frequency range check for AS923
  • Issue(#221): Bug fix in max payload size calculation.
  • GitHub reported issues corrections.
  • Changed the AdrAckCounter handling as expected by the test houses.
  • Fix an issue where the node stopped transmitting.
  • Removed useless LoRaMacPayload buffer.
  • MAC layer indications handling simplification.
  • Relocate parameter settings from ResetMacParameters to the initialization.

Known limitations:

None

Main Changes

  • Implements LoRa Mac 4.4.0 from Semtech/StackForce from the develop branch

Known limitations:

None

Main Changes

  • Read date between 2 successive read time to make sure date is ok

Known limitations:

None

Main Changes

  • Corrected 1 bug in LoRaMac-board.h: RX_WND_2_CHANNEL for EU is now back at DR_0
  • Corrected 1 bug in LoRaMac.c for dataRate adaptation

Known limitations:

None

Main Changes

  • Implements LoRa Mac 4.3.0 from Semtech/StackForce

Known limitations:

None

Main Changes

  • First V1.0.0 customized version for STM32Cube solution.
  • Commissioning_template.h in /Conf contains all Lora Ids to connect on LoRa network
    • It is provided as a template. It must be moved to /Projects/inc/ as Commissioning.h
  • All files in Conf/src are provided as template and must be copied in /Projects/src.
  • All files in Conf/inc are provided as template and must be copied in /Projects/inc.
    • #if 0 and #endif must be removed to enable the template in the user directory
  • Implements LoRa Mac 4.2.0 from Semtech/StackForce
    • .c : replace floating exponent e3 and e6 by int number
    • .c : cast uint32_t
  • Modified intensively timeServer.c
  • new low layer interfacing Cube HAL (hw_rtc.c, hw_gpio.c and hw_spi.c)
  • added lora.c as an interface layer to ease product integration

Known limitations:

None