Skip to content

Releases: jgromes/RadioLib

Release 7.0.0

16 Sep 20:04
Compare
Choose a tag to compare

Breaking change notice
This update introduces backwards-incompatible changes to the LoRaWAN stack - please see the updated examples. This release brings LoRaWAN support out of beta, so the API should remain stable going forward (unless absolutely necessary).

Change log and commit attribution

Click to expand

  • [LoRaWAN] Change FSK switch to modulation variable
  • [LoRaWAN] To change CR to 4/5 for all frequency plans (#1115) (by @IoTThinks)
  • [LoRaWAN] Fix dwelltime & JR-dr for AU915, add JR dwelltime check (by @StevenCellist)
  • [LoRaWAN] Added frequency plans AS923_2, AS923_3 and AS923_4 for Asian countries (#1116) (by @IoTThinks)
  • [LoRaWAN] Remove forbidden CN780 (by @StevenCellist)
  • [LR11x0] Fix LR-FHSS time on air calculation (#1117)
  • [CC1101] Fix getRSSI data source (#1121) (by @Shensd)
  • [HAL] Fix tone on ESP32 IDF > 5.0.0 (#1123)
  • Use lgpio as the RPi HAL
  • [LoRaWAN] Remove pin maps from example config file (#1106)
  • [LR11x0] Do not read out GNSS and WiFi versions on LR1121 (#1128)
  • [LR11x0] Fix output power configuration at S-band (#1128)
  • [SX126x] Added missing PHY getRSSI (#1132)
  • [LoRaWAN] Fix JoinRequest dwelltime calculation (by @StevenCellist)
  • Added delay to halting while loops
  • [LR11x0] use the same irq mask for both DIO9 and DIO11 (by @lyusupov)
  • NonArduino: Tock: A collection of fixes for LoRaWAN support (#1145) (by @alistair23)
  • Method SetBitrateTolerance added for CC1101, Updated error handling (#1152) (by @OlliLausS)
  • [SX127x] When clearing the FHSS interrupt, don't also clear all the others (by @SebKuzminsky)
  • [LoRaWAN] Fix #1154, finalize LW v1.0.4 (by @StevenCellist)
  • protocol: LoRaWAN: Allow configuring scanGuard (by @alistair23)
  • [SSTV] Added Robot36 and Robot72 modes (#1160)
  • [PHY] Make transmit data const (#1156)
  • [LR11x0] Fix SNR calculation (#1161)
  • Update SX1278.cpp to fix errataFix typo (by @kb9nate)
  • Update SX1278.cpp Turn on LnaBoost even in AutoAGC mode (by @kb9nate)
  • [LR11x0] Cleanup, mark GNSS methods as work-in-progress
  • [LR11x0] Fix printf types
  • [SX126x] Clarify DIO3 for AFSK-based examples
  • [LoRaWAN] Collection of fixes (by @StevenCellist)
  • [LoRaWAN] Fix downlink user-MAC commands piling up (by @StevenCellist)
  • Added verbose assert
  • [LR11x0] Added register to set LNA mode
  • [MOD] Added missing Doxygen parameter
  • [FEC] Move generically useful macros
  • SX127x: Set FIFO read pointer to the start of the current packet (#1184) (by @mycosd)
  • [MOD] Make hexdump format match xxd
  • [SX128x] Start reading from Rx buffer offset (#1185) (by @GUVWAF)
  • [PHY] Generalize IRQ checks (by @StevenCellist)
  • Update IDF manifest to new format
  • Added readme to ESP-IDF example
  • Reconcile implicit double / float promotion with math functions and passed function value types. Also suppress incorrect unused variable warnings when variables are used in logging macros. (#1199) (by @FrauBluher)
  • [PHY] Channel scan configuration (#1190)
  • [SX126x][SX128x][LR11x0] Don't report CRC mismatch if valid header received (#1203) (by @GUVWAF)
  • [LR1110] Fix default startReceive flags
  • [LR11x0] Fix IRQ masking
  • fix getRangingResult to properly account for signed numbers (#1206) (by @Jorropo)
  • [LR11x0] GNSS low level command fixes
  • [LR11x0] Remove WIP GNSS functionality (moved to branch)
  • [PHY] Pass scan config by reference
  • [PHY] Added LR-FHSS DataRate_t
  • [SX128x] Fix unspecified integer width in ranging calculation
  • [LR11x0] Added ping-pong example
  • [CI] Arduino platform versions & ESP32 3.0.x workaround (#1213)
  • [LoRaWAN] Major rework (#1204) (by @StevenCellist)
  • [LoRaWAN] Silence class-memaccess warning
  • [LoRaWAN] Fix narrow type comparison
  • [APRS] Fix string conversion in examples
  • [APRS] Fix callsign in non-LoRa mode and buffer size (#1215)
  • [APRS] Fix debug print
  • Added type casts for Arduino megaAVR
  • [LoRaWAN] Verification cleanup (by @StevenCellist)
  • [LoRaWAN] Exit beta (by @StevenCellist)
  • [LoRaWAN] Fix RekeyConf, change session buffer layout (by @StevenCellist)
  • [LoRaWAN] Remove shadowed variable (by @StevenCellist)
  • [LoRaWAN] Fix ADR backoff (by @StevenCellist)
  • [LoRaWAN] Fix EU868 data rate for WoR and ACK
  • [LoRaWAN] Fixed size_t comparison

What's Changed

  • [LoRaWAN] To change CR to 4/5 for all frequency plans by @IoTThinks in #1115
  • [LoRaWAN] Added frequency plans AS923_2, AS923_3 and AS923_4 for Asian countries by @IoTThinks in #1116
  • [CC1101] Fix getRSSI data source by @Shensd in #1121
  • [LR11x0] use the same irq mask for both DIO9 and DIO11 by @lyusupov in #1144
  • NonArduino: Tock: A collection of fixes for LoRaWAN support by @alistair23 in #1145
  • Method SetBitrateTolerance added for CC1101, Updated error handling by @OlliLausS in #1152
  • [SX127x] When clearing the FHSS interrupt, don't also clear all the others by @SebKuzminsky in #1155
  • protocol: LoRaWAN: Allow configuring scanGuard by @alistair23 in #1158
  • Update SX1278.cpp to fix errataFix typo by @kb9nate in #1166
  • Update SX1278.cpp Turn on LnaBoost even in AutoAGC mode by @kb9nate in #1167
  • SX127x: Set FIFO read pointer to the start of the current packet by @mycosd in #1184
  • [SX126x/SX128x] Start reading from Rx buffer offset by @GUVWAF in #1185
  • [PHY, modules, LoRaWAN] Generalize IRQ checks by @StevenCellist in #1188
  • Reconcile implicit double / float promotion in math functions. by @FrauBluher in #1199
  • Channel scan configuration by @jgromes in #1190
  • [SX126x][SX128x][LR11x0] Don't report CRC mismatch if valid header received by @GUVWAF in #1203
  • fix getRangingResult to properly account for signed numbers by @Jorropo in #1206
  • [CI] Arduino platform versions & ESP32 3.0.x workaround by @jgromes in #1213
  • [LoRaWAN] Major rework by @StevenCellist in #1204

New Contributors

Full Changelog: 6.6.0...7.0.0

Update 6.6.0

28 May 19:34
Compare
Choose a tag to compare

Breaking change notice

This update introduces backwards-incompatible changes to the LoRaWAN stack - please see the updated examples.

  • [CC1101] 3 New CC1101 Functions (#1038) (by @Crsarmv7l)
  • [SX126x] Use millis for timeouts (#1013)
  • Update ArduinoHal.h to make spi and friends protected (#1044) (by @jp-bennett)
  • [LoRaWAN] Added pin maps (#1047) (by @matthias-bs)
  • [LoRaWAN] Fix downlink crashes (#1049), remove redundant parameter (by @StevenCellist)
  • [SX126x] Use predefined image calibration bands (#1051)
  • [SX126x] Fix image calibration (#1051)
  • [SX126x] Added public method to set PA ramp time (#1054)
  • [MOD] SPI configuration interface rework (#1057)
  • [SX127x] Fixed getRSSI overload for PhysicalLayer (#1064)
  • Updated board definitions for the LoRaWAN Examples (#1052) (by @Velocet)
  • Fix interrupt emulation in Raspberry Pi example
  • [LR11x0] Added LR11x0 support (#679)
  • [CC1101] Fix RSSI readout (#1077)
  • Use RadioLibTime_t (aka unsigned long) when dealing with millis() and micros() (#1075) (by @Elizafox)
  • [LoRaWAN] Improve PHY behaviour, update beginABP, bugfixes (#1080) (by @StevenCellist)
  • examples/NonArduino/Tock: Support RISC-V and bump libtock-c (#1082) (by @alistair23)
  • Fixed issues found by cppcheck
  • [SSTV] Added image converter tool
  • [LoRaWAN] Improve readability to better match documentation (by @StevenCellist)
  • [LR11x0] Added support for WiFi scanning
  • [SX128x] Added interface for interrupt-driven CAD (#1085)
  • LR11x0: fix setDioAsRfSwitch argument count (by @bkleiner)
  • Fixes overload warning when building with ESP IDF (#1089) (by @illysky)
  • [SX126x] Add rounding when using custom image rejection (#1096)
  • [LR11x0] Implemented v2 GNSS commands
  • [LR11x0] Added firmware update support
  • [AX25] Fix possible string truncation
  • [STM32WL] Fix output ramp time configuration
  • fix payload of DevStatusAns mac-command (by @pnxs)
  • [LoRaWAN] Change session activation (#1093) (by @StevenCellist)
  • Fixed SX128X checkOutputPower (by @lewisxhe)
  • [SX128x] Fix check output power argument name
  • LW examples updated for new initialisation / join sequence (#1104) (by @HeadBoffin)
  • [CC1101] Make frequency range check bounds inclusive
  • [LR11x0] Make regulator mode and Rx gain config public (#1108)
  • [LR11x0] Implemented RF switch control

Update 6.5.0

27 Mar 20:27
Compare
Choose a tag to compare

Warning: This update contains breaking changes to the LoRaWAN implementation! Check LoRaWAN examples and the API documentation.

  • [PHY] Fixed godmode not exposing private member (#950)
  • include esp_attr.h where IRAM_ATTR is used (#952) (by @remenyo)
  • Fix stringop-truncation warning in AX25 callsign getter (#958) (by @remenyo)
  • [SX127x] Fixed software timeout duration (#962)
  • [LoRaWAN] Fix fcntUp wrap-around after 50 transmissions (#950) (by @barnslig)
  • [LoRaWAN] Improve examples, add getter for DevAddr (#974) (by @StevenCellist)
  • [LoRaWAN] Use ESP_PLATFORM macro to include esp_attr.h (#952)
  • [CI] Run apt-get update before install (#989)
  • [LoRaWAN] Improve persistence behaviour, add dwell time error, clear up debug output (#980) (by @StevenCellist and @HeadBoffin)
  • IDF Component Registry manifest (#990) (by @nicklasb)
  • Receive messages for multiple POCSAG RICs (#998) (by @jasiek)
  • [Pager] Minor fixes
  • Debugging rework
  • Added ESP IRAM attribute to examples (#1010)
  • [SX126x] Added option to select standby mode (#1008)
  • [SX126x] Fix rx/tx fallback mode (#1008)
  • [CC1101] Clarify direct methods are synchronous (#1016)
  • Static check (#1019)
  • [LoRaWAN] Change and upgrade persistence handling (#1017) (by @StevenCellist)
  • [CI] Enable LoRaWAN builds for previously disabled platforms
  • [LoRaWAN] Resolve warnings, fix bugs for fixed bands (#1021) (by @StevenCellist)
  • Merge pull request #1034: update LoRaWAN examples (by @StevenCellist and @HeadBoffin)
  • [CI] Fix for new LoraWAN examples (#1035)
  • [LoRaWAN] Added array of supported bands (#1032)
  • [CC1101] PQT = 0 in setPromiscuous (#1033)
  • [LoRaWAN] Added specific error code for no downlink received

Patch 6.4.2

28 Jan 16:02
Compare
Choose a tag to compare

Hotfix! This release fixes an issue that broke LoRaWAN on 6.4.1.

  • [SX126x] Fixed data rate checking (#948)

Patch 6.4.1

27 Jan 20:47
Compare
Choose a tag to compare
  • [LoRaWAN] Fixed duty cycle enable ignored
  • [LoRaWAN] Fix possible integer overflow
  • [LoRaWAN] Fix MAC command initialization
  • [LoRaWAN] Simplify variable length arrays
  • [SX126x] Fix txMode made private
  • [STM32WL] Fix Module pinter
  • [LoRaWAN] Properly size fopts buffer
  • [SX1233] Fix incorrect exclude macro guard (#929)
  • [LoRaWAN] Fix session restore throwing unnecessary error (by @StevenCellist)
  • add Pico HAL (by @cameron-goddard)
  • [LoRaWAN] Improve channel masks for fixed bands (by @StevenCellist)
  • [LoRaWAN] Fix fixed band CFList processing (by @StevenCellist)
  • [LoRaWAN] Fix rejoining during active session (by @StevenCellist)
  • [LoRaWAN] Fix dynamic-band non-ADR session persistance (by @StevenCellist)
  • [LoRaWAN] Fix setDatarate function (by @StevenCellist)
  • [LoRaWAN] Keep Dev/JoinNonce on OTAA wipe with same credentials (by @StevenCellist)
  • [LoRaWAN] Fix Tx power calculation (by @StevenCellist)
  • [LLCC68] Fixed set data rate for LLCC68 (#946)
  • [LoRaWAN] Added ADR data rate check (#946)

Update 6.4.0

14 Jan 19:29
Compare
Choose a tag to compare
  • [SX128x] Remove double '_RADIOLIB's (by @S5NC)
  • [LoRaWAN] Fix uninitialized variables (by @xNombre)
  • [LoRaWAN] Expose downlink framecounters (by @StevenCellist)
  • [SX123x] Added support for SX1233 (#898)
  • [RF69] Make setMode protected
  • [SX123x] Added missing include
  • [SX123x] Added note about high bit rate mode for SX1233
  • [CC1101] Fixed direct transmit (#911)
  • [LoRaWAN] Fix ABP initialization, support MAC in payload (by @StevenCellist)
  • [SX126x] Allow custom band calibration
  • [LoRaWAN] Revamp internal processing, key checking, new MAC commands, implement DutyCycle & DwellTime (by @StevenCellist)
  • [LoRaWAN] Fix ADR bug if not enabled (by @StevenCellist)
  • [LoRaWAN] Convert setDatarate() and setTxPower() to internal MAC; improve ADR (by @StevenCellist)
  • [RF69] Update RF69.cpp (by @peterus)
  • [SX127x] Update SX127x.cpp (by @peterus)
  • [*] Cleanup private/protected members
  • [LoRaWAN] Rework channel logic (by @StevenCellist)
  • [SX127x] Added setLowBatteryThreshold (#925)
  • [CC1101] Correctly wait for packet end on blocking receive. (by @plietar)

Update 6.3.0

29 Nov 19:14
Compare
Choose a tag to compare
  • [RFM9x] Use RFM9x only as alias for SX127x (#833)
  • [SX127x] Allow alternate chip versions
  • [RM9x] Drop RFM9x as separate class
  • [SX126x] Changed default whitening initial value for SX127x/LoRaWAN compatibility (#832)
  • [SX127x] disable syncword generation & detection, add method to set preamble polarity (#834)
  • [CC1101] Added list of supported bandwidths (#842) (by @baycom)
  • Incorrectly checking sx1280 command status (#843) (by @chemary)
  • [LoRaWAN] Fixed debug float print (#844)
  • [STM32WLx] Added missing interrupt actions (#844)
  • [HAL] Fixed persistent storage on Sparkfun Apollo (#848)
  • [SX126x] Decrease startup wait to 10 ms (#850)
  • [APRS] Fix array length calculation in static only mode
  • [SX126x] Make setPaConfig public (#852)
  • [SX126x] Fixed duplicate setPaConfig
  • [LoRaWAN] Implement full session persistence & more v1.1 specification (#835) (by @StevenCellist)
  • Update api adapt esp core 3.0.0-alpha2 (#860) (by @lewisxhe)
  • [HAL] Added check for defined ESP version macro (#860)
  • added functionality for LoRa Alliance TR-13 Enabling CSMA for LoRaWAN (#859) (by @jgamage91)
  • Fixed Persistent Storage Issue for RP2040 with Arduino Pico Framework (#868)
  • [RFM9x] Added missing alias for RFM95
  • [LoRaWAN] Rework bands, official Rx windows, support ADR, confirm frames, improve EEPROM handling, support clock drift (#867) (by @StevenCellist)
  • [LoRaWAN] Added event struct to pass extra info (#821)
  • Added warning for low-end platforms (Uno etc.)
  • [CC1101] Fixed crash in blocking receive (#839)
  • [LoRaWAN] Fixed unused variable warning on non-EEPROM boards
  • [HAL] Fixed unused variable warnings
  • [LoRaWAN] Move TX power logic to function (#884) (by @StevenCellist)
  • [LoRaWAN] Add datarate into event structure (#885) (by @StevenCellist)
  • Check for RADIOLIB_SPI_PARANOID = 1 rather than just defined (#883) (by @jp-bennett)
  • Reworked macro configuration system

Update 6.2.0

16 Sep 11:12
Compare
Choose a tag to compare
  • Added support for Arduino Uno R4
  • Added support for Tock (by @alistair23
  • [SX128x] Fixed getStatus (#779)
  • [LLCC68] Changed default crystal to XTAL (#784)
  • [PHY] Implemented more common methods
  • [LoRaWAN] Added basic LoRaWAN support (#58)
  • [FEC] Fixed memory leak (#646)
  • [EXT] Implemented direct transmit (#646)
  • Added getPacketLength to examples (#214)
  • [STM32WL] Fixed output power for modules without LP (#798)
  • [LoRaWAN] Added preliminary FSK support
  • [LoRaWAN] Added APB example
  • [APRS] Added support for APRS over LoRa
  • [APRS] Added APRS over LoRa example
  • [CC1101] Fixed garbage data (#733)
  • Fixed wrong register definition for RADIOLIB_RF69_SEQUENCER_OFF and RADIOLIB_RF69_SEQUENCER_ON (by @ramaza)
  • [SX127x] Add delay before IRQ clearing (#808)
  • [PHY] Added virtual channel scan method
  • Remove unnecessary condition (by @nicklasb)
  • [MOD] Moved CS pin toggling inside SPI transaction block
  • [MOD] Moved debug info to runtime
  • [MOD] Skip SPI status parsing for single-byte commands
  • [LoRaWAN] Added LoRaWAN-specific status codes
  • [SX126x] Explicitly set non-inverted IQ on startup
  • [SX127x] Explicitly set non-inverted IQ on startup
  • [PHY] Added channel scan methods to common interface
  • [LoRaWAN] Added support for 1.1 and downlink (#58)
  • [APRS] Removed redundant condition (#810) (by @nicklasb)
  • [LoRaWAN] Fixed output power configuration (#814)
  • [LoRaWAN] Implemented MAC command support
  • Fix "narrowing conversion" error on ESP-IDF (by @nicklasb)
  • [LoRaWAN] Represent keys as byte arrays (#58) (#811)
  • [CI] Added CI action for ESP-IDF to catch -Werrors
  • [LoRaWAN] Fixed initialization warnings
  • Fixed ESP32 platform detection
  • [MOD] Make regdump and hexdump only available in debug
  • [SX126x] Skip printing symbol length
  • [SX127x] Skip printing symbol length
  • [PHY] Added coding rate to data rate struct
  • [LoRaWAN] Added support for US bands and reworked channel selection process
  • [LoRaWAN] Implemented most MAC commands
  • [HAL] Disable EEPROM on Arduino Due
  • Disable EEPROM on Nano 33 BLE and RP2040
  • Disable EEPROM on nRF52 and Portenta
  • Disable EEPROM on SAMD
  • Moved FAQ to Wiki
  • Added debug info to compilation process

Update 6.1.0

26 Jun 21:42
Compare
Choose a tag to compare
  • [Print] Added common print class
  • [Print] Added standalone ITA2
  • [Bell] Added Bell-compatible modem
  • Added CMakeLists
  • improve build workflow for better flexibility (by @Mesteery)
  • [SX128x] Wakeup device on standby() call
  • [SX126x] Wakeup device on standby() call (#740)
  • [SX128x] Added force wakeup to standby
  • [SX126x] Added force wakeup to standby (#740)
  • Update cmake to install
  • [CI] Added autotest job
  • [SX1272] Correct LoRa mode CRC register values (by @Olocool17)
  • [CRC] Added common CRC
  • [MOD] Added common reflect method
  • Removed dependency on algorithm (#748)
  • [MOD] Added option to use SX126x without GPIO
  • Added ESP-IDF example (#748)
  • [PHY] Fixed long prints
  • [FEC] Added FEC class
  • [PHY] Added default start receive
  • [Crypto] Added AES-128
  • [SX128x] Fixed default parameters
  • [SX127x] Fixed default parameters
  • [SX126x] Fixed default parameters
  • Bug in waitForMicroseconds prevTimingLen in V6.0.0 (by @KevWal)
  • [SX127x] Fixed references to 256 byte packets
  • Pager: allow manual override of function bits (by @h3ndrik)
  • [PHY] Added interface showcase example (#773)
  • [SX126x] Fixed blocking receive (#777)
  • Renamed basic examples to _Blocking
  • [SX127x] Swap Tx IQ inversion (#778)
  • [MOD] Rework for buffered SPI (#776)

Release 6.0.0

24 Apr 19:38
Compare
Choose a tag to compare

Breaking change

This release introduces the following backwards-incompatible changes to the public API:

  • All methods to attach interrupts (e.g., setDioAction(), setGdoAction() etc.) no longer have a default level change direction.
  • Signature of all methods/functions that use pin numbers (e.g. the Module constructor) changed from platform-dependent "pin type" changed to a common type (uint32_t)
  • Reworked hardware abstraction

Other changes:

  • [MOD] Fixed some signed comparison warnings
  • [SX126x] Added missing XTAL check
  • Added further explanation of the -707 error code (#691)
  • [SX126x] Fixed calibration order (#689)
  • [SX126x] Added spectral scan
  • [SX126x] Added patch binary license
  • [SX127x] Added missing standby for PhysicalLayer (#695)
  • [nRF24] Added missing standby overload
  • [RF69] Added missing standby overload
  • [Si443x] Added missing standby overload
  • [CC1101] Added missing standby overload
  • [Pager] Added missing exclude direct receive guards (#697)
  • add functions to PhysicalLayer interface (by @gasagna)
  • [SX126x] Added frequency error reading
  • [SX126x] Fixed chip id (#707)
  • [SX126x] Fix failure to enable low power sleep on CubeCell AB01 (by @gasagna)
  • [SX126x] Fixed frequency error calculation (#706)
  • [SX127x] Explicitly enabled CRC (#706)
  • [SX126x] Explicitly enabled CRC (#706)
  • [SX1278] New getInstRSSI to get current RSSI
  • [PHY] Fixed startReceive compatibility (#700)
  • [SX126x] Added spectral scan in frequency
  • [SX127x] & [SX126x] read current RSSI for getRSSI
  • [SX126x] Unified getRSSI interface
  • [SX127x] Unified getRSSI interface
  • [SX126x] Fix intermittent failure to initialise cubecell (#706) (by @gasagna)
  • [MOD] Fixed swapped NSS/BUSY order (#716)
  • [SX126x] Fixed packet length in LoRa implicit mode
  • [SX128x] Fixed packet length in implicit mode (#716)
  • [SX126x] Improved RNG
  • [SX127x] Fixed comments
  • [SX126x] Added IQ inversion
  • [SX128x] Added IQ inversion (#724)
  • [SX127x] Implemented fractional bit rate (#505)
  • [STM32WL] Fixed build for Platformio (#718)
  • [SX127x] Added missing explicit CRC configuration
  • [SX127x] Removed standby before data read
  • [SX126x] Remove standby before data read (#703)
  • [SX126x] Fixed IQ inversion not caching (#731)
  • [SX128x] Fixed IQ inversion
  • [HAL] Improve hardware abstraction layer (#730) (by @Mesteery)
  • [Pager] Fixed deprecation warning for ESP
  • [*] General reformatting
  • [MOD] Added debug message when BUSY pin times out
  • [MOD] Decreased default SPI timeout to 1000 ms