diff --git a/_build_opt_8h_source.html b/_build_opt_8h_source.html
index d39e7753..9d2c26ef 100644
--- a/_build_opt_8h_source.html
+++ b/_build_opt_8h_source.html
@@ -205,389 +205,390 @@ $(document).ready(function(){initNavTree('_build_opt_8h_source.html',''); initRe
118 #define RADIOLIB_PLATFORM "Arduino Due"
119 #define RADIOLIB_TONE_UNSUPPORTED
-
- 121 #elif (defined(NRF52832_XXAA) || defined(NRF52840_XXAA)) && !defined(ARDUINO_ARDUINO_NANO33BLE)
-
- 123 #define RADIOLIB_PLATFORM "Adafruit nRF52"
-
- 125 #elif defined(ARDUINO_ARC32_TOOLS)
-
- 127 #define RADIOLIB_PLATFORM "Intel Curie"
-
- 129 #elif defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_AVR_NANO_EVERY) || defined(PORTDUINO)
-
- 131 #define RADIOLIB_PLATFORM "Arduino megaAVR"
-
- 133 #elif defined(ARDUINO_ARCH_APOLLO3)
-
- 135 #define RADIOLIB_PLATFORM "Sparkfun Apollo3"
- 136 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (Arduino_PinMode)
- 137 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
- 138 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
-
- 140 #elif defined(ARDUINO_ARDUINO_NANO33BLE)
-
- 142 #define RADIOLIB_PLATFORM "Arduino Nano 33 BLE"
- 143 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PinMode)
- 144 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
- 145 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
-
-
- 148 #define RADIOLIB_TONE_UNSUPPORTED
- 149 #define RADIOLIB_MBED_TONE_OVERRIDE
-
- 151 #elif defined(ARDUINO_PORTENTA_H7_M7) || defined(ARDUINO_PORTENTA_H7_M4)
-
- 153 #define RADIOLIB_PLATFORM "Portenta H7"
- 154 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PinMode)
- 155 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
- 156 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
-
-
- 159 #define RADIOLIB_TONE_UNSUPPORTED
- 160 #define RADIOLIB_MBED_TONE_OVERRIDE
-
- 162 #elif defined(__STM32F4__) || defined(__STM32F1__)
-
- 164 #define RADIOLIB_PLATFORM "STM32duino (unofficial)"
- 165 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (WiringPinMode)
- 166 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (ExtIntTriggerMode)
-
- 168 #elif defined(ARDUINO_ARCH_MEGAAVR)
-
- 170 #define RADIOLIB_PLATFORM "MegaCoreX"
-
- 172 #elif defined(ARDUINO_ARCH_MBED_RP2040)
-
- 174 #define RADIOLIB_PLATFORM "Raspberry Pi Pico"
- 175 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PinMode)
- 176 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
- 177 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
-
-
- 180 #define RADIOLIB_TONE_UNSUPPORTED
- 181 #define RADIOLIB_MBED_TONE_OVERRIDE
-
- 183 #elif defined(ARDUINO_ARCH_RP2040)
-
- 185 #define RADIOLIB_PLATFORM "Raspberry Pi Pico (unofficial)"
- 186 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PinMode)
- 187 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
- 188 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
-
- 190 #elif defined(__ASR6501__) || defined(ARDUINO_ARCH_ASR650X) || defined(DARDUINO_ARCH_ASR6601)
-
- 192 #define RADIOLIB_PLATFORM "CubeCell"
- 193 #define RADIOLIB_DEFAULT_SPI_SETTINGS SPISettings(1000000, MSBFIRST, SPI_MODE0)
- 194 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PINMODE)
- 195 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (IrqModes)
-
-
- 198 #include "board-config.h"
- 199 #define RADIOLIB_BUILTIN_MODULE RADIO_NSS, RADIO_DIO_1, RADIO_RESET, RADIO_BUSY
-
-
-
-
-
-
-
-
- 208 #define RADIOLIB_TYPE_ALIAS(type, alias) typedef class type alias;
-
-
- 211 #define RADIOLIB_TONE_UNSUPPORTED
-
-
- 214 #define RADIOLIB_YIELD_UNSUPPORTED
-
-
-
-
-
-
- 221 #define RADIOLIB_PLATFORM "RasPiArduino"
-
-
- 224 #define RADIOLIB_TONE_UNSUPPORTED
-
-
- 227 #define RADIOLIB_YIELD_UNSUPPORTED
-
-
- 230 #define PGM_P const char *
-
-
-
-
- 235 inline unsigned long millis() {
return((
unsigned long)(STCV / 1000)); };
-
-
-
-
- 240 inline unsigned long micros() {
return((
unsigned long)(STCV)); };
-
-
- 243 #elif defined(TEENSYDUINO)
-
- 245 #define RADIOLIB_PLATFORM "Teensy"
-
- 247 #elif defined(ARDUINO_ARCH_RENESAS)
-
- 249 #define RADIOLIB_PLATFORM "Arduino Renesas (UNO R4)"
- 250 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PinMode)
- 251 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
- 252 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
-
-
-
- 256 #define RADIOLIB_PLATFORM "Unknown Arduino"
- 257 #define RADIOLIB_UNKNOWN_PLATFORM
-
-
-
-
-
- 263 #if !defined(RADIOLIB_NC)
- 264 #define RADIOLIB_NC (0xFFFFFFFF)
-
-
- 267 #if !defined(RADIOLIB_DEFAULT_SPI)
- 268 #define RADIOLIB_DEFAULT_SPI SPI
-
-
- 271 #if !defined(RADIOLIB_DEFAULT_SPI_SETTINGS)
- 272 #define RADIOLIB_DEFAULT_SPI_SETTINGS SPISettings(2000000, MSBFIRST, SPI_MODE0)
-
-
- 275 #if !defined(RADIOLIB_NONVOLATILE)
- 276 #define RADIOLIB_NONVOLATILE PROGMEM
-
-
- 279 #if !defined(RADIOLIB_NONVOLATILE_PTR)
- 280 #define RADIOLIB_NONVOLATILE_PTR PGM_P
-
-
- 283 #if !defined(RADIOLIB_NONVOLATILE_READ_BYTE)
- 284 #define RADIOLIB_NONVOLATILE_READ_BYTE(addr) pgm_read_byte(addr)
-
-
- 287 #if !defined(RADIOLIB_NONVOLATILE_READ_DWORD)
- 288 #define RADIOLIB_NONVOLATILE_READ_DWORD(addr) pgm_read_dword(addr)
-
-
- 291 #if !defined(RADIOLIB_TYPE_ALIAS)
- 292 #define RADIOLIB_TYPE_ALIAS(type, alias) using alias = type;
-
-
- 295 #if !defined(RADIOLIB_ARDUINOHAL_PIN_MODE_CAST)
- 296 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST
-
-
- 299 #if !defined(RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST)
- 300 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST
-
-
- 303 #if !defined(RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST)
- 304 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST
-
-
-
-
- 309 #define RADIOLIB_PLATFORM "Generic"
-
- 311 #define RADIOLIB_NC (0xFF)
- 312 #define RADIOLIB_NONVOLATILE
- 313 #define RADIOLIB_NONVOLATILE_READ_BYTE(addr) (*((uint8_t *)(void *)(addr)))
- 314 #define RADIOLIB_NONVOLATILE_READ_DWORD(addr) (*((uint32_t *)(void *)(addr)))
- 315 #define RADIOLIB_TYPE_ALIAS(type, alias) using alias = type;
-
- 317 #if !defined(RADIOLIB_DEBUG_PORT)
- 318 #define RADIOLIB_DEBUG_PORT stdout
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 337 #if !defined(RADIOLIB_DEBUG)
-
-
- 340 #if !defined(RADIOLIB_VERBOSE)
-
-
-
-
-
- 346 #if defined(RADIOLIB_BUILD_ARDUINO) && !defined(RADIOLIB_DEBUG_PORT)
- 347 #define RADIOLIB_DEBUG_PORT Serial
-
-
-
-
-
-
-
-
- 356 #if !defined(RADIOLIB_SPI_PARANOID)
- 357 #define RADIOLIB_SPI_PARANOID
-
-
-
-
-
-
-
-
-
- 367 #if !defined(RADIOLIB_CHECK_PARAMS)
- 368 #define RADIOLIB_CHECK_PARAMS
-
-
-
-
-
-
-
-
- 377 #if !defined(RADIOLIB_FIX_ERRATA_SX127X)
-
-
-
-
-
-
-
-
- 386 #if !defined(RADIOLIB_GODMODE)
-
-
-
-
-
-
-
-
- 395 #if !defined(RADIOLIB_LOW_LEVEL)
-
-
-
-
-
-
- 402 #if !defined(RADIOLIB_RADIOSHIELD)
-
-
-
-
-
-
-
- 410 #if !defined(RADIOLIB_INTERRUPT_TIMING)
-
-
-
-
-
-
-
- 418 #if !defined(RADIOLIB_STATIC_ONLY)
-
-
-
-
- 423 #if !defined(RADIOLIB_STATIC_ARRAY_SIZE)
- 424 #define RADIOLIB_STATIC_ARRAY_SIZE (256)
-
-
-
-
-
-
-
-
- 433 #if !defined(RADIOLIB_HAL_PERSISTENT_STORAGE_BASE)
- 434 #define RADIOLIB_HAL_PERSISTENT_STORAGE_BASE (0)
-
-
-
- 438 #if !defined(RADIOLIB_HAL_PERSISTENT_STORAGE_SIZE)
- 439 #define RADIOLIB_HAL_PERSISTENT_STORAGE_SIZE (0x60)
-
-
-
-
- 444 #if (!defined(ARDUINO_ARCH_STM32) || !defined(SUBGHZSPI_BASE)) && !defined(DOXYGEN)
- 445 #define RADIOLIB_EXCLUDE_STM32WLX
-
-
- 448 #if defined(RADIOLIB_DEBUG)
- 449 #if defined(RADIOLIB_BUILD_ARDUINO)
- 450 #define RADIOLIB_DEBUG_PRINT(...) Module::serialPrintf(__VA_ARGS__)
- 451 #define RADIOLIB_DEBUG_PRINTLN(M, ...) Module::serialPrintf(M "\n", ##__VA_ARGS__)
-
- 453 #if !defined(RADIOLIB_DEBUG_PRINT)
- 454 #define RADIOLIB_DEBUG_PRINT(...) fprintf(RADIOLIB_DEBUG_PORT, __VA_ARGS__)
-
- 456 #if !defined(RADIOLIB_DEBUG_PRINTLN)
- 457 #define RADIOLIB_DEBUG_PRINTLN(M, ...) fprintf(RADIOLIB_DEBUG_PORT, M "\n", ##__VA_ARGS__)
-
-
- 460 #define RADIOLIB_DEBUG_HEXDUMP(...) Module::hexdump(__VA_ARGS__)
-
- 462 #define RADIOLIB_DEBUG_PRINT(...) {}
- 463 #define RADIOLIB_DEBUG_PRINTLN(...) {}
- 464 #define RADIOLIB_DEBUG_HEXDUMP(...) {}
-
-
- 467 #if defined(RADIOLIB_VERBOSE)
- 468 #define RADIOLIB_VERBOSE_PRINT(...) RADIOLIB_DEBUG_PRINT(__VA_ARGS__)
- 469 #define RADIOLIB_VERBOSE_PRINTLN(...) RADIOLIB_DEBUG_PRINTLN(__VA_ARGS__)
-
- 471 #define RADIOLIB_VERBOSE_PRINT(...) {}
- 472 #define RADIOLIB_VERBOSE_PRINTLN(...) {}
-
-
- 478 #define RADIOLIB_ASSERT(STATEVAR) { if((STATEVAR) != RADIOLIB_ERR_NONE) { return(STATEVAR); } }
-
- 483 #if defined(RADIOLIB_CHECK_PARAMS)
- 484 #define RADIOLIB_CHECK_RANGE(VAR, MIN, MAX, ERR) { if(!(((VAR) >= (MIN)) && ((VAR) <= (MAX)))) { return(ERR); } }
-
- 486 #define RADIOLIB_CHECK_RANGE(VAR, MIN, MAX, ERR) {}
-
-
- 489 #if defined(RADIOLIB_FIX_ERRATA_SX127X)
- 490 #define RADIOLIB_ERRATA_SX127X(...) { errataFix(__VA_ARGS__); }
-
- 492 #define RADIOLIB_ERRATA_SX127X(...) {}
-
-
-
- 496 #define RADIOLIB_MIN(a,b) ((a)<(b)?(a):(b))
- 497 #define RADIOLIB_MAX(a,b) ((a)>(b)?(a):(b))
- 498 #define RADIOLIB_ABS(x) ((x)>0?(x):-(x))
-
-
- 501 #define RADIOLIB_VERSION_MAJOR (0x06)
- 502 #define RADIOLIB_VERSION_MINOR (0x01)
- 503 #define RADIOLIB_VERSION_PATCH (0x00)
- 504 #define RADIOLIB_VERSION_EXTRA (0x00)
-
- 506 #define RADIOLIB_VERSION ((RADIOLIB_VERSION_MAJOR << 24) | (RADIOLIB_VERSION_MINOR << 16) | (RADIOLIB_VERSION_PATCH << 8) | (RADIOLIB_VERSION_EXTRA))
-
-
+ 120 #define RADIOLIB_EEPROM_UNSUPPORTED
+
+ 122 #elif (defined(NRF52832_XXAA) || defined(NRF52840_XXAA)) && !defined(ARDUINO_ARDUINO_NANO33BLE)
+
+ 124 #define RADIOLIB_PLATFORM "Adafruit nRF52"
+
+ 126 #elif defined(ARDUINO_ARC32_TOOLS)
+
+ 128 #define RADIOLIB_PLATFORM "Intel Curie"
+
+ 130 #elif defined(ARDUINO_AVR_UNO_WIFI_REV2) || defined(ARDUINO_AVR_NANO_EVERY) || defined(PORTDUINO)
+
+ 132 #define RADIOLIB_PLATFORM "Arduino megaAVR"
+
+ 134 #elif defined(ARDUINO_ARCH_APOLLO3)
+
+ 136 #define RADIOLIB_PLATFORM "Sparkfun Apollo3"
+ 137 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (Arduino_PinMode)
+ 138 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
+ 139 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
+
+ 141 #elif defined(ARDUINO_ARDUINO_NANO33BLE)
+
+ 143 #define RADIOLIB_PLATFORM "Arduino Nano 33 BLE"
+ 144 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PinMode)
+ 145 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
+ 146 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
+
+
+ 149 #define RADIOLIB_TONE_UNSUPPORTED
+ 150 #define RADIOLIB_MBED_TONE_OVERRIDE
+
+ 152 #elif defined(ARDUINO_PORTENTA_H7_M7) || defined(ARDUINO_PORTENTA_H7_M4)
+
+ 154 #define RADIOLIB_PLATFORM "Portenta H7"
+ 155 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PinMode)
+ 156 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
+ 157 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
+
+
+ 160 #define RADIOLIB_TONE_UNSUPPORTED
+ 161 #define RADIOLIB_MBED_TONE_OVERRIDE
+
+ 163 #elif defined(__STM32F4__) || defined(__STM32F1__)
+
+ 165 #define RADIOLIB_PLATFORM "STM32duino (unofficial)"
+ 166 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (WiringPinMode)
+ 167 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (ExtIntTriggerMode)
+
+ 169 #elif defined(ARDUINO_ARCH_MEGAAVR)
+
+ 171 #define RADIOLIB_PLATFORM "MegaCoreX"
+
+ 173 #elif defined(ARDUINO_ARCH_MBED_RP2040)
+
+ 175 #define RADIOLIB_PLATFORM "Raspberry Pi Pico"
+ 176 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PinMode)
+ 177 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
+ 178 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
+
+
+ 181 #define RADIOLIB_TONE_UNSUPPORTED
+ 182 #define RADIOLIB_MBED_TONE_OVERRIDE
+
+ 184 #elif defined(ARDUINO_ARCH_RP2040)
+
+ 186 #define RADIOLIB_PLATFORM "Raspberry Pi Pico (unofficial)"
+ 187 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PinMode)
+ 188 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
+ 189 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
+
+ 191 #elif defined(__ASR6501__) || defined(ARDUINO_ARCH_ASR650X) || defined(DARDUINO_ARCH_ASR6601)
+
+ 193 #define RADIOLIB_PLATFORM "CubeCell"
+ 194 #define RADIOLIB_DEFAULT_SPI_SETTINGS SPISettings(1000000, MSBFIRST, SPI_MODE0)
+ 195 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PINMODE)
+ 196 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (IrqModes)
+
+
+ 199 #include "board-config.h"
+ 200 #define RADIOLIB_BUILTIN_MODULE RADIO_NSS, RADIO_DIO_1, RADIO_RESET, RADIO_BUSY
+
+
+
+
+
+
+
+
+ 209 #define RADIOLIB_TYPE_ALIAS(type, alias) typedef class type alias;
+
+
+ 212 #define RADIOLIB_TONE_UNSUPPORTED
+
+
+ 215 #define RADIOLIB_YIELD_UNSUPPORTED
+
+
+
+
+
+
+ 222 #define RADIOLIB_PLATFORM "RasPiArduino"
+
+
+ 225 #define RADIOLIB_TONE_UNSUPPORTED
+
+
+ 228 #define RADIOLIB_YIELD_UNSUPPORTED
+
+
+ 231 #define PGM_P const char *
+
+
+
+
+ 236 inline unsigned long millis() {
return((
unsigned long)(STCV / 1000)); };
+
+
+
+
+ 241 inline unsigned long micros() {
return((
unsigned long)(STCV)); };
+
+
+ 244 #elif defined(TEENSYDUINO)
+
+ 246 #define RADIOLIB_PLATFORM "Teensy"
+
+ 248 #elif defined(ARDUINO_ARCH_RENESAS)
+
+ 250 #define RADIOLIB_PLATFORM "Arduino Renesas (UNO R4)"
+ 251 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST (PinMode)
+ 252 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST (PinStatus)
+ 253 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST (PinStatus)
+
+
+
+ 257 #define RADIOLIB_PLATFORM "Unknown Arduino"
+ 258 #define RADIOLIB_UNKNOWN_PLATFORM
+
+
+
+
+
+ 264 #if !defined(RADIOLIB_NC)
+ 265 #define RADIOLIB_NC (0xFFFFFFFF)
+
+
+ 268 #if !defined(RADIOLIB_DEFAULT_SPI)
+ 269 #define RADIOLIB_DEFAULT_SPI SPI
+
+
+ 272 #if !defined(RADIOLIB_DEFAULT_SPI_SETTINGS)
+ 273 #define RADIOLIB_DEFAULT_SPI_SETTINGS SPISettings(2000000, MSBFIRST, SPI_MODE0)
+
+
+ 276 #if !defined(RADIOLIB_NONVOLATILE)
+ 277 #define RADIOLIB_NONVOLATILE PROGMEM
+
+
+ 280 #if !defined(RADIOLIB_NONVOLATILE_PTR)
+ 281 #define RADIOLIB_NONVOLATILE_PTR PGM_P
+
+
+ 284 #if !defined(RADIOLIB_NONVOLATILE_READ_BYTE)
+ 285 #define RADIOLIB_NONVOLATILE_READ_BYTE(addr) pgm_read_byte(addr)
+
+
+ 288 #if !defined(RADIOLIB_NONVOLATILE_READ_DWORD)
+ 289 #define RADIOLIB_NONVOLATILE_READ_DWORD(addr) pgm_read_dword(addr)
+
+
+ 292 #if !defined(RADIOLIB_TYPE_ALIAS)
+ 293 #define RADIOLIB_TYPE_ALIAS(type, alias) using alias = type;
+
+
+ 296 #if !defined(RADIOLIB_ARDUINOHAL_PIN_MODE_CAST)
+ 297 #define RADIOLIB_ARDUINOHAL_PIN_MODE_CAST
+
+
+ 300 #if !defined(RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST)
+ 301 #define RADIOLIB_ARDUINOHAL_PIN_STATUS_CAST
+
+
+ 304 #if !defined(RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST)
+ 305 #define RADIOLIB_ARDUINOHAL_INTERRUPT_MODE_CAST
+
+
+
+
+ 310 #define RADIOLIB_PLATFORM "Generic"
+
+ 312 #define RADIOLIB_NC (0xFF)
+ 313 #define RADIOLIB_NONVOLATILE
+ 314 #define RADIOLIB_NONVOLATILE_READ_BYTE(addr) (*((uint8_t *)(void *)(addr)))
+ 315 #define RADIOLIB_NONVOLATILE_READ_DWORD(addr) (*((uint32_t *)(void *)(addr)))
+ 316 #define RADIOLIB_TYPE_ALIAS(type, alias) using alias = type;
+
+ 318 #if !defined(RADIOLIB_DEBUG_PORT)
+ 319 #define RADIOLIB_DEBUG_PORT stdout
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 338 #if !defined(RADIOLIB_DEBUG)
+
+
+ 341 #if !defined(RADIOLIB_VERBOSE)
+
+
+
+
+
+ 347 #if defined(RADIOLIB_BUILD_ARDUINO) && !defined(RADIOLIB_DEBUG_PORT)
+ 348 #define RADIOLIB_DEBUG_PORT Serial
+
+
+
+
+
+
+
+
+ 357 #if !defined(RADIOLIB_SPI_PARANOID)
+ 358 #define RADIOLIB_SPI_PARANOID
+
+
+
+
+
+
+
+
+
+ 368 #if !defined(RADIOLIB_CHECK_PARAMS)
+ 369 #define RADIOLIB_CHECK_PARAMS
+
+
+
+
+
+
+
+
+ 378 #if !defined(RADIOLIB_FIX_ERRATA_SX127X)
+
+
+
+
+
+
+
+
+ 387 #if !defined(RADIOLIB_GODMODE)
+
+
+
+
+
+
+
+
+ 396 #if !defined(RADIOLIB_LOW_LEVEL)
+
+
+
+
+
+
+ 403 #if !defined(RADIOLIB_RADIOSHIELD)
+
+
+
+
+
+
+
+ 411 #if !defined(RADIOLIB_INTERRUPT_TIMING)
+
+
+
+
+
+
+
+ 419 #if !defined(RADIOLIB_STATIC_ONLY)
+
+
+
+
+ 424 #if !defined(RADIOLIB_STATIC_ARRAY_SIZE)
+ 425 #define RADIOLIB_STATIC_ARRAY_SIZE (256)
+
+
+
+
+
+
+
+
+ 434 #if !defined(RADIOLIB_HAL_PERSISTENT_STORAGE_BASE)
+ 435 #define RADIOLIB_HAL_PERSISTENT_STORAGE_BASE (0)
+
+
+
+ 439 #if !defined(RADIOLIB_HAL_PERSISTENT_STORAGE_SIZE)
+ 440 #define RADIOLIB_HAL_PERSISTENT_STORAGE_SIZE (0x60)
+
+
+
+
+ 445 #if (!defined(ARDUINO_ARCH_STM32) || !defined(SUBGHZSPI_BASE)) && !defined(DOXYGEN)
+ 446 #define RADIOLIB_EXCLUDE_STM32WLX
+
+
+ 449 #if defined(RADIOLIB_DEBUG)
+ 450 #if defined(RADIOLIB_BUILD_ARDUINO)
+ 451 #define RADIOLIB_DEBUG_PRINT(...) Module::serialPrintf(__VA_ARGS__)
+ 452 #define RADIOLIB_DEBUG_PRINTLN(M, ...) Module::serialPrintf(M "\n", ##__VA_ARGS__)
+
+ 454 #if !defined(RADIOLIB_DEBUG_PRINT)
+ 455 #define RADIOLIB_DEBUG_PRINT(...) fprintf(RADIOLIB_DEBUG_PORT, __VA_ARGS__)
+
+ 457 #if !defined(RADIOLIB_DEBUG_PRINTLN)
+ 458 #define RADIOLIB_DEBUG_PRINTLN(M, ...) fprintf(RADIOLIB_DEBUG_PORT, M "\n", ##__VA_ARGS__)
+
+
+ 461 #define RADIOLIB_DEBUG_HEXDUMP(...) Module::hexdump(__VA_ARGS__)
+
+ 463 #define RADIOLIB_DEBUG_PRINT(...) {}
+ 464 #define RADIOLIB_DEBUG_PRINTLN(...) {}
+ 465 #define RADIOLIB_DEBUG_HEXDUMP(...) {}
+
+
+ 468 #if defined(RADIOLIB_VERBOSE)
+ 469 #define RADIOLIB_VERBOSE_PRINT(...) RADIOLIB_DEBUG_PRINT(__VA_ARGS__)
+ 470 #define RADIOLIB_VERBOSE_PRINTLN(...) RADIOLIB_DEBUG_PRINTLN(__VA_ARGS__)
+
+ 472 #define RADIOLIB_VERBOSE_PRINT(...) {}
+ 473 #define RADIOLIB_VERBOSE_PRINTLN(...) {}
+
+
+ 479 #define RADIOLIB_ASSERT(STATEVAR) { if((STATEVAR) != RADIOLIB_ERR_NONE) { return(STATEVAR); } }
+
+ 484 #if defined(RADIOLIB_CHECK_PARAMS)
+ 485 #define RADIOLIB_CHECK_RANGE(VAR, MIN, MAX, ERR) { if(!(((VAR) >= (MIN)) && ((VAR) <= (MAX)))) { return(ERR); } }
+
+ 487 #define RADIOLIB_CHECK_RANGE(VAR, MIN, MAX, ERR) {}
+
+
+ 490 #if defined(RADIOLIB_FIX_ERRATA_SX127X)
+ 491 #define RADIOLIB_ERRATA_SX127X(...) { errataFix(__VA_ARGS__); }
+
+ 493 #define RADIOLIB_ERRATA_SX127X(...) {}
+
+
+
+ 497 #define RADIOLIB_MIN(a,b) ((a)<(b)?(a):(b))
+ 498 #define RADIOLIB_MAX(a,b) ((a)>(b)?(a):(b))
+ 499 #define RADIOLIB_ABS(x) ((x)>0?(x):-(x))
+
+
+ 502 #define RADIOLIB_VERSION_MAJOR (0x06)
+ 503 #define RADIOLIB_VERSION_MINOR (0x01)
+ 504 #define RADIOLIB_VERSION_PATCH (0x00)
+ 505 #define RADIOLIB_VERSION_EXTRA (0x00)
+
+ 507 #define RADIOLIB_VERSION ((RADIOLIB_VERSION_MAJOR << 24) | (RADIOLIB_VERSION_MINOR << 16) | (RADIOLIB_VERSION_PATCH << 8) | (RADIOLIB_VERSION_EXTRA))
+
+
diff --git a/_lo_ra_w_a_n_8h_source.html b/_lo_ra_w_a_n_8h_source.html
index b4e595c4..31108ba1 100644
--- a/_lo_ra_w_a_n_8h_source.html
+++ b/_lo_ra_w_a_n_8h_source.html
@@ -468,17 +468,17 @@ $(document).ready(function(){initNavTree('_lo_ra_w_a_n_8h_source.html',''); init
LoRaWAN-compatible node (class A device).
Definition: LoRaWAN.h:278
-int16_t beginOTAA(uint64_t joinEUI, uint64_t devEUI, uint8_t *nwkKey, uint8_t *appKey, bool force=false)
Join network by performing over-the-air activation. By this procedure, the device will perform an exc...
Definition: LoRaWAN.cpp:63
+int16_t beginOTAA(uint64_t joinEUI, uint64_t devEUI, uint8_t *nwkKey, uint8_t *appKey, bool force=false)
Join network by performing over-the-air activation. By this procedure, the device will perform an exc...
Definition: LoRaWAN.cpp:67
bool FSK
Set to true to force the node to only use FSK channels. Set to false by default.
Definition: LoRaWAN.h:281
-int16_t beginAPB(uint32_t addr, uint8_t *nwkSKey, uint8_t *appSKey, uint8_t *fNwkSIntKey=NULL, uint8_t *sNwkSIntKey=NULL)
Join network by performing activation by personalization. In this procedure, all necessary configurat...
Definition: LoRaWAN.cpp:330
-void setDeviceStatus(uint8_t battLevel)
Set device status.
Definition: LoRaWAN.cpp:773
-int16_t downlink(uint8_t *data, size_t *len)
Wait for downlink from the server in either RX1 or RX2 window.
Definition: LoRaWAN.cpp:516
+int16_t beginAPB(uint32_t addr, uint8_t *nwkSKey, uint8_t *appSKey, uint8_t *fNwkSIntKey=NULL, uint8_t *sNwkSIntKey=NULL)
Join network by performing activation by personalization. In this procedure, all necessary configurat...
Definition: LoRaWAN.cpp:334
+void setDeviceStatus(uint8_t battLevel)
Set device status.
Definition: LoRaWAN.cpp:777
+int16_t downlink(uint8_t *data, size_t *len)
Wait for downlink from the server in either RX1 or RX2 window.
Definition: LoRaWAN.cpp:520
int8_t numChannels
Number of supported channels. Some band plans only support a subset of available channels....
Definition: LoRaWAN.h:293
-void wipe()
Wipe internal persistent parameters. This will reset all counters and saved variables,...
Definition: LoRaWAN.cpp:38
+void wipe()
Wipe internal persistent parameters. This will reset all counters and saved variables,...
Definition: LoRaWAN.cpp:42
int8_t startChannel
Starting channel offset. Some band plans only support a subset of available channels....
Definition: LoRaWAN.h:287
-LoRaWANNode(PhysicalLayer *phy, const LoRaWANBand_t *band)
Default constructor.
Definition: LoRaWAN.cpp:29
-int16_t uplink(const char *str, uint8_t port)
Send a message to the server.
Definition: LoRaWAN.cpp:359
-int16_t begin()
Join network by loading information from persistent storage.
Definition: LoRaWAN.cpp:43
+LoRaWANNode(PhysicalLayer *phy, const LoRaWANBand_t *band)
Default constructor.
Definition: LoRaWAN.cpp:33
+int16_t uplink(const char *str, uint8_t port)
Send a message to the server.
Definition: LoRaWAN.cpp:363
+int16_t begin()
Join network by loading information from persistent storage.
Definition: LoRaWAN.cpp:47
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition: PhysicalLayer.h:34
Structure to save information about LoRaWAN band.
Definition: LoRaWAN.h:208
uint8_t cfListType
Whether the optional channels are defined as list of frequencies or bit mask.
Definition: LoRaWAN.h:225