./comms/py-esptool, Firmware tool for ESP8266/ESP32

[ CVSweb ] [ Homepage ] [ RSS ] [ Required by ] [ Add to tracker ]


Branch: CURRENT, Version: 5.1.0, Package name: py313-esptool-5.1.0, Maintainer: gdt

This package contains a utility to load firmware into ESP8266 and ESP32 chips.


Required to run:
[comms/py-serial] [security/py-ecdsa] [security/py-cryptography] [devel/py-bitstring] [converters/py-reedsolo] [lang/python310]

Master sites:

Filesize: 374.928 KB

Version history: (Expand)


CVS history: (Expand)


   2025-12-15 12:07:49 by =?UTF-8?B?RnLDqWTDqXJpYyBGYXViZXJ0ZWF1?= | Files touched by this commit (4)
Log message:
py-esptool: Update to 5.1.0

upstream changes:
-----------------
v5.1.0 (2025-09-15)
New Features
  * espefuse: Support ESP32-P4 ECO5 (v3.0) (Konstantin Kondrashov - 40f103c)
  * esp32p4: Add support for ESP32-P4.ECO5 (Jaroslav Safka - 6c10050)
  * esp32c5: Add support for >16 MB flash sizes (Roland Dobai - 8e2b94e)
  * espefuse: Add custom key purposes for ESP32C6/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: Adds support for burning 512-bit keys for C5 (Konstantin \ 
Kondrashov - 468de5c)
Bug Fixes
  * espefuse: Update CLI to support rich-click 1.9.0 (Peter Dragun - 2ae5535)
  * espsecure: Fix printing key digest in signature info (Radim Karniš - 7e53596)
  * espefuse: Fixes re-connection issue in check-error via UJS port (Konstantin \ 
Kondrashov - a160468)
  * write_flash: Make write flash mem independent (Jaroslav Safka - d19413c)
  * elf2image: Handle ELF files with zero program header counts (Tormod Volden - \ 
d27ce37)
  * espsecure: Extract public key version 1 in RAW format (Peter Dragun - 6cfced8)
  * espsecure: Allow signing multiple files in one go (Peter Dragun - 0177d61)
  * elf2image: Fix --pad-to-size argument parsing (Peter Dragun - 66a1377)
  * espefuse: Disable programming and usage of XTS-AES-256 efuse key for \ 
ESP32-C5 (harshal.patil - c85a93d)
  * esp32c5: Erase during flashing above 16MB (Jaroslav Burian - d65a24e)
  * espsecure: Add support for python-pkcs11 9.0+ (Peter Dragun - 3ea646f)
  * Use correct error codes for ROM errors (Jaroslav Burian - da4346b)
  * Handle deprecated options with "=" before value (Peter Dragun - \ 
f05fb62)
  * stop exit 0 when being called programmatically (Fu Hanxi - d8ae230)
Documentation
  * set_flash_voltage: Disable for non-related chips (Radim Karniš - cd2c98e)
  * bump up esp_docs to 2.1 (Jaroslav Safka - bb8cd9b)
  * Add chip type detection explanation (Jaroslav Safka - 528f605)
Code Refactoring
  * set up and apply pyupgrade ruff rules (copilot-swe-agent[bot] - 206970a)

v5.0.2 (2025-07-30)
Bug Fixes
  * esp32-c3: Disable flasher stub when Secure Boot is active (Radim Karniš - \ 
1f1ea9a)
  * esp32-s3: Allow stub flasher execution with active Secure Boot (Radim \ 
Karniš - 7ba285b)
  * espefuse: Handle error in burn-efuse command when no arguments are provided \ 
(Peter Dragun - 0f32306)
  * Fix buffering issues with CP2102 converter causing connection failures \ 
(Jaroslav Burian - 5338ea0)
  * Fix compatibility with Click 8.2.0+ (Peter Dragun - 524825e)
  * Fix --port-filter argument parsing (Peter Dragun - b53a16c)
Code Refactoring
  * elf2image: Use common MMU page size configuration function for ESP32-H4 \ 
(Jaroslav Burian - 977ff44)
   2025-10-09 10:02:00 by Thomas Klausner | Files touched by this commit (35)
Log message:
*: remove more references to (removed) Python 3.9
   2025-07-22 21:13:19 by Greg Troxel | Files touched by this commit (4) | Package updated
Log message:
py-esptool: Update to 5.0.1

Packaged in wip by Frédéric Fauberteau

