New Features
- Support for ESP32-C3 SoC has been added
- Added
--encrypt-files
option to specify which files need encryption before flashing. - Added
--use_segments
option for elf2image to use segments instead of sections to generate the image. (#546) - Improved the
write_flash
timeout calculation and status message. - Support for detecting ESP8285 versions -N08, -N16, -H08, and -H16 has been added.
- Added support for all
write_reg
command forms (including delay and mask parameters) to flasher stub. - Added
merge_bin
command to combine binary files on host (#254, #568) - Extended the
--min-rev
argument ofelf2image
to work on all chips apart from ESP8266. - Added diagnostic warnings about the memory regions needing to be erased during a flash write (#306)
- Added
--after no_reset_stub
option to keep the flasher stub running and allow its repeated usage. - Added support for the USB-JTAG-Serial peripheral of ESP32-C3.
espsecure.py
- Added custom command-line argument to allow calling from other Python scripts.
- Added
--aes-xts
option to encrypt/decrypt flash data files with AES-XTS algorithm on the S2 and C3. - Fixed handling of files to forbid empty output and re-writing input.
espefuse.py
- Added custom command-line argument to allow calling from other Python scripts.
- Added security measures to prevent burning custom multicast MAC address. (#472)
- Fixed errors when burning and read-protecting an efuse at the same time (#584)
- Fixed burning of SPI pins configuration efuses (#216)
Internal features
These features are intended for use inside Espressif:
- Support for ESP32-S3-beta3 & ESP32-C6-beta have been added. These SoCs are not generally available, so they are unsupported in this release. Official support will be added in a later esptool release.
- Support for 32-bit addressing to enable 32/64MB flash memory chips on the S3.
Bug Fixes
- Fixed error outputs when installing from pip.
- Increased the timeout for writing to flash to improve stability (#577, #533)
- Fixed failing
dump_mem
overall bytes read message. - Allowed the
write_mem
mask argument to be optional to match with its usage example on Wiki. - Ensured
expand_file_arguments
gets called when using custom command-line arguments. (#400) - Fixed SecureBoot v2 public key extraction (#623)
Miscellaneous Changes
- Decomposed port detection logic.
- Added flushing after each command before waiting for a reply.
- Made it easier to use esptool.py as a component by permitting passing an already formed esp object to main() (#402)
- Added function to merge adjacent sections in
elf2image
for the use case of linker scripts that have a large number of sections. - Decoupled esptool reset logic for easier monkey-patching (#508)
Thanks to @Skallwar, @eykamp, @gnought, @middelink and others for contributing to this release.