Version 4.0
Starting from v4.0.0, esptool adopts the semantic versioning specification, please read the related "Versions" esptool documentation page when deciding which version to use.
Breaking changes
- Public API has been defined by limiting access to internals that have been refactored into multiple source files. Changing or refactoring these limited internals won't be considered a breaking change in future releases. Migration is easy and self-explanatory (you will get an import error if something has moved) and is required only in projects that import
esptooldirectly. - If active security features are detected, the default behavior changes to prevent unintentional bricking (#699):
- If flash encryption is enabled,
erase_flashanderase_regioncannot be executed. - If secure boot is enabled,
erase_flash,erase_regionandwrite_flashoperations cannot be performed (write_flashis just restricted to protect the bootloader region0x0000->0x8000). - An override flag
--forcelets the users execute these operations anyways.
- If flash encryption is enabled,
- Flash parameters in an image header can now be changed only when no SHA256 digest is appended (espressif/esp-idf#8798).
- Python versions 2.7, 3.4, 3.5, and 3.6 have been deprecated, the code is now Python 3-only compatible. Releases
v4and later can't be installed fromPyPIon these deprecated Python versions. - The
ESP8684alias has been removed,ESP32-C2has to be used. - Megabit flash sizes have been deprecated, use megabyte units from now on.
New Features
- Added stub flasher support for
ESP32-C2ECO1, deprecatedECO0stub (can still be used with ROM).
espefuse.py
- Added a new package -
ESP32-D0WDR2-V3
Bug Fixes
- Fixed
ESP32-S3USB-OTG compressed flashing - Fixed division by zero error when reading flash (#729)
Miscellaneous Changes
- Black code formatting has been adopted in the
esptoolproject. Contributions will be automatically formatted in a compatible way when following the contributions guide.
Thanks to everyone who contributed to this release.