pkgsrc changes:
---------------
  * Adjust dependencies per upstream changes:
    - require modern py-cryptography, dropping py-ecdsa
    - add click and rich-click, dropping argcomplete
  * Add patch to use up-to-date click (as found in pkgsrc), vs
    upstream's expectation of old click.
  * Adjust python versions; upstream requires >= 3.10

upstream changes:
-----------------
v5.0.1 (2025-07-15)
Bug Fixes
  * elf2image: validate ELF section types and addresses before processing
    (Jaroslav Burian - 97a1546)
  * elf2image: handle PREINIT_ARRAY section type in ESP32-P4 elf file properly
    (Jaroslav Burian - ec84a75)
  * elf2image: Fix incorrect logger call (Marek Matej - 637f0e6)

v5.0.0 (2025-07-02)
Breaking changes
  * The .py suffix is deprecated for the following scripts:
    o esptool
    o espefuse
    o espsecure
    o esp_rfc2217_server (Peter Dragun - 635cde1)
  * execute-scripts command is removed (Peter Dragun - ff72b26)
New Features
  * espefuse: Use the esptool logger, more concise messages (Radim Karniš - 983338f)
  * espefuse: Replace execute-scripts with public API (Peter Dragun - ff72b26)
  * espefuse: Add public API for espefuse (Peter Dragun - d7da0f8)
  * espefuse: Rename all commands to use dashes and add tests for deprecated \ 
commands (Peter Dragun - ade3088)
  * espefuse: Add support for chaining commands with click parser (Peter Dragun \ 
- 0a2ea69)
  * espefuse: Refactor CLI and use click for parsing arguments (Peter Dragun - \ 
aa80001)
  * espefuse: Adds efuse calculation fields for ESP32-C5 (Konstantin Kondrashov \ 
- 9104038)
  * espefuse: Adds 3-bit field for wafer major version in ESP32-P4 (Konstantin \ 
Kondrashov - c102510)
  * verbosity: Allow setting silent or verbose output levels (Radim Karniš - \ 
90e3770)
  * efuse: Adds efuses for ESP32-C61 ECO3 (Konstantin Kondrashov - 6146410)
  * espefuse: Support efuse for ESP32-C5 ECO2 (v1.0) (Konstantin Kondrashov - \ 
3726726)
  * espsecure: Use esptool logger, unify output format of messages (Radim \ 
Karniš - 905249c)
  * stub_flasher: Support for >16MB flash on P4 and >16MB encrypted writes \ 
on S3 (Radim Karniš - 4e6803e)
  * espsecure: Drop ecdsa module, use cryptography instead (Radim Karniš - e132f6f)
  * espsecure: Unify all commands and options to use dash instead of underscore \ 
(Peter Dragun - 36325fd)
  * espsecure: Use rich click for CLI parsing (Peter Dragun - 9c7ddc1)
  * targets: Update chip features lists with more info (Radim Karniš - 3c776aa)
  * logging: Add collapsible output stages and ASCII progress bars (Radim \ 
Karniš - f3cf107)
  * trace: Update --trace with more info and more readable formatting (Radim \ 
Karniš - 0beee77)
  * cli: Commands and options use dashes instead of underscores for uniformity \ 
(Peter Dragun - 3cecd6d)
  * cmds: Expand input of all functions to file paths, bytes, or file-like \ 
objects (Radim Karniš - 46a9e31)
  * cmds: Allow all functions to both return bytes and write to files (Radim \ 
Karniš - 03b84a1)
  * cmds: Polish the public API, unify arg names, pack some args (Radim Karniš \ 
- 37a13a9)
  * cmds: Encapsulate logic for running the stub flasher in run_stub (Radim \ 
Karniš - 063d9d5)
  * cli: Add click-based CLI interface (Peter Dragun - d40fefa)
  * cmds: Allow commands to output bytes, as well as write to a file (Radim \ 
Karniš - 0153b79)
  * cmds: Rework the public API to work as a Python module (Radim Karniš - ba36933)
  * flash_attach: Encapsulate logic for flash attaching and configuration (Radim \ 
Karniš - 6e959ef)
  * esp32h4: update the ESP32H4StubLoader (Chen Jichang - f7c78f8)
  * espefuse: Updates esp32h4 efuse table and fixes tests (Konstantin Kondrashov \ 
- 3da8c57)
  * esp32h4: add ESP32H4 esptool support (Chen Jichang - bcf5c6e)
  * esp32h21: Add Microsoft UF2 family ID (Radim Karniš - cb0d334)
  * errors: Print errors to STDERR, catch KeyboardInterrupt (Radim Karniš - 0864e17)
  * write_flash: Remove the superfluous --verify option (Radim Karniš - dbf3d1c)
  * logger: Add a custom logger, allow output redirection (Radim Karniš - 1ce02db)
  * image_info: Deprecate the --version 1 output format (Radim Karniš - 3f625c3)
  * Remove .py suffix from scripts (Peter Dragun - 635cde1)
  * detect flash size of Adesto flash chips (Jaroslav Burian - 0b56f85)
  * Add support for k, M suffix for flash size (Peter Dragun - 6f0d779)
  * Rename reset modes to use dash instead of underscore (Peter Dragun - 851919f)
