Skip to content

espressif/esp-extconn

Repository files navigation

ESP External Connection

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.

Supported Features

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 ESP Chips

  • Supported Host : ESP32P4
  • Supported Target : ESP8689

Supported Boards

  • 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.

Supported Transports

  • SDIO Only
    • Wi-Fi and Bluetooth, traffic for both runs over SDIO

Supported APIs

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

Step to enable this component in an example code:

  1. Add this component to your project using idf.py add-dependency esp-extconn command.

  2. In the main file of the example, add the following line:

    #ifdef CONFIG_ESP_EXT_CONN_ENABLE
    #include "esp_extconn.h"
    #endif
  3. 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
  4. Using esp_wifi components like built-in wireless chips :)

Throughput Performance

1. Parameters

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

2. Performance

1. TCP TX

[ 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

2. TCP RX

 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

3. UDP TX

[ 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%)

4. UDP RX

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.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages