1#if !defined(_RADIOLIB_LR11X0_H)
2#define _RADIOLIB_LR11X0_H
4#include "../../TypeDef.h"
6#if !RADIOLIB_EXCLUDE_LR11X0
8#include "../../Module.h"
10#include "../../protocols/PhysicalLayer/PhysicalLayer.h"
13#define RADIOLIB_LR11X0_FREQUENCY_STEP_SIZE 1.0
14#define RADIOLIB_LR11X0_MAX_PACKET_LENGTH 255
15#define RADIOLIB_LR11X0_CRYSTAL_FREQ 32.0
16#define RADIOLIB_LR11X0_DIV_EXPONENT 25
19#define RADIOLIB_LR11X0_CMD_NOP (0x0000)
20#define RADIOLIB_LR11X0_CMD_WRITE_REG_MEM (0x0105)
21#define RADIOLIB_LR11X0_CMD_READ_REG_MEM (0x0106)
22#define RADIOLIB_LR11X0_CMD_WRITE_BUFFER (0x0109)
23#define RADIOLIB_LR11X0_CMD_READ_BUFFER (0x010A)
24#define RADIOLIB_LR11X0_CMD_CLEAR_RX_BUFFER (0x010B)
25#define RADIOLIB_LR11X0_CMD_WRITE_REG_MEM_MASK (0x010C)
26#define RADIOLIB_LR11X0_CMD_GET_STATUS (0x0100)
27#define RADIOLIB_LR11X0_CMD_GET_VERSION (0x0101)
28#define RADIOLIB_LR11X0_CMD_GET_ERRORS (0x010D)
29#define RADIOLIB_LR11X0_CMD_CLEAR_ERRORS (0x010E)
30#define RADIOLIB_LR11X0_CMD_CALIBRATE (0x010F)
31#define RADIOLIB_LR11X0_CMD_SET_REG_MODE (0x0110)
32#define RADIOLIB_LR11X0_CMD_CALIB_IMAGE (0x0111)
33#define RADIOLIB_LR11X0_CMD_SET_DIO_AS_RF_SWITCH (0x0112)
34#define RADIOLIB_LR11X0_CMD_SET_DIO_IRQ_PARAMS (0x0113)
35#define RADIOLIB_LR11X0_CMD_CLEAR_IRQ (0x0114)
36#define RADIOLIB_LR11X0_CMD_CONFIG_LF_CLOCK (0x0116)
37#define RADIOLIB_LR11X0_CMD_SET_TCXO_MODE (0x0117)
38#define RADIOLIB_LR11X0_CMD_REBOOT (0x0118)
39#define RADIOLIB_LR11X0_CMD_GET_VBAT (0x0119)
40#define RADIOLIB_LR11X0_CMD_GET_TEMP (0x011A)
41#define RADIOLIB_LR11X0_CMD_SET_SLEEP (0x011B)
42#define RADIOLIB_LR11X0_CMD_SET_STANDBY (0x011C)
43#define RADIOLIB_LR11X0_CMD_SET_FS (0x011D)
44#define RADIOLIB_LR11X0_CMD_GET_RANDOM_NUMBER (0x0120)
45#define RADIOLIB_LR11X0_CMD_ERASE_INFO_PAGE (0x0121)
46#define RADIOLIB_LR11X0_CMD_WRITE_INFO_PAGE (0x0122)
47#define RADIOLIB_LR11X0_CMD_READ_INFO_PAGE (0x0123)
48#define RADIOLIB_LR11X0_CMD_GET_CHIP_EUI (0x0125)
49#define RADIOLIB_LR11X0_CMD_GET_SEMTECH_JOIN_EUI (0x0126)
50#define RADIOLIB_LR11X0_CMD_DERIVE_ROOT_KEYS_AND_GET_PIN (0x0127)
51#define RADIOLIB_LR11X0_CMD_ENABLE_SPI_CRC (0x0128)
52#define RADIOLIB_LR11X0_CMD_DRIVE_DIOS_IN_SLEEP_MODE (0x012A)
53#define RADIOLIB_LR11X0_CMD_RESET_STATS (0x0200)
54#define RADIOLIB_LR11X0_CMD_GET_STATS (0x0201)
55#define RADIOLIB_LR11X0_CMD_GET_PACKET_TYPE (0x0202)
56#define RADIOLIB_LR11X0_CMD_GET_RX_BUFFER_STATUS (0x0203)
57#define RADIOLIB_LR11X0_CMD_GET_PACKET_STATUS (0x0204)
58#define RADIOLIB_LR11X0_CMD_GET_RSSI_INST (0x0205)
59#define RADIOLIB_LR11X0_CMD_SET_GFSK_SYNC_WORD (0x0206)
60#define RADIOLIB_LR11X0_CMD_SET_LORA_PUBLIC_NETWORK (0x0208)
61#define RADIOLIB_LR11X0_CMD_SET_RX (0x0209)
62#define RADIOLIB_LR11X0_CMD_SET_TX (0x020A)
63#define RADIOLIB_LR11X0_CMD_SET_RF_FREQUENCY (0x020B)
64#define RADIOLIB_LR11X0_CMD_AUTO_TX_RX (0x020C)
65#define RADIOLIB_LR11X0_CMD_SET_CAD_PARAMS (0x020D)
66#define RADIOLIB_LR11X0_CMD_SET_PACKET_TYPE (0x020E)
67#define RADIOLIB_LR11X0_CMD_SET_MODULATION_PARAMS (0x020F)
68#define RADIOLIB_LR11X0_CMD_SET_PACKET_PARAMS (0x0210)
69#define RADIOLIB_LR11X0_CMD_SET_TX_PARAMS (0x0211)
70#define RADIOLIB_LR11X0_CMD_SET_PACKET_ADRS (0x0212)
71#define RADIOLIB_LR11X0_CMD_SET_RX_TX_FALLBACK_MODE (0x0213)
72#define RADIOLIB_LR11X0_CMD_SET_RX_DUTY_CYCLE (0x0214)
73#define RADIOLIB_LR11X0_CMD_SET_PA_CONFIG (0x0215)
74#define RADIOLIB_LR11X0_CMD_STOP_TIMEOUT_ON_PREAMBLE (0x0217)
75#define RADIOLIB_LR11X0_CMD_SET_CAD (0x0218)
76#define RADIOLIB_LR11X0_CMD_SET_TX_CW (0x0219)
77#define RADIOLIB_LR11X0_CMD_SET_TX_INFINITE_PREAMBLE (0x021A)
78#define RADIOLIB_LR11X0_CMD_SET_LORA_SYNCH_TIMEOUT (0x021B)
79#define RADIOLIB_LR11X0_CMD_SET_RANGING_ADDR (0x021C)
80#define RADIOLIB_LR11X0_CMD_SET_RANGING_REQ_ADDR (0x021D)
81#define RADIOLIB_LR11X0_CMD_GET_RANGING_RESULT (0x021E)
82#define RADIOLIB_LR11X0_CMD_SET_RANGING_TX_RX_DELAY (0x021F)
83#define RADIOLIB_LR11X0_CMD_SET_GFSK_CRC_PARAMS (0x0224)
84#define RADIOLIB_LR11X0_CMD_SET_GFSK_WHIT_PARAMS (0x0225)
85#define RADIOLIB_LR11X0_CMD_SET_RX_BOOSTED (0x0227)
86#define RADIOLIB_LR11X0_CMD_SET_RANGING_PARAMETER (0x0228)
87#define RADIOLIB_LR11X0_CMD_SET_RSSI_CALIBRATION (0x0229)
88#define RADIOLIB_LR11X0_CMD_SET_LORA_SYNC_WORD (0x022B)
89#define RADIOLIB_LR11X0_CMD_LR_FHSS_BUILD_FRAME (0x022C)
90#define RADIOLIB_LR11X0_CMD_LR_FHSS_SET_SYNC_WORD (0x022D)
91#define RADIOLIB_LR11X0_CMD_CONFIG_BLE_BEACON (0x022E)
92#define RADIOLIB_LR11X0_CMD_GET_LORA_RX_HEADER_INFOS (0x0230)
93#define RADIOLIB_LR11X0_CMD_BLE_BEACON_SEND (0x0231)
94#define RADIOLIB_LR11X0_CMD_WIFI_SCAN (0x0300)
95#define RADIOLIB_LR11X0_CMD_WIFI_SCAN_TIME_LIMIT (0x0301)
96#define RADIOLIB_LR11X0_CMD_WIFI_COUNTRY_CODE (0x0302)
97#define RADIOLIB_LR11X0_CMD_WIFI_COUNTRY_CODE_TIME_LIMIT (0x0303)
98#define RADIOLIB_LR11X0_CMD_WIFI_GET_NB_RESULTS (0x0305)
99#define RADIOLIB_LR11X0_CMD_WIFI_READ_RESULTS (0x0306)
100#define RADIOLIB_LR11X0_CMD_WIFI_RESET_CUMUL_TIMINGS (0x0307)
101#define RADIOLIB_LR11X0_CMD_WIFI_READ_CUMUL_TIMINGS (0x0308)
102#define RADIOLIB_LR11X0_CMD_WIFI_GET_NB_COUNTRY_CODE_RESULTS (0x0309)
103#define RADIOLIB_LR11X0_CMD_WIFI_READ_COUNTRY_CODE_RESULTS (0x030A)
104#define RADIOLIB_LR11X0_CMD_WIFI_CFG_TIMESTAMP_AP_PHONE (0x030B)
105#define RADIOLIB_LR11X0_CMD_WIFI_READ_VERSION (0x0320)
106#define RADIOLIB_LR11X0_CMD_GNSS_READ_RSSI (0x0222)
107#define RADIOLIB_LR11X0_CMD_GNSS_SET_CONSTELLATION_TO_USE (0x0400)
108#define RADIOLIB_LR11X0_CMD_GNSS_READ_CONSTELLATION_TO_USE (0x0401)
109#define RADIOLIB_LR11X0_CMD_GNSS_SET_ALMANAC_UPDATE (0x0402)
110#define RADIOLIB_LR11X0_CMD_GNSS_READ_ALMANAC_UPDATE (0x0403)
111#define RADIOLIB_LR11X0_CMD_GNSS_SET_FREQ_SEARCH_SPACE (0x0404)
112#define RADIOLIB_LR11X0_CMD_GNSS_READ_FREQ_SEARCH_SPACE (0x0405)
113#define RADIOLIB_LR11X0_CMD_GNSS_READ_VERSION (0x0406)
114#define RADIOLIB_LR11X0_CMD_GNSS_READ_SUPPORTED_CONSTELLATIONS (0x0407)
115#define RADIOLIB_LR11X0_CMD_GNSS_SET_MODE (0x0408)
116#define RADIOLIB_LR11X0_CMD_GNSS_AUTONOMOUS (0x0409)
117#define RADIOLIB_LR11X0_CMD_GNSS_ASSISTED (0x040A)
118#define RADIOLIB_LR11X0_CMD_GNSS_SCAN (0x040B)
119#define RADIOLIB_LR11X0_CMD_GNSS_GET_RESULT_SIZE (0x040C)
120#define RADIOLIB_LR11X0_CMD_GNSS_READ_RESULTS (0x040D)
121#define RADIOLIB_LR11X0_CMD_GNSS_ALMANAC_FULL_UPDATE (0x040E)
122#define RADIOLIB_LR11X0_CMD_GNSS_ALMANAC_READ_ADDR_SIZE (0x040F)
123#define RADIOLIB_LR11X0_CMD_GNSS_SET_ASSISTANCE_POSITION (0x0410)
124#define RADIOLIB_LR11X0_CMD_GNSS_READ_ASSISTANCE_POSITION (0x0411)
125#define RADIOLIB_LR11X0_CMD_GNSS_PUSH_SOLVER_MSG (0x0414)
126#define RADIOLIB_LR11X0_CMD_GNSS_PUSH_DM_MSG (0x0415)
127#define RADIOLIB_LR11X0_CMD_GNSS_GET_CONTEXT_STATUS (0x0416)
128#define RADIOLIB_LR11X0_CMD_GNSS_GET_NB_SV_DETECTED (0x0417)
129#define RADIOLIB_LR11X0_CMD_GNSS_GET_SV_DETECTED (0x0418)
130#define RADIOLIB_LR11X0_CMD_GNSS_GET_CONSUMPTION (0x0419)
131#define RADIOLIB_LR11X0_CMD_GNSS_READ_ALMANAC_PER_SATELLITE (0x041A)
132#define RADIOLIB_LR11X0_CMD_GNSS_GET_SV_VISIBLE (0x041F)
133#define RADIOLIB_LR11X0_CMD_GNSS_GET_SV_VISIBLE_DOPPLER (0x0420)
134#define RADIOLIB_LR11X0_CMD_GNSS_READ_LAST_SCAN_MODE_LAUNCHED (0x0426)
135#define RADIOLIB_LR11X0_CMD_GNSS_FETCH_TIME (0x0432)
136#define RADIOLIB_LR11X0_CMD_GNSS_READ_TIME (0x0434)
137#define RADIOLIB_LR11X0_CMD_GNSS_RESET_TIME (0x0435)
138#define RADIOLIB_LR11X0_CMD_GNSS_RESET_POSITION (0x0437)
139#define RADIOLIB_LR11X0_CMD_GNSS_READ_WEEK_NUMBER_ROLLOWER (0x0438)
140#define RADIOLIB_LR11X0_CMD_GNSS_READ_DEMOD_STATUS (0x0439)
141#define RADIOLIB_LR11X0_CMD_GNSS_READ_CUMUL_TIMING (0x044A)
142#define RADIOLIB_LR11X0_CMD_GNSS_SET_TIME (0x044B)
143#define RADIOLIB_LR11X0_CMD_GNSS_CONFIG_DELAY_RESET_AP (0x044D)
144#define RADIOLIB_LR11X0_CMD_GNSS_READ_DOPPLER_SOLVER_RES (0x044F)
145#define RADIOLIB_LR11X0_CMD_GNSS_READ_DELAY_RESET_AP (0x0453)
146#define RADIOLIB_LR11X0_CMD_GNSS_ALMANAC_UPDATE_FROM_SAT (0x0454)
147#define RADIOLIB_LR11X0_CMD_GNSS_READ_KEEP_SYNC_STATUS (0x0456)
148#define RADIOLIB_LR11X0_CMD_GNSS_READ_ALMANAC_STATUS (0x0457)
149#define RADIOLIB_LR11X0_CMD_GNSS_CONFIG_ALMANAC_UPDATE_PERIOD (0x0463)
150#define RADIOLIB_LR11X0_CMD_GNSS_READ_ALMANAC_UPDATE_PERIOD (0x0464)
151#define RADIOLIB_LR11X0_CMD_GNSS_GET_SV_WARM_START (0x0466)
152#define RADIOLIB_LR11X0_CMD_GNSS_GET_SV_SYNC (0x0466)
153#define RADIOLIB_LR11X0_CMD_GNSS_READ_WARM_START_STATUS (0x0469)
154#define RADIOLIB_LR11X0_CMD_GNSS_WRITE_BIT_MASK_SAT_ACTIVATED (0x0472)
155#define RADIOLIB_LR11X0_CMD_CRYPTO_SET_KEY (0x0502)
156#define RADIOLIB_LR11X0_CMD_CRYPTO_DERIVE_KEY (0x0503)
157#define RADIOLIB_LR11X0_CMD_CRYPTO_PROCESS_JOIN_ACCEPT (0x0504)
158#define RADIOLIB_LR11X0_CMD_CRYPTO_COMPUTE_AES_CMAC (0x0505)
159#define RADIOLIB_LR11X0_CMD_CRYPTO_VERIFY_AES_CMAC (0x0506)
160#define RADIOLIB_LR11X0_CMD_CRYPTO_AES_ENCRYPT_01 (0x0507)
161#define RADIOLIB_LR11X0_CMD_CRYPTO_AES_ENCRYPT (0x0508)
162#define RADIOLIB_LR11X0_CMD_CRYPTO_AES_DECRYPT (0x0509)
163#define RADIOLIB_LR11X0_CMD_CRYPTO_STORE_TO_FLASH (0x050A)
164#define RADIOLIB_LR11X0_CMD_CRYPTO_RESTORE_FROM_FLASH (0x050B)
165#define RADIOLIB_LR11X0_CMD_CRYPTO_SET_PARAM (0x050D)
166#define RADIOLIB_LR11X0_CMD_CRYPTO_GET_PARAM (0x050E)
167#define RADIOLIB_LR11X0_CMD_CRYPTO_CHECK_ENCRYPTED_FIRMWARE_IMAGE (0x050F)
168#define RADIOLIB_LR11X0_CMD_CRYPTO_CHECK_ENCRYPTED_FIRMWARE_IMAGE_RESULT (0x0510)
169#define RADIOLIB_LR11X0_CMD_BOOT_ERASE_FLASH (0x8000)
170#define RADIOLIB_LR11X0_CMD_BOOT_WRITE_FLASH_ENCRYPTED (0x8003)
171#define RADIOLIB_LR11X0_CMD_BOOT_REBOOT (0x8005)
172#define RADIOLIB_LR11X0_CMD_BOOT_GET_PIN (0x800B)
173#define RADIOLIB_LR11X0_CMD_BOOT_GET_CHIP_EUI (0x800C)
174#define RADIOLIB_LR11X0_CMD_BOOT_GET_JOIN_EUI (0x800D)
177#define RADIOLIB_LR11X0_REG_SF6_SX127X_COMPAT (0x00F20414)
178#define RADIOLIB_LR11X0_REG_LORA_HIGH_POWER_FIX (0x00F30054)
179#define RADIOLIB_LR11X0_REG_LNA_MODE (0x00F3008C)
185#define RADIOLIB_LR11X0_STAT_1_CMD_FAIL (0x00UL << 1)
186#define RADIOLIB_LR11X0_STAT_1_CMD_PERR (0x01UL << 1)
187#define RADIOLIB_LR11X0_STAT_1_CMD_OK (0x02UL << 1)
188#define RADIOLIB_LR11X0_STAT_1_CMD_DAT (0x03UL << 1)
189#define RADIOLIB_LR11X0_STAT_1_IRQ_INACTIVE (0x00UL << 0)
190#define RADIOLIB_LR11X0_STAT_1_IRQ_ACTIVE (0x01UL << 0)
191#define RADIOLIB_LR11X0_STAT_2_CMD_RST_CLEARED (0x00UL << 4)
192#define RADIOLIB_LR11X0_STAT_2_CMD_RST_ANALOG (0x01UL << 4)
193#define RADIOLIB_LR11X0_STAT_2_CMD_RST_EXTERNAL (0x02UL << 4)
194#define RADIOLIB_LR11X0_STAT_2_CMD_RST_SYSTEM (0x03UL << 4)
195#define RADIOLIB_LR11X0_STAT_2_CMD_RST_WATCHDOG (0x04UL << 4)
196#define RADIOLIB_LR11X0_STAT_2_CMD_RST_WAKEUP (0x05UL << 4)
197#define RADIOLIB_LR11X0_STAT_2_CMD_RST_RTC (0x06UL << 4)
198#define RADIOLIB_LR11X0_STAT_2_MODE_SLEEP (0x00UL << 1)
199#define RADIOLIB_LR11X0_STAT_2_MODE_STBY_RC (0x01UL << 1)
200#define RADIOLIB_LR11X0_STAT_2_MODE_STBY_OSC (0x02UL << 1)
201#define RADIOLIB_LR11X0_STAT_2_MODE_FS (0x03UL << 1)
202#define RADIOLIB_LR11X0_STAT_2_MODE_RX (0x04UL << 1)
203#define RADIOLIB_LR11X0_STAT_2_MODE_TX (0x05UL << 1)
204#define RADIOLIB_LR11X0_STAT_2_MODE_WIFI_GNSS (0x06UL << 1)
205#define RADIOLIB_LR11X0_STAT_2_BOOT (0x00UL << 0)
206#define RADIOLIB_LR11X0_STAT_2_FLASH (0x01UL << 0)
209#define RADIOLIB_LR11X0_SPI_MAX_READ_WRITE_LEN (256)
212#define RADIOLIB_LR11X0_DEVICE_LR1110 (0x01UL << 0)
213#define RADIOLIB_LR11X0_DEVICE_LR1120 (0x02UL << 0)
214#define RADIOLIB_LR11X0_DEVICE_LR1121 (0x03UL << 0)
215#define RADIOLIB_LR11X0_DEVICE_BOOT (0xDFUL << 0)
218#define RADIOLIB_LR11X0_ERROR_STAT_LF_RC_CALIB_ERR (0x01UL << 0)
219#define RADIOLIB_LR11X0_ERROR_STAT_HF_RC_CALIB_ERR (0x01UL << 1)
220#define RADIOLIB_LR11X0_ERROR_STAT_ADC_CALIB_ERR (0x01UL << 2)
221#define RADIOLIB_LR11X0_ERROR_STAT_PLL_CALIB_ERR (0x01UL << 3)
222#define RADIOLIB_LR11X0_ERROR_STAT_IMG_CALIB_ERR (0x01UL << 4)
223#define RADIOLIB_LR11X0_ERROR_STAT_HF_XOSC_START_ERR (0x01UL << 5)
224#define RADIOLIB_LR11X0_ERROR_STAT_LF_XOSC_START_ERR (0x01UL << 6)
225#define RADIOLIB_LR11X0_ERROR_STAT_PLL_LOCK_ERR (0x01UL << 7)
226#define RADIOLIB_LR11X0_ERROR_STAT_RX_ADC_OFFSET_ERR (0x01UL << 8)
229#define RADIOLIB_LR11X0_CALIBRATE_PLL_TX (0x01UL << 5)
230#define RADIOLIB_LR11X0_CALIBRATE_IMG (0x01UL << 4)
231#define RADIOLIB_LR11X0_CALIBRATE_ADC (0x01UL << 3)
232#define RADIOLIB_LR11X0_CALIBRATE_PLL (0x01UL << 2)
233#define RADIOLIB_LR11X0_CALIBRATE_HF_RC (0x01UL << 1)
234#define RADIOLIB_LR11X0_CALIBRATE_LF_RC (0x01UL << 0)
235#define RADIOLIB_LR11X0_CALIBRATE_ALL (0x3FUL << 0)
236#define RADIOLIB_LR11X0_CAL_IMG_FREQ_TRIG_MHZ (20.0f)
239#define RADIOLIB_LR11X0_REG_MODE_LDO (0x00UL << 0)
240#define RADIOLIB_LR11X0_REG_MODE_DC_DC (0x01UL << 0)
243#define RADIOLIB_LR11X0_RFSW_DIO5_ENABLED (0x01UL << 0)
244#define RADIOLIB_LR11X0_RFSW_DIO5_DISABLED (0x00UL << 0)
245#define RADIOLIB_LR11X0_RFSW_DIO6_ENABLED (0x01UL << 1)
246#define RADIOLIB_LR11X0_RFSW_DIO6_DISABLED (0x00UL << 1)
247#define RADIOLIB_LR11X0_RFSW_DIO7_ENABLED (0x01UL << 2)
248#define RADIOLIB_LR11X0_RFSW_DIO7_DISABLED (0x00UL << 2)
249#define RADIOLIB_LR11X0_RFSW_DIO8_ENABLED (0x01UL << 3)
250#define RADIOLIB_LR11X0_RFSW_DIO8_DISABLED (0x00UL << 3)
251#define RADIOLIB_LR11X0_RFSW_DIO10_ENABLED (0x01UL << 4)
252#define RADIOLIB_LR11X0_RFSW_DIO10_DISABLED (0x00UL << 4)
253#define RADIOLIB_LR11X0_DIOx(X) ((X) | RFSWITCH_PIN_FLAG)
254#define RADIOLIB_LR11X0_DIOx_VAL(X) ((X) & ~RFSWITCH_PIN_FLAG)
255#define RADIOLIB_LR11X0_DIO5 (RADIOLIB_LR11X0_DIOx(0))
256#define RADIOLIB_LR11X0_DIO6 (RADIOLIB_LR11X0_DIOx(1))
257#define RADIOLIB_LR11X0_DIO7 (RADIOLIB_LR11X0_DIOx(2))
258#define RADIOLIB_LR11X0_DIO8 (RADIOLIB_LR11X0_DIOx(3))
259#define RADIOLIB_LR11X0_DIO10 (RADIOLIB_LR11X0_DIOx(4))
262#define RADIOLIB_LR11X0_IRQ_TX_DONE (0x01UL << 2)
263#define RADIOLIB_LR11X0_IRQ_RX_DONE (0x01UL << 3)
264#define RADIOLIB_LR11X0_IRQ_PREAMBLE_DETECTED (0x01UL << 4)
265#define RADIOLIB_LR11X0_IRQ_SYNC_WORD_HEADER_VALID (0x01UL << 5)
266#define RADIOLIB_LR11X0_IRQ_HEADER_ERR (0x01UL << 6)
267#define RADIOLIB_LR11X0_IRQ_CRC_ERR (0x01UL << 7)
268#define RADIOLIB_LR11X0_IRQ_CAD_DONE (0x01UL << 8)
269#define RADIOLIB_LR11X0_IRQ_CAD_DETECTED (0x01UL << 9)
270#define RADIOLIB_LR11X0_IRQ_TIMEOUT (0x01UL << 10)
271#define RADIOLIB_LR11X0_IRQ_LR_FHSS_HOP (0x01UL << 11)
272#define RADIOLIB_LR11X0_IRQ_GNSS_DONE (0x01UL << 19)
273#define RADIOLIB_LR11X0_IRQ_WIFI_DONE (0x01UL << 20)
274#define RADIOLIB_LR11X0_IRQ_LBD (0x01UL << 21)
275#define RADIOLIB_LR11X0_IRQ_CMD_ERROR (0x01UL << 22)
276#define RADIOLIB_LR11X0_IRQ_ERROR (0x01UL << 23)
277#define RADIOLIB_LR11X0_IRQ_FSK_LEN_ERROR (0x01UL << 24)
278#define RADIOLIB_LR11X0_IRQ_FSK_ADDR_ERROR (0x01UL << 25)
279#define RADIOLIB_LR11X0_IRQ_LORA_RX_TIMESTAMP (0x01UL << 27)
280#define RADIOLIB_LR11X0_IRQ_GNSS_ABORT (0x01UL << 28)
281#define RADIOLIB_LR11X0_IRQ_ALL (0x1BF80FFCUL)
282#define RADIOLIB_LR11X0_IRQ_NONE (0x00UL << 0)
285#define RADIOLIB_LR11X0_LF_CLK_RC (0x00UL << 0)
286#define RADIOLIB_LR11X0_LF_CLK_XOSC (0x01UL << 0)
287#define RADIOLIB_LR11X0_LF_CLK_EXT (0x02UL << 0)
288#define RADIOLIB_LR11X0_LF_BUSY_RELEASE_DISABLED (0x00UL << 2)
289#define RADIOLIB_LR11X0_LF_BUSY_RELEASE_ENABLED (0x01UL << 2)
292#define RADIOLIB_LR11X0_TCXO_VOLTAGE_1_6 (0x00UL << 0)
293#define RADIOLIB_LR11X0_TCXO_VOLTAGE_1_7 (0x01UL << 0)
294#define RADIOLIB_LR11X0_TCXO_VOLTAGE_1_8 (0x02UL << 0)
295#define RADIOLIB_LR11X0_TCXO_VOLTAGE_2_2 (0x03UL << 0)
296#define RADIOLIB_LR11X0_TCXO_VOLTAGE_2_4 (0x04UL << 0)
297#define RADIOLIB_LR11X0_TCXO_VOLTAGE_2_7 (0x05UL << 0)
298#define RADIOLIB_LR11X0_TCXO_VOLTAGE_3_0 (0x06UL << 0)
299#define RADIOLIB_LR11X0_TCXO_VOLTAGE_3_3 (0x07UL << 0)
302#define RADIOLIB_LR11X0_SLEEP_RETENTION_DISABLED (0x00UL << 0)
303#define RADIOLIB_LR11X0_SLEEP_RETENTION_ENABLED (0x01UL << 0)
304#define RADIOLIB_LR11X0_SLEEP_WAKEUP_DISABLED (0x00UL << 0)
305#define RADIOLIB_LR11X0_SLEEP_WAKEUP_ENABLED (0x01UL << 0)
308#define RADIOLIB_LR11X0_STANDBY_RC (0x00UL << 0)
309#define RADIOLIB_LR11X0_STANDBY_XOSC (0x00UL << 0)
312#define RADIOLIB_LR11X0_INFO_PAGE (1)
315#define RADIOLIB_LR11X0_EUI_LEN (8)
318#define RADIOLIB_LR11X0_PIN_LEN (4)
321#define RADIOLIB_LR11X0_RX_STATUS_ADDR_ERR (0x01UL << 5)
322#define RADIOLIB_LR11X0_RX_STATUS_CRC_ERR (0x01UL << 4)
323#define RADIOLIB_LR11X0_RX_STATUS_LEN_ERR (0x01UL << 3)
324#define RADIOLIB_LR11X0_RX_STATUS_ABORTED (0x01UL << 2)
325#define RADIOLIB_LR11X0_RX_STATUS_PACKET_RECEIVED (0x01UL << 1)
326#define RADIOLIB_LR11X0_RX_STATUS_PACKET_SENT (0x01UL << 0)
329#define RADIOLIB_LR11X0_GFSK_SYNC_WORD_LEN (8)
332#define RADIOLIB_LR11X0_LORA_PRIVATE_NETWORK (0x00UL << 0)
333#define RADIOLIB_LR11X0_LORA_PUBLIC_NETWORK (0x01UL << 0)
336#define RADIOLIB_LR11X0_RX_TIMEOUT_NONE (0x000000UL)
337#define RADIOLIB_LR11X0_RX_TIMEOUT_INF (0xFFFFFFUL)
340#define RADIOLIB_LR11X0_TX_TIMEOUT_NONE (0x000000UL)
343#define RADIOLIB_LR11X0_AUTO_TX_RX_DISABLED (0xFFFFFFUL)
344#define RADIOLIB_LR11X0_AUTO_TX_RX_SKIP_INT (0x000000UL)
345#define RADIOLIB_LR11X0_AUTO_INTERMEDIARY_MODE_SLEEP (0x00UL << 0)
346#define RADIOLIB_LR11X0_AUTO_INTERMEDIARY_MODE_STBY_RC (0x01UL << 0)
347#define RADIOLIB_LR11X0_AUTO_INTERMEDIARY_MODE_STBY_XOSC (0x02UL << 0)
348#define RADIOLIB_LR11X0_AUTO_INTERMEDIARY_MODE_FS (0x03UL << 0)
349#define RADIOLIB_LR11X0_AUTO_TX_RX_TIMEOUT_DISABLED (0x000000UL)
352#define RADIOLIB_LR11X0_CAD_EXIT_MODE_STBY_RC (0x00UL << 0)
353#define RADIOLIB_LR11X0_CAD_EXIT_MODE_RX (0x01UL << 0)
354#define RADIOLIB_LR11X0_CAD_EXIT_MODE_LBT (0x10UL << 0)
355#define RADIOLIB_LR11X0_CAD_PARAM_DEFAULT (0xFFUL << 0)
358#define RADIOLIB_LR11X0_PACKET_TYPE_NONE (0x00UL << 0)
359#define RADIOLIB_LR11X0_PACKET_TYPE_GFSK (0x01UL << 0)
360#define RADIOLIB_LR11X0_PACKET_TYPE_LORA (0x02UL << 0)
361#define RADIOLIB_LR11X0_PACKET_TYPE_SIGFOX (0x03UL << 0)
362#define RADIOLIB_LR11X0_PACKET_TYPE_LR_FHSS (0x04UL << 0)
363#define RADIOLIB_LR11X0_PACKET_TYPE_RANGING (0x05UL << 0)
364#define RADIOLIB_LR11X0_PACKET_TYPE_BLE (0x06UL << 0)
367#define RADIOLIB_LR11X0_LORA_BW_62_5 (0x03UL << 0)
368#define RADIOLIB_LR11X0_LORA_BW_125_0 (0x04UL << 0)
369#define RADIOLIB_LR11X0_LORA_BW_250_0 (0x05UL << 0)
370#define RADIOLIB_LR11X0_LORA_BW_500_0 (0x06UL << 0)
371#define RADIOLIB_LR11X0_LORA_BW_203_125 (0x0DUL << 0)
372#define RADIOLIB_LR11X0_LORA_BW_406_25 (0x0EUL << 0)
373#define RADIOLIB_LR11X0_LORA_BW_812_50 (0x0FUL << 0)
374#define RADIOLIB_LR11X0_LORA_CR_4_5_SHORT (0x01UL << 0)
375#define RADIOLIB_LR11X0_LORA_CR_4_6_SHORT (0x02UL << 0)
376#define RADIOLIB_LR11X0_LORA_CR_4_7_SHORT (0x03UL << 0)
377#define RADIOLIB_LR11X0_LORA_CR_4_8_SHORT (0x04UL << 0)
378#define RADIOLIB_LR11X0_LORA_CR_4_5_LONG (0x05UL << 0)
379#define RADIOLIB_LR11X0_LORA_CR_4_6_LONG (0x06UL << 0)
380#define RADIOLIB_LR11X0_LORA_CR_4_8_LONG (0x07UL << 0)
381#define RADIOLIB_LR11X0_LORA_LDRO_DISABLED (0x00UL << 0)
382#define RADIOLIB_LR11X0_LORA_LDRO_ENABLED (0x01UL << 0)
383#define RADIOLIB_LR11X0_GFSK_BIT_RATE_DIV_DISABLED (0x00UL << 31)
384#define RADIOLIB_LR11X0_GFSK_BIT_RATE_DIV_ENABLED (0x01UL << 31)
385#define RADIOLIB_LR11X0_GFSK_SHAPING_NONE (0x00UL << 0)
386#define RADIOLIB_LR11X0_GFSK_SHAPING_GAUSSIAN_BT_0_3 (0x08UL << 0)
387#define RADIOLIB_LR11X0_GFSK_SHAPING_GAUSSIAN_BT_0_5 (0x09UL << 0)
388#define RADIOLIB_LR11X0_GFSK_SHAPING_GAUSSIAN_BT_0_7 (0x0AUL << 0)
389#define RADIOLIB_LR11X0_GFSK_SHAPING_GAUSSIAN_BT_1_0 (0x0BUL << 0)
390#define RADIOLIB_LR11X0_GFSK_SHAPING_RAISED_COSINE_BT_0_7 (0x16UL << 0)
391#define RADIOLIB_LR11X0_GFSK_RX_BW_4_8 (0x1FUL << 0)
392#define RADIOLIB_LR11X0_GFSK_RX_BW_5_8 (0x17UL << 0)
393#define RADIOLIB_LR11X0_GFSK_RX_BW_7_3 (0x0FUL << 0)
394#define RADIOLIB_LR11X0_GFSK_RX_BW_9_7 (0x1EUL << 0)
395#define RADIOLIB_LR11X0_GFSK_RX_BW_11_7 (0x16UL << 0)
396#define RADIOLIB_LR11X0_GFSK_RX_BW_14_6 (0x0EUL << 0)
397#define RADIOLIB_LR11X0_GFSK_RX_BW_19_5 (0x1DUL << 0)
398#define RADIOLIB_LR11X0_GFSK_RX_BW_23_4 (0x15UL << 0)
399#define RADIOLIB_LR11X0_GFSK_RX_BW_29_3 (0x0DUL << 0)
400#define RADIOLIB_LR11X0_GFSK_RX_BW_39_0 (0x1CUL << 0)
401#define RADIOLIB_LR11X0_GFSK_RX_BW_46_9 (0x14UL << 0)
402#define RADIOLIB_LR11X0_GFSK_RX_BW_58_6 (0x0CUL << 0)
403#define RADIOLIB_LR11X0_GFSK_RX_BW_78_2 (0x1BUL << 0)
404#define RADIOLIB_LR11X0_GFSK_RX_BW_93_8 (0x13UL << 0)
405#define RADIOLIB_LR11X0_GFSK_RX_BW_117_3 (0x0BUL << 0)
406#define RADIOLIB_LR11X0_GFSK_RX_BW_156_2 (0x1AUL << 0)
407#define RADIOLIB_LR11X0_GFSK_RX_BW_187_2 (0x12UL << 0)
408#define RADIOLIB_LR11X0_GFSK_RX_BW_234_3 (0x0AUL << 0)
409#define RADIOLIB_LR11X0_GFSK_RX_BW_312_0 (0x19UL << 0)
410#define RADIOLIB_LR11X0_GFSK_RX_BW_373_6 (0x11UL << 0)
411#define RADIOLIB_LR11X0_GFSK_RX_BW_467_0 (0x09UL << 0)
412#define RADIOLIB_LR11X0_LR_FHSS_BIT_RATE (488.28215f)
413#define RADIOLIB_LR11X0_LR_FHSS_BIT_RATE_RAW (0x8001E848UL)
414#define RADIOLIB_LR11X0_LR_FHSS_SHAPING_GAUSSIAN_BT_1_0 (0x0BUL << 0)
415#define RADIOLIB_LR11X0_SIGFOX_SHAPING_GAUSSIAN_BT_0_7 (0x16UL << 0)
418#define RADIOLIB_LR11X0_LORA_HEADER_EXPLICIT (0x00UL << 0)
419#define RADIOLIB_LR11X0_LORA_HEADER_IMPLICIT (0x01UL << 0)
420#define RADIOLIB_LR11X0_LORA_PAYLOAD_LEN_ANY (0x00UL << 0)
421#define RADIOLIB_LR11X0_LORA_CRC_ENABLED (0x01UL << 0)
422#define RADIOLIB_LR11X0_LORA_CRC_DISABLED (0x00UL << 0)
423#define RADIOLIB_LR11X0_LORA_IQ_STANDARD (0x00UL << 0)
424#define RADIOLIB_LR11X0_LORA_IQ_INVERTED (0x01UL << 0)
425#define RADIOLIB_LR11X0_GFSK_PREAMBLE_DETECT_DISABLED (0x00UL << 0)
426#define RADIOLIB_LR11X0_GFSK_PREAMBLE_DETECT_8_BITS (0x04UL << 0)
427#define RADIOLIB_LR11X0_GFSK_PREAMBLE_DETECT_16_BITS (0x05UL << 0)
428#define RADIOLIB_LR11X0_GFSK_PREAMBLE_DETECT_24_BITS (0x06UL << 0)
429#define RADIOLIB_LR11X0_GFSK_PREAMBLE_DETECT_32_BITS (0x07UL << 0)
430#define RADIOLIB_LR11X0_GFSK_ADDR_FILTER_DISABLED (0x00UL << 0)
431#define RADIOLIB_LR11X0_GFSK_ADDR_FILTER_NODE (0x01UL << 0)
432#define RADIOLIB_LR11X0_GFSK_ADDR_FILTER_NODE_BROADCAST (0x02UL << 0)
433#define RADIOLIB_LR11X0_GFSK_PACKET_LENGTH_FIXED (0x00UL << 0)
434#define RADIOLIB_LR11X0_GFSK_PACKET_LENGTH_VARIABLE (0x01UL << 0)
435#define RADIOLIB_LR11X0_GFSK_PACKET_LENGTH_VARIABLE_SX128X (0x02UL << 0)
436#define RADIOLIB_LR11X0_GFSK_PAYLOAD_LEN_ANY (0x00UL << 0)
437#define RADIOLIB_LR11X0_GFSK_CRC_DISABLED (0x01UL << 0)
438#define RADIOLIB_LR11X0_GFSK_CRC_1_BYTE (0x00UL << 0)
439#define RADIOLIB_LR11X0_GFSK_CRC_2_BYTE (0x02UL << 0)
440#define RADIOLIB_LR11X0_GFSK_CRC_1_BYTE_INV (0x04UL << 0)
441#define RADIOLIB_LR11X0_GFSK_CRC_2_BYTE_INV (0x06UL << 0)
442#define RADIOLIB_LR11X0_GFSK_WHITENING_DISABLED (0x00UL << 0)
443#define RADIOLIB_LR11X0_GFSK_WHITENING_ENABLED (0x01UL << 0)
446#define RADIOLIB_LR11X0_PA_RAMP_48U (0x02UL << 0)
449#define RADIOLIB_LR11X0_FALLBACK_MODE_STBY_RC (0x01UL << 0)
450#define RADIOLIB_LR11X0_FALLBACK_MODE_STBY_XOSC (0x02UL << 0)
451#define RADIOLIB_LR11X0_FALLBACK_MODE_FS (0x03UL << 0)
454#define RADIOLIB_LR11X0_RX_DUTY_CYCLE_MODE_RX (0x00UL << 0)
455#define RADIOLIB_LR11X0_RX_DUTY_CYCLE_MODE_CAD (0x01UL << 0)
456#define RADIOLIB_LR11X0_TIMING_STEP (1.0f/32768.0f)
459#define RADIOLIB_LR11X0_PA_SEL_LP (0x00UL << 0)
460#define RADIOLIB_LR11X0_PA_SEL_HP (0x01UL << 0)
461#define RADIOLIB_LR11X0_PA_SEL_HF (0x02UL << 0)
462#define RADIOLIB_LR11X0_PA_SUPPLY_INTERNAL (0x00UL << 0)
463#define RADIOLIB_LR11X0_PA_SUPPLY_VBAT (0x01UL << 0)
466#define RADIOLIB_LR11X0_STOP_ON_SYNC_HEADER (0x00UL << 0)
467#define RADIOLIB_LR11X0_STOP_ON_PREAMBLE (0x01UL << 0)
470#define RADIOLIB_LR11X0_RANGING_RESULT_DISTANCE (0)
471#define RADIOLIB_LR11X0_RANGING_RESULT_RSSI (1)
474#define RADIOLIB_LR11X0_RX_BOOSTED_ENABLED (0x01UL << 0)
475#define RADIOLIB_LR11X0_RX_BOOSTED_DISABLED (0x00UL << 0)
478#define RADIOLIB_LR11X0_LORA_SYNC_WORD_PRIVATE (0x12)
479#define RADIOLIB_LR11X0_LORA_SYNC_WORD_PUBLIC (0x34)
482#define RADIOLIB_LR11X0_LR_FHSS_CR_5_6 (0x00UL << 0)
483#define RADIOLIB_LR11X0_LR_FHSS_CR_2_3 (0x01UL << 0)
484#define RADIOLIB_LR11X0_LR_FHSS_CR_1_2 (0x02UL << 0)
485#define RADIOLIB_LR11X0_LR_FHSS_CR_1_3 (0x03UL << 0)
486#define RADIOLIB_LR11X0_LR_FHSS_MOD_TYPE_GMSK (0x00UL << 0)
487#define RADIOLIB_LR11X0_LR_FHSS_GRID_STEP_FCC (0x00UL << 0)
488#define RADIOLIB_LR11X0_LR_FHSS_GRID_STEP_NON_FCC (0x01UL << 0)
489#define RADIOLIB_LR11X0_LR_FHSS_HOPPING_DISABLED (0x00UL << 0)
490#define RADIOLIB_LR11X0_LR_FHSS_HOPPING_ENABLED (0x01UL << 0)
491#define RADIOLIB_LR11X0_LR_FHSS_BW_39_06 (0x00UL << 0)
492#define RADIOLIB_LR11X0_LR_FHSS_BW_85_94 (0x01UL << 0)
493#define RADIOLIB_LR11X0_LR_FHSS_BW_136_72 (0x02UL << 0)
494#define RADIOLIB_LR11X0_LR_FHSS_BW_183_59 (0x03UL << 0)
495#define RADIOLIB_LR11X0_LR_FHSS_BW_335_94 (0x04UL << 0)
496#define RADIOLIB_LR11X0_LR_FHSS_BW_386_72 (0x05UL << 0)
497#define RADIOLIB_LR11X0_LR_FHSS_BW_722_66 (0x06UL << 0)
498#define RADIOLIB_LR11X0_LR_FHSS_BW_773_44 (0x07UL << 0)
499#define RADIOLIB_LR11X0_LR_FHSS_BW_1523_4 (0x08UL << 0)
500#define RADIOLIB_LR11X0_LR_FHSS_BW_1574_2 (0x09UL << 0)
501#define RADIOLIB_LR11X0_LR_FHSS_HEADER_BITS (114)
502#define RADIOLIB_LR11X0_LR_FHSS_FRAG_BITS (48)
503#define RADIOLIB_LR11X0_LR_FHSS_BLOCK_PREAMBLE_BITS (2)
504#define RADIOLIB_LR11X0_LR_FHSS_BLOCK_BITS (RADIOLIB_LR11X0_LR_FHSS_FRAG_BITS + RADIOLIB_LR11X0_LR_FHSS_BLOCK_PREAMBLE_BITS)
507#define RADIOLIB_LR11X0_LAST_HEADER_CRC_ENABLED (0x01UL << 4)
508#define RADIOLIB_LR11X0_LAST_HEADER_CRC_DISABLED (0x00UL << 4)
511#define RADIOLIB_LR11X0_WIFI_SCAN_802_11_B (0x01UL << 0)
512#define RADIOLIB_LR11X0_WIFI_SCAN_802_11_G (0x02UL << 0)
513#define RADIOLIB_LR11X0_WIFI_SCAN_802_11_N (0x03UL << 0)
514#define RADIOLIB_LR11X0_WIFI_SCAN_ALL (0x04UL << 0)
515#define RADIOLIB_LR11X0_WIFI_ACQ_MODE_BEACON_ONLY (0x01UL << 0)
516#define RADIOLIB_LR11X0_WIFI_ACQ_MODE_BEACON_PACKET (0x02UL << 0)
517#define RADIOLIB_LR11X0_WIFI_ACQ_MODE_FULL_TRAFFIC (0x03UL << 0)
518#define RADIOLIB_LR11X0_WIFI_ACQ_MODE_FULL_BEACON (0x04UL << 0)
519#define RADIOLIB_LR11X0_WIFI_ACQ_MODE_SSID_BEACON (0x05UL << 0)
520#define RADIOLIB_LR11X0_WIFI_ABORT_ON_TIMEOUT_ENABLED (0x01UL << 0)
521#define RADIOLIB_LR11X0_WIFI_ABORT_ON_TIMEOUT_DISABLED (0x00UL << 0)
522#define RADIOLIB_LR11X0_WIFI_MAX_NUM_RESULTS (32)
523#define RADIOLIB_LR11X0_WIFI_ALL_CHANNELS (0x3FFFUL)
526#define RADIOLIB_LR11X0_WIFI_RESULT_TYPE_COMPLETE (0x01UL << 0)
527#define RADIOLIB_LR11X0_WIFI_RESULT_TYPE_BASIC (0x04UL << 0)
528#define RADIOLIB_LR11X0_WIFI_RESULT_MAX_LEN (79)
529#define RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN (6)
530#define RADIOLIB_LR11X0_WIFI_RESULT_SSID_LEN (32)
533#define RADIOLIB_LR11X0_GNSS_CONSTELLATION_GPS (0x01UL << 0)
534#define RADIOLIB_LR11X0_GNSS_CONSTELLATION_BEIDOU (0x01UL << 1)
537#define RADIOLIB_LR11X0_GNSS_MODE_SINGLE_SCAN (0x00UL << 0)
538#define RADIOLIB_LR11X0_GNSS_MODE_SINGLE_MULTIPLE (0x03UL << 1)
541#define RADIOLIB_LR11X0_GNSS_RES_PSEUDO_DOPPLER_ENABLED (0x01UL << 0)
542#define RADIOLIB_LR11X0_GNSS_RES_PSEUDO_DOPPLER_DISABLED (0x00UL << 0)
543#define RADIOLIB_LR11X0_GNSS_RES_DOPPLER_ENABLED (0x01UL << 1)
544#define RADIOLIB_LR11X0_GNSS_RES_DOPPLER_DISABLED (0x00UL << 1)
545#define RADIOLIB_LR11X0_GNSS_NB_SV_ALL (0x00UL << 0)
546#define RADIOLIB_LR11X0_GNSS_AUTO_EFFORT_MODE (0x00UL << 0)
549#define RADIOLIB_LR11X0_GNSS_ASSIST_LOW_POWER (0x00UL << 0)
550#define RADIOLIB_LR11X0_GNSS_ASSIST_BEST_EFFORT (0x01UL << 0)
553#define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_NONE (0x00UL << 0)
554#define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_ALMANAC_OLD (0x01UL << 0)
555#define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_ALMANAC_CRC (0x02UL << 0)
556#define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_FLASH (0x03UL << 0)
557#define RADIOLIB_LR11X0_GNSS_CONTEXT_ERR_ALMANAC_UPD (0x04UL << 0)
558#define RADIOLIB_LR11X0_GNSS_CONTEXT_FREQ_SPACE_250_HZ (0x00UL << 0)
559#define RADIOLIB_LR11X0_GNSS_CONTEXT_FREQ_SPACE_500_HZ (0x01UL << 0)
560#define RADIOLIB_LR11X0_GNSS_CONTEXT_FREQ_SPACE_1000_HZ (0x02UL << 0)
561#define RADIOLIB_LR11X0_GNSS_CONTEXT_FREQ_SPACE_2000_HZ (0x03UL << 0)
564#define RADIOLIB_LR11X0_SV_CONSTELLATION_GPS (0x00UL << 0)
565#define RADIOLIB_LR11X0_SV_CONSTELLATION_BEIDOU (0x01UL << 0)
568#define RADIOLIB_LR11X0_GNSS_ALMANAC_HEADER_ID (0x80UL << 0)
569#define RADIOLIB_LR11X0_GNSS_ALMANAC_BLOCK_SIZE (20)
572#define RADIOLIB_LR11X0_GNSS_EFFORT_LOW (0x00UL << 0)
573#define RADIOLIB_LR11X0_GNSS_EFFORT_MID (0x01UL << 0)
574#define RADIOLIB_LR11X0_GNSS_FETCH_TIME_OPT_TOW (0x00UL << 0)
575#define RADIOLIB_LR11X0_GNSS_FETCH_TIME_OPT_TOW_WN (0x01UL << 0)
576#define RADIOLIB_LR11X0_GNSS_FETCH_TIME_OPT_TOW_WN_ROLL (0x02UL << 0)
579#define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_NOT_POSSIBLE (-21)
580#define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_SAT_LOST (-20)
581#define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_ALMANAC_DEMOD_ERROR (-19)
582#define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_TOO_LATE (-18)
583#define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_20_MS_FAIL (-17)
584#define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_WAKE_UP_FAIL (-16)
585#define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_WN_INVALID (-15)
586#define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_NO_ACTIVE_SAT (-14)
587#define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_SLEEP_TOO_LONG (-13)
588#define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_TOW_INVALID (-12)
589#define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_PREAMBLE_INVALID (-11)
590#define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_DISABLED (-10)
591#define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_EXTR_FAILED (-9)
592#define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_NO_BIT_CHANGE (-8)
593#define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_NO_BIT_CHANGE_ADV (-7)
594#define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_NO_SAT_FOUND (-6)
595#define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_SYNC_LOST (-5)
596#define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_PARITY_NOT_ENOUGH (-3)
597#define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_PARITY_TOO_MANY (-2)
598#define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_NO_PARITY (-1)
599#define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_WORD_SYNC_NONE (0)
600#define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_WORD_SYNC_POT (1)
601#define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_WORD_SYNC_OK (2)
602#define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_TOW_FOUND (3)
603#define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_WN_FOUND (4)
604#define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_ALM_FOUND_UNSAVED (5)
605#define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_HALF_ALM_SAVED (6)
606#define RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_FULL_ALM_SAVED (7)
607#define RADIOLIB_LR11X0_GNSS_DEMOD_INFO_WORD_SYNC_FOUND (0x01UL << 0)
608#define RADIOLIB_LR11X0_GNSS_DEMOD_INFO_TOW_FOUND (0x01UL << 1)
609#define RADIOLIB_LR11X0_GNSS_DEMOD_INFO_WN_DEMODED (0x01UL << 2)
610#define RADIOLIB_LR11X0_GNSS_DEMOD_INFO_WN_FOUND (0x01UL << 3)
611#define RADIOLIB_LR11X0_GNSS_DEMOD_INFO_SUBFRAME_1_FOUND (0x01UL << 4)
612#define RADIOLIB_LR11X0_GNSS_DEMOD_INFO_SUBFRAME_4_FOUND (0x01UL << 5)
613#define RADIOLIB_LR11X0_GNSS_DEMOD_INFO_SUBFRAME_5_FOUND (0x01UL << 6)
616#define RADIOLIB_LR11X0_GNSS_ALMANAC_STATUS_UP_TO_DATE (0)
617#define RADIOLIB_LR11X0_GNSS_ALMANAC_STATUS_OUTDATED (1)
620#define RADIOLIB_LR11X0_GNSS_SOLVER_ERR_NONE (0)
621#define RADIOLIB_LR11X0_GNSS_SOLVER_ERR_RES_HIGH (1)
622#define RADIOLIB_LR11X0_GNSS_SOLVER_ERR_NOT_CONVERGED (2)
623#define RADIOLIB_LR11X0_GNSS_SOLVER_ERR_NOT_ENOUGH_SV (3)
624#define RADIOLIB_LR11X0_GNSS_SOLVER_ERR_ILL_MATRIX (4)
625#define RADIOLIB_LR11X0_GNSS_SOLVER_ERR_TIME (5)
626#define RADIOLIB_LR11X0_GNSS_SOLVER_ERR_ALM_PART_OLD (6)
627#define RADIOLIB_LR11X0_GNSS_SOLVER_ERR_INCONSISTENT (7)
628#define RADIOLIB_LR11X0_GNSS_SOLVER_ERR_ALM_OLD (8)
631#define RADIOLIB_LR11X0_CRYPTO_STATUS_SUCCESS (0x00UL << 0)
632#define RADIOLIB_LR11X0_CRYPTO_STATUS_FAIL_CMAC (0x01UL << 0)
633#define RADIOLIB_LR11X0_CRYPTO_STATUS_INV_KEY_ID (0x03UL << 0)
634#define RADIOLIB_LR11X0_CRYPTO_STATUS_BUF_SIZE (0x05UL << 0)
635#define RADIOLIB_LR11X0_CRYPTO_STATUS_ERROR (0x06UL << 0)
638#define RADIOLIB_LR11X0_CRYPTO_LORAWAN_VERSION_1_0 (0x00UL << 0)
639#define RADIOLIB_LR11X0_CRYPTO_LORAWAN_VERSION_1_1 (0x01UL << 0)
644#define RADIOLIB_LR11X0_SF6_SX126X (0x00UL << 18)
645#define RADIOLIB_LR11X0_SF6_SX127X (0x01UL << 18)
648#define RADIOLIB_LR11X0_LORA_HIGH_POWER_FIX (0x00UL << 30)
651#define RADIOLIB_LR11X0_LNA_MODE_SINGLE_RFI_N (0x01UL << 4)
652#define RADIOLIB_LR11X0_LNA_MODE_SINGLE_RFI_P (0x02UL << 4)
653#define RADIOLIB_LR11X0_LNA_MODE_DIFFERENTIAL (0x03UL << 4)
680 uint8_t
mac[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN];
729 uint8_t
mac0[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN];
732 uint8_t
mac2[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN];
738 uint8_t
ssid[RADIOLIB_LR11X0_WIFI_RESULT_SSID_LEN];
837 uint32_t timeUntilSubframe;
838 uint8_t numSubframes;
839 uint8_t nextSubframe4SvId;
840 uint8_t nextSubframe5SvId;
841 uint8_t nextSubframeStart;
842 uint8_t numUpdateNeeded;
843 uint32_t flagsUpdateNeeded[2];
844 uint32_t flagsActive[2];
928 int16_t
begin(
float bw, uint8_t sf, uint8_t cr, uint8_t syncWord, uint16_t preambleLength,
float tcxoVoltage,
bool high =
false);
939 int16_t
beginGFSK(
float br,
float freqDev,
float rxBw, uint16_t preambleLength,
float tcxoVoltage);
949 int16_t
beginLRFHSS(uint8_t bw, uint8_t cr,
bool narrowGrid,
float tcxoVoltage);
957 int16_t
beginGNSS(uint8_t constellations = RADIOLIB_LR11X0_GNSS_CONSTELLATION_GPS | RADIOLIB_LR11X0_GNSS_CONSTELLATION_BEIDOU,
float tcxoVoltage = 1.6);
973 int16_t
transmit(
const uint8_t* data,
size_t len, uint8_t addr = 0)
override;
982 int16_t
receive(uint8_t* data,
size_t len)
override;
1024 int16_t
standby(uint8_t mode,
bool wakeup =
true);
1031 int16_t
sleep()
override;
1040 int16_t
sleep(
bool retainConfig, uint32_t sleepTime);
1105 int16_t
readData(uint8_t* data,
size_t len)
override;
1153 int16_t
setCodingRate(uint8_t cr,
bool longInterleave =
false);
1190 int16_t
setSyncWord(uint8_t* syncWord,
size_t len)
override;
1199 int16_t
setSyncBits(uint8_t *syncWord, uint8_t bitsLen);
1259 int16_t
setWhitening(
bool enabled, uint16_t initial = 0x01FF);
1290 int16_t
setTCXO(
float voltage, uint32_t delay = 5000);
1300 int16_t
setCRC(uint8_t len, uint32_t initial = 0x00001D0FUL, uint32_t polynomial = 0x00001021UL,
bool inverted =
true);
1307 int16_t
invertIQ(
bool enable)
override;
1445 int16_t
setLrFhssConfig(uint8_t bw, uint8_t cr, uint8_t hdrCount = 3, uint16_t hopSeed = 0x13A);
1461 int16_t
startWifiScan(
char wifiType, uint8_t mode = RADIOLIB_LR11X0_WIFI_ACQ_MODE_FULL_BEACON, uint16_t chanMask = RADIOLIB_LR11X0_WIFI_ALL_CHANNELS, uint8_t numScans = 16, uint16_t timeout = 100);
1508 int16_t
wifiScan(uint8_t wifiType, uint8_t* count, uint8_t mode = RADIOLIB_LR11X0_WIFI_ACQ_MODE_FULL_BEACON, uint16_t chanMask = RADIOLIB_LR11X0_WIFI_ALL_CHANNELS, uint8_t numScans = 16, uint16_t timeout = 100);
1527 int16_t
updateFirmware(
const uint32_t* image,
size_t size,
bool nonvolatile =
true);
1591 int16_t
getModem(ModemType_t* modem)
override;
1608#if !RADIOLIB_GODMODE && !RADIOLIB_LOW_LEVEL
1611 Module* getMod()
override;
1614 int16_t writeRegMem32(uint32_t addr,
const uint32_t* data,
size_t len);
1615 int16_t readRegMem32(uint32_t addr, uint32_t* data,
size_t len);
1616 int16_t writeBuffer8(
const uint8_t* data,
size_t len);
1617 int16_t readBuffer8(uint8_t* data,
size_t len,
size_t offset);
1618 int16_t clearRxBuffer(
void);
1619 int16_t writeRegMemMask32(uint32_t addr, uint32_t mask, uint32_t data);
1621 int16_t getStatus(uint8_t* stat1, uint8_t* stat2, uint32_t* irq);
1622 int16_t getVersion(uint8_t* hw, uint8_t* device, uint8_t* major, uint8_t* minor);
1623 int16_t getErrors(uint16_t* err);
1624 int16_t clearErrors(
void);
1625 int16_t calibrate(uint8_t params);
1626 int16_t setRegMode(uint8_t mode);
1627 int16_t setDioAsRfSwitch(uint8_t en, uint8_t stbyCfg, uint8_t rxCfg, uint8_t txCfg, uint8_t txHpCfg, uint8_t txHfCfg, uint8_t gnssCfg, uint8_t wifiCfg);
1628 int16_t setDioIrqParams(uint32_t irq1, uint32_t irq2);
1629 int16_t setDioIrqParams(uint32_t irq);
1630 int16_t clearIrqState(uint32_t irq);
1631 int16_t configLfClock(uint8_t setup);
1632 int16_t setTcxoMode(uint8_t tune, uint32_t delay);
1633 int16_t reboot(
bool stay);
1634 int16_t getVbat(
float* vbat);
1635 int16_t getTemp(
float* temp);
1636 int16_t setFs(
void);
1637 int16_t getRandomNumber(uint32_t* rnd);
1638 int16_t eraseInfoPage(
void);
1639 int16_t writeInfoPage(uint16_t addr,
const uint32_t* data,
size_t len);
1640 int16_t readInfoPage(uint16_t addr, uint32_t* data,
size_t len);
1641 int16_t getChipEui(uint8_t* eui);
1642 int16_t getSemtechJoinEui(uint8_t* eui);
1643 int16_t deriveRootKeysAndGetPin(uint8_t* pin);
1644 int16_t enableSpiCrc(
bool en);
1645 int16_t driveDiosInSleepMode(
bool en);
1647 int16_t resetStats(
void);
1648 int16_t getStats(uint16_t* nbPktReceived, uint16_t* nbPktCrcError, uint16_t* data1, uint16_t* data2);
1649 int16_t getPacketType(uint8_t* type);
1650 int16_t getRxBufferStatus(uint8_t* len, uint8_t* startOffset);
1651 int16_t getPacketStatusLoRa(
float* rssiPkt,
float* snrPkt,
float* signalRssiPkt);
1652 int16_t getPacketStatusGFSK(
float* rssiSync,
float* rssiAvg, uint8_t* rxLen, uint8_t* stat);
1653 int16_t getRssiInst(
float* rssi);
1654 int16_t setGfskSyncWord(uint8_t* sync);
1655 int16_t setLoRaPublicNetwork(
bool pub);
1656 int16_t setRx(uint32_t timeout);
1657 int16_t setTx(uint32_t timeout);
1658 int16_t setRfFrequency(uint32_t rfFreq);
1659 int16_t autoTxRx(uint32_t delay, uint8_t intMode, uint32_t timeout);
1660 int16_t setCadParams(uint8_t symNum, uint8_t detPeak, uint8_t detMin, uint8_t cadExitMode, uint32_t timeout);
1661 int16_t setPacketType(uint8_t type);
1662 int16_t setModulationParamsLoRa(uint8_t sf, uint8_t bw, uint8_t cr, uint8_t ldro);
1663 int16_t setModulationParamsGFSK(uint32_t br, uint8_t sh, uint8_t rxBw, uint32_t freqDev);
1664 int16_t setModulationParamsLrFhss(uint32_t br, uint8_t sh);
1665 int16_t setModulationParamsSigfox(uint32_t br, uint8_t sh);
1666 int16_t setPacketParamsLoRa(uint16_t preambleLen, uint8_t hdrType, uint8_t payloadLen, uint8_t crcType, uint8_t
invertIQ);
1667 int16_t setPacketParamsGFSK(uint16_t preambleLen, uint8_t preambleDetectorLen, uint8_t syncWordLen, uint8_t addrCmp, uint8_t packType, uint8_t payloadLen, uint8_t crcType, uint8_t whiten);
1668 int16_t setPacketParamsSigfox(uint8_t payloadLen, uint16_t rampUpDelay, uint16_t rampDownDelay, uint16_t bitNum);
1669 int16_t setTxParams(int8_t pwr, uint8_t ramp);
1670 int16_t setPacketAdrs(uint8_t node, uint8_t broadcast);
1671 int16_t setRxTxFallbackMode(uint8_t mode);
1672 int16_t setRxDutyCycle(uint32_t rxPeriod, uint32_t sleepPeriod, uint8_t mode);
1673 int16_t setPaConfig(uint8_t paSel, uint8_t regPaSupply, uint8_t paDutyCycle, uint8_t paHpSel);
1674 int16_t stopTimeoutOnPreamble(
bool stop);
1675 int16_t setCad(
void);
1676 int16_t setTxCw(
void);
1677 int16_t setTxInfinitePreamble(
void);
1678 int16_t setLoRaSynchTimeout(uint8_t symbolNum);
1679 int16_t setRangingAddr(uint32_t addr, uint8_t checkLen);
1680 int16_t setRangingReqAddr(uint32_t addr);
1681 int16_t getRangingResult(uint8_t type,
float* res);
1682 int16_t setRangingTxRxDelay(uint32_t delay);
1683 int16_t setGfskCrcParams(uint32_t init, uint32_t poly);
1684 int16_t setGfskWhitParams(uint16_t seed);
1685 int16_t setRangingParameter(uint8_t symbolNum);
1686 int16_t setRssiCalibration(
const int8_t* tune, int16_t gainOffset);
1687 int16_t setLoRaSyncWord(uint8_t sync);
1688 int16_t lrFhssBuildFrame(uint8_t hdrCount, uint8_t cr, uint8_t grid,
bool hop, uint8_t bw, uint16_t hopSeq, int8_t devOffset,
const uint8_t* payload,
size_t len);
1689 int16_t lrFhssSetSyncWord(uint32_t sync);
1690 int16_t configBleBeacon(uint8_t chan,
const uint8_t* payload,
size_t len);
1691 int16_t getLoRaRxHeaderInfos(uint8_t* info);
1692 int16_t bleBeaconSend(uint8_t chan,
const uint8_t* payload,
size_t len);
1694 int16_t
wifiScan(uint8_t type, uint16_t mask, uint8_t acqMode, uint8_t nbMaxRes, uint8_t nbScanPerChan, uint16_t timeout, uint8_t abortOnTimeout);
1695 int16_t wifiScanTimeLimit(uint8_t type, uint16_t mask, uint8_t acqMode, uint8_t nbMaxRes, uint16_t timePerChan, uint16_t timeout);
1696 int16_t wifiCountryCode(uint16_t mask, uint8_t nbMaxRes, uint8_t nbScanPerChan, uint16_t timeout, uint8_t abortOnTimeout);
1697 int16_t wifiCountryCodeTimeLimit(uint16_t mask, uint8_t nbMaxRes, uint16_t timePerChan, uint16_t timeout);
1698 int16_t wifiGetNbResults(uint8_t* nbResults);
1699 int16_t wifiReadResults(uint8_t index, uint8_t nbResults, uint8_t format, uint8_t* results);
1700 int16_t wifiResetCumulTimings(
void);
1701 int16_t wifiReadCumulTimings(uint32_t* detection, uint32_t* capture, uint32_t* demodulation);
1702 int16_t wifiGetNbCountryCodeResults(uint8_t* nbResults);
1703 int16_t wifiReadCountryCodeResults(uint8_t index, uint8_t nbResults, uint8_t* results);
1704 int16_t wifiCfgTimestampAPphone(uint32_t timestamp);
1705 int16_t wifiReadVersion(uint8_t* major, uint8_t* minor);
1707 int16_t gnssReadRssi(int8_t* rssi);
1708 int16_t gnssSetConstellationToUse(uint8_t mask);
1709 int16_t gnssReadConstellationToUse(uint8_t* mask);
1710 int16_t gnssSetAlmanacUpdate(uint8_t mask);
1711 int16_t gnssReadAlmanacUpdate(uint8_t* mask);
1712 int16_t gnssSetFreqSearchSpace(uint8_t freq);
1713 int16_t gnssReadFreqSearchSpace(uint8_t* freq);
1714 int16_t gnssReadVersion(uint8_t* fw, uint8_t* almanac);
1715 int16_t gnssReadSupportedConstellations(uint8_t* mask);
1716 int16_t gnssSetMode(uint8_t mode);
1717 int16_t gnssAutonomous(uint32_t gpsTime, uint8_t resMask, uint8_t nbSvMask);
1718 int16_t gnssAssisted(uint32_t gpsTime, uint8_t effort, uint8_t resMask, uint8_t nbSvMask);
1719 int16_t gnssSetAssistancePosition(
float lat,
float lon);
1720 int16_t gnssReadAssistancePosition(
float* lat,
float* lon);
1721 int16_t gnssPushSolverMsg(uint8_t* payload,
size_t len);
1722 int16_t gnssPushDmMsg(uint8_t* payload,
size_t len);
1723 int16_t gnssGetContextStatus(uint8_t* fwVersion, uint32_t* almanacCrc, uint8_t* errCode, uint8_t* almUpdMask, uint8_t* freqSpace);
1724 int16_t gnssGetNbSvDetected(uint8_t* nbSv);
1725 int16_t gnssGetSvDetected(uint8_t* svId, uint8_t* snr, int16_t* doppler,
size_t nbSv);
1726 int16_t gnssGetConsumption(uint32_t* cpu, uint32_t* radio);
1727 int16_t gnssGetResultSize(uint16_t* size);
1728 int16_t gnssReadResults(uint8_t* result, uint16_t size);
1729 int16_t gnssAlmanacFullUpdateHeader(uint16_t date, uint32_t globalCrc);
1730 int16_t gnssAlmanacFullUpdateSV(uint8_t svn,
const uint8_t* svnAlmanac);
1731 int16_t gnssAlmanacReadAddrSize(uint32_t* addr, uint16_t* size);
1732 int16_t gnssAlmanacReadSV(uint8_t svId, uint8_t* almanac);
1733 int16_t gnssGetNbSvVisible(uint32_t time,
float lat,
float lon, uint8_t constellation, uint8_t* nbSv);
1734 int16_t gnssGetSvVisible(uint8_t nbSv, uint8_t** svId, int16_t** doppler, int16_t** dopplerErr);
1735 int16_t gnssPerformScan(uint8_t effort, uint8_t resMask, uint8_t nbSvMax);
1736 int16_t gnssReadLastScanModeLaunched(uint8_t* lastScanMode);
1737 int16_t gnssFetchTime(uint8_t effort, uint8_t opt);
1738 int16_t gnssReadTime(uint8_t* err, uint32_t* time, uint32_t* nbUs, uint32_t* timeAccuracy);
1739 int16_t gnssResetTime(
void);
1740 int16_t gnssResetPosition(
void);
1741 int16_t gnssReadWeekNumberRollover(uint8_t* status, uint8_t* rollover);
1742 int16_t gnssReadDemodStatus(int8_t* status, uint8_t* info);
1743 int16_t gnssReadCumulTiming(uint32_t* timing, uint8_t* constDemod);
1744 int16_t gnssSetTime(uint32_t time, uint16_t accuracy);
1745 int16_t gnssReadDopplerSolverRes(uint8_t* error, uint8_t* nbSvUsed,
float* lat,
float* lon, uint16_t* accuracy, uint16_t* xtal,
float* latFilt,
float* lonFilt, uint16_t* accuracyFilt, uint16_t* xtalFilt);
1746 int16_t gnssReadDelayResetAP(uint32_t* delay);
1747 int16_t gnssAlmanacUpdateFromSat(uint8_t effort, uint8_t bitMask);
1748 int16_t gnssReadAlmanacStatus(uint8_t* status);
1749 int16_t gnssReadKeepSyncStatus(uint8_t mask, uint8_t* nbSvVisible, uint32_t* elapsed);
1750 int16_t gnssConfigAlmanacUpdatePeriod(uint8_t bitMask, uint8_t svType, uint16_t period);
1751 int16_t gnssReadAlmanacUpdatePeriod(uint8_t bitMask, uint8_t svType, uint16_t* period);
1752 int16_t gnssConfigDelayResetAP(uint32_t delay);
1753 int16_t gnssGetSvWarmStart(uint8_t bitMask, uint8_t* sv, uint8_t nbVisSat);
1754 int16_t gnssReadWarmStartStatus(uint8_t bitMask, uint8_t* nbVisSat, uint32_t* timeElapsed);
1755 int16_t gnssGetSvSync(uint8_t mask, uint8_t nbSv, uint8_t* syncList);
1756 int16_t gnssWriteBitMaskSatActivated(uint8_t bitMask, uint32_t* bitMaskActivated0, uint32_t* bitMaskActivated1);
1759 int16_t cryptoSetKey(uint8_t keyId,
const uint8_t* key);
1760 int16_t cryptoDeriveKey(uint8_t srcKeyId, uint8_t dstKeyId,
const uint8_t* key);
1761 int16_t cryptoProcessJoinAccept(uint8_t decKeyId, uint8_t verKeyId, uint8_t lwVer,
const uint8_t* header,
const uint8_t* dataIn,
size_t len, uint8_t* dataOut);
1762 int16_t cryptoComputeAesCmac(uint8_t keyId,
const uint8_t* data,
size_t len, uint32_t* mic);
1763 int16_t cryptoVerifyAesCmac(uint8_t keyId, uint32_t micExp,
const uint8_t* data,
size_t len,
bool* result);
1764 int16_t cryptoAesEncrypt01(uint8_t keyId,
const uint8_t* dataIn,
size_t len, uint8_t* dataOut);
1765 int16_t cryptoAesEncrypt(uint8_t keyId,
const uint8_t* dataIn,
size_t len, uint8_t* dataOut);
1766 int16_t cryptoAesDecrypt(uint8_t keyId,
const uint8_t* dataIn,
size_t len, uint8_t* dataOut);
1767 int16_t cryptoStoreToFlash(
void);
1768 int16_t cryptoRestoreFromFlash(
void);
1769 int16_t cryptoSetParam(uint8_t
id, uint32_t value);
1770 int16_t cryptoGetParam(uint8_t
id, uint32_t* value);
1771 int16_t cryptoCheckEncryptedFirmwareImage(uint32_t offset,
const uint32_t* data,
size_t len,
bool nonvolatile);
1772 int16_t cryptoCheckEncryptedFirmwareImageResult(
bool* result);
1774 int16_t bootEraseFlash(
void);
1775 int16_t bootWriteFlashEncrypted(uint32_t offset,
const uint32_t* data,
size_t len,
bool nonvolatile);
1776 int16_t bootReboot(
bool stay);
1777 int16_t bootGetPin(uint8_t* pin);
1778 int16_t bootGetChipEui(uint8_t* eui);
1779 int16_t bootGetJoinEui(uint8_t* eui);
1781 int16_t SPIcommand(uint16_t cmd,
bool write, uint8_t* data,
size_t len,
const uint8_t* out = NULL,
size_t outLen = 0);
1783#if !RADIOLIB_GODMODE
1786 uint8_t chipType = 0;
1789#if !RADIOLIB_GODMODE
1795 uint8_t bandwidth = 0, spreadingFactor = 0, codingRate = 0, ldrOptimize = 0, crcTypeLoRa = 0, headerType = 0;
1796 uint16_t preambleLengthLoRa = 0;
1797 float bandwidthKhz = 0;
1798 bool ldroAuto =
true;
1799 size_t implicitLen = 0;
1800 bool invertIQEnabled =
false;
1803 uint32_t bitRate = 0, frequencyDev = 0;
1804 uint8_t preambleDetLength = 0, rxBandwidth = 0, pulseShape = 0, crcTypeGFSK = 0, syncWordLength = 0, addrComp = 0, whitening = 0, packetType = 0, node = 0;
1805 uint16_t preambleLengthGFSK = 0;
1808 uint8_t lrFhssCr = 0, lrFhssBw = 0, lrFhssHdrCount = 0, lrFhssGrid = 0;
1809 uint16_t lrFhssHopSeq = 0;
1811 float dataRateMeasured = 0;
1813 uint8_t wifiScanMode = 0;
1815 uint32_t rxTimeout = 0;
1817 int16_t modSetup(
float tcxoVoltage, uint8_t modem);
1818 static int16_t SPIparseStatus(uint8_t in);
1819 static int16_t SPIcheckStatus(
Module* mod);
1820 bool findChip(uint8_t ver);
1821 int16_t config(uint8_t modem);
1822 int16_t setPacketMode(uint8_t mode, uint8_t len);
1823 int16_t startCad(uint8_t symbolNum, uint8_t detPeak, uint8_t detMin, uint8_t exitMode,
RadioLibTime_t timeout);
1824 int16_t setHeaderType(uint8_t hdrType,
size_t len = 0xFF);
1827 int16_t bleBeaconCommon(uint16_t cmd, uint8_t chan,
const uint8_t* payload,
size_t len);
1828 int16_t writeCommon(uint16_t cmd, uint32_t addrOffset,
const uint32_t* data,
size_t len,
bool nonvolatile);
1829 int16_t cryptoCommon(uint16_t cmd, uint8_t keyId,
const uint8_t* dataIn,
size_t len, uint8_t* dataOut);
Base class for LR11x0 series. All derived classes for LR11x0 (e.g. LR1110 or LR1120) inherit from thi...
Definition LR11x0.h:874
float getSNR() override
Gets SNR (Signal to Noise Ratio) of the last received packet. Only available for LoRa modem.
Definition LR11x0.cpp:1167
uint32_t getIrqStatus()
Reads the current IRQ status.
Definition LR11x0.cpp:431
int16_t setDataRate(DataRate_t dr) override
Set data.
Definition LR11x0.cpp:956
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 LR11x0.cpp:1351
int16_t getGnssPosition(LR11x0GnssPosition_t *pos, bool filtered=true)
Get GNSS position. Called after gnssScan to retrieve the position calculated by the internal solver.
Definition LR11x0.cpp:1888
int16_t setRegulatorDCDC()
Set regulator mode to DC-DC.
Definition LR11x0.cpp:1342
int16_t getChannelScanResult() override
Read the channel scan result.
Definition LR11x0.cpp:531
float getDataRate() const
Gets effective data rate for the last transmitted packet. The value is calculated only for payload by...
Definition LR11x0.cpp:1334
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 LR11x0.cpp:441
uint32_t getIrqFlags() override
Read currently active IRQ flags.
Definition LR11x0.cpp:1308
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 LR11x0.cpp:179
int16_t beginLRFHSS(uint8_t bw, uint8_t cr, bool narrowGrid, float tcxoVoltage)
Initialization method for LR-FHSS modem.
Definition LR11x0.cpp:103
int16_t setRxBandwidth(float rxBw)
Sets GFSK receiver bandwidth. Allowed values are 4.8, 5.8, 7.3, 9.7, 11.7, 14.6, 19....
Definition LR11x0.cpp:707
RadioLibTime_t calculateRxTimeout(RadioLibTime_t timeoutUs) override
Calculate the timeout value for this specific module / series (in number of symbols or units of time)
Definition LR11x0.cpp:1301
int16_t reset()
Reset method. Will reset the chip to the default state using RST pin.
Definition LR11x0.cpp:156
OpMode_t
Custom operation modes for LR11x0. Needed because LR11x0 has several modems (sub-GHz,...
Definition LR11x0.h:893
@ MODE_TX_HP
Definition LR11x0.h:903
@ MODE_END_OF_TABLE
Definition LR11x0.h:895
@ MODE_WIFI
Definition LR11x0.h:909
@ MODE_GNSS
Definition LR11x0.h:907
@ MODE_TX
Definition LR11x0.h:901
@ MODE_RX
Definition LR11x0.h:899
@ MODE_STBY
Definition LR11x0.h:897
@ MODE_TX_HF
Definition LR11x0.h:905
int16_t startWifiScan(char wifiType, uint8_t mode=RADIOLIB_LR11X0_WIFI_ACQ_MODE_FULL_BEACON, uint16_t chanMask=RADIOLIB_LR11X0_WIFI_ALL_CHANNELS, uint8_t numScans=16, uint16_t timeout=100)
Start passive WiFi scan. BUSY pin will be de-activated when the scan is finished.
Definition LR11x0.cpp:1440
int16_t explicitHeader()
Set explicit header mode for future reception/transmission.
Definition LR11x0.cpp:1330
int16_t receive(uint8_t *data, size_t len) override
Blocking binary receive method. Overloads for string-based transmissions are implemented in PhysicalL...
Definition LR11x0.cpp:229
bool XTAL
Whether the module has an XTAL (true) or TCXO (false). Defaults to false.
Definition LR11x0.h:915
int16_t getWifiScanResult(LR11x0WifiResult_t *result, uint8_t index, bool brief=false)
Retrieve passive WiFi scan result.
Definition LR11x0.cpp:1504
void setIrqAction(void(*func)(void))
Sets interrupt service routine to call when IRQ1 activates.
Definition LR11x0.cpp:395
int16_t checkDataRate(DataRate_t dr) override
Check the data rate can be configured by this module.
Definition LR11x0.cpp:995
int16_t startChannelScan() override
Interrupt-driven channel activity detection method. IRQ1 will be activated when LoRa preamble is dete...
Definition LR11x0.cpp:486
int16_t setCRC(uint8_t len, uint32_t initial=0x00001D0FUL, uint32_t polynomial=0x00001021UL, bool inverted=true)
Sets CRC configuration.
Definition LR11x0.cpp:1093
int16_t setCodingRate(uint8_t cr, bool longInterleave=false)
Sets LoRa coding rate denominator. Allowed values range from 5 to 8.
Definition LR11x0.cpp:625
int16_t setDataShaping(uint8_t sh) override
Sets time-bandwidth product of Gaussian filter applied for shaping. Allowed values are RADIOLIB_SHAPI...
Definition LR11x0.cpp:885
int16_t fixedPacketLengthMode(uint8_t len=RADIOLIB_LR11X0_MAX_PACKET_LENGTH)
Set modem in fixed packet length mode. Available in GFSK mode only.
Definition LR11x0.cpp:923
int16_t getWifiScanResultsCount(uint8_t *count)
Get number of WiFi scan results after the scan is finished.
Definition LR11x0.cpp:1490
int16_t setNodeAddress(uint8_t nodeAddr)
Sets node address. Calling this method will also enable address filtering for node address only.
Definition LR11x0.cpp:834
int16_t setIrqFlags(uint32_t irq) override
Set interrupt on IRQ pin to be sent on a specific IRQ bit (e.g. RxTimeout, CadDone).
Definition LR11x0.cpp:1312
int16_t setSyncBits(uint8_t *syncWord, uint8_t bitsLen)
Sets GFSK sync word in the form of array of up to 8 bytes.
Definition LR11x0.cpp:813
int16_t stageMode(RadioModeType_t mode, RadioModeConfig_t *cfg) override
Stage mode of the radio to be launched later using launchMode.
Definition LR11x0.cpp:1950
int16_t scanChannel() override
Performs scan for LoRa transmission in the current channel. Detects both preamble and payload.
Definition LR11x0.cpp:323
float getRSSI() override
Gets RSSI (Recorded Signal Strength Indicator) of the last received packet. Only available for LoRa o...
Definition LR11x0.cpp:1150
int16_t setBandwidth(float bw, bool high=false)
Sets LoRa bandwidth. Allowed values are 62.5, 125.0, 250.0 and 500.0 kHz. (default,...
Definition LR11x0.cpp:554
int16_t getGnssAlmanacStatus(LR11x0GnssAlmanacStatus_t *stat)
Read information about the almanac.
Definition LR11x0.cpp:1795
int16_t standby() override
Sets the module to standby mode (overload for PhysicalLayer compatibility, uses 13 MHz RC oscillator)...
Definition LR11x0.cpp:352
int16_t isGnssScanCapable()
Method to check whether the device is capable of performing a GNSS scan.
Definition LR11x0.cpp:1681
uint8_t randomByte() override
Get one truly random byte from RSSI noise.
Definition LR11x0.cpp:1320
int16_t setEncoding(uint8_t encoding) override
Sets transmission encoding. Available in GFSK mode only. Serves only as alias for PhysicalLayer compa...
Definition LR11x0.cpp:919
int16_t setLrFhssConfig(uint8_t bw, uint8_t cr, uint8_t hdrCount=3, uint16_t hopSeed=0x13A)
Sets LR-FHSS configuration.
Definition LR11x0.cpp:1419
void setPacketSentAction(void(*func)(void)) override
Sets interrupt service routine to call when a packet is sent.
Definition LR11x0.cpp:411
int16_t setRegulatorLDO()
Set regulator mode to LDO.
Definition LR11x0.cpp:1338
void clearPacketSentAction() override
Clears interrupt service routine to call when a packet is sent.
Definition LR11x0.cpp:415
int16_t updateGnssAlmanac(uint8_t constellation)
Perform almanac update. Must be called immediately after gnssDelayUntilSubframe.
Definition LR11x0.cpp:1858
void clearPacketReceivedAction() override
Clears interrupt service routine to call when a packet is received.
Definition LR11x0.cpp:407
int16_t setTCXO(float voltage, uint32_t delay=5000)
Sets TCXO (Temperature Compensated Crystal Oscillator) configuration.
Definition LR11x0.cpp:1038
int16_t getGnssSatellites(LR11x0GnssSatellite_t *sats, uint8_t numSats)
Get GNSS satellites found during the last scan.
Definition LR11x0.cpp:1908
int16_t begin(float bw, uint8_t sf, uint8_t cr, uint8_t syncWord, uint16_t preambleLength, float tcxoVoltage, bool high=false)
Initialization method for LoRa modem.
Definition LR11x0.cpp:28
int16_t clearIrqFlags(uint32_t irq) override
Clear interrupt on a specific IRQ bit (e.g. RxTimeout, CadDone).
Definition LR11x0.cpp:1316
int16_t setPreambleLength(size_t preambleLength) override
Sets preamble length for LoRa or GFSK modem. Allowed values range from 1 to 65535.
Definition LR11x0.cpp:1017
int16_t startReceive() override
Interrupt-driven receive method with default parameters. Implemented for compatibility with PhysicalL...
Definition LR11x0.cpp:427
int16_t autoLDRO()
Re-enables automatic LDRO configuration. Only available in LoRa mode. After calling this method,...
Definition LR11x0.cpp:1407
int16_t launchMode() override
Launch previously staged mode.
Definition LR11x0.cpp:2041
int16_t finishTransmit() override
Clean up after transmission is done.
Definition LR11x0.cpp:419
int16_t setRxBoostedGainMode(bool en)
Enables or disables Rx Boosted Gain mode (additional Rx gain for increased power consumption).
Definition LR11x0.cpp:1346
void clearIrqAction()
Clears interrupt service routine to call when IRQ1 activates.
Definition LR11x0.cpp:399
int16_t setBitRate(float br) override
Sets GFSK bit rate. Allowed values range from 0.6 to 300.0 kbps.
Definition LR11x0.cpp:670
int16_t updateFirmware(const uint32_t *image, size_t size, bool nonvolatile=true)
Method to upload new firmware image to the device. The device will be automatically erased,...
Definition LR11x0.cpp:1623
int16_t gnssDelayUntilSubframe(LR11x0GnssAlmanacStatus_t *stat, uint8_t constellation)
Blocking wait until the next subframe with almanac data is available. Used to control timing during a...
Definition LR11x0.cpp:1834
int16_t implicitHeader(size_t len)
Set implicit header mode for future reception/transmission.
Definition LR11x0.cpp:1326
int16_t beginGFSK(float br, float freqDev, float rxBw, uint16_t preambleLength, float tcxoVoltage)
Initialization method for FSK modem.
Definition LR11x0.cpp:62
RadioLibTime_t getTimeOnAir(size_t len) override
Get expected time-on-air for a given size of payload.
Definition LR11x0.cpp:1204
int16_t setFrequencyDeviation(float freqDev) override
Sets GFSK frequency deviation. Allowed values range from 0.0 to 200.0 kHz.
Definition LR11x0.cpp:687
size_t getPacketLength(bool update=true) override
Query modem for the packet length of received payload.
Definition LR11x0.cpp:1185
void setPacketReceivedAction(void(*func)(void)) override
Sets interrupt service routine to call when a packet is received.
Definition LR11x0.cpp:403
int16_t getVersionInfo(LR11x0VersionInfo_t *info)
Retrieve LR11x0 hardware, device and firmware version information.
Definition LR11x0.cpp:1603
void clearWiFiScanAction()
Clears interrupt service routine to call when a WiFi scan is completed.
Definition LR11x0.cpp:1486
int16_t sleep() override
Sets the module to sleep mode. To wake the device up, call standby(). Overload with warm start enable...
Definition LR11x0.cpp:370
int16_t beginGNSS(uint8_t constellations=RADIOLIB_LR11X0_GNSS_CONSTELLATION_GPS|RADIOLIB_LR11X0_GNSS_CONSTELLATION_BEIDOU, float tcxoVoltage=1.6)
Initialization method for GNSS scanning.
Definition LR11x0.cpp:126
float getFrequencyError()
Gets frequency error of the latest received packet.
Definition LR11x0.cpp:1180
int16_t gnssScan(LR11x0GnssResult_t *res=NULL)
Performs GNSS scan.
Definition LR11x0.cpp:1727
int16_t calibrateImageRejection(float freqMin, float freqMax)
Perform image rejection calibration for the specified frequency band. WARNING: Use at your own risk!...
Definition LR11x0.cpp:2448
int16_t variablePacketLengthMode(uint8_t maxLen=RADIOLIB_LR11X0_MAX_PACKET_LENGTH)
Set modem in variable packet length mode. Available in GFSK mode only.
Definition LR11x0.cpp:927
int16_t setWhitening(bool enabled, uint16_t initial=0x01FF)
Sets GFSK whitening parameters.
Definition LR11x0.cpp:931
int16_t wifiScan(uint8_t wifiType, uint8_t *count, uint8_t mode=RADIOLIB_LR11X0_WIFI_ACQ_MODE_FULL_BEACON, uint16_t chanMask=RADIOLIB_LR11X0_WIFI_ALL_CHANNELS, uint8_t numScans=16, uint16_t timeout=100)
Blocking WiFi scan method. Performs a full passive WiFi scan. This method may block for several secon...
Definition LR11x0.cpp:1578
int16_t setSpreadingFactor(uint8_t sf, bool legacy=false)
Sets LoRa spreading factor. Allowed values range from 5 to 12.
Definition LR11x0.cpp:604
int16_t transmitDirect(uint32_t frf=0) override
Starts direct mode transmission.
Definition LR11x0.cpp:300
int16_t forceLDRO(bool enable)
Forces LoRa low data rate optimization. Only available in LoRa mode. After calling this method,...
Definition LR11x0.cpp:1392
int16_t receiveDirect() override
Starts direct mode reception. Only implemented for PhysicalLayer compatibility, as SX126x series does...
Definition LR11x0.cpp:315
int16_t disableAddressFiltering()
Disables address filtering. Calling this method will also erase previously set addresses.
Definition LR11x0.cpp:871
int16_t setSyncWord(uint8_t syncWord)
Sets LoRa sync word.
Definition LR11x0.cpp:658
int16_t setBroadcastAddress(uint8_t broadAddr)
Sets broadcast address. Calling this method will also enable address filtering for node and broadcast...
Definition LR11x0.cpp:853
int16_t invertIQ(bool enable) override
Enable/disable inversion of the I and Q signals.
Definition LR11x0.cpp:1137
int16_t getModem(ModemType_t *modem) override
Get modem currently in use by the radio.
Definition LR11x0.cpp:1928
void setWiFiScanAction(void(*func)(void))
Sets interrupt service routine to call when a WiFi scan is completed.
Definition LR11x0.cpp:1482
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
@ MODE_TX
Transmission mode.
Definition Module.h:119
@ MODE_IDLE
Idle mode.
Definition Module.h:113
@ MODE_RX
Receive mode.
Definition Module.h:116
@ MODE_END_OF_TABLE
End of table marker, use END_OF_MODE_TABLE constant instead. Value is zero to ensure zero-initialized...
Definition Module.h:110
Provides common interface for protocols that run on LoRa/FSK modules, such as RTTY or LoRaWAN....
Definition PhysicalLayer.h:216
virtual int16_t startReceive()
Sets module to received mode using its default configuration.
Definition PhysicalLayer.cpp:130
virtual int16_t readData(uint8_t *data, size_t len)
Reads data that was received after calling startReceive method.
Definition PhysicalLayer.cpp:220
int16_t transmit(const char *str, uint8_t addr=0)
C-string transmit method.
Definition PhysicalLayer.cpp:53
int16_t startTransmit(const char *str, uint8_t addr=0)
Interrupt-driven Arduino String transmit method. Unlike the standard transmit method,...
Definition PhysicalLayer.cpp:155
virtual int16_t receive(uint8_t *data, size_t len)
Binary receive method. Must be implemented in module class.
Definition PhysicalLayer.cpp:111
unsigned long RadioLibTime_t
Type used for durations in RadioLib.
Definition TypeDef.h:642
Structure to save information about the GNSS almanac. This is not the actual almanac,...
Definition LR11x0.h:852
RadioLibTime_t start
Timestamp of when almanac status was retrieved - timeUntilSubframe is relative to this value.
Definition LR11x0.h:866
LR11x0GnssAlmanacStatusPart_t beidou
BeiDou part of the almanac.
Definition LR11x0.h:857
uint8_t nextAlmanacId
Next almanac ID.
Definition LR11x0.h:863
uint32_t beidouSvNoAlmanacFlags[2]
Extra flags present for BeiDou only.
Definition LR11x0.h:860
LR11x0GnssAlmanacStatusPart_t gps
GPS part of the almanac.
Definition LR11x0.h:854
Structure to save information about one constellation of the GNSS almanac.
Definition LR11x0.h:835
Structure to report position from LR11x0 internal solver.
Definition LR11x0.h:802
float latitude
Latitude in degrees.
Definition LR11x0.h:804
uint16_t accuracy
Accuracy of this result.
Definition LR11x0.h:810
float longitude
Longitude in degrees.
Definition LR11x0.h:807
uint8_t numSatsUsed
Number of satellites used to solve this position.
Definition LR11x0.h:813
Structure to report information results of a GNSS scan.
Definition LR11x0.h:787
uint16_t resSize
Result size, used when passing data to LoRa cloud.
Definition LR11x0.h:795
int8_t demodStat
Demodulator status. One of RADIOLIB_LR11X0_GNSS_DEMOD_STATUS_*.
Definition LR11x0.h:789
uint8_t numSatsDet
Number of satellites detected during the scan.
Definition LR11x0.h:792
Structure to save information about a satellite found during GNSS scan.
Definition LR11x0.h:820
uint8_t svId
Satellite vehicle (SV) identifier.
Definition LR11x0.h:822
uint8_t c_n0
C/N0 in dB.
Definition LR11x0.h:825
int16_t doppler
Doppler shift of the signal in Hz.
Definition LR11x0.h:828
Structure to report information about versions of the LR11x0 hardware and firmware.
Definition LR11x0.h:757
uint8_t fwMajor
Major revision of the base firmware.
Definition LR11x0.h:765
uint8_t fwMinorWiFi
Minor revision of the WiFi firmware.
Definition LR11x0.h:774
uint8_t device
Which device this is - one of RADIOLIB_LR11X0_DEVICE_* macros.
Definition LR11x0.h:762
uint8_t hardware
Hardware revision.
Definition LR11x0.h:759
uint8_t fwMinor
Minor revision of the base firmware.
Definition LR11x0.h:768
uint8_t fwGNSS
Revision of the GNSS firmware.
Definition LR11x0.h:777
uint8_t almanacGNSS
Almanac revision of the GNSS firmware.
Definition LR11x0.h:780
uint8_t fwMajorWiFi
Major revision of the WiFi firmware.
Definition LR11x0.h:771
Structure to save result of passive WiFi scan. This result only saves the basic information.
Definition LR11x0.h:660
bool ap
Whether this signal was sent by an access point (true) or end device (false)
Definition LR11x0.h:674
uint16_t channelFreq
Channel frequency in MHz.
Definition LR11x0.h:668
char type
WiFi (802.11) signal type, 'b', 'n' or 'g'.
Definition LR11x0.h:662
uint8_t mac[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN]
MAC address.
Definition LR11x0.h:680
uint8_t dataRateId
Data rate ID holding information about modulation and coding rate. See LR11x0 user manual for details...
Definition LR11x0.h:665
float rssi
RSSI in dBm.
Definition LR11x0.h:677
uint8_t origin
MAC address origin: from gateway (1), phone (2) or undetermined (3)
Definition LR11x0.h:671
Structure to save result of passive WiFi scan. This result saves additional information alongside tha...
Definition LR11x0.h:718
uint8_t rate
Data rate. See LR11x0 user manual for details.
Definition LR11x0.h:720
uint16_t length
Refer to IEEE Std 802.11, 2016, Part 11: Wireless LAN MAC and PHY Spec.
Definition LR11x0.h:726
bool fcsCheckOk
True if frame check sequences is valid, false otherwise.
Definition LR11x0.h:750
uint16_t service
Refer to IEEE Std 802.11, 2016, Part 11: Wireless LAN MAC and PHY Spec.
Definition LR11x0.h:723
uint8_t mac2[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN]
MAC address 2.
Definition LR11x0.h:732
uint8_t ssid[RADIOLIB_LR11X0_WIFI_RESULT_SSID_LEN]
SSID.
Definition LR11x0.h:738
uint8_t currentChannel
WiFi channel number.
Definition LR11x0.h:741
uint16_t seqCtrl
Refer to IEEE Std 802.11, 2016, Part 11: Wireless LAN MAC and PHY Spec.
Definition LR11x0.h:735
uint8_t mac0[RADIOLIB_LR11X0_WIFI_RESULT_MAC_LEN]
MAC address 0.
Definition LR11x0.h:729
char countryCode[3]
Two-letter country code (null-terminated string).
Definition LR11x0.h:744
uint8_t ioReg
Refer to IEEE Std 802.11, 2016, Part 11: Wireless LAN MAC and PHY Spec.
Definition LR11x0.h:747
Structure to save result of passive WiFi scan. This result saves additional information alongside tha...
Definition LR11x0.h:688
uint32_t periodBeacon
Beacon period in microseconds.
Definition LR11x0.h:708
uint16_t phiOffset
See LR11x0 user manual for details.
Definition LR11x0.h:702
bool fromDistributionSystem
Frame sent from distribution system to client station.
Definition LR11x0.h:699
uint64_t timestamp
Number of microseconds the AP has been active.
Definition LR11x0.h:705
uint8_t frameType
Frame type. See LR11x0 user manual for details.
Definition LR11x0.h:690
uint8_t frameSubType
Frame sub type. See LR11x0 user manual for details.
Definition LR11x0.h:693
bool toDistributionSystem
Frame sent from client station to distribution system.
Definition LR11x0.h:696
Description of RF switch pin states for a single mode. See setRfSwitchTable for details.
Definition Module.h:89
Common channel scan configuration structure.
Definition PhysicalLayer.h:125
Common data rate structure.
Definition PhysicalLayer.h:74
Definition PhysicalLayer.h:168