Improving Wi-Fi file transfer
fjmsouza opened this issue · 7 comments
Board
ESP32 WROOM 32
Operating System
Linux
Hi,
I need to increase the wifi performance, but where the needed registers?
I was looking for edit something as (I'm not sure):
CONFIG_ESP32_WIFI_DYNAMIC_RX_BUFFER_NUM
CONFIG_ESP32_WIFI_DYNAMIC_TX_BUFFER_NUM
CONFIG_ESP32_WIFI_TX_BA_WIN
CONFIG_ESP32_WIFI_RX_BA_WIN
CONFIG_ESP32_WIFI_IRAM_OPT
CONFIG_ESP32_WIFI_RX_IRAM_OPT
CONFIG_TCPIP_RECVMBOX_SIZE
CONFIG_LWIP_IRAM_OPTIMIZATION
CONFIG_TCP_SND_BUF_DEFAULT
CONFIG_TCP_WND_DEFAULT
CONFIG_TCP_RECVMBOX_SIZE
But.:
What really found in config_editor.py?
CONFIG_ESP_WIFI_STATIC_RX_BUFFER_NUM
CONFIG_ESP_WIFI_STATIC_TX_BUFFER_NUM
CONFIG_ESP_WIFI_IRAM_OPT
CONFIG_ESP_WIFI_RX_IRAM_OPT
and, in the end of "compile static libraries" the result sdkconfig the searched registers reappear...
Please, can you let clear:
- WHERE are the right registers?
- WHERE put the created folder ("tools")?
- and how to optimize the compilation time?
Thank you for your attention.
inside of /home/user/.arduino15/packages/esp32/hardware/esp32/2.0.17/tools/sdk/
a lot of "No such file or directory".
first you need the release/v4.4 branch of this repository, not master. Then edit configs/sdkconfig.common and add the values that you need. After compilation is done, overwrite /home/user/.arduino15/packages/esp32/hardware/esp32/2.0.17/tools/sdk/ with the contents of out/tools/sdk/. You would also need to overwrite platform.txt in the core with the one in the output folder.
Thank you, @me-no-dev , I hope comeback to reveal my progress
@me-no-dev , I realized that would be configs/defconfig.common, ok?
My challenge:
esp32(as a client) send a file(40MB) to another esp32(as a server), a loop 5KB aftter 5KB at a http.POST(5KB) until finish this 40MB.
But...40MB transfer is taken 7 minutes. A lot o time!!!
How to deacrease this time?
Obs.: I tried to increase this post to 10KB, but the server reset with a "load phroibted".
There are registers in defconfig.common to achieve this?
I'd apreciate your help.
@fjmsouza I think it is not a low level problem, which needs changes here. Probably a bottleneck "somewhere" in Arduino code.
Thank you, @Jason2866!
Me too.
Can anyone give an example with another approach?
The main proposal is a server downloading huge files with better performance.
In the meantime, looking at examples like UploadHugeFile.ino