diff --git a/_s_x1281_8h_source.html b/_s_x1281_8h_source.html
index 4d03b86c..de41ea7e 100644
--- a/_s_x1281_8h_source.html
+++ b/_s_x1281_8h_source.html
@@ -112,7 +112,7 @@ $(document).ready(function(){initNavTree('_s_x1281_8h_source.html',''); initResi
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:65
Derived class for SX1281 modules.
Definition: SX1281.h:15
SX1281(Module *mod)
Default constructor.
Definition: SX1281.cpp:4
-Base class for SX128x series. All derived classes for SX128x (e.g. SX1280 or SX1281) inherit from thi...
Definition: SX128x.h:350
+Base class for SX128x series. All derived classes for SX128x (e.g. SX1280 or SX1281) inherit from thi...
Definition: SX128x.h:351
diff --git a/_s_x128x_8h_source.html b/_s_x128x_8h_source.html
index ed8f0370..c29b1ea8 100644
--- a/_s_x128x_8h_source.html
+++ b/_s_x128x_8h_source.html
@@ -110,541 +110,542 @@ $(document).ready(function(){initNavTree('_s_x128x_8h_source.html',''); initResi
22 #define RADIOLIB_SX128X_CMD_READ_REGISTER 0x19
23 #define RADIOLIB_SX128X_CMD_WRITE_BUFFER 0x1A
24 #define RADIOLIB_SX128X_CMD_READ_BUFFER 0x1B
- 25 #define RADIOLIB_SX128X_CMD_SET_SLEEP 0x84
- 26 #define RADIOLIB_SX128X_CMD_SET_STANDBY 0x80
- 27 #define RADIOLIB_SX128X_CMD_SET_FS 0xC1
- 28 #define RADIOLIB_SX128X_CMD_SET_TX 0x83
- 29 #define RADIOLIB_SX128X_CMD_SET_RX 0x82
- 30 #define RADIOLIB_SX128X_CMD_SET_RX_DUTY_CYCLE 0x94
- 31 #define RADIOLIB_SX128X_CMD_SET_CAD 0xC5
- 32 #define RADIOLIB_SX128X_CMD_SET_TX_CONTINUOUS_WAVE 0xD1
- 33 #define RADIOLIB_SX128X_CMD_SET_TX_CONTINUOUS_PREAMBLE 0xD2
- 34 #define RADIOLIB_SX128X_CMD_SET_PACKET_TYPE 0x8A
- 35 #define RADIOLIB_SX128X_CMD_GET_PACKET_TYPE 0x03
- 36 #define RADIOLIB_SX128X_CMD_SET_RF_FREQUENCY 0x86
- 37 #define RADIOLIB_SX128X_CMD_SET_TX_PARAMS 0x8E
- 38 #define RADIOLIB_SX128X_CMD_SET_CAD_PARAMS 0x88
- 39 #define RADIOLIB_SX128X_CMD_SET_BUFFER_BASE_ADDRESS 0x8F
- 40 #define RADIOLIB_SX128X_CMD_SET_MODULATION_PARAMS 0x8B
- 41 #define RADIOLIB_SX128X_CMD_SET_PACKET_PARAMS 0x8C
- 42 #define RADIOLIB_SX128X_CMD_GET_RX_BUFFER_STATUS 0x17
- 43 #define RADIOLIB_SX128X_CMD_GET_PACKET_STATUS 0x1D
- 44 #define RADIOLIB_SX128X_CMD_GET_RSSI_INST 0x1F
- 45 #define RADIOLIB_SX128X_CMD_SET_DIO_IRQ_PARAMS 0x8D
- 46 #define RADIOLIB_SX128X_CMD_GET_IRQ_STATUS 0x15
- 47 #define RADIOLIB_SX128X_CMD_CLEAR_IRQ_STATUS 0x97
- 48 #define RADIOLIB_SX128X_CMD_SET_REGULATOR_MODE 0x96
- 49 #define RADIOLIB_SX128X_CMD_SET_SAVE_CONTEXT 0xD5
- 50 #define RADIOLIB_SX128X_CMD_SET_AUTO_TX 0x98
- 51 #define RADIOLIB_SX128X_CMD_SET_AUTO_FS 0x9E
- 52 #define RADIOLIB_SX128X_CMD_SET_PERF_COUNTER_MODE 0x9C
- 53 #define RADIOLIB_SX128X_CMD_SET_LONG_PREAMBLE 0x9B
- 54 #define RADIOLIB_SX128X_CMD_SET_UART_SPEED 0x9D
- 55 #define RADIOLIB_SX128X_CMD_SET_RANGING_ROLE 0xA3
- 56 #define RADIOLIB_SX128X_CMD_SET_ADVANCED_RANGING 0x9A
-
-
- 59 #define RADIOLIB_SX128X_REG_GAIN_MODE 0x0891
- 60 #define RADIOLIB_SX128X_REG_MANUAL_GAIN_CONTROL_ENABLE_2 0x0895
- 61 #define RADIOLIB_SX128X_REG_MANUAL_GAIN_SETTING 0x089E
- 62 #define RADIOLIB_SX128X_REG_MANUAL_GAIN_CONTROL_ENABLE_1 0x089F
- 63 #define RADIOLIB_SX128X_REG_SYNCH_PEAK_ATTENUATION 0x08C2
- 64 #define RADIOLIB_SX128X_REG_LORA_FIXED_PAYLOAD_LENGTH 0x0901
- 65 #define RADIOLIB_SX128X_REG_LORA_HEADER_MODE 0x0903
- 66 #define RADIOLIB_SX128X_REG_MASTER_RANGING_ADDRESS_BYTE_3 0x0912
- 67 #define RADIOLIB_SX128X_REG_MASTER_RANGING_ADDRESS_BYTE_2 0x0913
- 68 #define RADIOLIB_SX128X_REG_MASTER_RANGING_ADDRESS_BYTE_1 0x0914
- 69 #define RADIOLIB_SX128X_REG_MASTER_RANGING_ADDRESS_BYTE_0 0x0915
- 70 #define RADIOLIB_SX128X_REG_SLAVE_RANGING_ADDRESS_BYTE_3 0x0916
- 71 #define RADIOLIB_SX128X_REG_SLAVE_RANGING_ADDRESS_BYTE_2 0x0917
- 72 #define RADIOLIB_SX128X_REG_SLAVE_RANGING_ADDRESS_BYTE_1 0x0918
- 73 #define RADIOLIB_SX128X_REG_SLAVE_RANGING_ADDRESS_BYTE_0 0x0919
- 74 #define RADIOLIB_SX128X_REG_RANGING_FILTER_WINDOW_SIZE 0x091E
- 75 #define RADIOLIB_SX128X_REG_RANGING_FILTER_RESET 0x0923
- 76 #define RADIOLIB_SX128X_REG_RANGING_TYPE 0x0924
- 77 #define RADIOLIB_SX128X_REG_LORA_SF_CONFIG 0x0925
- 78 #define RADIOLIB_SX128X_REG_RANGING_ADDRESS_SWITCH 0x0927
- 79 #define RADIOLIB_SX128X_REG_RANGING_CALIBRATION_BYTE_2 0x092B
- 80 #define RADIOLIB_SX128X_REG_RANGING_CALIBRATION_MSB 0x092C
- 81 #define RADIOLIB_SX128X_REG_RANGING_CALIBRATION_LSB 0x092D
- 82 #define RADIOLIB_SX128X_REG_SLAVE_RANGING_ADDRESS_WIDTH 0x0931
- 83 #define RADIOLIB_SX128X_REG_FREQ_ERROR_CORRECTION 0x093C
- 84 #define RADIOLIB_SX128X_REG_LORA_SYNC_WORD_MSB 0x0944
- 85 #define RADIOLIB_SX128X_REG_LORA_SYNC_WORD_LSB 0x0945
- 86 #define RADIOLIB_SX128X_REG_RANGING_FILTER_RSSI_OFFSET 0x0953
- 87 #define RADIOLIB_SX128X_REG_FEI_MSB 0x0954
- 88 #define RADIOLIB_SX128X_REG_FEI_MID 0x0955
- 89 #define RADIOLIB_SX128X_REG_FEI_LSB 0x0956
- 90 #define RADIOLIB_SX128X_REG_RANGING_ADDRESS_MSB 0x095F
- 91 #define RADIOLIB_SX128X_REG_RANGING_ADDRESS_LSB 0x0960
- 92 #define RADIOLIB_SX128X_REG_RANGING_RESULT_MSB 0x0961
- 93 #define RADIOLIB_SX128X_REG_RANGING_RESULT_MID 0x0962
- 94 #define RADIOLIB_SX128X_REG_RANGING_RESULT_LSB 0x0963
- 95 #define RADIOLIB_SX128X_REG_RANGING_RSSI 0x0964
- 96 #define RADIOLIB_SX128X_REG_RANGING_LORA_CLOCK_ENABLE 0x097F
- 97 #define RADIOLIB_SX128X_REG_PACKET_PREAMBLE_SETTINGS 0x09C1
- 98 #define RADIOLIB_SX128X_REG_WHITENING_INITIAL_VALUE 0x09C5
- 99 #define RADIOLIB_SX128X_REG_CRC_POLYNOMIAL_MSB 0x09C6
- 100 #define RADIOLIB_SX128X_REG_CRC_POLYNOMIAL_LSB 0x09C7
- 101 #define RADIOLIB_SX128X_REG_CRC_INITIAL_MSB 0x09C8
- 102 #define RADIOLIB_SX128X_REG_CRC_INITIAL_LSB 0x09C9
- 103 #define RADIOLIB_SX128X_REG_BLE_CRC_INITIAL_MSB 0x09C7
- 104 #define RADIOLIB_SX128X_REG_BLE_CRC_INITIAL_MID (RADIOLIB_SX128X_REG_CRC_INITIAL_MSB)
- 105 #define RADIOLIB_SX128X_REG_BLE_CRC_INITIAL_LSB (RADIOLIB_SX128X_REG_CRC_INITIAL_LSB)
- 106 #define RADIOLIB_SX128X_REG_SYNCH_ADDRESS_CONTROL 0x09CD
- 107 #define RADIOLIB_SX128X_REG_SYNC_WORD_1_BYTE_4 0x09CE
- 108 #define RADIOLIB_SX128X_REG_SYNC_WORD_1_BYTE_3 0x09CF
- 109 #define RADIOLIB_SX128X_REG_SYNC_WORD_1_BYTE_2 0x09D0
- 110 #define RADIOLIB_SX128X_REG_SYNC_WORD_1_BYTE_1 0x09D1
- 111 #define RADIOLIB_SX128X_REG_SYNC_WORD_1_BYTE_0 0x09D2
- 112 #define RADIOLIB_SX128X_REG_SYNC_WORD_2_BYTE_4 0x09D3
- 113 #define RADIOLIB_SX128X_REG_SYNC_WORD_2_BYTE_3 0x09D4
- 114 #define RADIOLIB_SX128X_REG_SYNC_WORD_2_BYTE_2 0x09D5
- 115 #define RADIOLIB_SX128X_REG_SYNC_WORD_2_BYTE_1 0x09D6
- 116 #define RADIOLIB_SX128X_REG_SYNC_WORD_2_BYTE_0 0x09D7
- 117 #define RADIOLIB_SX128X_REG_SYNC_WORD_3_BYTE_4 0x09D8
- 118 #define RADIOLIB_SX128X_REG_SYNC_WORD_3_BYTE_3 0x09D9
- 119 #define RADIOLIB_SX128X_REG_SYNC_WORD_3_BYTE_2 0x09DA
- 120 #define RADIOLIB_SX128X_REG_SYNC_WORD_3_BYTE_1 0x09DB
- 121 #define RADIOLIB_SX128X_REG_SYNC_WORD_3_BYTE_0 0x09DC
- 122 #define RADIOLIB_SX128X_REG_ACCESS_ADDRESS_BYTE_3 (RADIOLIB_SX128X_REG_SYNC_WORD_1_BYTE_3)
- 123 #define RADIOLIB_SX128X_REG_ACCESS_ADDRESS_BYTE_2 (RADIOLIB_SX128X_REG_SYNC_WORD_1_BYTE_2)
- 124 #define RADIOLIB_SX128X_REG_ACCESS_ADDRESS_BYTE_1 (RADIOLIB_SX128X_REG_SYNC_WORD_1_BYTE_1)
- 125 #define RADIOLIB_SX128X_REG_ACCESS_ADDRESS_BYTE_0 (RADIOLIB_SX128X_REG_SYNC_WORD_1_BYTE_0)
-
-
-
- 129 #define RADIOLIB_SX128X_STATUS_MODE_STDBY_RC 0b01000000
- 130 #define RADIOLIB_SX128X_STATUS_MODE_STDBY_XOSC 0b01100000
- 131 #define RADIOLIB_SX128X_STATUS_MODE_FS 0b10000000
- 132 #define RADIOLIB_SX128X_STATUS_MODE_RX 0b10100000
- 133 #define RADIOLIB_SX128X_STATUS_MODE_TX 0b11000000
- 134 #define RADIOLIB_SX128X_STATUS_CMD_PROCESSED 0b00000100
- 135 #define RADIOLIB_SX128X_STATUS_DATA_AVAILABLE 0b00001000
- 136 #define RADIOLIB_SX128X_STATUS_CMD_TIMEOUT 0b00001100
- 137 #define RADIOLIB_SX128X_STATUS_CMD_ERROR 0b00010000
- 138 #define RADIOLIB_SX128X_STATUS_CMD_FAILED 0b00010100
- 139 #define RADIOLIB_SX128X_STATUS_TX_DONE 0b00011000
- 140 #define RADIOLIB_SX128X_STATUS_BUSY 0b00000001
- 141 #define RADIOLIB_SX128X_STATUS_SPI_FAILED 0b11111111
-
-
- 144 #define RADIOLIB_SX128X_SLEEP_DATA_BUFFER_FLUSH 0b00000000
- 145 #define RADIOLIB_SX128X_SLEEP_DATA_BUFFER_RETAIN 0b00000010
- 146 #define RADIOLIB_SX128X_SLEEP_DATA_RAM_FLUSH 0b00000000
- 147 #define RADIOLIB_SX128X_SLEEP_DATA_RAM_RETAIN 0b00000001
-
-
- 150 #define RADIOLIB_SX128X_STANDBY_RC 0x00
- 151 #define RADIOLIB_SX128X_STANDBY_XOSC 0x01
-
-
- 154 #define RADIOLIB_SX128X_PERIOD_BASE_15_625_US 0x00
- 155 #define RADIOLIB_SX128X_PERIOD_BASE_62_5_US 0x01
- 156 #define RADIOLIB_SX128X_PERIOD_BASE_1_MS 0x02
- 157 #define RADIOLIB_SX128X_PERIOD_BASE_4_MS 0x03
-
-
- 160 #define RADIOLIB_SX128X_TX_TIMEOUT_NONE 0x0000
-
-
- 163 #define RADIOLIB_SX128X_RX_TIMEOUT_NONE 0x0000
- 164 #define RADIOLIB_SX128X_RX_TIMEOUT_INF 0xFFFF
-
-
- 167 #define RADIOLIB_SX128X_PACKET_TYPE_GFSK 0x00
- 168 #define RADIOLIB_SX128X_PACKET_TYPE_LORA 0x01
- 169 #define RADIOLIB_SX128X_PACKET_TYPE_RANGING 0x02
- 170 #define RADIOLIB_SX128X_PACKET_TYPE_FLRC 0x03
- 171 #define RADIOLIB_SX128X_PACKET_TYPE_BLE 0x04
-
-
- 174 #define RADIOLIB_SX128X_PA_RAMP_02_US 0x00
- 175 #define RADIOLIB_SX128X_PA_RAMP_04_US 0x20
- 176 #define RADIOLIB_SX128X_PA_RAMP_06_US 0x40
- 177 #define RADIOLIB_SX128X_PA_RAMP_08_US 0x60
- 178 #define RADIOLIB_SX128X_PA_RAMP_10_US 0x80
- 179 #define RADIOLIB_SX128X_PA_RAMP_12_US 0xA0
- 180 #define RADIOLIB_SX128X_PA_RAMP_16_US 0xC0
- 181 #define RADIOLIB_SX128X_PA_RAMP_20_US 0xE0
-
-
- 184 #define RADIOLIB_SX128X_CAD_ON_1_SYMB 0x00
- 185 #define RADIOLIB_SX128X_CAD_ON_2_SYMB 0x20
- 186 #define RADIOLIB_SX128X_CAD_ON_4_SYMB 0x40
- 187 #define RADIOLIB_SX128X_CAD_ON_8_SYMB 0x60
- 188 #define RADIOLIB_SX128X_CAD_ON_16_SYMB 0x80
- 189 #define RADIOLIB_SX128X_CAD_PARAM_DEFAULT RADIOLIB_SX128X_CAD_ON_8_SYMB
-
-
- 192 #define RADIOLIB_SX128X_BLE_GFSK_BR_2_000_BW_2_4 0x04
- 193 #define RADIOLIB_SX128X_BLE_GFSK_BR_1_600_BW_2_4 0x28
- 194 #define RADIOLIB_SX128X_BLE_GFSK_BR_1_000_BW_2_4 0x4C
- 195 #define RADIOLIB_SX128X_BLE_GFSK_BR_1_000_BW_1_2 0x45
- 196 #define RADIOLIB_SX128X_BLE_GFSK_BR_0_800_BW_2_4 0x70
- 197 #define RADIOLIB_SX128X_BLE_GFSK_BR_0_800_BW_1_2 0x69
- 198 #define RADIOLIB_SX128X_BLE_GFSK_BR_0_500_BW_1_2 0x8D
- 199 #define RADIOLIB_SX128X_BLE_GFSK_BR_0_500_BW_0_6 0x86
- 200 #define RADIOLIB_SX128X_BLE_GFSK_BR_0_400_BW_1_2 0xB1
- 201 #define RADIOLIB_SX128X_BLE_GFSK_BR_0_400_BW_0_6 0xAA
- 202 #define RADIOLIB_SX128X_BLE_GFSK_BR_0_250_BW_0_6 0xCE
- 203 #define RADIOLIB_SX128X_BLE_GFSK_BR_0_250_BW_0_3 0xC7
- 204 #define RADIOLIB_SX128X_BLE_GFSK_BR_0_125_BW_0_3 0xEF
- 205 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_0_35 0x00
- 206 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_0_50 0x01
- 207 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_0_75 0x02
- 208 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_1_00 0x03
- 209 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_1_25 0x04
- 210 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_1_50 0x05
- 211 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_1_75 0x06
- 212 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_2_00 0x07
- 213 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_2_25 0x08
- 214 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_2_50 0x09
- 215 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_2_75 0x0A
- 216 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_3_00 0x0B
- 217 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_3_25 0x0C
- 218 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_3_50 0x0D
- 219 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_3_75 0x0E
- 220 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_4_00 0x0F
- 221 #define RADIOLIB_SX128X_BLE_GFSK_BT_OFF 0x00
- 222 #define RADIOLIB_SX128X_BLE_GFSK_BT_1_0 0x10
- 223 #define RADIOLIB_SX128X_BLE_GFSK_BT_0_5 0x20
- 224 #define RADIOLIB_SX128X_FLRC_BR_1_300_BW_1_2 0x45
- 225 #define RADIOLIB_SX128X_FLRC_BR_1_000_BW_1_2 0x69
- 226 #define RADIOLIB_SX128X_FLRC_BR_0_650_BW_0_6 0x86
- 227 #define RADIOLIB_SX128X_FLRC_BR_0_520_BW_0_6 0xAA
- 228 #define RADIOLIB_SX128X_FLRC_BR_0_325_BW_0_3 0xC7
- 229 #define RADIOLIB_SX128X_FLRC_BR_0_260_BW_0_3 0xEB
- 230 #define RADIOLIB_SX128X_FLRC_CR_1_2 0x00
- 231 #define RADIOLIB_SX128X_FLRC_CR_3_4 0x02
- 232 #define RADIOLIB_SX128X_FLRC_CR_1_0 0x04
- 233 #define RADIOLIB_SX128X_FLRC_BT_OFF 0x00
- 234 #define RADIOLIB_SX128X_FLRC_BT_1_0 0x10
- 235 #define RADIOLIB_SX128X_FLRC_BT_0_5 0x20
- 236 #define RADIOLIB_SX128X_LORA_SF_5 0x50
- 237 #define RADIOLIB_SX128X_LORA_SF_6 0x60
- 238 #define RADIOLIB_SX128X_LORA_SF_7 0x70
- 239 #define RADIOLIB_SX128X_LORA_SF_8 0x80
- 240 #define RADIOLIB_SX128X_LORA_SF_9 0x90
- 241 #define RADIOLIB_SX128X_LORA_SF_10 0xA0
- 242 #define RADIOLIB_SX128X_LORA_SF_11 0xB0
- 243 #define RADIOLIB_SX128X_LORA_SF_12 0xC0
- 244 #define RADIOLIB_SX128X_LORA_BW_1625_00 0x0A
- 245 #define RADIOLIB_SX128X_LORA_BW_812_50 0x18
- 246 #define RADIOLIB_SX128X_LORA_BW_406_25 0x26
- 247 #define RADIOLIB_SX128X_LORA_BW_203_125 0x34
- 248 #define RADIOLIB_SX128X_LORA_CR_4_5 0x01
- 249 #define RADIOLIB_SX128X_LORA_CR_4_6 0x02
- 250 #define RADIOLIB_SX128X_LORA_CR_4_7 0x03
- 251 #define RADIOLIB_SX128X_LORA_CR_4_8 0x04
- 252 #define RADIOLIB_SX128X_LORA_CR_4_5_LI 0x05
- 253 #define RADIOLIB_SX128X_LORA_CR_4_6_LI 0x06
- 254 #define RADIOLIB_SX128X_LORA_CR_4_7_LI 0x07
-
-
- 257 #define RADIOLIB_SX128X_GFSK_FLRC_SYNC_WORD_OFF 0x00
- 258 #define RADIOLIB_SX128X_GFSK_FLRC_SYNC_WORD_1 0x10
- 259 #define RADIOLIB_SX128X_GFSK_FLRC_SYNC_WORD_2 0x20
- 260 #define RADIOLIB_SX128X_GFSK_FLRC_SYNC_WORD_1_2 0x30
- 261 #define RADIOLIB_SX128X_GFSK_FLRC_SYNC_WORD_3 0x40
- 262 #define RADIOLIB_SX128X_GFSK_FLRC_SYNC_WORD_1_3 0x50
- 263 #define RADIOLIB_SX128X_GFSK_FLRC_SYNC_WORD_2_3 0x60
- 264 #define RADIOLIB_SX128X_GFSK_FLRC_SYNC_WORD_1_2_3 0x70
- 265 #define RADIOLIB_SX128X_GFSK_FLRC_PACKET_FIXED 0x00
- 266 #define RADIOLIB_SX128X_GFSK_FLRC_PACKET_VARIABLE 0x20
- 267 #define RADIOLIB_SX128X_GFSK_FLRC_CRC_OFF 0x00
- 268 #define RADIOLIB_SX128X_GFSK_FLRC_CRC_1_BYTE 0x10
- 269 #define RADIOLIB_SX128X_GFSK_FLRC_CRC_2_BYTE 0x20
- 270 #define RADIOLIB_SX128X_GFSK_FLRC_CRC_3_BYTE 0x30
- 271 #define RADIOLIB_SX128X_GFSK_BLE_WHITENING_ON 0x00
- 272 #define RADIOLIB_SX128X_GFSK_BLE_WHITENING_OFF 0x08
- 273 #define RADIOLIB_SX128X_BLE_PAYLOAD_LENGTH_MAX_31 0x00
- 274 #define RADIOLIB_SX128X_BLE_PAYLOAD_LENGTH_MAX_37 0x20
- 275 #define RADIOLIB_SX128X_BLE_PAYLOAD_LENGTH_TEST 0x40
- 276 #define RADIOLIB_SX128X_BLE_PAYLOAD_LENGTH_MAX_255 0x80
- 277 #define RADIOLIB_SX128X_BLE_CRC_OFF 0x00
- 278 #define RADIOLIB_SX128X_BLE_CRC_3_BYTE 0x10
- 279 #define RADIOLIB_SX128X_BLE_PRBS_9 0x00
- 280 #define RADIOLIB_SX128X_BLE_EYELONG 0x04
- 281 #define RADIOLIB_SX128X_BLE_EYESHORT 0x08
- 282 #define RADIOLIB_SX128X_BLE_PRBS_15 0x0C
- 283 #define RADIOLIB_SX128X_BLE_ALL_1 0x10
- 284 #define RADIOLIB_SX128X_BLE_ALL_0 0x14
- 285 #define RADIOLIB_SX128X_BLE_EYELONG_INV 0x18
- 286 #define RADIOLIB_SX128X_BLE_EYESHORT_INV 0x1C
- 287 #define RADIOLIB_SX128X_FLRC_SYNC_WORD_OFF 0x00
- 288 #define RADIOLIB_SX128X_FLRC_SYNC_WORD_ON 0x04
- 289 #define RADIOLIB_SX128X_LORA_HEADER_EXPLICIT 0x00
- 290 #define RADIOLIB_SX128X_LORA_HEADER_IMPLICIT 0x80
- 291 #define RADIOLIB_SX128X_LORA_CRC_OFF 0x00
- 292 #define RADIOLIB_SX128X_LORA_CRC_ON 0x20
- 293 #define RADIOLIB_SX128X_LORA_IQ_STANDARD 0x40
- 294 #define RADIOLIB_SX128X_LORA_IQ_INVERTED 0x00
-
-
- 297 #define RADIOLIB_SX128X_PACKET_STATUS_SYNC_ERROR 0b01000000
- 298 #define RADIOLIB_SX128X_PACKET_STATUS_LENGTH_ERROR 0b00100000
- 299 #define RADIOLIB_SX128X_PACKET_STATUS_CRC_ERROR 0b00010000
- 300 #define RADIOLIB_SX128X_PACKET_STATUS_ABORT_ERROR 0b00001000
- 301 #define RADIOLIB_SX128X_PACKET_STATUS_HEADER_RECEIVED 0b00000100
- 302 #define RADIOLIB_SX128X_PACKET_STATUS_PACKET_RECEIVED 0b00000010
- 303 #define RADIOLIB_SX128X_PACKET_STATUS_PACKET_CTRL_BUSY 0b00000001
- 304 #define RADIOLIB_SX128X_PACKET_STATUS_RX_PID 0b11000000
- 305 #define RADIOLIB_SX128X_PACKET_STATUS_NO_ACK 0b00100000
- 306 #define RADIOLIB_SX128X_PACKET_STATUS_RX_PID_ERROR 0b00010000
- 307 #define RADIOLIB_SX128X_PACKET_STATUS_PACKET_SENT 0b00000001
- 308 #define RADIOLIB_SX128X_PACKET_STATUS_SYNC_DET_ERROR 0b00000000
- 309 #define RADIOLIB_SX128X_PACKET_STATUS_SYNC_DET_1 0b00000001
- 310 #define RADIOLIB_SX128X_PACKET_STATUS_SYNC_DET_2 0b00000010
- 311 #define RADIOLIB_SX128X_PACKET_STATUS_SYNC_DET_3 0b00000100
-
-
- 314 #define RADIOLIB_SX128X_IRQ_PREAMBLE_DETECTED 0x8000
- 315 #define RADIOLIB_SX128X_IRQ_ADVANCED_RANGING_DONE 0x8000
- 316 #define RADIOLIB_SX128X_IRQ_RX_TX_TIMEOUT 0x4000
- 317 #define RADIOLIB_SX128X_IRQ_CAD_DETECTED 0x2000
- 318 #define RADIOLIB_SX128X_IRQ_CAD_DONE 0x1000
- 319 #define RADIOLIB_SX128X_IRQ_RANGING_SLAVE_REQ_VALID 0x0800
- 320 #define RADIOLIB_SX128X_IRQ_RANGING_MASTER_TIMEOUT 0x0400
- 321 #define RADIOLIB_SX128X_IRQ_RANGING_MASTER_RES_VALID 0x0200
- 322 #define RADIOLIB_SX128X_IRQ_RANGING_SLAVE_REQ_DISCARD 0x0100
- 323 #define RADIOLIB_SX128X_IRQ_RANGING_SLAVE_RESP_DONE 0x0080
- 324 #define RADIOLIB_SX128X_IRQ_CRC_ERROR 0x0040
- 325 #define RADIOLIB_SX128X_IRQ_HEADER_ERROR 0x0020
- 326 #define RADIOLIB_SX128X_IRQ_HEADER_VALID 0x0010
- 327 #define RADIOLIB_SX128X_IRQ_SYNC_WORD_ERROR 0x0008
- 328 #define RADIOLIB_SX128X_IRQ_SYNC_WORD_VALID 0x0004
- 329 #define RADIOLIB_SX128X_IRQ_RX_DONE 0x0002
- 330 #define RADIOLIB_SX128X_IRQ_TX_DONE 0x0001
- 331 #define RADIOLIB_SX128X_IRQ_NONE 0x0000
- 332 #define RADIOLIB_SX128X_IRQ_ALL 0xFFFF
-
-
- 335 #define RADIOLIB_SX128X_REGULATOR_LDO 0x00
- 336 #define RADIOLIB_SX128X_REGULATOR_DC_DC 0x01
-
-
- 339 #define RADIOLIB_SX128X_RANGING_ROLE_MASTER 0x01
- 340 #define RADIOLIB_SX128X_RANGING_ROLE_SLAVE 0x00
-
-
- 343 #define RADIOLIB_SX128X_SYNC_WORD_PRIVATE 0x12
-
-
-
-
-
-
-
-
-
-
-
-
-
- 377 int16_t
begin(
float freq = 2400.0,
float bw = 812.5, uint8_t sf = 9, uint8_t cr = 7, uint8_t syncWord = RADIOLIB_SX128X_SYNC_WORD_PRIVATE, int8_t pwr = 10, uint16_t preambleLength = 12);
-
- 388 int16_t
beginGFSK(
float freq = 2400.0, uint16_t br = 800,
float freqDev = 400.0, int8_t pwr = 10, uint16_t preambleLength = 16);
-
- 399 int16_t
beginBLE(
float freq = 2400.0, uint16_t br = 800,
float freqDev = 400.0, int8_t pwr = 10, uint8_t dataShaping =
RADIOLIB_SHAPING_0_5);
-
- 411 int16_t
beginFLRC(
float freq = 2400.0, uint16_t br = 650, uint8_t cr = 3, int8_t pwr = 10, uint16_t preambleLength = 16, uint8_t dataShaping =
RADIOLIB_SHAPING_0_5);
-
- 419 int16_t
reset(
bool verify =
true);
-
- 429 int16_t
transmit(
const uint8_t* data,
size_t len, uint8_t addr = 0)
override;
-
- 438 int16_t
receive(uint8_t* data,
size_t len)
override;
-
-
-
-
-
-
-
-
-
- 472 int16_t
sleep()
override;
-
- 480 int16_t
sleep(
bool retainConfig);
-
-
-
- 495 int16_t
standby(uint8_t mode,
bool wakeup =
false);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 540 int16_t
startTransmit(
const uint8_t* data,
size_t len, uint8_t addr = 0)
override;
-
-
-
-
-
-
-
-
-
- 584 int16_t
readData(uint8_t* data,
size_t len)
override;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 657 int16_t
setCodingRate(uint8_t cr,
bool longInterleaving =
false);
-
-
-
-
-
-
-
-
-
-
-
-
-
- 711 int16_t
setSyncWord(
const uint8_t* syncWord, uint8_t len);
-
- 719 int16_t
setSyncWord(uint8_t syncWord, uint8_t controlBits = 0x44);
-
- 728 int16_t
setCRC(uint8_t len, uint32_t initial = 0x1D0F, uint16_t polynomial = 0x1021);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- 842 int16_t
invertIQ(
bool enable)
override;
-
- 844 #if !RADIOLIB_EXCLUDE_DIRECT_RECEIVE
-
-
- 855 void readBit(uint32_t pin)
override;
-
-
- 858 #if !RADIOLIB_GODMODE && !RADIOLIB_LOW_LEVEL
-
-
- 861 Module* getMod()
override;
-
-
- 864 float bandwidthKhz = 0;
- 865 uint8_t bandwidth = 0, spreadingFactor = 0, codingRateLoRa = 0;
- 866 uint8_t preambleLengthLoRa = 0, headerType = 0, payloadLen = 0, crcLoRa = 0;
-
-
-
- 870 int16_t writeRegister(uint16_t addr, uint8_t* data, uint8_t numBytes);
- 871 int16_t readRegister(uint16_t addr, uint8_t* data, uint8_t numBytes);
- 872 int16_t writeBuffer(uint8_t* data, uint8_t numBytes, uint8_t offset = 0x00);
- 873 int16_t readBuffer(uint8_t* data, uint8_t numBytes, uint8_t offset = 0x00);
- 874 int16_t setTx(uint16_t periodBaseCount = RADIOLIB_SX128X_TX_TIMEOUT_NONE, uint8_t periodBase = RADIOLIB_SX128X_PERIOD_BASE_15_625_US);
- 875 int16_t setRx(uint16_t periodBaseCount, uint8_t periodBase = RADIOLIB_SX128X_PERIOD_BASE_15_625_US);
- 876 int16_t setCad(uint8_t symbolNum);
- 877 uint8_t getPacketType();
- 878 int16_t setRfFrequency(uint32_t frf);
- 879 int16_t setTxParams(uint8_t pwr, uint8_t rampTime = RADIOLIB_SX128X_PA_RAMP_10_US);
- 880 int16_t setBufferBaseAddress(uint8_t txBaseAddress = 0x00, uint8_t rxBaseAddress = 0x00);
- 881 int16_t setModulationParams(uint8_t modParam1, uint8_t modParam2, uint8_t modParam3);
- 882 int16_t setPacketParamsGFSK(uint8_t preambleLen, uint8_t syncLen, uint8_t syncMatch, uint8_t crcLen, uint8_t whiten, uint8_t payLen = 0xFF, uint8_t hdrType = RADIOLIB_SX128X_GFSK_FLRC_PACKET_VARIABLE);
- 883 int16_t setPacketParamsBLE(uint8_t connState, uint8_t crcLen, uint8_t bleTest, uint8_t whiten);
- 884 int16_t setPacketParamsLoRa(uint8_t preambleLen, uint8_t hdrType, uint8_t payLen, uint8_t crc, uint8_t invIQ = RADIOLIB_SX128X_LORA_IQ_STANDARD);
- 885 int16_t setDioIrqParams(uint16_t irqMask, uint16_t dio1Mask, uint16_t dio2Mask = RADIOLIB_SX128X_IRQ_NONE, uint16_t dio3Mask = RADIOLIB_SX128X_IRQ_NONE);
- 886 int16_t clearIrqStatus(uint16_t clearIrqParams = RADIOLIB_SX128X_IRQ_ALL);
- 887 int16_t setRangingRole(uint8_t role);
- 888 int16_t setPacketType(uint8_t type);
-
- 890 #if !RADIOLIB_GODMODE
-
-
-
-
-
- 896 static int16_t SPIparseStatus(uint8_t in);
-
-
-
-
-
- 902 uint8_t invertIQEnabled = RADIOLIB_SX128X_LORA_IQ_STANDARD;
-
-
- 905 float modIndexReal = 0;
- 906 uint16_t bitRateKbps = 0;
- 907 uint8_t bitRate = 0, modIndex = 0, shaping = 0;
- 908 uint8_t preambleLengthGFSK = 0, syncWordLen = 0, syncWordMatch = 0, crcGFSK = 0, whitening = 0;
-
-
- 911 uint8_t codingRateFLRC = 0;
-
-
- 914 uint8_t connectionState = 0, crcBLE = 0, bleTestPayload = 0;
-
- 916 int16_t config(uint8_t modem);
- 917 int16_t setHeaderType(uint8_t hdrType,
size_t len = 0xFF);
-
-
-
-
-
+ 25 #define RADIOLIB_SX128X_CMD_SAVE_CONTEXT 0xD5
+ 26 #define RADIOLIB_SX128X_CMD_SET_SLEEP 0x84
+ 27 #define RADIOLIB_SX128X_CMD_SET_STANDBY 0x80
+ 28 #define RADIOLIB_SX128X_CMD_SET_FS 0xC1
+ 29 #define RADIOLIB_SX128X_CMD_SET_TX 0x83
+ 30 #define RADIOLIB_SX128X_CMD_SET_RX 0x82
+ 31 #define RADIOLIB_SX128X_CMD_SET_RX_DUTY_CYCLE 0x94
+ 32 #define RADIOLIB_SX128X_CMD_SET_CAD 0xC5
+ 33 #define RADIOLIB_SX128X_CMD_SET_TX_CONTINUOUS_WAVE 0xD1
+ 34 #define RADIOLIB_SX128X_CMD_SET_TX_CONTINUOUS_PREAMBLE 0xD2
+ 35 #define RADIOLIB_SX128X_CMD_SET_PACKET_TYPE 0x8A
+ 36 #define RADIOLIB_SX128X_CMD_GET_PACKET_TYPE 0x03
+ 37 #define RADIOLIB_SX128X_CMD_SET_RF_FREQUENCY 0x86
+ 38 #define RADIOLIB_SX128X_CMD_SET_TX_PARAMS 0x8E
+ 39 #define RADIOLIB_SX128X_CMD_SET_CAD_PARAMS 0x88
+ 40 #define RADIOLIB_SX128X_CMD_SET_BUFFER_BASE_ADDRESS 0x8F
+ 41 #define RADIOLIB_SX128X_CMD_SET_MODULATION_PARAMS 0x8B
+ 42 #define RADIOLIB_SX128X_CMD_SET_PACKET_PARAMS 0x8C
+ 43 #define RADIOLIB_SX128X_CMD_GET_RX_BUFFER_STATUS 0x17
+ 44 #define RADIOLIB_SX128X_CMD_GET_PACKET_STATUS 0x1D
+ 45 #define RADIOLIB_SX128X_CMD_GET_RSSI_INST 0x1F
+ 46 #define RADIOLIB_SX128X_CMD_SET_DIO_IRQ_PARAMS 0x8D
+ 47 #define RADIOLIB_SX128X_CMD_GET_IRQ_STATUS 0x15
+ 48 #define RADIOLIB_SX128X_CMD_CLEAR_IRQ_STATUS 0x97
+ 49 #define RADIOLIB_SX128X_CMD_SET_REGULATOR_MODE 0x96
+ 50 #define RADIOLIB_SX128X_CMD_SET_SAVE_CONTEXT 0xD5
+ 51 #define RADIOLIB_SX128X_CMD_SET_AUTO_TX 0x98
+ 52 #define RADIOLIB_SX128X_CMD_SET_AUTO_FS 0x9E
+ 53 #define RADIOLIB_SX128X_CMD_SET_PERF_COUNTER_MODE 0x9C
+ 54 #define RADIOLIB_SX128X_CMD_SET_LONG_PREAMBLE 0x9B
+ 55 #define RADIOLIB_SX128X_CMD_SET_UART_SPEED 0x9D
+ 56 #define RADIOLIB_SX128X_CMD_SET_RANGING_ROLE 0xA3
+ 57 #define RADIOLIB_SX128X_CMD_SET_ADVANCED_RANGING 0x9A
+
+
+ 60 #define RADIOLIB_SX128X_REG_GAIN_MODE 0x0891
+ 61 #define RADIOLIB_SX128X_REG_MANUAL_GAIN_CONTROL_ENABLE_2 0x0895
+ 62 #define RADIOLIB_SX128X_REG_MANUAL_GAIN_SETTING 0x089E
+ 63 #define RADIOLIB_SX128X_REG_MANUAL_GAIN_CONTROL_ENABLE_1 0x089F
+ 64 #define RADIOLIB_SX128X_REG_SYNCH_PEAK_ATTENUATION 0x08C2
+ 65 #define RADIOLIB_SX128X_REG_LORA_FIXED_PAYLOAD_LENGTH 0x0901
+ 66 #define RADIOLIB_SX128X_REG_LORA_HEADER_MODE 0x0903
+ 67 #define RADIOLIB_SX128X_REG_MASTER_RANGING_ADDRESS_BYTE_3 0x0912
+ 68 #define RADIOLIB_SX128X_REG_MASTER_RANGING_ADDRESS_BYTE_2 0x0913
+ 69 #define RADIOLIB_SX128X_REG_MASTER_RANGING_ADDRESS_BYTE_1 0x0914
+ 70 #define RADIOLIB_SX128X_REG_MASTER_RANGING_ADDRESS_BYTE_0 0x0915
+ 71 #define RADIOLIB_SX128X_REG_SLAVE_RANGING_ADDRESS_BYTE_3 0x0916
+ 72 #define RADIOLIB_SX128X_REG_SLAVE_RANGING_ADDRESS_BYTE_2 0x0917
+ 73 #define RADIOLIB_SX128X_REG_SLAVE_RANGING_ADDRESS_BYTE_1 0x0918
+ 74 #define RADIOLIB_SX128X_REG_SLAVE_RANGING_ADDRESS_BYTE_0 0x0919
+ 75 #define RADIOLIB_SX128X_REG_RANGING_FILTER_WINDOW_SIZE 0x091E
+ 76 #define RADIOLIB_SX128X_REG_RANGING_FILTER_RESET 0x0923
+ 77 #define RADIOLIB_SX128X_REG_RANGING_TYPE 0x0924
+ 78 #define RADIOLIB_SX128X_REG_LORA_SF_CONFIG 0x0925
+ 79 #define RADIOLIB_SX128X_REG_RANGING_ADDRESS_SWITCH 0x0927
+ 80 #define RADIOLIB_SX128X_REG_RANGING_CALIBRATION_BYTE_2 0x092B
+ 81 #define RADIOLIB_SX128X_REG_RANGING_CALIBRATION_MSB 0x092C
+ 82 #define RADIOLIB_SX128X_REG_RANGING_CALIBRATION_LSB 0x092D
+ 83 #define RADIOLIB_SX128X_REG_SLAVE_RANGING_ADDRESS_WIDTH 0x0931
+ 84 #define RADIOLIB_SX128X_REG_FREQ_ERROR_CORRECTION 0x093C
+ 85 #define RADIOLIB_SX128X_REG_LORA_SYNC_WORD_MSB 0x0944
+ 86 #define RADIOLIB_SX128X_REG_LORA_SYNC_WORD_LSB 0x0945
+ 87 #define RADIOLIB_SX128X_REG_RANGING_FILTER_RSSI_OFFSET 0x0953
+ 88 #define RADIOLIB_SX128X_REG_FEI_MSB 0x0954
+ 89 #define RADIOLIB_SX128X_REG_FEI_MID 0x0955
+ 90 #define RADIOLIB_SX128X_REG_FEI_LSB 0x0956
+ 91 #define RADIOLIB_SX128X_REG_RANGING_ADDRESS_MSB 0x095F
+ 92 #define RADIOLIB_SX128X_REG_RANGING_ADDRESS_LSB 0x0960
+ 93 #define RADIOLIB_SX128X_REG_RANGING_RESULT_MSB 0x0961
+ 94 #define RADIOLIB_SX128X_REG_RANGING_RESULT_MID 0x0962
+ 95 #define RADIOLIB_SX128X_REG_RANGING_RESULT_LSB 0x0963
+ 96 #define RADIOLIB_SX128X_REG_RANGING_RSSI 0x0964
+ 97 #define RADIOLIB_SX128X_REG_RANGING_LORA_CLOCK_ENABLE 0x097F
+ 98 #define RADIOLIB_SX128X_REG_PACKET_PREAMBLE_SETTINGS 0x09C1
+ 99 #define RADIOLIB_SX128X_REG_WHITENING_INITIAL_VALUE 0x09C5
+ 100 #define RADIOLIB_SX128X_REG_CRC_POLYNOMIAL_MSB 0x09C6
+ 101 #define RADIOLIB_SX128X_REG_CRC_POLYNOMIAL_LSB 0x09C7
+ 102 #define RADIOLIB_SX128X_REG_CRC_INITIAL_MSB 0x09C8
+ 103 #define RADIOLIB_SX128X_REG_CRC_INITIAL_LSB 0x09C9
+ 104 #define RADIOLIB_SX128X_REG_BLE_CRC_INITIAL_MSB 0x09C7
+ 105 #define RADIOLIB_SX128X_REG_BLE_CRC_INITIAL_MID (RADIOLIB_SX128X_REG_CRC_INITIAL_MSB)
+ 106 #define RADIOLIB_SX128X_REG_BLE_CRC_INITIAL_LSB (RADIOLIB_SX128X_REG_CRC_INITIAL_LSB)
+ 107 #define RADIOLIB_SX128X_REG_SYNCH_ADDRESS_CONTROL 0x09CD
+ 108 #define RADIOLIB_SX128X_REG_SYNC_WORD_1_BYTE_4 0x09CE
+ 109 #define RADIOLIB_SX128X_REG_SYNC_WORD_1_BYTE_3 0x09CF
+ 110 #define RADIOLIB_SX128X_REG_SYNC_WORD_1_BYTE_2 0x09D0
+ 111 #define RADIOLIB_SX128X_REG_SYNC_WORD_1_BYTE_1 0x09D1
+ 112 #define RADIOLIB_SX128X_REG_SYNC_WORD_1_BYTE_0 0x09D2
+ 113 #define RADIOLIB_SX128X_REG_SYNC_WORD_2_BYTE_4 0x09D3
+ 114 #define RADIOLIB_SX128X_REG_SYNC_WORD_2_BYTE_3 0x09D4
+ 115 #define RADIOLIB_SX128X_REG_SYNC_WORD_2_BYTE_2 0x09D5
+ 116 #define RADIOLIB_SX128X_REG_SYNC_WORD_2_BYTE_1 0x09D6
+ 117 #define RADIOLIB_SX128X_REG_SYNC_WORD_2_BYTE_0 0x09D7
+ 118 #define RADIOLIB_SX128X_REG_SYNC_WORD_3_BYTE_4 0x09D8
+ 119 #define RADIOLIB_SX128X_REG_SYNC_WORD_3_BYTE_3 0x09D9
+ 120 #define RADIOLIB_SX128X_REG_SYNC_WORD_3_BYTE_2 0x09DA
+ 121 #define RADIOLIB_SX128X_REG_SYNC_WORD_3_BYTE_1 0x09DB
+ 122 #define RADIOLIB_SX128X_REG_SYNC_WORD_3_BYTE_0 0x09DC
+ 123 #define RADIOLIB_SX128X_REG_ACCESS_ADDRESS_BYTE_3 (RADIOLIB_SX128X_REG_SYNC_WORD_1_BYTE_3)
+ 124 #define RADIOLIB_SX128X_REG_ACCESS_ADDRESS_BYTE_2 (RADIOLIB_SX128X_REG_SYNC_WORD_1_BYTE_2)
+ 125 #define RADIOLIB_SX128X_REG_ACCESS_ADDRESS_BYTE_1 (RADIOLIB_SX128X_REG_SYNC_WORD_1_BYTE_1)
+ 126 #define RADIOLIB_SX128X_REG_ACCESS_ADDRESS_BYTE_0 (RADIOLIB_SX128X_REG_SYNC_WORD_1_BYTE_0)
+
+
+
+ 130 #define RADIOLIB_SX128X_STATUS_MODE_STDBY_RC 0b01000000
+ 131 #define RADIOLIB_SX128X_STATUS_MODE_STDBY_XOSC 0b01100000
+ 132 #define RADIOLIB_SX128X_STATUS_MODE_FS 0b10000000
+ 133 #define RADIOLIB_SX128X_STATUS_MODE_RX 0b10100000
+ 134 #define RADIOLIB_SX128X_STATUS_MODE_TX 0b11000000
+ 135 #define RADIOLIB_SX128X_STATUS_CMD_PROCESSED 0b00000100
+ 136 #define RADIOLIB_SX128X_STATUS_DATA_AVAILABLE 0b00001000
+ 137 #define RADIOLIB_SX128X_STATUS_CMD_TIMEOUT 0b00001100
+ 138 #define RADIOLIB_SX128X_STATUS_CMD_ERROR 0b00010000
+ 139 #define RADIOLIB_SX128X_STATUS_CMD_FAILED 0b00010100
+ 140 #define RADIOLIB_SX128X_STATUS_TX_DONE 0b00011000
+ 141 #define RADIOLIB_SX128X_STATUS_BUSY 0b00000001
+ 142 #define RADIOLIB_SX128X_STATUS_SPI_FAILED 0b11111111
+
+
+ 145 #define RADIOLIB_SX128X_SLEEP_DATA_BUFFER_FLUSH 0b00000000
+ 146 #define RADIOLIB_SX128X_SLEEP_DATA_BUFFER_RETAIN 0b00000010
+ 147 #define RADIOLIB_SX128X_SLEEP_DATA_RAM_FLUSH 0b00000000
+ 148 #define RADIOLIB_SX128X_SLEEP_DATA_RAM_RETAIN 0b00000001
+
+
+ 151 #define RADIOLIB_SX128X_STANDBY_RC 0x00
+ 152 #define RADIOLIB_SX128X_STANDBY_XOSC 0x01
+
+
+ 155 #define RADIOLIB_SX128X_PERIOD_BASE_15_625_US 0x00
+ 156 #define RADIOLIB_SX128X_PERIOD_BASE_62_5_US 0x01
+ 157 #define RADIOLIB_SX128X_PERIOD_BASE_1_MS 0x02
+ 158 #define RADIOLIB_SX128X_PERIOD_BASE_4_MS 0x03
+
+
+ 161 #define RADIOLIB_SX128X_TX_TIMEOUT_NONE 0x0000
+
+
+ 164 #define RADIOLIB_SX128X_RX_TIMEOUT_NONE 0x0000
+ 165 #define RADIOLIB_SX128X_RX_TIMEOUT_INF 0xFFFF
+
+
+ 168 #define RADIOLIB_SX128X_PACKET_TYPE_GFSK 0x00
+ 169 #define RADIOLIB_SX128X_PACKET_TYPE_LORA 0x01
+ 170 #define RADIOLIB_SX128X_PACKET_TYPE_RANGING 0x02
+ 171 #define RADIOLIB_SX128X_PACKET_TYPE_FLRC 0x03
+ 172 #define RADIOLIB_SX128X_PACKET_TYPE_BLE 0x04
+
+
+ 175 #define RADIOLIB_SX128X_PA_RAMP_02_US 0x00
+ 176 #define RADIOLIB_SX128X_PA_RAMP_04_US 0x20
+ 177 #define RADIOLIB_SX128X_PA_RAMP_06_US 0x40
+ 178 #define RADIOLIB_SX128X_PA_RAMP_08_US 0x60
+ 179 #define RADIOLIB_SX128X_PA_RAMP_10_US 0x80
+ 180 #define RADIOLIB_SX128X_PA_RAMP_12_US 0xA0
+ 181 #define RADIOLIB_SX128X_PA_RAMP_16_US 0xC0
+ 182 #define RADIOLIB_SX128X_PA_RAMP_20_US 0xE0
+
+
+ 185 #define RADIOLIB_SX128X_CAD_ON_1_SYMB 0x00
+ 186 #define RADIOLIB_SX128X_CAD_ON_2_SYMB 0x20
+ 187 #define RADIOLIB_SX128X_CAD_ON_4_SYMB 0x40
+ 188 #define RADIOLIB_SX128X_CAD_ON_8_SYMB 0x60
+ 189 #define RADIOLIB_SX128X_CAD_ON_16_SYMB 0x80
+ 190 #define RADIOLIB_SX128X_CAD_PARAM_DEFAULT RADIOLIB_SX128X_CAD_ON_8_SYMB
+
+
+ 193 #define RADIOLIB_SX128X_BLE_GFSK_BR_2_000_BW_2_4 0x04
+ 194 #define RADIOLIB_SX128X_BLE_GFSK_BR_1_600_BW_2_4 0x28
+ 195 #define RADIOLIB_SX128X_BLE_GFSK_BR_1_000_BW_2_4 0x4C
+ 196 #define RADIOLIB_SX128X_BLE_GFSK_BR_1_000_BW_1_2 0x45
+ 197 #define RADIOLIB_SX128X_BLE_GFSK_BR_0_800_BW_2_4 0x70
+ 198 #define RADIOLIB_SX128X_BLE_GFSK_BR_0_800_BW_1_2 0x69
+ 199 #define RADIOLIB_SX128X_BLE_GFSK_BR_0_500_BW_1_2 0x8D
+ 200 #define RADIOLIB_SX128X_BLE_GFSK_BR_0_500_BW_0_6 0x86
+ 201 #define RADIOLIB_SX128X_BLE_GFSK_BR_0_400_BW_1_2 0xB1
+ 202 #define RADIOLIB_SX128X_BLE_GFSK_BR_0_400_BW_0_6 0xAA
+ 203 #define RADIOLIB_SX128X_BLE_GFSK_BR_0_250_BW_0_6 0xCE
+ 204 #define RADIOLIB_SX128X_BLE_GFSK_BR_0_250_BW_0_3 0xC7
+ 205 #define RADIOLIB_SX128X_BLE_GFSK_BR_0_125_BW_0_3 0xEF
+ 206 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_0_35 0x00
+ 207 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_0_50 0x01
+ 208 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_0_75 0x02
+ 209 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_1_00 0x03
+ 210 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_1_25 0x04
+ 211 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_1_50 0x05
+ 212 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_1_75 0x06
+ 213 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_2_00 0x07
+ 214 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_2_25 0x08
+ 215 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_2_50 0x09
+ 216 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_2_75 0x0A
+ 217 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_3_00 0x0B
+ 218 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_3_25 0x0C
+ 219 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_3_50 0x0D
+ 220 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_3_75 0x0E
+ 221 #define RADIOLIB_SX128X_BLE_GFSK_MOD_IND_4_00 0x0F
+ 222 #define RADIOLIB_SX128X_BLE_GFSK_BT_OFF 0x00
+ 223 #define RADIOLIB_SX128X_BLE_GFSK_BT_1_0 0x10
+ 224 #define RADIOLIB_SX128X_BLE_GFSK_BT_0_5 0x20
+ 225 #define RADIOLIB_SX128X_FLRC_BR_1_300_BW_1_2 0x45
+ 226 #define RADIOLIB_SX128X_FLRC_BR_1_000_BW_1_2 0x69
+ 227 #define RADIOLIB_SX128X_FLRC_BR_0_650_BW_0_6 0x86
+ 228 #define RADIOLIB_SX128X_FLRC_BR_0_520_BW_0_6 0xAA
+ 229 #define RADIOLIB_SX128X_FLRC_BR_0_325_BW_0_3 0xC7
+ 230 #define RADIOLIB_SX128X_FLRC_BR_0_260_BW_0_3 0xEB
+ 231 #define RADIOLIB_SX128X_FLRC_CR_1_2 0x00
+ 232 #define RADIOLIB_SX128X_FLRC_CR_3_4 0x02
+ 233 #define RADIOLIB_SX128X_FLRC_CR_1_0 0x04
+ 234 #define RADIOLIB_SX128X_FLRC_BT_OFF 0x00
+ 235 #define RADIOLIB_SX128X_FLRC_BT_1_0 0x10
+ 236 #define RADIOLIB_SX128X_FLRC_BT_0_5 0x20
+ 237 #define RADIOLIB_SX128X_LORA_SF_5 0x50
+ 238 #define RADIOLIB_SX128X_LORA_SF_6 0x60
+ 239 #define RADIOLIB_SX128X_LORA_SF_7 0x70
+ 240 #define RADIOLIB_SX128X_LORA_SF_8 0x80
+ 241 #define RADIOLIB_SX128X_LORA_SF_9 0x90
+ 242 #define RADIOLIB_SX128X_LORA_SF_10 0xA0
+ 243 #define RADIOLIB_SX128X_LORA_SF_11 0xB0
+ 244 #define RADIOLIB_SX128X_LORA_SF_12 0xC0
+ 245 #define RADIOLIB_SX128X_LORA_BW_1625_00 0x0A
+ 246 #define RADIOLIB_SX128X_LORA_BW_812_50 0x18
+ 247 #define RADIOLIB_SX128X_LORA_BW_406_25 0x26
+ 248 #define RADIOLIB_SX128X_LORA_BW_203_125 0x34
+ 249 #define RADIOLIB_SX128X_LORA_CR_4_5 0x01
+ 250 #define RADIOLIB_SX128X_LORA_CR_4_6 0x02
+ 251 #define RADIOLIB_SX128X_LORA_CR_4_7 0x03
+ 252 #define RADIOLIB_SX128X_LORA_CR_4_8 0x04
+ 253 #define RADIOLIB_SX128X_LORA_CR_4_5_LI 0x05
+ 254 #define RADIOLIB_SX128X_LORA_CR_4_6_LI 0x06
+ 255 #define RADIOLIB_SX128X_LORA_CR_4_7_LI 0x07
+
+
+ 258 #define RADIOLIB_SX128X_GFSK_FLRC_SYNC_WORD_OFF 0x00
+ 259 #define RADIOLIB_SX128X_GFSK_FLRC_SYNC_WORD_1 0x10
+ 260 #define RADIOLIB_SX128X_GFSK_FLRC_SYNC_WORD_2 0x20
+ 261 #define RADIOLIB_SX128X_GFSK_FLRC_SYNC_WORD_1_2 0x30
+ 262 #define RADIOLIB_SX128X_GFSK_FLRC_SYNC_WORD_3 0x40
+ 263 #define RADIOLIB_SX128X_GFSK_FLRC_SYNC_WORD_1_3 0x50
+ 264 #define RADIOLIB_SX128X_GFSK_FLRC_SYNC_WORD_2_3 0x60
+ 265 #define RADIOLIB_SX128X_GFSK_FLRC_SYNC_WORD_1_2_3 0x70
+ 266 #define RADIOLIB_SX128X_GFSK_FLRC_PACKET_FIXED 0x00
+ 267 #define RADIOLIB_SX128X_GFSK_FLRC_PACKET_VARIABLE 0x20
+ 268 #define RADIOLIB_SX128X_GFSK_FLRC_CRC_OFF 0x00
+ 269 #define RADIOLIB_SX128X_GFSK_FLRC_CRC_1_BYTE 0x10
+ 270 #define RADIOLIB_SX128X_GFSK_FLRC_CRC_2_BYTE 0x20
+ 271 #define RADIOLIB_SX128X_GFSK_FLRC_CRC_3_BYTE 0x30
+ 272 #define RADIOLIB_SX128X_GFSK_BLE_WHITENING_ON 0x00
+ 273 #define RADIOLIB_SX128X_GFSK_BLE_WHITENING_OFF 0x08
+ 274 #define RADIOLIB_SX128X_BLE_PAYLOAD_LENGTH_MAX_31 0x00
+ 275 #define RADIOLIB_SX128X_BLE_PAYLOAD_LENGTH_MAX_37 0x20
+ 276 #define RADIOLIB_SX128X_BLE_PAYLOAD_LENGTH_TEST 0x40
+ 277 #define RADIOLIB_SX128X_BLE_PAYLOAD_LENGTH_MAX_255 0x80
+ 278 #define RADIOLIB_SX128X_BLE_CRC_OFF 0x00
+ 279 #define RADIOLIB_SX128X_BLE_CRC_3_BYTE 0x10
+ 280 #define RADIOLIB_SX128X_BLE_PRBS_9 0x00
+ 281 #define RADIOLIB_SX128X_BLE_EYELONG 0x04
+ 282 #define RADIOLIB_SX128X_BLE_EYESHORT 0x08
+ 283 #define RADIOLIB_SX128X_BLE_PRBS_15 0x0C
+ 284 #define RADIOLIB_SX128X_BLE_ALL_1 0x10
+ 285 #define RADIOLIB_SX128X_BLE_ALL_0 0x14
+ 286 #define RADIOLIB_SX128X_BLE_EYELONG_INV 0x18
+ 287 #define RADIOLIB_SX128X_BLE_EYESHORT_INV 0x1C
+ 288 #define RADIOLIB_SX128X_FLRC_SYNC_WORD_OFF 0x00
+ 289 #define RADIOLIB_SX128X_FLRC_SYNC_WORD_ON 0x04
+ 290 #define RADIOLIB_SX128X_LORA_HEADER_EXPLICIT 0x00
+ 291 #define RADIOLIB_SX128X_LORA_HEADER_IMPLICIT 0x80
+ 292 #define RADIOLIB_SX128X_LORA_CRC_OFF 0x00
+ 293 #define RADIOLIB_SX128X_LORA_CRC_ON 0x20
+ 294 #define RADIOLIB_SX128X_LORA_IQ_STANDARD 0x40
+ 295 #define RADIOLIB_SX128X_LORA_IQ_INVERTED 0x00
+
+
+ 298 #define RADIOLIB_SX128X_PACKET_STATUS_SYNC_ERROR 0b01000000
+ 299 #define RADIOLIB_SX128X_PACKET_STATUS_LENGTH_ERROR 0b00100000
+ 300 #define RADIOLIB_SX128X_PACKET_STATUS_CRC_ERROR 0b00010000
+ 301 #define RADIOLIB_SX128X_PACKET_STATUS_ABORT_ERROR 0b00001000
+ 302 #define RADIOLIB_SX128X_PACKET_STATUS_HEADER_RECEIVED 0b00000100
+ 303 #define RADIOLIB_SX128X_PACKET_STATUS_PACKET_RECEIVED 0b00000010
+ 304 #define RADIOLIB_SX128X_PACKET_STATUS_PACKET_CTRL_BUSY 0b00000001
+ 305 #define RADIOLIB_SX128X_PACKET_STATUS_RX_PID 0b11000000
+ 306 #define RADIOLIB_SX128X_PACKET_STATUS_NO_ACK 0b00100000
+ 307 #define RADIOLIB_SX128X_PACKET_STATUS_RX_PID_ERROR 0b00010000
+ 308 #define RADIOLIB_SX128X_PACKET_STATUS_PACKET_SENT 0b00000001
+ 309 #define RADIOLIB_SX128X_PACKET_STATUS_SYNC_DET_ERROR 0b00000000
+ 310 #define RADIOLIB_SX128X_PACKET_STATUS_SYNC_DET_1 0b00000001
+ 311 #define RADIOLIB_SX128X_PACKET_STATUS_SYNC_DET_2 0b00000010
+ 312 #define RADIOLIB_SX128X_PACKET_STATUS_SYNC_DET_3 0b00000100
+
+
+ 315 #define RADIOLIB_SX128X_IRQ_PREAMBLE_DETECTED 0x8000
+ 316 #define RADIOLIB_SX128X_IRQ_ADVANCED_RANGING_DONE 0x8000
+ 317 #define RADIOLIB_SX128X_IRQ_RX_TX_TIMEOUT 0x4000
+ 318 #define RADIOLIB_SX128X_IRQ_CAD_DETECTED 0x2000
+ 319 #define RADIOLIB_SX128X_IRQ_CAD_DONE 0x1000
+ 320 #define RADIOLIB_SX128X_IRQ_RANGING_SLAVE_REQ_VALID 0x0800
+ 321 #define RADIOLIB_SX128X_IRQ_RANGING_MASTER_TIMEOUT 0x0400
+ 322 #define RADIOLIB_SX128X_IRQ_RANGING_MASTER_RES_VALID 0x0200
+ 323 #define RADIOLIB_SX128X_IRQ_RANGING_SLAVE_REQ_DISCARD 0x0100
+ 324 #define RADIOLIB_SX128X_IRQ_RANGING_SLAVE_RESP_DONE 0x0080
+ 325 #define RADIOLIB_SX128X_IRQ_CRC_ERROR 0x0040
+ 326 #define RADIOLIB_SX128X_IRQ_HEADER_ERROR 0x0020
+ 327 #define RADIOLIB_SX128X_IRQ_HEADER_VALID 0x0010
+ 328 #define RADIOLIB_SX128X_IRQ_SYNC_WORD_ERROR 0x0008
+ 329 #define RADIOLIB_SX128X_IRQ_SYNC_WORD_VALID 0x0004
+ 330 #define RADIOLIB_SX128X_IRQ_RX_DONE 0x0002
+ 331 #define RADIOLIB_SX128X_IRQ_TX_DONE 0x0001
+ 332 #define RADIOLIB_SX128X_IRQ_NONE 0x0000
+ 333 #define RADIOLIB_SX128X_IRQ_ALL 0xFFFF
+
+
+ 336 #define RADIOLIB_SX128X_REGULATOR_LDO 0x00
+ 337 #define RADIOLIB_SX128X_REGULATOR_DC_DC 0x01
+
+
+ 340 #define RADIOLIB_SX128X_RANGING_ROLE_MASTER 0x01
+ 341 #define RADIOLIB_SX128X_RANGING_ROLE_SLAVE 0x00
+
+
+ 344 #define RADIOLIB_SX128X_SYNC_WORD_PRIVATE 0x12
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 378 int16_t
begin(
float freq = 2400.0,
float bw = 812.5, uint8_t sf = 9, uint8_t cr = 7, uint8_t syncWord = RADIOLIB_SX128X_SYNC_WORD_PRIVATE, int8_t pwr = 10, uint16_t preambleLength = 12);
+
+ 389 int16_t
beginGFSK(
float freq = 2400.0, uint16_t br = 800,
float freqDev = 400.0, int8_t pwr = 10, uint16_t preambleLength = 16);
+
+ 400 int16_t
beginBLE(
float freq = 2400.0, uint16_t br = 800,
float freqDev = 400.0, int8_t pwr = 10, uint8_t dataShaping =
RADIOLIB_SHAPING_0_5);
+
+ 412 int16_t
beginFLRC(
float freq = 2400.0, uint16_t br = 650, uint8_t cr = 3, int8_t pwr = 10, uint16_t preambleLength = 16, uint8_t dataShaping =
RADIOLIB_SHAPING_0_5);
+
+ 420 int16_t
reset(
bool verify =
true);
+
+ 430 int16_t
transmit(
const uint8_t* data,
size_t len, uint8_t addr = 0)
override;
+
+ 439 int16_t
receive(uint8_t* data,
size_t len)
override;
+
+
+
+
+
+
+
+
+
+ 473 int16_t
sleep()
override;
+
+ 481 int16_t
sleep(
bool retainConfig);
+
+
+
+ 496 int16_t
standby(uint8_t mode,
bool wakeup =
false);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 541 int16_t
startTransmit(
const uint8_t* data,
size_t len, uint8_t addr = 0)
override;
+
+
+
+
+
+
+
+
+
+ 585 int16_t
readData(uint8_t* data,
size_t len)
override;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 658 int16_t
setCodingRate(uint8_t cr,
bool longInterleaving =
false);
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 712 int16_t
setSyncWord(
const uint8_t* syncWord, uint8_t len);
+
+ 720 int16_t
setSyncWord(uint8_t syncWord, uint8_t controlBits = 0x44);
+
+ 729 int16_t
setCRC(uint8_t len, uint32_t initial = 0x1D0F, uint16_t polynomial = 0x1021);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ 843 int16_t
invertIQ(
bool enable)
override;
+
+ 845 #if !RADIOLIB_EXCLUDE_DIRECT_RECEIVE
+
+
+ 856 void readBit(uint32_t pin)
override;
+
+
+ 859 #if !RADIOLIB_GODMODE && !RADIOLIB_LOW_LEVEL
+
+
+ 862 Module* getMod()
override;
+
+
+ 865 float bandwidthKhz = 0;
+ 866 uint8_t bandwidth = 0, spreadingFactor = 0, codingRateLoRa = 0;
+ 867 uint8_t preambleLengthLoRa = 0, headerType = 0, payloadLen = 0, crcLoRa = 0;
+
+
+
+ 871 int16_t writeRegister(uint16_t addr, uint8_t* data, uint8_t numBytes);
+ 872 int16_t readRegister(uint16_t addr, uint8_t* data, uint8_t numBytes);
+ 873 int16_t writeBuffer(uint8_t* data, uint8_t numBytes, uint8_t offset = 0x00);
+ 874 int16_t readBuffer(uint8_t* data, uint8_t numBytes, uint8_t offset = 0x00);
+ 875 int16_t setTx(uint16_t periodBaseCount = RADIOLIB_SX128X_TX_TIMEOUT_NONE, uint8_t periodBase = RADIOLIB_SX128X_PERIOD_BASE_15_625_US);
+ 876 int16_t setRx(uint16_t periodBaseCount, uint8_t periodBase = RADIOLIB_SX128X_PERIOD_BASE_15_625_US);
+ 877 int16_t setCad(uint8_t symbolNum);
+ 878 uint8_t getPacketType();
+ 879 int16_t setRfFrequency(uint32_t frf);
+ 880 int16_t setTxParams(uint8_t pwr, uint8_t rampTime = RADIOLIB_SX128X_PA_RAMP_10_US);
+ 881 int16_t setBufferBaseAddress(uint8_t txBaseAddress = 0x00, uint8_t rxBaseAddress = 0x00);
+ 882 int16_t setModulationParams(uint8_t modParam1, uint8_t modParam2, uint8_t modParam3);
+ 883 int16_t setPacketParamsGFSK(uint8_t preambleLen, uint8_t syncLen, uint8_t syncMatch, uint8_t crcLen, uint8_t whiten, uint8_t payLen = 0xFF, uint8_t hdrType = RADIOLIB_SX128X_GFSK_FLRC_PACKET_VARIABLE);
+ 884 int16_t setPacketParamsBLE(uint8_t connState, uint8_t crcLen, uint8_t bleTest, uint8_t whiten);
+ 885 int16_t setPacketParamsLoRa(uint8_t preambleLen, uint8_t hdrType, uint8_t payLen, uint8_t crc, uint8_t invIQ = RADIOLIB_SX128X_LORA_IQ_STANDARD);
+ 886 int16_t setDioIrqParams(uint16_t irqMask, uint16_t dio1Mask, uint16_t dio2Mask = RADIOLIB_SX128X_IRQ_NONE, uint16_t dio3Mask = RADIOLIB_SX128X_IRQ_NONE);
+ 887 int16_t clearIrqStatus(uint16_t clearIrqParams = RADIOLIB_SX128X_IRQ_ALL);
+ 888 int16_t setRangingRole(uint8_t role);
+ 889 int16_t setPacketType(uint8_t type);
+
+ 891 #if !RADIOLIB_GODMODE
+
+
+
+
+
+ 897 static int16_t SPIparseStatus(uint8_t in);
+
+
+
+
+
+ 903 uint8_t invertIQEnabled = RADIOLIB_SX128X_LORA_IQ_STANDARD;
+
+
+ 906 float modIndexReal = 0;
+ 907 uint16_t bitRateKbps = 0;
+ 908 uint8_t bitRate = 0, modIndex = 0, shaping = 0;
+ 909 uint8_t preambleLengthGFSK = 0, syncWordLen = 0, syncWordMatch = 0, crcGFSK = 0, whitening = 0;
+
+
+ 912 uint8_t codingRateFLRC = 0;
+
+
+ 915 uint8_t connectionState = 0, crcBLE = 0, bleTestPayload = 0;
+
+ 917 int16_t config(uint8_t modem);
+ 918 int16_t setHeaderType(uint8_t hdrType,
size_t len = 0xFF);
+
+
+
+
+
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition: Module.h:65
static const size_t RFSWITCH_MAX_PINS
The maximum number of pins supported by the RF switch code. Note: It is not recommended to use this c...
Definition: Module.h:74
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition: PhysicalLayer.h:135
@@ -652,65 +653,65 @@ $(document).ready(function(){initNavTree('_s_x128x_8h_source.html',''); initResi
int16_t transmit(const char *str, uint8_t addr=0)
C-string transmit method.
Definition: PhysicalLayer.cpp:52
int16_t startTransmit(const char *str, uint8_t addr=0)
Interrupt-driven Arduino String transmit method. Unlike the standard transmit method,...
Definition: PhysicalLayer.cpp:149
virtual int16_t receive(uint8_t *data, size_t len)
Binary receive method. Must be implemented in module class.
Definition: PhysicalLayer.cpp:112
-Base class for SX128x series. All derived classes for SX128x (e.g. SX1280 or SX1281) inherit from thi...
Definition: SX128x.h:350
-void setDio1Action(void(*func)(void))
Sets interrupt service routine to call when DIO1 activates.
Definition: SX128x.cpp:489
-int16_t setPreambleLength(uint32_t preambleLength)
Sets preamble length for currently active modem. Allowed values range from 1 to 65535.
Definition: SX128x.cpp:857
-int16_t setOutputPower(int8_t pwr) override
Sets output power. Allowed values are in range from -18 to 13 dBm.
Definition: SX128x.cpp:840
-void setPacketSentAction(void(*func)(void)) override
Sets interrupt service routine to call when a packet is sent.
Definition: SX128x.cpp:505
-void setDirectAction(void(*func)(void)) override
Dummy method, to ensure PhysicalLayer compatibility.
Definition: SX128x.cpp:1445
-float getRSSI() override
Gets RSSI (Recorded Signal Strength Indicator) of the last received packet.
Definition: SX128x.cpp:1232
+Base class for SX128x series. All derived classes for SX128x (e.g. SX1280 or SX1281) inherit from thi...
Definition: SX128x.h:351
+void setDio1Action(void(*func)(void))
Sets interrupt service routine to call when DIO1 activates.
Definition: SX128x.cpp:491
+int16_t setPreambleLength(uint32_t preambleLength)
Sets preamble length for currently active modem. Allowed values range from 1 to 65535.
Definition: SX128x.cpp:859
+int16_t setOutputPower(int8_t pwr) override
Sets output power. Allowed values are in range from -18 to 13 dBm.
Definition: SX128x.cpp:842
+void setPacketSentAction(void(*func)(void)) override
Sets interrupt service routine to call when a packet is sent.
Definition: SX128x.cpp:507
+void setDirectAction(void(*func)(void)) override
Dummy method, to ensure PhysicalLayer compatibility.
Definition: SX128x.cpp:1447
+float getRSSI() override
Gets RSSI (Recorded Signal Strength Indicator) of the last received packet.
Definition: SX128x.cpp:1234
int16_t reset(bool verify=true)
Reset method. Will reset the chip to the default state using RST pin.
Definition: SX128x.cpp:281
-int16_t setFrequencyDeviation(float freqDev) override
Sets FSK frequency deviation. Allowed values range from 0.0 to 3200.0 kHz.
Definition: SX128x.cpp:962
+int16_t setFrequencyDeviation(float freqDev) override
Sets FSK frequency deviation. Allowed values range from 0.0 to 3200.0 kHz.
Definition: SX128x.cpp:964
int16_t begin(float freq=2400.0, float bw=812.5, uint8_t sf=9, uint8_t cr=7, uint8_t syncWord=RADIOLIB_SX128X_SYNC_WORD_PRIVATE, int8_t pwr=10, uint16_t preambleLength=12)
Initialization method for LoRa modem.
Definition: SX128x.cpp:19
-float getFrequencyError()
Gets frequency error of the latest received packet.
Definition: SX128x.cpp:1287
-int16_t standby() override
Sets the module to standby mode (overload for PhysicalLayer compatibility, uses 13 MHz RC oscillator)...
Definition: SX128x.cpp:472
+float getFrequencyError()
Gets frequency error of the latest received packet.
Definition: SX128x.cpp:1289
+int16_t standby() override
Sets the module to standby mode (overload for PhysicalLayer compatibility, uses 13 MHz RC oscillator)...
Definition: SX128x.cpp:474
int16_t beginFLRC(float freq=2400.0, uint16_t br=650, uint8_t cr=3, int8_t pwr=10, uint16_t preambleLength=16, uint8_t dataShaping=RADIOLIB_SHAPING_0_5)
Initialization method for FLRC modem.
Definition: SX128x.cpp:213
int16_t scanChannel() override
Performs scan for LoRa transmission in the current channel. Detects both preamble and payload.
Definition: SX128x.cpp:423
virtual int16_t readData(uint8_t *data, size_t len)
Reads data that was received after calling startReceive method.
Definition: PhysicalLayer.cpp:209
-int16_t setGainControl(uint8_t gain=0)
Enables or disables receiver manual gain control.
Definition: SX128x.cpp:1196
-size_t getPacketLength(bool update=true) override
Query modem for the packet length of received payload.
Definition: SX128x.cpp:1320
-int16_t finishTransmit() override
Clean up after transmission is done.
Definition: SX128x.cpp:577
-int16_t invertIQ(bool enable) override
Enable/disable inversion of the I and Q signals.
Definition: SX128x.cpp:1430
+int16_t setGainControl(uint8_t gain=0)
Enables or disables receiver manual gain control.
Definition: SX128x.cpp:1198
+size_t getPacketLength(bool update=true) override
Query modem for the packet length of received payload.
Definition: SX128x.cpp:1322
+int16_t finishTransmit() override
Clean up after transmission is done.
Definition: SX128x.cpp:579
+int16_t invertIQ(bool enable) override
Enable/disable inversion of the I and Q signals.
Definition: SX128x.cpp:1432
int16_t transmit(const char *str, uint8_t addr=0)
C-string transmit method.
Definition: PhysicalLayer.cpp:52
int16_t transmitDirect(uint32_t frf=0) override
Starts direct mode transmission.
Definition: SX128x.cpp:400
-void setRfSwitchPins(uint32_t rxEn, uint32_t txEn)
Some modules contain external RF switch controlled by pins. This function gives RadioLib control over...
Definition: SX128x.cpp:1416
-int16_t checkOutputPower(int8_t pwr, int8_t *clipped) override
Check if output power is configurable.
Definition: SX128x.cpp:849
-int16_t setIrqFlags(uint32_t irq) override
Set interrupt on DIO1 to be sent on a specific IRQ bit (e.g. RxTimeout, CadDone).
Definition: SX128x.cpp:671
-int16_t setHighSensitivityMode(bool enable)
Enables or disables receiver high sensitivity mode.
Definition: SX128x.cpp:1179
+void setRfSwitchPins(uint32_t rxEn, uint32_t txEn)
Some modules contain external RF switch controlled by pins. This function gives RadioLib control over...
Definition: SX128x.cpp:1418
+int16_t checkOutputPower(int8_t pwr, int8_t *clipped) override
Check if output power is configurable.
Definition: SX128x.cpp:851
+int16_t setIrqFlags(uint32_t irq) override
Set interrupt on DIO1 to be sent on a specific IRQ bit (e.g. RxTimeout, CadDone).
Definition: SX128x.cpp:673
+int16_t setHighSensitivityMode(bool enable)
Enables or disables receiver high sensitivity mode.
Definition: SX128x.cpp:1181
int16_t beginGFSK(float freq=2400.0, uint16_t br=800, float freqDev=400.0, int8_t pwr=10, uint16_t preambleLength=16)
Initialization method for GFSK modem.
Definition: SX128x.cpp:83
-int16_t startReceive() override
Interrupt-driven receive method with default parameters. Implemented for compatibility with PhysicalL...
Definition: SX128x.cpp:585
-int16_t setEncoding(uint8_t encoding) override
Sets transmission encoding. Serves only as alias for PhysicalLayer compatibility.
Definition: SX128x.cpp:1412
-int16_t setWhitening(bool enabled)
Sets whitening parameters, not available for LoRa or FLRC modem.
Definition: SX128x.cpp:1148
-uint8_t randomByte() override
Dummy random method, to ensure PhysicalLayer compatibility.
Definition: SX128x.cpp:1424
+int16_t startReceive() override
Interrupt-driven receive method with default parameters. Implemented for compatibility with PhysicalL...
Definition: SX128x.cpp:587
+int16_t setEncoding(uint8_t encoding) override
Sets transmission encoding. Serves only as alias for PhysicalLayer compatibility.
Definition: SX128x.cpp:1414
+int16_t setWhitening(bool enabled)
Sets whitening parameters, not available for LoRa or FLRC modem.
Definition: SX128x.cpp:1150
+uint8_t randomByte() override
Dummy random method, to ensure PhysicalLayer compatibility.
Definition: SX128x.cpp:1426
int16_t startTransmit(const char *str, uint8_t addr=0)
Interrupt-driven Arduino String transmit method. Unlike the standard transmit method,...
Definition: PhysicalLayer.cpp:149
-int16_t setAccessAddress(uint32_t addr)
Sets BLE access address.
Definition: SX128x.cpp:1168
-int16_t startChannelScan() override
Interrupt-driven channel activity detection method. DIO1 will be activated when LoRa preamble is dete...
Definition: SX128x.cpp:679
-int16_t explicitHeader()
Set explicit header mode for future reception/transmission.
Definition: SX128x.cpp:1408
-int16_t setDataShaping(uint8_t sh) override
Sets time-bandwidth product of Gaussian filter applied for shaping. Allowed values are RADIOLIB_SHAPI...
Definition: SX128x.cpp:995
+int16_t setAccessAddress(uint32_t addr)
Sets BLE access address.
Definition: SX128x.cpp:1170
+int16_t startChannelScan() override
Interrupt-driven channel activity detection method. DIO1 will be activated when LoRa preamble is dete...
Definition: SX128x.cpp:681
+int16_t explicitHeader()
Set explicit header mode for future reception/transmission.
Definition: SX128x.cpp:1410
+int16_t setDataShaping(uint8_t sh) override
Sets time-bandwidth product of Gaussian filter applied for shaping. Allowed values are RADIOLIB_SHAPI...
Definition: SX128x.cpp:997
SX128x(Module *mod)
Default constructor.
Definition: SX128x.cpp:5
-int16_t setCodingRate(uint8_t cr, bool longInterleaving=false)
Sets LoRa coding rate denominator. Allowed values range from 5 to 8.
Definition: SX128x.cpp:812
-uint32_t getIrqFlags() override
Read currently active IRQ flags.
Definition: SX128x.cpp:667
-int16_t setCRC(uint8_t len, uint32_t initial=0x1D0F, uint16_t polynomial=0x1021)
Sets CRC configuration.
Definition: SX128x.cpp:1084
+int16_t setCodingRate(uint8_t cr, bool longInterleaving=false)
Sets LoRa coding rate denominator. Allowed values range from 5 to 8.
Definition: SX128x.cpp:814
+uint32_t getIrqFlags() override
Read currently active IRQ flags.
Definition: SX128x.cpp:669
+int16_t setCRC(uint8_t len, uint32_t initial=0x1D0F, uint16_t polynomial=0x1021)
Sets CRC configuration.
Definition: SX128x.cpp:1086
int16_t sleep() override
Sets the module to sleep mode. To wake the device up, call standby(). Overload for PhysicalLayer comp...
Definition: SX128x.cpp:452
-void clearPacketSentAction() override
Clears interrupt service routine to call when a packet is sent.
Definition: SX128x.cpp:509
+void clearPacketSentAction() override
Clears interrupt service routine to call when a packet is sent.
Definition: SX128x.cpp:511
virtual int16_t receive(uint8_t *data, size_t len)
Binary receive method. Must be implemented in module class.
Definition: PhysicalLayer.cpp:112
-void clearDio1Action()
Clears interrupt service routine to call when DIO1 activates.
Definition: SX128x.cpp:493
-int16_t setFrequency(float freq) override
Sets carrier frequency. Allowed values are in range from 2400.0 to 2500.0 MHz.
Definition: SX128x.cpp:740
-int16_t getChannelScanResult() override
Read the channel scan result.
Definition: SX128x.cpp:719
-int16_t implicitHeader(size_t len)
Set implicit header mode for future reception/transmission.
Definition: SX128x.cpp:1404
-void clearPacketReceivedAction() override
Clears interrupt service routine to call when a packet is received.
Definition: SX128x.cpp:501
+void clearDio1Action()
Clears interrupt service routine to call when DIO1 activates.
Definition: SX128x.cpp:495
+int16_t setFrequency(float freq) override
Sets carrier frequency. Allowed values are in range from 2400.0 to 2500.0 MHz.
Definition: SX128x.cpp:742
+int16_t getChannelScanResult() override
Read the channel scan result.
Definition: SX128x.cpp:721
+int16_t implicitHeader(size_t len)
Set implicit header mode for future reception/transmission.
Definition: SX128x.cpp:1406
+void clearPacketReceivedAction() override
Clears interrupt service routine to call when a packet is received.
Definition: SX128x.cpp:503
int16_t beginBLE(float freq=2400.0, uint16_t br=800, float freqDev=400.0, int8_t pwr=10, uint8_t dataShaping=RADIOLIB_SHAPING_0_5)
Initialization method for BLE modem.
Definition: SX128x.cpp:155
-void setRfSwitchTable(const uint32_t(&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[])
Some modules contain external RF switch controlled by pins. This function gives RadioLib control over...
Definition: SX128x.cpp:1420
-int16_t setBitRate(float br) override
Sets FSK or FLRC bit rate. Allowed values are 125, 250, 400, 500, 800, 1000, 1600 and 2000 kbps (for ...
Definition: SX128x.cpp:905
-int16_t setSyncWord(const uint8_t *syncWord, uint8_t len)
Sets FSK/FLRC sync word in the form of array of up to 5 bytes (FSK). For FLRC modem,...
Definition: SX128x.cpp:1025
-void setPacketReceivedAction(void(*func)(void)) override
Sets interrupt service routine to call when a packet is received.
Definition: SX128x.cpp:497
-float getSNR() override
Gets SNR (Signal to Noise Ratio) of the last received packet. Only available for LoRa or ranging mode...
Definition: SX128x.cpp:1267
-uint16_t getIrqStatus()
Reads the current IRQ status.
Definition: SX128x.cpp:1560
-int16_t setSpreadingFactor(uint8_t sf)
Sets LoRa spreading factor. Allowed values range from 5 to 12.
Definition: SX128x.cpp:778
-RadioLibTime_t getTimeOnAir(size_t len) override
Get expected time-on-air for a given size of payload.
Definition: SX128x.cpp:1340
-int16_t setBandwidth(float bw)
Sets LoRa bandwidth. Allowed values are 203.125, 406.25, 812.5 and 1625.0 kHz.
Definition: SX128x.cpp:748
-void readBit(uint32_t pin) override
Dummy method, to ensure PhysicalLayer compatibility.
Definition: SX128x.cpp:1451
-int16_t clearIrqFlags(uint32_t irq) override
Clear interrupt on a specific IRQ bit (e.g. RxTimeout, CadDone).
Definition: SX128x.cpp:675
+void setRfSwitchTable(const uint32_t(&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[])
Some modules contain external RF switch controlled by pins. This function gives RadioLib control over...
Definition: SX128x.cpp:1422
+int16_t setBitRate(float br) override
Sets FSK or FLRC bit rate. Allowed values are 125, 250, 400, 500, 800, 1000, 1600 and 2000 kbps (for ...
Definition: SX128x.cpp:907
+int16_t setSyncWord(const uint8_t *syncWord, uint8_t len)
Sets FSK/FLRC sync word in the form of array of up to 5 bytes (FSK). For FLRC modem,...
Definition: SX128x.cpp:1027
+void setPacketReceivedAction(void(*func)(void)) override
Sets interrupt service routine to call when a packet is received.
Definition: SX128x.cpp:499
+float getSNR() override
Gets SNR (Signal to Noise Ratio) of the last received packet. Only available for LoRa or ranging mode...
Definition: SX128x.cpp:1269
+uint16_t getIrqStatus()
Reads the current IRQ status.
Definition: SX128x.cpp:1562
+int16_t setSpreadingFactor(uint8_t sf)
Sets LoRa spreading factor. Allowed values range from 5 to 12.
Definition: SX128x.cpp:780
+RadioLibTime_t getTimeOnAir(size_t len) override
Get expected time-on-air for a given size of payload.
Definition: SX128x.cpp:1342
+int16_t setBandwidth(float bw)
Sets LoRa bandwidth. Allowed values are 203.125, 406.25, 812.5 and 1625.0 kHz.
Definition: SX128x.cpp:750
+void readBit(uint32_t pin) override
Dummy method, to ensure PhysicalLayer compatibility.
Definition: SX128x.cpp:1453
+int16_t clearIrqFlags(uint32_t irq) override
Clear interrupt on a specific IRQ bit (e.g. RxTimeout, CadDone).
Definition: SX128x.cpp:677
int16_t receiveDirect() override
Starts direct mode reception. Only implemented for PhysicalLayer compatibility, as SX128x series does...
Definition: SX128x.cpp:415
#define RADIOLIB_SHAPING_0_5
Gaussian shaping filter, BT = 0.5.
Definition: TypeDef.h:27
unsigned long RadioLibTime_t
Type used for durations in RadioLib.
Definition: TypeDef.h:621