1 2menu "Wi-Fi" 3 visible if !IDF_TARGET_ESP32H2 4 5 config ESP32_WIFI_ENABLED 6 bool 7 default "y" if !IDF_TARGET_ESP32H2 # TODO: replace with SOC_CAPS_SUPPORT_WIFI after IDF-2223 is done 8 9 config ESP32_WIFI_SW_COEXIST_ENABLE 10 bool "Software controls WiFi/Bluetooth coexistence" 11 depends on ESP32_WIFI_ENABLED && BT_ENABLED 12 default y 13 help 14 If enabled, WiFi & Bluetooth coexistence is controlled by software rather than hardware. 15 Recommended for heavy traffic scenarios. Both coexistence configuration options are 16 automatically managed, no user intervention is required. 17 If only Bluetooth is used, it is recommended to disable this option to reduce binary file 18 size. 19 20 config ESP32_WIFI_STATIC_RX_BUFFER_NUM 21 int "Max number of WiFi static RX buffers" 22 range 2 25 23 default 10 if !SPIRAM_TRY_ALLOCATE_WIFI_LWIP 24 default 16 if SPIRAM_TRY_ALLOCATE_WIFI_LWIP 25 help 26 Set the number of WiFi static RX buffers. Each buffer takes approximately 1.6KB of RAM. 27 The static rx buffers are allocated when esp_wifi_init is called, they are not freed 28 until esp_wifi_deinit is called. 29 30 WiFi hardware use these buffers to receive all 802.11 frames. 31 A higher number may allow higher throughput but increases memory use. If ESP32_WIFI_AMPDU_RX_ENABLED 32 is enabled, this value is recommended to set equal or bigger than ESP32_WIFI_RX_BA_WIN in order to 33 achieve better throughput and compatibility with both stations and APs. 34 35 config ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM 36 int "Max number of WiFi dynamic RX buffers" 37 range 0 128 if !LWIP_WND_SCALE 38 range 0 1024 if LWIP_WND_SCALE 39 default 32 40 help 41 Set the number of WiFi dynamic RX buffers, 0 means unlimited RX buffers will be allocated 42 (provided sufficient free RAM). The size of each dynamic RX buffer depends on the size of 43 the received data frame. 44 45 For each received data frame, the WiFi driver makes a copy to an RX buffer and then delivers 46 it to the high layer TCP/IP stack. The dynamic RX buffer is freed after the higher layer has 47 successfully received the data frame. 48 49 For some applications, WiFi data frames may be received faster than the application can 50 process them. In these cases we may run out of memory if RX buffer number is unlimited (0). 51 52 If a dynamic RX buffer limit is set, it should be at least the number of static RX buffers. 53 54 choice ESP32_WIFI_TX_BUFFER 55 prompt "Type of WiFi TX buffers" 56 default ESP32_WIFI_DYNAMIC_TX_BUFFER 57 help 58 Select type of WiFi TX buffers: 59 60 If "Static" is selected, WiFi TX buffers are allocated when WiFi is initialized and released 61 when WiFi is de-initialized. The size of each static TX buffer is fixed to about 1.6KB. 62 63 If "Dynamic" is selected, each WiFi TX buffer is allocated as needed when a data frame is 64 delivered to the Wifi driver from the TCP/IP stack. The buffer is freed after the data frame 65 has been sent by the WiFi driver. The size of each dynamic TX buffer depends on the length 66 of each data frame sent by the TCP/IP layer. 67 68 If PSRAM is enabled, "Static" should be selected to guarantee enough WiFi TX buffers. 69 If PSRAM is disabled, "Dynamic" should be selected to improve the utilization of RAM. 70 71 config ESP32_WIFI_STATIC_TX_BUFFER 72 bool "Static" 73 config ESP32_WIFI_DYNAMIC_TX_BUFFER 74 bool "Dynamic" 75 depends on !SPIRAM_USE_MALLOC 76 endchoice 77 78 config ESP32_WIFI_TX_BUFFER_TYPE 79 int 80 default 0 if ESP32_WIFI_STATIC_TX_BUFFER 81 default 1 if ESP32_WIFI_DYNAMIC_TX_BUFFER 82 83 config ESP32_WIFI_STATIC_TX_BUFFER_NUM 84 int "Max number of WiFi static TX buffers" 85 depends on ESP32_WIFI_STATIC_TX_BUFFER 86 range 1 64 87 default 16 88 help 89 Set the number of WiFi static TX buffers. Each buffer takes approximately 1.6KB of RAM. 90 The static RX buffers are allocated when esp_wifi_init() is called, they are not released 91 until esp_wifi_deinit() is called. 92 93 For each transmitted data frame from the higher layer TCP/IP stack, the WiFi driver makes a 94 copy of it in a TX buffer. For some applications especially UDP applications, the upper 95 layer can deliver frames faster than WiFi layer can transmit. In these cases, we may run out 96 of TX buffers. 97 98 config ESP32_WIFI_CACHE_TX_BUFFER_NUM 99 int "Max number of WiFi cache TX buffers" 100 depends on (ESP32_SPIRAM_SUPPORT || ESP32S2_SPIRAM_SUPPORT || ESP32S3_SPIRAM_SUPPORT) 101 range 16 128 102 default 32 103 help 104 Set the number of WiFi cache TX buffer number. 105 106 For each TX packet from uplayer, such as LWIP etc, WiFi driver needs to allocate a static TX 107 buffer and makes a copy of uplayer packet. If WiFi driver fails to allocate the static TX buffer, 108 it caches the uplayer packets to a dedicated buffer queue, this option is used to configure the 109 size of the cached TX queue. 110 111 config ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM 112 int "Max number of WiFi dynamic TX buffers" 113 depends on ESP32_WIFI_DYNAMIC_TX_BUFFER 114 range 1 128 115 default 32 116 help 117 Set the number of WiFi dynamic TX buffers. The size of each dynamic TX buffer is not fixed, 118 it depends on the size of each transmitted data frame. 119 120 For each transmitted frame from the higher layer TCP/IP stack, the WiFi driver makes a copy 121 of it in a TX buffer. For some applications, especially UDP applications, the upper layer 122 can deliver frames faster than WiFi layer can transmit. In these cases, we may run out of TX 123 buffers. 124 125 config ESP32_WIFI_CSI_ENABLED 126 bool "WiFi CSI(Channel State Information)" 127 default n 128 help 129 Select this option to enable CSI(Channel State Information) feature. CSI takes about 130 CONFIG_ESP32_WIFI_STATIC_RX_BUFFER_NUM KB of RAM. If CSI is not used, it is better to disable 131 this feature in order to save memory. 132 133 config ESP32_WIFI_AMPDU_TX_ENABLED 134 bool "WiFi AMPDU TX" 135 default y 136 help 137 Select this option to enable AMPDU TX feature 138 139 140 config ESP32_WIFI_TX_BA_WIN 141 int "WiFi AMPDU TX BA window size" 142 depends on ESP32_WIFI_AMPDU_TX_ENABLED 143 range 2 32 144 default 6 145 help 146 Set the size of WiFi Block Ack TX window. Generally a bigger value means higher throughput but 147 more memory. Most of time we should NOT change the default value unless special reason, e.g. 148 test the maximum UDP TX throughput with iperf etc. For iperf test in shieldbox, the recommended 149 value is 9~12. 150 151 config ESP32_WIFI_AMPDU_RX_ENABLED 152 bool "WiFi AMPDU RX" 153 default y 154 help 155 Select this option to enable AMPDU RX feature 156 157 config ESP32_WIFI_RX_BA_WIN 158 int "WiFi AMPDU RX BA window size" 159 depends on ESP32_WIFI_AMPDU_RX_ENABLED 160 range 2 32 161 default 6 if !SPIRAM_TRY_ALLOCATE_WIFI_LWIP 162 default 16 if SPIRAM_TRY_ALLOCATE_WIFI_LWIP 163 help 164 Set the size of WiFi Block Ack RX window. Generally a bigger value means higher throughput and better 165 compatibility but more memory. Most of time we should NOT change the default value unless special 166 reason, e.g. test the maximum UDP RX throughput with iperf etc. For iperf test in shieldbox, the 167 recommended value is 9~12. If PSRAM is used and WiFi memory is prefered to allocat in PSRAM first, 168 the default and minimum value should be 16 to achieve better throughput and compatibility with both 169 stations and APs. 170 171 config ESP32_WIFI_AMSDU_TX_ENABLED 172 bool "WiFi AMSDU TX" 173 depends on (ESP32_SPIRAM_SUPPORT || ESP32S2_SPIRAM_SUPPORT || ESP32S3_SPIRAM_SUPPORT) 174 default n 175 help 176 Select this option to enable AMSDU TX feature 177 178 config ESP32_WIFI_NVS_ENABLED 179 bool "WiFi NVS flash" 180 default y 181 help 182 Select this option to enable WiFi NVS flash 183 184 choice ESP32_WIFI_TASK_CORE_ID 185 depends on !FREERTOS_UNICORE 186 prompt "WiFi Task Core ID" 187 default ESP32_WIFI_TASK_PINNED_TO_CORE_0 188 help 189 Pinned WiFi task to core 0 or core 1. 190 191 config ESP32_WIFI_TASK_PINNED_TO_CORE_0 192 bool "Core 0" 193 config ESP32_WIFI_TASK_PINNED_TO_CORE_1 194 bool "Core 1" 195 endchoice 196 197 config ESP32_WIFI_SOFTAP_BEACON_MAX_LEN 198 int "Max length of WiFi SoftAP Beacon" 199 range 752 1256 200 default 752 201 help 202 ESP-MESH utilizes beacon frames to detect and resolve root node conflicts (see documentation). However the 203 default length of a beacon frame can simultaneously hold only five root node identifier structures, 204 meaning that a root node conflict of up to five nodes can be detected at one time. In the occurence of 205 more root nodes conflict involving more than five root nodes, the conflict resolution process will detect 206 five of the root nodes, resolve the conflict, and re-detect more root nodes. This process will repeat 207 until all root node conflicts are resolved. However this process can generally take a very long time. 208 209 To counter this situation, the beacon frame length can be increased such that more root nodes can be 210 detected simultaneously. Each additional root node will require 36 bytes and should be added ontop of the 211 default beacon frame length of 212 752 bytes. For example, if you want to detect 10 root nodes simultaneously, you need to set the beacon 213 frame length as 214 932 (752+36*5). 215 216 Setting a longer beacon length also assists with debugging as the conflicting root nodes can be identified 217 more quickly. 218 219 config ESP32_WIFI_MGMT_SBUF_NUM 220 int "WiFi mgmt short buffer number" 221 range 6 32 222 default 32 223 help 224 Set the number of WiFi management short buffer. 225 226 config ESP32_WIFI_IRAM_OPT 227 bool "WiFi IRAM speed optimization" 228 default n if (BT_ENABLED && ESP32_SPIRAM_SUPPORT) 229 default y 230 help 231 Select this option to place frequently called Wi-Fi library functions in IRAM. 232 When this option is disabled, more than 10Kbytes of IRAM memory will be saved 233 but Wi-Fi throughput will be reduced. 234 235 config ESP32_WIFI_RX_IRAM_OPT 236 bool "WiFi RX IRAM speed optimization" 237 default n if (BT_ENABLED && ESP32_SPIRAM_SUPPORT) 238 default y 239 help 240 Select this option to place frequently called Wi-Fi library RX functions in IRAM. 241 When this option is disabled, more than 17Kbytes of IRAM memory will be saved 242 but Wi-Fi performance will be reduced. 243 244 config ESP32_WIFI_ENABLE_WPA3_SAE 245 bool "Enable WPA3-Personal" 246 default y 247 depends on WPA_MBEDTLS_CRYPTO 248 help 249 Select this option to allow the device to establish a WPA3-Personal connection with eligible AP's. 250 PMF (Protected Management Frames) is a prerequisite feature for a WPA3 connection, it needs to be 251 explicitly configured before attempting connection. Please refer to the Wi-Fi Driver API Guide for details. 252 253 config ESP_WIFI_SLP_IRAM_OPT 254 bool "WiFi SLP IRAM speed optimization" 255 select PM_SLP_DEFAULT_PARAMS_OPT 256 help 257 Select this option to place called Wi-Fi library TBTT process and receive beacon functions in IRAM. 258 Some functions can be put in IRAM either by ESP32_WIFI_IRAM_OPT and ESP32_WIFI_RX_IRAM_OPT, or this one. 259 If already enabled ESP32_WIFI_IRAM_OPT, the other 7.3KB IRAM memory would be taken by this option. 260 If already enabled ESP32_WIFI_RX_IRAM_OPT, the other 1.3KB IRAM memory would be taken by this option. 261 If neither of them are enabled, the other 7.4KB IRAM memory would be taken by this option. 262 Wi-Fi power-save mode average current would be reduced if this option is enabled. 263 264 config ESP_WIFI_SLP_DEFAULT_MIN_ACTIVE_TIME 265 int "Minimum active time" 266 range 8 60 267 default 50 268 depends on ESP_WIFI_SLP_IRAM_OPT 269 help 270 The minimum timeout for waiting to receive data, unit: milliseconds. 271 272 config ESP_WIFI_SLP_DEFAULT_MAX_ACTIVE_TIME 273 int "Maximum keep alive time" 274 range 10 60 275 default 10 276 depends on ESP_WIFI_SLP_IRAM_OPT 277 help 278 The maximum time that wifi keep alive, unit: seconds. 279 280 config ESP_WIFI_FTM_ENABLE 281 bool "WiFi FTM" 282 default n 283 depends on (IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3) 284 help 285 Enable feature Fine Timing Measurement for calculating WiFi Round-Trip-Time (RTT). 286 287 config ESP_WIFI_FTM_INITIATOR_SUPPORT 288 bool "FTM Initiator support" 289 default y 290 depends on ESP_WIFI_FTM_ENABLE 291 292 config ESP_WIFI_FTM_RESPONDER_SUPPORT 293 bool "FTM Responder support" 294 default y 295 depends on ESP_WIFI_FTM_ENABLE 296 297 config ESP_WIFI_STA_DISCONNECTED_PM_ENABLE 298 bool "Power Management for station at disconnected" 299 help 300 Select this option to enable power_management for station when disconnected. 301 Chip will do modem-sleep when rf module is not in use any more. 302 303 config ESP_WIFI_EXTERNAL_COEXIST_ENABLE 304 bool "WiFi External Coexistence" 305 default n 306 depends on (!BT_ENABLED && (IDF_TARGET_ESP32S2 || IDF_TARGET_ESP32C3)) 307 help 308 If enabled, HW External coexistence arbitration is managed by GPIO pins. 309 It can support three types of wired combinations so far which are 1-wired/2-wired/3-wired. 310 User can select GPIO pins in application code with configure interfaces. 311 312 This function depends on BT-off 313 because currently we don't support external coex and internal coex simultaneously. 314 315 config ESP_WIFI_GCMP_SUPPORT 316 bool "WiFi GCMP Support(GCMP128 and GCMP256)" 317 default n 318 depends on (IDF_TARGET_ESP32C3 || IDF_TARGET_ESP32S3) 319 help 320 Select this option to enable GCMP support. GCMP support is compulsory for WiFi Suite-B support. 321 322 config ESP_WIFI_GMAC_SUPPORT 323 bool "WiFi GMAC Support(GMAC128 and GMAC256)" 324 default n 325 help 326 Select this option to enable GMAC support. GMAC support is compulsory for WiFi 192 bit certification. 327 328 config ESP_WIFI_SOFTAP_SUPPORT 329 bool "WiFi SoftAP Support" 330 default y 331 help 332 WiFi module can be compiled without SoftAP to save code size. 333 334endmenu # Wi-Fi 335