Skip to content

Version 4.5

Compare
Choose a tag to compare
@github-actions github-actions released this 13 Feb 09:34

This release aims to fix most of the major issues with resetting into the download mode, flashing in the USB-Serial/JTAG mode, and working with large-capacity flash memory chips.

New Features

  • Configuration file: Added the option to configure internal variables (such as timeouts and delays) and to implement a custom reset sequence (see the related documentation).
  • Bootloader reset: Added a new reset strategy to make resetting into the download mode more reliable on MacOS and Linux systems (#712).
  • ESP32-S3: Added support for >32MB octal flash chips (#795, #745).
  • ESP32-H2: Added full esptool and flasher stub support.
  • ESP32-C6: Added full flasher stub support.
  • flash_id: Print the flash memory chip type (quad vs. octal) if available (#730).
  • elf2image: Added --pad-to-size <size> option to specify a size to which the generated binary image must be aligned.
  • write_flash: Added a security check to prevent bricking the device when flash encryption is active.
  • Optimized to reduce the number of steps when a chip is being interrogated.

espsecure.py

  • Added an external HSM signing interface.
  • Added support for pre-calculated signatures.
  • Added PKCS#8 identifier support (#819).

Bug Fixes

  • USB-Serial/JTAG: Fixed randomly failing transfers when writing/reading large binaries.
  • ESP32-S3: Fixed crashing stub flasher when using in USB-Serial/JTAG mode (#808)
  • ESP32: Recalculate the crystal clock to compensate for the chips baud rate setting as a workaround to avoid ESP32 CK_8M frequency drift.
  • ESP32-S3: Fixed v0.0 chip being detected as vX.8.
  • StopIteration: Fixed several possible errors when stub flasher is being uploaded and added better error messages for other cases (#824).
  • Fixed chip autodetection and operations in the secure download mode on ESP32-S2 and S3 (#813).
  • write_flash: Fixed the --erase-all option corrupting flash (#805).
  • write_flash: Fixed security checks when min_rev and max_rev_full are specified in the image.
  • Fixed compatibility with bitstring>=4 package.
  • Fixed compatibility with reedsolo when using Python 3.10 and Cython (#711).

espefuse.py

  • The serial port now gets closed when espefuse fails (#803).

Miscellaneous Changes

  • Refactored to make adding new targets easier, reduce code repetition, and comply with the Black 23.1 style.
  • Added target tests for all of the newly supported chips.
  • Updated the toolchains for stub flasher builds.

Thanks to @256dpi, @StevenMacias, @fennecbutt, and others for contributing to this release!