Releases: espressif/esptool
Version 5.2.0
✨ New Features
- write-flash: Add fast reflashing option to update changed flash sectors only or skip already flashed content (documentation) (Radim Karniš - 5aad298)
- stub flasher: Make the esp-flasher-stub stub flasher available to use (Radim Karniš - cf9cdb7)
- esptool: Add ESP32-E22 support (Radim Karniš - ce838cd)
- esptool: Add ESP32-S31 support (C.S.M - 3077627)
- esptool: Update chip description for ESP32-C2/ESP8684H (Konstantin Kondrashov - c6f1839)
- python: Support Python v3.14 (Radim Karniš - 8d201c7)
- write-flash: Enable compress and encryption together (Jaroslav Safka - 5d747d8)
- write-flash: Allow encrypted writes using key from the Key Manager (harshal.patil - aa1b04a)
- write-flash: Apply compression only if it reduces the file size (Jaroslav Safka - 188028d)
- SPI flash: Add SPI flash reset when detecting chip (C.S.M - 1b57c61)
- espefuse: Add eFuse definitions for ESP32-H2 revision 1.2 (Konstantin Kondrashov - 08f4cbb)
- espefuse: Add ESP32-E22 support (Radim Karniš - a47e86f)
- espefuse: Enable ECDSA keys burning support for ESP32-H4 (nilesh.kale - a02d858)
- espefuse: Set postpone flag by default (Konstantin Kondrashov - 23e5ec1)
- espefuse: Add eFuse flash fields for ESP32-C2/ESP8684H (Konstantin Kondrashov - b3d4e15)
- espsecure: Add --skip-padding flag to sign-data and verify-signature API (hrushikesh.bhosale - ce5a4ac)
- ESP32-H4: Add stub flasher support (Radim Karniš - cf9cdb7)
- ESP32-C5: Add ECO3 stub flasher support (Radim Karniš - fc0c984)
- ESP32-P4: Add ECO6 stub flasher support (Radim Karniš - 9393921)
- ESP32-P4: Power on SPI flash chip during the connection process on ECO6 (Radim Karniš - 21c802f)
- HSM signing: Use primitive HSM signing mechanisms (harshal.patil - a1a4e95)
- CLI: Add autocomplete for port and baud rate (Peter Dragun - 8363cae)
- port detection: Improve ports sorting when autodetection is used (Jaroslav Burian - ec84fba)
🐛 Bug Fixes
- change_baud: Disable changing baud rate on ESP32-C2 and ESP32-C5 in Secure Download Mode (Radim Karniš - 9286189)
- USB mode detection: Fix USB mode detection on ESP32-C5 and ESP32-C61 (Radim Karniš - 81bdb76)
- ESP32-H4: Fix memory map and disable unsupported watchdog reset (Radim Karniš - 7728772)
- ESP32-C6: Fix ESP32-C6FH8 package detection (Roland Dobai - d7f1adf)
- ESP32-C3: Fix USB->Serial detection on rev1.1 (Jaroslav Safka - 8bc2c50)
- logging: Require custom logger to implement the correct interface (Radim Karniš - deca775)
- logging: Fix warning log for ESP32-S31 (Roland Dobai - 5920030)
- logging: Remove warning keyword from error outputs (Roland Dobai - 30808a4)
- logging: Always flush output in stage mode (Peter Dragun - a5c9090)
- write-flash: Print correct number of bytes and flash offsets when --no-stub (Radim Karniš - e78ab87)
- write-flash: Allow --force and --erase-all to be used together (Radim Karniš - c26e58e)
- write-flash: Fix ESP32-C2 FE key validation (Konstantin Kondrashov - c02d53f)
- write-flash: Fix ESP32 FE key validation (Konstantin Kondrashov - 4f1d212)
- write-flash: Allow bootloader reflash in secure-boot-v2 scheme (Mahavir Jain - 9d0bdd5)
- erase-region: Allow erasing past 4MB in ROM and SDM mode (Radim Karniš - 06794d7)
- image cmds: Print the name of chip in full expanded form (Radim Karniš - 6b6e0f4)
- espefuse: Ensure port is closed when creating commands fails (Peter Dragun - 9646a80)
- espefuse: Fix decoding error in ESP32-C5 summary (Peter Dragun - e49c69a)
- espefuse: Fix calibration eFuses for ESP32-P4 ECO5 (Konstantin Kondrashov - a1ca6c9)
- espefuse: Fix ECDSA key purposes for ESP32-P4 (Konstantin Kondrashov - ae23ab2)
- espsecure: Fix the keyfile arg of the sign-data command by making it optional (harshal.patil - ee35dda)
- espsecure: Allow verifying multiple appended ECDSA signatures (harshal.patil - 9a207b1)
- windows: Limit rich_click version to <1.9.0 (Peter Dragun - fa97591)
Results of checking the release against common anti-virus SW
- esptool-v5.2.0-windows-amd64.zip
- esptool-v5.2.0-macos-arm64.tar.gz
- esptool-v5.2.0-macos-amd64.tar.gz
- esptool-v5.2.0-linux-armv7.tar.gz
- esptool-v5.2.0-linux-amd64.tar.gz
- esptool-v5.2.0-linux-aarch64.tar.gz
The failures are probably false positives. You can mark esptool as safe in your anti-virus SW, or install esptool from source.
Version 4.11.0
✨ New Features
- ESP32-P4: Add ECO6 support (Radim Karniš - 1fe1d8f)
- ESP32-P4: Power on SPI flash chip during the connection process on ECO6 (Radim Karniš - b8dd0a3)
- ESP32-C5: Add ECO3 support (Radim Karniš - 1fe1d8f)
- ESP32-C5: Add chip features (Peter Dragun - 9d91efc)
🐛 Bug Fixes
- change_baud: Disable changing baud rate on ESP32-C2 and ESP32-C5 in Secure Download Mode (Radim Karniš - 0e3adae)
- USB mode detection: Fix USB mode detection on ESP32-C5 and ESP32-C61 (Radim Karniš - 667861b)
- ESP32-C3: Fix USB->Serial detection on rev1.1 (Jaroslav Safka - 3660ff6)
- ESP32-C6: Fix ESP32-C6FH8 package detection (Roland Dobai - 70733c1)
- image-info: Sanitize app and bootloader info of null bytes (Radim Karniš - 8fccdf8)
- espefuse: Fix decoding error in ESP32-C5 summary (Peter Dragun - b3134ed)
- espefuse: Fix calibration eFuses for ESP32-P4 ECO5 (Konstantin Kondrashov - ab8ecae)
- espefuse: Fix ECDSA key purposes for ESP32-P4 (Konstantin Kondrashov - c75a3de)
- espsecure: Allow verifying multiple appended ECDSA signatures (Harshal Patil - 2856164)
Results of checking the release against common anti-virus SW
- esptool-v4.11.0-windows-amd64.zip
- esptool-v4.11.0-macos-arm64.tar.gz
- esptool-v4.11.0-macos-amd64.tar.gz
- esptool-v4.11.0-linux-armv7.tar.gz
- esptool-v4.11.0-linux-amd64.tar.gz
- esptool-v4.11.0-linux-aarch64.tar.gz
The failures are probably false positives. You can mark esptool as safe in your anti-virus SW, or install esptool from source.
Version 4.10.0
New Features
- ESP32-P4: Add ECO5 support (Jaroslav Safka - 2ea1fca, Konstantin Kondrashov - a2f4e66)
- ESP32-C5: Add support for >16 MB flash sizes (Roland Dobai - 0ac477a)
- espefuse: Add custom key purposes for ESP32-C6/C5/P4 (Konstantin Kondrashov - 3996e21)
- espefuse: Support burning ECDSA_384 keys (Konstantin Kondrashov - cc61acf)
- espefuse: Clean up limitation for BLOCK9 usage (Konstantin Kondrashov - dc220df)
- espefuse: Add support for burning 512-bit keys on ESP32-C5 (Konstantin Kondrashov - 599634a)
Bug Fixes
- Use correct error codes for ROM errors (Jaroslav Burian - 529ff4e)
- espefuse: Fix re-connection issue in check-error via USB-Serial/JTAG (Konstantin Kondrashov - af6ff30)
- write_flash: Make write flash memory-layout-independent (Jaroslav Safka - aee68fa)
- elf2image: Handle ELF files with zero program header counts (Tormod Volden - 2e87882)
- espefuse: Disable programming and usage of XTS-AES-256 eFuse key for ESP32-C5 (harshal.patil - 13121d4)
- ESP32-C5: Erase during flashing above 16MB (Jaroslav Burian - a977cdf)
- espsecure: Add support for
python-pkcs119.0+ (Peter Dragun - 223456f)
Results of checking the release against common anti-virus SW
- esptool-v4.10.0-windows-amd64.zip
- esptool-v4.10.0-macos-arm64.tar.gz
- esptool-v4.10.0-macos-amd64.tar.gz
- esptool-v4.10.0-linux-armv7.tar.gz
- esptool-v4.10.0-linux-amd64.tar.gz
- esptool-v4.10.0-linux-aarch64.tar.gz
The failures are probably false positives. You can mark esptool as safe in your anti-virus SW, or install esptool from source.
Version 5.1.0
✨ New Features
- ESP32-P4: Add ECO5 support (Jaroslav Safka - 6c10050, Konstantin Kondrashov - 40f103c)
- ESP32-C5: Add support for >16 MB flash sizes (Roland Dobai - 8e2b94e)
- espefuse: Add custom key purposes for ESP32-C6/C5/P4 (Konstantin Kondrashov - c6ce0bc)
- espefuse: Support burning ECDSA_384 keys (Konstantin Kondrashov - 4a9a3d8)
- espefuse: Clean up limitation for BLOCK9 usage (Konstantin Kondrashov - d63e3db)
- espefuse: Add support for burning 512-bit keys on ESP32-C5 (Konstantin Kondrashov - 468de5c)
🐛 Bug Fixes
- Use correct error codes for ROM errors (Jaroslav Burian - da4346b)
- ESP32-C5: Erase during flashing above 16MB (Jaroslav Burian - d65a24e)
- write_flash: Make write flash memory-layout-independent (Jaroslav Safka - d19413c)
- elf2image: Handle ELF files with zero program header counts (Tormod Volden - d27ce37)
- elf2image: Fix
--pad-to-sizeargument parsing (Peter Dragun - 66a1377) - CLI: Handle deprecated options with "=" before value (Peter Dragun - f05fb62)
- Prevent exiting immediately when being called programmatically (Fu Hanxi - d8ae230)
- espefuse: Update CLI to support
rich-click1.9.0 (Peter Dragun - 2ae5535) - espefuse: Fix re-connection issue in check-error via USB-Serial/JTAG (Konstantin Kondrashov - a160468)
- espefuse: Disable programming and usage of XTS-AES-256 eFuse key for ESP32-C5 (harshal.patil - c85a93d)
- espsecure: Fix printing key digest in signature info (Radim Karniš - 7e53596)
- espsecure: Extract public key version 1 in RAW format (Peter Dragun - 6cfced8)
- espsecure: Allow signing multiple files in one go (Peter Dragun - 0177d61)
- espsecure: Add support for
python-pkcs119.0+ (Peter Dragun - 3ea646f)
Thanks to @tormodvolden, and others for contributing to this release!
Results of checking the release against common anti-virus SW
- esptool-v5.1.0-windows-amd64.zip
- esptool-v5.1.0-macos-arm64.tar.gz
- esptool-v5.1.0-macos-amd64.tar.gz
- esptool-v5.1.0-linux-armv7.tar.gz
- esptool-v5.1.0-linux-amd64.tar.gz
- esptool-v5.1.0-linux-aarch64.tar.gz
The failures are probably false positives. You can mark esptool as safe in your anti-virus SW, or install esptool from source.
Version 5.0.2
🐛 Bug Fixes
- Fix compatibility with Click 8.2.0+ (Peter Dragun - 524825e)
- Fix
--port-filterargument parsing (Peter Dragun - b53a16c) - Fix buffering issues with CP2102 converter causing connection failures (Jaroslav Burian - 5338ea0)
- ESP32-S3: Fix stub flasher execution with active Secure Boot (Radim Karniš - 7ba285b)
- ESP32-C3: Disable flasher stub when Secure Boot is active (Radim Karniš - 1f1ea9a)
- espefuse: Handle error in
burn-efusecommand when no arguments are provided (Peter Dragun - 0f32306)
Results of checking the release against common anti-virus SW
- esptool-v5.0.2-windows-amd64.zip
- esptool-v5.0.2-macos-arm64.tar.gz
- esptool-v5.0.2-macos-amd64.tar.gz
- esptool-v5.0.2-linux-armv7.tar.gz
- esptool-v5.0.2-linux-amd64.tar.gz
- esptool-v5.0.2-linux-aarch64.tar.gz
The failures are probably false positives. You can mark esptool as safe in your anti-virus SW, or install esptool from source.
Version 4.9.1
🐛 Bug Fixes
- Fix buffering issues with CP2102 converter causing connection failures (Jaroslav Burian - 72f6b0d)
- ESP32-S3: Fix stub flasher execution with active Secure Boot (Radim Karniš - a846531)
- ESP32-C3: Disable flasher stub when Secure Boot is active (Radim Karniš - a03158c)
- elf2image: Fix support for ESP32-H4 MMU page size configuration (Jaroslav Burian - 5ae594b)
- elf2image: Validate ELF section types and addresses before processing (Jaroslav Burian - e67ec01)
- elf2image: Handle
PREINIT_ARRAYsection type in ESP32-P4 ELF files properly (Jaroslav Burian - f5404fa) - ESP32-S2: Enabled auto-detection in secure download mode (Jaroslav Burian - 624f1b6)
- ESP32-P4: Enabled
ECO5chip detection (Jaroslav Burian - e4b9675)
Results of checking the release against common anti-virus SW
- esptool-v4.9.1-windows-amd64.zip
- esptool-v4.9.1-macos-arm64.tar.gz
- esptool-v4.9.1-macos-amd64.tar.gz
- esptool-v4.9.1-linux-armv7.tar.gz
- esptool-v4.9.1-linux-amd64.tar.gz
- esptool-v4.9.1-linux-aarch64.tar.gz
The failures are probably false positives. You can mark esptool as safe in your anti-virus SW, or install esptool from source.
Version 5.0.1
🐛 Bug Fixes
- elf2image: Validate ELF section types and addresses before processing (Jaroslav Burian - 97a1546)
- elf2image: Handle
PREINIT_ARRAYsection type in ESP32-P4 ELF files properly (Jaroslav Burian - ec84a75) - elf2image: Fix incorrect logger call (Marek Matej - 637f0e6)
Results of checking the release against common anti-virus SW
- esptool-v5.0.0-windows-amd64.zip
- esptool-v5.0.0-macos-arm64.tar.gz
- esptool-v5.0.0-macos-amd64.tar.gz
- esptool-v5.0.0-linux-armv7.tar.gz
- esptool-v5.0.0-linux-amd64.tar.gz
- esptool-v5.0.0-linux-aarch64.tar.gz
The failures are probably false positives. You can mark esptool as safe in your anti-virus SW, or install esptool from source.
Version 5.0.0
In this major release, esptool was refactored, and some breaking changes were introduced. See the v5 Migration Guide article in the documentation for a detailed list of changes and guidance on adapting existing workflows and scripts to ensure compatibility when updating from v4.*.
See the esptool: Updates about the v5 major release developer portal article for an overview of some of the new features and changes.
🚨 Breaking changes
- Public Python API redesign: Reworked the public API to work as a Python module. Command functions accept explicit parameters (no
argsobject) (Radim Karniš - ba36933) (Peter Dragun - d7da0f8) - CLI overhaul:
esptool,espefuse,espsecurenow useclickfor CLI argument parsing andrich-clickfor nice CLI rendering (Peter Dragun - d40fefa) - All commands / options names have replaced underscores (
_) with dashes (-) (e.g.,flash_id->flash-id). Old names will print deprecation warnings (Peter Dragun - 3cecd6d) - Removed
.pysuffix from scripts (e.g.,esptool.py flash-id->esptool flash-id). Using.pywill print deprecation warnings (Peter Dragun - 635cde1) - Centralised logging: All tools' output now goes through the
EsptoolLoggerclass, allowing easy redirection (Radim Karniš - 1ce02db) - image-info: Deprecated the
--version 1output format (Radim Karniš - 3f625c3) - errors: Errors are now printed to STDERR, added
KeyboardInterrupthandling (Radim Karniš - 0864e17) - make-image: Removed the ESP8266
make-imagecommand in favor of other workflows (Radim Karniš - 955a7c8) - espefuse: Removed
execute-scriptsin favor of the new public API (Peter Dragun - ff72b26) - Removed support for beta chip targets:
ESP32-C5(beta3),ESP32-C6(beta),ESP32-H2(beta1/2),ESP32-S3(beta2)are no longer supported (Radim Karniš - 8f1c206) - Deprecated support for Python 3.7, 3.8, and 3.9 (Peter Dragun - 19f1bee)
- write-flash: Removed the superfluous
--verifyoption (Radim Karniš - dbf3d1c)
✨ New Features
- logging: Added collapsible output stages and ASCII progress bars (Radim Karniš - f3cf107)
- trace: Updated
--tracewith more info and more readable formatting (Radim Karniš - 0beee77) - verbosity: Allowed setting silent or verbose output levels (Radim Karniš - 90e3770)
- cmds: Allowed commands to output bytes, as well as write to a file (Radim Karniš - 0153b79)
- cmds: Allowed inputs of commands to be file paths, bytes, or file-like objects (Radim Karniš - 46a9e31)
- flash_attach: Encapsulated logic for flash attaching and configuration (Radim Karniš - 6e959ef)
- espefuse: Added eFuse calculation fields for
ESP32-C5(Konstantin Kondrashov - 9104038) - espefuse: Added 3-bit field for wafer major version in
ESP32-P4(Konstantin Kondrashov - c102510) - espsecure: Dropped
ecdsamodule, usingcryptographyinstead (Radim Karniš - e132f6f) - targets: Updated chip features lists with more info (Radim Karniš - 3c776aa)
- Added support for Adesto flash chips (Jaroslav Burian - 0b56f85)
- Added support for
k,Msuffix for flash sizes (Peter Dragun - 6f0d779)
🐛 Bug Fixes
- write-flash: Detect more cases of unresponsive flash, fixed failing
flash_sizecheck (Radim Karniš - e6bfc3b) - autodetection: Removed the
Unsupported detection protocolstage (Radim Karniš - 05553a4) - elf2image: Fixed RAM app generation when SHA256 offset is not specified (Jaroslav Burian - 6f8ff39)
- image-info: Sanitized app and bootloader info of null bytes (Radim Karniš - 8016455)
- logging: Avoid crashes when flushing if
sys.stdoutis not available (Radim Karniš - 5176b67) - ESP32-S2: Enabled auto-detection in secure download mode (Jaroslav Burian - c2f5d21)
- ESP32-P4: Enabled
ECO5chip detection (Jaroslav Burian - 0b3460f) - elf2image: Multiple fixes from 3rd party frameworks (Sylvio Alves - cbd4e9b)
- read-flash: Added timeout to to avoid infinite loops (Peter Dragun - f26a7bb)
- espefuse: Close data files after reading the data (Stevan Stevic - 807d02b)
Thanks to @stevanStevic, @Jason2866, and others for contributing to this release!
Results of checking the release against common anti-virus SW
- esptool-v5.0.0-windows-amd64.zip
- esptool-v5.0.0-macos-arm64.tar.gz
- esptool-v5.0.0-macos-amd64.tar.gz
- esptool-v5.0.0-linux-armv7.tar.gz
- esptool-v5.0.0-linux-amd64.tar.gz
- esptool-v5.0.0-linux-aarch64.tar.gz
The failures are probably false positives. You can mark esptool as safe in your anti-virus SW, or install esptool from source.
Version 4.9.0
New Features
- ESP32-H21: Added full support
- ESP32-H4: Added full support
- ESP32-P4: Enabled USB-OTG in flasher stub
- ESP32-P4: Added support for >16MB flash sizes in flasher stub
- ESP32-S3: Added support for >16MB encrypted writes in flasher stub
- chip_type_verification: Enabled in secure download mode, stopped using magic numbers
- watchdog_reset: Added a new
watchdog_resetoption working even in USB modes - erase_region: Enabled erasing in ROM bootloader and secure download mode
- Added information about the currently used USB mode during chip connection
- image_info: Extended the app description info with new segments
- esp_rfc2217: Improved the logger message format
- Added the option to filter connections based on the serial number
- hard_reset: Added support for custom hard reset sequence configuration
- Added support for Python 3.13
- espefuse: Added support for eFuses for
ESP32-C5ECO2 - espefuse: Added support for eFuses for
ESP32-C61ECO3 - espsecure: Improved error messages in
encrypt_flash_data()anddecrypt_flash_data() - espefuse: Added support for different eFuse table versions for
ESP32-H2 - espefuse: Added 3 bit for
PSRAM_CAPefuse field - espefuse: Added API for getting block and wafer versions
- espefuse: Added ADC calibration data for
ESP32-C61,ESP32-C5, andESP32-P4
Bug Fixes
- stub_flasher: Fixed failing
ESP32-C5ECO2flash writes - stub_flasher: Fixed USB-Serial/JTAG mode on
ESP32-C5ECO2andESP32-C61ECO3 - write_flash: Detect more cases of unresponsive flash, fixed failing flash_size check
- write_flash: Skipped
flash_sizechecks if we can't read flash size - espefuse: Fixed output messages in
set_flash_voltage - espefuse: Corrected
JTAG_SEL_ENABLEtoGPIO34strapping pin onESP32-P4 - ESP32-C5: Fixed bootloader address
- ESP32-H21: Fixed eFuse base address
- IntelHex: Do not use padding for merged IntelHex files
- elf2image: Fixed for RAM app when SHA256 offset is not specified
- elf2image: Fixed support for
--flash-mmu-page-configfor all chips - elf2image: Try to correct MMU page size if not specified, print correctly in error messages
- tests: Expect the correct module name for Python 3.14 argparse
- Fixed closing port when connection fails
- image_info: Hidden missing app info based on IDF version
- save_segment: Added segment length check, the same as the bootloader does
- image_info: Prevented reading app description in invalid cases
- esp_rfc2217: Fixed keyboard interrupt on Windows
- detect_chip: Fixed to select the correct loader before further operations to avoid silent failures
- usb_resets: Fixed resetting in USB-OTG and USB-Serial/JTAG modes
Thanks to @chromalock, @befeleme, and others for contributing to this release!
Results of checking the release against common anti-virus SW
- esptool-v4.9.0-windows-amd64.zip
- esptool-v4.9.0-macos-arm64.tar.gz
- esptool-v4.9.0-macos-amd64.tar.gz
- esptool-v4.9.0-linux-armv7.tar.gz
- esptool-v4.9.0-linux-amd64.tar.gz
- esptool-v4.9.0-linux-aarch64.tar.gz
The failures are probably false positives. You can mark esptool as safe in your anti-virus SW, or install esptool from source.
Version 4.8.1
Bug Fixes
- packaging: Fixed failing esptool imports on Windows (#1011)
- packaging: Fixed unwanted Python scripts being included in the distribution (#1012)
- ESP32-C2: Fixed ECO4 magic number
Thanks to @befeleme and @matthuisman for contributing to this release!
Results of checking the release against common anti-virus SW
- esptool-v4.8.1-win64.zip
- esptool-v4.8.1-macos.zip
- esptool-v4.8.1-linux-arm64.zip
- esptool-v4.8.1-linux-arm32.zip
- esptool-v4.8.1-linux-amd64.zip
The failures are probably false positives. You can mark esptool as safe in your anti-virus SW, or install esptool from source.