Skip to content

Changelog

[10.0.1] - Development

10.0.0 - 2024-12-22

Changed

  • Breaking: Rename --verbose CLI flag to --debug (5116ffe)
  • Breaking: Raise bincopy.Error instead of ValueError in chunked (452afb5)
  • Improve CLI error handling (5116ffe)
  • Clarify self_verify docstring (fc8d16b)

Added

  • Implement read_flash (908aeac)
  • Add readback utility function to read firmware image from flash (53481c2)
  • Add support for Python 3.13 (a74ed75)

Removed

  • Drop support for EOL Python 3.8 (a74ed75)

Fixed

  • Breaking: Re-rename types.py to protocol.py to avoid shadowing built-in types.py (2a66b7b)

9.0.1 - 2024-05-14

Changed

  • Make minor improvements to CLI output (fb17948)

Fixed

  • Update README to reflect changes made in v9.0.0 (e6dc42c)

9.0.0 - 2024-05-13

Changed

  • Disable checksumming by default in CLI, enable with --checksum flag (b685bb5)
  • Unconditionally erase before flashing with CLI (9a4ddc6)

Added

  • Add CLI flag --reset to reset device after flashing (e38cefb)

Removed

  • Breaking: Remove .has_checksum attribute versionof BootAttrs (b685bb5)

Fixed

  • Fix error messages not being shown in CLI (c499eb9)
  • Fix wrong pad value in chunked (58ad227)

8.0.2 - 2024-05-11

Fixed

  • Continue with warning on BadAddress during checksum (b8734ea)

8.0.1 - 2024-02-08

Changed

  • Bump development status trove classifier: Beta -> Stable (418142e)
  • Begin argument descriptions with lowercase letter (103a331)

Fixed

  • Fix chunked missing from API reference (a276764)

8.0.0 - 2023-11-09

Changed

  • Breaking: Renamed connection.py to flash.py (3319508)
  • Breaking: Renamed protocol.py to types.py (4d73ca0)
  • Renamed file argument to CLI to hexfile (5a0d612)
  • Replace sphinx with mkdocs (4a9e854)
  • Split tox.ini from pyproject.toml to separate file (08ef0ed)
  • Use from __future__ import annotations (04ed4f9)
  • Improve CI time by not installing in environments that don't need it (6d381ee)

Added

  • Add BootAttrs dataclass for holding bootloader attributes (afcfa08)
  • Add Chunk protocol for data which is to be written to flash (afcfa08)
  • Add Connection protocol for objects which provide a connection to a device in bootloader mode (afcfa08)
  • Add get_boot_attrs function to read bootloader attributes (3319508)
  • Add chunked to load and split HEX file into aligend chunks (afcfa08)
  • Add erase_flash to erase program memory range (3319508)
  • Add write_flash to write firmware chunks to flash (3319508)
  • Add checksum to compare local and remote data (3319508)
  • Add self_verify to detect installed application on device (3319508)
  • Add reset to reset device (3319508)
  • Add github pages (f02b7c6)
  • Start using ruff for linting (82e1a95)

Removed

  • Breaking: Remove flashing.py (969d110)
  • Breaking: Remove mcbootflash.get_parser (969d110)
  • Breaking: Remove mcbootflash.flash (969d110)
  • Breaking: Remove mcbootflash.Bootloader (3319508)
  • Breaking: Remove mcbootflash.protocol.Packet.from_serial (f5cb75c)
  • Stop using prospector for linting (eed8b6a)
  • Stop using readthedocs (f4a128d)

7.0.6 - 2023-11-01

Changed

Fixed

  • Actually use bincopy for alignment (#25)(a668b9d)

7.0.5 - 2023-10-31

Maintanence release.

Changed

  • Update developer guide
  • Use bincopy for alignment of first and final chunks in each segment
  • Use __version__ string in sphinx conf.py
  • Narrow mypy import ignores
  • Update readthedocs python to 3.11
  • Use python3.12 instead of python3.12-dev in github-actions

7.0.4 - 2023-10-07

Fixed

  • Align all write commands with write_size (#21)

7.0.3 - 2023-09-26

Fixed

  • Write the final two words of the program memory range (#19)

7.0.0 - 2023-09-23

Changed

  • Change HEX file parser from intelhex to bincopy
  • Improve error handling and debug logging

Removed

  • Breaking: Remove get_response

Fixed

  • Don't checksum if bootloader doesn't support it (#16)

6.1.0 - 2023-09-15

Changed

  • Deprecate Packet.from_serial in favor of get_response

Added

  • Add function mcbootflash.protocol.get_response

Fixed

  • Fix an off-by-one error which skipped the final word within program memory range
  • Skip checksum calculation close to the upper end of program memory range (#13)

6.0.0 - 2023-09-13

Changed

  • Make progressbar2 optional (#11)
  • Display progress as a percentage value if progressbar2 is not installed

Added

  • Add parameter progress_callback to mcbootflash.Bootloader.flash
  • Add --version option to display mcbootflash version string

Removed

  • Breaking: Remove parameter quiet from mcbootflash.Bootloader.flash

Fixed

  • Flash all data within program memory range (#9)

5.1.1 - 2023-04-26

Fixed

  • Increase timeout during flash erase (#6)

5.1.0 - 2023-01-13

Changed

  • Fix some minor docstring mistakes
  • Improve error message when receiving unexpected data

Added

  • Re-add some logging messages that were removed by mistake
  • Add build status badge

5.0.0 - 2022-11-29

Changed

  • Breaking: Rename McbootflashException to BootloaderError
  • Breaking: Simplify protocol names (modules are not namespaces)
  • Breaking: Rename BootloaderConnection to Bootloader
  • Use pytest-reserial for testing

Removed

  • Breaking: Remove several custom exceptions

4.1.1 - 2022-09-17

Fixed

  • Fix final chunk not being written in certain situations
  • Fix minor errors in console output

4.1.0 - 2022-07-19

Added

  • Add documentation
  • Add readthedocs
  • Add codacy badges

4.0.0 - 2022-07-12

Changed

  • Breaking: Move quiet parameter to BootloaderConnection.flash
  • Raise exception from BootloaderConnection.flash if flashing did not succeed

3.0.0 - 2022-07-11

Changed

  • Breaking: Rename flash.py -> flashing.py
  • Breaking: Rename BootResponseCode -> BootResponse
  • Breaking: Refactor exceptions
  • Use recorded serial traffic to verify behavior
  • Move application code to src/
  • Switch to flit build system
  • Enable docstring linting
  • Enforce alphabetically sorted imports with isort
  • Change lots of logging messages

Added

  • Add progress bar while flashing. Suppress with --quiet flag
  • Allow overriding CLI arguments
  • Add BootloaderConnection.erase_flash

Removed

  • Breaking: Remove FLASH_UNLOCK_KEY
  • Breaking: Remove BootloaderConnection.{quiet, hexfile}

2.0.0 - 2022-06-12

Changed

  • Improve CLI help message
  • Improve package metadata
  • Reworke exceptions to more closely match those thrown by the bootloader

Added

  • Add public interface to __init__.py
  • Add ChecksumPacket class
  • Add reset command
  • Add tests
  • Add linters
  • Add CI via Github Actions

Fixes

  • Fix off-by-one error when firmware uses all available space

1.0.0 - 2022-05-27

Initial release.