Releases: Lora-net/LoRaMac-node
v4.4.0
2017-09-08, V4.4.0
-
General
- First release based on "LoRaWAN specification 1.0.2" and "LoRaWAN Regional Parameters v1.0.2rB"
- This version has passed the LoRa-Alliance compliance tests for the regions shown in the below table.
- GitHub reported issues corrections.
- Updated radio driver to perform the LBT carrier sense continuously for a given period of time.
-
LoRaWAN
- GitHub reported issues corrections.
- Updated implementation to support 1.0.2 specification additions.
- Added the support for all "LoRaWAN Regional Parameters v1.0.2rB" document defined regions.
LoRaWAN certification results
Region | Verdict | # Test houses | Comments |
---|---|---|---|
EU868 | PASS | 2 | - |
US915 | PASS | 2 | - |
CN779 | Partial PASS | 1 | No certification specification - tests based on EU868 certification - All tests PASS except 1. Join Accept Rx2 parameters not being applied (under investigation) |
EU433 | PASS | 1 | No certification specification - tests based on EU868 certification |
AU915 | Not tested yet | 0 | No certification specification |
CN470 | Not tested yet | 0 | No certification specification |
AS923 | PASS | 2 | - |
KR920 | PASS | 1 | As of today only one test house has sent a report. We decided to perform the release anyway |
IN865 | PASS | 1 | No certification specification - tests based on EU868 certification |
v4.3.2
-
General (Last release based on LoRaWAN specification 1.0.1)
- This version has passed EU868 and US915 LoRa-Alliance compliance tests.
- GitHub reported issues corrections.
- Added an algorithm to automatically compute the Rx windows parameters. (Window symbolTimeout and Offset from downlink expected time)
- Added a workaround to reset the radio in case a TxTimeout occurs.
- Modified FSK modem handling to use the provided symbolTimeout (1 symbol equals 1 byte) when in RxSingle mode.
- Added newly defined TxCw(Tx Continuous Wave) certification protocol command.
- Added a fix for an overflow issue that could happen with NmeaStringSize variable.
- Improved GpioMcuInit function to first configure the output pin state before activating the pin.
-
LoRaWAN
- 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.
v4.3.1
- General
- This version has passed EU868 and US915 LoRa-Alliance compliance tests.
- Update the MAC layer in order to be LoRaWAN version 1.0.1 compliant (Mainly US915 bug fixes)
- Removed api-v3 support from the project.
- GitHub reported issues corrections.
- Updated SensorNode projects according to the new MCU reference STM32L151CBU6. Bigger memories.
- Addition of MoteII platform based on the IMST module iM881A (STM32L051C8)
- Addition of NAMote72 platform
- Correct compliance test protocol command 0x06 behaviour
- Added TxCw (Tx continuous wave) LoRaWAN compliance protocol command.
- Added TxContinuousWave support to the radio drivers.
- Updated ST HAL drivers.
- STM32L1xx_HAL-Driver : V1.2.0
- STM32L0xx_HAL_Driver : V1.7.0
- LoRaWAN
- US band corrections in order to pass the LoRaWAN certification.
- GitHub reported issues corrections.
- Add region CN470 support.
v4.3.0
- General
-
This version has passed all LoRa-Alliance compliance tests.
-
Update the MAC layer in order to be LoRaWAN version 1.0.1 compliant
-
Applied to all application files the certification protocol change for LoRaWAN 1.0.1 compliance tests.
REMARK: api-v3 application files aren't updated.
-
Add radio RX_TIMEOUT irq clear into the irq handler.
-
Removed the end less loop from HAL_UART_ErrorCallback.
-
Update of the STM32L0 HAL to version 1.6.0
-
Consolidated the line endings across all project files.
Windows line endings has been choose for almost every file.
-
- LoRaWAN
- Updated maximum payload size for US band.
- Update datarate offset table for US band.
- Make MAC commands sticky
- Add retransmission back-off
- Remove the TxPower limitation for US band on LoRaMacMibSetRequestConfirm function. The power will be limited anyway when the SendFrameOnChannel functions is called.
- Issue(#81): Bug fix in function LoRaMacMlmeRequest case MLME_JOIN. Function will return LORAMAC_STATUS_BUSY in case the MAC is in status MAC_TX_DELAYED.
- Add debug pin support to LoRaMote platform.
- Updated and improved MPL3115 device driver.
- Issue(#83): Bug fix in parameter validation
- Issue(#84): Fix issue of CalibrateTimer function.
- RTC driver major update
- Applied pull request #87.
- Add a function to verify the RX frequency of window 2 for US band.
- Issue(#88): Bug fix in function PrepareFrame where repeated MAC commands were not handled correctly.
- Bug fix in OnRadioRxDone. Node now drops frames on port 0 with fOpts > 0.
- Bug fix in OnRadioRxDone. Node now receives frames with fOpts > 0 when no payload is present.
v4.2.0
6. Changelog
- General
-
This version has passed all LoRa-Alliance compliance tests.
-
Update STM32L1xx_HAL_Driver version to 1.5. Update related drivers and implementations accordingly.
REMARK: This change implies that the time base had to be changed from microseconds to milliseconds.
-
Corrected the frequency check condition for // ERRATA 2.1 - Sensitivity Optimization with a 500 kHz Bandwidth
-
Optimize radio drivers regarding FSK PER
-
Resolve issue when calling SX127xInit function more than once
-
Add a definition for the LoRaWAN device address. Add an IEEE_OUI for the LoRaWAN device EUI.
-
Add a definition for the default datarate.
-
Issue(#66) correction of functions SX1276SetOpMode and SX1272SetOpMode.
-
Issue(#68): Fix for low level RF switch control.
-
Increase RTC tick frequency for higher resolution.
-
Update the radio wake up time.
-
- LoRaWAN
- Issue(#56) correction
- Update channel mask handling for US915 hybrid mode to support any block in the channel mask.
- Issue(#63) correct the maximum payload length in RX mode.
- Fix Tx power setting loss for repeated join requests on US band.
- Introduce individual MIN and MAX datarates for RX and TX.
- Add the possibility to set and get the ChannelsDefaultDatarate.
- Optimization of the RX symbol timeout.
- Issue(#59): Add the possibility to set the uplink and downlink counter.
- Replace definition LORAMAC_DEFAULT_DATARATE by ChannelsDefaultDatarate in LoRaMacChannelAdd.
- Issue(#72): Fix of possible array overrun in LoRaMacChannelRemove.
- Introduce a new status MAC_RX_ABORT. Reset MAC_TX_RUNNING only in OnMacStateCheckTimerEvent.
- Accept MAC information of duplicated, confirmed downlinks.
- Issue(#74): Drop frames with a downlink counter difference greater or equal to MAX_FCNT_GAP.
V4.1.0
6. Changelog
- General
-
This version has passed all mandatory LoRa-Alliance compliance tests.
One of the optional tests is unsuccessful (FSK downlinks PER on Rx1 and Rx2 windows) and is currently under investigation.
-
Removed support for Raisonance Ride7 IDE (Reduces the amount of work to be done at each new release)
-
Removed the Bleeper-72 and Bleeper-76 platforms support as these are now deprecated.
-
Application state machine. Relocate setting sleep state and update the duty cycle in compliance test mode.
-
Bug fix in TimerIrqHandler. Now, it is possible to insert timers in callback.
-
Changed TimerHwDelayMs function to be re-entrant.
-
Corrected FSK modem packets bigger than 64 bytes handling (Issue #36)
-
- LoRaWAN
- Rename attribute nbRetries to NbTrials in structure McpsReqConfirmed_t. (Issue #37)
- Updated implementation of SetNextChannel. Added enabling default channels in case of join request. (Issue #39)
- Add missing documentation about MIB_REPEATER_SUPPORT. (Issue #42).
- Add a new LoRaMacState to allow adding channels during TX procedure. (Issue #43)
- Relocate the activation of LoRaMacFlags.Bits.McpsInd in OnRadioRxDone.
- Add a new function PrepareRxDoneAbort to prepare a break-out of OnRadioRxDone in case of an error
- Activate default channels in case all others are disabled. (Issue #39)
- Bug fix in setting the default channel in case none is enabled.
- SRV_MAC_NEW_CHANNEL_REQ MAC command added a fix to the macIndex variable on US915 band.
- Start the MacStateCheckTimer in OnRxDone and related error cases with a short interval to handle events promptly. (Issue #44)
- Reset status of NodeAckRequested if we received an ACK or in case of timeout.
- Removed additional EU868 channels from the LoRaWAN implementation files. GitHub (Issue #49)
The creation of these additional channels has been moved to the application example. - Improved and corrected AdrNextDr function.
V4.0.0
V3.4.1
6. Changelog
- General
- Bug fixes
- LoRaWAN
- Corrected downlink counter roll over management when several downlinks were missed.
- Corrected the Radio maximum payload length management. Radio was filtering received frames with a length bigger than the transmitted one.
- Applied Pull request #22 solution proposition.
V3.4
6. Changelog
- General
- Changed all applications in order to have preprocessing definitions on top of the files and added relevant comments
- Applications LED control is no more done into the timer callback functions but instead on the main while loop.
- Added TimerStop function calls to each timer event callback.
- Corrected timings comments. Timing values are most of the time us based.
- Changed types names for stdint.h names. Helps on code portability
- Renamed rand and srand to rand1 and srand1. Helps on code portability
- Added some missing variables casts. Helps on code portability
- Removed NULL definition from board.h
- Added const variable attribute when necessary to functions prototypes
- Moved ID1, ID2 and ID3 definition from board.h to board.c, usb-cdc-board.c and usb-dfu-board.c
- Removed the definition of RAND_SEED. It has been replaced by a function named BoardGetRandomSeed
- Renamed BoardMeasureBatterieLevel to BoardGetBatteryLevel
- Added SetMaxPayloadLength API function to SX1272 and SX1276 radio drivers
- Changed the name of Radio API Status function to GetStatus
- AES/CMAC Changed types names for stdint.h names. Helps on code portability (Issue #20)
- Moved __ffs function from utilities.h to spi-board.c. This function is only used there.
- Utilities.c removed fputc function redefinition.
- Replaced the usage of __IO attribute by volatile.
- LoRaWAN
- Added support for the US915 band (Normal mode and hybrid mode. Hybrid mode is a temporary configuration up until servers support it automatically) (Issue #16)
- Corrected and simplified the downlink sequence counter management.
- Removed the usage of PACKED attribute for data structures.
- Renamed LoRaMacEvent_t into LoRaMacCallbacks_t and added a function pointer for getting battery level status
- Renamed LoRaMacSetDutyCycleOn into LoRaMacSetTestDutyCycleOn
- Renamed LoRaMacSetMicTest into LoRaMacTestSetMic
- Increased the PHY buffer size to 250
- Removed IsChannelFree check on LoRaMacSetNextChannel function. LoRaWAN is an ALHOA protocol. (Pull request #8)
- LoRaMacEventInfo.TxDatarate now returns LoRaWAN datarate (DR0 -> DR7) instead of (SF12 -> DF7)
- Corrected channel mask management for EU868 band.
- Corrected LoRaMacPrepareFrame behavior function when no applicative payload is present.
- LoRaMac-board.h now implements the settings for the PHY layers specified by LoRaWAN 1.0 specification. ( EU433, CN780, EU868, US915 ) (Issue #19)
- Added LORAMAC_MIN_RX1_DR_OFFSET and LORAMAC_MAX_RX1_DR_OFFSET definitions to LoRaMac-board.h. Can be different upon used PHY layer
- Added the limitation of output power according to the number of enabled channels for US915 band.
- Added the limitation of the applicative payload length according to the datarate. Does not yet take in account the MAC commands buffer. (Issue #15)
- Corrected MacCommandBufferIndex management. (Issue #18)
V3.3
6. Changelog
- General
- Added the support for LoRaWAN Class C devices.
- Implemented the radios errata note workarounds. SX1276 errata 2.3 "Receiver Spurious Reception of a LoRa Signal" is not yet implemented.
- Increased FSK SyncWord timeout value in order to listen for longer time if a down link is available or not. Makes FSK downlink more reliable.
- Increased the UART USB FIFO buffer size in order to handle bigger chunks of data.
- LoRaWAN
- Renamed data rates as per LoRaWAN specification.
- Added the support for LoRaWAN Class C devices.
- Handling of the MAC commands was done incorrectly the condition to verify the length of the buffer has changed from < to <=.
- Added the possibility to change the channel mask and number of repetitions trough SRV_MAC_LINK_ADR_REQ command when ADR is disabled.
- Corrected Rx1DrOffset management. In previous version DR1 was missing for all offsets.
- Changed confirmed messages function to use default datarate when ADR control is off.
- After a Join accept the node falls back to the default datarate. Enables the user to Join a network using a different datarate from its own default one.
- Corrected default FSK channel frequency.
- Solved a firmware freezing when one of the following situations arrived in OnRxDone callback: bad address, bad MIC, bad frame. (Pull request #10)
- Moved the MAC commands processing to the right places. FOpts field before the Payload and Port 0 just after the decryption. (Pull request #9)
- Weird conditions to check datarate on cmd mac SRV_MAC_NEW_CHANNEL_REQ (Pull request #7)
- Ignore join accept message if already joined (Pull request #6)
- Channel index verification should use OR on SRV_MAC_NEW_CHANNEL_REQ command (Pull request #5)
- Corrected the CFList management on JoinAccept. The for loop indexes were wrong. (Pull request #4)
- Correction of AES key size (Pull request #3)