All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
- Allow
partition_table_offset
to be specified in the config file. (for #699)
- Only filter the list of available serial ports if a port has not been specified via CLI option or configuration file (#693)
- Add new chip detect magic value, ability to read chip revision for ESP32-P4 (#686)
- Add skip update check option (#689)
- Fixed
partition-table-offset
argument to accept offsets in hexadecimal (#682) - espflash defmt log didn't display timestamp, according to defmt doc. (#680)
- Fixed pattern matching to detect download mode over multiple lines (#685)
3.1.1 - 2024-08-15
- Add
hold-in-reset
andreset
subcommands (#644) - [cargo-espflash]: Add
--no-default-features
flag to mirror cargo features behavior (#647) - Update
cargo
andbytemuck
dependencies adapting code (#666)
- Downgrade crossterm and update time crates (#659)
- Monitor now only sends key presses on key down events
3.1.0 - 2024-05-24
- Support loading flash size, frequency, and mode from the config file (#627)
- Fixed help text for
size
parameter ofread-flash
subcommand - Fixed port detection on
musl
when detection returns paths starting with/dev/
- [cargo-espflash]: Always resolve package_id from metadata when finding bootloader and partition table (#632)
- Fixed behavior of the
--target-app-partition
flag (#634)
- Update ESP32, ESP32-C2, ESP32-C3, ESP32-C6, ESP32-H2, ESP32-S2, ESP32-S3 stub (#638)
3.0.0 - 2024-03-13
- Fix timeout while changing the baudrate for some ESP32-S3 targets (#607)
- Update ESP32, ESP32-C2, ESP32-C3, ESP32-C6, ESP32-H2, ESP32-S2, ESP32-S3 stub (#607, #610)
3.0.0-rc.2 - 2024-03-04
- Add
--list-all-ports
connection argument to avoid serial port filtering (#590) - Allow config file to live in parent folder (#595)
- Change the
hard_reset
sequence to fix Windows issues (#594) - Improve resolving non-code addresses (#603)
- Non-linux-musl: Only list the available USB Ports by default (#590)
FlashData::new
now returnscrate::Error
(#591)- Moved
reset_after_flash
method toreset
module (#594) - The
command
module now requiresserialport
. (#599)
3.0.0-rc.1 - 2024-02-16
- Add reset strategies (#487)
- Read
esp-println
generateddefmt
messages (#466) - Add
--target-app-partition
argument to flash command (#461) - Add
--confirm-port
argument to flash command (#455) - Add
--chip argument
for flash and write-bin commands (#514) - Add
--partition-table-offset
argument for specifying the partition table offset (#516) - Add
Serialize
andDeserialize
toFlashFrequency
,FlashMode
andFlashSize
(#528) - Add
checksum-md5
command (#536) - Add verify and skipping of unchanged flash regions - add
--no-verify
and--no-skip
(#538) - Add
--min-chip-rev
argument to specify minimum chip revision (#525) - Add
serialport
feature (#535) - Add support for 26 MHz bootloader for ESP32 and ESP32-C2 (#553)
- Add CI check to verify that CHANGELOG is updated (#560)
- Add
--before
and--after
reset arguments (#561) - Add
read-flash
command (#558) - Add HIL testing (#596)
- Fix printing panic backtraces when using
esp-println
anddefmt
(#496) - Fix
defmt
parsing when data is read in parts (#503) - Use partition table instead of hard-coded values for the location of partitions (#516)
- Fix a missed
flush
call that may be causing communication errors (#521) - Fix "SHA-256 comparison failed: [...] attempting to boot anyway..." (#567)
- Windows: Update RST/DTR order to avoid issues (#562)
- Tolerate non-utf8 data in boot detection (#573)
- Fix flash/monitoring of 26MHz targets (#584)
- Create
FlashData
,FlashDataBuilder
andFlashSettings
structs to reduce number of input arguments in some functions (#512, #566) espflash
will now exit with an error ifdefmt
is selected but not usable (#524)- Unify configuration methods (#551)
- Improved symbol resolving (#581)
- Update ESP32-C2 stub (#584)
- MSRV bumped to
1.74.0
(#586)
- Remove support for Cargo metadata configuration (#551)
- Remove support for the ESP8266 (#576)
- Remove the direct boot image format (#577)
- Remove support for Raspberry Pi's internal UART peripherals (#585)
2.1.0 - 2023-10-03
- Added erase-flash, erase-region, and erase-parts subcommands (#462)
- Fixed printing UTF-8 sequences that were read in multiple parts. (#468)
- Update dependencies to their latest versions (#482)
2.0.1 - 2023-07-13
- Add help text for all subcommands (#441)
- Update
cargo
dependency to 0.72 (#445)
- Explicitly set
bin_name
attribute forcargo-espflash
(#432)
2.0.0-rc.4 - 2023-06-08
- Add
ESPFLASH_PORT
environment variable (#366) - Added ESP32-H2 support (#371)
- Generate Shell completions (#388)
- Make the default flashing frequency target specific (#389)
- Add note about permissions on Linux (#391)
- Add a diagnostic to tell the user about the partition table format (#397)
- Fix
espflash::write_bin
(#353) - Fix ESP32-C3 direct boot (#358)
- Disable watchdog timer before build (#363)
- Restore the cursor when exiting from serial port selection via Ctrl-C (#372)
- Fix chip revision check during flashing for the ESP8266 (#373)
- Fix config file parsing (#382)
- Limit default partition size (#398)
- Fix Windows installation (#399)
- Reword elf too big error (#400)
- Fix handling of serial ports on BSD systems (#415)
- Override the flash size in Flasher if provided via command-line argument (#417)
- Simplify and improve errors (#342)
- Make
Interface
constructor public (#354) - Update stubs from esptool v4.5 (#359)
- Update documentation (#368)
- Update
toml
dependency and fix errors, feature gatectrlc
dependency (#378) - If exactly one port matches, use it (#374)
- Image header improvements and bug fixes (#375)
- Update to the latest version of addr2line and address breaking changes (#412)
- Do not require the
--partition-table
argument when erasing partitions (#413) - Downgrade
crossterm
to0.25.0
(#418) - Update the supported targets for ESP32-C6/H2 (#424)
- Update flasher stubs and bootloaders (#426)
2.0.0-rc.3 - 2023-01-12
- Add support for flashing the ESP32-C6 (#317)
- Add an optional callback trait which can be implemented and provided to most flashing functions (#333)
- Various fixes and improvements relating to crystal frequency and serial monitor for the ESP32-C2 (#314, #315, #330)
- Reorder ports so that known ports appear first in CLI (#324)
- Make the flasher return a struct of device information instead of printing directly (#328)
- CLI improvements and dependency updates (#334)
- Use the flasher stub by default (#337)
- Mark public enums as
#[non_exhaustive]
for semver compatibility (#338) - If a bootloader and/or partition table other than the defaults have been provided, indicate such (#339)
2.0.0-rc.2 - 2022-12-07
- Add option to supply the
ELF
image path in the monitor subcommand (#292) - Add support for using custom cargo metadata when in a workspace (#300)
- Fix typo in
ImageFormatKind
'sFromStr
implementation (#308)
- Report the image and partition size in the error (#293)
- Allow
SerialPortType::PciPort
during port detection (#295) - Update dependencies to their latest versions (#299)
- Clean up unused code, optimize comparison in
find_serial_port
(#302) - Make command module public (#303)
- Display the newer
v{major}.{minor}
chip revision format (#307)
2.0.0-rc.1 - 2022-11-07
- Add support for erasing any partition (#273)
- Various bugfixes, plenty of cleanup and simplification
- Redesign of the command-line interface (#239)
- Extract the partition table handling code into a separate package,
esp-idf-part
(#243) - A bunch of refactoring (#246, #247, #249)
- Updated to
[email protected]
(#251) - Replace the
espmonitor
dependency with our own home-grown monitor (#254) - Use logging instead of
println!()
(#256) - Use newest bootloaders from ESP-IDF (#278)
- Improved documentation and testing