7e8993fc83
* Speed up upload by a factor of 17 Uploads are very slow because of an unnecessary "client.connected()" check in _uploadReadByte(). Here is what happens: client.connected() is called for every byte read. WiFiClient::connected() calls recv(fd(), &dummy, 0, MSG_DONTWAIT); which takes a relatively long time, so the optimized path of returning a buffered byte via client.read() is effectively nullified. Removing the one line changed the upload speed for a 2 MB file (discarding the received data) from 22 KB/sec (before) to 367 KB/sec (after). The change is safe in the face of disconnects because client.read(), when it no longer has buffered data, calls (WiFiClient) fillBuffer(), which calls recv(), so the disconnection will be detected in due course. * Move disconnect check into the timeout loop |
||
---|---|---|
.github | ||
cores/esp32 | ||
docs | ||
libraries | ||
package | ||
tools | ||
variants | ||
.gitignore | ||
.gitmodules | ||
.travis.yml | ||
boards.txt | ||
CMakeLists.txt | ||
component.mk | ||
Kconfig.projbuild | ||
LICENSE.md | ||
Makefile.projbuild | ||
package.json | ||
platform.txt | ||
programmers.txt | ||
README.md |
Arduino core for the ESP32
Need help or have a question? Join the chat at
Contents
- Development Status
- Installation Instructions
- Decoding Exceptions
- Issue/Bug report template
- ESP32Dev Board PINMAP
Development Status
Installation Instructions
- Using Arduino IDE Boards Manager (preferred)
- Using Arduino IDE with the development repository
- Using PlatformIO
- Building with make
- Using as ESP-IDF component
- Using OTAWebUpdater
Decoding exceptions
You can use EspExceptionDecoder to get meaningful call trace.
Issue/Bug report template
Before reporting an issue, make sure you've searched for similar one that was already created. Also make sure to go through all the issues labelled as for reference.
Finally, if you are sure no one else had the issue, follow the ISSUE_TEMPLATE while reporting any issue.
ESP32Dev Board PINMAP
Tip
Sometimes to program ESP32 via serial you must keep GPIO0 LOW during the programming process