Changelog
10.1.2 - Development
10.1.1 - 2025-01-20
Changed
- Turn developer's guide into CONTRIBUTING.md (
b77fda0)
10.1.0 - 2025-01-16
Changed
- Workaround bootloader bug during erase (
4203827)
Added
- Add stand-alone executables in releases (
26e4202)
Fixed
- Handle HEX-file not found error (
94c76a6)
10.0.0 - 2024-12-22
Changed
- Breaking: Rename --verbose CLI flag to --debug (
5116ffe) - Breaking: Raise
bincopy.Errorinstead ofValueErrorinchunked(452afb5) - Improve CLI error handling (
5116ffe) - Clarify
self_verifydocstring (fc8d16b)
Added
- Implement
read_flash(908aeac) - Add
readbackutility 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
--checksumflag (b685bb5) - Unconditionally erase before flashing with CLI (
9a4ddc6)
Added
- Add CLI flag
--resetto reset device after flashing (e38cefb)
Removed
- Breaking: Remove
.has_checksumattribute versionofBootAttrs(b685bb5)
Fixed
8.0.2 - 2024-05-11
Fixed
- Continue with warning on
BadAddressduring 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
chunkedmissing from API reference (a276764)
8.0.0 - 2023-11-09
Changed
- Breaking: Renamed
connection.pytoflash.py(3319508) - Breaking: Renamed
protocol.pytotypes.py(4d73ca0) - Renamed
fileargument to CLI tohexfile(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
BootAttrsdataclass for holding bootloader attributes (afcfa08) - Add
Chunkprotocol for data which is to be written to flash (afcfa08) - Add
Connectionprotocol for objects which provide a connection to a device in bootloader mode (afcfa08) - Add
get_boot_attrsfunction to read bootloader attributes (3319508) - Add
chunkedto load and split HEX file into aligend chunks (afcfa08) - Add
erase_flashto erase program memory range (3319508) - Add
write_flashto write firmware chunks to flash (3319508) - Add
checksumto compare local and remote data (3319508) - Add
self_verifyto detect installed application on device (3319508) - Add
resetto 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
- Reformat changelog per Common Changelog style (
6447957)
Fixed
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 sphinxconf.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_serialin favor ofget_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
progressbar2optional (#11) - Display progress as a percentage value if
progressbar2is not installed
Added
- Add parameter
progress_callbacktomcbootflash.Bootloader.flash - Add
--versionoption to display mcbootflash version string
Removed
- Breaking: Remove parameter
quietfrommcbootflash.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
quietparameter toBootloaderConnection.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
--quietflag - 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
ChecksumPacketclass - Add
resetcommand - 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.