Skip to content

v4.0.0

Compare
Choose a tag to compare
@jessebraham jessebraham released this 01 Jul 13:37
· 5 commits to main since this release
12a177a

Added

  • Add non-interactive flag to flash subcommand (#737)
  • Add no-reset flag to monitor subcommands (#737)
  • Add an environment variable to set monitoring baudrate (MONITOR_BAUD) (#737)
  • Add list-ports command to list available serial ports. (#761)
  • [cargo-espflash]: Add write-bin subcommand (#789)
  • Add --monitor option to write-bin. (#783)
  • Add watchdog-reset strategy to --after subcommand (#779)
  • Add ROM version of read-flash command (#812)
  • espflash can detect the log format automatically from ESP-HAL metadata. Requires esp-println 0.14 (#809)
  • Add --output-format option to monitor (#818)
  • Added chip detection based on security info, where supported (#814)
  • espflash can detect the chip from ESP-HAL metadata to prevent flashing firmware built for a different device. Requires esp-hal 1.0.0-beta.0 (#816)
  • espflash no longer allows flashing a too-big partition table (#830)
  • Allow specifying a partition label for write-bin, add --partition-table. (#828)
  • --mmu-page-size parameter for flash and save-image (#835)
  • Run some arguments checks for monitoring flags. (#842)
  • Add support for the ESP32-C5 (#863)
  • --after options now work with espflash board-info, espflash read-flash and espflash checksum-md5 (#867)
  • Add support for serial port configuration files. (#777, #883)
  • Add a check-app-descriptor bool option to ImageArgs and add the flag to flash command (#872)
  • Connection::into_serial to get the underlying port from the connection (#882)
  • All methods on the now removed Target & ReadEFuse, UsbOtg and RtcWdtReset traits have been implemented directly on (#891)
  • Update checks can now be skipped by setting the ESPFLASH_SKIP_UPDATE_CHECK environment variable (#900)
  • flash_write_size and max_ram_block_size functions no longer take a connection parameter and return a Result type (#903)
  • DefaultProgressCallback which implements ProgressCallbacks but all methods are no-ops (#904)
  • ProgressCallbacks now has a verifying method to notify when post-flash checksum checking has begun (#908)
  • Implement From<Connection> for Port and both From<Flasher> for Connection and Port conversions (#915)

Changed

  • Split the baudrate for connecting and monitoring in flash subcommand (#737)
  • Normalized arguments of the CLI commands (#759)
  • board-info now prints Security information. (#758)
  • The command, elf and error modules are no longer public (#772)
  • write-bin now works for files whose lengths are not divisible by 4 (#780, #788)
  • get_usb_pid is now usb_pid and no longer needlessly returns a Result (#795)
  • CodeSegment and RomSegment have been merged into a single Segment struct (#796)
  • IdfBootloaderFormat has had its constructor's parameters reduced/simplified (#798)
  • Update flash size when creating the app partition (#797)
  • --non-interactive may now react to key events (user input, Ctrl-C, Ctrl-R) if possible (#819)
  • Removed get_ prefix from any functions which previously had it (#824)
  • Take elf data as bytes rather than ElfFile struct when creating an image format (#825)
  • Updated to Rust 2024 edition (#843)
  • Complete rework of reading eFuse field values (#847, #903)
  • Updated bootloaders with release/v5.4 ones from IDF (#857)
  • Refactor image formatting to allow supporting more image formats in a backward compatible way (#877)
  • Avoid having ESP-IDF format assumptions in the codebase (#877)
  • Flasher now takes the Connection in new, instead of constructing the connection inside Flasher::connect (#882, #885)
  • detect_chip has moved to the Connection struct (#882)
  • Flasher::into_serial has been replaced by Flasher::into_connection (#882)
  • Automatically migrate espflash@3 configuration files to the new format (#883)
  • Update dependencies to their latest versions (#893)
  • Chip::crystal_freq has been renamed to Chip::xtal_frequency (#891)
  • Chip::chip_revision has been renamed to Chip::revision (also applies to minor and major) (#891)
  • Any reference to esp_idf or EspIdf has been cut to just idf (#891)
  • Renamed targets module to target (#891)
  • Test data is now excluded from the crates.io release (#897)
  • The command module, and Command related structs now exist in a top level module, instead of the connection module (#901)
  • API's that take Option<&mut dyn ProgressCallbacks> now take &mut dyn ProgressCallbacks instead (#904)
  • ProgressCallbacks::finish() now has a skipped: bool parameter to indicate if a segment was skipped (#904)
  • CLI usage now shows when a segment has been skipped due to already-matching checksum and when a segment is being verified (#908)

Fixed

  • Update the app image SHA in the correct location for padded images (#715)
  • Fix -s argument collision (#731)
  • address and size in erase-region have to be multiples of 4096 (#771)
  • Fixed typos in error variant names (#782)
  • Fix read-flash which didn't work with some lengths (#804)
  • espflash can now flash an ESP32-S2 in download mode over USB (#813)
  • Fixed a case where espflash transformed the firmware ELF in a way that made it unbootable (#831)
  • The app descriptor is now correctly placed in the front of the binary (#835)
  • espflash now extracts the MMU page size from the app descriptor (#835)
  • ResetBeforeOperation & ResetAfterOperation are now public, to allow the creation of a Connection (#895)
  • Flasher now respects its internal verify and skip flags for all methods. (#901)
  • Progress is now reported on skipped segments and verification (#904)
  • Moved the non-interactive flag to ConnectArgs so we also avoid asking the user to select a port (#906)

Removed

  • Removed the libudev feature (#742)
  • Removed the flasher::parse_partition_table function (#798)
  • The FirmwareImage trait has been removed (#802)
  • The elf module has been removed, and its contents moved to the image_format module (#802)
  • The Target trait, the ReadEFuse trait, and Chip::into_target (#891)
  • The UsbOtg and RtcWdtReset traits have been removed, along with Chip::into_rtc_wdt_reset & Chip::into_usb_otg (#891)