diff --git a/_s_x126x_8h_source.html b/_s_x126x_8h_source.html
index b6fd2ace..a5056575 100644
--- a/_s_x126x_8h_source.html
+++ b/_s_x126x_8h_source.html
@@ -158,485 +158,505 @@ $(document).ready(function(){initNavTree('_s_x126x_8h_source.html',''); initResi
- 73 #define RADIOLIB_SX126X_REG_WHITENING_INITIAL_MSB 0x06B8
- 74 #define RADIOLIB_SX126X_REG_WHITENING_INITIAL_LSB 0x06B9
- 75 #define RADIOLIB_SX126X_REG_CRC_INITIAL_MSB 0x06BC
- 76 #define RADIOLIB_SX126X_REG_CRC_INITIAL_LSB 0x06BD
- 77 #define RADIOLIB_SX126X_REG_CRC_POLYNOMIAL_MSB 0x06BE
- 78 #define RADIOLIB_SX126X_REG_CRC_POLYNOMIAL_LSB 0x06BF
- 79 #define RADIOLIB_SX126X_REG_SYNC_WORD_0 0x06C0
- 80 #define RADIOLIB_SX126X_REG_SYNC_WORD_1 0x06C1
- 81 #define RADIOLIB_SX126X_REG_SYNC_WORD_2 0x06C2
- 82 #define RADIOLIB_SX126X_REG_SYNC_WORD_3 0x06C3
- 83 #define RADIOLIB_SX126X_REG_SYNC_WORD_4 0x06C4
- 84 #define RADIOLIB_SX126X_REG_SYNC_WORD_5 0x06C5
- 85 #define RADIOLIB_SX126X_REG_SYNC_WORD_6 0x06C6
- 86 #define RADIOLIB_SX126X_REG_SYNC_WORD_7 0x06C7
- 87 #define RADIOLIB_SX126X_REG_NODE_ADDRESS 0x06CD
- 88 #define RADIOLIB_SX126X_REG_BROADCAST_ADDRESS 0x06CE
- 89 #define RADIOLIB_SX126X_REG_LORA_SYNC_WORD_MSB 0x0740
- 90 #define RADIOLIB_SX126X_REG_LORA_SYNC_WORD_LSB 0x0741
- 91 #define RADIOLIB_SX126X_REG_RANDOM_NUMBER_0 0x0819
- 92 #define RADIOLIB_SX126X_REG_RANDOM_NUMBER_1 0x081A
- 93 #define RADIOLIB_SX126X_REG_RANDOM_NUMBER_2 0x081B
- 94 #define RADIOLIB_SX126X_REG_RANDOM_NUMBER_3 0x081C
- 95 #define RADIOLIB_SX126X_REG_RX_GAIN 0x08AC
- 96 #define RADIOLIB_SX126X_REG_OCP_CONFIGURATION 0x08E7
- 97 #define RADIOLIB_SX126X_REG_XTA_TRIM 0x0911
- 98 #define RADIOLIB_SX126X_REG_XTB_TRIM 0x0912
-
-
- 101 #define RADIOLIB_SX126X_REG_SENSITIVITY_CONFIG 0x0889 // SX1268 datasheet v1.1, section 15.1
- 102 #define RADIOLIB_SX126X_REG_TX_CLAMP_CONFIG 0x08D8 // SX1268 datasheet v1.1, section 15.2
- 103 #define RADIOLIB_SX126X_REG_RTC_STOP 0x0920 // SX1268 datasheet v1.1, section 15.3
- 104 #define RADIOLIB_SX126X_REG_RTC_EVENT 0x0944 // SX1268 datasheet v1.1, section 15.3
- 105 #define RADIOLIB_SX126X_REG_IQ_CONFIG 0x0736 // SX1268 datasheet v1.1, section 15.4
- 106 #define RADIOLIB_SX126X_REG_RX_GAIN_RETENTION_0 0x029F // SX1268 datasheet v1.1, section 9.6
- 107 #define RADIOLIB_SX126X_REG_RX_GAIN_RETENTION_1 0x02A0 // SX1268 datasheet v1.1, section 9.6
- 108 #define RADIOLIB_SX126X_REG_RX_GAIN_RETENTION_2 0x02A1 // SX1268 datasheet v1.1, section 9.6
-
-
-
-
- 113 #define RADIOLIB_SX126X_SLEEP_START_COLD 0b00000000 // 2 2 sleep mode: cold start, configuration is lost (default)
- 114 #define RADIOLIB_SX126X_SLEEP_START_WARM 0b00000100 // 2 2 warm start, configuration is retained
- 115 #define RADIOLIB_SX126X_SLEEP_RTC_OFF 0b00000000 // 0 0 wake on RTC timeout: disabled
- 116 #define RADIOLIB_SX126X_SLEEP_RTC_ON 0b00000001 // 0 0 enabled
+ 73 #define RADIOLIB_SX126X_REG_HOPPING_ENABLE 0x0385
+ 74 #define RADIOLIB_SX126X_REG_LR_FHSS_PACKET_LENGTH 0x0386
+ 75 #define RADIOLIB_SX126X_REG_LR_FHSS_NUM_HOPPING_BLOCKS 0x0387
+ 76 #define RADIOLIB_SX126X_REG_LR_FHSS_NUM_SYMBOLS_FREQX_MSB(X) (0x0388 + (X)*6)
+ 77 #define RADIOLIB_SX126X_REG_LR_FHSS_NUM_SYMBOLS_FREQX_LSB(X) (0x0389 + (X)*6)
+ 78 #define RADIOLIB_SX126X_REG_LR_FHSS_FREQX_0(X) (0x038A + (X)*6)
+ 79 #define RADIOLIB_SX126X_REG_LR_FHSS_FREQX_1(X) (0x038B + (X)*6)
+ 80 #define RADIOLIB_SX126X_REG_LR_FHSS_FREQX_2(X) (0x038C + (X)*6)
+ 81 #define RADIOLIB_SX126X_REG_LR_FHSS_FREQX_3(X) (0x038D + (X)*6)
+ 82 #define RADIOLIB_SX126X_REG_DIOX_OUT_ENABLE 0x0580
+ 83 #define RADIOLIB_SX126X_REG_DIOX_IN_ENABLE 0x0583
+ 84 #define RADIOLIB_SX126X_REG_DIOX_PULL_UP_CTRL 0x0584
+ 85 #define RADIOLIB_SX126X_REG_DIOX_PULL_DOWN_CTRL 0x0585
+ 86 #define RADIOLIB_SX126X_REG_WHITENING_INITIAL_MSB 0x06B8
+ 87 #define RADIOLIB_SX126X_REG_WHITENING_INITIAL_LSB 0x06B9
+ 88 #define RADIOLIB_SX126X_REG_CRC_INITIAL_MSB 0x06BC
+ 89 #define RADIOLIB_SX126X_REG_CRC_INITIAL_LSB 0x06BD
+ 90 #define RADIOLIB_SX126X_REG_CRC_POLYNOMIAL_MSB 0x06BE
+ 91 #define RADIOLIB_SX126X_REG_CRC_POLYNOMIAL_LSB 0x06BF
+ 92 #define RADIOLIB_SX126X_REG_SYNC_WORD_0 0x06C0
+ 93 #define RADIOLIB_SX126X_REG_SYNC_WORD_1 0x06C1
+ 94 #define RADIOLIB_SX126X_REG_SYNC_WORD_2 0x06C2
+ 95 #define RADIOLIB_SX126X_REG_SYNC_WORD_3 0x06C3
+ 96 #define RADIOLIB_SX126X_REG_SYNC_WORD_4 0x06C4
+ 97 #define RADIOLIB_SX126X_REG_SYNC_WORD_5 0x06C5
+ 98 #define RADIOLIB_SX126X_REG_SYNC_WORD_6 0x06C6
+ 99 #define RADIOLIB_SX126X_REG_SYNC_WORD_7 0x06C7
+ 100 #define RADIOLIB_SX126X_REG_NODE_ADDRESS 0x06CD
+ 101 #define RADIOLIB_SX126X_REG_BROADCAST_ADDRESS 0x06CE
+ 102 #define RADIOLIB_SX126X_REG_IQ_CONFIG 0x0736
+ 103 #define RADIOLIB_SX126X_REG_LORA_SYNC_WORD_MSB 0x0740
+ 104 #define RADIOLIB_SX126X_REG_LORA_SYNC_WORD_LSB 0x0741
+ 105 #define RADIOLIB_SX126X_REG_RANDOM_NUMBER_0 0x0819
+ 106 #define RADIOLIB_SX126X_REG_RANDOM_NUMBER_1 0x081A
+ 107 #define RADIOLIB_SX126X_REG_RANDOM_NUMBER_2 0x081B
+ 108 #define RADIOLIB_SX126X_REG_RANDOM_NUMBER_3 0x081C
+ 109 #define RADIOLIB_SX126X_REG_RX_GAIN 0x08AC
+ 110 #define RADIOLIB_SX126X_REG_TX_CLAMP_CONFIG 0x08D8
+ 111 #define RADIOLIB_SX126X_REG_OCP_CONFIGURATION 0x08E7
+ 112 #define RADIOLIB_SX126X_REG_RTC_CTRL 0x0902
+ 113 #define RADIOLIB_SX126X_REG_XTA_TRIM 0x0911
+ 114 #define RADIOLIB_SX126X_REG_XTB_TRIM 0x0912
+ 115 #define RADIOLIB_SX126X_REG_DIO3_OUT_VOLTAGE_CTRL 0x0920
+ 116 #define RADIOLIB_SX126X_REG_EVENT_MASK 0x0944
-
- 119 #define RADIOLIB_SX126X_STANDBY_RC 0x00 // 7 0 standby mode: 13 MHz RC oscillator
- 120 #define RADIOLIB_SX126X_STANDBY_XOSC 0x01 // 7 0 32 MHz crystal oscillator
-
-
- 123 #define RADIOLIB_SX126X_RX_TIMEOUT_NONE 0x000000 // 23 0 Rx timeout duration: no timeout (Rx single mode)
- 124 #define RADIOLIB_SX126X_RX_TIMEOUT_INF 0xFFFFFF // 23 0 infinite (Rx continuous mode)
-
-
- 127 #define RADIOLIB_SX126X_TX_TIMEOUT_NONE 0x000000 // 23 0 Tx timeout duration: no timeout (Tx single mode)
-
-
- 130 #define RADIOLIB_SX126X_STOP_ON_PREAMBLE_OFF 0x00 // 7 0 stop timer on: sync word or header (default)
- 131 #define RADIOLIB_SX126X_STOP_ON_PREAMBLE_ON 0x01 // 7 0 preamble detection
-
-
- 134 #define RADIOLIB_SX126X_REGULATOR_LDO 0x00 // 7 0 set regulator mode: LDO (default)
- 135 #define RADIOLIB_SX126X_REGULATOR_DC_DC 0x01 // 7 0 DC-DC
-
-
- 138 #define RADIOLIB_SX126X_CALIBRATE_IMAGE_OFF 0b00000000 // 6 6 image calibration: disabled
- 139 #define RADIOLIB_SX126X_CALIBRATE_IMAGE_ON 0b01000000 // 6 6 enabled
- 140 #define RADIOLIB_SX126X_CALIBRATE_ADC_BULK_P_OFF 0b00000000 // 5 5 ADC bulk P calibration: disabled
- 141 #define RADIOLIB_SX126X_CALIBRATE_ADC_BULK_P_ON 0b00100000 // 5 5 enabled
- 142 #define RADIOLIB_SX126X_CALIBRATE_ADC_BULK_N_OFF 0b00000000 // 4 4 ADC bulk N calibration: disabled
- 143 #define RADIOLIB_SX126X_CALIBRATE_ADC_BULK_N_ON 0b00010000 // 4 4 enabled
- 144 #define RADIOLIB_SX126X_CALIBRATE_ADC_PULSE_OFF 0b00000000 // 3 3 ADC pulse calibration: disabled
- 145 #define RADIOLIB_SX126X_CALIBRATE_ADC_PULSE_ON 0b00001000 // 3 3 enabled
- 146 #define RADIOLIB_SX126X_CALIBRATE_PLL_OFF 0b00000000 // 2 2 PLL calibration: disabled
- 147 #define RADIOLIB_SX126X_CALIBRATE_PLL_ON 0b00000100 // 2 2 enabled
- 148 #define RADIOLIB_SX126X_CALIBRATE_RC13M_OFF 0b00000000 // 1 1 13 MHz RC osc. calibration: disabled
- 149 #define RADIOLIB_SX126X_CALIBRATE_RC13M_ON 0b00000010 // 1 1 enabled
- 150 #define RADIOLIB_SX126X_CALIBRATE_RC64K_OFF 0b00000000 // 0 0 64 kHz RC osc. calibration: disabled
- 151 #define RADIOLIB_SX126X_CALIBRATE_RC64K_ON 0b00000001 // 0 0 enabled
- 152 #define RADIOLIB_SX126X_CALIBRATE_ALL 0b01111111 // 6 0 calibrate all blocks
-
-
- 155 #define RADIOLIB_SX126X_CAL_IMG_430_MHZ_1 0x6B
- 156 #define RADIOLIB_SX126X_CAL_IMG_430_MHZ_2 0x6F
- 157 #define RADIOLIB_SX126X_CAL_IMG_470_MHZ_1 0x75
- 158 #define RADIOLIB_SX126X_CAL_IMG_470_MHZ_2 0x81
- 159 #define RADIOLIB_SX126X_CAL_IMG_779_MHZ_1 0xC1
- 160 #define RADIOLIB_SX126X_CAL_IMG_779_MHZ_2 0xC5
- 161 #define RADIOLIB_SX126X_CAL_IMG_863_MHZ_1 0xD7
- 162 #define RADIOLIB_SX126X_CAL_IMG_863_MHZ_2 0xDB
- 163 #define RADIOLIB_SX126X_CAL_IMG_902_MHZ_1 0xE1
- 164 #define RADIOLIB_SX126X_CAL_IMG_902_MHZ_2 0xE9
-
-
- 167 #define RADIOLIB_SX126X_PA_CONFIG_HP_MAX 0x07
- 168 #define RADIOLIB_SX126X_PA_CONFIG_PA_LUT 0x01
- 169 #define RADIOLIB_SX126X_PA_CONFIG_SX1262_8 0x00
-
-
- 172 #define RADIOLIB_SX126X_RX_TX_FALLBACK_MODE_FS 0x40 // 7 0 after Rx/Tx go to: FS mode
- 173 #define RADIOLIB_SX126X_RX_TX_FALLBACK_MODE_STDBY_XOSC 0x30 // 7 0 standby with crystal oscillator
- 174 #define RADIOLIB_SX126X_RX_TX_FALLBACK_MODE_STDBY_RC 0x20 // 7 0 standby with RC oscillator (default)
-
-
- 177 #define RADIOLIB_SX126X_IRQ_TIMEOUT 0b1000000000 // 9 9 Rx or Tx timeout
- 178 #define RADIOLIB_SX126X_IRQ_CAD_DETECTED 0b0100000000 // 8 8 channel activity detected
- 179 #define RADIOLIB_SX126X_IRQ_CAD_DONE 0b0010000000 // 7 7 channel activity detection finished
- 180 #define RADIOLIB_SX126X_IRQ_CRC_ERR 0b0001000000 // 6 6 wrong CRC received
- 181 #define RADIOLIB_SX126X_IRQ_HEADER_ERR 0b0000100000 // 5 5 LoRa header CRC error
- 182 #define RADIOLIB_SX126X_IRQ_HEADER_VALID 0b0000010000 // 4 4 valid LoRa header received
- 183 #define RADIOLIB_SX126X_IRQ_SYNC_WORD_VALID 0b0000001000 // 3 3 valid sync word detected
- 184 #define RADIOLIB_SX126X_IRQ_RADIOLIB_PREAMBLE_DETECTED 0b0000000100 // 2 2 preamble detected
- 185 #define RADIOLIB_SX126X_IRQ_RX_DONE 0b0000000010 // 1 1 packet received
- 186 #define RADIOLIB_SX126X_IRQ_TX_DONE 0b0000000001 // 0 0 packet transmission completed
- 187 #define RADIOLIB_SX126X_IRQ_ALL 0b1111111111 // 9 0 all interrupts
- 188 #define RADIOLIB_SX126X_IRQ_NONE 0b0000000000 // 9 0 no interrupts
+
+ 119 #define RADIOLIB_SX126X_REG_SENSITIVITY_CONFIG 0x0889 // SX1268 datasheet v1.1, section 15.1
+ 120 #define RADIOLIB_SX126X_REG_RX_GAIN_RETENTION_0 0x029F // SX1268 datasheet v1.1, section 9.6
+ 121 #define RADIOLIB_SX126X_REG_RX_GAIN_RETENTION_1 0x02A0 // SX1268 datasheet v1.1, section 9.6
+ 122 #define RADIOLIB_SX126X_REG_RX_GAIN_RETENTION_2 0x02A1 // SX1268 datasheet v1.1, section 9.6
+
+
+
+
+ 127 #define RADIOLIB_SX126X_SLEEP_START_COLD 0b00000000 // 2 2 sleep mode: cold start, configuration is lost (default)
+ 128 #define RADIOLIB_SX126X_SLEEP_START_WARM 0b00000100 // 2 2 warm start, configuration is retained
+ 129 #define RADIOLIB_SX126X_SLEEP_RTC_OFF 0b00000000 // 0 0 wake on RTC timeout: disabled
+ 130 #define RADIOLIB_SX126X_SLEEP_RTC_ON 0b00000001 // 0 0 enabled
+
+
+ 133 #define RADIOLIB_SX126X_STANDBY_RC 0x00 // 7 0 standby mode: 13 MHz RC oscillator
+ 134 #define RADIOLIB_SX126X_STANDBY_XOSC 0x01 // 7 0 32 MHz crystal oscillator
+
+
+ 137 #define RADIOLIB_SX126X_RX_TIMEOUT_NONE 0x000000 // 23 0 Rx timeout duration: no timeout (Rx single mode)
+ 138 #define RADIOLIB_SX126X_RX_TIMEOUT_INF 0xFFFFFF // 23 0 infinite (Rx continuous mode)
+
+
+ 141 #define RADIOLIB_SX126X_TX_TIMEOUT_NONE 0x000000 // 23 0 Tx timeout duration: no timeout (Tx single mode)
+
+
+ 144 #define RADIOLIB_SX126X_STOP_ON_PREAMBLE_OFF 0x00 // 7 0 stop timer on: sync word or header (default)
+ 145 #define RADIOLIB_SX126X_STOP_ON_PREAMBLE_ON 0x01 // 7 0 preamble detection
+
+
+ 148 #define RADIOLIB_SX126X_REGULATOR_LDO 0x00 // 7 0 set regulator mode: LDO (default)
+ 149 #define RADIOLIB_SX126X_REGULATOR_DC_DC 0x01 // 7 0 DC-DC
+
+
+ 152 #define RADIOLIB_SX126X_CALIBRATE_IMAGE_OFF 0b00000000 // 6 6 image calibration: disabled
+ 153 #define RADIOLIB_SX126X_CALIBRATE_IMAGE_ON 0b01000000 // 6 6 enabled
+ 154 #define RADIOLIB_SX126X_CALIBRATE_ADC_BULK_P_OFF 0b00000000 // 5 5 ADC bulk P calibration: disabled
+ 155 #define RADIOLIB_SX126X_CALIBRATE_ADC_BULK_P_ON 0b00100000 // 5 5 enabled
+ 156 #define RADIOLIB_SX126X_CALIBRATE_ADC_BULK_N_OFF 0b00000000 // 4 4 ADC bulk N calibration: disabled
+ 157 #define RADIOLIB_SX126X_CALIBRATE_ADC_BULK_N_ON 0b00010000 // 4 4 enabled
+ 158 #define RADIOLIB_SX126X_CALIBRATE_ADC_PULSE_OFF 0b00000000 // 3 3 ADC pulse calibration: disabled
+ 159 #define RADIOLIB_SX126X_CALIBRATE_ADC_PULSE_ON 0b00001000 // 3 3 enabled
+ 160 #define RADIOLIB_SX126X_CALIBRATE_PLL_OFF 0b00000000 // 2 2 PLL calibration: disabled
+ 161 #define RADIOLIB_SX126X_CALIBRATE_PLL_ON 0b00000100 // 2 2 enabled
+ 162 #define RADIOLIB_SX126X_CALIBRATE_RC13M_OFF 0b00000000 // 1 1 13 MHz RC osc. calibration: disabled
+ 163 #define RADIOLIB_SX126X_CALIBRATE_RC13M_ON 0b00000010 // 1 1 enabled
+ 164 #define RADIOLIB_SX126X_CALIBRATE_RC64K_OFF 0b00000000 // 0 0 64 kHz RC osc. calibration: disabled
+ 165 #define RADIOLIB_SX126X_CALIBRATE_RC64K_ON 0b00000001 // 0 0 enabled
+ 166 #define RADIOLIB_SX126X_CALIBRATE_ALL 0b01111111 // 6 0 calibrate all blocks
+
+
+ 169 #define RADIOLIB_SX126X_CAL_IMG_430_MHZ_1 0x6B
+ 170 #define RADIOLIB_SX126X_CAL_IMG_430_MHZ_2 0x6F
+ 171 #define RADIOLIB_SX126X_CAL_IMG_470_MHZ_1 0x75
+ 172 #define RADIOLIB_SX126X_CAL_IMG_470_MHZ_2 0x81
+ 173 #define RADIOLIB_SX126X_CAL_IMG_779_MHZ_1 0xC1
+ 174 #define RADIOLIB_SX126X_CAL_IMG_779_MHZ_2 0xC5
+ 175 #define RADIOLIB_SX126X_CAL_IMG_863_MHZ_1 0xD7
+ 176 #define RADIOLIB_SX126X_CAL_IMG_863_MHZ_2 0xDB
+ 177 #define RADIOLIB_SX126X_CAL_IMG_902_MHZ_1 0xE1
+ 178 #define RADIOLIB_SX126X_CAL_IMG_902_MHZ_2 0xE9
+
+
+ 181 #define RADIOLIB_SX126X_PA_CONFIG_HP_MAX 0x07
+ 182 #define RADIOLIB_SX126X_PA_CONFIG_PA_LUT 0x01
+ 183 #define RADIOLIB_SX126X_PA_CONFIG_SX1262_8 0x00
+
+
+ 186 #define RADIOLIB_SX126X_RX_TX_FALLBACK_MODE_FS 0x40 // 7 0 after Rx/Tx go to: FS mode
+ 187 #define RADIOLIB_SX126X_RX_TX_FALLBACK_MODE_STDBY_XOSC 0x30 // 7 0 standby with crystal oscillator
+ 188 #define RADIOLIB_SX126X_RX_TX_FALLBACK_MODE_STDBY_RC 0x20 // 7 0 standby with RC oscillator (default)
-
- 191 #define RADIOLIB_SX126X_DIO2_AS_IRQ 0x00 // 7 0 DIO2 configuration: IRQ
- 192 #define RADIOLIB_SX126X_DIO2_AS_RF_SWITCH 0x01 // 7 0 RF switch control
-
-
- 195 #define RADIOLIB_SX126X_DIO3_OUTPUT_1_6 0x00 // 7 0 DIO3 voltage output for TCXO: 1.6 V
- 196 #define RADIOLIB_SX126X_DIO3_OUTPUT_1_7 0x01 // 7 0 1.7 V
- 197 #define RADIOLIB_SX126X_DIO3_OUTPUT_1_8 0x02 // 7 0 1.8 V
- 198 #define RADIOLIB_SX126X_DIO3_OUTPUT_2_2 0x03 // 7 0 2.2 V
- 199 #define RADIOLIB_SX126X_DIO3_OUTPUT_2_4 0x04 // 7 0 2.4 V
- 200 #define RADIOLIB_SX126X_DIO3_OUTPUT_2_7 0x05 // 7 0 2.7 V
- 201 #define RADIOLIB_SX126X_DIO3_OUTPUT_3_0 0x06 // 7 0 3.0 V
- 202 #define RADIOLIB_SX126X_DIO3_OUTPUT_3_3 0x07 // 7 0 3.3 V
-
-
- 205 #define RADIOLIB_SX126X_PACKET_TYPE_GFSK 0x00 // 7 0 packet type: GFSK
- 206 #define RADIOLIB_SX126X_PACKET_TYPE_LORA 0x01 // 7 0 LoRa
-
-
- 209 #define RADIOLIB_SX126X_PA_RAMP_10U 0x00 // 7 0 ramp time: 10 us
- 210 #define RADIOLIB_SX126X_PA_RAMP_20U 0x01 // 7 0 20 us
- 211 #define RADIOLIB_SX126X_PA_RAMP_40U 0x02 // 7 0 40 us
- 212 #define RADIOLIB_SX126X_PA_RAMP_80U 0x03 // 7 0 80 us
- 213 #define RADIOLIB_SX126X_PA_RAMP_200U 0x04 // 7 0 200 us
- 214 #define RADIOLIB_SX126X_PA_RAMP_800U 0x05 // 7 0 800 us
- 215 #define RADIOLIB_SX126X_PA_RAMP_1700U 0x06 // 7 0 1700 us
- 216 #define RADIOLIB_SX126X_PA_RAMP_3400U 0x07 // 7 0 3400 us
-
-
- 219 #define RADIOLIB_SX126X_GFSK_FILTER_NONE 0x00 // 7 0 GFSK filter: none
- 220 #define RADIOLIB_SX126X_GFSK_FILTER_GAUSS_0_3 0x08 // 7 0 Gaussian, BT = 0.3
- 221 #define RADIOLIB_SX126X_GFSK_FILTER_GAUSS_0_5 0x09 // 7 0 Gaussian, BT = 0.5
- 222 #define RADIOLIB_SX126X_GFSK_FILTER_GAUSS_0_7 0x0A // 7 0 Gaussian, BT = 0.7
- 223 #define RADIOLIB_SX126X_GFSK_FILTER_GAUSS_1 0x0B // 7 0 Gaussian, BT = 1
- 224 #define RADIOLIB_SX126X_GFSK_RX_BW_4_8 0x1F // 7 0 GFSK Rx bandwidth: 4.8 kHz
- 225 #define RADIOLIB_SX126X_GFSK_RX_BW_5_8 0x17 // 7 0 5.8 kHz
- 226 #define RADIOLIB_SX126X_GFSK_RX_BW_7_3 0x0F // 7 0 7.3 kHz
- 227 #define RADIOLIB_SX126X_GFSK_RX_BW_9_7 0x1E // 7 0 9.7 kHz
- 228 #define RADIOLIB_SX126X_GFSK_RX_BW_11_7 0x16 // 7 0 11.7 kHz
- 229 #define RADIOLIB_SX126X_GFSK_RX_BW_14_6 0x0E // 7 0 14.6 kHz
- 230 #define RADIOLIB_SX126X_GFSK_RX_BW_19_5 0x1D // 7 0 19.5 kHz
- 231 #define RADIOLIB_SX126X_GFSK_RX_BW_23_4 0x15 // 7 0 23.4 kHz
- 232 #define RADIOLIB_SX126X_GFSK_RX_BW_29_3 0x0D // 7 0 29.3 kHz
- 233 #define RADIOLIB_SX126X_GFSK_RX_BW_39_0 0x1C // 7 0 39.0 kHz
- 234 #define RADIOLIB_SX126X_GFSK_RX_BW_46_9 0x14 // 7 0 46.9 kHz
- 235 #define RADIOLIB_SX126X_GFSK_RX_BW_58_6 0x0C // 7 0 58.6 kHz
- 236 #define RADIOLIB_SX126X_GFSK_RX_BW_78_2 0x1B // 7 0 78.2 kHz
- 237 #define RADIOLIB_SX126X_GFSK_RX_BW_93_8 0x13 // 7 0 93.8 kHz
- 238 #define RADIOLIB_SX126X_GFSK_RX_BW_117_3 0x0B // 7 0 117.3 kHz
- 239 #define RADIOLIB_SX126X_GFSK_RX_BW_156_2 0x1A // 7 0 156.2 kHz
- 240 #define RADIOLIB_SX126X_GFSK_RX_BW_187_2 0x12 // 7 0 187.2 kHz
- 241 #define RADIOLIB_SX126X_GFSK_RX_BW_234_3 0x0A // 7 0 234.3 kHz
- 242 #define RADIOLIB_SX126X_GFSK_RX_BW_312_0 0x19 // 7 0 312.0 kHz
- 243 #define RADIOLIB_SX126X_GFSK_RX_BW_373_6 0x11 // 7 0 373.6 kHz
- 244 #define RADIOLIB_SX126X_GFSK_RX_BW_467_0 0x09 // 7 0 467.0 kHz
- 245 #define RADIOLIB_SX126X_LORA_BW_7_8 0x00 // 7 0 LoRa bandwidth: 7.8 kHz
- 246 #define RADIOLIB_SX126X_LORA_BW_10_4 0x08 // 7 0 10.4 kHz
- 247 #define RADIOLIB_SX126X_LORA_BW_15_6 0x01 // 7 0 15.6 kHz
- 248 #define RADIOLIB_SX126X_LORA_BW_20_8 0x09 // 7 0 20.8 kHz
- 249 #define RADIOLIB_SX126X_LORA_BW_31_25 0x02 // 7 0 31.25 kHz
- 250 #define RADIOLIB_SX126X_LORA_BW_41_7 0x0A // 7 0 41.7 kHz
- 251 #define RADIOLIB_SX126X_LORA_BW_62_5 0x03 // 7 0 62.5 kHz
- 252 #define RADIOLIB_SX126X_LORA_BW_125_0 0x04 // 7 0 125.0 kHz
- 253 #define RADIOLIB_SX126X_LORA_BW_250_0 0x05 // 7 0 250.0 kHz
- 254 #define RADIOLIB_SX126X_LORA_BW_500_0 0x06 // 7 0 500.0 kHz
- 255 #define RADIOLIB_SX126X_LORA_CR_4_5 0x01 // 7 0 LoRa coding rate: 4/5
- 256 #define RADIOLIB_SX126X_LORA_CR_4_6 0x02 // 7 0 4/6
- 257 #define RADIOLIB_SX126X_LORA_CR_4_7 0x03 // 7 0 4/7
- 258 #define RADIOLIB_SX126X_LORA_CR_4_8 0x04 // 7 0 4/8
- 259 #define RADIOLIB_SX126X_LORA_LOW_DATA_RATE_OPTIMIZE_OFF 0x00 // 7 0 LoRa low data rate optimization: disabled
- 260 #define RADIOLIB_SX126X_LORA_LOW_DATA_RATE_OPTIMIZE_ON 0x01 // 7 0 enabled
-
-
- 263 #define RADIOLIB_SX126X_GFSK_PREAMBLE_DETECT_OFF 0x00 // 7 0 GFSK minimum preamble length before reception starts: detector disabled
- 264 #define RADIOLIB_SX126X_GFSK_PREAMBLE_DETECT_8 0x04 // 7 0 8 bits
- 265 #define RADIOLIB_SX126X_GFSK_PREAMBLE_DETECT_16 0x05 // 7 0 16 bits
- 266 #define RADIOLIB_SX126X_GFSK_PREAMBLE_DETECT_24 0x06 // 7 0 24 bits
- 267 #define RADIOLIB_SX126X_GFSK_PREAMBLE_DETECT_32 0x07 // 7 0 32 bits
- 268 #define RADIOLIB_SX126X_GFSK_ADDRESS_FILT_OFF 0x00 // 7 0 GFSK address filtering: disabled
- 269 #define RADIOLIB_SX126X_GFSK_ADDRESS_FILT_NODE 0x01 // 7 0 node only
- 270 #define RADIOLIB_SX126X_GFSK_ADDRESS_FILT_NODE_BROADCAST 0x02 // 7 0 node and broadcast
- 271 #define RADIOLIB_SX126X_GFSK_PACKET_FIXED 0x00 // 7 0 GFSK packet type: fixed (payload length known in advance to both sides)
- 272 #define RADIOLIB_SX126X_GFSK_PACKET_VARIABLE 0x01 // 7 0 variable (payload length added to packet)
- 273 #define RADIOLIB_SX126X_GFSK_CRC_OFF 0x01 // 7 0 GFSK packet CRC: disabled
- 274 #define RADIOLIB_SX126X_GFSK_CRC_1_BYTE 0x00 // 7 0 1 byte
- 275 #define RADIOLIB_SX126X_GFSK_CRC_2_BYTE 0x02 // 7 0 2 byte
- 276 #define RADIOLIB_SX126X_GFSK_CRC_1_BYTE_INV 0x04 // 7 0 1 byte, inverted
- 277 #define RADIOLIB_SX126X_GFSK_CRC_2_BYTE_INV 0x06 // 7 0 2 byte, inverted
- 278 #define RADIOLIB_SX126X_GFSK_WHITENING_OFF 0x00 // 7 0 GFSK data whitening: disabled
- 279 #define RADIOLIB_SX126X_GFSK_WHITENING_ON 0x01 // 7 0 enabled
- 280 #define RADIOLIB_SX126X_LORA_HEADER_EXPLICIT 0x00 // 7 0 LoRa header mode: explicit
- 281 #define RADIOLIB_SX126X_LORA_HEADER_IMPLICIT 0x01 // 7 0 implicit
- 282 #define RADIOLIB_SX126X_LORA_CRC_OFF 0x00 // 7 0 LoRa CRC mode: disabled
- 283 #define RADIOLIB_SX126X_LORA_CRC_ON 0x01 // 7 0 enabled
- 284 #define RADIOLIB_SX126X_LORA_IQ_STANDARD 0x00 // 7 0 LoRa IQ setup: standard
- 285 #define RADIOLIB_SX126X_LORA_IQ_INVERTED 0x01 // 7 0 inverted
-
-
- 288 #define RADIOLIB_SX126X_CAD_ON_1_SYMB 0x00 // 7 0 number of symbols used for CAD: 1
- 289 #define RADIOLIB_SX126X_CAD_ON_2_SYMB 0x01 // 7 0 2
- 290 #define RADIOLIB_SX126X_CAD_ON_4_SYMB 0x02 // 7 0 4
- 291 #define RADIOLIB_SX126X_CAD_ON_8_SYMB 0x03 // 7 0 8
- 292 #define RADIOLIB_SX126X_CAD_ON_16_SYMB 0x04 // 7 0 16
- 293 #define RADIOLIB_SX126X_CAD_GOTO_STDBY 0x00 // 7 0 after CAD is done, always go to STDBY_RC mode
- 294 #define RADIOLIB_SX126X_CAD_GOTO_RX 0x01 // 7 0 after CAD is done, go to Rx mode if activity is detected
-
-
- 297 #define RADIOLIB_SX126X_STATUS_MODE_STDBY_RC 0b00100000 // 6 4 current chip mode: STDBY_RC
- 298 #define RADIOLIB_SX126X_STATUS_MODE_STDBY_XOSC 0b00110000 // 6 4 STDBY_XOSC
- 299 #define RADIOLIB_SX126X_STATUS_MODE_FS 0b01000000 // 6 4 FS
- 300 #define RADIOLIB_SX126X_STATUS_MODE_RX 0b01010000 // 6 4 RX
- 301 #define RADIOLIB_SX126X_STATUS_MODE_TX 0b01100000 // 6 4 TX
- 302 #define RADIOLIB_SX126X_STATUS_DATA_AVAILABLE 0b00000100 // 3 1 command status: packet received and data can be retrieved
- 303 #define RADIOLIB_SX126X_STATUS_CMD_TIMEOUT 0b00000110 // 3 1 SPI command timed out
- 304 #define RADIOLIB_SX126X_STATUS_CMD_INVALID 0b00001000 // 3 1 invalid SPI command
- 305 #define RADIOLIB_SX126X_STATUS_CMD_FAILED 0b00001010 // 3 1 SPI command failed to execute
- 306 #define RADIOLIB_SX126X_STATUS_TX_DONE 0b00001100 // 3 1 packet transmission done
- 307 #define RADIOLIB_SX126X_STATUS_SPI_FAILED 0b11111111 // 7 0 SPI transaction failed
-
-
- 310 #define RADIOLIB_SX126X_GFSK_RX_STATUS_PREAMBLE_ERR 0b10000000 // 7 7 GFSK Rx status: preamble error
- 311 #define RADIOLIB_SX126X_GFSK_RX_STATUS_SYNC_ERR 0b01000000 // 6 6 sync word error
- 312 #define RADIOLIB_SX126X_GFSK_RX_STATUS_ADRS_ERR 0b00100000 // 5 5 address error
- 313 #define RADIOLIB_SX126X_GFSK_RX_STATUS_CRC_ERR 0b00010000 // 4 4 CRC error
- 314 #define RADIOLIB_SX126X_GFSK_RX_STATUS_LENGTH_ERR 0b00001000 // 3 3 length error
- 315 #define RADIOLIB_SX126X_GFSK_RX_STATUS_ABORT_ERR 0b00000100 // 2 2 abort error
- 316 #define RADIOLIB_SX126X_GFSK_RX_STATUS_PACKET_RECEIVED 0b00000010 // 2 2 packet received
- 317 #define RADIOLIB_SX126X_GFSK_RX_STATUS_PACKET_SENT 0b00000001 // 2 2 packet sent
-
-
- 320 #define RADIOLIB_SX126X_PA_RAMP_ERR 0b100000000 // 8 8 device errors: PA ramping failed
- 321 #define RADIOLIB_SX126X_PLL_LOCK_ERR 0b001000000 // 6 6 PLL failed to lock
- 322 #define RADIOLIB_SX126X_XOSC_START_ERR 0b000100000 // 5 5 crystal oscillator failed to start
- 323 #define RADIOLIB_SX126X_IMG_CALIB_ERR 0b000010000 // 4 4 image calibration failed
- 324 #define RADIOLIB_SX126X_ADC_CALIB_ERR 0b000001000 // 3 3 ADC calibration failed
- 325 #define RADIOLIB_SX126X_PLL_CALIB_ERR 0b000000100 // 2 2 PLL calibration failed
- 326 #define RADIOLIB_SX126X_RC13M_CALIB_ERR 0b000000010 // 1 1 RC13M calibration failed
- 327 #define RADIOLIB_SX126X_RC64K_CALIB_ERR 0b000000001 // 0 0 RC64K calibration failed
-
-
-
-
- 332 #define RADIOLIB_SX126X_SYNC_WORD_PUBLIC 0x34 // actually 0x3444 NOTE: The low nibbles in each byte (0x_4_4) are masked out since apparently, they're reserved.
- 333 #define RADIOLIB_SX126X_SYNC_WORD_PRIVATE 0x12 // actually 0x1424 You couldn't make this up if you tried.
+
+ 191 #define RADIOLIB_SX126X_IRQ_LR_FHSS_HOP 0b0100000000000000 // 14 14 PA ramped up during LR-FHSS hop
+ 192 #define RADIOLIB_SX126X_IRQ_TIMEOUT 0b0000001000000000 // 9 9 Rx or Tx timeout
+ 193 #define RADIOLIB_SX126X_IRQ_CAD_DETECTED 0b0000000100000000 // 8 8 channel activity detected
+ 194 #define RADIOLIB_SX126X_IRQ_CAD_DONE 0b0000000010000000 // 7 7 channel activity detection finished
+ 195 #define RADIOLIB_SX126X_IRQ_CRC_ERR 0b0000000001000000 // 6 6 wrong CRC received
+ 196 #define RADIOLIB_SX126X_IRQ_HEADER_ERR 0b0000000000100000 // 5 5 LoRa header CRC error
+ 197 #define RADIOLIB_SX126X_IRQ_HEADER_VALID 0b0000000000010000 // 4 4 valid LoRa header received
+ 198 #define RADIOLIB_SX126X_IRQ_SYNC_WORD_VALID 0b0000000000001000 // 3 3 valid sync word detected
+ 199 #define RADIOLIB_SX126X_IRQ_RADIOLIB_PREAMBLE_DETECTED 0b0000000000000100 // 2 2 preamble detected
+ 200 #define RADIOLIB_SX126X_IRQ_RX_DONE 0b0000000000000010 // 1 1 packet received
+ 201 #define RADIOLIB_SX126X_IRQ_TX_DONE 0b0000000000000001 // 0 0 packet transmission completed
+ 202 #define RADIOLIB_SX126X_IRQ_ALL 0b0100001111111111 // 14 0 all interrupts
+ 203 #define RADIOLIB_SX126X_IRQ_NONE 0b0000000000000000 // 14 0 no interrupts
+
+
+ 206 #define RADIOLIB_SX126X_DIO2_AS_IRQ 0x00 // 7 0 DIO2 configuration: IRQ
+ 207 #define RADIOLIB_SX126X_DIO2_AS_RF_SWITCH 0x01 // 7 0 RF switch control
+
+
+ 210 #define RADIOLIB_SX126X_DIO3_OUTPUT_1_6 0x00 // 7 0 DIO3 voltage output for TCXO: 1.6 V
+ 211 #define RADIOLIB_SX126X_DIO3_OUTPUT_1_7 0x01 // 7 0 1.7 V
+ 212 #define RADIOLIB_SX126X_DIO3_OUTPUT_1_8 0x02 // 7 0 1.8 V
+ 213 #define RADIOLIB_SX126X_DIO3_OUTPUT_2_2 0x03 // 7 0 2.2 V
+ 214 #define RADIOLIB_SX126X_DIO3_OUTPUT_2_4 0x04 // 7 0 2.4 V
+ 215 #define RADIOLIB_SX126X_DIO3_OUTPUT_2_7 0x05 // 7 0 2.7 V
+ 216 #define RADIOLIB_SX126X_DIO3_OUTPUT_3_0 0x06 // 7 0 3.0 V
+ 217 #define RADIOLIB_SX126X_DIO3_OUTPUT_3_3 0x07 // 7 0 3.3 V
+
+
+ 220 #define RADIOLIB_SX126X_PACKET_TYPE_GFSK 0x00 // 7 0 packet type: GFSK
+ 221 #define RADIOLIB_SX126X_PACKET_TYPE_LORA 0x01 // 7 0 LoRa
+ 222 #define RADIOLIB_SX126X_PACKET_TYPE_LR_FHSS 0x03 // 7 0 LR-FHSS
+
+
+ 225 #define RADIOLIB_SX126X_PA_RAMP_10U 0x00 // 7 0 ramp time: 10 us
+ 226 #define RADIOLIB_SX126X_PA_RAMP_20U 0x01 // 7 0 20 us
+ 227 #define RADIOLIB_SX126X_PA_RAMP_40U 0x02 // 7 0 40 us
+ 228 #define RADIOLIB_SX126X_PA_RAMP_80U 0x03 // 7 0 80 us
+ 229 #define RADIOLIB_SX126X_PA_RAMP_200U 0x04 // 7 0 200 us
+ 230 #define RADIOLIB_SX126X_PA_RAMP_800U 0x05 // 7 0 800 us
+ 231 #define RADIOLIB_SX126X_PA_RAMP_1700U 0x06 // 7 0 1700 us
+ 232 #define RADIOLIB_SX126X_PA_RAMP_3400U 0x07 // 7 0 3400 us
+
+
+ 235 #define RADIOLIB_SX126X_GFSK_FILTER_NONE 0x00 // 7 0 GFSK filter: none
+ 236 #define RADIOLIB_SX126X_GFSK_FILTER_GAUSS_0_3 0x08 // 7 0 Gaussian, BT = 0.3
+ 237 #define RADIOLIB_SX126X_GFSK_FILTER_GAUSS_0_5 0x09 // 7 0 Gaussian, BT = 0.5
+ 238 #define RADIOLIB_SX126X_GFSK_FILTER_GAUSS_0_7 0x0A // 7 0 Gaussian, BT = 0.7
+ 239 #define RADIOLIB_SX126X_GFSK_FILTER_GAUSS_1 0x0B // 7 0 Gaussian, BT = 1
+ 240 #define RADIOLIB_SX126X_GFSK_RX_BW_4_8 0x1F // 7 0 GFSK Rx bandwidth: 4.8 kHz
+ 241 #define RADIOLIB_SX126X_GFSK_RX_BW_5_8 0x17 // 7 0 5.8 kHz
+ 242 #define RADIOLIB_SX126X_GFSK_RX_BW_7_3 0x0F // 7 0 7.3 kHz
+ 243 #define RADIOLIB_SX126X_GFSK_RX_BW_9_7 0x1E // 7 0 9.7 kHz
+ 244 #define RADIOLIB_SX126X_GFSK_RX_BW_11_7 0x16 // 7 0 11.7 kHz
+ 245 #define RADIOLIB_SX126X_GFSK_RX_BW_14_6 0x0E // 7 0 14.6 kHz
+ 246 #define RADIOLIB_SX126X_GFSK_RX_BW_19_5 0x1D // 7 0 19.5 kHz
+ 247 #define RADIOLIB_SX126X_GFSK_RX_BW_23_4 0x15 // 7 0 23.4 kHz
+ 248 #define RADIOLIB_SX126X_GFSK_RX_BW_29_3 0x0D // 7 0 29.3 kHz
+ 249 #define RADIOLIB_SX126X_GFSK_RX_BW_39_0 0x1C // 7 0 39.0 kHz
+ 250 #define RADIOLIB_SX126X_GFSK_RX_BW_46_9 0x14 // 7 0 46.9 kHz
+ 251 #define RADIOLIB_SX126X_GFSK_RX_BW_58_6 0x0C // 7 0 58.6 kHz
+ 252 #define RADIOLIB_SX126X_GFSK_RX_BW_78_2 0x1B // 7 0 78.2 kHz
+ 253 #define RADIOLIB_SX126X_GFSK_RX_BW_93_8 0x13 // 7 0 93.8 kHz
+ 254 #define RADIOLIB_SX126X_GFSK_RX_BW_117_3 0x0B // 7 0 117.3 kHz
+ 255 #define RADIOLIB_SX126X_GFSK_RX_BW_156_2 0x1A // 7 0 156.2 kHz
+ 256 #define RADIOLIB_SX126X_GFSK_RX_BW_187_2 0x12 // 7 0 187.2 kHz
+ 257 #define RADIOLIB_SX126X_GFSK_RX_BW_234_3 0x0A // 7 0 234.3 kHz
+ 258 #define RADIOLIB_SX126X_GFSK_RX_BW_312_0 0x19 // 7 0 312.0 kHz
+ 259 #define RADIOLIB_SX126X_GFSK_RX_BW_373_6 0x11 // 7 0 373.6 kHz
+ 260 #define RADIOLIB_SX126X_GFSK_RX_BW_467_0 0x09 // 7 0 467.0 kHz
+ 261 #define RADIOLIB_SX126X_LORA_BW_7_8 0x00 // 7 0 LoRa bandwidth: 7.8 kHz
+ 262 #define RADIOLIB_SX126X_LORA_BW_10_4 0x08 // 7 0 10.4 kHz
+ 263 #define RADIOLIB_SX126X_LORA_BW_15_6 0x01 // 7 0 15.6 kHz
+ 264 #define RADIOLIB_SX126X_LORA_BW_20_8 0x09 // 7 0 20.8 kHz
+ 265 #define RADIOLIB_SX126X_LORA_BW_31_25 0x02 // 7 0 31.25 kHz
+ 266 #define RADIOLIB_SX126X_LORA_BW_41_7 0x0A // 7 0 41.7 kHz
+ 267 #define RADIOLIB_SX126X_LORA_BW_62_5 0x03 // 7 0 62.5 kHz
+ 268 #define RADIOLIB_SX126X_LORA_BW_125_0 0x04 // 7 0 125.0 kHz
+ 269 #define RADIOLIB_SX126X_LORA_BW_250_0 0x05 // 7 0 250.0 kHz
+ 270 #define RADIOLIB_SX126X_LORA_BW_500_0 0x06 // 7 0 500.0 kHz
+ 271 #define RADIOLIB_SX126X_LORA_CR_4_5 0x01 // 7 0 LoRa coding rate: 4/5
+ 272 #define RADIOLIB_SX126X_LORA_CR_4_6 0x02 // 7 0 4/6
+ 273 #define RADIOLIB_SX126X_LORA_CR_4_7 0x03 // 7 0 4/7
+ 274 #define RADIOLIB_SX126X_LORA_CR_4_8 0x04 // 7 0 4/8
+ 275 #define RADIOLIB_SX126X_LORA_LOW_DATA_RATE_OPTIMIZE_OFF 0x00 // 7 0 LoRa low data rate optimization: disabled
+ 276 #define RADIOLIB_SX126X_LORA_LOW_DATA_RATE_OPTIMIZE_ON 0x01 // 7 0 enabled
+
+
+ 279 #define RADIOLIB_SX126X_GFSK_PREAMBLE_DETECT_OFF 0x00 // 7 0 GFSK minimum preamble length before reception starts: detector disabled
+ 280 #define RADIOLIB_SX126X_GFSK_PREAMBLE_DETECT_8 0x04 // 7 0 8 bits
+ 281 #define RADIOLIB_SX126X_GFSK_PREAMBLE_DETECT_16 0x05 // 7 0 16 bits
+ 282 #define RADIOLIB_SX126X_GFSK_PREAMBLE_DETECT_24 0x06 // 7 0 24 bits
+ 283 #define RADIOLIB_SX126X_GFSK_PREAMBLE_DETECT_32 0x07 // 7 0 32 bits
+ 284 #define RADIOLIB_SX126X_GFSK_ADDRESS_FILT_OFF 0x00 // 7 0 GFSK address filtering: disabled
+ 285 #define RADIOLIB_SX126X_GFSK_ADDRESS_FILT_NODE 0x01 // 7 0 node only
+ 286 #define RADIOLIB_SX126X_GFSK_ADDRESS_FILT_NODE_BROADCAST 0x02 // 7 0 node and broadcast
+ 287 #define RADIOLIB_SX126X_GFSK_PACKET_FIXED 0x00 // 7 0 GFSK packet type: fixed (payload length known in advance to both sides)
+ 288 #define RADIOLIB_SX126X_GFSK_PACKET_VARIABLE 0x01 // 7 0 variable (payload length added to packet)
+ 289 #define RADIOLIB_SX126X_GFSK_CRC_OFF 0x01 // 7 0 GFSK packet CRC: disabled
+ 290 #define RADIOLIB_SX126X_GFSK_CRC_1_BYTE 0x00 // 7 0 1 byte
+ 291 #define RADIOLIB_SX126X_GFSK_CRC_2_BYTE 0x02 // 7 0 2 byte
+ 292 #define RADIOLIB_SX126X_GFSK_CRC_1_BYTE_INV 0x04 // 7 0 1 byte, inverted
+ 293 #define RADIOLIB_SX126X_GFSK_CRC_2_BYTE_INV 0x06 // 7 0 2 byte, inverted
+ 294 #define RADIOLIB_SX126X_GFSK_WHITENING_OFF 0x00 // 7 0 GFSK data whitening: disabled
+ 295 #define RADIOLIB_SX126X_GFSK_WHITENING_ON 0x01 // 7 0 enabled
+ 296 #define RADIOLIB_SX126X_LORA_HEADER_EXPLICIT 0x00 // 7 0 LoRa header mode: explicit
+ 297 #define RADIOLIB_SX126X_LORA_HEADER_IMPLICIT 0x01 // 7 0 implicit
+ 298 #define RADIOLIB_SX126X_LORA_CRC_OFF 0x00 // 7 0 LoRa CRC mode: disabled
+ 299 #define RADIOLIB_SX126X_LORA_CRC_ON 0x01 // 7 0 enabled
+ 300 #define RADIOLIB_SX126X_LORA_IQ_STANDARD 0x00 // 7 0 LoRa IQ setup: standard
+ 301 #define RADIOLIB_SX126X_LORA_IQ_INVERTED 0x01 // 7 0 inverted
+
+
+ 304 #define RADIOLIB_SX126X_CAD_ON_1_SYMB 0x00 // 7 0 number of symbols used for CAD: 1
+ 305 #define RADIOLIB_SX126X_CAD_ON_2_SYMB 0x01 // 7 0 2
+ 306 #define RADIOLIB_SX126X_CAD_ON_4_SYMB 0x02 // 7 0 4
+ 307 #define RADIOLIB_SX126X_CAD_ON_8_SYMB 0x03 // 7 0 8
+ 308 #define RADIOLIB_SX126X_CAD_ON_16_SYMB 0x04 // 7 0 16
+ 309 #define RADIOLIB_SX126X_CAD_GOTO_STDBY 0x00 // 7 0 after CAD is done, always go to STDBY_RC mode
+ 310 #define RADIOLIB_SX126X_CAD_GOTO_RX 0x01 // 7 0 after CAD is done, go to Rx mode if activity is detected
+
+
+ 313 #define RADIOLIB_SX126X_STATUS_MODE_STDBY_RC 0b00100000 // 6 4 current chip mode: STDBY_RC
+ 314 #define RADIOLIB_SX126X_STATUS_MODE_STDBY_XOSC 0b00110000 // 6 4 STDBY_XOSC
+ 315 #define RADIOLIB_SX126X_STATUS_MODE_FS 0b01000000 // 6 4 FS
+ 316 #define RADIOLIB_SX126X_STATUS_MODE_RX 0b01010000 // 6 4 RX
+ 317 #define RADIOLIB_SX126X_STATUS_MODE_TX 0b01100000 // 6 4 TX
+ 318 #define RADIOLIB_SX126X_STATUS_DATA_AVAILABLE 0b00000100 // 3 1 command status: packet received and data can be retrieved
+ 319 #define RADIOLIB_SX126X_STATUS_CMD_TIMEOUT 0b00000110 // 3 1 SPI command timed out
+ 320 #define RADIOLIB_SX126X_STATUS_CMD_INVALID 0b00001000 // 3 1 invalid SPI command
+ 321 #define RADIOLIB_SX126X_STATUS_CMD_FAILED 0b00001010 // 3 1 SPI command failed to execute
+ 322 #define RADIOLIB_SX126X_STATUS_TX_DONE 0b00001100 // 3 1 packet transmission done
+ 323 #define RADIOLIB_SX126X_STATUS_SPI_FAILED 0b11111111 // 7 0 SPI transaction failed
+
+
+ 326 #define RADIOLIB_SX126X_GFSK_RX_STATUS_PREAMBLE_ERR 0b10000000 // 7 7 GFSK Rx status: preamble error
+ 327 #define RADIOLIB_SX126X_GFSK_RX_STATUS_SYNC_ERR 0b01000000 // 6 6 sync word error
+ 328 #define RADIOLIB_SX126X_GFSK_RX_STATUS_ADRS_ERR 0b00100000 // 5 5 address error
+ 329 #define RADIOLIB_SX126X_GFSK_RX_STATUS_CRC_ERR 0b00010000 // 4 4 CRC error
+ 330 #define RADIOLIB_SX126X_GFSK_RX_STATUS_LENGTH_ERR 0b00001000 // 3 3 length error
+ 331 #define RADIOLIB_SX126X_GFSK_RX_STATUS_ABORT_ERR 0b00000100 // 2 2 abort error
+ 332 #define RADIOLIB_SX126X_GFSK_RX_STATUS_PACKET_RECEIVED 0b00000010 // 2 2 packet received
+ 333 #define RADIOLIB_SX126X_GFSK_RX_STATUS_PACKET_SENT 0b00000001 // 2 2 packet sent
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 376 int16_t
begin(uint8_t cr, uint8_t syncWord, uint16_t preambleLength,
float tcxoVoltage,
bool useRegulatorLDO =
false);
-
- 395 int16_t
beginFSK(
float br,
float freqDev,
float rxBw, uint16_t preambleLength,
float tcxoVoltage,
bool useRegulatorLDO =
false);
-
- 405 int16_t
reset(
bool verify =
true);
-
- 419 int16_t
transmit(uint8_t* data,
size_t len, uint8_t addr = 0)
override;
-
- 431 int16_t
receive(uint8_t* data,
size_t len)
override;
-
-
-
-
-
-
-
- 464 int16_t
sleep(
bool retainConfig =
true);
-
-
-
-
-
-
-
-
-
-
-
- 508 int16_t
startTransmit(uint8_t* data,
size_t len, uint8_t addr = 0)
override;
-
- 518 int16_t
startReceive(uint32_t timeout = RADIOLIB_SX126X_RX_TIMEOUT_INF);
-
-
-
-
-
-
+
+ 336 #define RADIOLIB_SX126X_PA_RAMP_ERR 0b100000000 // 8 8 device errors: PA ramping failed
+ 337 #define RADIOLIB_SX126X_PLL_LOCK_ERR 0b001000000 // 6 6 PLL failed to lock
+ 338 #define RADIOLIB_SX126X_XOSC_START_ERR 0b000100000 // 5 5 crystal oscillator failed to start
+ 339 #define RADIOLIB_SX126X_IMG_CALIB_ERR 0b000010000 // 4 4 image calibration failed
+ 340 #define RADIOLIB_SX126X_ADC_CALIB_ERR 0b000001000 // 3 3 ADC calibration failed
+ 341 #define RADIOLIB_SX126X_PLL_CALIB_ERR 0b000000100 // 2 2 PLL calibration failed
+ 342 #define RADIOLIB_SX126X_RC13M_CALIB_ERR 0b000000010 // 1 1 RC13M calibration failed
+ 343 #define RADIOLIB_SX126X_RC64K_CALIB_ERR 0b000000001 // 0 0 RC64K calibration failed
+
+
+
+
+ 348 #define RADIOLIB_SX126X_HOPPING_ENABLED 0b00000001 // 0 0 intra-packet hopping for LR-FHSS: enabled
+ 349 #define RADIOLIB_SX126X_HOPPING_DISABLED 0b00000000 // 0 0 (disabled)
+
+
+ 352 #define RADIOLIB_SX126X_SYNC_WORD_PUBLIC 0x34 // actually 0x3444 NOTE: The low nibbles in each byte (0x_4_4) are masked out since apparently, they're reserved.
+ 353 #define RADIOLIB_SX126X_SYNC_WORD_PRIVATE 0x12 // actually 0x1424 You couldn't make this up if you tried.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 396 int16_t
begin(uint8_t cr, uint8_t syncWord, uint16_t preambleLength,
float tcxoVoltage,
bool useRegulatorLDO =
false);
+
+ 415 int16_t
beginFSK(
float br,
float freqDev,
float rxBw, uint16_t preambleLength,
float tcxoVoltage,
bool useRegulatorLDO =
false);
+
+ 425 int16_t
reset(
bool verify =
true);
+
+ 439 int16_t
transmit(uint8_t* data,
size_t len, uint8_t addr = 0)
override;
+
+ 451 int16_t
receive(uint8_t* data,
size_t len)
override;
+
+
+
+
+
+
+
+ 484 int16_t
sleep(
bool retainConfig =
true);
+
+
+
+
+
+
+
+
+
+
+
+ 528 int16_t
startTransmit(uint8_t* data,
size_t len, uint8_t addr = 0)
override;
+
+ 538 int16_t
startReceive(uint32_t timeout = RADIOLIB_SX126X_RX_TIMEOUT_INF);
+
+
- 562 int16_t
readData(uint8_t* data,
size_t len)
override;
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+ 582 int16_t
readData(uint8_t* data,
size_t len)
override;
+
+
+
+
-
-
- 616 int16_t
setSyncWord(uint8_t syncWord, uint8_t controlBits = 0x44);
+
+
+
+
+
-
+
-
-
-
-
-
-
-
-
-
-
-
+ 636 int16_t
setSyncWord(uint8_t syncWord, uint8_t controlBits = 0x44);
+
+
+
+
+
+
+
+
+
+
- 690 int16_t
setSyncWord(uint8_t* syncWord, uint8_t len);
-
- 701 int16_t
setSyncBits(uint8_t *syncWord, uint8_t bitsLen);
-
-
+
+
+
+
+ 710 int16_t
setSyncWord(uint8_t* syncWord, uint8_t len);
-
-
-
-
- 741 int16_t
setCRC(uint8_t len, uint16_t initial = 0x1D0F, uint16_t polynomial = 0x1021,
bool inverted =
true);
-
- 752 int16_t
setWhitening(
bool enabled, uint16_t initial = 0x0100);
-
- 764 int16_t
setTCXO(
float voltage, uint32_t delay = 5000);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+ 721 int16_t
setSyncBits(uint8_t *syncWord, uint8_t bitsLen);
+
+
+
+
+
+
+
+ 761 int16_t
setCRC(uint8_t len, uint16_t initial = 0x1D0F, uint16_t polynomial = 0x1021,
bool inverted =
true);
+
+ 772 int16_t
setWhitening(
bool enabled, uint16_t initial = 0x0100);
+
+ 784 int16_t
setTCXO(
float voltage, uint32_t delay = 5000);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
- 923 void readBit(RADIOLIB_PIN_TYPE pin);
-
- 925 #if !defined(RADIOLIB_GODMODE)
-
-
-
- 929 int16_t setTx(uint32_t timeout = 0);
- 930 int16_t setRx(uint32_t timeout);
-
- 932 int16_t setPaConfig(uint8_t paDutyCycle, uint8_t deviceSel, uint8_t hpMax = RADIOLIB_SX126X_PA_CONFIG_HP_MAX, uint8_t paLut = RADIOLIB_SX126X_PA_CONFIG_PA_LUT);
- 933 int16_t writeRegister(uint16_t addr, uint8_t* data, uint8_t numBytes);
- 934 int16_t readRegister(uint16_t addr, uint8_t* data, uint8_t numBytes);
- 935 int16_t writeBuffer(uint8_t* data, uint8_t numBytes, uint8_t offset = 0x00);
- 936 int16_t readBuffer(uint8_t* data, uint8_t numBytes);
- 937 int16_t setDioIrqParams(uint16_t irqMask, uint16_t dio1Mask, uint16_t dio2Mask = RADIOLIB_SX126X_IRQ_NONE, uint16_t dio3Mask = RADIOLIB_SX126X_IRQ_NONE);
- 938 int16_t clearIrqStatus(uint16_t clearIrqParams = RADIOLIB_SX126X_IRQ_ALL);
- 939 int16_t setRfFrequency(uint32_t frf);
- 940 int16_t calibrateImage(uint8_t* data);
- 941 uint8_t getPacketType();
- 942 int16_t setTxParams(uint8_t power, uint8_t rampTime = RADIOLIB_SX126X_PA_RAMP_200U);
- 943 int16_t setModulationParams(uint8_t sf, uint8_t bw, uint8_t cr, uint8_t ldro);
- 944 int16_t setModulationParamsFSK(uint32_t br, uint8_t pulseShape, uint8_t rxBw, uint32_t freqDev);
- 945 int16_t setPacketParams(uint16_t preambleLength, uint8_t crcType, uint8_t payloadLength, uint8_t headerType, uint8_t invertIQ = RADIOLIB_SX126X_LORA_IQ_STANDARD);
- 946 int16_t setPacketParamsFSK(uint16_t preambleLength, uint8_t crcType, uint8_t syncWordLength, uint8_t addrComp, uint8_t whitening, uint8_t packetType = RADIOLIB_SX126X_GFSK_PACKET_VARIABLE, uint8_t payloadLength = 0xFF, uint8_t preambleDetectorLength = RADIOLIB_SX126X_GFSK_PREAMBLE_DETECT_16);
- 947 int16_t setBufferBaseAddress(uint8_t txBaseAddress = 0x00, uint8_t rxBaseAddress = 0x00);
- 948 int16_t setRegulatorMode(uint8_t mode);
-
- 950 uint32_t getPacketStatus();
- 951 uint16_t getDeviceErrors();
- 952 int16_t clearDeviceErrors();
-
- 954 int16_t startReceiveCommon(uint32_t timeout = RADIOLIB_SX126X_RX_TIMEOUT_INF);
- 955 int16_t setFrequencyRaw(
float freq);
- 956 int16_t setPacketMode(uint8_t mode, uint8_t len);
- 957 int16_t setHeaderType(uint8_t headerType,
size_t len = 0xFF);
-
-
- 960 int16_t fixSensitivity();
- 961 int16_t fixPaClamping();
- 962 int16_t fixImplicitTimeout();
- 963 int16_t fixInvertedIQ(uint8_t iqConfig);
-
- 965 #if !defined(RADIOLIB_GODMODE) && !defined(RADIOLIB_LOW_LEVEL)
-
-
-
-
-
- 971 int16_t SPIwriteCommand(uint8_t cmd, uint8_t* data, uint8_t numBytes,
bool waitForBusy =
true);
- 972 int16_t SPIwriteCommand(uint8_t* cmd, uint8_t cmdLen, uint8_t* data, uint8_t numBytes,
bool waitForBusy =
true);
- 973 int16_t SPIreadCommand(uint8_t cmd, uint8_t* data, uint8_t numBytes,
bool waitForBusy =
true);
- 974 int16_t SPIreadCommand(uint8_t* cmd, uint8_t cmdLen, uint8_t* data, uint8_t numBytes,
bool waitForBusy =
true);
- 975 int16_t SPItransfer(uint8_t* cmd, uint8_t cmdLen,
bool write, uint8_t* dataOut, uint8_t* dataIn, uint8_t numBytes,
bool waitForBusy, uint32_t timeout = 5000);
-
- 977 #if !defined(RADIOLIB_GODMODE)
-
-
-
- 981 uint8_t _bw = 0, _sf = 0, _cr = 0, _ldro = 0, _crcType = 0, _headerType = 0;
- 982 uint16_t _preambleLength = 0;
-
- 984 bool _ldroAuto =
true;
-
- 986 uint32_t _br = 0, _freqDev = 0;
- 987 uint8_t _rxBw = 0, _pulseShape = 0, _crcTypeFSK = 0, _syncWordLength = 0, _addrComp = 0, _whitening = 0, _packetType = 0;
- 988 uint16_t _preambleLengthFSK = 0;
-
-
-
-
- 993 uint32_t _tcxoDelay = 0;
-
- 995 size_t _implicitLen = 0;
+
+
+
+
+
+
+
+
+
+
+ 943 void readBit(RADIOLIB_PIN_TYPE pin);
+
+ 945 #if !defined(RADIOLIB_GODMODE)
+
+
+
+ 949 int16_t setTx(uint32_t timeout = 0);
+ 950 int16_t setRx(uint32_t timeout);
+
+ 952 int16_t setPaConfig(uint8_t paDutyCycle, uint8_t deviceSel, uint8_t hpMax = RADIOLIB_SX126X_PA_CONFIG_HP_MAX, uint8_t paLut = RADIOLIB_SX126X_PA_CONFIG_PA_LUT);
+ 953 int16_t writeRegister(uint16_t addr, uint8_t* data, uint8_t numBytes);
+ 954 int16_t readRegister(uint16_t addr, uint8_t* data, uint8_t numBytes);
+ 955 int16_t writeBuffer(uint8_t* data, uint8_t numBytes, uint8_t offset = 0x00);
+ 956 int16_t readBuffer(uint8_t* data, uint8_t numBytes);
+ 957 int16_t setDioIrqParams(uint16_t irqMask, uint16_t dio1Mask, uint16_t dio2Mask = RADIOLIB_SX126X_IRQ_NONE, uint16_t dio3Mask = RADIOLIB_SX126X_IRQ_NONE);
+ 958 int16_t clearIrqStatus(uint16_t clearIrqParams = RADIOLIB_SX126X_IRQ_ALL);
+ 959 int16_t setRfFrequency(uint32_t frf);
+ 960 int16_t calibrateImage(uint8_t* data);
+ 961 uint8_t getPacketType();
+ 962 int16_t setTxParams(uint8_t power, uint8_t rampTime = RADIOLIB_SX126X_PA_RAMP_200U);
+ 963 int16_t setModulationParams(uint8_t sf, uint8_t bw, uint8_t cr, uint8_t ldro);
+ 964 int16_t setModulationParamsFSK(uint32_t br, uint8_t pulseShape, uint8_t rxBw, uint32_t freqDev);
+ 965 int16_t setPacketParams(uint16_t preambleLength, uint8_t crcType, uint8_t payloadLength, uint8_t headerType, uint8_t invertIQ = RADIOLIB_SX126X_LORA_IQ_STANDARD);
+ 966 int16_t setPacketParamsFSK(uint16_t preambleLength, uint8_t crcType, uint8_t syncWordLength, uint8_t addrComp, uint8_t whitening, uint8_t packetType = RADIOLIB_SX126X_GFSK_PACKET_VARIABLE, uint8_t payloadLength = 0xFF, uint8_t preambleDetectorLength = RADIOLIB_SX126X_GFSK_PREAMBLE_DETECT_16);
+ 967 int16_t setBufferBaseAddress(uint8_t txBaseAddress = 0x00, uint8_t rxBaseAddress = 0x00);
+ 968 int16_t setRegulatorMode(uint8_t mode);
+
+ 970 uint32_t getPacketStatus();
+ 971 uint16_t getDeviceErrors();
+ 972 int16_t clearDeviceErrors();
+
+ 974 int16_t startReceiveCommon(uint32_t timeout = RADIOLIB_SX126X_RX_TIMEOUT_INF);
+ 975 int16_t setFrequencyRaw(
float freq);
+ 976 int16_t setPacketMode(uint8_t mode, uint8_t len);
+ 977 int16_t setHeaderType(uint8_t headerType,
size_t len = 0xFF);
+
+
+ 980 int16_t fixSensitivity();
+ 981 int16_t fixPaClamping();
+ 982 int16_t fixImplicitTimeout();
+ 983 int16_t fixInvertedIQ(uint8_t iqConfig);
+
+ 985 #if !defined(RADIOLIB_GODMODE) && !defined(RADIOLIB_LOW_LEVEL)
+
+
+
+
+
+ 991 int16_t SPIwriteCommand(uint8_t cmd, uint8_t* data, uint8_t numBytes,
bool waitForBusy =
true);
+ 992 int16_t SPIwriteCommand(uint8_t* cmd, uint8_t cmdLen, uint8_t* data, uint8_t numBytes,
bool waitForBusy =
true);
+ 993 int16_t SPIreadCommand(uint8_t cmd, uint8_t* data, uint8_t numBytes,
bool waitForBusy =
true);
+ 994 int16_t SPIreadCommand(uint8_t* cmd, uint8_t cmdLen, uint8_t* data, uint8_t numBytes,
bool waitForBusy =
true);
+ 995 int16_t SPItransfer(uint8_t* cmd, uint8_t cmdLen,
bool write, uint8_t* dataOut, uint8_t* dataIn, uint8_t numBytes,
bool waitForBusy, uint32_t timeout = 5000);
- 997 int16_t config(uint8_t modem);
-
-
-
-
-
+ 997 #if !defined(RADIOLIB_GODMODE)
+
+
+
+ 1001 uint8_t _bw = 0, _sf = 0, _cr = 0, _ldro = 0, _crcType = 0, _headerType = 0;
+ 1002 uint16_t _preambleLength = 0;
+
+ 1004 bool _ldroAuto =
true;
+
+ 1006 uint32_t _br = 0, _freqDev = 0;
+ 1007 uint8_t _rxBw = 0, _pulseShape = 0, _crcTypeFSK = 0, _syncWordLength = 0, _addrComp = 0, _whitening = 0, _packetType = 0;
+ 1008 uint16_t _preambleLengthFSK = 0;
+
+
+ 1011 float _dataRate = 0;
+
+ 1013 uint32_t _tcxoDelay = 0;
+
+ 1015 size_t _implicitLen = 0;
+
+ 1017 int16_t config(uint8_t modem);
+
+
+
+
+