-
1 #if !defined(_RADIOLIB_SX127X_H) 2 #define _RADIOLIB_SX127X_H 4 #include "../../TypeDef.h" 6 #if !defined(RADIOLIB_EXCLUDE_SX127X) 8 #include "../../Module.h" 10 #include "../../protocols/PhysicalLayer/PhysicalLayer.h" 13 #define SX127X_FREQUENCY_STEP_SIZE 61.03515625 14 #define SX127X_MAX_PACKET_LENGTH 255 15 #define SX127X_MAX_PACKET_LENGTH_FSK 64 16 #define SX127X_CRYSTAL_FREQ 32.0 17 #define SX127X_DIV_EXPONENT 19 20 #define SX127X_REG_FIFO 0x00 21 #define SX127X_REG_OP_MODE 0x01 22 #define SX127X_REG_FRF_MSB 0x06 23 #define SX127X_REG_FRF_MID 0x07 24 #define SX127X_REG_FRF_LSB 0x08 25 #define SX127X_REG_PA_CONFIG 0x09 26 #define SX127X_REG_PA_RAMP 0x0A 27 #define SX127X_REG_OCP 0x0B 28 #define SX127X_REG_LNA 0x0C 29 #define SX127X_REG_FIFO_ADDR_PTR 0x0D 30 #define SX127X_REG_FIFO_TX_BASE_ADDR 0x0E 31 #define SX127X_REG_FIFO_RX_BASE_ADDR 0x0F 32 #define SX127X_REG_FIFO_RX_CURRENT_ADDR 0x10 33 #define SX127X_REG_IRQ_FLAGS_MASK 0x11 34 #define SX127X_REG_IRQ_FLAGS 0x12 35 #define SX127X_REG_RX_NB_BYTES 0x13 36 #define SX127X_REG_RX_HEADER_CNT_VALUE_MSB 0x14 37 #define SX127X_REG_RX_HEADER_CNT_VALUE_LSB 0x15 38 #define SX127X_REG_RX_PACKET_CNT_VALUE_MSB 0x16 39 #define SX127X_REG_RX_PACKET_CNT_VALUE_LSB 0x17 40 #define SX127X_REG_MODEM_STAT 0x18 41 #define SX127X_REG_PKT_SNR_VALUE 0x19 42 #define SX127X_REG_PKT_RSSI_VALUE 0x1A 43 #define SX127X_REG_RSSI_VALUE 0x1B 44 #define SX127X_REG_HOP_CHANNEL 0x1C 45 #define SX127X_REG_MODEM_CONFIG_1 0x1D 46 #define SX127X_REG_MODEM_CONFIG_2 0x1E 47 #define SX127X_REG_SYMB_TIMEOUT_LSB 0x1F 48 #define SX127X_REG_PREAMBLE_MSB 0x20 49 #define SX127X_REG_PREAMBLE_LSB 0x21 50 #define SX127X_REG_PAYLOAD_LENGTH 0x22 51 #define SX127X_REG_MAX_PAYLOAD_LENGTH 0x23 52 #define SX127X_REG_HOP_PERIOD 0x24 53 #define SX127X_REG_FIFO_RX_BYTE_ADDR 0x25 54 #define SX127X_REG_FEI_MSB 0x28 55 #define SX127X_REG_FEI_MID 0x29 56 #define SX127X_REG_FEI_LSB 0x2A 57 #define SX127X_REG_RSSI_WIDEBAND 0x2C 58 #define SX127X_REG_DETECT_OPTIMIZE 0x31 59 #define SX127X_REG_INVERT_IQ 0x33 60 #define SX127X_REG_DETECTION_THRESHOLD 0x37 61 #define SX127X_REG_SYNC_WORD 0x39 62 #define SX127X_REG_DIO_MAPPING_1 0x40 63 #define SX127X_REG_DIO_MAPPING_2 0x41 64 #define SX127X_REG_VERSION 0x42 68 #define SX127X_FSK_OOK 0b00000000 // 7 7 FSK/OOK mode 69 #define SX127X_LORA 0b10000000 // 7 7 LoRa mode 70 #define SX127X_ACCESS_SHARED_REG_OFF 0b00000000 // 6 6 access LoRa registers (0x0D:0x3F) in LoRa mode 71 #define SX127X_ACCESS_SHARED_REG_ON 0b01000000 // 6 6 access FSK registers (0x0D:0x3F) in LoRa mode 72 #define SX127X_SLEEP 0b00000000 // 2 0 sleep 73 #define SX127X_STANDBY 0b00000001 // 2 0 standby 74 #define SX127X_FSTX 0b00000010 // 2 0 frequency synthesis TX 75 #define SX127X_TX 0b00000011 // 2 0 transmit 76 #define SX127X_FSRX 0b00000100 // 2 0 frequency synthesis RX 77 #define SX127X_RXCONTINUOUS 0b00000101 // 2 0 receive continuous 78 #define SX127X_RXSINGLE 0b00000110 // 2 0 receive single 79 #define SX127X_CAD 0b00000111 // 2 0 channel activity detection 82 #define SX127X_PA_SELECT_RFO 0b00000000 // 7 7 RFO pin output, power limited to +14 dBm 83 #define SX127X_PA_SELECT_BOOST 0b10000000 // 7 7 PA_BOOST pin output, power limited to +20 dBm 84 #define SX127X_OUTPUT_POWER 0b00001111 // 3 0 output power: P_out = 2 + OUTPUT_POWER [dBm] for PA_SELECT_BOOST 88 #define SX127X_OCP_OFF 0b00000000 // 5 5 PA overload current protection disabled 89 #define SX127X_OCP_ON 0b00100000 // 5 5 PA overload current protection enabled 90 #define SX127X_OCP_TRIM 0b00001011 // 4 0 OCP current: I_max(OCP_TRIM = 0b1011) = 100 mA 93 #define SX127X_LNA_GAIN_1 0b00100000 // 7 5 LNA gain setting: max gain 94 #define SX127X_LNA_GAIN_2 0b01000000 // 7 5 . 95 #define SX127X_LNA_GAIN_3 0b01100000 // 7 5 . 96 #define SX127X_LNA_GAIN_4 0b10000000 // 7 5 . 97 #define SX127X_LNA_GAIN_5 0b10100000 // 7 5 . 98 #define SX127X_LNA_GAIN_6 0b11000000 // 7 5 min gain 99 #define SX127X_LNA_BOOST_OFF 0b00000000 // 1 0 default LNA current 100 #define SX127X_LNA_BOOST_ON 0b00000011 // 1 0 150% LNA current 103 #define SX127X_SF_6 0b01100000 // 7 4 spreading factor: 64 chips/bit 104 #define SX127X_SF_7 0b01110000 // 7 4 128 chips/bit 105 #define SX127X_SF_8 0b10000000 // 7 4 256 chips/bit 106 #define SX127X_SF_9 0b10010000 // 7 4 512 chips/bit 107 #define SX127X_SF_10 0b10100000 // 7 4 1024 chips/bit 108 #define SX127X_SF_11 0b10110000 // 7 4 2048 chips/bit 109 #define SX127X_SF_12 0b11000000 // 7 4 4096 chips/bit 110 #define SX127X_TX_MODE_SINGLE 0b00000000 // 3 3 single TX 111 #define SX127X_TX_MODE_CONT 0b00001000 // 3 3 continuous TX 112 #define SX127X_RX_TIMEOUT_MSB 0b00000000 // 1 0 115 #define SX127X_RX_TIMEOUT_LSB 0b01100100 // 7 0 10 bit RX operation timeout 118 #define SX127X_PREAMBLE_LENGTH_MSB 0b00000000 // 7 0 2 byte preamble length setting: l_P = PREAMBLE_LENGTH + 4.25 119 #define SX127X_PREAMBLE_LENGTH_LSB 0b00001000 // 7 0 where l_p = preamble length 122 #define SX127X_DETECT_OPTIMIZE_SF_6 0b00000101 // 2 0 SF6 detection optimization 123 #define SX127X_DETECT_OPTIMIZE_SF_7_12 0b00000011 // 2 0 SF7 to SF12 detection optimization 126 #define SX127X_DETECTION_THRESHOLD_SF_6 0b00001100 // 7 0 SF6 detection threshold 127 #define SX127X_DETECTION_THRESHOLD_SF_7_12 0b00001010 // 7 0 SF7 to SF12 detection threshold 130 #define SX127X_PA_BOOST_OFF 0b00000100 // 2 0 PA_BOOST disabled 131 #define SX127X_PA_BOOST_ON 0b00000111 // 2 0 +20 dBm on PA_BOOST when OUTPUT_POWER = 0b1111 134 #define SX127X_HOP_PERIOD_OFF 0b00000000 // 7 0 number of periods between frequency hops; 0 = disabled 135 #define SX127X_HOP_PERIOD_MAX 0b11111111 // 7 0 138 #define SX127X_DIO0_RX_DONE 0b00000000 // 7 6 139 #define SX127X_DIO0_TX_DONE 0b01000000 // 7 6 140 #define SX127X_DIO0_CAD_DONE 0b10000000 // 7 6 141 #define SX127X_DIO1_RX_TIMEOUT 0b00000000 // 5 4 142 #define SX127X_DIO1_FHSS_CHANGE_CHANNEL 0b00010000 // 5 4 143 #define SX127X_DIO1_CAD_DETECTED 0b00100000 // 5 4 146 #define SX127X_CLEAR_IRQ_FLAG_RX_TIMEOUT 0b10000000 // 7 7 timeout 147 #define SX127X_CLEAR_IRQ_FLAG_RX_DONE 0b01000000 // 6 6 packet reception complete 148 #define SX127X_CLEAR_IRQ_FLAG_PAYLOAD_CRC_ERROR 0b00100000 // 5 5 payload CRC error 149 #define SX127X_CLEAR_IRQ_FLAG_VALID_HEADER 0b00010000 // 4 4 valid header received 150 #define SX127X_CLEAR_IRQ_FLAG_TX_DONE 0b00001000 // 3 3 payload transmission complete 151 #define SX127X_CLEAR_IRQ_FLAG_CAD_DONE 0b00000100 // 2 2 CAD complete 152 #define SX127X_CLEAR_IRQ_FLAG_FHSS_CHANGE_CHANNEL 0b00000010 // 1 1 FHSS change channel 153 #define SX127X_CLEAR_IRQ_FLAG_CAD_DETECTED 0b00000001 // 0 0 valid LoRa signal detected during CAD operation 156 #define SX127X_MASK_IRQ_FLAG_RX_TIMEOUT 0b01111111 // 7 7 timeout 157 #define SX127X_MASK_IRQ_FLAG_RX_DONE 0b10111111 // 6 6 packet reception complete 158 #define SX127X_MASK_IRQ_FLAG_PAYLOAD_CRC_ERROR 0b11011111 // 5 5 payload CRC error 159 #define SX127X_MASK_IRQ_FLAG_VALID_HEADER 0b11101111 // 4 4 valid header received 160 #define SX127X_MASK_IRQ_FLAG_TX_DONE 0b11110111 // 3 3 payload transmission complete 161 #define SX127X_MASK_IRQ_FLAG_CAD_DONE 0b11111011 // 2 2 CAD complete 162 #define SX127X_MASK_IRQ_FLAG_FHSS_CHANGE_CHANNEL 0b11111101 // 1 1 FHSS change channel 163 #define SX127X_MASK_IRQ_FLAG_CAD_DETECTED 0b11111110 // 0 0 valid LoRa signal detected during CAD operation 166 #define SX127X_FIFO_TX_BASE_ADDR_MAX 0b00000000 // 7 0 allocate the entire FIFO buffer for TX only 169 #define SX127X_FIFO_RX_BASE_ADDR_MAX 0b00000000 // 7 0 allocate the entire FIFO buffer for RX only 172 #define SX127X_SYNC_WORD 0x12 // 7 0 default LoRa sync word 173 #define SX127X_SYNC_WORD_LORAWAN 0x34 // 7 0 sync word reserved for LoRaWAN networks 177 #define SX127X_REG_BITRATE_MSB 0x02 178 #define SX127X_REG_BITRATE_LSB 0x03 179 #define SX127X_REG_FDEV_MSB 0x04 180 #define SX127X_REG_FDEV_LSB 0x05 181 #define SX127X_REG_RX_CONFIG 0x0D 182 #define SX127X_REG_RSSI_CONFIG 0x0E 183 #define SX127X_REG_RSSI_COLLISION 0x0F 184 #define SX127X_REG_RSSI_THRESH 0x10 185 #define SX127X_REG_RSSI_VALUE_FSK 0x11 186 #define SX127X_REG_RX_BW 0x12 187 #define SX127X_REG_AFC_BW 0x13 188 #define SX127X_REG_OOK_PEAK 0x14 189 #define SX127X_REG_OOK_FIX 0x15 190 #define SX127X_REG_OOK_AVG 0x16 191 #define SX127X_REG_AFC_FEI 0x1A 192 #define SX127X_REG_AFC_MSB 0x1B 193 #define SX127X_REG_AFC_LSB 0x1C 194 #define SX127X_REG_FEI_MSB_FSK 0x1D 195 #define SX127X_REG_FEI_LSB_FSK 0x1E 196 #define SX127X_REG_PREAMBLE_DETECT 0x1F 197 #define SX127X_REG_RX_TIMEOUT_1 0x20 198 #define SX127X_REG_RX_TIMEOUT_2 0x21 199 #define SX127X_REG_RX_TIMEOUT_3 0x22 200 #define SX127X_REG_RX_DELAY 0x23 201 #define SX127X_REG_OSC 0x24 202 #define SX127X_REG_PREAMBLE_MSB_FSK 0x25 203 #define SX127X_REG_PREAMBLE_LSB_FSK 0x26 204 #define SX127X_REG_SYNC_CONFIG 0x27 205 #define SX127X_REG_SYNC_VALUE_1 0x28 206 #define SX127X_REG_SYNC_VALUE_2 0x29 207 #define SX127X_REG_SYNC_VALUE_3 0x2A 208 #define SX127X_REG_SYNC_VALUE_4 0x2B 209 #define SX127X_REG_SYNC_VALUE_5 0x2C 210 #define SX127X_REG_SYNC_VALUE_6 0x2D 211 #define SX127X_REG_SYNC_VALUE_7 0x2E 212 #define SX127X_REG_SYNC_VALUE_8 0x2F 213 #define SX127X_REG_PACKET_CONFIG_1 0x30 214 #define SX127X_REG_PACKET_CONFIG_2 0x31 215 #define SX127X_REG_PAYLOAD_LENGTH_FSK 0x32 216 #define SX127X_REG_NODE_ADRS 0x33 217 #define SX127X_REG_BROADCAST_ADRS 0x34 218 #define SX127X_REG_FIFO_THRESH 0x35 219 #define SX127X_REG_SEQ_CONFIG_1 0x36 220 #define SX127X_REG_SEQ_CONFIG_2 0x37 221 #define SX127X_REG_TIMER_RESOL 0x38 222 #define SX127X_REG_TIMER1_COEF 0x39 223 #define SX127X_REG_TIMER2_COEF 0x3A 224 #define SX127X_REG_IMAGE_CAL 0x3B 225 #define SX127X_REG_TEMP 0x3C 226 #define SX127X_REG_LOW_BAT 0x3D 227 #define SX127X_REG_IRQ_FLAGS_1 0x3E 228 #define SX127X_REG_IRQ_FLAGS_2 0x3F 232 #define SX127X_MODULATION_FSK 0b00000000 // 6 5 FSK modulation scheme 233 #define SX127X_MODULATION_OOK 0b00100000 // 6 5 OOK modulation scheme 234 #define SX127X_RX 0b00000101 // 2 0 receiver mode 237 #define SX127X_BITRATE_MSB 0x1A // 7 0 bit rate setting: BitRate = F(XOSC)/(BITRATE + BITRATE_FRAC/16) 238 #define SX127X_BITRATE_LSB 0x0B // 7 0 default value: 4.8 kbps 241 #define SX127X_FDEV_MSB 0x00 // 5 0 frequency deviation: Fdev = Fstep * FDEV 242 #define SX127X_FDEV_LSB 0x52 // 7 0 default value: 5 kHz 245 #define SX127X_RESTART_RX_ON_COLLISION_OFF 0b00000000 // 7 7 automatic receiver restart disabled (default) 246 #define SX127X_RESTART_RX_ON_COLLISION_ON 0b10000000 // 7 7 automatically restart receiver if it gets saturated or on packet collision 247 #define SX127X_RESTART_RX_WITHOUT_PLL_LOCK 0b01000000 // 6 6 manually restart receiver without frequency change 248 #define SX127X_RESTART_RX_WITH_PLL_LOCK 0b00100000 // 5 5 manually restart receiver with frequency change 249 #define SX127X_AFC_AUTO_OFF 0b00000000 // 4 4 no AFC performed (default) 250 #define SX127X_AFC_AUTO_ON 0b00010000 // 4 4 AFC performed at each receiver startup 251 #define SX127X_AGC_AUTO_OFF 0b00000000 // 3 3 LNA gain set manually by register 252 #define SX127X_AGC_AUTO_ON 0b00001000 // 3 3 LNA gain controlled by AGC 253 #define SX127X_RX_TRIGGER_NONE 0b00000000 // 2 0 receiver startup at: none 254 #define SX127X_RX_TRIGGER_RSSI_INTERRUPT 0b00000001 // 2 0 RSSI interrupt 255 #define SX127X_RX_TRIGGER_PREAMBLE_DETECT 0b00000110 // 2 0 preamble detected 256 #define SX127X_RX_TRIGGER_BOTH 0b00000111 // 2 0 RSSI interrupt and preamble detected 259 #define SX127X_RSSI_SMOOTHING_SAMPLES_2 0b00000000 // 2 0 number of samples for RSSI average: 2 260 #define SX127X_RSSI_SMOOTHING_SAMPLES_4 0b00000001 // 2 0 4 261 #define SX127X_RSSI_SMOOTHING_SAMPLES_8 0b00000010 // 2 0 8 (default) 262 #define SX127X_RSSI_SMOOTHING_SAMPLES_16 0b00000011 // 2 0 16 263 #define SX127X_RSSI_SMOOTHING_SAMPLES_32 0b00000100 // 2 0 32 264 #define SX127X_RSSI_SMOOTHING_SAMPLES_64 0b00000101 // 2 0 64 265 #define SX127X_RSSI_SMOOTHING_SAMPLES_128 0b00000110 // 2 0 128 266 #define SX127X_RSSI_SMOOTHING_SAMPLES_256 0b00000111 // 2 0 256 269 #define SX127X_RSSI_COLLISION_THRESHOLD 0x0A // 7 0 RSSI threshold in dB that will be considered a collision, default value: 10 dB 272 #define SX127X_RSSI_THRESHOLD 0xFF // 7 0 RSSI threshold that will trigger RSSI interrupt, RssiThreshold = RSSI_THRESHOLD / 2 [dBm] 275 #define SX127X_RX_BW_MANT_16 0b00000000 // 4 3 channel filter bandwidth: RxBw = F(XOSC) / (RxBwMant * 2^(RxBwExp + 2)) [kHz] 276 #define SX127X_RX_BW_MANT_20 0b00001000 // 4 3 277 #define SX127X_RX_BW_MANT_24 0b00010000 // 4 3 default RxBwMant parameter 278 #define SX127X_RX_BW_EXP 0b00000101 // 2 0 default RxBwExp parameter 281 #define SX127X_RX_BW_MANT_AFC 0b00001000 // 4 3 default RxBwMant parameter used during AFC 282 #define SX127X_RX_BW_EXP_AFC 0b00000011 // 2 0 default RxBwExp parameter used during AFC 285 #define SX127X_BIT_SYNC_OFF 0b00000000 // 5 5 bit synchronizer disabled (not allowed in packet mode) 286 #define SX127X_BIT_SYNC_ON 0b00100000 // 5 5 bit synchronizer enabled (default) 287 #define SX127X_OOK_THRESH_FIXED 0b00000000 // 4 3 OOK threshold type: fixed value 288 #define SX127X_OOK_THRESH_PEAK 0b00001000 // 4 3 peak mode (default) 289 #define SX127X_OOK_THRESH_AVERAGE 0b00010000 // 4 3 average mode 290 #define SX127X_OOK_PEAK_THRESH_STEP_0_5_DB 0b00000000 // 2 0 OOK demodulator step size: 0.5 dB (default) 291 #define SX127X_OOK_PEAK_THRESH_STEP_1_0_DB 0b00000001 // 2 0 1.0 dB 292 #define SX127X_OOK_PEAK_THRESH_STEP_1_5_DB 0b00000010 // 2 0 1.5 dB 293 #define SX127X_OOK_PEAK_THRESH_STEP_2_0_DB 0b00000011 // 2 0 2.0 dB 294 #define SX127X_OOK_PEAK_THRESH_STEP_3_0_DB 0b00000100 // 2 0 3.0 dB 295 #define SX127X_OOK_PEAK_THRESH_STEP_4_0_DB 0b00000101 // 2 0 4.0 dB 296 #define SX127X_OOK_PEAK_THRESH_STEP_5_0_DB 0b00000110 // 2 0 5.0 dB 297 #define SX127X_OOK_PEAK_THRESH_STEP_6_0_DB 0b00000111 // 2 0 6.0 dB 300 #define SX127X_OOK_FIXED_THRESHOLD 0x0C // 7 0 default fixed threshold for OOK data slicer 303 #define SX127X_OOK_PEAK_THRESH_DEC_1_1_CHIP 0b00000000 // 7 5 OOK demodulator step period: once per chip (default) 304 #define SX127X_OOK_PEAK_THRESH_DEC_1_2_CHIP 0b00100000 // 7 5 once every 2 chips 305 #define SX127X_OOK_PEAK_THRESH_DEC_1_4_CHIP 0b01000000 // 7 5 once every 4 chips 306 #define SX127X_OOK_PEAK_THRESH_DEC_1_8_CHIP 0b01100000 // 7 5 once every 8 chips 307 #define SX127X_OOK_PEAK_THRESH_DEC_2_1_CHIP 0b10000000 // 7 5 2 times per chip 308 #define SX127X_OOK_PEAK_THRESH_DEC_4_1_CHIP 0b10100000 // 7 5 4 times per chip 309 #define SX127X_OOK_PEAK_THRESH_DEC_8_1_CHIP 0b11000000 // 7 5 8 times per chip 310 #define SX127X_OOK_PEAK_THRESH_DEC_16_1_CHIP 0b11100000 // 7 5 16 times per chip 311 #define SX127X_OOK_AVERAGE_OFFSET_0_DB 0b00000000 // 3 2 OOK average threshold offset: 0.0 dB (default) 312 #define SX127X_OOK_AVERAGE_OFFSET_2_DB 0b00000100 // 3 2 2.0 dB 313 #define SX127X_OOK_AVERAGE_OFFSET_4_DB 0b00001000 // 3 2 4.0 dB 314 #define SX127X_OOK_AVERAGE_OFFSET_6_DB 0b00001100 // 3 2 6.0 dB 315 #define SX127X_OOK_AVG_THRESH_FILT_32_PI 0b00000000 // 1 0 OOK average filter coefficient: chip rate / 32*pi 316 #define SX127X_OOK_AVG_THRESH_FILT_8_PI 0b00000001 // 1 0 chip rate / 8*pi 317 #define SX127X_OOK_AVG_THRESH_FILT_4_PI 0b00000010 // 1 0 chip rate / 4*pi (default) 318 #define SX127X_OOK_AVG_THRESH_FILT_2_PI 0b00000011 // 1 0 chip rate / 2*pi 321 #define SX127X_AGC_START 0b00010000 // 4 4 manually start AGC sequence 322 #define SX127X_AFC_CLEAR 0b00000010 // 1 1 manually clear AFC register 323 #define SX127X_AFC_AUTO_CLEAR_OFF 0b00000000 // 0 0 AFC register will not be cleared at the start of AFC (default) 324 #define SX127X_AFC_AUTO_CLEAR_ON 0b00000001 // 0 0 AFC register will be cleared at the start of AFC 327 #define SX127X_PREAMBLE_DETECTOR_OFF 0b00000000 // 7 7 preamble detection disabled 328 #define SX127X_PREAMBLE_DETECTOR_ON 0b10000000 // 7 7 preamble detection enabled (default) 329 #define SX127X_PREAMBLE_DETECTOR_1_BYTE 0b00000000 // 6 5 preamble detection size: 1 byte (default) 330 #define SX127X_PREAMBLE_DETECTOR_2_BYTE 0b00100000 // 6 5 2 bytes 331 #define SX127X_PREAMBLE_DETECTOR_3_BYTE 0b01000000 // 6 5 3 bytes 332 #define SX127X_PREAMBLE_DETECTOR_TOL 0x0A // 4 0 default number of tolerated errors per chip (4 chips per bit) 335 #define SX127X_TIMEOUT_RX_RSSI_OFF 0x00 // 7 0 disable receiver timeout when RSSI interrupt doesn't occur (default) 338 #define SX127X_TIMEOUT_RX_PREAMBLE_OFF 0x00 // 7 0 disable receiver timeout when preamble interrupt doesn't occur (default) 341 #define SX127X_TIMEOUT_SIGNAL_SYNC_OFF 0x00 // 7 0 disable receiver timeout when sync address interrupt doesn't occur (default) 344 #define SX127X_RC_CAL_START 0b00000000 // 3 3 manually start RC oscillator calibration 345 #define SX127X_CLK_OUT_FXOSC 0b00000000 // 2 0 ClkOut frequency: F(XOSC) 346 #define SX127X_CLK_OUT_FXOSC_2 0b00000001 // 2 0 F(XOSC) / 2 347 #define SX127X_CLK_OUT_FXOSC_4 0b00000010 // 2 0 F(XOSC) / 4 348 #define SX127X_CLK_OUT_FXOSC_8 0b00000011 // 2 0 F(XOSC) / 8 349 #define SX127X_CLK_OUT_FXOSC_16 0b00000100 // 2 0 F(XOSC) / 16 350 #define SX127X_CLK_OUT_FXOSC_32 0b00000101 // 2 0 F(XOSC) / 32 351 #define SX127X_CLK_OUT_RC 0b00000110 // 2 0 RC 352 #define SX127X_CLK_OUT_OFF 0b00000111 // 2 0 disabled (default) 355 #define SX127X_PREAMBLE_SIZE_MSB 0x00 // 7 0 preamble size in bytes 356 #define SX127X_PREAMBLE_SIZE_LSB 0x03 // 7 0 default value: 3 bytes 359 #define SX127X_AUTO_RESTART_RX_MODE_OFF 0b00000000 // 7 6 Rx mode restart after packet reception: disabled 360 #define SX127X_AUTO_RESTART_RX_MODE_NO_PLL 0b01000000 // 7 6 enabled, don't wait for PLL lock 361 #define SX127X_AUTO_RESTART_RX_MODE_PLL 0b10000000 // 7 6 enabled, wait for PLL lock (default) 362 #define SX127X_PREAMBLE_POLARITY_AA 0b00000000 // 5 5 preamble polarity: 0xAA = 0b10101010 (default) 363 #define SX127X_PREAMBLE_POLARITY_55 0b00100000 // 5 5 0x55 = 0b01010101 364 #define SX127X_SYNC_OFF 0b00000000 // 4 4 sync word disabled 365 #define SX127X_SYNC_ON 0b00010000 // 4 4 sync word enabled (default) 366 #define SX127X_SYNC_SIZE 0x03 // 2 0 sync word size in bytes, SyncSize = SYNC_SIZE + 1 bytes 369 #define SX127X_SYNC_VALUE_1 0x01 // 7 0 sync word: 1st byte (MSB) 370 #define SX127X_SYNC_VALUE_2 0x01 // 7 0 2nd byte 371 #define SX127X_SYNC_VALUE_3 0x01 // 7 0 3rd byte 372 #define SX127X_SYNC_VALUE_4 0x01 // 7 0 4th byte 373 #define SX127X_SYNC_VALUE_5 0x01 // 7 0 5th byte 374 #define SX127X_SYNC_VALUE_6 0x01 // 7 0 6th byte 375 #define SX127X_SYNC_VALUE_7 0x01 // 7 0 7th byte 376 #define SX127X_SYNC_VALUE_8 0x01 // 7 0 8th byte (LSB) 379 #define SX127X_PACKET_FIXED 0b00000000 // 7 7 packet format: fixed length 380 #define SX127X_PACKET_VARIABLE 0b10000000 // 7 7 variable length (default) 381 #define SX127X_DC_FREE_NONE 0b00000000 // 6 5 DC-free encoding: disabled (default) 382 #define SX127X_DC_FREE_MANCHESTER 0b00100000 // 6 5 Manchester 383 #define SX127X_DC_FREE_WHITENING 0b01000000 // 6 5 Whitening 384 #define SX127X_CRC_OFF 0b00000000 // 4 4 CRC disabled 385 #define SX127X_CRC_ON 0b00010000 // 4 4 CRC enabled (default) 386 #define SX127X_CRC_AUTOCLEAR_OFF 0b00001000 // 3 3 keep FIFO on CRC mismatch, issue payload ready interrupt 387 #define SX127X_CRC_AUTOCLEAR_ON 0b00000000 // 3 3 clear FIFO on CRC mismatch, do not issue payload ready interrupt 388 #define SX127X_ADDRESS_FILTERING_OFF 0b00000000 // 2 1 address filtering: none (default) 389 #define SX127X_ADDRESS_FILTERING_NODE 0b00000010 // 2 1 node 390 #define SX127X_ADDRESS_FILTERING_NODE_BROADCAST 0b00000100 // 2 1 node or broadcast 391 #define SX127X_CRC_WHITENING_TYPE_CCITT 0b00000000 // 0 0 CRC and whitening algorithms: CCITT CRC with standard whitening (default) 392 #define SX127X_CRC_WHITENING_TYPE_IBM 0b00000001 // 0 0 IBM CRC with alternate whitening 395 #define SX127X_DATA_MODE_PACKET 0b01000000 // 6 6 data mode: packet (default) 396 #define SX127X_DATA_MODE_CONTINUOUS 0b00000000 // 6 6 continuous 397 #define SX127X_IO_HOME_OFF 0b00000000 // 5 5 io-homecontrol compatibility disabled (default) 398 #define SX127X_IO_HOME_ON 0b00100000 // 5 5 io-homecontrol compatibility enabled 401 #define SX127X_TX_START_FIFO_LEVEL 0b00000000 // 7 7 start packet transmission when: number of bytes in FIFO exceeds FIFO_THRESHOLD 402 #define SX127X_TX_START_FIFO_NOT_EMPTY 0b10000000 // 7 7 at least one byte in FIFO (default) 403 #define SX127X_FIFO_THRESH 0x0F // 5 0 FIFO level threshold 406 #define SX127X_SEQUENCER_START 0b10000000 // 7 7 manually start sequencer 407 #define SX127X_SEQUENCER_STOP 0b01000000 // 6 6 manually stop sequencer 408 #define SX127X_IDLE_MODE_STANDBY 0b00000000 // 5 5 chip mode during sequencer idle mode: standby (default) 409 #define SX127X_IDLE_MODE_SLEEP 0b00100000 // 5 5 sleep 410 #define SX127X_FROM_START_LP_SELECTION 0b00000000 // 4 3 mode that will be set after starting sequencer: low power selection (default) 411 #define SX127X_FROM_START_RECEIVE 0b00001000 // 4 3 receive 412 #define SX127X_FROM_START_TRANSMIT 0b00010000 // 4 3 transmit 413 #define SX127X_FROM_START_TRANSMIT_FIFO_LEVEL 0b00011000 // 4 3 transmit on a FIFO level interrupt 414 #define SX127X_LP_SELECTION_SEQ_OFF 0b00000000 // 2 2 mode that will be set after exiting low power selection: sequencer off (default) 415 #define SX127X_LP_SELECTION_IDLE 0b00000100 // 2 2 idle state 416 #define SX127X_FROM_IDLE_TRANSMIT 0b00000000 // 1 1 mode that will be set after exiting idle mode: transmit (default) 417 #define SX127X_FROM_IDLE_RECEIVE 0b00000010 // 1 1 receive 418 #define SX127X_FROM_TRANSMIT_LP_SELECTION 0b00000000 // 0 0 mode that will be set after exiting transmit mode: low power selection (default) 419 #define SX127X_FROM_TRANSMIT_RECEIVE 0b00000001 // 0 0 receive 422 #define SX127X_FROM_RECEIVE_PACKET_RECEIVED_PAYLOAD 0b00100000 // 7 5 mode that will be set after exiting receive mode: packet received on payload ready interrupt (default) 423 #define SX127X_FROM_RECEIVE_LP_SELECTION 0b01000000 // 7 5 low power selection 424 #define SX127X_FROM_RECEIVE_PACKET_RECEIVED_CRC_OK 0b01100000 // 7 5 packet received on CRC OK interrupt 425 #define SX127X_FROM_RECEIVE_SEQ_OFF_RSSI 0b10000000 // 7 5 sequencer off on RSSI interrupt 426 #define SX127X_FROM_RECEIVE_SEQ_OFF_SYNC_ADDR 0b10100000 // 7 5 sequencer off on sync address interrupt 427 #define SX127X_FROM_RECEIVE_SEQ_OFF_PREAMBLE_DETECT 0b11000000 // 7 5 sequencer off on preamble detect interrupt 428 #define SX127X_FROM_RX_TIMEOUT_RECEIVE 0b00000000 // 4 3 mode that will be set after Rx timeout: receive (default) 429 #define SX127X_FROM_RX_TIMEOUT_TRANSMIT 0b00001000 // 4 3 transmit 430 #define SX127X_FROM_RX_TIMEOUT_LP_SELECTION 0b00010000 // 4 3 low power selection 431 #define SX127X_FROM_RX_TIMEOUT_SEQ_OFF 0b00011000 // 4 3 sequencer off 432 #define SX127X_FROM_PACKET_RECEIVED_SEQ_OFF 0b00000000 // 2 0 mode that will be set after packet received: sequencer off (default) 433 #define SX127X_FROM_PACKET_RECEIVED_TRANSMIT 0b00000001 // 2 0 transmit 434 #define SX127X_FROM_PACKET_RECEIVED_LP_SELECTION 0b00000010 // 2 0 low power selection 435 #define SX127X_FROM_PACKET_RECEIVED_RECEIVE_FS 0b00000011 // 2 0 receive via FS 436 #define SX127X_FROM_PACKET_RECEIVED_RECEIVE 0b00000100 // 2 0 receive 439 #define SX127X_TIMER1_OFF 0b00000000 // 3 2 timer 1 resolution: disabled (default) 440 #define SX127X_TIMER1_RESOLUTION_64_US 0b00000100 // 3 2 64 us 441 #define SX127X_TIMER1_RESOLUTION_4_1_MS 0b00001000 // 3 2 4.1 ms 442 #define SX127X_TIMER1_RESOLUTION_262_MS 0b00001100 // 3 2 262 ms 443 #define SX127X_TIMER2_OFF 0b00000000 // 3 2 timer 2 resolution: disabled (default) 444 #define SX127X_TIMER2_RESOLUTION_64_US 0b00000001 // 3 2 64 us 445 #define SX127X_TIMER2_RESOLUTION_4_1_MS 0b00000010 // 3 2 4.1 ms 446 #define SX127X_TIMER2_RESOLUTION_262_MS 0b00000011 // 3 2 262 ms 449 #define SX127X_TIMER1_COEFFICIENT 0xF5 // 7 0 multiplication coefficient for timer 1 452 #define SX127X_TIMER2_COEFFICIENT 0x20 // 7 0 multiplication coefficient for timer 2 455 #define SX127X_AUTO_IMAGE_CAL_OFF 0b00000000 // 7 7 temperature calibration disabled (default) 456 #define SX127X_AUTO_IMAGE_CAL_ON 0b10000000 // 7 7 temperature calibration enabled 457 #define SX127X_IMAGE_CAL_START 0b01000000 // 6 6 start temperature calibration 458 #define SX127X_IMAGE_CAL_RUNNING 0b00100000 // 5 5 temperature calibration is on-going 459 #define SX127X_IMAGE_CAL_COMPLETE 0b00000000 // 5 5 temperature calibration finished 460 #define SX127X_TEMP_CHANGED 0b00001000 // 3 3 temperature changed more than TEMP_THRESHOLD since last calibration 461 #define SX127X_TEMP_THRESHOLD_5_DEG_C 0b00000000 // 2 1 temperature change threshold: 5 deg. C 462 #define SX127X_TEMP_THRESHOLD_10_DEG_C 0b00000010 // 2 1 10 deg. C (default) 463 #define SX127X_TEMP_THRESHOLD_15_DEG_C 0b00000100 // 2 1 15 deg. C 464 #define SX127X_TEMP_THRESHOLD_20_DEG_C 0b00000110 // 2 1 20 deg. C 465 #define SX127X_TEMP_MONITOR_ON 0b00000000 // 0 0 temperature monitoring enabled (default) 466 #define SX127X_TEMP_MONITOR_OFF 0b00000001 // 0 0 temperature monitoring disabled 469 #define SX127X_LOW_BAT_OFF 0b00000000 // 3 3 low battery detector disabled 470 #define SX127X_LOW_BAT_ON 0b00001000 // 3 3 low battery detector enabled 471 #define SX127X_LOW_BAT_TRIM_1_695_V 0b00000000 // 2 0 battery voltage threshold: 1.695 V 472 #define SX127X_LOW_BAT_TRIM_1_764_V 0b00000001 // 2 0 1.764 V 473 #define SX127X_LOW_BAT_TRIM_1_835_V 0b00000010 // 2 0 1.835 V (default) 474 #define SX127X_LOW_BAT_TRIM_1_905_V 0b00000011 // 2 0 1.905 V 475 #define SX127X_LOW_BAT_TRIM_1_976_V 0b00000100 // 2 0 1.976 V 476 #define SX127X_LOW_BAT_TRIM_2_045_V 0b00000101 // 2 0 2.045 V 477 #define SX127X_LOW_BAT_TRIM_2_116_V 0b00000110 // 2 0 2.116 V 478 #define SX127X_LOW_BAT_TRIM_2_185_V 0b00000111 // 2 0 2.185 V 481 #define SX127X_FLAG_MODE_READY 0b10000000 // 7 7 requested mode is ready 482 #define SX127X_FLAG_RX_READY 0b01000000 // 6 6 reception ready (after RSSI, AGC, AFC) 483 #define SX127X_FLAG_TX_READY 0b00100000 // 5 5 transmission ready (after PA ramp-up) 484 #define SX127X_FLAG_PLL_LOCK 0b00010000 // 4 4 PLL locked 485 #define SX127X_FLAG_RSSI 0b00001000 // 3 3 RSSI value exceeds RSSI threshold 486 #define SX127X_FLAG_TIMEOUT 0b00000100 // 2 2 timeout occurred 487 #define SX127X_FLAG_PREAMBLE_DETECT 0b00000010 // 1 1 valid preamble was detected 488 #define SX127X_FLAG_SYNC_ADDRESS_MATCH 0b00000001 // 0 0 sync address matched 491 #define SX127X_FLAG_FIFO_FULL 0b10000000 // 7 7 FIFO is full 492 #define SX127X_FLAG_FIFO_EMPTY 0b01000000 // 6 6 FIFO is empty 493 #define SX127X_FLAG_FIFO_LEVEL 0b00100000 // 5 5 number of bytes in FIFO exceeds FIFO_THRESHOLD 494 #define SX127X_FLAG_FIFO_OVERRUN 0b00010000 // 4 4 FIFO overrun occurred 495 #define SX127X_FLAG_PACKET_SENT 0b00001000 // 3 3 packet was successfully sent 496 #define SX127X_FLAG_PAYLOAD_READY 0b00000100 // 2 2 packet was successfully received 497 #define SX127X_FLAG_CRC_OK 0b00000010 // 1 1 CRC check passed 498 #define SX127X_FLAG_LOW_BAT 0b00000001 // 0 0 battery voltage dropped below threshold 501 #define SX127X_DIO0_CONT_SYNC_ADDRESS 0b00000000 // 7 6 502 #define SX127X_DIO0_CONT_TX_READY 0b00000000 // 7 6 503 #define SX127X_DIO0_CONT_RSSI_PREAMBLE_DETECTED 0b01000000 // 7 6 504 #define SX127X_DIO0_CONT_RX_READY 0b10000000 // 7 6 505 #define SX127X_DIO0_PACK_PAYLOAD_READY 0b00000000 // 7 6 506 #define SX127X_DIO0_PACK_PACKET_SENT 0b00000000 // 7 6 507 #define SX127X_DIO0_PACK_CRC_OK 0b01000000 // 7 6 508 #define SX127X_DIO0_PACK_TEMP_CHANGE_LOW_BAT 0b11000000 // 7 6 509 #define SX127X_DIO1_CONT_DCLK 0b00000000 // 5 4 510 #define SX127X_DIO1_CONT_RSSI_PREAMBLE_DETECTED 0b00010000 // 5 4 511 #define SX127X_DIO1_PACK_FIFO_LEVEL 0b00000000 // 5 4 512 #define SX127X_DIO1_PACK_FIFO_EMPTY 0b00010000 // 5 4 513 #define SX127X_DIO1_PACK_FIFO_FULL 0b00100000 // 5 4 514 #define SX127X_DIO2_CONT_DATA 0b00000000 // 3 2 517 #define SX127X_FAST_HOP_OFF 0b00000000 // 7 7 carrier frequency validated when FRF registers are written 518 #define SX127X_FAST_HOP_ON 0b10000000 // 7 7 carrier frequency validated when FS modes are requested 521 #define SX127X_TCXO_INPUT_EXTERNAL 0b00000000 // 4 4 use external crystal oscillator 522 #define SX127X_TCXO_INPUT_EXTERNAL_CLIPPED 0b00010000 // 4 4 use external crystal oscillator clipped sine connected to XTA pin 525 #define SX127X_PLL_BANDWIDTH_75_KHZ 0b00000000 // 7 6 PLL bandwidth: 75 kHz 526 #define SX127X_PLL_BANDWIDTH_150_KHZ 0b01000000 // 7 6 150 kHz 527 #define SX127X_PLL_BANDWIDTH_225_KHZ 0b10000000 // 7 6 225 kHz 528 #define SX127X_PLL_BANDWIDTH_300_KHZ 0b11000000 // 7 6 300 kHz (default) 566 int16_t
begin(uint8_t chipVersion, uint8_t syncWord, uint16_t preambleLength);
571 virtual void reset() = 0;
590 int16_t
beginFSK(uint8_t chipVersion,
float br,
float freqDev,
float rxBw, uint16_t preambleLength,
bool enableOOK);
604 int16_t
transmit(uint8_t* data,
size_t len, uint8_t addr = 0)
override;
616 int16_t
receive(uint8_t* data,
size_t len)
override;
702 int16_t
startTransmit(uint8_t* data,
size_t len, uint8_t addr = 0)
override;
713 int16_t
startReceive(uint8_t len = 0, uint8_t mode = SX127X_RXCONTINUOUS);
724 int16_t
readData(uint8_t* data,
size_t len)
override;
815 int16_t
setSyncWord(uint8_t* syncWord,
size_t len);
849 int16_t
setOOK(
bool enableOOK);
888 int16_t
setRSSIConfig(uint8_t smoothingSamples, int8_t offset = 0);
948 #ifndef RADIOLIB_GODMODE 960 bool _crcEnabled =
false;
962 int16_t setFrequencyRaw(
float newFreq);
965 int16_t getActiveModem();
966 int16_t directMode();
967 int16_t setPacketMode(uint8_t mode, uint8_t len);
969 #ifndef RADIOLIB_GODMODE 973 size_t _packetLength = 0;
974 bool _packetLengthQueried =
false;
975 uint8_t _packetLengthConfig = SX127X_PACKET_VARIABLE;
977 bool findChip(uint8_t ver);
978 int16_t setMode(uint8_t mode);
979 int16_t setActiveModem(uint8_t modem);
980 void clearIRQFlags();
981 void clearFIFO(
size_t count);
int16_t setRSSIConfig(uint8_t smoothingSamples, int8_t offset=0)
Sets RSSI measurement configuration in FSK mode.
Definition: SX127x.cpp:909
+
1 #if !defined(_RADIOLIB_SX127X_H) 2 #define _RADIOLIB_SX127X_H 4 #include "../../TypeDef.h" 6 #if !defined(RADIOLIB_EXCLUDE_SX127X) 8 #include "../../Module.h" 10 #include "../../protocols/PhysicalLayer/PhysicalLayer.h" 13 #define SX127X_FREQUENCY_STEP_SIZE 61.03515625 14 #define SX127X_MAX_PACKET_LENGTH 255 15 #define SX127X_MAX_PACKET_LENGTH_FSK 64 16 #define SX127X_CRYSTAL_FREQ 32.0 17 #define SX127X_DIV_EXPONENT 19 20 #define SX127X_REG_FIFO 0x00 21 #define SX127X_REG_OP_MODE 0x01 22 #define SX127X_REG_FRF_MSB 0x06 23 #define SX127X_REG_FRF_MID 0x07 24 #define SX127X_REG_FRF_LSB 0x08 25 #define SX127X_REG_PA_CONFIG 0x09 26 #define SX127X_REG_PA_RAMP 0x0A 27 #define SX127X_REG_OCP 0x0B 28 #define SX127X_REG_LNA 0x0C 29 #define SX127X_REG_FIFO_ADDR_PTR 0x0D 30 #define SX127X_REG_FIFO_TX_BASE_ADDR 0x0E 31 #define SX127X_REG_FIFO_RX_BASE_ADDR 0x0F 32 #define SX127X_REG_FIFO_RX_CURRENT_ADDR 0x10 33 #define SX127X_REG_IRQ_FLAGS_MASK 0x11 34 #define SX127X_REG_IRQ_FLAGS 0x12 35 #define SX127X_REG_RX_NB_BYTES 0x13 36 #define SX127X_REG_RX_HEADER_CNT_VALUE_MSB 0x14 37 #define SX127X_REG_RX_HEADER_CNT_VALUE_LSB 0x15 38 #define SX127X_REG_RX_PACKET_CNT_VALUE_MSB 0x16 39 #define SX127X_REG_RX_PACKET_CNT_VALUE_LSB 0x17 40 #define SX127X_REG_MODEM_STAT 0x18 41 #define SX127X_REG_PKT_SNR_VALUE 0x19 42 #define SX127X_REG_PKT_RSSI_VALUE 0x1A 43 #define SX127X_REG_RSSI_VALUE 0x1B 44 #define SX127X_REG_HOP_CHANNEL 0x1C 45 #define SX127X_REG_MODEM_CONFIG_1 0x1D 46 #define SX127X_REG_MODEM_CONFIG_2 0x1E 47 #define SX127X_REG_SYMB_TIMEOUT_LSB 0x1F 48 #define SX127X_REG_PREAMBLE_MSB 0x20 49 #define SX127X_REG_PREAMBLE_LSB 0x21 50 #define SX127X_REG_PAYLOAD_LENGTH 0x22 51 #define SX127X_REG_MAX_PAYLOAD_LENGTH 0x23 52 #define SX127X_REG_HOP_PERIOD 0x24 53 #define SX127X_REG_FIFO_RX_BYTE_ADDR 0x25 54 #define SX127X_REG_FEI_MSB 0x28 55 #define SX127X_REG_FEI_MID 0x29 56 #define SX127X_REG_FEI_LSB 0x2A 57 #define SX127X_REG_RSSI_WIDEBAND 0x2C 58 #define SX127X_REG_DETECT_OPTIMIZE 0x31 59 #define SX127X_REG_INVERT_IQ 0x33 60 #define SX127X_REG_DETECTION_THRESHOLD 0x37 61 #define SX127X_REG_SYNC_WORD 0x39 62 #define SX127X_REG_DIO_MAPPING_1 0x40 63 #define SX127X_REG_DIO_MAPPING_2 0x41 64 #define SX127X_REG_VERSION 0x42 68 #define SX127X_FSK_OOK 0b00000000 // 7 7 FSK/OOK mode 69 #define SX127X_LORA 0b10000000 // 7 7 LoRa mode 70 #define SX127X_ACCESS_SHARED_REG_OFF 0b00000000 // 6 6 access LoRa registers (0x0D:0x3F) in LoRa mode 71 #define SX127X_ACCESS_SHARED_REG_ON 0b01000000 // 6 6 access FSK registers (0x0D:0x3F) in LoRa mode 72 #define SX127X_SLEEP 0b00000000 // 2 0 sleep 73 #define SX127X_STANDBY 0b00000001 // 2 0 standby 74 #define SX127X_FSTX 0b00000010 // 2 0 frequency synthesis TX 75 #define SX127X_TX 0b00000011 // 2 0 transmit 76 #define SX127X_FSRX 0b00000100 // 2 0 frequency synthesis RX 77 #define SX127X_RXCONTINUOUS 0b00000101 // 2 0 receive continuous 78 #define SX127X_RXSINGLE 0b00000110 // 2 0 receive single 79 #define SX127X_CAD 0b00000111 // 2 0 channel activity detection 82 #define SX127X_PA_SELECT_RFO 0b00000000 // 7 7 RFO pin output, power limited to +14 dBm 83 #define SX127X_PA_SELECT_BOOST 0b10000000 // 7 7 PA_BOOST pin output, power limited to +20 dBm 84 #define SX127X_OUTPUT_POWER 0b00001111 // 3 0 output power: P_out = 2 + OUTPUT_POWER [dBm] for PA_SELECT_BOOST 88 #define SX127X_OCP_OFF 0b00000000 // 5 5 PA overload current protection disabled 89 #define SX127X_OCP_ON 0b00100000 // 5 5 PA overload current protection enabled 90 #define SX127X_OCP_TRIM 0b00001011 // 4 0 OCP current: I_max(OCP_TRIM = 0b1011) = 100 mA 93 #define SX127X_LNA_GAIN_1 0b00100000 // 7 5 LNA gain setting: max gain 94 #define SX127X_LNA_GAIN_2 0b01000000 // 7 5 . 95 #define SX127X_LNA_GAIN_3 0b01100000 // 7 5 . 96 #define SX127X_LNA_GAIN_4 0b10000000 // 7 5 . 97 #define SX127X_LNA_GAIN_5 0b10100000 // 7 5 . 98 #define SX127X_LNA_GAIN_6 0b11000000 // 7 5 min gain 99 #define SX127X_LNA_BOOST_OFF 0b00000000 // 1 0 default LNA current 100 #define SX127X_LNA_BOOST_ON 0b00000011 // 1 0 150% LNA current 103 #define SX127X_SF_6 0b01100000 // 7 4 spreading factor: 64 chips/bit 104 #define SX127X_SF_7 0b01110000 // 7 4 128 chips/bit 105 #define SX127X_SF_8 0b10000000 // 7 4 256 chips/bit 106 #define SX127X_SF_9 0b10010000 // 7 4 512 chips/bit 107 #define SX127X_SF_10 0b10100000 // 7 4 1024 chips/bit 108 #define SX127X_SF_11 0b10110000 // 7 4 2048 chips/bit 109 #define SX127X_SF_12 0b11000000 // 7 4 4096 chips/bit 110 #define SX127X_TX_MODE_SINGLE 0b00000000 // 3 3 single TX 111 #define SX127X_TX_MODE_CONT 0b00001000 // 3 3 continuous TX 112 #define SX127X_RX_TIMEOUT_MSB 0b00000000 // 1 0 115 #define SX127X_RX_TIMEOUT_LSB 0b01100100 // 7 0 10 bit RX operation timeout 118 #define SX127X_PREAMBLE_LENGTH_MSB 0b00000000 // 7 0 2 byte preamble length setting: l_P = PREAMBLE_LENGTH + 4.25 119 #define SX127X_PREAMBLE_LENGTH_LSB 0b00001000 // 7 0 where l_p = preamble length 122 #define SX127X_DETECT_OPTIMIZE_SF_6 0b00000101 // 2 0 SF6 detection optimization 123 #define SX127X_DETECT_OPTIMIZE_SF_7_12 0b00000011 // 2 0 SF7 to SF12 detection optimization 126 #define SX127X_DETECTION_THRESHOLD_SF_6 0b00001100 // 7 0 SF6 detection threshold 127 #define SX127X_DETECTION_THRESHOLD_SF_7_12 0b00001010 // 7 0 SF7 to SF12 detection threshold 130 #define SX127X_PA_BOOST_OFF 0b00000100 // 2 0 PA_BOOST disabled 131 #define SX127X_PA_BOOST_ON 0b00000111 // 2 0 +20 dBm on PA_BOOST when OUTPUT_POWER = 0b1111 134 #define SX127X_HOP_PERIOD_OFF 0b00000000 // 7 0 number of periods between frequency hops; 0 = disabled 135 #define SX127X_HOP_PERIOD_MAX 0b11111111 // 7 0 138 #define SX127X_DIO0_RX_DONE 0b00000000 // 7 6 139 #define SX127X_DIO0_TX_DONE 0b01000000 // 7 6 140 #define SX127X_DIO0_CAD_DONE 0b10000000 // 7 6 141 #define SX127X_DIO1_RX_TIMEOUT 0b00000000 // 5 4 142 #define SX127X_DIO1_FHSS_CHANGE_CHANNEL 0b00010000 // 5 4 143 #define SX127X_DIO1_CAD_DETECTED 0b00100000 // 5 4 146 #define SX127X_CLEAR_IRQ_FLAG_RX_TIMEOUT 0b10000000 // 7 7 timeout 147 #define SX127X_CLEAR_IRQ_FLAG_RX_DONE 0b01000000 // 6 6 packet reception complete 148 #define SX127X_CLEAR_IRQ_FLAG_PAYLOAD_CRC_ERROR 0b00100000 // 5 5 payload CRC error 149 #define SX127X_CLEAR_IRQ_FLAG_VALID_HEADER 0b00010000 // 4 4 valid header received 150 #define SX127X_CLEAR_IRQ_FLAG_TX_DONE 0b00001000 // 3 3 payload transmission complete 151 #define SX127X_CLEAR_IRQ_FLAG_CAD_DONE 0b00000100 // 2 2 CAD complete 152 #define SX127X_CLEAR_IRQ_FLAG_FHSS_CHANGE_CHANNEL 0b00000010 // 1 1 FHSS change channel 153 #define SX127X_CLEAR_IRQ_FLAG_CAD_DETECTED 0b00000001 // 0 0 valid LoRa signal detected during CAD operation 156 #define SX127X_MASK_IRQ_FLAG_RX_TIMEOUT 0b01111111 // 7 7 timeout 157 #define SX127X_MASK_IRQ_FLAG_RX_DONE 0b10111111 // 6 6 packet reception complete 158 #define SX127X_MASK_IRQ_FLAG_PAYLOAD_CRC_ERROR 0b11011111 // 5 5 payload CRC error 159 #define SX127X_MASK_IRQ_FLAG_VALID_HEADER 0b11101111 // 4 4 valid header received 160 #define SX127X_MASK_IRQ_FLAG_TX_DONE 0b11110111 // 3 3 payload transmission complete 161 #define SX127X_MASK_IRQ_FLAG_CAD_DONE 0b11111011 // 2 2 CAD complete 162 #define SX127X_MASK_IRQ_FLAG_FHSS_CHANGE_CHANNEL 0b11111101 // 1 1 FHSS change channel 163 #define SX127X_MASK_IRQ_FLAG_CAD_DETECTED 0b11111110 // 0 0 valid LoRa signal detected during CAD operation 166 #define SX127X_FIFO_TX_BASE_ADDR_MAX 0b00000000 // 7 0 allocate the entire FIFO buffer for TX only 169 #define SX127X_FIFO_RX_BASE_ADDR_MAX 0b00000000 // 7 0 allocate the entire FIFO buffer for RX only 172 #define SX127X_SYNC_WORD 0x12 // 7 0 default LoRa sync word 173 #define SX127X_SYNC_WORD_LORAWAN 0x34 // 7 0 sync word reserved for LoRaWAN networks 177 #define SX127X_REG_BITRATE_MSB 0x02 178 #define SX127X_REG_BITRATE_LSB 0x03 179 #define SX127X_REG_FDEV_MSB 0x04 180 #define SX127X_REG_FDEV_LSB 0x05 181 #define SX127X_REG_RX_CONFIG 0x0D 182 #define SX127X_REG_RSSI_CONFIG 0x0E 183 #define SX127X_REG_RSSI_COLLISION 0x0F 184 #define SX127X_REG_RSSI_THRESH 0x10 185 #define SX127X_REG_RSSI_VALUE_FSK 0x11 186 #define SX127X_REG_RX_BW 0x12 187 #define SX127X_REG_AFC_BW 0x13 188 #define SX127X_REG_OOK_PEAK 0x14 189 #define SX127X_REG_OOK_FIX 0x15 190 #define SX127X_REG_OOK_AVG 0x16 191 #define SX127X_REG_AFC_FEI 0x1A 192 #define SX127X_REG_AFC_MSB 0x1B 193 #define SX127X_REG_AFC_LSB 0x1C 194 #define SX127X_REG_FEI_MSB_FSK 0x1D 195 #define SX127X_REG_FEI_LSB_FSK 0x1E 196 #define SX127X_REG_PREAMBLE_DETECT 0x1F 197 #define SX127X_REG_RX_TIMEOUT_1 0x20 198 #define SX127X_REG_RX_TIMEOUT_2 0x21 199 #define SX127X_REG_RX_TIMEOUT_3 0x22 200 #define SX127X_REG_RX_DELAY 0x23 201 #define SX127X_REG_OSC 0x24 202 #define SX127X_REG_PREAMBLE_MSB_FSK 0x25 203 #define SX127X_REG_PREAMBLE_LSB_FSK 0x26 204 #define SX127X_REG_SYNC_CONFIG 0x27 205 #define SX127X_REG_SYNC_VALUE_1 0x28 206 #define SX127X_REG_SYNC_VALUE_2 0x29 207 #define SX127X_REG_SYNC_VALUE_3 0x2A 208 #define SX127X_REG_SYNC_VALUE_4 0x2B 209 #define SX127X_REG_SYNC_VALUE_5 0x2C 210 #define SX127X_REG_SYNC_VALUE_6 0x2D 211 #define SX127X_REG_SYNC_VALUE_7 0x2E 212 #define SX127X_REG_SYNC_VALUE_8 0x2F 213 #define SX127X_REG_PACKET_CONFIG_1 0x30 214 #define SX127X_REG_PACKET_CONFIG_2 0x31 215 #define SX127X_REG_PAYLOAD_LENGTH_FSK 0x32 216 #define SX127X_REG_NODE_ADRS 0x33 217 #define SX127X_REG_BROADCAST_ADRS 0x34 218 #define SX127X_REG_FIFO_THRESH 0x35 219 #define SX127X_REG_SEQ_CONFIG_1 0x36 220 #define SX127X_REG_SEQ_CONFIG_2 0x37 221 #define SX127X_REG_TIMER_RESOL 0x38 222 #define SX127X_REG_TIMER1_COEF 0x39 223 #define SX127X_REG_TIMER2_COEF 0x3A 224 #define SX127X_REG_IMAGE_CAL 0x3B 225 #define SX127X_REG_TEMP 0x3C 226 #define SX127X_REG_LOW_BAT 0x3D 227 #define SX127X_REG_IRQ_FLAGS_1 0x3E 228 #define SX127X_REG_IRQ_FLAGS_2 0x3F 232 #define SX127X_MODULATION_FSK 0b00000000 // 6 5 FSK modulation scheme 233 #define SX127X_MODULATION_OOK 0b00100000 // 6 5 OOK modulation scheme 234 #define SX127X_RX 0b00000101 // 2 0 receiver mode 237 #define SX127X_BITRATE_MSB 0x1A // 7 0 bit rate setting: BitRate = F(XOSC)/(BITRATE + BITRATE_FRAC/16) 238 #define SX127X_BITRATE_LSB 0x0B // 7 0 default value: 4.8 kbps 241 #define SX127X_FDEV_MSB 0x00 // 5 0 frequency deviation: Fdev = Fstep * FDEV 242 #define SX127X_FDEV_LSB 0x52 // 7 0 default value: 5 kHz 245 #define SX127X_RESTART_RX_ON_COLLISION_OFF 0b00000000 // 7 7 automatic receiver restart disabled (default) 246 #define SX127X_RESTART_RX_ON_COLLISION_ON 0b10000000 // 7 7 automatically restart receiver if it gets saturated or on packet collision 247 #define SX127X_RESTART_RX_WITHOUT_PLL_LOCK 0b01000000 // 6 6 manually restart receiver without frequency change 248 #define SX127X_RESTART_RX_WITH_PLL_LOCK 0b00100000 // 5 5 manually restart receiver with frequency change 249 #define SX127X_AFC_AUTO_OFF 0b00000000 // 4 4 no AFC performed (default) 250 #define SX127X_AFC_AUTO_ON 0b00010000 // 4 4 AFC performed at each receiver startup 251 #define SX127X_AGC_AUTO_OFF 0b00000000 // 3 3 LNA gain set manually by register 252 #define SX127X_AGC_AUTO_ON 0b00001000 // 3 3 LNA gain controlled by AGC 253 #define SX127X_RX_TRIGGER_NONE 0b00000000 // 2 0 receiver startup at: none 254 #define SX127X_RX_TRIGGER_RSSI_INTERRUPT 0b00000001 // 2 0 RSSI interrupt 255 #define SX127X_RX_TRIGGER_PREAMBLE_DETECT 0b00000110 // 2 0 preamble detected 256 #define SX127X_RX_TRIGGER_BOTH 0b00000111 // 2 0 RSSI interrupt and preamble detected 259 #define SX127X_RSSI_SMOOTHING_SAMPLES_2 0b00000000 // 2 0 number of samples for RSSI average: 2 260 #define SX127X_RSSI_SMOOTHING_SAMPLES_4 0b00000001 // 2 0 4 261 #define SX127X_RSSI_SMOOTHING_SAMPLES_8 0b00000010 // 2 0 8 (default) 262 #define SX127X_RSSI_SMOOTHING_SAMPLES_16 0b00000011 // 2 0 16 263 #define SX127X_RSSI_SMOOTHING_SAMPLES_32 0b00000100 // 2 0 32 264 #define SX127X_RSSI_SMOOTHING_SAMPLES_64 0b00000101 // 2 0 64 265 #define SX127X_RSSI_SMOOTHING_SAMPLES_128 0b00000110 // 2 0 128 266 #define SX127X_RSSI_SMOOTHING_SAMPLES_256 0b00000111 // 2 0 256 269 #define SX127X_RSSI_COLLISION_THRESHOLD 0x0A // 7 0 RSSI threshold in dB that will be considered a collision, default value: 10 dB 272 #define SX127X_RSSI_THRESHOLD 0xFF // 7 0 RSSI threshold that will trigger RSSI interrupt, RssiThreshold = RSSI_THRESHOLD / 2 [dBm] 275 #define SX127X_RX_BW_MANT_16 0b00000000 // 4 3 channel filter bandwidth: RxBw = F(XOSC) / (RxBwMant * 2^(RxBwExp + 2)) [kHz] 276 #define SX127X_RX_BW_MANT_20 0b00001000 // 4 3 277 #define SX127X_RX_BW_MANT_24 0b00010000 // 4 3 default RxBwMant parameter 278 #define SX127X_RX_BW_EXP 0b00000101 // 2 0 default RxBwExp parameter 281 #define SX127X_RX_BW_MANT_AFC 0b00001000 // 4 3 default RxBwMant parameter used during AFC 282 #define SX127X_RX_BW_EXP_AFC 0b00000011 // 2 0 default RxBwExp parameter used during AFC 285 #define SX127X_BIT_SYNC_OFF 0b00000000 // 5 5 bit synchronizer disabled (not allowed in packet mode) 286 #define SX127X_BIT_SYNC_ON 0b00100000 // 5 5 bit synchronizer enabled (default) 287 #define SX127X_OOK_THRESH_FIXED 0b00000000 // 4 3 OOK threshold type: fixed value 288 #define SX127X_OOK_THRESH_PEAK 0b00001000 // 4 3 peak mode (default) 289 #define SX127X_OOK_THRESH_AVERAGE 0b00010000 // 4 3 average mode 290 #define SX127X_OOK_PEAK_THRESH_STEP_0_5_DB 0b00000000 // 2 0 OOK demodulator step size: 0.5 dB (default) 291 #define SX127X_OOK_PEAK_THRESH_STEP_1_0_DB 0b00000001 // 2 0 1.0 dB 292 #define SX127X_OOK_PEAK_THRESH_STEP_1_5_DB 0b00000010 // 2 0 1.5 dB 293 #define SX127X_OOK_PEAK_THRESH_STEP_2_0_DB 0b00000011 // 2 0 2.0 dB 294 #define SX127X_OOK_PEAK_THRESH_STEP_3_0_DB 0b00000100 // 2 0 3.0 dB 295 #define SX127X_OOK_PEAK_THRESH_STEP_4_0_DB 0b00000101 // 2 0 4.0 dB 296 #define SX127X_OOK_PEAK_THRESH_STEP_5_0_DB 0b00000110 // 2 0 5.0 dB 297 #define SX127X_OOK_PEAK_THRESH_STEP_6_0_DB 0b00000111 // 2 0 6.0 dB 300 #define SX127X_OOK_FIXED_THRESHOLD 0x0C // 7 0 default fixed threshold for OOK data slicer 303 #define SX127X_OOK_PEAK_THRESH_DEC_1_1_CHIP 0b00000000 // 7 5 OOK demodulator step period: once per chip (default) 304 #define SX127X_OOK_PEAK_THRESH_DEC_1_2_CHIP 0b00100000 // 7 5 once every 2 chips 305 #define SX127X_OOK_PEAK_THRESH_DEC_1_4_CHIP 0b01000000 // 7 5 once every 4 chips 306 #define SX127X_OOK_PEAK_THRESH_DEC_1_8_CHIP 0b01100000 // 7 5 once every 8 chips 307 #define SX127X_OOK_PEAK_THRESH_DEC_2_1_CHIP 0b10000000 // 7 5 2 times per chip 308 #define SX127X_OOK_PEAK_THRESH_DEC_4_1_CHIP 0b10100000 // 7 5 4 times per chip 309 #define SX127X_OOK_PEAK_THRESH_DEC_8_1_CHIP 0b11000000 // 7 5 8 times per chip 310 #define SX127X_OOK_PEAK_THRESH_DEC_16_1_CHIP 0b11100000 // 7 5 16 times per chip 311 #define SX127X_OOK_AVERAGE_OFFSET_0_DB 0b00000000 // 3 2 OOK average threshold offset: 0.0 dB (default) 312 #define SX127X_OOK_AVERAGE_OFFSET_2_DB 0b00000100 // 3 2 2.0 dB 313 #define SX127X_OOK_AVERAGE_OFFSET_4_DB 0b00001000 // 3 2 4.0 dB 314 #define SX127X_OOK_AVERAGE_OFFSET_6_DB 0b00001100 // 3 2 6.0 dB 315 #define SX127X_OOK_AVG_THRESH_FILT_32_PI 0b00000000 // 1 0 OOK average filter coefficient: chip rate / 32*pi 316 #define SX127X_OOK_AVG_THRESH_FILT_8_PI 0b00000001 // 1 0 chip rate / 8*pi 317 #define SX127X_OOK_AVG_THRESH_FILT_4_PI 0b00000010 // 1 0 chip rate / 4*pi (default) 318 #define SX127X_OOK_AVG_THRESH_FILT_2_PI 0b00000011 // 1 0 chip rate / 2*pi 321 #define SX127X_AGC_START 0b00010000 // 4 4 manually start AGC sequence 322 #define SX127X_AFC_CLEAR 0b00000010 // 1 1 manually clear AFC register 323 #define SX127X_AFC_AUTO_CLEAR_OFF 0b00000000 // 0 0 AFC register will not be cleared at the start of AFC (default) 324 #define SX127X_AFC_AUTO_CLEAR_ON 0b00000001 // 0 0 AFC register will be cleared at the start of AFC 327 #define SX127X_PREAMBLE_DETECTOR_OFF 0b00000000 // 7 7 preamble detection disabled 328 #define SX127X_PREAMBLE_DETECTOR_ON 0b10000000 // 7 7 preamble detection enabled (default) 329 #define SX127X_PREAMBLE_DETECTOR_1_BYTE 0b00000000 // 6 5 preamble detection size: 1 byte (default) 330 #define SX127X_PREAMBLE_DETECTOR_2_BYTE 0b00100000 // 6 5 2 bytes 331 #define SX127X_PREAMBLE_DETECTOR_3_BYTE 0b01000000 // 6 5 3 bytes 332 #define SX127X_PREAMBLE_DETECTOR_TOL 0x0A // 4 0 default number of tolerated errors per chip (4 chips per bit) 335 #define SX127X_TIMEOUT_RX_RSSI_OFF 0x00 // 7 0 disable receiver timeout when RSSI interrupt doesn't occur (default) 338 #define SX127X_TIMEOUT_RX_PREAMBLE_OFF 0x00 // 7 0 disable receiver timeout when preamble interrupt doesn't occur (default) 341 #define SX127X_TIMEOUT_SIGNAL_SYNC_OFF 0x00 // 7 0 disable receiver timeout when sync address interrupt doesn't occur (default) 344 #define SX127X_RC_CAL_START 0b00000000 // 3 3 manually start RC oscillator calibration 345 #define SX127X_CLK_OUT_FXOSC 0b00000000 // 2 0 ClkOut frequency: F(XOSC) 346 #define SX127X_CLK_OUT_FXOSC_2 0b00000001 // 2 0 F(XOSC) / 2 347 #define SX127X_CLK_OUT_FXOSC_4 0b00000010 // 2 0 F(XOSC) / 4 348 #define SX127X_CLK_OUT_FXOSC_8 0b00000011 // 2 0 F(XOSC) / 8 349 #define SX127X_CLK_OUT_FXOSC_16 0b00000100 // 2 0 F(XOSC) / 16 350 #define SX127X_CLK_OUT_FXOSC_32 0b00000101 // 2 0 F(XOSC) / 32 351 #define SX127X_CLK_OUT_RC 0b00000110 // 2 0 RC 352 #define SX127X_CLK_OUT_OFF 0b00000111 // 2 0 disabled (default) 355 #define SX127X_PREAMBLE_SIZE_MSB 0x00 // 7 0 preamble size in bytes 356 #define SX127X_PREAMBLE_SIZE_LSB 0x03 // 7 0 default value: 3 bytes 359 #define SX127X_AUTO_RESTART_RX_MODE_OFF 0b00000000 // 7 6 Rx mode restart after packet reception: disabled 360 #define SX127X_AUTO_RESTART_RX_MODE_NO_PLL 0b01000000 // 7 6 enabled, don't wait for PLL lock 361 #define SX127X_AUTO_RESTART_RX_MODE_PLL 0b10000000 // 7 6 enabled, wait for PLL lock (default) 362 #define SX127X_PREAMBLE_POLARITY_AA 0b00000000 // 5 5 preamble polarity: 0xAA = 0b10101010 (default) 363 #define SX127X_PREAMBLE_POLARITY_55 0b00100000 // 5 5 0x55 = 0b01010101 364 #define SX127X_SYNC_OFF 0b00000000 // 4 4 sync word disabled 365 #define SX127X_SYNC_ON 0b00010000 // 4 4 sync word enabled (default) 366 #define SX127X_SYNC_SIZE 0x03 // 2 0 sync word size in bytes, SyncSize = SYNC_SIZE + 1 bytes 369 #define SX127X_SYNC_VALUE_1 0x01 // 7 0 sync word: 1st byte (MSB) 370 #define SX127X_SYNC_VALUE_2 0x01 // 7 0 2nd byte 371 #define SX127X_SYNC_VALUE_3 0x01 // 7 0 3rd byte 372 #define SX127X_SYNC_VALUE_4 0x01 // 7 0 4th byte 373 #define SX127X_SYNC_VALUE_5 0x01 // 7 0 5th byte 374 #define SX127X_SYNC_VALUE_6 0x01 // 7 0 6th byte 375 #define SX127X_SYNC_VALUE_7 0x01 // 7 0 7th byte 376 #define SX127X_SYNC_VALUE_8 0x01 // 7 0 8th byte (LSB) 379 #define SX127X_PACKET_FIXED 0b00000000 // 7 7 packet format: fixed length 380 #define SX127X_PACKET_VARIABLE 0b10000000 // 7 7 variable length (default) 381 #define SX127X_DC_FREE_NONE 0b00000000 // 6 5 DC-free encoding: disabled (default) 382 #define SX127X_DC_FREE_MANCHESTER 0b00100000 // 6 5 Manchester 383 #define SX127X_DC_FREE_WHITENING 0b01000000 // 6 5 Whitening 384 #define SX127X_CRC_OFF 0b00000000 // 4 4 CRC disabled 385 #define SX127X_CRC_ON 0b00010000 // 4 4 CRC enabled (default) 386 #define SX127X_CRC_AUTOCLEAR_OFF 0b00001000 // 3 3 keep FIFO on CRC mismatch, issue payload ready interrupt 387 #define SX127X_CRC_AUTOCLEAR_ON 0b00000000 // 3 3 clear FIFO on CRC mismatch, do not issue payload ready interrupt 388 #define SX127X_ADDRESS_FILTERING_OFF 0b00000000 // 2 1 address filtering: none (default) 389 #define SX127X_ADDRESS_FILTERING_NODE 0b00000010 // 2 1 node 390 #define SX127X_ADDRESS_FILTERING_NODE_BROADCAST 0b00000100 // 2 1 node or broadcast 391 #define SX127X_CRC_WHITENING_TYPE_CCITT 0b00000000 // 0 0 CRC and whitening algorithms: CCITT CRC with standard whitening (default) 392 #define SX127X_CRC_WHITENING_TYPE_IBM 0b00000001 // 0 0 IBM CRC with alternate whitening 395 #define SX127X_DATA_MODE_PACKET 0b01000000 // 6 6 data mode: packet (default) 396 #define SX127X_DATA_MODE_CONTINUOUS 0b00000000 // 6 6 continuous 397 #define SX127X_IO_HOME_OFF 0b00000000 // 5 5 io-homecontrol compatibility disabled (default) 398 #define SX127X_IO_HOME_ON 0b00100000 // 5 5 io-homecontrol compatibility enabled 401 #define SX127X_TX_START_FIFO_LEVEL 0b00000000 // 7 7 start packet transmission when: number of bytes in FIFO exceeds FIFO_THRESHOLD 402 #define SX127X_TX_START_FIFO_NOT_EMPTY 0b10000000 // 7 7 at least one byte in FIFO (default) 403 #define SX127X_FIFO_THRESH 0x0F // 5 0 FIFO level threshold 406 #define SX127X_SEQUENCER_START 0b10000000 // 7 7 manually start sequencer 407 #define SX127X_SEQUENCER_STOP 0b01000000 // 6 6 manually stop sequencer 408 #define SX127X_IDLE_MODE_STANDBY 0b00000000 // 5 5 chip mode during sequencer idle mode: standby (default) 409 #define SX127X_IDLE_MODE_SLEEP 0b00100000 // 5 5 sleep 410 #define SX127X_FROM_START_LP_SELECTION 0b00000000 // 4 3 mode that will be set after starting sequencer: low power selection (default) 411 #define SX127X_FROM_START_RECEIVE 0b00001000 // 4 3 receive 412 #define SX127X_FROM_START_TRANSMIT 0b00010000 // 4 3 transmit 413 #define SX127X_FROM_START_TRANSMIT_FIFO_LEVEL 0b00011000 // 4 3 transmit on a FIFO level interrupt 414 #define SX127X_LP_SELECTION_SEQ_OFF 0b00000000 // 2 2 mode that will be set after exiting low power selection: sequencer off (default) 415 #define SX127X_LP_SELECTION_IDLE 0b00000100 // 2 2 idle state 416 #define SX127X_FROM_IDLE_TRANSMIT 0b00000000 // 1 1 mode that will be set after exiting idle mode: transmit (default) 417 #define SX127X_FROM_IDLE_RECEIVE 0b00000010 // 1 1 receive 418 #define SX127X_FROM_TRANSMIT_LP_SELECTION 0b00000000 // 0 0 mode that will be set after exiting transmit mode: low power selection (default) 419 #define SX127X_FROM_TRANSMIT_RECEIVE 0b00000001 // 0 0 receive 422 #define SX127X_FROM_RECEIVE_PACKET_RECEIVED_PAYLOAD 0b00100000 // 7 5 mode that will be set after exiting receive mode: packet received on payload ready interrupt (default) 423 #define SX127X_FROM_RECEIVE_LP_SELECTION 0b01000000 // 7 5 low power selection 424 #define SX127X_FROM_RECEIVE_PACKET_RECEIVED_CRC_OK 0b01100000 // 7 5 packet received on CRC OK interrupt 425 #define SX127X_FROM_RECEIVE_SEQ_OFF_RSSI 0b10000000 // 7 5 sequencer off on RSSI interrupt 426 #define SX127X_FROM_RECEIVE_SEQ_OFF_SYNC_ADDR 0b10100000 // 7 5 sequencer off on sync address interrupt 427 #define SX127X_FROM_RECEIVE_SEQ_OFF_PREAMBLE_DETECT 0b11000000 // 7 5 sequencer off on preamble detect interrupt 428 #define SX127X_FROM_RX_TIMEOUT_RECEIVE 0b00000000 // 4 3 mode that will be set after Rx timeout: receive (default) 429 #define SX127X_FROM_RX_TIMEOUT_TRANSMIT 0b00001000 // 4 3 transmit 430 #define SX127X_FROM_RX_TIMEOUT_LP_SELECTION 0b00010000 // 4 3 low power selection 431 #define SX127X_FROM_RX_TIMEOUT_SEQ_OFF 0b00011000 // 4 3 sequencer off 432 #define SX127X_FROM_PACKET_RECEIVED_SEQ_OFF 0b00000000 // 2 0 mode that will be set after packet received: sequencer off (default) 433 #define SX127X_FROM_PACKET_RECEIVED_TRANSMIT 0b00000001 // 2 0 transmit 434 #define SX127X_FROM_PACKET_RECEIVED_LP_SELECTION 0b00000010 // 2 0 low power selection 435 #define SX127X_FROM_PACKET_RECEIVED_RECEIVE_FS 0b00000011 // 2 0 receive via FS 436 #define SX127X_FROM_PACKET_RECEIVED_RECEIVE 0b00000100 // 2 0 receive 439 #define SX127X_TIMER1_OFF 0b00000000 // 3 2 timer 1 resolution: disabled (default) 440 #define SX127X_TIMER1_RESOLUTION_64_US 0b00000100 // 3 2 64 us 441 #define SX127X_TIMER1_RESOLUTION_4_1_MS 0b00001000 // 3 2 4.1 ms 442 #define SX127X_TIMER1_RESOLUTION_262_MS 0b00001100 // 3 2 262 ms 443 #define SX127X_TIMER2_OFF 0b00000000 // 3 2 timer 2 resolution: disabled (default) 444 #define SX127X_TIMER2_RESOLUTION_64_US 0b00000001 // 3 2 64 us 445 #define SX127X_TIMER2_RESOLUTION_4_1_MS 0b00000010 // 3 2 4.1 ms 446 #define SX127X_TIMER2_RESOLUTION_262_MS 0b00000011 // 3 2 262 ms 449 #define SX127X_TIMER1_COEFFICIENT 0xF5 // 7 0 multiplication coefficient for timer 1 452 #define SX127X_TIMER2_COEFFICIENT 0x20 // 7 0 multiplication coefficient for timer 2 455 #define SX127X_AUTO_IMAGE_CAL_OFF 0b00000000 // 7 7 temperature calibration disabled (default) 456 #define SX127X_AUTO_IMAGE_CAL_ON 0b10000000 // 7 7 temperature calibration enabled 457 #define SX127X_IMAGE_CAL_START 0b01000000 // 6 6 start temperature calibration 458 #define SX127X_IMAGE_CAL_RUNNING 0b00100000 // 5 5 temperature calibration is on-going 459 #define SX127X_IMAGE_CAL_COMPLETE 0b00000000 // 5 5 temperature calibration finished 460 #define SX127X_TEMP_CHANGED 0b00001000 // 3 3 temperature changed more than TEMP_THRESHOLD since last calibration 461 #define SX127X_TEMP_THRESHOLD_5_DEG_C 0b00000000 // 2 1 temperature change threshold: 5 deg. C 462 #define SX127X_TEMP_THRESHOLD_10_DEG_C 0b00000010 // 2 1 10 deg. C (default) 463 #define SX127X_TEMP_THRESHOLD_15_DEG_C 0b00000100 // 2 1 15 deg. C 464 #define SX127X_TEMP_THRESHOLD_20_DEG_C 0b00000110 // 2 1 20 deg. C 465 #define SX127X_TEMP_MONITOR_ON 0b00000000 // 0 0 temperature monitoring enabled (default) 466 #define SX127X_TEMP_MONITOR_OFF 0b00000001 // 0 0 temperature monitoring disabled 469 #define SX127X_LOW_BAT_OFF 0b00000000 // 3 3 low battery detector disabled 470 #define SX127X_LOW_BAT_ON 0b00001000 // 3 3 low battery detector enabled 471 #define SX127X_LOW_BAT_TRIM_1_695_V 0b00000000 // 2 0 battery voltage threshold: 1.695 V 472 #define SX127X_LOW_BAT_TRIM_1_764_V 0b00000001 // 2 0 1.764 V 473 #define SX127X_LOW_BAT_TRIM_1_835_V 0b00000010 // 2 0 1.835 V (default) 474 #define SX127X_LOW_BAT_TRIM_1_905_V 0b00000011 // 2 0 1.905 V 475 #define SX127X_LOW_BAT_TRIM_1_976_V 0b00000100 // 2 0 1.976 V 476 #define SX127X_LOW_BAT_TRIM_2_045_V 0b00000101 // 2 0 2.045 V 477 #define SX127X_LOW_BAT_TRIM_2_116_V 0b00000110 // 2 0 2.116 V 478 #define SX127X_LOW_BAT_TRIM_2_185_V 0b00000111 // 2 0 2.185 V 481 #define SX127X_FLAG_MODE_READY 0b10000000 // 7 7 requested mode is ready 482 #define SX127X_FLAG_RX_READY 0b01000000 // 6 6 reception ready (after RSSI, AGC, AFC) 483 #define SX127X_FLAG_TX_READY 0b00100000 // 5 5 transmission ready (after PA ramp-up) 484 #define SX127X_FLAG_PLL_LOCK 0b00010000 // 4 4 PLL locked 485 #define SX127X_FLAG_RSSI 0b00001000 // 3 3 RSSI value exceeds RSSI threshold 486 #define SX127X_FLAG_TIMEOUT 0b00000100 // 2 2 timeout occurred 487 #define SX127X_FLAG_PREAMBLE_DETECT 0b00000010 // 1 1 valid preamble was detected 488 #define SX127X_FLAG_SYNC_ADDRESS_MATCH 0b00000001 // 0 0 sync address matched 491 #define SX127X_FLAG_FIFO_FULL 0b10000000 // 7 7 FIFO is full 492 #define SX127X_FLAG_FIFO_EMPTY 0b01000000 // 6 6 FIFO is empty 493 #define SX127X_FLAG_FIFO_LEVEL 0b00100000 // 5 5 number of bytes in FIFO exceeds FIFO_THRESHOLD 494 #define SX127X_FLAG_FIFO_OVERRUN 0b00010000 // 4 4 FIFO overrun occurred 495 #define SX127X_FLAG_PACKET_SENT 0b00001000 // 3 3 packet was successfully sent 496 #define SX127X_FLAG_PAYLOAD_READY 0b00000100 // 2 2 packet was successfully received 497 #define SX127X_FLAG_CRC_OK 0b00000010 // 1 1 CRC check passed 498 #define SX127X_FLAG_LOW_BAT 0b00000001 // 0 0 battery voltage dropped below threshold 501 #define SX127X_DIO0_CONT_SYNC_ADDRESS 0b00000000 // 7 6 502 #define SX127X_DIO0_CONT_TX_READY 0b00000000 // 7 6 503 #define SX127X_DIO0_CONT_RSSI_PREAMBLE_DETECTED 0b01000000 // 7 6 504 #define SX127X_DIO0_CONT_RX_READY 0b10000000 // 7 6 505 #define SX127X_DIO0_PACK_PAYLOAD_READY 0b00000000 // 7 6 506 #define SX127X_DIO0_PACK_PACKET_SENT 0b00000000 // 7 6 507 #define SX127X_DIO0_PACK_CRC_OK 0b01000000 // 7 6 508 #define SX127X_DIO0_PACK_TEMP_CHANGE_LOW_BAT 0b11000000 // 7 6 509 #define SX127X_DIO1_CONT_DCLK 0b00000000 // 5 4 510 #define SX127X_DIO1_CONT_RSSI_PREAMBLE_DETECTED 0b00010000 // 5 4 511 #define SX127X_DIO1_PACK_FIFO_LEVEL 0b00000000 // 5 4 512 #define SX127X_DIO1_PACK_FIFO_EMPTY 0b00010000 // 5 4 513 #define SX127X_DIO1_PACK_FIFO_FULL 0b00100000 // 5 4 514 #define SX127X_DIO2_CONT_DATA 0b00000000 // 3 2 517 #define SX127X_FAST_HOP_OFF 0b00000000 // 7 7 carrier frequency validated when FRF registers are written 518 #define SX127X_FAST_HOP_ON 0b10000000 // 7 7 carrier frequency validated when FS modes are requested 521 #define SX127X_TCXO_INPUT_EXTERNAL 0b00000000 // 4 4 use external crystal oscillator 522 #define SX127X_TCXO_INPUT_EXTERNAL_CLIPPED 0b00010000 // 4 4 use external crystal oscillator clipped sine connected to XTA pin 525 #define SX127X_PLL_BANDWIDTH_75_KHZ 0b00000000 // 7 6 PLL bandwidth: 75 kHz 526 #define SX127X_PLL_BANDWIDTH_150_KHZ 0b01000000 // 7 6 150 kHz 527 #define SX127X_PLL_BANDWIDTH_225_KHZ 0b10000000 // 7 6 225 kHz 528 #define SX127X_PLL_BANDWIDTH_300_KHZ 0b11000000 // 7 6 300 kHz (default) 566 int16_t
begin(uint8_t chipVersion, uint8_t syncWord, uint16_t preambleLength);
571 virtual void reset() = 0;
590 int16_t
beginFSK(uint8_t chipVersion,
float br,
float freqDev,
float rxBw, uint16_t preambleLength,
bool enableOOK);
604 int16_t
transmit(uint8_t* data,
size_t len, uint8_t addr = 0)
override;
616 int16_t
receive(uint8_t* data,
size_t len)
override;
702 int16_t
startTransmit(uint8_t* data,
size_t len, uint8_t addr = 0)
override;
713 int16_t
startReceive(uint8_t len = 0, uint8_t mode = SX127X_RXCONTINUOUS);
724 int16_t
readData(uint8_t* data,
size_t len)
override;
815 int16_t
setSyncWord(uint8_t* syncWord,
size_t len);
849 int16_t
setOOK(
bool enableOOK);
888 int16_t
setRSSIConfig(uint8_t smoothingSamples, int8_t offset = 0);
948 #ifndef RADIOLIB_GODMODE 960 bool _crcEnabled =
false;
961 size_t _packetLength = 0;
963 int16_t setFrequencyRaw(
float newFreq);
966 int16_t getActiveModem();
967 int16_t directMode();
968 int16_t setPacketMode(uint8_t mode, uint8_t len);
970 #ifndef RADIOLIB_GODMODE 974 bool _packetLengthQueried =
false;
975 uint8_t _packetLengthConfig = SX127X_PACKET_VARIABLE;
977 bool findChip(uint8_t ver);
978 int16_t setMode(uint8_t mode);
979 int16_t setActiveModem(uint8_t modem);
980 void clearIRQFlags();
981 void clearFIFO(
size_t count);
int16_t setRSSIConfig(uint8_t smoothingSamples, int8_t offset=0)
Sets RSSI measurement configuration in FSK mode.
Definition: SX127x.cpp:909
Base class for SX127x series. All derived classes for SX127x (e.g. SX1278 or SX1272) inherit from thi...
Definition: SX127x.h:536
size_t getPacketLength(bool update=true) override
Query modem for the packet length of received payload.
Definition: SX127x.cpp:873
int16_t readData(uint8_t *data, size_t len) override
Reads data that was received after calling startReceive method. This method reads len characters...
Definition: SX127x.cpp:485
diff --git a/class_r_f69.html b/class_r_f69.html
index 66a830cf..58eb266b 100644
--- a/class_r_f69.html
+++ b/class_r_f69.html
@@ -890,7 +890,7 @@ void
Parameters
- crcOn | Set or unset promiscuous mode. |
+ crcOn | Set or unset CRC filtering. |
diff --git a/class_r_f_m95-members.html b/class_r_f_m95-members.html
index aced2c7a..1cdb3927 100644
--- a/class_r_f_m95-members.html
+++ b/class_r_f_m95-members.html
@@ -95,18 +95,20 @@ $(document).ready(function(){initNavTree('class_r_f_m95.html','');});
clearDio0Action() | SX127x | |
clearDio1Action() | SX127x | |
disableAddressFiltering() | SX127x | |
- fixedPacketLengthMode(uint8_t len=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
- forceLDRO(bool enable) | SX1278 | |
- getChipVersion() | SX127x | |
- getDataRate() const | SX127x | |
- getFreqStep() const | PhysicalLayer | |
- getFrequencyError(bool autoCorrect=false) | SX127x | |
- getIRQFlags() | SX127x | |
- getModemStatus() | SX127x | |
- getPacketLength(bool update=true) override | SX127x | virtual |
- getRSSI() | SX1278 | |
- getSNR() | SX127x | |
- getTempRaw() | SX127x | |
+ explicitHeader() | SX1278 | |
+ fixedPacketLengthMode(uint8_t len=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
+ forceLDRO(bool enable) | SX1278 | |
+ getChipVersion() | SX127x | |
+ getDataRate() const | SX127x | |
+ getFreqStep() const | PhysicalLayer | |
+ getFrequencyError(bool autoCorrect=false) | SX127x | |
+ getIRQFlags() | SX127x | |
+ getModemStatus() | SX127x | |
+ getPacketLength(bool update=true) override | SX127x | virtual |
+ getRSSI() | SX1278 | |
+ getSNR() | SX127x | |
+ getTempRaw() | SX127x | |
+ implicitHeader(size_t len) | SX1278 | |
packetMode() | SX127x | |
PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
random() | SX127x | virtual |
diff --git a/class_r_f_m95.html b/class_r_f_m95.html
index a2bfc689..bfec4068 100644
--- a/class_r_f_m95.html
+++ b/class_r_f_m95.html
@@ -166,6 +166,12 @@ void | | int16_t | autoLDRO () |
| Re-enables automatic LDRO configuration. Only available in LoRa mode. After calling this method, LDRO will be enabled automatically when symbol length exceeds 16 ms. More...
|
|
+
int16_t | implicitHeader (size_t len) |
+
| Set implicit header mode for future reception/transmission. More...
|
+
|
+
int16_t | explicitHeader () |
+
| Set explicit header mode for future reception/transmission. More...
|
+
|
| SX127x (Module *mod) |
| Default constructor. Called internally when creating new LoRa instance. More...
|
diff --git a/class_r_f_m96-members.html b/class_r_f_m96-members.html
index 3bba9c94..5c747c82 100644
--- a/class_r_f_m96-members.html
+++ b/class_r_f_m96-members.html
@@ -95,18 +95,20 @@ $(document).ready(function(){initNavTree('class_r_f_m96.html','');});
clearDio0Action() | SX127x | |
clearDio1Action() | SX127x | |
disableAddressFiltering() | SX127x | |
-
fixedPacketLengthMode(uint8_t len=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
-
forceLDRO(bool enable) | SX1278 | |
-
getChipVersion() | SX127x | |
-
getDataRate() const | SX127x | |
-
getFreqStep() const | PhysicalLayer | |
-
getFrequencyError(bool autoCorrect=false) | SX127x | |
-
getIRQFlags() | SX127x | |
-
getModemStatus() | SX127x | |
-
getPacketLength(bool update=true) override | SX127x | virtual |
-
getRSSI() | SX1278 | |
-
getSNR() | SX127x | |
-
getTempRaw() | SX127x | |
+
explicitHeader() | SX1278 | |
+
fixedPacketLengthMode(uint8_t len=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
+
forceLDRO(bool enable) | SX1278 | |
+
getChipVersion() | SX127x | |
+
getDataRate() const | SX127x | |
+
getFreqStep() const | PhysicalLayer | |
+
getFrequencyError(bool autoCorrect=false) | SX127x | |
+
getIRQFlags() | SX127x | |
+
getModemStatus() | SX127x | |
+
getPacketLength(bool update=true) override | SX127x | virtual |
+
getRSSI() | SX1278 | |
+
getSNR() | SX127x | |
+
getTempRaw() | SX127x | |
+
implicitHeader(size_t len) | SX1278 | |
packetMode() | SX127x | |
PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
random() | SX127x | virtual |
diff --git a/class_r_f_m96.html b/class_r_f_m96.html
index f5bc2d6e..f51438f8 100644
--- a/class_r_f_m96.html
+++ b/class_r_f_m96.html
@@ -165,6 +165,12 @@ void
| int16_t | autoLDRO () |
| Re-enables automatic LDRO configuration. Only available in LoRa mode. After calling this method, LDRO will be enabled automatically when symbol length exceeds 16 ms. More...
|
|
+
int16_t | implicitHeader (size_t len) |
+
| Set implicit header mode for future reception/transmission. More...
|
+
|
+
int16_t | explicitHeader () |
+
| Set explicit header mode for future reception/transmission. More...
|
+
|
| SX127x (Module *mod) |
| Default constructor. Called internally when creating new LoRa instance. More...
|
diff --git a/class_r_f_m97-members.html b/class_r_f_m97-members.html
index 9ac08235..9bf59942 100644
--- a/class_r_f_m97-members.html
+++ b/class_r_f_m97-members.html
@@ -95,18 +95,20 @@ $(document).ready(function(){initNavTree('class_r_f_m97.html','');});
clearDio0Action() | SX127x | |
clearDio1Action() | SX127x | |
disableAddressFiltering() | SX127x | |
-
fixedPacketLengthMode(uint8_t len=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
-
forceLDRO(bool enable) | SX1278 | |
-
getChipVersion() | SX127x | |
-
getDataRate() const | SX127x | |
-
getFreqStep() const | PhysicalLayer | |
-
getFrequencyError(bool autoCorrect=false) | SX127x | |
-
getIRQFlags() | SX127x | |
-
getModemStatus() | SX127x | |
-
getPacketLength(bool update=true) override | SX127x | virtual |
-
getRSSI() | SX1278 | |
-
getSNR() | SX127x | |
-
getTempRaw() | SX127x | |
+
explicitHeader() | SX1278 | |
+
fixedPacketLengthMode(uint8_t len=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
+
forceLDRO(bool enable) | SX1278 | |
+
getChipVersion() | SX127x | |
+
getDataRate() const | SX127x | |
+
getFreqStep() const | PhysicalLayer | |
+
getFrequencyError(bool autoCorrect=false) | SX127x | |
+
getIRQFlags() | SX127x | |
+
getModemStatus() | SX127x | |
+
getPacketLength(bool update=true) override | SX127x | virtual |
+
getRSSI() | SX1278 | |
+
getSNR() | SX127x | |
+
getTempRaw() | SX127x | |
+
implicitHeader(size_t len) | SX1278 | |
packetMode() | SX127x | |
PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
random() | SX127x | virtual |
diff --git a/class_r_f_m97.html b/class_r_f_m97.html
index 44a2aa3a..9b4669fe 100644
--- a/class_r_f_m97.html
+++ b/class_r_f_m97.html
@@ -173,6 +173,12 @@ void
| int16_t | autoLDRO () |
| Re-enables automatic LDRO configuration. Only available in LoRa mode. After calling this method, LDRO will be enabled automatically when symbol length exceeds 16 ms. More...
|
|
+
int16_t | implicitHeader (size_t len) |
+
| Set implicit header mode for future reception/transmission. More...
|
+
|
+
int16_t | explicitHeader () |
+
| Set explicit header mode for future reception/transmission. More...
|
+
|
| SX127x (Module *mod) |
| Default constructor. Called internally when creating new LoRa instance. More...
|
diff --git a/class_s_x1272-members.html b/class_s_x1272-members.html
index 488952a6..b75c8a7f 100644
--- a/class_s_x1272-members.html
+++ b/class_s_x1272-members.html
@@ -95,18 +95,20 @@ $(document).ready(function(){initNavTree('class_s_x1272.html','');});
clearDio0Action() | SX127x | |
clearDio1Action() | SX127x | |
disableAddressFiltering() | SX127x | |
-
fixedPacketLengthMode(uint8_t len=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
-
forceLDRO(bool enable) | SX1272 | |
-
getChipVersion() | SX127x | |
-
getDataRate() const | SX127x | |
-
getFreqStep() const | PhysicalLayer | |
-
getFrequencyError(bool autoCorrect=false) | SX127x | |
-
getIRQFlags() | SX127x | |
-
getModemStatus() | SX127x | |
-
getPacketLength(bool update=true) override | SX127x | virtual |
-
getRSSI() | SX1272 | |
-
getSNR() | SX127x | |
-
getTempRaw() | SX127x | |
+
explicitHeader() | SX1272 | |
+
fixedPacketLengthMode(uint8_t len=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
+
forceLDRO(bool enable) | SX1272 | |
+
getChipVersion() | SX127x | |
+
getDataRate() const | SX127x | |
+
getFreqStep() const | PhysicalLayer | |
+
getFrequencyError(bool autoCorrect=false) | SX127x | |
+
getIRQFlags() | SX127x | |
+
getModemStatus() | SX127x | |
+
getPacketLength(bool update=true) override | SX127x | virtual |
+
getRSSI() | SX1272 | |
+
getSNR() | SX127x | |
+
getTempRaw() | SX127x | |
+
implicitHeader(size_t len) | SX1272 | |
packetMode() | SX127x | |
PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
random() | SX127x | virtual |
diff --git a/class_s_x1272.html b/class_s_x1272.html
index 56cd9362..f85de0a6 100644
--- a/class_s_x1272.html
+++ b/class_s_x1272.html
@@ -155,6 +155,12 @@ void
| int16_t | autoLDRO () |
| Re-enables automatic LDRO configuration. Only available in LoRa mode. After calling this method, LDRO will be enabled automatically when symbol length exceeds 16 ms. More...
|
|
+
int16_t | implicitHeader (size_t len) |
+
| Set implicit header mode for future reception/transmission. More...
|
+
|
+
int16_t | explicitHeader () |
+
| Set explicit header mode for future reception/transmission. More...
|
+
|
| SX127x (Module *mod) |
| Default constructor. Called internally when creating new LoRa instance. More...
|
@@ -526,6 +532,32 @@ void
ReturnsStatus Codes
+
+
+
+◆ explicitHeader()
+
+
+
+
+
+ int16_t SX1272::explicitHeader |
+ ( |
+ | ) |
+ |
+
+
+
+
+ Set explicit header mode for future reception/transmission.
+ - Parameters
-
+
+ len | Payload length in bytes. |
+
+
+
+ - Returns
- Status Codes
+
@@ -573,6 +605,27 @@ void | ReturnsLast packet RSSI for LoRa modem, or current RSSI level for FSK modem.
+
+
+
+◆ implicitHeader()
+
+
+
+
+
+ int16_t SX1272::implicitHeader |
+ ( |
+ size_t |
+ len | ) |
+ |
+
+
+
+
+ Set implicit header mode for future reception/transmission.
+ - Returns
- Status Codes
+
diff --git a/class_s_x1272.js b/class_s_x1272.js
index 809ea5f5..d7599161 100644
--- a/class_s_x1272.js
+++ b/class_s_x1272.js
@@ -4,8 +4,10 @@ var class_s_x1272 =
[ "autoLDRO", "class_s_x1272.html#abb4bbfe8acc6026c833d267d78417b63", null ],
[ "begin", "class_s_x1272.html#aaa5a787164fb216c12b8dea4d810f7f3", null ],
[ "beginFSK", "class_s_x1272.html#a2ee9fb48eeaf41876de00d3774be78cf", null ],
+ [ "explicitHeader", "class_s_x1272.html#ae3c9704cb58232f696b5f90f69c115f7", null ],
[ "forceLDRO", "class_s_x1272.html#a4aaf9d61310fa7b4fce413ae53d30ac0", null ],
[ "getRSSI", "class_s_x1272.html#af5a7dee50a1a7d8261bc62bb869cda92", null ],
+ [ "implicitHeader", "class_s_x1272.html#a4ee36122f8aca42b27a8412e0c362dd3", null ],
[ "reset", "class_s_x1272.html#a0978cc9ecbb7b9d3a017c133506e57ac", null ],
[ "setBandwidth", "class_s_x1272.html#a0cc8eeb00241031796fc73b08711469b", null ],
[ "setCodingRate", "class_s_x1272.html#a960913438feccad4c1913a9222384a5f", null ],
diff --git a/class_s_x1273-members.html b/class_s_x1273-members.html
index f3c769e5..f656bd6a 100644
--- a/class_s_x1273-members.html
+++ b/class_s_x1273-members.html
@@ -95,18 +95,20 @@ $(document).ready(function(){initNavTree('class_s_x1273.html','');});
| clearDio0Action() | SX127x | |
clearDio1Action() | SX127x | |
disableAddressFiltering() | SX127x | |
-
fixedPacketLengthMode(uint8_t len=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
-
forceLDRO(bool enable) | SX1272 | |
-
getChipVersion() | SX127x | |
-
getDataRate() const | SX127x | |
-
getFreqStep() const | PhysicalLayer | |
-
getFrequencyError(bool autoCorrect=false) | SX127x | |
-
getIRQFlags() | SX127x | |
-
getModemStatus() | SX127x | |
-
getPacketLength(bool update=true) override | SX127x | virtual |
-
getRSSI() | SX1272 | |
-
getSNR() | SX127x | |
-
getTempRaw() | SX127x | |
+
explicitHeader() | SX1272 | |
+
fixedPacketLengthMode(uint8_t len=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
+
forceLDRO(bool enable) | SX1272 | |
+
getChipVersion() | SX127x | |
+
getDataRate() const | SX127x | |
+
getFreqStep() const | PhysicalLayer | |
+
getFrequencyError(bool autoCorrect=false) | SX127x | |
+
getIRQFlags() | SX127x | |
+
getModemStatus() | SX127x | |
+
getPacketLength(bool update=true) override | SX127x | virtual |
+
getRSSI() | SX1272 | |
+
getSNR() | SX127x | |
+
getTempRaw() | SX127x | |
+
implicitHeader(size_t len) | SX1272 | |
packetMode() | SX127x | |
PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
random() | SX127x | virtual |
diff --git a/class_s_x1273.html b/class_s_x1273.html
index 5b310f03..db57e8a2 100644
--- a/class_s_x1273.html
+++ b/class_s_x1273.html
@@ -165,6 +165,12 @@ void
| int16_t | autoLDRO () |
| Re-enables automatic LDRO configuration. Only available in LoRa mode. After calling this method, LDRO will be enabled automatically when symbol length exceeds 16 ms. More...
|
|
+
int16_t | implicitHeader (size_t len) |
+
| Set implicit header mode for future reception/transmission. More...
|
+
|
+
int16_t | explicitHeader () |
+
| Set explicit header mode for future reception/transmission. More...
|
+
|
| SX127x (Module *mod) |
| Default constructor. Called internally when creating new LoRa instance. More...
|
diff --git a/class_s_x1276-members.html b/class_s_x1276-members.html
index d9a1f9e7..18fa1c44 100644
--- a/class_s_x1276-members.html
+++ b/class_s_x1276-members.html
@@ -95,18 +95,20 @@ $(document).ready(function(){initNavTree('class_s_x1276.html','');});
clearDio0Action() | SX127x | |
clearDio1Action() | SX127x | |
disableAddressFiltering() | SX127x | |
-
fixedPacketLengthMode(uint8_t len=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
-
forceLDRO(bool enable) | SX1278 | |
-
getChipVersion() | SX127x | |
-
getDataRate() const | SX127x | |
-
getFreqStep() const | PhysicalLayer | |
-
getFrequencyError(bool autoCorrect=false) | SX127x | |
-
getIRQFlags() | SX127x | |
-
getModemStatus() | SX127x | |
-
getPacketLength(bool update=true) override | SX127x | virtual |
-
getRSSI() | SX1278 | |
-
getSNR() | SX127x | |
-
getTempRaw() | SX127x | |
+
explicitHeader() | SX1278 | |
+
fixedPacketLengthMode(uint8_t len=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
+
forceLDRO(bool enable) | SX1278 | |
+
getChipVersion() | SX127x | |
+
getDataRate() const | SX127x | |
+
getFreqStep() const | PhysicalLayer | |
+
getFrequencyError(bool autoCorrect=false) | SX127x | |
+
getIRQFlags() | SX127x | |
+
getModemStatus() | SX127x | |
+
getPacketLength(bool update=true) override | SX127x | virtual |
+
getRSSI() | SX1278 | |
+
getSNR() | SX127x | |
+
getTempRaw() | SX127x | |
+
implicitHeader(size_t len) | SX1278 | |
packetMode() | SX127x | |
PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
random() | SX127x | virtual |
diff --git a/class_s_x1276.html b/class_s_x1276.html
index 07b7e1ba..f4a3d6d2 100644
--- a/class_s_x1276.html
+++ b/class_s_x1276.html
@@ -168,6 +168,12 @@ void
| int16_t | autoLDRO () |
| Re-enables automatic LDRO configuration. Only available in LoRa mode. After calling this method, LDRO will be enabled automatically when symbol length exceeds 16 ms. More...
|
|
+
int16_t | implicitHeader (size_t len) |
+
| Set implicit header mode for future reception/transmission. More...
|
+
|
+
int16_t | explicitHeader () |
+
| Set explicit header mode for future reception/transmission. More...
|
+
|
| SX127x (Module *mod) |
| Default constructor. Called internally when creating new LoRa instance. More...
|
diff --git a/class_s_x1277-members.html b/class_s_x1277-members.html
index 5caf39d8..ec090b6c 100644
--- a/class_s_x1277-members.html
+++ b/class_s_x1277-members.html
@@ -95,18 +95,20 @@ $(document).ready(function(){initNavTree('class_s_x1277.html','');});
clearDio0Action() | SX127x | |
clearDio1Action() | SX127x | |
disableAddressFiltering() | SX127x | |
-
fixedPacketLengthMode(uint8_t len=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
-
forceLDRO(bool enable) | SX1278 | |
-
getChipVersion() | SX127x | |
-
getDataRate() const | SX127x | |
-
getFreqStep() const | PhysicalLayer | |
-
getFrequencyError(bool autoCorrect=false) | SX127x | |
-
getIRQFlags() | SX127x | |
-
getModemStatus() | SX127x | |
-
getPacketLength(bool update=true) override | SX127x | virtual |
-
getRSSI() | SX1278 | |
-
getSNR() | SX127x | |
-
getTempRaw() | SX127x | |
+
explicitHeader() | SX1278 | |
+
fixedPacketLengthMode(uint8_t len=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
+
forceLDRO(bool enable) | SX1278 | |
+
getChipVersion() | SX127x | |
+
getDataRate() const | SX127x | |
+
getFreqStep() const | PhysicalLayer | |
+
getFrequencyError(bool autoCorrect=false) | SX127x | |
+
getIRQFlags() | SX127x | |
+
getModemStatus() | SX127x | |
+
getPacketLength(bool update=true) override | SX127x | virtual |
+
getRSSI() | SX1278 | |
+
getSNR() | SX127x | |
+
getTempRaw() | SX127x | |
+
implicitHeader(size_t len) | SX1278 | |
packetMode() | SX127x | |
PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
random() | SX127x | virtual |
diff --git a/class_s_x1277.html b/class_s_x1277.html
index a48a931a..faaaa9e3 100644
--- a/class_s_x1277.html
+++ b/class_s_x1277.html
@@ -171,6 +171,12 @@ void
| int16_t | autoLDRO () |
| Re-enables automatic LDRO configuration. Only available in LoRa mode. After calling this method, LDRO will be enabled automatically when symbol length exceeds 16 ms. More...
|
|
+
int16_t | implicitHeader (size_t len) |
+
| Set implicit header mode for future reception/transmission. More...
|
+
|
+
int16_t | explicitHeader () |
+
| Set explicit header mode for future reception/transmission. More...
|
+
|
| SX127x (Module *mod) |
| Default constructor. Called internally when creating new LoRa instance. More...
|
diff --git a/class_s_x1278-members.html b/class_s_x1278-members.html
index 1fd2d3e6..8a3957c9 100644
--- a/class_s_x1278-members.html
+++ b/class_s_x1278-members.html
@@ -95,18 +95,20 @@ $(document).ready(function(){initNavTree('class_s_x1278.html','');});
clearDio0Action() | SX127x | |
clearDio1Action() | SX127x | |
disableAddressFiltering() | SX127x | |
-
fixedPacketLengthMode(uint8_t len=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
-
forceLDRO(bool enable) | SX1278 | |
-
getChipVersion() | SX127x | |
-
getDataRate() const | SX127x | |
-
getFreqStep() const | PhysicalLayer | |
-
getFrequencyError(bool autoCorrect=false) | SX127x | |
-
getIRQFlags() | SX127x | |
-
getModemStatus() | SX127x | |
-
getPacketLength(bool update=true) override | SX127x | virtual |
-
getRSSI() | SX1278 | |
-
getSNR() | SX127x | |
-
getTempRaw() | SX127x | |
+
explicitHeader() | SX1278 | |
+
fixedPacketLengthMode(uint8_t len=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
+
forceLDRO(bool enable) | SX1278 | |
+
getChipVersion() | SX127x | |
+
getDataRate() const | SX127x | |
+
getFreqStep() const | PhysicalLayer | |
+
getFrequencyError(bool autoCorrect=false) | SX127x | |
+
getIRQFlags() | SX127x | |
+
getModemStatus() | SX127x | |
+
getPacketLength(bool update=true) override | SX127x | virtual |
+
getRSSI() | SX1278 | |
+
getSNR() | SX127x | |
+
getTempRaw() | SX127x | |
+
implicitHeader(size_t len) | SX1278 | |
packetMode() | SX127x | |
PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
random() | SX127x | virtual |
diff --git a/class_s_x1278.html b/class_s_x1278.html
index 7ae8997b..c397458d 100644
--- a/class_s_x1278.html
+++ b/class_s_x1278.html
@@ -160,6 +160,12 @@ void
| int16_t | autoLDRO () |
| Re-enables automatic LDRO configuration. Only available in LoRa mode. After calling this method, LDRO will be enabled automatically when symbol length exceeds 16 ms. More...
|
|
+
int16_t | implicitHeader (size_t len) |
+
| Set implicit header mode for future reception/transmission. More...
|
+
|
+
int16_t | explicitHeader () |
+
| Set explicit header mode for future reception/transmission. More...
|
+
|
| SX127x (Module *mod) |
| Default constructor. Called internally when creating new LoRa instance. More...
|
@@ -531,6 +537,32 @@ void
ReturnsStatus Codes
+
+
+
+◆ explicitHeader()
+
+
+
+
+
+ int16_t SX1278::explicitHeader |
+ ( |
+ | ) |
+ |
+
+
+
+
+ Set explicit header mode for future reception/transmission.
+ - Parameters
-
+
+ len | Payload length in bytes. |
+
+
+
+ - Returns
- Status Codes
+
@@ -578,6 +610,27 @@ void | ReturnsLast packet RSSI for LoRa modem, or current RSSI level for FSK modem.
+
+
+
+◆ implicitHeader()
+
+
+
+
+
+ int16_t SX1278::implicitHeader |
+ ( |
+ size_t |
+ len | ) |
+ |
+
+
+
+
+ Set implicit header mode for future reception/transmission.
+ - Returns
- Status Codes
+
diff --git a/class_s_x1278.js b/class_s_x1278.js
index c873becc..4144220c 100644
--- a/class_s_x1278.js
+++ b/class_s_x1278.js
@@ -4,8 +4,10 @@ var class_s_x1278 =
[ "autoLDRO", "class_s_x1278.html#ae02adcde8c2978c0d1b157729dd5df1e", null ],
[ "begin", "class_s_x1278.html#af7d9dc775820f7b260b578908cea3dbe", null ],
[ "beginFSK", "class_s_x1278.html#a33dc718c83c233a1f93d6bdf2ec31783", null ],
+ [ "explicitHeader", "class_s_x1278.html#a7c7717f09820a8e9a93621b0a00713f1", null ],
[ "forceLDRO", "class_s_x1278.html#a6d6398c4d4fde302d6d4752708bce856", null ],
[ "getRSSI", "class_s_x1278.html#a0b1fe4d0b1acfa454d7bab59cdf319fe", null ],
+ [ "implicitHeader", "class_s_x1278.html#a47f5ac7dd6587b86c5f2c2b16336612e", null ],
[ "reset", "class_s_x1278.html#a6d60902ac59b653a9eb83e82a932f7ad", null ],
[ "setBandwidth", "class_s_x1278.html#a46c27ed1ebaae4e3ed8afe3ae6941dd6", null ],
[ "setCodingRate", "class_s_x1278.html#a834f26a0bd3fc8a03fa7e68aa4daf9e1", null ],
diff --git a/class_s_x1279-members.html b/class_s_x1279-members.html
index 91297fcf..4512785a 100644
--- a/class_s_x1279-members.html
+++ b/class_s_x1279-members.html
@@ -95,18 +95,20 @@ $(document).ready(function(){initNavTree('class_s_x1279.html','');});
| clearDio0Action() | SX127x | |
clearDio1Action() | SX127x | |
disableAddressFiltering() | SX127x | |
-
fixedPacketLengthMode(uint8_t len=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
-
forceLDRO(bool enable) | SX1278 | |
-
getChipVersion() | SX127x | |
-
getDataRate() const | SX127x | |
-
getFreqStep() const | PhysicalLayer | |
-
getFrequencyError(bool autoCorrect=false) | SX127x | |
-
getIRQFlags() | SX127x | |
-
getModemStatus() | SX127x | |
-
getPacketLength(bool update=true) override | SX127x | virtual |
-
getRSSI() | SX1278 | |
-
getSNR() | SX127x | |
-
getTempRaw() | SX127x | |
+
explicitHeader() | SX1278 | |
+
fixedPacketLengthMode(uint8_t len=SX127X_MAX_PACKET_LENGTH_FSK) | SX127x | |
+
forceLDRO(bool enable) | SX1278 | |
+
getChipVersion() | SX127x | |
+
getDataRate() const | SX127x | |
+
getFreqStep() const | PhysicalLayer | |
+
getFrequencyError(bool autoCorrect=false) | SX127x | |
+
getIRQFlags() | SX127x | |
+
getModemStatus() | SX127x | |
+
getPacketLength(bool update=true) override | SX127x | virtual |
+
getRSSI() | SX1278 | |
+
getSNR() | SX127x | |
+
getTempRaw() | SX127x | |
+
implicitHeader(size_t len) | SX1278 | |
packetMode() | SX127x | |
PhysicalLayer(float freqStep, size_t maxPacketLength) | PhysicalLayer | |
random() | SX127x | virtual |
diff --git a/class_s_x1279.html b/class_s_x1279.html
index b963912d..65345742 100644
--- a/class_s_x1279.html
+++ b/class_s_x1279.html
@@ -168,6 +168,12 @@ void
| int16_t | autoLDRO () |
| Re-enables automatic LDRO configuration. Only available in LoRa mode. After calling this method, LDRO will be enabled automatically when symbol length exceeds 16 ms. More...
|
|
+
int16_t | implicitHeader (size_t len) |
+
| Set implicit header mode for future reception/transmission. More...
|
+
|
+
int16_t | explicitHeader () |
+
| Set explicit header mode for future reception/transmission. More...
|
+
|
| SX127x (Module *mod) |
| Default constructor. Called internally when creating new LoRa instance. More...
|
diff --git a/functions_e.html b/functions_e.html
index 83412fe8..f85eb610 100644
--- a/functions_e.html
+++ b/functions_e.html
@@ -95,6 +95,8 @@ $(document).ready(function(){initNavTree('functions_e.html','');});
explicitHeader()
: SX126x
+, SX1272
+, SX1278
, SX128x
diff --git a/functions_func_e.html b/functions_func_e.html
index ef7980c2..3afd462c 100644
--- a/functions_func_e.html
+++ b/functions_func_e.html
@@ -95,6 +95,8 @@ $(document).ready(function(){initNavTree('functions_func_e.html','');});
explicitHeader()
: SX126x
+, SX1272
+, SX1278
, SX128x
diff --git a/functions_func_i.html b/functions_func_i.html
index 26cf5531..55486b36 100644
--- a/functions_func_i.html
+++ b/functions_func_i.html
@@ -89,6 +89,8 @@ $(document).ready(function(){initNavTree('functions_func_i.html','');});
implicitHeader()
: SX126x
+, SX1272
+, SX1278
, SX128x
init()
@@ -98,7 +100,7 @@ $(document).ready(function(){initNavTree('functions_func_i.html','');});
: nRF24
ITA2String()
-: ITA2String
+: ITA2String
diff --git a/functions_i.html b/functions_i.html
index 59ccd8b9..e987a1c9 100644
--- a/functions_i.html
+++ b/functions_i.html
@@ -89,6 +89,8 @@ $(document).ready(function(){initNavTree('functions_i.html','');});
implicitHeader()
: SX126x
+, SX1272
+, SX1278
, SX128x
info
@@ -104,7 +106,7 @@ $(document).ready(function(){initNavTree('functions_i.html','');});
: nRF24
ITA2String()
-: ITA2String
+: ITA2String
diff --git a/navtreedata.js b/navtreedata.js
index 198ed2d9..c65c227f 100644
--- a/navtreedata.js
+++ b/navtreedata.js
@@ -24,8 +24,8 @@ var NAVTREEINDEX =
[
"_a_f_s_k_8h_source.html",
"class_module.html#ac65f3d9e022b3284134ced1c20bcff09",
-"class_s_x1272.html#a91aca64124321c07a67f26b3c6934aea",
-"dir_70c194bd40717a4946dbd8bc35f09b17.html"
+"class_s_x1272.html#a82084ac58502c83d2ada998410307490",
+"dir_66baa0cb3ce3b01929266fe63d8714ed.html"
];
var SYNCONMSG = 'click to disable panel synchronisation';
diff --git a/navtreeindex1.js b/navtreeindex1.js
index 2ed323b2..5f37a1e9 100644
--- a/navtreeindex1.js
+++ b/navtreeindex1.js
@@ -243,11 +243,11 @@ var NAVTREEINDEX1 =
"class_s_x126x.html#afc3a7a42c401b6c44e00cb6c5b9696f2":[3,0,34,5],
"class_s_x126x.html#afd3113858966e878e9c67a1e710bd586":[3,0,34,26],
"class_s_x1272.html":[3,0,35],
-"class_s_x1272.html#a0978cc9ecbb7b9d3a017c133506e57ac":[3,0,35,6],
-"class_s_x1272.html#a0cc8eeb00241031796fc73b08711469b":[3,0,35,7],
+"class_s_x1272.html#a0978cc9ecbb7b9d3a017c133506e57ac":[3,0,35,8],
+"class_s_x1272.html#a0cc8eeb00241031796fc73b08711469b":[3,0,35,9],
"class_s_x1272.html#a2ee9fb48eeaf41876de00d3774be78cf":[3,0,35,3],
-"class_s_x1272.html#a3a377445cb4b8fd41781a3210a819a47":[3,0,35,11],
-"class_s_x1272.html#a4aaf9d61310fa7b4fce413ae53d30ac0":[3,0,35,4],
-"class_s_x1272.html#a5a57abb0bc9f474452ffb828b13d1efb":[3,0,35,9],
-"class_s_x1272.html#a82084ac58502c83d2ada998410307490":[3,0,35,15]
+"class_s_x1272.html#a3a377445cb4b8fd41781a3210a819a47":[3,0,35,13],
+"class_s_x1272.html#a4aaf9d61310fa7b4fce413ae53d30ac0":[3,0,35,5],
+"class_s_x1272.html#a4ee36122f8aca42b27a8412e0c362dd3":[3,0,35,7],
+"class_s_x1272.html#a5a57abb0bc9f474452ffb828b13d1efb":[3,0,35,11]
};
diff --git a/navtreeindex2.js b/navtreeindex2.js
index 1b153123..d73d40fa 100644
--- a/navtreeindex2.js
+++ b/navtreeindex2.js
@@ -1,14 +1,16 @@
var NAVTREEINDEX2 =
{
-"class_s_x1272.html#a91aca64124321c07a67f26b3c6934aea":[3,0,35,10],
-"class_s_x1272.html#a960913438feccad4c1913a9222384a5f":[3,0,35,8],
+"class_s_x1272.html#a82084ac58502c83d2ada998410307490":[3,0,35,17],
+"class_s_x1272.html#a91aca64124321c07a67f26b3c6934aea":[3,0,35,12],
+"class_s_x1272.html#a960913438feccad4c1913a9222384a5f":[3,0,35,10],
"class_s_x1272.html#a9ffe467a6baaeaa079e02c3f1f43f626":[3,0,35,0],
"class_s_x1272.html#aaa5a787164fb216c12b8dea4d810f7f3":[3,0,35,2],
"class_s_x1272.html#abb4bbfe8acc6026c833d267d78417b63":[3,0,35,1],
-"class_s_x1272.html#ae1c57ad5e8496dc28cd3ba9852809852":[3,0,35,13],
-"class_s_x1272.html#ae3596f303714509f552d98321bdfce5c":[3,0,35,14],
-"class_s_x1272.html#af409f50e51042cf9357c0a8267f762f8":[3,0,35,12],
-"class_s_x1272.html#af5a7dee50a1a7d8261bc62bb869cda92":[3,0,35,5],
+"class_s_x1272.html#ae1c57ad5e8496dc28cd3ba9852809852":[3,0,35,15],
+"class_s_x1272.html#ae3596f303714509f552d98321bdfce5c":[3,0,35,16],
+"class_s_x1272.html#ae3c9704cb58232f696b5f90f69c115f7":[3,0,35,4],
+"class_s_x1272.html#af409f50e51042cf9357c0a8267f762f8":[3,0,35,14],
+"class_s_x1272.html#af5a7dee50a1a7d8261bc62bb869cda92":[3,0,35,6],
"class_s_x1273.html":[3,0,36],
"class_s_x1273.html#a1dbc5a0847c2b62d2ec5fc439ddfec3f":[3,0,36,2],
"class_s_x1273.html#ad0387b22d6dcc876bc5f85174714149b":[3,0,36,0],
@@ -26,21 +28,23 @@ var NAVTREEINDEX2 =
"class_s_x1277.html#aa2b5816c06cd644fd33171ee61cf325b":[3,0,38,1],
"class_s_x1278.html":[3,0,39],
"class_s_x1278.html#a00ebd3e60a66056940b241b13da0c68e":[3,0,39,0],
-"class_s_x1278.html#a0b1fe4d0b1acfa454d7bab59cdf319fe":[3,0,39,5],
-"class_s_x1278.html#a1ccc4d5062f739d534ab22562c7efca4":[3,0,39,11],
+"class_s_x1278.html#a0b1fe4d0b1acfa454d7bab59cdf319fe":[3,0,39,6],
+"class_s_x1278.html#a1ccc4d5062f739d534ab22562c7efca4":[3,0,39,13],
"class_s_x1278.html#a33dc718c83c233a1f93d6bdf2ec31783":[3,0,39,3],
-"class_s_x1278.html#a46c27ed1ebaae4e3ed8afe3ae6941dd6":[3,0,39,7],
-"class_s_x1278.html#a4b14d432ef1bd72982f4771cac5b62e4":[3,0,39,12],
-"class_s_x1278.html#a6d60902ac59b653a9eb83e82a932f7ad":[3,0,39,6],
-"class_s_x1278.html#a6d6398c4d4fde302d6d4752708bce856":[3,0,39,4],
-"class_s_x1278.html#a834f26a0bd3fc8a03fa7e68aa4daf9e1":[3,0,39,8],
-"class_s_x1278.html#a8eeac64472fa70ed5e51f35d581f37ea":[3,0,39,14],
-"class_s_x1278.html#aa57b713988cfa224a6db2ff325052931":[3,0,39,13],
-"class_s_x1278.html#adf0b0d628c7f7479f19c153732363462":[3,0,39,9],
+"class_s_x1278.html#a46c27ed1ebaae4e3ed8afe3ae6941dd6":[3,0,39,9],
+"class_s_x1278.html#a47f5ac7dd6587b86c5f2c2b16336612e":[3,0,39,7],
+"class_s_x1278.html#a4b14d432ef1bd72982f4771cac5b62e4":[3,0,39,14],
+"class_s_x1278.html#a6d60902ac59b653a9eb83e82a932f7ad":[3,0,39,8],
+"class_s_x1278.html#a6d6398c4d4fde302d6d4752708bce856":[3,0,39,5],
+"class_s_x1278.html#a7c7717f09820a8e9a93621b0a00713f1":[3,0,39,4],
+"class_s_x1278.html#a834f26a0bd3fc8a03fa7e68aa4daf9e1":[3,0,39,10],
+"class_s_x1278.html#a8eeac64472fa70ed5e51f35d581f37ea":[3,0,39,16],
+"class_s_x1278.html#aa57b713988cfa224a6db2ff325052931":[3,0,39,15],
+"class_s_x1278.html#adf0b0d628c7f7479f19c153732363462":[3,0,39,11],
"class_s_x1278.html#ae02adcde8c2978c0d1b157729dd5df1e":[3,0,39,1],
-"class_s_x1278.html#af70c22fe38bc3b944070ccbc083fed08":[3,0,39,15],
+"class_s_x1278.html#af70c22fe38bc3b944070ccbc083fed08":[3,0,39,17],
"class_s_x1278.html#af7d9dc775820f7b260b578908cea3dbe":[3,0,39,2],
-"class_s_x1278.html#afb740a4925b64d83d5edca10d93f0563":[3,0,39,10],
+"class_s_x1278.html#afb740a4925b64d83d5edca10d93f0563":[3,0,39,12],
"class_s_x1279.html":[3,0,40],
"class_s_x1279.html#a86e675a0c6f5970370ae6a9b1be27167":[3,0,40,1],
"class_s_x1279.html#a94a6c5f49eb8f26b7eeb1d5ee258f089":[3,0,40,2],
@@ -245,9 +249,5 @@ var NAVTREEINDEX2 =
"dir_31c953e8b112b915d208fa745d66f12e.html":[4,0,0,0,3],
"dir_3a277ada553fbb989028f9b071a02542.html":[4,0,0,0,5],
"dir_47c60a953c7c148861b9fe25d51850eb.html":[4,0,0,1,3],
-"dir_620e20826520c01cf981aa9c981ff885.html":[4,0,0,1,7],
-"dir_66baa0cb3ce3b01929266fe63d8714ed.html":[4,0,0,0,2],
-"dir_66ce0d8112a82c480b60d648cf9cb1ca.html":[4,0,0,1,8],
-"dir_68267d1309a1af8e8297ef4c3efbcdba.html":[4,0,0],
-"dir_6baa7f88a31cf8c1ad1b651eaa1fd5b9.html":[4,0,0,0,7]
+"dir_620e20826520c01cf981aa9c981ff885.html":[4,0,0,1,7]
};
diff --git a/navtreeindex3.js b/navtreeindex3.js
index 91a8bfa8..5795626a 100644
--- a/navtreeindex3.js
+++ b/navtreeindex3.js
@@ -1,5 +1,9 @@
var NAVTREEINDEX3 =
{
+"dir_66baa0cb3ce3b01929266fe63d8714ed.html":[4,0,0,0,2],
+"dir_66ce0d8112a82c480b60d648cf9cb1ca.html":[4,0,0,1,8],
+"dir_68267d1309a1af8e8297ef4c3efbcdba.html":[4,0,0],
+"dir_6baa7f88a31cf8c1ad1b651eaa1fd5b9.html":[4,0,0,0,7],
"dir_70c194bd40717a4946dbd8bc35f09b17.html":[4,0,0,1,0],
"dir_747c20e84f9dfe1cc835713177129efc.html":[4,0,0,0,10],
"dir_79690749eba542503bb1a9a3dbb495e1.html":[4,0,0,1],
@@ -16,8 +20,8 @@ var NAVTREEINDEX3 =
"dir_ed12d23d857ca7061030f8751e72e77c.html":[4,0,0,0,12],
"dir_f980efad9544c0545d0fa50a84ff12f2.html":[4,0,0,0,11],
"files.html":[4,0],
-"functions.html":[3,3,0],
"functions.html":[3,3,0,0],
+"functions.html":[3,3,0],
"functions_0x7e.html":[3,3,0,23],
"functions_b.html":[3,3,0,1],
"functions_c.html":[3,3,0,2],
@@ -165,8 +169,8 @@ var NAVTREEINDEX3 =
"group__uart__config.html#gad418f0922126e27279d1a374fc63e036":[2,1,8],
"group__uart__config.html#gae077d53c5c120a989b1f285f183f1b78":[2,1,3],
"hierarchy.html":[3,2],
-"index.html":[0],
"index.html":[],
+"index.html":[0],
"modules.html":[2],
"n_r_f24_8h_source.html":[4,0,0,0,4,0],
"pages.html":[],
diff --git a/search/all_4.js b/search/all_4.js
index 6ced064f..1ba426d2 100644
--- a/search/all_4.js
+++ b/search/all_4.js
@@ -70,5 +70,5 @@ var searchData=
['err_5furl_5fmalformed',['ERR_URL_MALFORMED',['../group__status__codes.html#gac4980128c06104656146109af0a944e4',1,'TypeDef.h']]],
['err_5fwrong_5fmodem',['ERR_WRONG_MODEM',['../group__status__codes.html#ga8ec3e01efb503b4e32c59ea0a6566714',1,'TypeDef.h']]],
['esp8266',['ESP8266',['../class_e_s_p8266.html',1,'ESP8266'],['../class_e_s_p8266.html#ac0adb20130a378b8b99fcb9101823636',1,'ESP8266::ESP8266()']]],
- ['explicitheader',['explicitHeader',['../class_s_x126x.html#a3765f534418d4e0540c179621c019138',1,'SX126x::explicitHeader()'],['../class_s_x128x.html#a94b7fb26cc99385d30b0c98b76d8188d',1,'SX128x::explicitHeader()']]]
+ ['explicitheader',['explicitHeader',['../class_s_x126x.html#a3765f534418d4e0540c179621c019138',1,'SX126x::explicitHeader()'],['../class_s_x1272.html#ae3c9704cb58232f696b5f90f69c115f7',1,'SX1272::explicitHeader()'],['../class_s_x1278.html#a7c7717f09820a8e9a93621b0a00713f1',1,'SX1278::explicitHeader()'],['../class_s_x128x.html#a94b7fb26cc99385d30b0c98b76d8188d',1,'SX128x::explicitHeader()']]]
];
diff --git a/search/all_8.js b/search/all_8.js
index 09e25749..80f9e74c 100644
--- a/search/all_8.js
+++ b/search/all_8.js
@@ -1,7 +1,7 @@
var searchData=
[
['idle',['idle',['../class_r_t_t_y_client.html#ac477e65ea756e56bb9043d778a51b4bc',1,'RTTYClient::idle()'],['../class_s_s_t_v_client.html#a0126ac04934f589b8cb04a038c342044',1,'SSTVClient::idle()']]],
- ['implicitheader',['implicitHeader',['../class_s_x126x.html#adec09cba71494bd927ad1da786606ca6',1,'SX126x::implicitHeader()'],['../class_s_x128x.html#ac69cc622020419cb3393eac5cc88915b',1,'SX128x::implicitHeader()']]],
+ ['implicitheader',['implicitHeader',['../class_s_x126x.html#adec09cba71494bd927ad1da786606ca6',1,'SX126x::implicitHeader()'],['../class_s_x1272.html#a4ee36122f8aca42b27a8412e0c362dd3',1,'SX1272::implicitHeader()'],['../class_s_x1278.html#a47f5ac7dd6587b86c5f2c2b16336612e',1,'SX1278::implicitHeader()'],['../class_s_x128x.html#ac69cc622020419cb3393eac5cc88915b',1,'SX128x::implicitHeader()']]],
['info',['info',['../class_a_x25_frame.html#aa82f006b84b71b9c5d036a4946a65988',1,'AX25Frame']]],
['infolen',['infoLen',['../class_a_x25_frame.html#a75e8ad33c2540ede5bb130050f6ffc41',1,'AX25Frame']]],
['init',['init',['../class_module.html#adb22d89bc5f532f1d056d9a9f3a6589c',1,'Module']]],
diff --git a/search/functions_4.js b/search/functions_4.js
index 9eca02ba..187b03e0 100644
--- a/search/functions_4.js
+++ b/search/functions_4.js
@@ -3,5 +3,5 @@ var searchData=
['enableaes',['enableAES',['../class_r_f69.html#a1fd4609f419d8b0213ee39b05dd40b69',1,'RF69']]],
['enablesyncwordfiltering',['enableSyncWordFiltering',['../class_c_c1101.html#a6fe55d0217bf5218865198ef8d6fdab4',1,'CC1101::enableSyncWordFiltering()'],['../class_r_f69.html#a643a711bcb4b7771a7ab1f457e61a417',1,'RF69::enableSyncWordFiltering()']]],
['esp8266',['ESP8266',['../class_e_s_p8266.html#ac0adb20130a378b8b99fcb9101823636',1,'ESP8266']]],
- ['explicitheader',['explicitHeader',['../class_s_x126x.html#a3765f534418d4e0540c179621c019138',1,'SX126x::explicitHeader()'],['../class_s_x128x.html#a94b7fb26cc99385d30b0c98b76d8188d',1,'SX128x::explicitHeader()']]]
+ ['explicitheader',['explicitHeader',['../class_s_x126x.html#a3765f534418d4e0540c179621c019138',1,'SX126x::explicitHeader()'],['../class_s_x1272.html#ae3c9704cb58232f696b5f90f69c115f7',1,'SX1272::explicitHeader()'],['../class_s_x1278.html#a7c7717f09820a8e9a93621b0a00713f1',1,'SX1278::explicitHeader()'],['../class_s_x128x.html#a94b7fb26cc99385d30b0c98b76d8188d',1,'SX128x::explicitHeader()']]]
];
diff --git a/search/functions_8.js b/search/functions_8.js
index 337f7824..1e73dd1f 100644
--- a/search/functions_8.js
+++ b/search/functions_8.js
@@ -1,7 +1,7 @@
var searchData=
[
['idle',['idle',['../class_r_t_t_y_client.html#ac477e65ea756e56bb9043d778a51b4bc',1,'RTTYClient::idle()'],['../class_s_s_t_v_client.html#a0126ac04934f589b8cb04a038c342044',1,'SSTVClient::idle()']]],
- ['implicitheader',['implicitHeader',['../class_s_x126x.html#adec09cba71494bd927ad1da786606ca6',1,'SX126x::implicitHeader()'],['../class_s_x128x.html#ac69cc622020419cb3393eac5cc88915b',1,'SX128x::implicitHeader()']]],
+ ['implicitheader',['implicitHeader',['../class_s_x126x.html#adec09cba71494bd927ad1da786606ca6',1,'SX126x::implicitHeader()'],['../class_s_x1272.html#a4ee36122f8aca42b27a8412e0c362dd3',1,'SX1272::implicitHeader()'],['../class_s_x1278.html#a47f5ac7dd6587b86c5f2c2b16336612e',1,'SX1278::implicitHeader()'],['../class_s_x128x.html#ac69cc622020419cb3393eac5cc88915b',1,'SX128x::implicitHeader()']]],
['init',['init',['../class_module.html#adb22d89bc5f532f1d056d9a9f3a6589c',1,'Module']]],
['iscarrierdetected',['isCarrierDetected',['../classn_r_f24.html#ad9204ee787b425e2c9e8422bb7939a37',1,'nRF24']]],
['ita2string',['ITA2String',['../class_i_t_a2_string.html#addb6c39167aa5da53fb72e9a94c9c8f5',1,'ITA2String::ITA2String(char c)'],['../class_i_t_a2_string.html#a92ca563bdc2ae4d05ee91ce9372e7a55',1,'ITA2String::ITA2String(const char *str)']]]