Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Improving Wi-Fi file transfer #199

Open
fjmsouza opened this issue Aug 5, 2024 · 7 comments
Open

Improving Wi-Fi file transfer #199

fjmsouza opened this issue Aug 5, 2024 · 7 comments

Comments

@fjmsouza
Copy link

fjmsouza commented Aug 5, 2024

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.

@fjmsouza
Copy link
Author

fjmsouza commented Aug 5, 2024

inside of /home/user/.arduino15/packages/esp32/hardware/esp32/2.0.17/tools/sdk/
a lot of "No such file or directory".

@me-no-dev
Copy link
Member

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.

@fjmsouza
Copy link
Author

fjmsouza commented Aug 5, 2024

Thank you, @me-no-dev , I hope comeback to reveal my progress

@fjmsouza
Copy link
Author

fjmsouza commented Aug 5, 2024

@me-no-dev , I realized that would be configs/defconfig.common, ok?

@fjmsouza
Copy link
Author

fjmsouza commented Aug 5, 2024

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.

@Jason2866
Copy link
Contributor

@fjmsouza I think it is not a low level problem, which needs changes here. Probably a bottleneck "somewhere" in Arduino code.

@fjmsouza
Copy link
Author

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

3 participants