Skip to content

Release 8.0.0

Latest

Choose a tag to compare

@jgromes jgromes released this 07 Nov 21:11
· 9 commits to master since this release

Breaking release notification

This release introduces backwards-incompatible changes to the public API! Especially the following changes should be noted:

  • removal of deprecated begin methods with individual arguments
    • fully replaced by begin methods with single configuration struct argument
  • removal of most floats from public API
    • especially for configuration - e.g., frequency, bandwidth etc. are now configured via integers
    • TCXO reference voltage configured via RadioLibTCXOVoltage_t enum
    • remaining uses are for physical quantities, like RSSI and SNR
  • replaced all setPacketSentAction and similar with generic setIrqAction
  • some changes in the return error codes

LoRaWAN update notice

The most important changes regarding the LoRaWAN stack are mentioned here - please take note.

  • layout of the nonces and session buffers has changed. Updating to RadioLib 8.0+ will require resetting used DevNonces on your LNS. If necessary, it is possible to carry over existing DevNonces from RadioLib 7.x - reach out by opening a Discussion before updating your devices!
  • custom delay/sleep function (setSleepFunction) now expects your device to listen for interrupts on the IRQ pin and return as soon as an interrupt occurs. Do not ignore this interrupt or do any additional processing after the interrupt is triggered. It is recommended to use some light-sleep with an interrupt on the IRQ pin if you use a custom delay/sleep function.
  • scanGuard field is removed and replaced by an individual scanGuardA for the Rx1 and Rx2 window padding, and a scanGuardC field that can be used to increase transition time from RxC windows to Rx1 and Rx2 windows. The default values should work on most popular devices and should not need modification.

Note

RadioLib 8.0 will be the last major version of RadioLib to support LoRaWAN v1.1 as far as we can guarantee. With LoRaWAN v1.2 replacing v1.1 around 2027Q1, RadioLib aims to replace its support for v1.1 with v1.2 as soon as possible after the release of LoRaWAN v1.2 - this could happen at any point during RadioLib 8.x. LoRaWAN v1.0.4 will be continued to be supported, and users that do not wish to switch to LoRaWAN v1.2 upon release are encouraged to use v1.0.4 now instead of v1.1.

