Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/espressif/esp-extconn
https://github.com/espressif/esp-extconn
Last synced: 2 days ago
JSON representation
- Host: GitHub
- URL: https://github.com/espressif/esp-extconn
- Owner: espressif
- License: apache-2.0
- Created: 2024-04-26T09:48:01.000Z (5 months ago)
- Default Branch: master
- Last Pushed: 2024-08-02T03:21:17.000Z (about 2 months ago)
- Last Synced: 2024-09-18T16:00:08.919Z (8 days ago)
- Language: C
- Size: 323 KB
- Stars: 6
- Watchers: 5
- Forks: 3
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- License: LICENSE.txt
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.**