This component provides external wireless connectivity(Wi-Fi & Bluetooth) for ESP chips that do not have built-in wireless capabilities. The APIs used by this component are compatible with the Wi-Fi and Bluetooth component APIs in the ESP-IDF.
Features | Supported | Sill not Supported |
---|---|---|
Virtual Wi-Fi interfaces | Station, SoftAP | Sniffer, Wi-Fi Aware (NAN) |
Wi-Fi Modes | Station, SoftAP, Station/AP-coexistence mode | |
Wi-Fi Protocols | 802.11 b/g/n | |
Wi-Fi Security Modes | Open / WPA / WPA2 / WPA3 / WPA2-Enterprise / WPA3-Enterprise / WPS | WAPI / DPP |
Power Save | Modem-sleep | |
Wi-Fi Data Transmission | AMSDU, AMPDU, HT40, QoS | |
Vendor Features | ESP-NOW, Long Range mode, SmartConfig, Channel State Information | |
Scan | Fast scan, All-channel scan | |
Antennas | Multiple | |
Bluetooth features | Classic Bluetooth, BLE 4.2 |
- Supported Host : ESP32P4
- Supported Target : ESP8689
-
ESP32-P4_Function_EV_Board with ESP32_Module_SDIO_Converter_Board
-
Hardware setup
- Pin Connections
ESP32P4 ESP8689 Function 53 EN Reset GND IO0 Forcing ESP8689 in download mode - The ESP32P4 controls the reset of the ESP8689 through pin 53.
- Pin Connections
- SDIO Only
- Wi-Fi and Bluetooth, traffic for both runs over SDIO
Classification | Supported APIs |
---|---|
Initialization | esp_wifi_init / esp_wifi_deinit |
esp_wifi_start / esp_wifi_stop | |
Configuration | esp_wifi_set_mode / esp_wifi_get_mode |
esp_wifi_set_config / esp_wifi_get_config | |
esp_wifi_set_storage | |
esp_wifi_set_protocol / esp_wifi_get_protocol | |
esp_wifi_set_country / esp_wifi_get_country | |
esp_wifi_set_country_code / esp_wifi_get_country_code | |
esp_wifi_set_bandwidth / esp_wifi_get_bandwidth | |
esp_wifi_set_mac / esp_wifi_get_mac | |
esp_wifi_restore | |
esp_wifi_set_vendor_ie / esp_wifi_set_vendor_ie_cb | |
esp_wifi_set_channel / esp_wifi_get_channel | |
esp_wifi_set_inactive_time / esp_wifi_get_inactive_time | |
esp_wifi_set_rssi_threshold | |
Connection | esp_wifi_connect / esp_wifi_disconnect |
esp_wifi_sta_get_aid / esp_wifi_ap_get_sta_aid | |
esp_wifi_sta_get_ap_info | |
esp_wifi_ap_get_sta_list_with_ip / esp_wifi_ap_get_sta_list | |
esp_wifi_deauth_sta | |
esp_wifi_sta_get_rssi | |
esp_wifi_sta_get_negotiated_phymode | |
Scan | esp_wifi_scan_start / esp_wifi_scan_stop |
esp_wifi_set_scan_parameters / esp_wifi_get_scan_parameters | |
esp_wifi_scan_get_ap_num | |
esp_wifi_scan_get_ap_records / esp_wifi_scan_get_ap_record | |
esp_wifi_clear_ap_list | |
Others | esp_wifi_80211_tx |
esp_wifi_statis_dump |
-
Add this component to your project using
idf.py add-dependency esp-extconn
command. -
In the main file of the example, add the following line:
#ifdef CONFIG_ESP_EXT_CONN_ENABLE #include "esp_extconn.h" #endif
-
In your app_main() function, add the following line as the first line:
#ifdef CONFIG_ESP_EXT_CONN_ENABLE esp_extconn_config_t config = ESP_EXTCONN_CONFIG_DEFAULT(); esp_extconn_init(&config); #endif
-
Using esp_wifi components like built-in wireless chips :)
Parameters | Value | |
System Parameters | CACHE_L2_CACHE | 128 KB |
CACHE_L2_CACHE_LINE | 64 B | |
FREERTOS_HZ | 100 Hz | |
Wi-Fi Parameters | WIFI_STATIC_RX_BUFFER_NUM | 24 |
WIFI_DYNAMIC_RX_BUFFER_NUM | 128 | |
WIFI_DYNAMIC_TX_BUFFER_NUM | 128 | |
WIFI_RX_BA_WIN | 32 | |
WIFI_IRAM_OPT | y | |
WIFI_RX_IRAM_OPT | y | |
Lwip Parameters | LWIP_IRAM_OPTIMIZATION | y |
LWIP_TCPIP_RECVMBOX_SIZE | 64 | |
LWIP_TCP_WND_DEFAULT | 65535 | |
LWIP_TCP_SND_BUF_DEFAULT | 65535 | |
LWIP_TCP_RECVMBOX_SIZE | 64 | |
LWIP_TCP_ACCEPTMBOX_SIZE | 64 | |
LWIP_UDP_RECVMBOX_SIZE | 64 | |
Tasks Parameters | Iperf traffic Core ID | 0 |
Iperf traffic Priority | 23 | |
Lwip Core ID | 0 | |
Lwip Priority | 23 | |
Wi-Fi Core ID | 0 | |
Wi-Fi Priority | 23 | |
SDIO TX Core ID | 1 | |
SDIO TX Priority | 24 | |
SDIO RX Core ID | 1 | |
SDIO RX Priority | 23 | |
Router parameters | Type | ASUS RT-AX88U Pro |
Bandwidth | 40MHZ | |
Beacon interval (ms) | 1000 | |
Mode | N only |
[ ID] Interval Transfer Bandwidth
[ 1] 0.0000-1.0000 sec 5.69 MBytes 47.7 Mbits/sec
[ 1] 1.0000-2.0000 sec 5.77 MBytes 48.4 Mbits/sec
[ 1] 2.0000-3.0000 sec 5.79 MBytes 48.6 Mbits/sec
[ 1] 3.0000-4.0000 sec 5.81 MBytes 48.8 Mbits/sec
[ 1] 4.0000-5.0000 sec 5.90 MBytes 49.5 Mbits/sec
[ 1] 5.0000-6.0000 sec 5.87 MBytes 49.2 Mbits/sec
[ 1] 6.0000-7.0000 sec 5.88 MBytes 49.3 Mbits/sec
[ 1] 7.0000-8.0000 sec 5.80 MBytes 48.6 Mbits/sec
[ 1] 8.0000-9.0000 sec 5.80 MBytes 48.6 Mbits/sec
[ 1] 9.0000-10.0000 sec 5.79 MBytes 48.6 Mbits/sec
[ 1] 0.0000-10.0053 sec 58.1 MBytes 48.7 Mbits/sec
Interval Bandwidth
0.0- 1.0 sec 51.24 Mbits/sec
1.0- 2.0 sec 51.04 Mbits/sec
2.0- 3.0 sec 51.59 Mbits/sec
3.0- 4.0 sec 51.44 Mbits/sec
4.0- 5.0 sec 51.58 Mbits/sec
5.0- 6.0 sec 51.45 Mbits/sec
6.0- 7.0 sec 51.25 Mbits/sec
7.0- 8.0 sec 51.91 Mbits/sec
8.0- 9.0 sec 51.66 Mbits/sec
9.0-10.0 sec 51.21 Mbits/sec
0.0-10.0 sec 51.44 Mbits/sec
[ ID] Interval Transfer Bandwidth Jitter Lost/Total Datagrams
[ 1] 0.0000-1.0000 sec 7.69 MBytes 64.5 Mbits/sec 0.178 ms 0/5558 (0%)
[ 1] 1.0000-2.0000 sec 7.72 MBytes 64.7 Mbits/sec 0.172 ms 0/5580 (0%)
[ 1] 2.0000-3.0000 sec 7.73 MBytes 64.8 Mbits/sec 0.196 ms 0/5589 (0%)
[ 1] 3.0000-4.0000 sec 7.71 MBytes 64.7 Mbits/sec 0.178 ms 0/5576 (0%)
[ 1] 4.0000-5.0000 sec 7.72 MBytes 64.8 Mbits/sec 0.167 ms 0/5583 (0%)
[ 1] 5.0000-6.0000 sec 7.73 MBytes 64.8 Mbits/sec 0.163 ms 0/5588 (0%)
[ 1] 6.0000-7.0000 sec 7.73 MBytes 64.9 Mbits/sec 0.168 ms 22/5615 (0.39%)
[ 1] 7.0000-8.0000 sec 7.73 MBytes 64.8 Mbits/sec 0.177 ms 24/5614 (0.43%)
[ 1] 8.0000-9.0000 sec 7.72 MBytes 64.8 Mbits/sec 0.171 ms 20/5606 (0.36%)
[ 1] 9.0000-10.0000 sec 7.72 MBytes 64.7 Mbits/sec 0.176 ms 27/5607 (0.48%)
[ 1] 0.0000-10.0010 sec 77.2 MBytes 64.8 Mbits/sec 0.195 ms 93/55922 (0.17%)
Interval Bandwidth
0.0- 1.0 sec 84.16 Mbits/sec
1.0- 2.0 sec 84.34 Mbits/sec
2.0- 3.0 sec 84.43 Mbits/sec
3.0- 4.0 sec 84.14 Mbits/sec
4.0- 5.0 sec 83.56 Mbits/sec
5.0- 6.0 sec 84.45 Mbits/sec
6.0- 7.0 sec 84.57 Mbits/sec
7.0- 8.0 sec 84.20 Mbits/sec
8.0- 9.0 sec 83.71 Mbits/sec
9.0-10.0 sec 83.86 Mbits/sec
0.0-10.0 sec 84.14 Mbits/sec
Note : Due to the limited clock frequency (40M) of SDIO, there may be slight packet loss in the UDP TX direction.