diff --git a/_c_c1101_8h_source.html b/_c_c1101_8h_source.html
index 6e2ad09c..a088b871 100644
--- a/_c_c1101_8h_source.html
+++ b/_c_c1101_8h_source.html
@@ -108,776 +108,777 @@ $(document).ready(function(){initNavTree('_c_c1101_8h_source.html',''); initResi
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
555 float freq = RADIOLIB_CC1101_DEFAULT_FREQ,
-
556 float br = RADIOLIB_CC1101_DEFAULT_BR,
-
557 float freqDev = RADIOLIB_CC1101_DEFAULT_FREQDEV,
-
558 float rxBw = RADIOLIB_CC1101_DEFAULT_RXBW,
-
559 int8_t pwr = RADIOLIB_CC1101_DEFAULT_POWER,
-
560 uint8_t preambleLength = RADIOLIB_CC1101_DEFAULT_PREAMBLELEN);
-
-
-
573 float freq = RADIOLIB_CC1101_DEFAULT_FREQ,
-
574 float br = RADIOLIB_CC1101_DEFAULT_BR,
-
575 float freqDev = RADIOLIB_CC1101_DEFAULT_FREQDEV,
-
576 float rxBw = RADIOLIB_CC1101_DEFAULT_RXBW,
-
577 int8_t pwr = RADIOLIB_CC1101_DEFAULT_POWER,
-
578 uint8_t preambleLength = RADIOLIB_CC1101_DEFAULT_PREAMBLELEN);
-
-
-
-
593 int16_t
transmit(
const uint8_t* data,
size_t len, uint8_t addr = 0)
override;
-
-
602 int16_t
receive(uint8_t* data,
size_t len)
override;
-
-
-
-
615 int16_t
standby(uint8_t mode)
override;
-
-
621 int16_t
sleep()
override;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
711 int16_t
startTransmit(
const uint8_t* data,
size_t len, uint8_t addr = 0)
override;
-
-
-
-
-
-
733 int16_t
startReceive(uint32_t timeout, uint32_t irqFlags, uint32_t irqMask,
size_t len)
override;
-
-
743 int16_t
readData(uint8_t* data,
size_t len)
override;
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
832 int16_t
setSyncWord(uint8_t syncH, uint8_t syncL, uint8_t maxErrBits = 0,
bool requireCarrierSense =
false);
-
-
842 int16_t
setSyncWord(
const uint8_t* syncWord, uint8_t len, uint8_t maxErrBits = 0,
bool requireCarrierSense =
false);
-
-
-
-
859 int16_t
setNodeAddress(uint8_t nodeAddr, uint8_t numBroadcastAddrs = 0);
-
-
-
-
872 int16_t
setOOK(
bool enableOOK);
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
980 #if !RADIOLIB_EXCLUDE_DIRECT_RECEIVE
-
-
-
991 void readBit(uint32_t pin)
override;
-
-
-
1000 int16_t
setDIOMapping(uint32_t pin, uint32_t value)
override;
-
-
1002 #if !RADIOLIB_GODMODE && !RADIOLIB_LOW_LEVEL
-
-
-
1005 Module* getMod()
override;
-
-
-
1008 int16_t SPIgetRegValue(uint8_t reg, uint8_t msb = 7, uint8_t lsb = 0);
-
1009 int16_t SPIsetRegValue(uint8_t reg, uint8_t value, uint8_t msb = 7, uint8_t lsb = 0, uint8_t checkInterval = 2);
-
1010 void SPIreadRegisterBurst(uint8_t reg, uint8_t numBytes, uint8_t* inBytes);
-
1011 uint8_t SPIreadRegister(uint8_t reg);
-
1012 void SPIwriteRegisterBurst(uint8_t reg,
const uint8_t* data,
size_t len);
-
1013 void SPIwriteRegister(uint8_t reg, uint8_t data);
-
-
1015 void SPIsendCommand(uint8_t cmd);
-
-
1017 #if !RADIOLIB_GODMODE
-
-
-
-
-
1022 float frequency = RADIOLIB_CC1101_DEFAULT_FREQ;
-
1023 float bitRate = RADIOLIB_CC1101_DEFAULT_BR;
-
1024 uint8_t rawRSSI = 0;
-
-
1026 uint8_t modulation = RADIOLIB_CC1101_MOD_FORMAT_2_FSK;
-
-
1028 size_t packetLength = 0;
-
1029 bool packetLengthQueried =
false;
-
1030 uint8_t packetLengthConfig = RADIOLIB_CC1101_LENGTH_CONFIG_VARIABLE;
+
11#define RADIOLIB_CC1101_MAX_PACKET_LENGTH 255
+
12#define RADIOLIB_CC1101_FIFO_SIZE 64
+
13#define RADIOLIB_CC1101_CRYSTAL_FREQ 26.0f
+
14#define RADIOLIB_CC1101_DIV_EXPONENT 16
+
+
+
17#define RADIOLIB_CC1101_CMD_READ 0b10000000
+
18#define RADIOLIB_CC1101_CMD_WRITE 0b00000000
+
19#define RADIOLIB_CC1101_CMD_BURST 0b01000000
+
20#define RADIOLIB_CC1101_CMD_ACCESS_STATUS_REG 0b01000000
+
21#define RADIOLIB_CC1101_CMD_FIFO_RX 0b10000000
+
22#define RADIOLIB_CC1101_CMD_FIFO_TX 0b00000000
+
23#define RADIOLIB_CC1101_CMD_RESET 0x30
+
24#define RADIOLIB_CC1101_CMD_FSTXON 0x31
+
25#define RADIOLIB_CC1101_CMD_XOFF 0x32
+
26#define RADIOLIB_CC1101_CMD_CAL 0x33
+
27#define RADIOLIB_CC1101_CMD_RX 0x34
+
28#define RADIOLIB_CC1101_CMD_TX 0x35
+
29#define RADIOLIB_CC1101_CMD_IDLE 0x36
+
30#define RADIOLIB_CC1101_CMD_WOR 0x38
+
31#define RADIOLIB_CC1101_CMD_POWER_DOWN 0x39
+
32#define RADIOLIB_CC1101_CMD_FLUSH_RX 0x3A
+
33#define RADIOLIB_CC1101_CMD_FLUSH_TX 0x3B
+
34#define RADIOLIB_CC1101_CMD_WOR_RESET 0x3C
+
35#define RADIOLIB_CC1101_CMD_NOP 0x3D
+
+
+
38#define RADIOLIB_CC1101_REG_IOCFG2 0x00
+
39#define RADIOLIB_CC1101_REG_IOCFG1 0x01
+
40#define RADIOLIB_CC1101_REG_IOCFG0 0x02
+
41#define RADIOLIB_CC1101_REG_FIFOTHR 0x03
+
42#define RADIOLIB_CC1101_REG_SYNC1 0x04
+
43#define RADIOLIB_CC1101_REG_SYNC0 0x05
+
44#define RADIOLIB_CC1101_REG_PKTLEN 0x06
+
45#define RADIOLIB_CC1101_REG_PKTCTRL1 0x07
+
46#define RADIOLIB_CC1101_REG_PKTCTRL0 0x08
+
47#define RADIOLIB_CC1101_REG_ADDR 0x09
+
48#define RADIOLIB_CC1101_REG_CHANNR 0x0A
+
49#define RADIOLIB_CC1101_REG_FSCTRL1 0x0B
+
50#define RADIOLIB_CC1101_REG_FSCTRL0 0x0C
+
51#define RADIOLIB_CC1101_REG_FREQ2 0x0D
+
52#define RADIOLIB_CC1101_REG_FREQ1 0x0E
+
53#define RADIOLIB_CC1101_REG_FREQ0 0x0F
+
54#define RADIOLIB_CC1101_REG_MDMCFG4 0x10
+
55#define RADIOLIB_CC1101_REG_MDMCFG3 0x11
+
56#define RADIOLIB_CC1101_REG_MDMCFG2 0x12
+
57#define RADIOLIB_CC1101_REG_MDMCFG1 0x13
+
58#define RADIOLIB_CC1101_REG_MDMCFG0 0x14
+
59#define RADIOLIB_CC1101_REG_DEVIATN 0x15
+
60#define RADIOLIB_CC1101_REG_MCSM2 0x16
+
61#define RADIOLIB_CC1101_REG_MCSM1 0x17
+
62#define RADIOLIB_CC1101_REG_MCSM0 0x18
+
63#define RADIOLIB_CC1101_REG_FOCCFG 0x19
+
64#define RADIOLIB_CC1101_REG_BSCFG 0x1A
+
65#define RADIOLIB_CC1101_REG_AGCCTRL2 0x1B
+
66#define RADIOLIB_CC1101_REG_AGCCTRL1 0x1C
+
67#define RADIOLIB_CC1101_REG_AGCCTRL0 0x1D
+
68#define RADIOLIB_CC1101_REG_WOREVT1 0x1E
+
69#define RADIOLIB_CC1101_REG_WOREVT0 0x1F
+
70#define RADIOLIB_CC1101_REG_WORCTRL 0x20
+
71#define RADIOLIB_CC1101_REG_FREND1 0x21
+
72#define RADIOLIB_CC1101_REG_FREND0 0x22
+
73#define RADIOLIB_CC1101_REG_FSCAL3 0x23
+
74#define RADIOLIB_CC1101_REG_FSCAL2 0x24
+
75#define RADIOLIB_CC1101_REG_FSCAL1 0x25
+
76#define RADIOLIB_CC1101_REG_FSCAL0 0x26
+
77#define RADIOLIB_CC1101_REG_RCCTRL1 0x27
+
78#define RADIOLIB_CC1101_REG_RCCTRL0 0x28
+
79#define RADIOLIB_CC1101_REG_FSTEST 0x29
+
80#define RADIOLIB_CC1101_REG_PTEST 0x2A
+
81#define RADIOLIB_CC1101_REG_AGCTEST 0x2B
+
82#define RADIOLIB_CC1101_REG_TEST2 0x2C
+
83#define RADIOLIB_CC1101_REG_TEST1 0x2D
+
84#define RADIOLIB_CC1101_REG_TEST0 0x2E
+
85#define RADIOLIB_CC1101_REG_PARTNUM 0x30
+
86#define RADIOLIB_CC1101_REG_VERSION 0x31
+
87#define RADIOLIB_CC1101_REG_FREQEST 0x32
+
88#define RADIOLIB_CC1101_REG_LQI 0x33
+
89#define RADIOLIB_CC1101_REG_RSSI 0x34
+
90#define RADIOLIB_CC1101_REG_MARCSTATE 0x35
+
91#define RADIOLIB_CC1101_REG_WORTIME1 0x36
+
92#define RADIOLIB_CC1101_REG_WORTIME0 0x37
+
93#define RADIOLIB_CC1101_REG_PKTSTATUS 0x38
+
94#define RADIOLIB_CC1101_REG_VCO_VC_DAC 0x39
+
95#define RADIOLIB_CC1101_REG_TXBYTES 0x3A
+
96#define RADIOLIB_CC1101_REG_RXBYTES 0x3B
+
97#define RADIOLIB_CC1101_REG_RCCTRL1_STATUS 0x3C
+
98#define RADIOLIB_CC1101_REG_RCCTRL0_STATUS 0x3D
+
99#define RADIOLIB_CC1101_REG_PATABLE 0x3E
+
100#define RADIOLIB_CC1101_REG_FIFO 0x3F
+
+
+
103#define RADIOLIB_CC1101_STATUS_CHIP_READY 0b00000000
+
104#define RADIOLIB_CC1101_STATUS_CHIP_NOT_READY 0b10000000
+
105#define RADIOLIB_CC1101_STATUS_IDLE 0b00000000
+
106#define RADIOLIB_CC1101_STATUS_RX 0b00010000
+
107#define RADIOLIB_CC1101_STATUS_TX 0b00100000
+
108#define RADIOLIB_CC1101_STATUS_FSTXON 0b00110000
+
109#define RADIOLIB_CC1101_STATUS_CALIBRATE 0b01000000
+
110#define RADIOLIB_CC1101_STATUS_SETTLING 0b01010000
+
111#define RADIOLIB_CC1101_STATUS_RXFIFO_OVERFLOW 0b01100000
+
112#define RADIOLIB_CC1101_STATUS_TXFIFO_UNDERFLOW 0b01110000
+
+
+
115#define RADIOLIB_CC1101_GDO2_NORM 0b00000000
+
116#define RADIOLIB_CC1101_GDO2_INV 0b01000000
+
+
+
119#define RADIOLIB_CC1101_GDO_DS_LOW 0b00000000
+
120#define RADIOLIB_CC1101_GDO_DS_HIGH 0b10000000
+
121#define RADIOLIB_CC1101_GDO1_NORM 0b00000000
+
122#define RADIOLIB_CC1101_GDO1_INV 0b01000000
+
+
+
125#define RADIOLIB_CC1101_GDO0_TEMP_SENSOR_OFF 0b00000000
+
126#define RADIOLIB_CC1101_GDO0_TEMP_SENSOR_ON 0b10000000
+
127#define RADIOLIB_CC1101_GDO0_NORM 0b00000000
+
128#define RADIOLIB_CC1101_GDO0_INV 0b01000000
+
+
+
131#define RADIOLIB_CC1101_GDOX_RX_FIFO_FULL 0x00
+
132#define RADIOLIB_CC1101_GDOX_RX_FIFO_FULL_OR_PKT_END 0x01
+
133#define RADIOLIB_CC1101_GDOX_TX_FIFO_ABOVE_THR 0x02
+
134#define RADIOLIB_CC1101_GDOX_TX_FIFO_FULL 0x03
+
135#define RADIOLIB_CC1101_GDOX_RX_FIFO_OVERFLOW 0x04
+
136#define RADIOLIB_CC1101_GDOX_TX_FIFO_UNDERFLOW 0x05
+
137#define RADIOLIB_CC1101_GDOX_SYNC_WORD_SENT_OR_PKT_RECEIVED 0x06
+
138#define RADIOLIB_CC1101_GDOX_PKT_RECEIVED_CRC_OK 0x07
+
139#define RADIOLIB_CC1101_GDOX_PREAMBLE_QUALITY_REACHED 0x08
+
140#define RADIOLIB_CC1101_GDOX_CHANNEL_CLEAR 0x09
+
141#define RADIOLIB_CC1101_GDOX_PLL_LOCKED 0x0A
+
142#define RADIOLIB_CC1101_GDOX_SERIAL_CLOCK 0x0B
+
143#define RADIOLIB_CC1101_GDOX_SERIAL_DATA_SYNC 0x0C
+
144#define RADIOLIB_CC1101_GDOX_SERIAL_DATA_ASYNC 0x0D
+
145#define RADIOLIB_CC1101_GDOX_CARRIER_SENSE 0x0E
+
146#define RADIOLIB_CC1101_GDOX_CRC_OK 0x0F
+
147#define RADIOLIB_CC1101_GDOX_RX_HARD_DATA1 0x16
+
148#define RADIOLIB_CC1101_GDOX_RX_HARD_DATA0 0x17
+
149#define RADIOLIB_CC1101_GDOX_PA_PD 0x1B
+
150#define RADIOLIB_CC1101_GDOX_LNA_PD 0x1C
+
151#define RADIOLIB_CC1101_GDOX_RX_SYMBOL_TICK 0x1D
+
152#define RADIOLIB_CC1101_GDOX_WOR_EVNT0 0x24
+
153#define RADIOLIB_CC1101_GDOX_WOR_EVNT1 0x25
+
154#define RADIOLIB_CC1101_GDOX_CLK_256 0x26
+
155#define RADIOLIB_CC1101_GDOX_CLK_32K 0x27
+
156#define RADIOLIB_CC1101_GDOX_CHIP_RDYN 0x29
+
157#define RADIOLIB_CC1101_GDOX_XOSC_STABLE 0x2B
+
158#define RADIOLIB_CC1101_GDOX_HIGH_Z 0x2E
+
159#define RADIOLIB_CC1101_GDOX_HW_TO_0 0x2F
+
160#define RADIOLIB_CC1101_GDOX_CLOCK_XOSC_1 0x30
+
161#define RADIOLIB_CC1101_GDOX_CLOCK_XOSC_1_5 0x31
+
162#define RADIOLIB_CC1101_GDOX_CLOCK_XOSC_2 0x32
+
163#define RADIOLIB_CC1101_GDOX_CLOCK_XOSC_3 0x33
+
164#define RADIOLIB_CC1101_GDOX_CLOCK_XOSC_4 0x34
+
165#define RADIOLIB_CC1101_GDOX_CLOCK_XOSC_6 0x35
+
166#define RADIOLIB_CC1101_GDOX_CLOCK_XOSC_8 0x36
+
167#define RADIOLIB_CC1101_GDOX_CLOCK_XOSC_12 0x37
+
168#define RADIOLIB_CC1101_GDOX_CLOCK_XOSC_16 0x38
+
169#define RADIOLIB_CC1101_GDOX_CLOCK_XOSC_24 0x39
+
170#define RADIOLIB_CC1101_GDOX_CLOCK_XOSC_32 0x3A
+
171#define RADIOLIB_CC1101_GDOX_CLOCK_XOSC_48 0x3B
+
172#define RADIOLIB_CC1101_GDOX_CLOCK_XOSC_64 0x3C
+
173#define RADIOLIB_CC1101_GDOX_CLOCK_XOSC_96 0x3D
+
174#define RADIOLIB_CC1101_GDOX_CLOCK_XOSC_128 0x3E
+
175#define RADIOLIB_CC1101_GDOX_CLOCK_XOSC_192 0x3F
+
+
+
178#define RADIOLIB_CC1101_ADC_RETENTION_OFF 0b00000000
+
179#define RADIOLIB_CC1101_ADC_RETENTION_ON 0b01000000
+
180#define RADIOLIB_CC1101_RX_ATTEN_0_DB 0b00000000
+
181#define RADIOLIB_CC1101_RX_ATTEN_6_DB 0b00010000
+
182#define RADIOLIB_CC1101_RX_ATTEN_12_DB 0b00100000
+
183#define RADIOLIB_CC1101_RX_ATTEN_18_DB 0b00110000
+
184#define RADIOLIB_CC1101_FIFO_THR_TX_61_RX_4 0b00000000
+
185#define RADIOLIB_CC1101_FIFO_THR_TX_33_RX_32 0b00000111
+
186#define RADIOLIB_CC1101_FIFO_THRESH_TX 33
+
187#define RADIOLIB_CC1101_FIFO_THRESH_RX 32
+
+
+
190#define RADIOLIB_CC1101_SYNC_WORD_MSB 0xD3
+
+
+
193#define RADIOLIB_CC1101_SYNC_WORD_LSB 0x91
+
+
+
196#define RADIOLIB_CC1101_PQT 0x00
+
197#define RADIOLIB_CC1101_CRC_AUTOFLUSH_OFF 0b00000000
+
198#define RADIOLIB_CC1101_CRC_AUTOFLUSH_ON 0b00001000
+
199#define RADIOLIB_CC1101_APPEND_STATUS_OFF 0b00000000
+
200#define RADIOLIB_CC1101_APPEND_STATUS_ON 0b00000100
+
201#define RADIOLIB_CC1101_ADR_CHK_NONE 0b00000000
+
202#define RADIOLIB_CC1101_ADR_CHK_NO_BROADCAST 0b00000001
+
203#define RADIOLIB_CC1101_ADR_CHK_SINGLE_BROADCAST 0b00000010
+
204#define RADIOLIB_CC1101_ADR_CHK_DOUBLE_BROADCAST 0b00000011
+
+
+
207#define RADIOLIB_CC1101_WHITE_DATA_OFF 0b00000000
+
208#define RADIOLIB_CC1101_WHITE_DATA_ON 0b01000000
+
209#define RADIOLIB_CC1101_PKT_FORMAT_NORMAL 0b00000000
+
210#define RADIOLIB_CC1101_PKT_FORMAT_SYNCHRONOUS 0b00010000
+
211#define RADIOLIB_CC1101_PKT_FORMAT_RANDOM 0b00100000
+
212#define RADIOLIB_CC1101_PKT_FORMAT_ASYNCHRONOUS 0b00110000
+
213#define RADIOLIB_CC1101_CRC_OFF 0b00000000
+
214#define RADIOLIB_CC1101_CRC_ON 0b00000100
+
215#define RADIOLIB_CC1101_LENGTH_CONFIG_FIXED 0b00000000
+
216#define RADIOLIB_CC1101_LENGTH_CONFIG_VARIABLE 0b00000001
+
217#define RADIOLIB_CC1101_LENGTH_CONFIG_INFINITE 0b00000010
+
+
+
220#define RADIOLIB_CC1101_DEVICE_ADDR 0x00
+
+
+
223#define RADIOLIB_CC1101_CHAN 0x00
+
+
+
226#define RADIOLIB_CC1101_FREQ_IF 0x0F
+
+
+
229#define RADIOLIB_CC1101_FREQOFF 0x00
+
+
+
232#define RADIOLIB_CC1101_FREQ_MSB 0x1E
+
233#define RADIOLIB_CC1101_FREQ_MID 0xC4
+
234#define RADIOLIB_CC1101_FREQ_LSB 0xEC
+
+
+
237#define RADIOLIB_CC1101_CHANBW_E 0b10000000
+
238#define RADIOLIB_CC1101_CHANBW_M 0b00000000
+
239#define RADIOLIB_CC1101_DRATE_E 0x0C
+
+
+
242#define RADIOLIB_CC1101_DRATE_M 0x22
+
+
+
245#define RADIOLIB_CC1101_DEM_DCFILT_OFF 0b10000000
+
246#define RADIOLIB_CC1101_DEM_DCFILT_ON 0b00000000
+
247#define RADIOLIB_CC1101_MOD_FORMAT_2_FSK 0b00000000
+
248#define RADIOLIB_CC1101_MOD_FORMAT_GFSK 0b00010000
+
249#define RADIOLIB_CC1101_MOD_FORMAT_ASK_OOK 0b00110000
+
250#define RADIOLIB_CC1101_MOD_FORMAT_4_FSK 0b01000000
+
251#define RADIOLIB_CC1101_MOD_FORMAT_MFSK 0b01110000
+
252#define RADIOLIB_CC1101_MANCHESTER_EN_OFF 0b00000000
+
253#define RADIOLIB_CC1101_MANCHESTER_EN_ON 0b00001000
+
254#define RADIOLIB_CC1101_SYNC_MODE_NONE 0b00000000
+
255#define RADIOLIB_CC1101_SYNC_MODE_15_16 0b00000001
+
256#define RADIOLIB_CC1101_SYNC_MODE_16_16 0b00000010
+
257#define RADIOLIB_CC1101_SYNC_MODE_30_32 0b00000011
+
258#define RADIOLIB_CC1101_SYNC_MODE_NONE_THR 0b00000100
+
259#define RADIOLIB_CC1101_SYNC_MODE_15_16_THR 0b00000101
+
260#define RADIOLIB_CC1101_SYNC_MODE_16_16_THR 0b00000110
+
261#define RADIOLIB_CC1101_SYNC_MODE_30_32_THR 0b00000111
+
+
+
264#define RADIOLIB_CC1101_FEC_OFF 0b00000000
+
265#define RADIOLIB_CC1101_FEC_ON 0b10000000
+
266#define RADIOLIB_CC1101_NUM_PREAMBLE_2 0b00000000
+
267#define RADIOLIB_CC1101_NUM_PREAMBLE_3 0b00010000
+
268#define RADIOLIB_CC1101_NUM_PREAMBLE_4 0b00100000
+
269#define RADIOLIB_CC1101_NUM_PREAMBLE_6 0b00110000
+
270#define RADIOLIB_CC1101_NUM_PREAMBLE_8 0b01000000
+
271#define RADIOLIB_CC1101_NUM_PREAMBLE_12 0b01010000
+
272#define RADIOLIB_CC1101_NUM_PREAMBLE_16 0b01100000
+
273#define RADIOLIB_CC1101_NUM_PREAMBLE_24 0b01110000
+
274#define RADIOLIB_CC1101_CHANSPC_E 0x02
+
+
+
277#define RADIOLIB_CC1101_CHANSPC_M 0xF8
+
+
+
280#define RADIOLIB_CC1101_DEVIATION_E 0b01000000
+
281#define RADIOLIB_CC1101_DEVIATION_M 0b00000111
+
282#define RADIOLIB_CC1101_MSK_PHASE_CHANGE_PERIOD 0x07
+
+
+
285#define RADIOLIB_CC1101_RX_TIMEOUT_RSSI_OFF 0b00000000
+
286#define RADIOLIB_CC1101_RX_TIMEOUT_RSSI_ON 0b00010000
+
287#define RADIOLIB_CC1101_RX_TIMEOUT_QUAL_OFF 0b00000000
+
288#define RADIOLIB_CC1101_RX_TIMEOUT_QUAL_ON 0b00001000
+
289#define RADIOLIB_CC1101_RX_TIMEOUT_OFF 0b00000111
+
290#define RADIOLIB_CC1101_RX_TIMEOUT_MAX 0b00000000
+
+
+
293#define RADIOLIB_CC1101_CCA_MODE_ALWAYS 0b00000000
+
294#define RADIOLIB_CC1101_CCA_MODE_RSSI_THR 0b00010000
+
295#define RADIOLIB_CC1101_CCA_MODE_RX_PKT 0b00100000
+
296#define RADIOLIB_CC1101_CCA_MODE_RSSI_THR_RX_PKT 0b00110000
+
297#define RADIOLIB_CC1101_RXOFF_IDLE 0b00000000
+
298#define RADIOLIB_CC1101_RXOFF_FSTXON 0b00000100
+
299#define RADIOLIB_CC1101_RXOFF_TX 0b00001000
+
300#define RADIOLIB_CC1101_RXOFF_RX 0b00001100
+
301#define RADIOLIB_CC1101_TXOFF_IDLE 0b00000000
+
302#define RADIOLIB_CC1101_TXOFF_FSTXON 0b00000001
+
303#define RADIOLIB_CC1101_TXOFF_TX 0b00000010
+
304#define RADIOLIB_CC1101_TXOFF_RX 0b00000011
+
+
+
307#define RADIOLIB_CC1101_FS_AUTOCAL_NEVER 0b00000000
+
308#define RADIOLIB_CC1101_FS_AUTOCAL_IDLE_TO_RXTX 0b00010000
+
309#define RADIOLIB_CC1101_FS_AUTOCAL_RXTX_TO_IDLE 0b00100000
+
310#define RADIOLIB_CC1101_FS_AUTOCAL_RXTX_TO_IDLE_4TH 0b00110000
+
311#define RADIOLIB_CC1101_PO_TIMEOUT_COUNT_1 0b00000000
+
312#define RADIOLIB_CC1101_PO_TIMEOUT_COUNT_16 0b00000100
+
313#define RADIOLIB_CC1101_PO_TIMEOUT_COUNT_64 0b00001000
+
314#define RADIOLIB_CC1101_PO_TIMEOUT_COUNT_256 0b00001100
+
315#define RADIOLIB_CC1101_PIN_CTRL_OFF 0b00000000
+
316#define RADIOLIB_CC1101_PIN_CTRL_ON 0b00000010
+
317#define RADIOLIB_CC1101_XOSC_FORCE_OFF 0b00000000
+
318#define RADIOLIB_CC1101_XOSC_FORCE_ON 0b00000001
+
+
+
321#define RADIOLIB_CC1101_FOC_BS_CS_GATE_OFF 0b00000000
+
322#define RADIOLIB_CC1101_FOC_BS_CS_GATE_ON 0b00100000
+
323#define RADIOLIB_CC1101_FOC_PRE_K 0b00000000
+
324#define RADIOLIB_CC1101_FOC_PRE_2K 0b00001000
+
325#define RADIOLIB_CC1101_FOC_PRE_3K 0b00010000
+
326#define RADIOLIB_CC1101_FOC_PRE_4K 0b00011000
+
327#define RADIOLIB_CC1101_FOC_POST_K 0b00000000
+
328#define RADIOLIB_CC1101_FOC_POST_K_2 0b00000100
+
329#define RADIOLIB_CC1101_FOC_LIMIT_NO_COMPENSATION 0b00000000
+
330#define RADIOLIB_CC1101_FOC_LIMIT_BW_CHAN_8 0b00000001
+
331#define RADIOLIB_CC1101_FOC_LIMIT_BW_CHAN_4 0b00000010
+
332#define RADIOLIB_CC1101_FOC_LIMIT_BW_CHAN_2 0b00000011
+
+
+
335#define RADIOLIB_CC1101_BS_PRE_KI 0b00000000
+
336#define RADIOLIB_CC1101_BS_PRE_2KI 0b01000000
+
337#define RADIOLIB_CC1101_BS_PRE_3KI 0b10000000
+
338#define RADIOLIB_CC1101_BS_PRE_4KI 0b11000000
+
339#define RADIOLIB_CC1101_BS_PRE_KP 0b00000000
+
340#define RADIOLIB_CC1101_BS_PRE_2KP 0b00010000
+
341#define RADIOLIB_CC1101_BS_PRE_3KP 0b00100000
+
342#define RADIOLIB_CC1101_BS_PRE_4KP 0b00110000
+
343#define RADIOLIB_CC1101_BS_POST_KI 0b00000000
+
344#define RADIOLIB_CC1101_BS_POST_KI_2 0b00001000
+
345#define RADIOLIB_CC1101_BS_POST_KP 0b00000000
+
346#define RADIOLIB_CC1101_BS_POST_KP_1 0b00000100
+
347#define RADIOLIB_CC1101_BS_LIMIT_NO_COMPENSATION 0b00000000
+
348#define RADIOLIB_CC1101_BS_LIMIT_3_125 0b00000001
+
349#define RADIOLIB_CC1101_BS_LIMIT_6_25 0b00000010
+
350#define RADIOLIB_CC1101_BS_LIMIT_12_5 0b00000011
+
+
+
353#define RADIOLIB_CC1101_MAX_DVGA_GAIN_0 0b00000000
+
354#define RADIOLIB_CC1101_MAX_DVGA_GAIN_1 0b01000000
+
355#define RADIOLIB_CC1101_MAX_DVGA_GAIN_2 0b10000000
+
356#define RADIOLIB_CC1101_MAX_DVGA_GAIN_3 0b11000000
+
357#define RADIOLIB_CC1101_LNA_GAIN_REDUCE_0_DB 0b00000000
+
358#define RADIOLIB_CC1101_LNA_GAIN_REDUCE_2_6_DB 0b00001000
+
359#define RADIOLIB_CC1101_LNA_GAIN_REDUCE_6_1_DB 0b00010000
+
360#define RADIOLIB_CC1101_LNA_GAIN_REDUCE_7_4_DB 0b00011000
+
361#define RADIOLIB_CC1101_LNA_GAIN_REDUCE_9_2_DB 0b00100000
+
362#define RADIOLIB_CC1101_LNA_GAIN_REDUCE_11_5_DB 0b00101000
+
363#define RADIOLIB_CC1101_LNA_GAIN_REDUCE_14_6_DB 0b00110000
+
364#define RADIOLIB_CC1101_LNA_GAIN_REDUCE_17_1_DB 0b00111000
+
365#define RADIOLIB_CC1101_MAGN_TARGET_24_DB 0b00000000
+
366#define RADIOLIB_CC1101_MAGN_TARGET_27_DB 0b00000001
+
367#define RADIOLIB_CC1101_MAGN_TARGET_30_DB 0b00000010
+
368#define RADIOLIB_CC1101_MAGN_TARGET_33_DB 0b00000011
+
369#define RADIOLIB_CC1101_MAGN_TARGET_36_DB 0b00000100
+
370#define RADIOLIB_CC1101_MAGN_TARGET_38_DB 0b00000101
+
371#define RADIOLIB_CC1101_MAGN_TARGET_40_DB 0b00000110
+
372#define RADIOLIB_CC1101_MAGN_TARGET_42_DB 0b00000111
+
+
+
375#define RADIOLIB_CC1101_AGC_LNA_PRIORITY_LNA2 0b00000000
+
376#define RADIOLIB_CC1101_AGC_LNA_PRIORITY_LNA 0b01000000
+
377#define RADIOLIB_CC1101_CARRIER_SENSE_REL_THR_OFF 0b00000000
+
378#define RADIOLIB_CC1101_CARRIER_SENSE_REL_THR_6_DB 0b00010000
+
379#define RADIOLIB_CC1101_CARRIER_SENSE_REL_THR_10_DB 0b00100000
+
380#define RADIOLIB_CC1101_CARRIER_SENSE_REL_THR_14_DB 0b00110000
+
381#define RADIOLIB_CC1101_CARRIER_SENSE_ABS_THR 0x00
+
+
+
384#define RADIOLIB_CC1101_HYST_LEVEL_NONE 0b00000000
+
385#define RADIOLIB_CC1101_HYST_LEVEL_LOW 0b01000000
+
386#define RADIOLIB_CC1101_HYST_LEVEL_MEDIUM 0b10000000
+
387#define RADIOLIB_CC1101_HYST_LEVEL_HIGH 0b11000000
+
388#define RADIOLIB_CC1101_WAIT_TIME_8_SAMPLES 0b00000000
+
389#define RADIOLIB_CC1101_WAIT_TIME_16_SAMPLES 0b00010000
+
390#define RADIOLIB_CC1101_WAIT_TIME_24_SAMPLES 0b00100000
+
391#define RADIOLIB_CC1101_WAIT_TIME_32_SAMPLES 0b00110000
+
392#define RADIOLIB_CC1101_AGC_FREEZE_NEVER 0b00000000
+
393#define RADIOLIB_CC1101_AGC_FREEZE_SYNC_WORD 0b00000100
+
394#define RADIOLIB_CC1101_AGC_FREEZE_MANUAL_A 0b00001000
+
395#define RADIOLIB_CC1101_AGC_FREEZE_MANUAL_AD 0b00001100
+
396#define RADIOLIB_CC1101_FILTER_LENGTH_8 0b00000000
+
397#define RADIOLIB_CC1101_FILTER_LENGTH_16 0b00000001
+
398#define RADIOLIB_CC1101_FILTER_LENGTH_32 0b00000010
+
399#define RADIOLIB_CC1101_FILTER_LENGTH_64 0b00000011
+
400#define RADIOLIB_CC1101_ASK_OOK_BOUNDARY_4_DB 0b00000000
+
401#define RADIOLIB_CC1101_ASK_OOK_BOUNDARY_8_DB 0b00000001
+
402#define RADIOLIB_CC1101_ASK_OOK_BOUNDARY_12_DB 0b00000010
+
403#define RADIOLIB_CC1101_ASK_OOK_BOUNDARY_16_DB 0b00000011
+
+
+
406#define RADIOLIB_CC1101_EVENT0_TIMEOUT_MSB 0x87
+
407#define RADIOLIB_CC1101_EVENT0_TIMEOUT_LSB 0x6B
+
+
+
410#define RADIOLIB_CC1101_RC_POWER_UP 0b00000000
+
411#define RADIOLIB_CC1101_RC_POWER_DOWN 0b10000000
+
412#define RADIOLIB_CC1101_EVENT1_TIMEOUT_4 0b00000000
+
413#define RADIOLIB_CC1101_EVENT1_TIMEOUT_6 0b00010000
+
414#define RADIOLIB_CC1101_EVENT1_TIMEOUT_8 0b00100000
+
415#define RADIOLIB_CC1101_EVENT1_TIMEOUT_12 0b00110000
+
416#define RADIOLIB_CC1101_EVENT1_TIMEOUT_16 0b01000000
+
417#define RADIOLIB_CC1101_EVENT1_TIMEOUT_24 0b01010000
+
418#define RADIOLIB_CC1101_EVENT1_TIMEOUT_32 0b01100000
+
419#define RADIOLIB_CC1101_EVENT1_TIMEOUT_48 0b01110000
+
420#define RADIOLIB_CC1101_RC_CAL_OFF 0b00000000
+
421#define RADIOLIB_CC1101_RC_CAL_ON 0b00001000
+
422#define RADIOLIB_CC1101_WOR_RES_1 0b00000000
+
423#define RADIOLIB_CC1101_WOR_RES_2_5 0b00000001
+
424#define RADIOLIB_CC1101_WOR_RES_2_10 0b00000010
+
425#define RADIOLIB_CC1101_WOR_RES_2_15 0b00000011
+
+
+
428#define RADIOLIB_CC1101_LNA_CURRENT 0x01
+
429#define RADIOLIB_CC1101_LNA2MIX_CURRENT 0x01
+
430#define RADIOLIB_CC1101_LODIV_BUF_CURRENT_RX 0x01
+
431#define RADIOLIB_CC1101_MIX_CURRENT 0x02
+
+
+
434#define RADIOLIB_CC1101_LODIV_BUF_CURRENT_TX 0x01
+
435#define RADIOLIB_CC1101_PA_POWER 0x00
+
+
+
438#define RADIOLIB_CC1101_CHP_CURR_CAL_OFF 0b00000000
+
439#define RADIOLIB_CC1101_CHP_CURR_CAL_ON 0b00100000
+
440#define RADIOLIB_CC1101_FSCAL3 0x09
+
+
+
443#define RADIOLIB_CC1101_VCO_CORE_LOW 0b00000000
+
444#define RADIOLIB_CC1101_VCO_CORE_HIGH 0b00100000
+
445#define RADIOLIB_CC1101_FSCAL2 0x0A
+
+
+
448#define RADIOLIB_CC1101_FSCAL1 0x20
+
+
+
451#define RADIOLIB_CC1101_FSCAL0 0x0D
+
+
+
454#define RADIOLIB_CC1101_RCCTRL1 0x41
+
+
+
457#define RADIOLIB_CC1101_RCCTRL0 0x00
+
+
+
460#define RADIOLIB_CC1101_TEMP_SENS_IDLE_OFF 0x7F
+
461#define RADIOLIB_CC1101_TEMP_SENS_IDLE_ON 0xBF
+
+
+
464#define RADIOLIB_CC1101_VCO_SEL_CAL_OFF 0b00000000
+
465#define RADIOLIB_CC1101_VCO_SEL_CAL_ON 0b00000010
+
+
+
468#define RADIOLIB_CC1101_PARTNUM 0x00
+
+
+
471#define RADIOLIB_CC1101_VERSION_CURRENT 0x14
+
472#define RADIOLIB_CC1101_VERSION_LEGACY 0x04
+
473#define RADIOLIB_CC1101_VERSION_CLONE 0x17
+
+
+
476#define RADIOLIB_CC1101_MARC_STATE_SLEEP 0x00
+
477#define RADIOLIB_CC1101_MARC_STATE_IDLE 0x01
+
478#define RADIOLIB_CC1101_MARC_STATE_XOFF 0x02
+
479#define RADIOLIB_CC1101_MARC_STATE_VCOON_MC 0x03
+
480#define RADIOLIB_CC1101_MARC_STATE_REGON_MC 0x04
+
481#define RADIOLIB_CC1101_MARC_STATE_MANCAL 0x05
+
482#define RADIOLIB_CC1101_MARC_STATE_VCOON 0x06
+
483#define RADIOLIB_CC1101_MARC_STATE_REGON 0x07
+
484#define RADIOLIB_CC1101_MARC_STATE_STARTCAL 0x08
+
485#define RADIOLIB_CC1101_MARC_STATE_BWBOOST 0x09
+
486#define RADIOLIB_CC1101_MARC_STATE_FS_LOCK 0x0A
+
487#define RADIOLIB_CC1101_MARC_STATE_IFADCON 0x0B
+
488#define RADIOLIB_CC1101_MARC_STATE_ENDCAL 0x0C
+
489#define RADIOLIB_CC1101_MARC_STATE_RX 0x0D
+
490#define RADIOLIB_CC1101_MARC_STATE_RX_END 0x0E
+
491#define RADIOLIB_CC1101_MARC_STATE_RX_RST 0x0F
+
492#define RADIOLIB_CC1101_MARC_STATE_TXRX_SWITCH 0x10
+
493#define RADIOLIB_CC1101_MARC_STATE_RXFIFO_OVERFLOW 0x11
+
494#define RADIOLIB_CC1101_MARC_STATE_FSTXON 0x12
+
495#define RADIOLIB_CC1101_MARC_STATE_TX 0x13
+
496#define RADIOLIB_CC1101_MARC_STATE_TX_END 0x14
+
497#define RADIOLIB_CC1101_MARC_STATE_RXTX_SWITCH 0x15
+
498#define RADIOLIB_CC1101_MARC_STATE_TXFIFO_UNDERFLOW 0x16
+
+
+
501#define RADIOLIB_CC1101_WORTIME_MSB 0x00
+
502#define RADIOLIB_CC1101_WORTIME_LSB 0x00
+
+
+
505#define RADIOLIB_CC1101_CRC_OK 0b10000000
+
506#define RADIOLIB_CC1101_CRC_ERROR 0b00000000
+
507#define RADIOLIB_CC1101_CS 0b01000000
+
508#define RADIOLIB_CC1101_PQT_REACHED 0b00100000
+
509#define RADIOLIB_CC1101_CCA 0b00010000
+
510#define RADIOLIB_CC1101_SFD 0b00001000
+
511#define RADIOLIB_CC1101_GDO2_ACTIVE 0b00000100
+
512#define RADIOLIB_CC1101_GDO0_ACTIVE 0b00000001
+
+
+
515#define RADIOLIB_CC1101_DEFAULT_FREQ 434.0
+
516#define RADIOLIB_CC1101_DEFAULT_BR 4.8
+
517#define RADIOLIB_CC1101_DEFAULT_FREQDEV 5.0
+
518#define RADIOLIB_CC1101_DEFAULT_RXBW 58.0
+
519#define RADIOLIB_CC1101_DEFAULT_POWER 10
+
520#define RADIOLIB_CC1101_DEFAULT_PREAMBLELEN 16
+
521#define RADIOLIB_CC1101_DEFAULT_SW {0x12, 0xAD}
+
522#define RADIOLIB_CC1101_DEFAULT_SW_LEN 2
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
556 float freq = RADIOLIB_CC1101_DEFAULT_FREQ,
+
557 float br = RADIOLIB_CC1101_DEFAULT_BR,
+
558 float freqDev = RADIOLIB_CC1101_DEFAULT_FREQDEV,
+
559 float rxBw = RADIOLIB_CC1101_DEFAULT_RXBW,
+
560 int8_t pwr = RADIOLIB_CC1101_DEFAULT_POWER,
+
561 uint8_t preambleLength = RADIOLIB_CC1101_DEFAULT_PREAMBLELEN);
+
+
+
574 float freq = RADIOLIB_CC1101_DEFAULT_FREQ,
+
575 float br = RADIOLIB_CC1101_DEFAULT_BR,
+
576 float freqDev = RADIOLIB_CC1101_DEFAULT_FREQDEV,
+
577 float rxBw = RADIOLIB_CC1101_DEFAULT_RXBW,
+
578 int8_t pwr = RADIOLIB_CC1101_DEFAULT_POWER,
+
579 uint8_t preambleLength = RADIOLIB_CC1101_DEFAULT_PREAMBLELEN);
+
+
+
+
594 int16_t
transmit(
const uint8_t* data,
size_t len, uint8_t addr = 0)
override;
+
+
603 int16_t
receive(uint8_t* data,
size_t len)
override;
+
+
+
+
616 int16_t
standby(uint8_t mode)
override;
+
+
622 int16_t
sleep()
override;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
715 int16_t
startTransmit(
const uint8_t* data,
size_t len, uint8_t addr = 0)
override;
+
+
+
+
+
+
737 int16_t
startReceive(uint32_t timeout, uint32_t irqFlags, uint32_t irqMask,
size_t len)
override;
+
+
747 int16_t
readData(uint8_t* data,
size_t len)
override;
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
836 int16_t
setSyncWord(uint8_t syncH, uint8_t syncL, uint8_t maxErrBits = 0,
bool requireCarrierSense =
false);
+
+
846 int16_t
setSyncWord(
const uint8_t* syncWord, uint8_t len, uint8_t maxErrBits = 0,
bool requireCarrierSense =
false);
+
+
+
+
863 int16_t
setNodeAddress(uint8_t nodeAddr, uint8_t numBroadcastAddrs = 0);
+
+
+
+
876 int16_t
setOOK(
bool enableOOK);
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
984 #if !RADIOLIB_EXCLUDE_DIRECT_RECEIVE
+
+
+
995 void readBit(uint32_t pin)
override;
+
+
+
1004 int16_t
setDIOMapping(uint32_t pin, uint32_t value)
override;
+
+
1006 #if !RADIOLIB_GODMODE && !RADIOLIB_LOW_LEVEL
+
+
+
1009 Module* getMod()
override;
+
+
+
1012 int16_t SPIgetRegValue(uint8_t reg, uint8_t msb = 7, uint8_t lsb = 0);
+
1013 int16_t SPIsetRegValue(uint8_t reg, uint8_t value, uint8_t msb = 7, uint8_t lsb = 0, uint8_t checkInterval = 2);
+
1014 void SPIreadRegisterBurst(uint8_t reg, uint8_t numBytes, uint8_t* inBytes);
+
1015 uint8_t SPIreadRegister(uint8_t reg);
+
1016 void SPIwriteRegisterBurst(uint8_t reg,
const uint8_t* data,
size_t len);
+
1017 void SPIwriteRegister(uint8_t reg, uint8_t data);
+
+
1019 void SPIsendCommand(uint8_t cmd);
+
+
1021 #if !RADIOLIB_GODMODE
+
+
+
+
+
1026 float frequency = RADIOLIB_CC1101_DEFAULT_FREQ;
+
1027 float bitRate = RADIOLIB_CC1101_DEFAULT_BR;
+
1028 uint8_t rawRSSI = 0;
+
+
1030 uint8_t modulation = RADIOLIB_CC1101_MOD_FORMAT_2_FSK;
-
1032 bool promiscuous =
false;
-
-
1034 bool directModeEnabled =
false;
+
1032 size_t packetLength = 0;
+
1033 bool packetLengthQueried =
false;
+
1034 uint8_t packetLengthConfig = RADIOLIB_CC1101_LENGTH_CONFIG_VARIABLE;
-
1036 int8_t power = RADIOLIB_CC1101_DEFAULT_POWER;
-
-
1038 int16_t beginCommon(
float freq,
float br,
float freqDev,
float rxBw, int8_t pwr, uint8_t preambleLength);
-
-
-
-
1042 int16_t directMode(
bool sync);
-
1043 static void getExpMant(
float target, uint16_t mantOffset, uint8_t divExp, uint8_t expMax, uint8_t& exp, uint8_t& mant);
-
1044 int16_t setPacketMode(uint8_t mode, uint16_t len);
-
+
1036 bool promiscuous =
false;
+
+
1038 bool directModeEnabled =
false;
+
+
1040 int8_t power = RADIOLIB_CC1101_DEFAULT_POWER;
+
+
1042 int16_t beginCommon(
float freq,
float br,
float freqDev,
float rxBw, int8_t pwr, uint8_t preambleLength);
+
+
+
+
1046 int16_t directMode(
bool sync);
+
1047 static void getExpMant(
float target, uint16_t mantOffset, uint8_t divExp, uint8_t expMax, uint8_t& exp, uint8_t& mant);
+
1048 int16_t setPacketMode(uint8_t mode, uint16_t len);
+
-
-
-
Control class for CC1101 module.
Definition CC1101.h:527
+
+
+
Control class for CC1101 module.
Definition CC1101.h:528
void clearPacketReceivedAction() override
Clears interrupt service routine to call when a packet is received.
Definition CC1101.cpp:200
-
int16_t setFrequencyDeviation(float freqDev) override
Sets frequency deviation. Allowed values range from 1.587 to 380.8 kHz.
Definition CC1101.cpp:456
+
int16_t setFrequencyDeviation(float freqDev) override
Sets frequency deviation. Allowed values range from 1.587 to 380.8 kHz.
Definition CC1101.cpp:511
int16_t sleep() override
Sets the module to sleep mode.
Definition CC1101.cpp:119
-
void readBit(uint32_t pin) override
Function to read and process data bit in direct reception mode.
Definition CC1101.cpp:927
-
size_t getPacketLength(bool update=true) override
Query modem for the packet length of received payload.
Definition CC1101.cpp:745
-
uint8_t randomByte() override
Get one truly random byte from RSSI noise.
Definition CC1101.cpp:899
+
void readBit(uint32_t pin) override
Function to read and process data bit in direct reception mode.
Definition CC1101.cpp:982
+
size_t getPacketLength(bool update=true) override
Query modem for the packet length of received payload.
Definition CC1101.cpp:800
+
uint8_t randomByte() override
Get one truly random byte from RSSI noise.
Definition CC1101.cpp:954
void reset()
Reset method - resets the chip using manual reset sequence (without RESET pin).
Definition CC1101.cpp:21
int16_t transmitDirect(uint32_t frf=0) override
Starts synchronous direct mode transmission.
Definition CC1101.cpp:125
-
void setDirectAction(void(*func)(void)) override
Set interrupt service routine function to call when data bit is receveid in direct mode.
Definition CC1101.cpp:923
+
void setDirectAction(void(*func)(void)) override
Set interrupt service routine function to call when data bit is receveid in direct mode.
Definition CC1101.cpp:978
void clearPacketSentAction() override
Clears interrupt service routine to call when a packet is sent.
Definition CC1101.cpp:208
void setPacketReceivedAction(void(*func)(void)) override
Sets interrupt service routine to call when a packet is received.
Definition CC1101.cpp:196
-
int16_t getChipVersion()
Read version SPI register. Should return CC1101_VERSION_LEGACY (0x04) or CC1101_VERSION_CURRENT (0x14...
Definition CC1101.cpp:918
+
int16_t getChipVersion()
Read version SPI register. Should return CC1101_VERSION_LEGACY (0x04) or CC1101_VERSION_CURRENT (0x14...
Definition CC1101.cpp:973
void setPacketSentAction(void(*func)(void)) override
Sets interrupt service routine to call when a packet is sent.
Definition CC1101.cpp:204
-
int16_t setRxBandwidth(float rxBw)
Sets receiver bandwidth. Allowed values are 58, 68, 81, 102, 116, 135, 162, 203, 232,...
Definition CC1101.cpp:417
+
int16_t setRxBandwidth(float rxBw)
Sets receiver bandwidth. Allowed values are 58, 68, 81, 102, 116, 135, 162, 203, 232,...
Definition CC1101.cpp:472
int16_t packetMode()
Stops direct mode. It is required to call this method to switch from direct transmissions to packet-b...
Definition CC1101.cpp:181
-
int16_t setSyncWord(uint8_t syncH, uint8_t syncL, uint8_t maxErrBits=0, bool requireCarrierSense=false)
Sets 16-bit sync word as a two byte value.
Definition CC1101.cpp:624
-
int16_t autoSetRxBandwidth()
calculates and sets Rx bandwidth based on the freq, baud and freq uncertainty. Reimplement of atlas0f...
Definition CC1101.cpp:438
-
int16_t disableSyncWordFiltering(bool requireCarrierSense=false)
Disable preamble and sync word filtering and generation.
Definition CC1101.cpp:792
+
int16_t setSyncWord(uint8_t syncH, uint8_t syncL, uint8_t maxErrBits=0, bool requireCarrierSense=false)
Sets 16-bit sync word as a two byte value.
Definition CC1101.cpp:679
+
int16_t autoSetRxBandwidth()
calculates and sets Rx bandwidth based on the freq, baud and freq uncertainty. Reimplement of atlas0f...
Definition CC1101.cpp:493
+
int16_t disableSyncWordFiltering(bool requireCarrierSense=false)
Disable preamble and sync word filtering and generation.
Definition CC1101.cpp:847
int16_t transmit(const uint8_t *data, size_t len, uint8_t addr=0) override
Blocking binary transmit method. Overloads for string-based transmissions are implemented in Physical...
Definition CC1101.cpp:26
-
int16_t variablePacketLengthMode(uint8_t maxLen=RADIOLIB_CC1101_MAX_PACKET_LENGTH)
Set modem in variable packet length mode.
Definition CC1101.cpp:769
-
int16_t setDIOMapping(uint32_t pin, uint32_t value) override
Configure DIO pin mapping to get a given signal on a DIO pin (if available).
Definition CC1101.cpp:932
-
uint8_t getLQI() const
Gets LQI (Link Quality Indicator) of the last received packet.
Definition CC1101.cpp:741
-
int16_t setOutputPower(int8_t pwr) override
Sets output power. Allowed values are -30, -20, -15, -10, 0, 5, 7 or 10 dBm.
Definition CC1101.cpp:508
-
void setRfSwitchPins(uint32_t rxEn, uint32_t txEn)
Some modules contain external RF switch controlled by pins. This function gives RadioLib control over...
Definition CC1101.cpp:891
-
int16_t setCrcFiltering(bool enable=true)
Enable CRC filtering and generation.
Definition CC1101.cpp:797
-
int16_t setNodeAddress(uint8_t nodeAddr, uint8_t numBroadcastAddrs=0)
Sets node and broadcast addresses. Calling this method will also enable address filtering.
Definition CC1101.cpp:671
-
int16_t setBitRate(float br) override
Sets bit rate. Allowed values range from 0.025 to 600.0 kbps.
Definition CC1101.cpp:388
-
int16_t enableSyncWordFiltering(uint8_t maxErrBits=0, bool requireCarrierSense=false)
Enable sync word filtering and generation.
Definition CC1101.cpp:773
-
int16_t startTransmit(const uint8_t *data, size_t len, uint8_t addr=0) override
Interrupt-driven binary transmit method. Overloads for string-based transmissions are implemented in ...
Definition CC1101.cpp:227
+
int16_t variablePacketLengthMode(uint8_t maxLen=RADIOLIB_CC1101_MAX_PACKET_LENGTH)
Set modem in variable packet length mode.
Definition CC1101.cpp:824
+
int16_t setDIOMapping(uint32_t pin, uint32_t value) override
Configure DIO pin mapping to get a given signal on a DIO pin (if available).
Definition CC1101.cpp:987
+
uint8_t getLQI() const
Gets LQI (Link Quality Indicator) of the last received packet.
Definition CC1101.cpp:796
+
int16_t setOutputPower(int8_t pwr) override
Sets output power. Allowed values are -30, -20, -15, -10, 0, 5, 7 or 10 dBm.
Definition CC1101.cpp:563
+
void setRfSwitchPins(uint32_t rxEn, uint32_t txEn)
Some modules contain external RF switch controlled by pins. This function gives RadioLib control over...
Definition CC1101.cpp:946
+
int16_t setCrcFiltering(bool enable=true)
Enable CRC filtering and generation.
Definition CC1101.cpp:852
+
int16_t setNodeAddress(uint8_t nodeAddr, uint8_t numBroadcastAddrs=0)
Sets node and broadcast addresses. Calling this method will also enable address filtering.
Definition CC1101.cpp:726
+
int16_t setBitRate(float br) override
Sets bit rate. Allowed values range from 0.025 to 600.0 kbps.
Definition CC1101.cpp:443
+
int16_t enableSyncWordFiltering(uint8_t maxErrBits=0, bool requireCarrierSense=false)
Enable sync word filtering and generation.
Definition CC1101.cpp:828
+
int16_t startTransmit(const uint8_t *data, size_t len, uint8_t addr=0) override
Interrupt-driven binary transmit method for packets less than 64 bytes. Method blocks for packets lon...
Definition CC1101.cpp:227
int16_t standby() override
Sets the module to standby mode.
Definition CC1101.cpp:95
-
void setRfSwitchTable(const uint32_t(&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[])
Some modules contain external RF switch controlled by pins. This function gives RadioLib control over...
Definition CC1101.cpp:895
-
int16_t readData(uint8_t *data, size_t len) override
Reads data received after calling startReceive method. When the packet length is not known in advance...
Definition CC1101.cpp:307
-
int16_t disableAddressFiltering()
Disables address filtering. Calling this method will also erase previously set addresses.
Definition CC1101.cpp:682
+
void setRfSwitchTable(const uint32_t(&pins)[Module::RFSWITCH_MAX_PINS], const Module::RfSwitchMode_t table[])
Some modules contain external RF switch controlled by pins. This function gives RadioLib control over...
Definition CC1101.cpp:950
+
int16_t readData(uint8_t *data, size_t len) override
Reads data received after calling startReceive method. When the packet length is not known in advance...
Definition CC1101.cpp:362
+
int16_t disableAddressFiltering()
Disables address filtering. Calling this method will also erase previously set addresses.
Definition CC1101.cpp:737
void setGdo0Action(void(*func)(void), uint32_t dir)
Sets interrupt service routine to call when GDO0 activates.
Definition CC1101.cpp:188
int16_t receiveDirectAsync()
Starts asynchronous direct mode reception.
Definition CC1101.cpp:160
int16_t receiveDirect() override
Starts synchronous direct mode reception.
Definition CC1101.cpp:156
-
int16_t setEncoding(uint8_t encoding) override
Sets transmission encoding. Allowed values are RADIOLIB_ENCODING_NRZ, RADIOLIB_ENCODING_MANCHESTER,...
Definition CC1101.cpp:867
-
int16_t checkOutputPower(int8_t power, int8_t *clipped) override
Check if output power is configurable. This method is needed for compatibility with PhysicalLayer::ch...
Definition CC1101.cpp:533
+
int16_t setEncoding(uint8_t encoding) override
Sets transmission encoding. Allowed values are RADIOLIB_ENCODING_NRZ, RADIOLIB_ENCODING_MANCHESTER,...
Definition CC1101.cpp:922
+
int16_t checkOutputPower(int8_t power, int8_t *clipped) override
Check if output power is configurable. This method is needed for compatibility with PhysicalLayer::ch...
Definition CC1101.cpp:588
void clearGdo0Action()
Clears interrupt service routine to call when GDO0 activates.
Definition CC1101.cpp:192
-
float getRSSI() override
Gets RSSI (Recorded Signal Strength Indicator) of the last received packet. In direct or asynchronous...
Definition CC1101.cpp:721
-
int16_t getFrequencyDeviation(float *freqDev)
Gets frequency deviation.
Definition CC1101.cpp:483
-
int16_t setPromiscuousMode(bool enable=true, bool requireCarrierSense=false)
Set modem in "sniff" mode: no packet filtering (e.g., no preamble, sync word, address,...
Definition CC1101.cpp:807
+
float getRSSI() override
Gets RSSI (Recorded Signal Strength Indicator) of the last received packet. In direct or asynchronous...
Definition CC1101.cpp:776
+
int16_t getFrequencyDeviation(float *freqDev)
Gets frequency deviation.
Definition CC1101.cpp:538
+
int16_t setPromiscuousMode(bool enable=true, bool requireCarrierSense=false)
Set modem in "sniff" mode: no packet filtering (e.g., no preamble, sync word, address,...
Definition CC1101.cpp:862
void clearGdo2Action()
Clears interrupt service routine to call when GDO0 activates.
Definition CC1101.cpp:220
-
int16_t fixedPacketLengthMode(uint8_t len=RADIOLIB_CC1101_MAX_PACKET_LENGTH)
Set modem in fixed packet length mode.
Definition CC1101.cpp:759
-
int16_t setFrequency(float freq) override
Sets carrier frequency. Allowed values are in bands 300.0 to 348.0 MHz, 387.0 to 464....
Definition CC1101.cpp:360
+
int16_t fixedPacketLengthMode(uint8_t len=RADIOLIB_CC1101_MAX_PACKET_LENGTH)
Set modem in fixed packet length mode.
Definition CC1101.cpp:814
+
int16_t setFrequency(float freq) override
Sets carrier frequency. Allowed values are in bands 300.0 to 348.0 MHz, 387.0 to 464....
Definition CC1101.cpp:415
void setGdo2Action(void(*func)(void), uint32_t dir)
Sets interrupt service routine to call when GDO2 activates.
Definition CC1101.cpp:212
int16_t begin(float freq=RADIOLIB_CC1101_DEFAULT_FREQ, float br=RADIOLIB_CC1101_DEFAULT_BR, float freqDev=RADIOLIB_CC1101_DEFAULT_FREQDEV, float rxBw=RADIOLIB_CC1101_DEFAULT_RXBW, int8_t pwr=RADIOLIB_CC1101_DEFAULT_POWER, uint8_t preambleLength=RADIOLIB_CC1101_DEFAULT_PREAMBLELEN)
Initialization method.
Definition CC1101.cpp:9
-
int16_t setBitRateTolerance(uint8_t brt)
Sets bit rate tolerance in BSCFG register. Allowed values are 0:(0%), 1(3,125%), 2:(6,...
Definition CC1101.cpp:408
-
int16_t setDataShaping(uint8_t sh) override
Sets Gaussian filter bandwidth-time product that will be used for data shaping. Allowed value is RADI...
Definition CC1101.cpp:848
-
int16_t startReceive() override
Interrupt-driven receive method. GDO0 will be activated when full packet is received.
Definition CC1101.cpp:277
-
int16_t setPreambleLength(uint8_t preambleLength, uint8_t qualityThreshold)
Sets preamble length.
Definition CC1101.cpp:629
+
int16_t setBitRateTolerance(uint8_t brt)
Sets bit rate tolerance in BSCFG register. Allowed values are 0:(0%), 1(3,125%), 2:(6,...
Definition CC1101.cpp:463
+
int16_t setDataShaping(uint8_t sh) override
Sets Gaussian filter bandwidth-time product that will be used for data shaping. Allowed value is RADI...
Definition CC1101.cpp:903
+
int16_t startReceive() override
Interrupt-driven receive method. GDO0 will be activated when full packet is received.
Definition CC1101.cpp:332
+
int16_t setPreambleLength(uint8_t preambleLength, uint8_t qualityThreshold)
Sets preamble length.
Definition CC1101.cpp:684
int16_t receive(uint8_t *data, size_t len) override
Blocking binary receive method. Overloads for string-based transmissions are implemented in PhysicalL...
Definition CC1101.cpp:59
-
bool getPromiscuousMode()
Get whether the modem is in promiscuous mode: no packet filtering (e.g., no preamble,...
Definition CC1101.cpp:844
+
bool getPromiscuousMode()
Get whether the modem is in promiscuous mode: no packet filtering (e.g., no preamble,...
Definition CC1101.cpp:899
int16_t transmitDirectAsync(uint32_t frf=0)
Starts asynchronous direct mode transmission.
Definition CC1101.cpp:129
-
int16_t finishTransmit() override
Clean up after transmission is done.
Definition CC1101.cpp:266
-
int16_t setOOK(bool enableOOK)
Enables/disables OOK modulation instead of FSK.
Definition CC1101.cpp:692
+
int16_t finishTransmit() override
Clean up after transmission is done.
Definition CC1101.cpp:310
+
int16_t setOOK(bool enableOOK)
Enables/disables OOK modulation instead of FSK.
Definition CC1101.cpp:747
int16_t beginFSK4(float freq=RADIOLIB_CC1101_DEFAULT_FREQ, float br=RADIOLIB_CC1101_DEFAULT_BR, float freqDev=RADIOLIB_CC1101_DEFAULT_FREQDEV, float rxBw=RADIOLIB_CC1101_DEFAULT_RXBW, int8_t pwr=RADIOLIB_CC1101_DEFAULT_POWER, uint8_t preambleLength=RADIOLIB_CC1101_DEFAULT_PREAMBLELEN)
Initialization method for 4-FSK modulation.
Definition CC1101.cpp:15
Implements all common low-level methods to control the wireless module. Every module class contains o...
Definition Module.h:73
static const size_t RFSWITCH_MAX_PINS
The maximum number of pins supported by the RF switch code. Note: It is not recommended to use this c...
Definition Module.h:82
diff --git a/class_c_c1101.html b/class_c_c1101.html
index a998af54..8038a841 100644
--- a/class_c_c1101.html
+++ b/class_c_c1101.html
@@ -184,7 +184,7 @@ void
clearGdo2Action (
| | Clears interrupt service routine to call when a packet is sent.
|
|
int16_t | startTransmit (const uint8_t *data, size_t len, uint8_t addr=0) override |
-
| Interrupt-driven binary transmit method. Overloads for string-based transmissions are implemented in PhysicalLayer.
|
+
| Interrupt-driven binary transmit method for packets less than 64 bytes. Method blocks for packets longer than 64 bytes up to a 255 byte limit, until the last bytes are placed in the FIFO. Some limitations and issues apply; see discussion: https://github.com/jgromes/RadioLib/discussions/1138 Overloads for string-based transmissions are implemented in PhysicalLayer.
|
|
int16_t | finishTransmit () override |
| Clean up after transmission is done.
|
@@ -2575,7 +2575,7 @@ void
dropSync () | <