Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/espressif/esp-extconn


https://github.com/espressif/esp-extconn

Last synced: 2 days ago
JSON representation

Awesome Lists containing this project

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_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:
```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.**