When performing an "OTA" upload via a network port, the user may configure the sketch to require
an authentication password.
Arduino IDE presents a "Configure and Upload" dialog when the user triggers an upload to a network
port. The user can provide the authentication password via the field in that dialog. The
`upload.field.password` platform property is then set to the value provided by the user.
The platform uses the `tools.esp_ota.upload.pattern` command template to pass this value to the
espota upload tool via the tool's `--auth` flag.
Since the value of the `upload.field.password` platform property is set by the user via a free text
field, it might contain any characters. Since some characters (e.g., spaces) can be problematic in
a command line, it is essential to wrap it in quotes. This was done for the Arduino IDE 1.x variant
of the command template, but that was not ported when the pluggable discovery variant of the
command pattern was defined. This causes a spurious failure of the OTA upload process if the user
provides an authentication password that contains problematic characters.
For example:
```
"C:\Users\per\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.4\tools\espota.exe" \
-r -i 192.168.254.145 \
-p 3232 --auth=foo bar \
-f "C:\Users\per\AppData\Local\Temp\arduino\sketches\E2D807FABB134A2A60A1B9C7D14FE02B/11973.ino.bin"
usage: espota.exe [-h] [-i ESP_IP] [-I HOST_IP] [-p ESP_PORT] [-P HOST_PORT]
[-a AUTH] [-f FILE] [-s] [-d] [-r] [-t TIMEOUT]
espota.exe: error: unrecognized arguments: bar
Failed uploading: uploading error: exit status 2
```
This is prevented by wrapping the `--auth` flag in quotes:
```
"C:\Users\per\AppData\Local\Arduino15\packages\esp32\hardware\esp32\3.0.4\tools\espota.exe" \
a-r -i 192.168.254.145 \
-p 3232 "--auth=foo bar" \
-f "C:\Users\per\AppData\Local\Temp\arduino\sketches\E2D807FABB134A2A60A1B9C7D14FE02B/11973.ino.bin"
Sending invitation to 192.168.254.145
Authenticating...OK
Uploading: [ ] 0%
```
|
||
|---|---|---|
| .github | ||
| cores/esp32 | ||
| docs | ||
| idf_component_examples/hello_world | ||
| libraries | ||
| package | ||
| tests | ||
| tools | ||
| variants | ||
| .clang-format | ||
| .codespellrc | ||
| .editorconfig | ||
| .flake8 | ||
| .gitignore | ||
| .gitmodules | ||
| .pre-commit-config.yaml | ||
| .prettierignore | ||
| .readthedocs.yaml | ||
| .vale.ini | ||
| boards.txt | ||
| CMakeLists.txt | ||
| CODE_OF_CONDUCT.md | ||
| idf_component.yml | ||
| Kconfig.projbuild | ||
| LICENSE.md | ||
| package.json | ||
| platform.txt | ||
| programmers.txt | ||
| README.md | ||
Arduino core for the ESP32, ESP32-S2, ESP32-S3, ESP32-C3, ESP32-C6 and ESP32-H2
Need help or have a question? Join the chat at Gitter or open a new Discussion
Contents
- Development Status
- Development Planning
- Documentation
- Supported Chips
- Decoding exceptions
- Issue/Bug report template
- Contributing
Development Status
Development Planning
Our Development is fully tracked on this public Roadmap 🎉
For even more information you can join our Monthly Community Meetings 🔔.
Documentation
You can use the Arduino-ESP32 Online Documentation to get all information about this project.
Migration guide from version 2.x to 3.x is available here.
APIs compatibility with ESP8266 and Arduino-CORE (Arduino.cc) is explained here.
- Getting Started
- Installing (Windows, Linux and macOS)
- Libraries
- Arduino as an ESP-IDF component
- FAQ
- Troubleshooting
Supported Chips
Here are the ESP32 series supported by the Arduino-ESP32 project:
| SoC | Stable | Development | Datasheet |
|---|---|---|---|
| ESP32 | Yes | Yes | ESP32 |
| ESP32-S2 | Yes | Yes | ESP32-S2 |
| ESP32-C3 | Yes | Yes | ESP32-C3 |
| ESP32-S3 | Yes | Yes | ESP32-S3 |
| ESP32-C6 | Yes | Yes | ESP32-C6 |
| ESP32-H2 | Yes | Yes | ESP32-H2 |
Note
ESP32-C2 is also supported by Arduino-ESP32 but requires rebuilding the static libraries. This is not trivial and requires a good understanding of the ESP-IDF build system. For more information, see the Lib Builder documentation.
For more details visit the supported chips documentation page.
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 labeled as Type: For reference.
Finally, if you are sure no one else had the issue, follow the Issue template or Feature request template while reporting any new Issue.
External libraries compilation test
We have set-up CI testing for external libraries for ESP32 Arduino core. You can check test results in the file LIBRARIES_TEST. For more information and how to add your library to the test see external library testing in the documentation.
Contributing
We welcome contributions to the Arduino ESP32 project!
See contributing in the documentation for more information on how to contribute to the project.
We would like to have this repository in a polite and friendly atmosphere, so please be kind and respectful to others. For more details, look at Code of Conduct.