espressif/esp-extconn

0.3.2

Latest
uploaded 2 months ago
EXT CONN driver

readme

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 Core Board with HWD-124 ESP32-P4 Core ESP32_Sub

  • Hardware setup

    • Pin Connections
      ESP32P4 ESP8689 Function
      42 EN Reset
      43 BOOT Forcing ESP8689 in download mode
      45 D1 Data 1
      46 D0 Data 0
      47 CLK Clock
      48 CMD Command
      49 D3 Data 3
      50 D2 Data 2
      • The ESP32P4 controls the reset of the ESP8689 through pin 42.

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:

    C

    #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:

    C

    #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

Sh

[ 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

Sh

 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

Sh

[ 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

Sh

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.

Links

  • Repository Repository

Supports all targets

License: Apache-2.0

To add this component to your project, run:

idf.py add-dependency "espressif/esp-extconn^0.3.2"

or download archive

Stats

  • Archive size
    Archive size ~ 313.28 KB
  • Downloaded in total
    Downloaded in total 4.6k times
  • Downloaded this version
    This version: 872 times

Badge

espressif/esp-extconn version: 0.3.2
|