1# Changelog 2 3All notable changes to this project will be documented in this file. 4 5The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/), 6and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). 7 8## LoRaWAN pre-certification results 9 10Please refer to [Releases pre-certification-results](https://github.com/Lora-net/LoRaMac-node/wiki/releases-pre-certification-results) document for further information. 11 12## [Unreleased] 13 14## [4.6.0] - 2022-01-11 15 16### General 17 18- Release based on "LoRaWAN specification 1.0.4" and "LoRaWAN specification 1.1.0 + FCntDwn ERRATA" with "LoRaWAN Regional Parameters 2-1.0.1" 19- GitHub reported issues corrections. 20 21### Known limitations 22 23- SAMR34 platform does not implement NVM storage functionality. This is a requirement for LoRaWAN versions greater or equal to 1.0.4. 24 No work on this subject is forseen by the maintainers. Implementation proposals are welcome. 25 26### Added 27 28- Added NbTrans default value reset under JoinAccept processing 29- Added missing Class B certification commands 30- Added missing `classBParams.NetworkActivation` variable initialization 31- Added Class B remote multicast setup support 32- Added data rate validation to the join accept message handling 33- Added channel id limits verification to DlChannelReq handling 34 35### Changed 36 37- Changed `LmHandlerDeviceTimeReq` API to be publicly accessible 38- Changed improved the way `USE_LRWAN_1_1_X_CRYPTO` pre-processing directive is used 39- Changed improved the way `JoinNonce` is checked 40 41### Fixed 42 43- Fixed first beacon acquisition after receiving a `DeviceTimeAns`. 44- Fixed `LmHandlerParams_t` `PingSlotPeriodicity` field type from `bool` to `uint8_t` 45- Fixed i2c.h to include "utilities.h". 46- Fixed VSCode `periodic-uplink-lpp` project default LoRaWAN class selection 47- Fixed SX127x FSK transmission when radio current operating mode is RX. 48 49### Removed 50 51- Removed no more needed `MLME_SCHEDULE_UPLINK` notification 52 53## [4.5.2] - 2021-05-28 54 55### General 56 57- Release based on "LoRaWAN specification 1.0.4" and "LoRaWAN Regional Parameters 2-1.0.1" 58- GitHub reported issues corrections. 59 60### Known limitations 61 62- SAMR34 platform does not implement NVM storage functionality. This is a requirement for LoRaWAN versions greater or equal to 1.0.4. 63 No work on this subject is forseen by the maintainers. Implementation proposals are welcome. 64 65### Added 66 67- Added possibility to override periodic-uplink-lpp example `LORAWAN_DEFAULT_CLASS` 68- Added I2C driver support for B-L072Z-LRWAN1 and Nucleo platforms to the build system 69- Added battery voltage and MCU temperature reading functions implementation for Nucleo platforms 70- Added a default value for `Request->ReqReturn.DutyCycleWaitTime` to ensure that a valid value is always returned 71- Added SX126x `REG_RX_GAIN` and `REG_TX_MODULATION` to the radio registers retention list 72- Added SX126x missing registers definitions 73- Added radio image calibration enforcement after radio initialization and radio sleep cold start. 74- Added possibility to query minimal Tx data rate 75 76### Changed 77 78- Updated ADC driver based on en.en-st-stm32cubeide examples 79- Changed improved the way `LmHandler` handles the packages transmissions 80- Changed certification `OnTxPeriodicityChanged` callback implementation in order to directly apply the requested change 81- Changed the `LmHandler` initialization to apply user default data rate 82- 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 83- Changed the way `IrqFired` global variable is handled by `RadioIrqProcess` 84- Changed the place of call to `TimerStop( &RxTimeoutTimer )` on `RadioIrqProcess` implementation 85- Changed utilities.h `SUCCESS`/`FAIL` definition by an enumeration `LMN_STATUS_OK`/`LMN_STATUS_ERROR` 86 87### Fixed 88 89- Fixed Null pointer exception when CN470 region was selected 90- Fixed `src/system/gps.c` HasFix variable type from `double` to `bool` 91- Fixed Class C downlink handling 92- Fixed I2C driver for L476 93- Fixed re-transmissions handling when ClassB or ClassC downlink is received 94- Fixed certification `FPort224DisableReq` command NVM handling 95- Fixed Class B & C confirmed downlink acknowledge management when `CLASS_B_C_RESP_TIMEOUT` expires 96- Fixed an issue when receiving downlinks in class C window during a class A procedure 97- Fixed SX126x and LR1110 driver IrqFired variable management 98- Fixed `LmhpCompliance.c` `periodicity` array size computation 99- Fixed join back-off by not storing band usage on the NVM memory. 100- Fixed `LoRaMacMibGetRequestConfirm` `MIB_SE_PIN` handling 101- Fixed ping-slot frequency to take in account the `AS923_FREQ_OFFSET_HZ` parameter 102- Fixed fragmentation loop variable type in order to allow more than 255 fragments 103- Fixed `RtcMs2Tick` conversion on SAMR34 104- Fixed compiling issue when RU864 region is selected 105- Fixed `MLME_SCHEDULE_UPLINK` handling. 106 107### Removed 108 109- Removed STM32 platforms system wake up time calibration 110 111## [4.5.1] - 2021-01-18 112 113### General 114 115- Release based on "LoRaWAN specification 1.0.4" and "LoRaWAN Regional Parameters 2-1.0.1" 116- GitHub reported issues corrections. 117 118### Fixed 119 120- Fixed compiling issues 121 122## [4.4.7] - 2021-01-18 123 124### General 125 126- Release based on "LoRaWAN specification 1.0.3" and "LoRaWAN Regional Parameters v1.0.3revA" 127- **Release 4.4.7 is an hotfix of 4.4.6 and is the last one supporting "LoRaWAN specification 1.0.3"** 128 129### Changed 130 131- Changed examples GitHub version to 4.4.7 132 133### Fixed 134 135- Fixed compiling issues when KR920 or RU864 regions are selected 136- Fixed compiling issues for `fuota-test-01` example 137 138## [4.5.0] - 2020-12-18 139 140### General 141 142- Release based on "LoRaWAN specification 1.0.4" and "LoRaWAN Regional Parameters 2-1.0.1" 143- GitHub reported issues corrections. Please refer to [Release Version 4.5.0](https://github.com/Lora-net/LoRaMac-node/milestone/5) 144 145### Added 146 147- Added implementation of LoRaWAN 1.0.4 changes 148- Added implementation for new Certification protocol specification 149- Added GitHub repository and firmware examples version definitions 150 151## [4.4.6] - 2020-12-18 152 153### General 154 155- Release based on "LoRaWAN specification 1.0.3" and "LoRaWAN Regional Parameters v1.0.3revA" 156- GitHub reported issues corrections. Please refer to [Release Version 4.4.6](https://github.com/Lora-net/LoRaMac-node/milestone/8) 157- **Release 4.4.6 is the last one supporting "LoRaWAN specification 1.0.3"** 158 159### Changed 160 161- Refactored MAC layer and examples Non Volatile Memory data handling 162- Changed `NewChannelReq` amd `DlChannelReq` handling to ignore command for `AU915`, `CN470` and `US915` regions 163- Updated behavior of `SX126xSetLoRaSymbNumTimeout` to round up the timeout to the nearest possible number of symbol. 164- Changed radio drivers floating point to integer computations 165- Improved `GetNextLowerTxDr` function implementation. 166- Changed SX1272 and SX1276 FSK FIFO handling by using `FifoLevel` IRQ instead of `FifoEmpty` IRQ 167 **WARNING** *DIO1 IRQ MCU pin detection has changed from `RISING` to `RISING_FALLING` edge.* 168- Changed IMST boards default power source to `USB_POWER` 169 170### Fixed 171 172- Fixed certification test application handling 173- Fixed `ping-pong` and `rx-sensi` examples to use the right `FSK_BANDWIDTH` and `FSK_AFC_BANDWIDTH` parameters 174- Fixed one byte transmissions over I2C 175- Fixed `RegionIN865RxParamSetupReq` `DrOffset` verification 176- Fixed STM platforms IRQ handlers when using a C++ compiler 177- Fixed an issue where the Join back off algorithm wasn't being applied when the duty-cycle enforcement was OFF 178- Fixed `AU915_MAX_RX1_DR_OFFSET` value to 5 instead of 6 179 180### Removed 181 182- Removed ClassA, ClassB and ClassC examples. 183 184## [4.5.0-rc.1] - 2020-11-24 185 186### General 187 188- Release based on "LoRaWAN specification 1.0.4" and "LoRaWAN Regional Parameters 2-1.0.1" 189- GitHub reported issues corrections. Please refer to [Release Version 4.5.0](https://github.com/Lora-net/LoRaMac-node/milestone/5) 190 191### Added 192 193- Added implementation of LoRaWAN 1.0.4 changes 194- Added implementation for new Certification protocol specification 195- Added GitHub repository and firmware examples version definitions 196 197### Changed 198 199- Changed IMST boards default power source to USB_POWER 200 201### Fixed 202 203- Fixed an issue where the Join back off algorithm wasn't being applied when the duty-cycle enforcement was OFF. 204- Fixed `AU915_MAX_RX1_DR_OFFSET` value to 5 instead of 6 205 206### Removed 207 208- Removed NvmCtxCallback calls as they should only be done when a modification happens. 209- Removed ClassA, ClassB and ClassC examples. 210 211## [4.4.5] - 2020-10-14 212 213### General 214 215- Release based on "LoRaWAN specification 1.0.3" and "LoRaWAN Regional Parameters v1.0.3revA" 216- GitHub reported issues corrections. Please refer to [Release Version 4.4.5](https://github.com/Lora-net/LoRaMac-node/milestone/7) 217 218### Added 219 220- Added to `FRAGMENTATION_FRAG_SESSION_SETUP_REQ` checks which verify `FragNb` and `FragSize` validity. 221- Added missing call to `SX126xSetOperatingMode` on `SX126xSetTxContinuousWave` and `SX126xSetTxInfinitePreamble` functions 222- Added new specific board API to initialize the RF switch (`SX126xIoRfSwitchInit`) 223- Add to AS923 and KR920 regions a definition for the Rx bandwidth to be used while executing the LBT algorithm 224- Added support for other AS923 channel sub plan groups. 225- Added FPort filtering to loramac handler packages. 226- Added missing NVM update notifications 227 228### Changed 229 230- Refactored function `RegionXXInitDefaults`. Fixes an issue on US based bands where the channels mask was not being reset. 231- Changed hard coded `JoinAccept` max payload size (33) by `LORAMAC_JOIN_ACCEPT_FRAME_MAX_SIZE` definition. 232- Moved radio operating mode management to specific board implementation 233- Changed radio `IsChannelFree API` in order to provide reception bandwidth 234- AS923 default downlink dwell time setting changed to disabled 235- Back port 1.0.4 region implementation improvements 236- Changed `RegionCommonComputeSymbolTimeLoRa`, `RegionCommonComputeSymbolTimeFsk` and `RegionCommonComputeRxWindowParameters` 237 API implementations to use integer divisions instead of double division. 238- Changed DeriveSessionKey10x and DeriveSessionKey11x functions API (Removed pointer based variable usage) 239 240### Fixed 241 242- Fixed `SX126xSetLoRaSymbNumTimeout` to call the workaround only if the number of symbols is equal to or higher than 64. 243- Fixed IAR C++ compiler warnings 244- Fixed missing `{` after `extern "C"` in `cmac.h` file 245- Fixed `FragSessionStatusAns` message construction for `Received&index` field 246- Fixed `LoRaMacCryptoHandleJoinAccept` function `DevNonce`, `RJCount0` and `RJCount1` handling. 247- Fixed nonce variable declaration 248- Fixed `LoRaMacCrypto.c` conditional pre-processing. 249- Fixed missing `Rx1Frequency` reset for dynamic channel plans 250- Applied Japan ARIB restrictions to the `AS923_1_JP` sub plan 251- Applied Regional Parameters 1.0.3.revA ERRATA note concerning the ClassB beacon format 252- Fixed SAMR34 compiling issue when `USE_RADIO_DEBUG` directive is defined 253- Fixed `SX126xClearIrqStatus` call to only clear read flags 254- Fixed GFSK bandwidth handling for SX126x and LR1110 radios. 255- Fixed version handling for MC root keys derivation 256- Fixed Class B initialization. 257- Fixed duty-cycle implementation 258 259## [4.4.4] - 2020-05-26 260 261### General 262 263- Release based on "LoRaWAN specification 1.0.3" and "LoRaWAN Regional Parameters v1.0.3revA" 264- GitHub reported issues corrections. Please refer to [Release Version 4.4.4](https://github.com/Lora-net/LoRaMac-node/milestone/6) 265 266### Added 267 268- Added the possibility to setup multicast channels locally 269- Added new `SecureElementProcessJoinAccept` API to the `secure-element.h` 270- Added possibility to select the secure-element to be used as well as to select if it is pre-provisioned or not 271- Added support for LR1110 radio 272- Added support for LR1110 crypto-engine to be used as secure-element 273- Added support for ATECC608A-TNGLORA secure-element 274- Added `LoRaMacDeInitialization` API to ease dynamic region change 275- Added possibility to query implemented versions of the LoRaWAN MAC layer and Regional Parameters specifications 276- Added `MOTE_MAC_TX_PARAM_SETUP_ANS` as sticky MAC command 277- Added a filter to handle multicast downlinks exceptions 278- Added `CHANGELOG.md` file 279 280### Changed 281 282- Updated examples to use OTAA activation method by default 283- Updated `LmhpFragmentation` implementation 284- Updated Radio APIs to handle 32-bit register addresses 285- Changed SX126x driver to only process a received packet when there is no CRC error 286- Moved `Commissioning.h` files to a single one located under `src/apps/LoRaMac/common` directory 287- Updated `Radio.TimeOnAir` API in order to be independent of the current hardware settings 288- Moved keys definition and management to the secure-element implementation 289- Moved device identity to secure-element `se-identity.h` file 290- Changed support of SAML21 platform by SAMR34 platform 291- Changed the `MlmeRequest` and `McpsRequest` APIs to report back when the next transmission is possible 292- Changed `ResetMacParameters` to perform a complete re-initialization of the regional layer after processing the join accept 293- Updated the implementation to verify the MAC commands size 294- Changed the way the duty-cycle management is handled 295 296### Removed 297 298- Removed the LoRaWAN keys display on serial terminal 299- Removed `GEN_APP_KEY` support as it is equivalent to LoRaWAN 1.1.x `APP_KEY` 300- Removed tables definition for repeater support. LoRa-Alliance will provide details on these tables usage in future versions 301- Removed Changelog chapter from `readme.md` file 302 303### Fixed 304 305- Fixed `SX126xGetRandom` API implementation 306- Fixed SX126x driver missing call to `RadioStandby` in LoRa modem case inside `RadioSetRxConfig` API 307- Fixed SX126x driver `LoRaSymbNumTimeout` handling 308- Fixed soft-se/cmac for misaligned 32-bit access 309- Fixed ping-pong and rx-sensi projects for packets with sizes bigger than 64 bytes handling 310- Fixed missing switch case `PHY_BEACON_CHANNEL_FREQ` for *AU915* region 311- Fixed default data rates for Class B beacon and ping-slots for *AU915* region 312- Fixed join request limitation due to duty cycle restrictions 313- 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 314- Fixed issue where the stack could get stuck in MCPS busy state after MLME Device Time Request 315- Fixed duty-cycle enforcement by disabling it for *IN865* region 316- Fixed potential issue where the `FCntUp` counter could sometimes be incremented by 2 instead of 1 317- Fixed wrong beacon time-on-air calculation 318 319### Security 320 321- Security breach found by Tencent Blade Team please refer to [security advisory - CVE-2020-11068](https://github.com/Lora-net/LoRaMac-node/security/advisories/GHSA-559p-6xgm-fpv9) 322 323## [4.4.3] - 2019-12-17 324 325### General 326 327- Release based on "LoRaWAN specification 1.0.3" and "LoRaWAN Regional Parameters v1.0.3revA" 328- GitHub reported issues corrections. Please refer to [Release Version 4.4.3](https://github.com/Lora-net/LoRaMac-node/milestone/4) 329 330## [4.4.2] - 2019-07-19 331 332### General 333 334- Release based on "LoRaWAN specification 1.0.3" and "LoRaWAN Regional Parameters v1.0.3revA" 335- GitHub reported issues corrections. Please refer to [Release Version 4.4.2](https://github.com/Lora-net/LoRaMac-node/milestone/2) 336 337### Added 338 339- Added new refactored application examples 340- Added LoRa-Alliance defined application layer protocols support. Only FUOTA test scenario 01 required features are currently implemented 341 - "Clock Synchronization" package 342 - "Fragmented data block transport" package 343 - "Remote multicast setup" package 344- Added a NVM context management module. (Disabled by default) 345- Added secure-element support 346- Added B-L072Z-LRWAN1 platform support 347- Added NucleoL476 platform support 348- Added NucleoL476 platform support 349- Added IMST new platforms 350- Added *RU864* region support 351- Added ClassB support 352- Added a callback to notify the upper layer to call `LoRaMacProcess` function 353- Added support for RxC windows (ClassC) required by the application layer protocols 354 355### Changed 356 357- Examples application refactoring plus the addition of the application status display on the serial port. (921600-8-N-1) 358- Refactored `timer.c/h`, `rtc-driver.c/h` and added a `systime.c/h` module 359- Functions in ISR context have been moved to main context 360- Changed `BoardDisableIrq` and `BoardEnableIrq` functions by `CRITICAL_SECTION_BEGIN` and `CRITICAL_SECTION_END` 361 respectively 362- Heavily refactored the `LoRaMac.c` and `LoRaMac.h` implementation 363- Changed multicast channels handling according to the application layer protocols 364 365### Removed 366 367- Removed SensorNode platform support 368- Removed MoteII platform support 369- Removed LoRaMote platform support 370- Removed *US915-Hybrid* region support 371 372## Fixed 373 374- Applied SX1272 and SX1276 radios errata note 3.1 to the radio drivers implementation 375- Fixed `printf` and `scanf` functions when GCC is used as compiler 376 377## [4.4.1] - 2018-03-07 378 379### General 380 381- Release based on "LoRaWAN specification 1.0.2" and "LoRaWAN Regional Parameters v1.0.2rB" 382- GitHub reported issues corrections. Please refer to [Release Version 4.4.1](https://github.com/Lora-net/LoRaMac-node/milestone/1) 383 384### Added 385 386- Added SX126x radio support 387- Added NucleoL073 and NucleoL152 board platforms support 388- Added Microchip/Atmel SAML21 Xplained Pro hardware platform support 389- Added CMAKE build system support 390 391### Removed 392 393- Removed CoIDE projects support 394- Removed Keil projects support 395 396## [4.4.0] - 2017-09-08 397 398### General 399 400- Release based on "LoRaWAN specification 1.0.2" and "LoRaWAN Regional Parameters v1.0.2rB" 401- GitHub reported issues corrections 402 403### Added 404 405- Added SX126x radio support 406- Added NucleoL073 and NucleoL152 board platforms support 407- Added Microchip/Atmel SAML21 Xplained Pro hardware platform support 408- Added CMAKE build system support 409- Added the support for all "LoRaWAN Regional Parameters v1.0.2rB" document defined regions 410 411### Changed 412 413- Changed radio driver to perform the LBT carrier sense continuously for a given period of time 414- Changed implementation to support 1.0.2 specification additions 415 416## [4.3.2] - 2017-04-19 417 418### General 419 420- Release based on "LoRaWAN specification 1.0.2" 421- GitHub reported issues corrections 422 423### Added 424 425- Added an algorithm to automatically compute the Rx windows parameters. (Window `symbolTimeout` and `Offset` from 426 downlink expected time) 427- Added a workaround to reset the radio in case a `TxTimeout` occurs 428- Added newly defined `TxCw`(Tx Continuous Wave) certification protocol command 429 430### Changed 431 432- Changed radio driver to perform the LBT carrier sense continuously for a given period of time 433- Changed implementation to support 1.0.2 specification additions 434- Changed FSK modem handling to use the provided `symbolTimeout` (1 symbol equals 1 byte) when in `RxSingle` mode 435- Changed `GpioMcuInit` function to first configure the output pin state before activating the pin 436- Changed the `AdrAckCounter` handling as expected by the test houses 437- Relocate parameter settings from `ResetMacParameters` to the initialization 438- Changed MAC layer indications handling 439 440### Removed 441 442- Removed useless `LoRaMacPayload` buffer 443 444### Fixed 445 446- Fixed an overflow issue that could happen with `NmeaStringSize` variable 447- Fixed an issue where the node stopped transmitting 448 449## [4.3.1] - 2017-02-27 450 451### General 452 453- Release based on "LoRaWAN specification 1.0.1" 454- GitHub reported issues corrections 455 456### Added 457 458- Added MoteII platform based on the IMST module iM881A (STM32L051C8) 459- Added NAMote72 platform 460- Added TxCw (Tx continuous wave) LoRaWAN compliance protocol command 461- Added TxContinuousWave support to the radio drivers 462- Added region CN470 support 463 464### Changed 465 466- Updated the MAC layer in order to be LoRaWAN version 1.0.1 compliant (Mainly US915 bug fixes) 467- Updated SensorNode projects according to the new MCU reference STM32L151CBU6. Bigger memories 468- Updated ST HAL drivers 469 - STM32L1xx_HAL-Driver : V1.2.0 470 - STM32L0xx_HAL_Driver : V1.7.0 471 472### Removed 473 474- Removed api-v3 support from the project 475 476### Fixed 477 478- Fixed compliance test protocol command 0x06 behavior 479- Fixed US band in order to pass the LoRaWAN certification 480 481## [4.3.0] - 2016-06-22 482 483### General 484 485- Release based on "LoRaWAN specification 1.0.1" 486- GitHub reported issues corrections 487 488### Added 489 490- Added radio `RX_TIMEOUT` irq clear into the irq handler 491- Added retransmission back-off 492- Added debug pin support to LoRaMote platform 493- Added a function to verify the RX frequency of window 2 for US band 494 495### Changed 496 497- Applied to all application files the certification protocol change for LoRaWAN 1.0.1 compliance tests 498 **REMARK**: api-v3 application files aren't updated 499- Update of the STM32L0 HAL to version 1.6.0 500- Consolidated the line endings across all project files 501 Windows line endings has been choose for almost every file 502- Updated maximum payload size for US band 503- Update data rate offset table for US band 504- Make MAC commands sticky 505- Updated and improved MPL3115 device driver 506- RTC driver major update 507 508### Removed 509 510- Removed the end less loop from `HAL_UART_ErrorCallback` 511- Remove the `TxPower` limitation for US band on `LoRaMacMibSetRequestConfirm` function. The power will be limited 512 anyway when the `SendFrameOnChannel` functions is called 513 514### Fixed 515 516- Issue(#81): Bug fix in function `LoRaMacMlmeRequest` case `MLME_JOIN`. Function will return `LORAMAC_STATUS_BUSY` in 517 case the MAC is in status `MAC_TX_DELAYED` 518- Issue(#83): Bug fix in parameter validation 519- Issue(#84): Fix issue of `CalibrateTimer` function 520- Applied pull request #87 521- Issue(#88): Bug fix in function `PrepareFrame` where repeated MAC commands were not handled correctly 522- Fixed `OnRadioRxDone` Node now drops frames on port 0 with fOpts > 0 523- Fixed `OnRadioRxDone` Node now receives frames with fOpts > 0 when no payload is present 524 525## [4.2.0] - 2016-05-13 526 527### General 528 529- Release based on "LoRaWAN specification 1.0.0" 530- GitHub reported issues corrections 531 532### Added 533 534- Added a definition for the LoRaWAN device address. Add an IEEE_OUI for the LoRaWAN device EUI 535- Added a definition for the default data rate 536- Introduce individual MIN and MAX datarates for RX and TX 537- Added the possibility to set and get the `ChannelsDefaultDatarate` 538- Introduce a new status `MAC_RX_ABORT`. Reset `MAC_TX_RUNNING` only in `OnMacStateCheckTimerEvent` 539 540### Changed 541 542- Update STM32L1xx_HAL_Driver version to 1.5. Update related drivers and implementations accordingly 543 **REMARK**: This change implies that the time base had to be changed from microseconds to milliseconds 544- Optimize radio drivers regarding FSK PER 545- Increase RTC tick frequency for higher resolution 546- Update the radio wake up time 547- Update channel mask handling for US915 hybrid mode to support any block in the channel mask 548- Optimization of the RX symbol timeout 549- Replace definition `LORAMAC_DEFAULT_DATARATE` by `ChannelsDefaultDatarate` in `LoRaMacChannelAdd` 550- Accept MAC information of duplicated, confirmed downlinks 551 552### Fixed 553 554- Fixed the frequency check condition for // ERRATA 2.1 - Sensitivity Optimization with a 500 kHz Bandwidth 555- Fixed an issue when calling `SX127xInit` function more than once 556- Issue(#66) correction of functions `SX1276SetOpMode` and `SX1272SetOpMode` 557- Issue(#68): Fix for low level RF switch control 558- Issue(#56) correction 559- Issue(#63) correct the maximum payload length in RX mode 560- Fixed Tx power setting loss for repeated join requests on US band 561- Issue(#59): Add the possibility to set the uplink and downlink counter 562- Issue(#72): Fix of possible array overrun in `LoRaMacChannelRemove` 563- Issue(#74): Drop frames with a downlink counter difference greater or equal to `MAX_FCNT_GAP` 564 565## [4.1.0] - 2016-03-10 566 567### General 568 569- Release based on "LoRaWAN specification 1.0.0" 570- GitHub reported issues corrections 571- This version has passed all mandatory LoRa-Alliance compliance tests 572 *One of the optional tests is unsuccessful (FSK downlinks PER on Rx1 and Rx2 windows) and is currently under investigation* 573 574### Added 575 576- Add missing documentation about `MIB_REPEATER_SUPPORT`. (Issue #42) 577- Add a new `LoRaMacState` to allow adding channels during TX procedure. (Issue #43) 578- Add a new function `PrepareRxDoneAbort` to prepare a break-out of `OnRadioRxDone` in case of an error 579 580### Changed 581 582- Application state machine. Relocate setting sleep state and update the duty cycle in compliance test mode 583- Changed `TimerHwDelayMs` function to be re-entrant 584- Rename attribute `nbRetries` to `NbTrials` in structure `McpsReqConfirmed_t`. (Issue #37) 585- Updated implementation of `SetNextChannel`. Added enabling default channels in case of join request. (Issue #39) 586- Relocate the activation of `LoRaMacFlags.Bits.McpsInd` in `OnRadioRxDone` 587- Reset status of `NodeAckRequested` if we received an ACK or in case of timeout 588- Improved and corrected `AdrNextDr` function 589 590### Removed 591 592- Removed support for Raisonance Ride7 IDE (Reduces the amount of work to be done at each new release) 593- Removed the Bleeper-72 and Bleeper-76 platforms support as these are now deprecated 594- Removed additional EU868 channels from the LoRaWAN implementation files. GitHub (Issue #49) 595 The creation of these additional channels has been moved to the application example 596 597### Fixed 598 599- Fixed `TimerIrqHandler`. Now, it is possible to insert timers in callback 600- Fixed FSK modem packets bigger than 64 bytes handling (Issue #36) 601- Fixed default channels activation in case all others are disabled. (Issue #39) 602- Fixed default channel setting in case none is enabled 603- Fixed `SRV_MAC_NEW_CHANNEL_REQ` MAC command by adding a fix to the `macIndex` variable on US915 band 604- Start the MacStateCheckTimer in OnRxDone and related error cases with a short interval to handle events promptly. (Issue #44) 605 606## [4.0.0] - 2015-12-18 607 608### General 609 610- Release based on "LoRaWAN specification 1.0.0" 611- GitHub reported issues corrections 612 613### Added 614 615- LoRaWAN certification protocol implementation 616 617### Changed 618 619- STACKFORCE new API integration 620- Reverse the EUIs arrays in the MAC layer 621 622## [3.4.1] - 2015-11-06 623 624### General 625 626- Release based on "LoRaWAN specification 1.0.0" 627- GitHub reported issues corrections 628 629### Fixed 630 631- Fixed downlink counter roll over management when several downlinks were missed 632- Fixed the Radio maximum payload length management. Radio was filtering received frames with a length bigger than the transmitted one 633- Applied Pull request #22 solution proposition 634 635## [3.4.0] - 2015-10-30 636 637### General 638 639- Release based on "LoRaWAN specification 1.0.0" 640- GitHub reported issues corrections 641 642### Added 643 644- Added TimerStop function calls to each timer event callback 645- Added some missing variables casts. Helps on code portability 646- Added const variable attribute when necessary to functions prototypes 647- Added `LORAMAC_MIN_RX1_DR_OFFSET` and `LORAMAC_MAX_RX1_DR_OFFSET` definitions to `LoRaMac-board.h`. Can be different 648 upon used PHY layer 649- Added the limitation of output power according to the number of enabled channels for US915 band 650- Added the limitation of the applicative payload length according to the data rate. Does not yet take in account the 651 MAC commands buffer. (Issue #15) 652 653### Changed 654 655- Changed all applications in order to have preprocessing definitions on top of the files and added relevant comments 656- Applications LED control is no more done into the timer callback functions but instead on the main while loop 657- Changed types names for `stdint.h` names. Helps on code portability 658- Renamed `rand` and `srand` to `rand1` and `srand1`. Helps on code portability 659- Moved `ID1`, `ID2` and `ID3` definition from `board.h` to `board.c`, `usb-cdc-board.c` and `usb-dfu-board.c` 660- Renamed `BoardMeasureBatterieLevel` to `BoardGetBatteryLevel` 661- Added `SetMaxPayloadLength` API function to SX1272 and SX1276 radio drivers 662- Changed the name of Radio API Status function to `GetStatus` 663- Changed AES/CMAC types names for `stdint.h` names. Helps on code portability (Issue #20) 664- Moved `__ffs` function from `utilities.h` to `spi-board.c`. This function is only used there 665- 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) 666- Replaced the usage of `__IO` attribute by `volatile` 667- Renamed `LoRaMacEvent_t` into `LoRaMacCallbacks_t` and added a function pointer for getting battery level status 668- Renamed `LoRaMacSetDutyCycleOn` into `LoRaMacSetTestDutyCycleOn` 669- Renamed `LoRaMacSetMicTest` into `LoRaMacTestSetMic` 670- Increased the PHY buffer size to 250 671- `LoRaMacEventInfo.TxDatarate` now returns LoRaWAN data rate (DR0 -> DR7) instead of (SF12 -> DF7) 672- `LoRaMac-board.h` now implements the settings for the PHY layers specified by LoRaWAN 1.0 specification. (EU433, CN780, EU868, US915) (Issue #19) 673 674### Removed 675 676- Removed `NULL` definition from `board.h` 677- Removed the definition of `RAND_SEED`. It has been replaced by a function named `BoardGetRandomSeed` 678- Removed `fputc` function redefinition from `Utilities.c` 679- Removed the usage of `PACKED` attribute for data structures 680- Removed `IsChannelFree` check on `LoRaMacSetNextChannel` function. LoRaWAN is an ALHOA protocol. (Pull request #8) 681 682### Fixed 683 684- Fixed timings comments. Timing values are most of the time us based 685- Fixed and simplified the downlink sequence counter management 686- Fixed channel mask management for EU868 band 687- Fixed `LoRaMacPrepareFrame` function behavior when no applicative payload is present 688- Fixed `MacCommandBufferIndex` management. (Issue #18) 689 690## [3.3.0] - 2015-08-07 691 692### General 693 694- Release based on "LoRaWAN specification 1.0.0" 695- GitHub reported issues corrections 696 697### Added 698 699- Added the support for LoRaWAN Class C devices 700- Added the possibility to change the channel mask and number of repetitions trough SRV_MAC_LINK_ADR_REQ command when ADR is disabled 701 702### Changed 703 704- 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 705- Increased the UART USB FIFO buffer size in order to handle bigger chunks of data 706- Renamed data rates as per LoRaWAN specification 707- Changed confirmed messages function to use default datarate when ADR control is off 708- 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 709- Moved the MAC commands processing to the right places. FOpts field before the Payload and Port 0 just after the decryption. (Pull request #9) 710 711### Fixed 712 713- Implemented the radios errata note workarounds. SX1276 errata 2.3 "Receiver Spurious Reception of a LoRa Signal" is not yet implemented 714- Fixed handling of the MAC commands which was done incorrectly the condition to verify the length of the buffer has changed from `<` to `<=` 715- Fixed `Rx1DrOffset` management. In previous version DR1 was missing for all offsets 716- Fixed default FSK channel frequency 717- Fixed a firmware freeze when one of the following situations arrived in `OnRxDone` callback: bad address, bad MIC, bad frame. (Pull request #10) 718- Fixed weird conditions to check data rate on MAC command `SRV_MAC_NEW_CHANNEL_REQ` (Pull request #7) 719- Fixed join accept message handling to be ignored if already joined (Pull request #6) 720- Fixed channel index verification should use OR on `SRV_MAC_NEW_CHANNEL_REQ` command (Pull request #5) 721- Fixed the CFList management on JoinAccept. The `for` loop indexes were wrong. (Pull request #4) 722- Fixed AES key size (Pull request #3) 723 724## [3.2.0] - 2015-04-30 725 726### General 727 728- Release based on "LoRaWAN specification 1.0.0" 729- GitHub reported issues corrections 730 731### Added 732 733- Added the support of packed structures when using IAR tool chain 734- Added a function to get the time in us 735- Added a typedef for time variables (TimerTime_t) 736- Added a function that returns if the GPS has a fix or not 737- Added missing MAC commands and updated others when necessary 738 - Corrected the Port 0 MAC commands decryption 739 - Changed the way the upper layer is notified. Now it is only notified 740 when all the operations are finished 741 742 When a ClassA Tx cycle starts a timer is launched to check every second if everything is finished 743 744 - Added a new parameter to `LoRaMacEventFlags` structure that indicates on which Rx window the data has been received 745 - Added a new parameter to `LoRaMacEventFlags` structure that indicates if there is applicative data on the received payload 746 - Corrected ADR MAC command behavior 747 - DutyCycle enforcement implementation (EU868 PHY only) 748 749 **REMARK 1** *The regulatory duty cycle enforcement is enabled by default which means that for lower data rates the 750 node may not transmit a new frame as quickly as requested 751 The formula used to compute the node idle time is* 752 753 Toff = TimeOnAir / DutyCycle - TxTimeOnAir 754 755 *Example:* 756 *A device just transmitted a 0.5 s long frame on one default channel 757 This channel is in a sub-band allowing 1% duty-cycle. Therefore this whole sub-band (868 MHz - 868.6 MHz) will be 758 unavailable for 49.5 s.* 759 760 **REMARK 2** *The duty cycle enforcement can be disabled for test purposes by calling the `LoRaMacSetDutyCycleOn` 761 function with false parameter.* 762 - Implemented aggregated duty cycle management 763 - Added a function to create new channels 764 - Implemented the missing features on the JoinAccept MAC command 765 - Updated LoRaMacJoinDecrypt function to handle the CFList field 766- Added the possibility to chose to use either public or private networks 767 768### Changed 769 770- Cosmetic updates 771- Changed the TimeOnAir radio function to return a uint32_t value instead of a double. The value is in us 772- Changed the GetPosition functions to return a latitude and longitude of 0 and altitude of 65535 when no GPS fix 773- Due to duty cycle management the applicative API has changed 774 All applications must be updated accordingly 775 776### Removed 777 778- Removed support for previous LoRaMac/LoRaWAN specifications 779 780### Fixed 781 782- Fixed the 250 kHz bandwidth choice for the FSK modem 783 784## [3.1.0] - 2015-01-30 785 786### General 787 788- Release based on "LoRaMac specification R3.0.0" 789- GitHub reported issues corrections 790 791### Added 792 793- Started to add support for CooCox CoIDE Integrated Development Environment 794 Currently only LoRaMote and SensorNode platform projects are available 795- Added the support of different tool chains for the `HardFault_Handler` function 796- Added an invalid bandwidth to the Bandwidths table in order to avoid an error 797 when selecting 250 kHz bandwidth when using FSK modem 798- Added another timer in order increment the tick counter without blocking the normal timer count 799- Added the possibility to switch between low power timers and normal timers on the fly 800- Added an I2C EEPROM driver 801- Added the possibility to analyze an hard fault interrupt 802- Added the possibility to configure almost all the MAC parameters 803- Added the functions to read the Up and Down Link sequence counters 804 805### Changed 806 807- Updated GCC compiler linker scripts 808- Changed the RSSI values type from int8_t to int16_t. We can have RSSI values below -128 dBm 809- Updated radio API to support FHSS and CAD handling 810- Changed all structures declarations to be packed 811- Automatically activate the channel once it is created 812 813### Fixed 814 815- Fixed Radio drivers I&Q signals inversion to be possible in Rx and in Tx 816 Added some missing radio state machine initialization 817- Fixed SNR computation on RxDone interrupt 818- Fixed in `SetRxConfig` function the FSK modem preamble register name 819- Fixed RTC alarm setup which could be set to an invalid date 820- Fixed I2C driver by correcting the 2 bytes internal address management 821 Corrected buffer read function when more that 1 byte was to be read 822 Added a function to wait for the I2C bus to become IDLE 823- Fixed and improved USB Virtual COM Port management files 824 Corrected the USB CDC and USB UART drivers 825- Fixed RxWindow2 data rate management 826- Fixed `SrvAckRequested` variable was never reset 827- Fixed tstIndoor applications for LoRaMac R3.0 support 828- Fixed the `LoRaMacSetNextChannel` function 829- Fixed the port 0 MAC command decoding 830- Fixed the Acknowledgment retries management when only 1 trial is needed 831 Before the device was issuing at least 2 trials 832- Fixed server mac new channel req answer 833- Fixed `SRV_MAC_RX2_SETUP_REQ` frequency handling 834 Added a x100 multiplication 835- Fixed `SRV_MAC_NEW_CHANNEL_REQ` 836 Removed the DutyCycle parameter decoding 837- Fixed `NbRepTimeoutTimer` initial value. `RxWindow2Delay` already contains `RxWindow1Delay` in it 838 839## [3.0.0] - 2014-07-18 840 841### General 842 843- Release based on "LoRaMac specification R3.0.0" 844- GitHub reported issues corrections 845 846### Added 847 848- Added to Radio API the possibility to select the modem 849 850### Changed 851 852- Changed radio callbacks events to timeout when it is a timeout event and error when it is a CRC error 853- Radio API updated 854- Updated ping-pong applications 855- Updated tx-cw applications 856- Updated LoRaMac applications in order to handle LoRaMac returned functions calls status 857- Updated LoRaMac applications to toggle LED2 each time there is an application payload down link 858- Updated tstIndoor application to handle correctly more than 6 channels 859- Changed the MPL3115 altitude variable from unsigned to signed value 860- Changed the usage of pow(2, n) by defining POW2 functions Saves ~2 KBytes of code 861- MAC commands implemented 862 - LinkCheckReq **YES** 863 - LinkCheckAns **YES** 864 - LinkADRReq **YES** 865 - LinkADRAns **YES** 866 - DutyCycleReq **YES** 867 - DutyCycleAns **YES** 868 - Rx2SetupReq **YES** 869 - Rx2SetupAns **YES** 870 - DevStatusReq **YES** 871 - DevStatusAns **YES** 872 - JoinReq **YES** 873 - JoinAccept **YES** 874 - NewChannelReq **YES** 875 - NewChannelAns **YES** 876- Features implemented 877 - Possibility to shut-down the device **YES** (Possible by issuing DutyCycleReq MAC command) 878 - Duty cycle management enforcement **NO** 879 - Acknowledgments retries **YES** 880 - Unconfirmed messages retries **YES** 881 882### Fixed 883 884- Fixed RSSI reading formulas as well as changed the RSSI and SNR values from double to int8_t type 885- Fixed an issue potentially arriving when LOW_POWER_MODE_ENABLE wasn't defined 886 A timer interrupt could be generated while the TimerList could already be emptied 887 888## [2.3.0-RC2] - 2014-07-10 889 890### General 891 892- Release based on "LoRaMac specification R2.2.1" 893- GitHub reported issues corrections 894 895### Fixed 896 897- Fixed all radios antenna switch low power mode handling 898- Fixed SX1276 antenna switch control 899 900## [2.3.0-RC1] - 2014-06-06 901 902### General 903 904- GitHub reported issues corrections 905 906### Added 907 908- Added the support for SX1276 radio 909- Added Bleeper-76 and SensorNode platforms support 910- Added to the radio drivers a function that generates a random value from RSSI readings 911- Added a project to transmit a continuous wave and a project to measure the the radio sensitivity 912- Added a bootloader project for the LoRaMote and SensorNode platforms 913- Added a function to the timer driver that checks if a timer is already in the list or not 914- Added the UART Overrun bit exception handling to the UART driver 915 916### Changed 917 918- Radio driver RxDone callback function API has changed (size parameter is no more a pointer) 919 - Previous function prototype: 920 `void ( *RxDone )( uint8_t *payload, uint16_t *size, double rssi, double snr, uint8_t rawSnr );` 921 - New function prototype: 922 `void ( *RxDone )( uint8_t *payload, uint16_t size, double rssi, double snr, uint8_t rawSnr );` 923- The LoRaMac application for Bleeper platforms now sends the Selector and LED status plus the sensors values 924 - The application payload for the Bleeper platforms is as follows: 925 LoRaMac port 1: 926 927 { 0xX0/0xX1, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } 928 ---------- ---------- ---------- ---------- ---- 929 | | | | | 930 SELECTOR/LED PRESSURE TEMPERATURE ALTITUDE BATTERY 931 MSB nibble = SELECTOR (barometric) 932 LSB bit = LED 933- Redefined `rand()` and `srand()` standard C functions. These functions are redefined in order to get the same behavior across different compiler tool chains implementations 934- GPS driver improvements. Made independent of the board platform 935- Simplified the RTC management 936- MAC commands implemented 937 - LinkCheckReq **YES** 938 - LinkCheckAns **YES** 939 - LinkADRReq **YES** 940 - LinkADRAns **YES** 941 - DutyCycleReq **YES** (LoRaMac specification R2.2.1) 942 - DutyCycleAns **YES** (LoRaMac specification R2.2.1) 943 - Rx2SetupReq **YES** (LoRaMac specification R2.2.1) 944 - Rx2SetupAns **YES** (LoRaMac specification R2.2.1) 945 - DevStatusReq **YES** 946 - DevStatusAns **YES** 947 - JoinReq **YES** 948 - JoinAccept **YES** (LoRaMac specification R2.2.1) 949 - NewChannelReq **YES** (LoRaMac specification R2.2.1) 950 - NewChannelAns **YES** (LoRaMac specification R2.2.1) 951- Features implemented 952 - Possibility to shut-down the device **YES** (Possible by issuing DutyCycleReq MAC command) 953 - Duty cycle management enforcement **NO** 954 - Acknowledgments retries **WORK IN PROGRESS** (Not fully debugged. Disabled by default) 955 - Unconfirmed messages retries **WORK IN PROGRESS** (LoRaMac specification R2.2.1) 956- Due to new specification the `LoRaMacInitNwkIds` LoRaMac API function had to be modified 957 - Previous function prototype: 958 `void LoRaMacInitNwkIds( uint32_t devAddr, uint8_t *nwkSKey, uint8_t *appSKey );` 959 - New function prototype: 960 `void LoRaMacInitNwkIds( uint32_t netID, uint32_t devAddr, uint8_t *nwkSKey, uint8_t *appSKey );` 961- Changed the LoRaMac channels management 962- LoRaMac channels definition has been moved to `LoRaMac-board.h` file located in each specific board directory 963 964### Removed 965 966- Removed dependency of spi-board files to the `__builtin_ffs` function 967 This function is only available on GNU compiler tool suite 968 Removed --gnu compiler option from Keil projects 969 Added own `__ffs` function implementation to `utilities.h` file 970- Removed obsolete class1 devices support 971 972### Fixed 973 974- Fixed Radio continuous reception mode 975 976## [2.2.0] - 2014-04-07 977 978### General 979 980- GitHub reported issues corrections 981 982### Added 983 984- Added IMST SK-iM880A starter kit board support to the project 985 - The application payload for the SK-iM880A platform is as follows: 986 LoRaMac port 3: 987 988 { 0x00/0x01, 0x00, 0x00, 0x00 } 989 ---------- ----- ---------- 990 | | | 991 LED POTI VDD 992 993### Changed 994 995- Ping-Pong applications have been split per supported board 996- Made fifo functions coding style coherent with the project 997- UART driver is now independent of the used MCU 998 999### Fixed 1000 1001- Fixed the SX1272 output power management 1002 - Added a variable to store the current Radio channel 1003 - Added missing FSK bit definition 1004 1005## [2.1.0] - 2014-03-28 1006 1007### General 1008 1009- GitHub reported issues corrections 1010 1011### Added 1012 1013- Added to the radio driver the possibility to choose the preamble length and rxSingle symbol timeout in reception 1014- Added Hex coder selector driver for the Bleeper board 1015- Added acknowledgments retries management 1016 - Split the `LoRaMacSendOnChannel` function in `LoRaMacPrepareFrame` and `LoRaMacSendFrameOnChannel` 1017 `LoRaMacSendOnChannel` now calls the 2 newly defined functions 1018 **WARNING**: By default the acknowledgment retries specific code isn't enabled 1019 The current http://iot.semtech.com server version doesn't support it 1020- Added `LORAMAC_EVENT_INFO_STATUS_MAC_ERROR` event info status 1021 1022### Changed 1023 1024- The timers and RTC management has been rewritten 1025- Improved the UART and UP501 GPS drivers 1026- Changed copyright Unicode character to (C) in all source files 1027- MAC commands implemented 1028 - LinkCheckReq **YES** 1029 - LinkCheckAns **YES** 1030 - LinkADRReq **YES** 1031 - LinkADRAns **YES** 1032 - DevStatusReq **YES** 1033 - DevStatusAns **YES** 1034 - JoinReq **YES** 1035 - JoinAccept **YES** 1036 1037### Fixed 1038 1039- Fixed GPIO pin names management 1040- Fixed the antenna switch management in the SX1272 driver 1041- Fixed issues on JoinRequest and JoinAccept MAC commands 1042 1043## [2.0.0] - 2014-02-21 1044 1045### General 1046 1047- GitHub reported issues corrections 1048 1049### Added 1050 1051- Added new MAC layer application API implementation 1052- Added sensors drivers implementation 1053 1054### Changed 1055 1056- The LoRaMac applications now sends the LED status plus the sensors values 1057 For the LoRaMote platform the application also sends the GPS coordinates 1058 - The application payload for the Bleeper platform is as follows: 1059 LoRaMac port 1: 1060 1061 { 0x00/0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } 1062 ---------- ---------- ---------- ---------- ---- 1063 | | | | | 1064 LED PRESSURE TEMPERATURE ALTITUDE BATTERY 1065 (barometric) 1066 1067 - The application payload for the LoRaMote platform is as follows: 1068 LoRaMac port 2: 1069 1070 { 0x00/0x01, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 } 1071 ---------- ---------- ---------- ---------- ---- ---------------- ---------------- ---------- 1072 | | | | | | | | 1073 LED PRESSURE TEMPERATURE ALTITUDE BATTERY LATITUDE LONGITUDE ALTITUDE 1074 (barometric) (gps) 1075- Changed applications examples according to the new MAC layer API 1076- MAC commands implemented 1077 - LinkCheckReq **YES** 1078 - LinkCheckAns **YES** 1079 - LinkADRReq **YES** 1080 - LinkADRAns **YES** 1081 - DevStatusReq **YES** 1082 - DevStatusAns **YES** 1083 - JoinReq **YES (Not tested)** 1084 - JoinAccept **YES (Not tested)** 1085 1086### Known bugs 1087 1088- Still some issues with RTC/Timer. Will be solved in a future version 1089 1090## [1.1.0] - 2014-01-24 1091 1092### General 1093 1094- GitHub reported issues corrections 1095 1096### Added 1097 1098- Implemented an application LED control 1099 - If the server sends on port 1 an application payload of one byte with the following contents: 1100 1101 0: LED off 1102 1: LED on 1103 - The node transmits periodically on port 1 the LED status on 1st byte and the message "Hello World!!!!" 1104 the array looks lik 1105 1106 { 0, 'H', 'e', 'l', 'l', 'o', ' ', 'W', 'o', 'r', 'l', 'd', '!', '!', '!', '!' } 1107 1108### Changed 1109 1110- MAC commands implemented 1111 - LinkCheckReq **NO** 1112 - LinkCheckAns **NO** 1113 - LinkADRReq **YES** 1114 - LinkADRAns **YES** 1115 - DevStatusReq **YES** 1116 - DevStatusAns **YES** 1117 1118### Known bugs 1119 1120- There is an issue when launching an asynchronous Timer. Will be solved in a future version 1121 1122## [1.1.0-RC1] - 2014-01-20 1123 1124### Added 1125 1126- Added Doc directory. The directory contains: 1127 - LoRa MAC specification 1128 - Bleeper board schematic 1129 1130### Changed 1131 1132- Changed LoRaMac according to Release1 of the specification. Main changes are: 1133 - MAC API changed 1134 - Frame format 1135 - ClassA first ADR implementation 1136 - MAC commands implemented 1137 - LinkCheckReq **NO** 1138 - LinkCheckAns **NO** 1139 - LinkADRReq **YES** 1140 - LinkADRAns **NO** 1141 - DevStatusReq **NO** 1142 - DevStatusAns **NO** 1143- Timers and RTC rewriting. Known bugs are: 1144 - The Radio wakeup time is taken in account for all timings 1145 - When opening the second reception window the microcontroller sometimes doesn't enter in low power mode 1146 1147## [1.0.0] - 2013-11-28 1148 1149### General 1150 1151- Initial version of the LoRa MAC node firmware implementation 1152