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.