github espressif/esptool v5.0.0
Version 5.0.0

latest releases: v4.10.dev2, v5.1.dev1, v4.10.dev1...
2 months ago

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 args object) (Radim Karniš - ba36933) (Peter Dragun - d7da0f8)
  • CLI overhaul: esptool, espefuse, espsecure now use click for CLI argument parsing and rich-click for 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 .py suffix from scripts (e.g., esptool.py flash-id -> esptool flash-id). Using .py will print deprecation warnings (Peter Dragun - 635cde1)
  • Centralised logging: All tools' output now goes through the EsptoolLogger class, allowing easy redirection (Radim Karniš - 1ce02db)
  • image-info: Deprecated the --version 1 output format (Radim Karniš - 3f625c3)
  • errors: Errors are now printed to STDERR, added KeyboardInterrupt handling (Radim Karniš - 0864e17)
  • make-image: Removed the ESP8266 make-image command in favor of other workflows (Radim Karniš - 955a7c8)
  • espefuse: Removed execute-scripts in 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 --verify option (Radim Karniš - dbf3d1c)

✨ New Features

  • logging: Added collapsible output stages and ASCII progress bars (Radim Karniš - f3cf107)
  • trace: Updated --trace with 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 ecdsa module, using cryptography instead (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, M suffix for flash sizes (Peter Dragun - 6f0d779)

🐛 Bug Fixes

  • write-flash: Detect more cases of unresponsive flash, fixed failing flash_size check (Radim Karniš - e6bfc3b)
  • autodetection: Removed the Unsupported detection protocol stage (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.stdout is not available (Radim Karniš - 5176b67)
  • ESP32-S2: Enabled auto-detection in secure download mode (Jaroslav Burian - c2f5d21)
  • ESP32-P4: Enabled ECO5 chip 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

The failures are probably false positives. You can mark esptool as safe in your anti-virus SW, or install esptool from source.

Don't miss a new esptool release

NewReleases is sending notifications on new releases.