Change log and commit attribution

  • [SSDV] Implement SSDV (transmission) (by @StevenCellist)
  • [SSDV] Implement reception and decoding (by @StevenCellist)
  • [FEC] Make RS codec generally available
  • [CI] Add RS unit tests
  • [LoRaWAN] Improve persistence and session handling (breaking) (#1789) (#1810) (by @StevenCellist)
  • [LR11x0] Add HF/LF cutoff macro
  • [PHY][LoRaWAN] Implement LoRa symbol timeout (#1811) (by @StevenCellist)
  • [LoRaWAN] Improve distinction between unicast and multicast class (by @StevenCellist)
  • [LoRaWAN] Add runtime (sub)band selection (by @StevenCellist)
  • [LoRaWAN] Add getter for duration (by @StevenCellist)
  • [LoRaWAN] Split padding of Class A and C windows (by @StevenCellist)
  • [LoRaWAN] Fix bug where new channel could be falsely enabled (by @StevenCellist)
  • [LoRaWAN] Rework package handling, add TS007 (by @StevenCellist)
  • [LoRaWAN] Fix TS003 initializer (by @StevenCellist)
  • [PHY] Add support for PA offset (linear and LUT) (#1840)
  • [PHY] Switch data rate structs to integers
  • [PHY] Expose min/max power through physical layer
  • Fix warnings when only verbose assert is enabled
  • [PHY] Add static method to calcualte number of LoRa symbols
  • [SSDV] Add Python decoding command (by @StevenCellist)
  • [LoRaWAN] Fix uplink event info (by @StevenCellist)
  • Fix RADIOLIB_LR11X0_STANDBY_XOSC value (by @jp-bennett)
  • Add LoRa CAD exit modes for LR2021 (by @jp-bennett)
  • [LR11x0] Add method to configure standby oscillator type (by @GUVWAF)
  • [LR2021] Add method to configure standby oscillator type (by @GUVWAF)
  • [SX128x] Add method to configure standby oscillator type (by @GUVWAF)
  • [SX126x] Fix documentation for oscillator type usage of standby() (by @GUVWAF)
  • [LoRaWAN] Send NACK for channel index out of range (by @StevenCellist)
  • [LoRaWAN] Bump max number of dynamic channels to 24 (RP1.0.4+) (by @StevenCellist)
  • [LoRaWAN] Lift 16-channel logic shortcuts (by @StevenCellist)
  • Make standbyXOSC a private member (by @GUVWAF)
  • Add writeTxBuffer()/clearTxBuffer() and let stageMode(TX) skip the write (by @jp-bennett)
  • [SX126x] Fix examples not changing default LoRa bandwidth (#1888)
  • [SX128x] Explicitly configure LoRa BW in examples (#1888)
  • [LRxxxx] Fix overflow in startReceiveDutyCycle calculation (#1887)
  • [SX128x] Fix blocking receive timeout (#1892)
  • [SX127x] Avoid 64-bit ops
  • Further rework and bugfixes in SX1276x.cpp (by @moshe-braner)
  • [LRxxxx] Read getStatus from the right offset (by @jp-bennett)
  • [PHY] Add getMode() to read the radio's current operating mode (by @jp-bennett)
  • SX126x.cpp: Further FP optimizations (by @moshe-braner)
  • [HAL] Implement HAL status codes (#1037)
  • [SX127x] Conver FSK Rx bandwidth to DSB (#1891)
  • [RF69] Conver FSK Rx bandwidth to DSB (#1891)
  • [PHY] Drop packet action overloads (sent/received) (#1900)
  • [LR2021] Fixed swapped byte order in getLoRaRxStats (#1901)
  • [LR2021] Add getFrequencyError (#1901)
  • [LoRaWAN] Fix interrupts and timing, fix channel mask index (by @StevenCellist)
  • [SX127x] Use current frequency when switching modems (by @StevenCellist)
  • [LoRaWAN] Fix improper clearing of MAC commands (by @StevenCellist)
  • [SX127x] Drop cached packet length after clearing FSK FIFO (by @StevenCellist)
  • [LoRaWAN] Fix JoinAccept handling, getMaxPayloadLen() and TxParamSetupReq (#1903) (by @StevenCellist)
  • [LoRaWAN] Drop HeaderDamaged (#1906) (by @StevenCellist)
  • [SX127x] Fix CRC enable not being propagated in FSK mode
  • [SX127x] Drop LoRa "header damaged" check (#1906)
  • [SX127x] Implement FSK CRC checking and allow keeping payload despite failed CRC check
  • [PHY] Move ToA calculation to PHY
  • [LR2021] Implement raw IQ streaming
  • [LoRaWAN] Enable LDRO for AU915 DR0/1 (#1911) (by @StevenCellist)
  • [STM32WLx] Drop packet action overloads (sent/received) (#1900) (by @StevenCellist)
  • [LoRaWAN] Add HeaderErr interrupt to Rx windows (#1906) (by @StevenCellist)
  • [LoRaWAN] Improve Rx window width (by @StevenCellist)
  • [LoRaWAN] Discern payload length error in case of FOpts (#1910) (by @StevenCellist)
  • [SX126x] Do not use despreaded RSSI value (#1913)
  • [MOD] Use raw write to output hexdump result (#1915)
  • [LoRaWAN] Add 5ms slack to FSK downlink ToA (by @StevenCellist)
  • [LoRaWAN] Use a common buffer for all uplinks and downlinks (by @StevenCellist)
  • [Tock] Fixup incorrect library selection (by @alistair23)
  • [LoRaWAN] Check downlink primitives before continuing (#1904) (by @StevenCellist)
  • [CC1101] Fix timeout calculation (#1885)
  • [PHY] Add preamble detection length (by @StevenCellist)
  • [LoRaWAN] Remove virtual on public-only functions
  • [RF69] Allow > 256B of preamble
  • [LoRaWAN] Keep lastToA across the MAC-only uplink (#1919) (#1922) (by @MMBytes)
  • [LR2021] Add crystal temperature compensation (SetTempCompCfg, SetNtcParams) (by @h3lix1)
  • [LoRaWAN] Make time checks work across the millis() wrap (by @MMBytes)
  • [LR11x0] Allow firmware update of LR11x0 running unsupported firmware (by @obabin)
  • [CC1101] Drop support for power offset LUT (#1917)
  • [LR2021] Add support for LoRa bandwidths below 31 kHz (#1929)
  • [LRxxxx] Fix calibration error not asserted in debug mode
  • [MOD] Allow reading previously saved RF swtich table
  • [LR2021] Restore RF swtich table after modem switch
  • [PHY] Fix logic of output power offset calculation
  • [LR11x0] Remoce unimplemented frequency error method
  • [SX127x] Use RADIOLIB_LORA_DETECTED as return code for CAD
  • [LoRaWAN] Harden dwelltime math (#1910) (by @StevenCellist)
  • [PHY] Add LoRa sync timeout to CAD struct (by @StevenCellist)
  • [CC1101] Fix frequency units and default Rx bandwidth
  • [CC1101] Fix Rx bandwidth mapping and PQT calculation (by @StevenCellist)
  • [RF69] Fix Tx timeout calculation
  • [RF69] Fix fdev overflow
  • [PHY] Fix default values for preamble detection (#1933) (by @StevenCellist)
  • [SX127x] Fix blocking receive in FSK mode
  • [LoRaWAN] Fix possible overflow in MAC command processing
  • [RF69] Fix Rx BW range check,
  • [RF69] Fix DIO config and PA power reset in transmit
  • [LoRaWAN] Update example notes (by @StevenCellist)

What's Changed

New Contributors

Full Changelog: 7.8.1...8.0.0