Fu Hanxi c0568611dd docs: changes docs supported targets tables 3 жил өмнө
..
main 766aa57084 Build & config: Remove leftover files from the unsupported "make" build system 4 жил өмнө
CMakeLists.txt facab8c5a7 tools: Increase the minimal supported CMake version to 3.16 3 жил өмнө
README.md c0568611dd docs: changes docs supported targets tables 3 жил өмнө
get_running_partition.py 3e08f355b6 tools: Use esptool v4 3 жил өмнө
otatool_example.py 0146f258d7 style: format python files with isort and double-quote-string-fixer 5 жил өмнө
otatool_example.sh 66fb5a29bb Whitespace: Automated whitespace fixes (large commit) 5 жил өмнө
pytest_otatool.py f4a1f56c08 ci: remove unsupported test markers 3 жил өмнө
sdkconfig.defaults b926764385 examples: add otatool and parttool examples 7 жил өмнө

README.md

Supported Targets ESP32 ESP32-C3 ESP32-S2 ESP32-S3

OTA Tool Example

This example demonstrates common operations the OTA tool otatool.py allows the user to perform:

  • reading, writing and erasing OTA partitions,
  • switching boot partitions, and
  • switching to factory partition.

Users taking a look at this example should focus on the contents of the Python script otatool_example.py or shell script otatool_example.sh. The scripts contain programmatic invocation of the tool's functions via the Python API and command-line interface, respectively. Note that on Windows, the shell script example requires a POSIX-compatible environment via MSYS2/Git Bash/WSL etc.

The built application in this example outputs the currently running partition, whose output is used to verify if the tool switched OTA partitions succesfully. The built application binary is written to all OTA partitions at the start of the example to be able to determine the running partition for all switches performed.

How to use example

Build and Flash

Before running either of the example scripts, it is necessary to build and flash the firmware using the usual means:

idf.py build flash

Running otatool_example.py

The example can be executed by running the script otatool_example.py or otatool_example.sh.

Python script:

python otatool_example.py

Shell script:

./otatool_example.sh

The script searches for valid target devices connected to the host and performs the operations on the first one it finds. This could present problems if there are multiple viable target devices attached to the host. To perform the operations on a specific device, specify the port it is attached to during script invocation ("/dev/ttyUSB2" for example):

Python script:

python otatool_example.py --port /dev/ttyUSB2

Shell script:

./otatool_example.sh /dev/ttyUSB2

Example output

Running the script produces the following output:

Writing factory firmware to ota_0
Writing factory firmware to ota_1
Switching to factory app
Switching to OTA slot 0
Switching to OTA slot 1 (twice in a row)
Switching to OTA slot 0 (twice in a row)
Switching to factory app
Switching to OTA slot 1

Partition tool operations performed successfully