Removals
  * make_image: Remove the make_image command in favor of other workflows (Radim \ 
Karniš - 955a7c8)
  * beta_targets: Removed support for beta chip targets (Radim Karniš - 8f1c206)
  * Deprecate Python versions 3.7, 3.8 and 3.9 (Peter Dragun - 19f1bee)

v4.9.0 (2025-06-19)
New Features
  * espefuse: Add eFuses for ESP32-C61 ECO3 (Radim Karniš - 98688ab)
  * espefuse: Support efuse for ESP32-C5 ECO2 (v1.0) (Konstantin Kondrashov - \ 
ce16054)
  * stub_flasher: Support for >16MB flash on P4 and >16MB encrypted writes \ 
on S3 (Radim Karniš - 0110514)
  * espefuse: Updates esp32h4 efuse table and fixes tests (Konstantin Kondrashov \ 
- 777c505)
  * esp32h4: add ESP32H4 esptool support (Chen Jichang - edb99bd)
  * esp32h21: Add Microsoft UF2 family ID (Radim Karniš - 74d27ae)
  * watchdog_reset: Add a new watchdog_reset option working even in USB modes \ 
(Radim Karniš - d37c38a)
  * espsecure: Improves an error message for encrypt_flash_data and \ 
decrypt_flash_data (Konstantin Kondrashov - ef407ed)
  * espefuse: Clean up efuse code for ESP32H2 (Konstantin Kondrashov - 4e922fe)
  * espefuse: Support different efuse table versions for ESP32H2 (Konstantin \ 
Kondrashov - d51ecbe)
  * espefuse: Adds efuses for esp32h2 eco5 (Konstantin Kondrashov - 9b74df6)
  * esp32h21: add ESP32H21 esptool support (gaoxu - 92ceff2)
  * esp32-p4: add support for flasher stub in USB OTG mode (Peter Dragun - 804f2db)
  * esp32-c5: Add ECO1 magic number (Radim Karniš - 6cc002c)
  * esp_rfc2217: Improved the logger message format (Jakub Kocka - 39a12a4)
  * espefuse: Adds 3 bit for PSRAM_CAP efuse field (Konstantin Kondrashov - ab2e0bf)
  * espefuse: Adds API for getting block and wafer versions (Konstantin \ 
Kondrashov - 111c6c0)
  * espefuse: Adds ADC calibration data for ESP32-C61 (Konstantin Kondrashov - \ 
36d9735)
  * espefuse: Adds ADC calibration data for ESP32-C5 (Konstantin Kondrashov - \ 
a903812)
  * espefuse: Adds ADC calibration data for ESP32-P4 (Konstantin Kondrashov - \ 
215e4b8)
  * erase_region: Enable erasing in ROM bootloader and SDM (Radim Karniš - e0deeac)
  * hard_reset: Support custom hard reset sequence configuration (Radim Karniš \ 
- 1b15738)
  * print usb mode when output chip info (Jan Beran - 749d1ad)
  * Add new app description segments (Jaroslav Burian - b23e60f)
  * add filtering based on serial number (Jaroslav Burian - 88319db)
  * Add support for Python 3.13 (Radim Karniš - 6abd05d)
   2025-07-05 13:44:20 by Thomas Klausner | Files touched by this commit (116)
Log message:
*: some more recursive Python restrictions on Python 3.11+

Reported in SmartOS bulk build
   2025-04-15 17:42:11 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-esptool: updated to 4.8.1

4.8.1

packaging: Fixed failing esptool imports on Windows
packaging: Fixed unwanted Python scripts being included in the distribution
ESP32-C2: Fixed ECO4 magic number
   2024-11-11 08:29:31 by Thomas Klausner | Files touched by this commit (862)
Log message:
py-*: remove unused tool dependency

py-setuptools includes the py-wheel functionality nowadays
   2024-09-21 15:19:49 by Greg Troxel | Files touched by this commit (3)
Log message:
comms/py-esptool: Update to 4.8.0

