diff --git a/_build_opt_8h_source.html b/_build_opt_8h_source.html
index c03f6298..88958198 100644
--- a/_build_opt_8h_source.html
+++ b/_build_opt_8h_source.html
@@ -822,208 +822,262 @@ $(document).ready(function(){initNavTree('_build_opt_8h_source.html',''); initRe
-
-
- 739 #define RADIOLIB_PLATFORM "Unknown Arduino"
- 740 #define RADIOLIB_UNKNOWN_PLATFORM
- 741 #define RADIOLIB_PIN_TYPE uint8_t
- 742 #define RADIOLIB_PIN_MODE uint8_t
- 743 #define RADIOLIB_PIN_STATUS uint8_t
- 744 #define RADIOLIB_INTERRUPT_STATUS RADIOLIB_PIN_STATUS
- 745 #define RADIOLIB_DIGITAL_PIN_TO_INTERRUPT(p) digitalPinToInterrupt(p)
- 746 #define RADIOLIB_NC (0xFF)
- 747 #define RADIOLIB_DEFAULT_SPI SPI
- 748 #define RADIOLIB_DEFAULT_SPI_SETTINGS SPISettings(2000000, MSBFIRST, SPI_MODE0)
- 749 #define RADIOLIB_NONVOLATILE PROGMEM
- 750 #define RADIOLIB_NONVOLATILE_READ_BYTE(addr) pgm_read_byte(addr)
- 751 #define RADIOLIB_TYPE_ALIAS(type, alias) using alias = type;
-
-
- 754 #define RADIOLIB_CB_ARGS_PIN_MODE (void, pinMode, uint8_t pin, uint8_t mode)
- 755 #define RADIOLIB_CB_ARGS_DIGITAL_WRITE (void, digitalWrite, uint8_t pin, uint8_t value)
- 756 #define RADIOLIB_CB_ARGS_DIGITAL_READ (int, digitalRead, uint8_t pin)
- 757 #define RADIOLIB_CB_ARGS_TONE (void, tone, uint8_t _pin, unsigned int frequency, unsigned long duration)
- 758 #define RADIOLIB_CB_ARGS_NO_TONE (void, noTone, uint8_t _pin)
- 759 #define RADIOLIB_CB_ARGS_ATTACH_INTERRUPT (void, attachInterrupt, uint8_t interruptNum, void (*userFunc)(void), int mode)
- 760 #define RADIOLIB_CB_ARGS_DETACH_INTERRUPT (void, detachInterrupt, uint8_t interruptNum)
- 761 #define RADIOLIB_CB_ARGS_YIELD (void, yield, void)
- 762 #define RADIOLIB_CB_ARGS_DELAY (void, delay, unsigned long ms)
- 763 #define RADIOLIB_CB_ARGS_DELAY_MICROSECONDS (void, delayMicroseconds, unsigned int us)
- 764 #define RADIOLIB_CB_ARGS_MILLIS (unsigned long, millis, void)
- 765 #define RADIOLIB_CB_ARGS_MICROS (unsigned long, micros, void)
- 766 #define RADIOLIB_CB_ARGS_SPI_BEGIN (void, SPIbegin, void)
- 767 #define RADIOLIB_CB_ARGS_SPI_BEGIN_TRANSACTION (void, SPIbeginTransaction, void)
- 768 #define RADIOLIB_CB_ARGS_SPI_TRANSFER (uint8_t, SPItransfer, uint8_t b)
- 769 #define RADIOLIB_CB_ARGS_SPI_END_TRANSACTION (void, SPIendTransaction, void)
- 770 #define RADIOLIB_CB_ARGS_SPI_END (void, SPIend, void)
-
-
-
-
-
-
- 777 #define RADIOLIB_PLATFORM "Generic"
-
-
-
-
-
-
-
-
-
-
-
-
- 790 #if !defined(RADIOLIB_DEBUG)
-
-
- 793 #if !defined(RADIOLIB_VERBOSE)
-
-
-
-
-
- 799 #if !defined(RADIOLIB_DEBUG_PORT)
- 800 #define RADIOLIB_DEBUG_PORT Serial
-
-
-
-
-
-
-
-
- 809 #if !defined(RADIOLIB_SPI_PARANOID)
- 810 #define RADIOLIB_SPI_PARANOID
-
-
-
-
-
-
-
-
-
- 820 #if !defined(RADIOLIB_CHECK_PARAMS)
- 821 #define RADIOLIB_CHECK_PARAMS
-
-
-
-
-
-
-
-
- 830 #if !defined(RADIOLIB_FIX_ERRATA_SX127X)
-
-
-
-
-
-
-
-
- 839 #if !defined(RADIOLIB_GODMODE)
-
-
-
-
-
-
-
-
- 848 #if !defined(RADIOLIB_LOW_LEVEL)
-
-
-
-
-
-
- 855 #if !defined(RADIOLIB_RADIOSHIELD)
-
-
-
-
-
-
+
+
+ 739 #define RADIOLIB_PLATFORM "RasPiArduino"
+ 740 #define RADIOLIB_PIN_TYPE uint8_t
+ 741 #define RADIOLIB_PIN_MODE uint8_t
+ 742 #define RADIOLIB_PIN_STATUS uint8_t
+ 743 #define RADIOLIB_INTERRUPT_STATUS RADIOLIB_PIN_STATUS
+ 744 #define RADIOLIB_DIGITAL_PIN_TO_INTERRUPT(p) digitalPinToInterrupt(p)
+ 745 #define RADIOLIB_NC (0xFF)
+ 746 #define RADIOLIB_DEFAULT_SPI SPI
+ 747 #define RADIOLIB_DEFAULT_SPI_SETTINGS SPISettings(2000000, MSBFIRST, SPI_MODE0)
+ 748 #define RADIOLIB_NONVOLATILE PROGMEM
+ 749 #define RADIOLIB_NONVOLATILE_READ_BYTE(addr) pgm_read_byte(addr)
+ 750 #define RADIOLIB_TYPE_ALIAS(type, alias) using alias = type;
+
+
+ 753 #define RADIOLIB_CB_ARGS_PIN_MODE (void, pinMode, uint8_t pin, uint8_t mode)
+ 754 #define RADIOLIB_CB_ARGS_DIGITAL_WRITE (void, digitalWrite, uint8_t pin, uint8_t value)
+ 755 #define RADIOLIB_CB_ARGS_DIGITAL_READ (int, digitalRead, uint8_t pin)
+ 756 #define RADIOLIB_CB_ARGS_TONE (void, tone, uint8_t _pin, unsigned int frequency, unsigned long duration)
+ 757 #define RADIOLIB_CB_ARGS_NO_TONE (void, noTone, uint8_t _pin)
+ 758 #define RADIOLIB_CB_ARGS_ATTACH_INTERRUPT (void, attachInterrupt, uint8_t interruptNum, void (*userFunc)(void), int mode)
+ 759 #define RADIOLIB_CB_ARGS_DETACH_INTERRUPT (void, detachInterrupt, uint8_t interruptNum)
+ 760 #define RADIOLIB_CB_ARGS_YIELD (void, yield, void)
+ 761 #define RADIOLIB_CB_ARGS_DELAY (void, delay, uint32_t ms)
+ 762 #define RADIOLIB_CB_ARGS_DELAY_MICROSECONDS (void, delayMicroseconds, unsigned int us)
+ 763 #define RADIOLIB_CB_ARGS_MILLIS (unsigned long, millis, void)
+ 764 #define RADIOLIB_CB_ARGS_MICROS (unsigned long, micros, void)
+ 765 #define RADIOLIB_CB_ARGS_SPI_BEGIN (void, SPIbegin, void)
+ 766 #define RADIOLIB_CB_ARGS_SPI_BEGIN_TRANSACTION (void, SPIbeginTransaction, void)
+ 767 #define RADIOLIB_CB_ARGS_SPI_TRANSFER (uint8_t, SPItransfer, uint8_t b)
+ 768 #define RADIOLIB_CB_ARGS_SPI_END_TRANSACTION (void, SPIendTransaction, void)
+ 769 #define RADIOLIB_CB_ARGS_SPI_END (void, SPIend, void)
+
+
+ 772 #define RADIOLIB_TONE_UNSUPPORTED
+
+
+ 775 #define RADIOLIB_YIELD_UNSUPPORTED
+
+
+ 778 #define PGM_P const char *
+
+
+
+
+ 783 inline unsigned long millis() {
return((
unsigned long)(STCV / 1000)); };
+
+
+
+
+ 788 inline unsigned long micros() {
return((
unsigned long)(STCV)); };
+
+
+
+
+ 793 #define RADIOLIB_PLATFORM "Unknown Arduino"
+ 794 #define RADIOLIB_UNKNOWN_PLATFORM
+ 795 #define RADIOLIB_PIN_TYPE uint8_t
+ 796 #define RADIOLIB_PIN_MODE uint8_t
+ 797 #define RADIOLIB_PIN_STATUS uint8_t
+ 798 #define RADIOLIB_INTERRUPT_STATUS RADIOLIB_PIN_STATUS
+ 799 #define RADIOLIB_DIGITAL_PIN_TO_INTERRUPT(p) digitalPinToInterrupt(p)
+ 800 #define RADIOLIB_NC (0xFF)
+ 801 #define RADIOLIB_DEFAULT_SPI SPI
+ 802 #define RADIOLIB_DEFAULT_SPI_SETTINGS SPISettings(2000000, MSBFIRST, SPI_MODE0)
+ 803 #define RADIOLIB_NONVOLATILE PROGMEM
+ 804 #define RADIOLIB_NONVOLATILE_READ_BYTE(addr) pgm_read_byte(addr)
+ 805 #define RADIOLIB_TYPE_ALIAS(type, alias) using alias = type;
+
+
+ 808 #define RADIOLIB_CB_ARGS_PIN_MODE (void, pinMode, uint8_t pin, uint8_t mode)
+ 809 #define RADIOLIB_CB_ARGS_DIGITAL_WRITE (void, digitalWrite, uint8_t pin, uint8_t value)
+ 810 #define RADIOLIB_CB_ARGS_DIGITAL_READ (int, digitalRead, uint8_t pin)
+ 811 #define RADIOLIB_CB_ARGS_TONE (void, tone, uint8_t _pin, unsigned int frequency, unsigned long duration)
+ 812 #define RADIOLIB_CB_ARGS_NO_TONE (void, noTone, uint8_t _pin)
+ 813 #define RADIOLIB_CB_ARGS_ATTACH_INTERRUPT (void, attachInterrupt, uint8_t interruptNum, void (*userFunc)(void), int mode)
+ 814 #define RADIOLIB_CB_ARGS_DETACH_INTERRUPT (void, detachInterrupt, uint8_t interruptNum)
+ 815 #define RADIOLIB_CB_ARGS_YIELD (void, yield, void)
+ 816 #define RADIOLIB_CB_ARGS_DELAY (void, delay, unsigned long ms)
+ 817 #define RADIOLIB_CB_ARGS_DELAY_MICROSECONDS (void, delayMicroseconds, unsigned int us)
+ 818 #define RADIOLIB_CB_ARGS_MILLIS (unsigned long, millis, void)
+ 819 #define RADIOLIB_CB_ARGS_MICROS (unsigned long, micros, void)
+ 820 #define RADIOLIB_CB_ARGS_SPI_BEGIN (void, SPIbegin, void)
+ 821 #define RADIOLIB_CB_ARGS_SPI_BEGIN_TRANSACTION (void, SPIbeginTransaction, void)
+ 822 #define RADIOLIB_CB_ARGS_SPI_TRANSFER (uint8_t, SPItransfer, uint8_t b)
+ 823 #define RADIOLIB_CB_ARGS_SPI_END_TRANSACTION (void, SPIendTransaction, void)
+ 824 #define RADIOLIB_CB_ARGS_SPI_END (void, SPIend, void)
+
+
+
+
+
+
+ 831 #define RADIOLIB_PLATFORM "Generic"
+
+
+
+
+
+
+
+
+
+
+
+
+ 844 #if !defined(RADIOLIB_DEBUG)
+
+
+ 847 #if !defined(RADIOLIB_VERBOSE)
+
+
+
+
+
+ 853 #if !defined(RADIOLIB_DEBUG_PORT)
+ 854 #define RADIOLIB_DEBUG_PORT Serial
+
+
+
+
+
+
+
- 863 #if !defined(RADIOLIB_STATIC_ONLY)
-
+ 863 #if !defined(RADIOLIB_SPI_PARANOID)
+ 864 #define RADIOLIB_SPI_PARANOID
-
- 868 #if !defined(RADIOLIB_STATIC_ARRAY_SIZE)
- 869 #define RADIOLIB_STATIC_ARRAY_SIZE (256)
-
-
- 872 #if defined(RADIOLIB_DEBUG)
- 873 #if defined(RADIOLIB_BUILD_ARDUINO)
- 874 #define RADIOLIB_DEBUG_PRINT(...) { RADIOLIB_DEBUG_PORT.print(__VA_ARGS__); }
- 875 #define RADIOLIB_DEBUG_PRINTLN(...) { RADIOLIB_DEBUG_PORT.println(__VA_ARGS__); }
-
- 877 #if !defined(RADIOLIB_DEBUG_PRINT)
- 878 #define RADIOLIB_DEBUG_PRINT(...) { frintf(RADIOLIB_DEBUG_PORT, __VA_ARGS__); }
-
- 880 #if !defined(RADIOLIB_DEBUG_PRINTLN)
- 881 #define RADIOLIB_DEBUG_PRINTLN(...) { printf(RADIOLIB_DEBUG_PORT, __VA_ARGS__ "\n"); }
-
-
-
- 885 #define RADIOLIB_DEBUG_PRINT(...) {}
- 886 #define RADIOLIB_DEBUG_PRINTLN(...) {}
-
-
- 889 #if defined(RADIOLIB_VERBOSE)
- 890 #define RADIOLIB_VERBOSE_PRINT(...) RADIOLIB_DEBUG_PRINT(__VA_ARGS__)
- 891 #define RADIOLIB_VERBOSE_PRINTLN(...) RADIOLIB_DEBUG_PRINTLN(__VA_ARGS__)
-
- 893 #define RADIOLIB_VERBOSE_PRINT(...) {}
- 894 #define RADIOLIB_VERBOSE_PRINTLN(...) {}
+
+
+
+
+
+
+
+ 874 #if !defined(RADIOLIB_CHECK_PARAMS)
+ 875 #define RADIOLIB_CHECK_PARAMS
+
+
+
+
+
+
+
+
+ 884 #if !defined(RADIOLIB_FIX_ERRATA_SX127X)
+
+
+
+
+
+
+
+
+ 893 #if !defined(RADIOLIB_GODMODE)
+
- 900 #define RADIOLIB_ASSERT(STATEVAR) { if((STATEVAR) != RADIOLIB_ERR_NONE) { return(STATEVAR); } }
-
-
-
-
-
-
-
+
+
+
+
+
+ 902 #if !defined(RADIOLIB_LOW_LEVEL)
+
+
+
+
+
- 909 #define RADIOLIB_FIRST(arg, ...) arg
- 910 #define RADIOLIB_REST(arg, ...) __VA_ARGS__
- 911 #define RADIOLIB_EXP(...) __VA_ARGS__
+ 909 #if !defined(RADIOLIB_RADIOSHIELD)
+
+
- 913 #define RADIOLIB_GENERATE_CALLBACK_RET_FUNC(RET, FUNC, ...) public: typedef RET (*FUNC##_cb_t)(__VA_ARGS__); void setCb_##FUNC(FUNC##_cb_t cb) { cb_##FUNC = cb; }; private: FUNC##_cb_t cb_##FUNC;
- 914 #define RADIOLIB_GENERATE_CALLBACK_RET(RET, ...) RADIOLIB_GENERATE_CALLBACK_RET_FUNC(RET, __VA_ARGS__)
- 915 #define RADIOLIB_GENERATE_CALLBACK(CB) RADIOLIB_GENERATE_CALLBACK_RET(RADIOLIB_EXP(RADIOLIB_FIRST CB), RADIOLIB_EXP(RADIOLIB_REST CB))
-
- 917 #define RADIOLIB_GENERATE_CALLBACK_SPI_RET_FUNC(RET, FUNC, ...) public: typedef RET (Module::*FUNC##_cb_t)(__VA_ARGS__); void setCb_##FUNC(FUNC##_cb_t cb) { cb_##FUNC = cb; }; private: FUNC##_cb_t cb_##FUNC;
- 918 #define RADIOLIB_GENERATE_CALLBACK_SPI_RET(RET, ...) RADIOLIB_GENERATE_CALLBACK_SPI_RET_FUNC(RET, __VA_ARGS__)
- 919 #define RADIOLIB_GENERATE_CALLBACK_SPI(CB) RADIOLIB_GENERATE_CALLBACK_SPI_RET(RADIOLIB_EXP(RADIOLIB_FIRST CB), RADIOLIB_EXP(RADIOLIB_REST CB))
+
+
+
+
+ 917 #if !defined(RADIOLIB_STATIC_ONLY)
+
+
- 924 #if defined(RADIOLIB_CHECK_PARAMS)
- 925 #define RADIOLIB_CHECK_RANGE(VAR, MIN, MAX, ERR) { if(!(((VAR) >= (MIN)) && ((VAR) <= (MAX)))) { return(ERR); } }
-
- 927 #define RADIOLIB_CHECK_RANGE(VAR, MIN, MAX, ERR) {}
-
-
- 930 #if defined(RADIOLIB_FIX_ERRATA_SX127X)
- 931 #define RADIOLIB_ERRATA_SX127X(...) { errataFix(__VA_ARGS__); }
-
- 933 #define RADIOLIB_ERRATA_SX127X(...) {}
-
-
-
- 937 #define RADIOLIB_VERSION_MAJOR (0x05)
- 938 #define RADIOLIB_VERSION_MINOR (0x01)
- 939 #define RADIOLIB_VERSION_PATCH (0x00)
- 940 #define RADIOLIB_VERSION_EXTRA (0x00)
-
- 942 #define RADIOLIB_VERSION ((RADIOLIB_VERSION_MAJOR << 24) | (RADIOLIB_VERSION_MINOR << 16) | (RADIOLIB_VERSION_PATCH << 8) | (RADIOLIB_VERSION_EXTRA))
-
-
+
+ 922 #if !defined(RADIOLIB_STATIC_ARRAY_SIZE)
+ 923 #define RADIOLIB_STATIC_ARRAY_SIZE (256)
+
+
+ 926 #if defined(RADIOLIB_DEBUG)
+ 927 #if defined(RADIOLIB_BUILD_ARDUINO)
+ 928 #define RADIOLIB_DEBUG_PRINT(...) { RADIOLIB_DEBUG_PORT.print(__VA_ARGS__); }
+ 929 #define RADIOLIB_DEBUG_PRINTLN(...) { RADIOLIB_DEBUG_PORT.println(__VA_ARGS__); }
+
+ 931 #if !defined(RADIOLIB_DEBUG_PRINT)
+ 932 #define RADIOLIB_DEBUG_PRINT(...) { frintf(RADIOLIB_DEBUG_PORT, __VA_ARGS__); }
+
+ 934 #if !defined(RADIOLIB_DEBUG_PRINTLN)
+ 935 #define RADIOLIB_DEBUG_PRINTLN(...) { printf(RADIOLIB_DEBUG_PORT, __VA_ARGS__ "\n"); }
+
+
+
+ 939 #define RADIOLIB_DEBUG_PRINT(...) {}
+ 940 #define RADIOLIB_DEBUG_PRINTLN(...) {}
+
+
+ 943 #if defined(RADIOLIB_VERBOSE)
+ 944 #define RADIOLIB_VERBOSE_PRINT(...) RADIOLIB_DEBUG_PRINT(__VA_ARGS__)
+ 945 #define RADIOLIB_VERBOSE_PRINTLN(...) RADIOLIB_DEBUG_PRINTLN(__VA_ARGS__)
+
+ 947 #define RADIOLIB_VERBOSE_PRINT(...) {}
+ 948 #define RADIOLIB_VERBOSE_PRINTLN(...) {}
+
+
+ 954 #define RADIOLIB_ASSERT(STATEVAR) { if((STATEVAR) != RADIOLIB_ERR_NONE) { return(STATEVAR); } }
+
+
+
+
+
+
+
+
+ 963 #define RADIOLIB_FIRST(arg, ...) arg
+ 964 #define RADIOLIB_REST(arg, ...) __VA_ARGS__
+ 965 #define RADIOLIB_EXP(...) __VA_ARGS__
+
+ 967 #define RADIOLIB_GENERATE_CALLBACK_RET_FUNC(RET, FUNC, ...) public: typedef RET (*FUNC##_cb_t)(__VA_ARGS__); void setCb_##FUNC(FUNC##_cb_t cb) { cb_##FUNC = cb; }; private: FUNC##_cb_t cb_##FUNC;
+ 968 #define RADIOLIB_GENERATE_CALLBACK_RET(RET, ...) RADIOLIB_GENERATE_CALLBACK_RET_FUNC(RET, __VA_ARGS__)
+ 969 #define RADIOLIB_GENERATE_CALLBACK(CB) RADIOLIB_GENERATE_CALLBACK_RET(RADIOLIB_EXP(RADIOLIB_FIRST CB), RADIOLIB_EXP(RADIOLIB_REST CB))
+
+ 971 #define RADIOLIB_GENERATE_CALLBACK_SPI_RET_FUNC(RET, FUNC, ...) public: typedef RET (Module::*FUNC##_cb_t)(__VA_ARGS__); void setCb_##FUNC(FUNC##_cb_t cb) { cb_##FUNC = cb; }; private: FUNC##_cb_t cb_##FUNC;
+ 972 #define RADIOLIB_GENERATE_CALLBACK_SPI_RET(RET, ...) RADIOLIB_GENERATE_CALLBACK_SPI_RET_FUNC(RET, __VA_ARGS__)
+ 973 #define RADIOLIB_GENERATE_CALLBACK_SPI(CB) RADIOLIB_GENERATE_CALLBACK_SPI_RET(RADIOLIB_EXP(RADIOLIB_FIRST CB), RADIOLIB_EXP(RADIOLIB_REST CB))
+
+ 978 #if defined(RADIOLIB_CHECK_PARAMS)
+ 979 #define RADIOLIB_CHECK_RANGE(VAR, MIN, MAX, ERR) { if(!(((VAR) >= (MIN)) && ((VAR) <= (MAX)))) { return(ERR); } }
+
+ 981 #define RADIOLIB_CHECK_RANGE(VAR, MIN, MAX, ERR) {}
+
+
+ 984 #if defined(RADIOLIB_FIX_ERRATA_SX127X)
+ 985 #define RADIOLIB_ERRATA_SX127X(...) { errataFix(__VA_ARGS__); }
+
+ 987 #define RADIOLIB_ERRATA_SX127X(...) {}
+
+
+
+ 991 #define RADIOLIB_VERSION_MAJOR (0x05)
+ 992 #define RADIOLIB_VERSION_MINOR (0x01)
+ 993 #define RADIOLIB_VERSION_PATCH (0x00)
+ 994 #define RADIOLIB_VERSION_EXTRA (0x00)
+
+ 996 #define RADIOLIB_VERSION ((RADIOLIB_VERSION_MAJOR << 24) | (RADIOLIB_VERSION_MINOR << 16) | (RADIOLIB_VERSION_PATCH << 8) | (RADIOLIB_VERSION_EXTRA))
+
+