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
esptool
directly. - If active security features are detected, the default behavior changes to prevent unintentional bricking (#699):
- If flash encryption is enabled,
erase_flash
anderase_region
cannot be executed. - If secure boot is enabled,
erase_flash
,erase_region
andwrite_flash
operations cannot be performed (write_flash
is just restricted to protect the bootloader region0x0000
->0x8000
). - An override flag
--force
lets 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
v4
and later can't be installed fromPyPI
on these deprecated Python versions. - The
ESP8684
alias has been removed,ESP32-C2
has to be used. - Megabit flash sizes have been deprecated, use megabyte units from now on.
New Features
- Added stub flasher support for
ESP32-C2
ECO1
, deprecatedECO0
stub (can still be used with ROM).
espefuse.py
- Added a new package -
ESP32-D0WDR2-V3
Bug Fixes
- Fixed
ESP32-S3
USB-OTG compressed flashing - Fixed division by zero error when reading flash (#729)
Miscellaneous Changes
- Black code formatting has been adopted in the
esptool
project. Contributions will be automatically formatted in a compatible way when following the contributions guide.
Thanks to everyone who contributed to this release.