Upstream NEWS content:

    ESP32-C5: Added full support
    ESP32-C61: Added full support
    ESP32-P4: Enabled USB-Serial/JTAG in flasher stub
    ESP32-P4: Updated eFuse table
    ESP32-P4: Added ECO1 magic number
    ESP32-P4: Added external spi flash connection restriction checks
    ESP32-P4: Added wafer and pkg_version fields
    ESP32-C5-beta3: Added preview support
    ESP32-S3: Clear boot control register on hard reset to avoid going back to \ 
download mode
    Added a new read_flash_sfdp command to read the flash chip SFDP register
    Added serial port filtering and selection by VID/PID/Name
    Added advisory port locking
    Added new ROM bootloader flash error definitions
    Added an option to retry connecting to the chip in a loop
    Automatically reconnect if a serial port disconnects during reset
    write_flash: Retry flashing if the chip disconnects during writing data
    write_flash: Added image binary SHA digest recalculation if fields change
    flash_id: Print flash voltage
    get_security_info: Print key_purpose fields
    loader: Enabled usage of context managers for esp instances
    espefuse: Added support to extend eFuse table by user CSV file
    espefuse: Added eFuse dump formats: joint(default) and split(new)
    espefuse: Added incompatible eFuse settings check for ESP32-S3
    espefuse: Allow eFuse filtering based on command line arguments
    espefuse: Added a check for correctness of written data
    espefuse: Updated adc_info command for all chips
    espefuse: Enabled operation with coding scheme == 3
    espefuse: Updated eFuses of ESP32-C6 and ESP32-H2
    espefuse: Postpone burning of some eFuses to the very end
    espefuse: Improved help for burn_efuse cmd
    espefuse: check_error --recover chip even if there are errors
    espsecure: Added support for secure boot v2 using ECDSA-P384 signatures
    cli: Added support for autocompletions
   2024-01-31 00:47:13 by Adam Ciarcinski | Files touched by this commit (3) | Package updated
Log message:
py-esptool: updated to 4.7.0

v4.7.0 (2023-12-13)

New Features

test_esptool: Added test for embedded and detected flash size match
spi_connection: Support --spi-connection on all chips
espefuse: Support XTS_AES_256_KEY key_purpose for ESP32P4
xip_psram: support xip psram feature on esp32p4
add support for intel hex format
esp32p4: Stub flasher support
elf2image: add ram-only-header argument
rfc2217_server: Add hard reset sequence
espefuse: Adds efuse ADC calibration data for ESP32H2
espefuse: Update the way to complete the operation
add support for get_security_info on esp32c3 ECO7
loader: Added hints for some serial port issues when rising port error
Add support for Python 3.12
esp32c3: Support ECO6 and ECO7 magic numbers
merge_bin: add support for uf2 format
esp32-s3: Support >16MB quad flash chips
efuse: Update key purpose table and tests
efuse: ESP32P4 adds ecdsa_key support
espefuse: Add support for esp32p4 chip
esptool: added target to esp32p4
espsecure: Allow prompting for HSM PIN in read_hsm_config
esptool: Add new packages for ESP32C3 and flash efuses
esptool: Add tests for get_chip_features
esptool: Add PICO package for ESP32S3 and flash/psram efuses
get_security_info: Improved the output format and added more details

Bug Fixes

esp32c2: Added get_flash_cap and get_flash_vendor
testloadram: Windows assertion error
fixed exit() to be used from right module
esp32c2: Recommend using higher baud rate if connection fails
test_esptool: Fixed connection issue on Windows
esptool: Rephrase the --ram-only-header command message
load_ram: check for overlaps in bss section
tests/intelhex: make sure file is closed on Windows
spi_connection: Unattach previously attached SPI flash
espefuse: Fix ECDSA_FORCE_USE_HARDWARE_K for ECDSA key (esp32h2)
loader: Could not open serial port message adjusted
flasher_stub: fix usb-serial-jtag enabled non-related intr source
bin_image: Check only ELF sections when searching for .flash.appdesc
danger-github: Fir Danger GitHub token permission
Fix redirection of STDOUT
autodetection: Remove the ESP32-S2 ROM class from get_security_info autodetection
assert in esp32 exclusive workaround
elf2image: fix text/rodata mapping overlap issue on uni-idrom bus chips
dangerGH: Update token permissions - allow Danger to add comments to PR
expand file args: Correctly print the expanded command
esp32-c2: Enable flashing in secure download mode

Code Refactoring

stub_flasher: Cleanup, make adding new targets easier