What's Changed (unreleased)
- Add initial CHANGELOG.md file.- (42b6915)
- Add the
py.typedfile to indicate that the package is typed.- (519aec7) - pyproject.toml: Add
tox-ghconfig for github actions.- (dfb811c) - Update the CI workflow to use v2 of my python-ci workflows.- (cd27bfd)
- ci: Update pre-commit config to optimise for post hooks.- (95783aa)
- ci: README.md: Fix links to GitHub Actions workflow badges.- (cbe52be)
What's Changed in v0.1.1
What's Changed in v0.1.0
What's Changed in v0.0.15
- Bugfix: firmware.py: Trap exceptions when calling
check_image_hash().- (993f5bb) - Tests: Bugfix test_fs.py to sort file lists before comparison.- (1ac1ac9)
- pyproject.toml: Updates to improve clarity and maintainability.- (6d616c0)
- Fix: Updates for type checking in tests/.- (c7e6e93)
- README.md: Minor update clarifying use of
fscommand.- (5ffeb30) - Refactor: Minor refactor and fixups for typos.- (42e6c22)
- Add pre-commit configuration file and update dependencies.- (f7e97e5)
- docs: Add note about --fs swallowing non-option arguments.- (b7aa945) - Closes #6
What's Changed in v0.0.14
- README.md: Add CI status badge.- (9234997)
- README.md: Update the Examples to version 0.0.13- (6dfc8ca)
- publish.yaml: Update comments.- (ec1bab2)
- README.md: More update for newest version- (cf18cdd)
- Minor formatting updates for ruff v0.9.- (478d9ec)
- Make littlefs an optional dependency.- (a955707)
What's Changed in v0.0.13.dev2
- README.md: Update installation instructions.- (bdc5571)
- Updates to github CI workflows. Use
python-civ1.- (4512f65)
What's Changed in v0.0.12
- ci-release: fix for broken pypi upload.- (6ef1ba9)
What's Changed in v0.0.11
- Move the build job out of the publish job into the ci-release job.- (e36c86b)
- Make the ci-release workflow depend on the tests workflow.- (7a0929c)
What's Changed in v0.0.10
- Enable publishing to pypi on tag.- (9b1a6b3)
What's Changed in v0.0.9
- Dummy push to trigger build- (c958461)
- Move tox configuration to pyproject.toml.- (a3d4722)
- Replace github action workflows from glenn20/python-ci.- (0bfebc7)
- Add typing stubs for littlefs module.- (c0c751b)
- Remove littlefs-python source folder from uv.lock and pyproject.toml.- (6eaf2c1)
- pyproject.toml: Format comments.- (7348864)
What's Changed in v0.0.8
- Overhaul logging to use the rich module.- (e72e301)
- mypy: Fixes for mypy type checking.- (887feda)
- Print partition tables using
Tablesfrom therichmodule.- (b6666e8) - esptool_io: Replace tqdm with rich progress bar.- (16d6d85)
- argtypes: Fix IntArg to handle float values, eg: --baud 1.5M- (7306f90)
- esptool_io: Refactor progress bar handling to a separate module.- (e39b471)
- Update project configuration: pyproject.toml and tox.ini.- (a5a3887)
- Add build and publish CI workflows.- (4180f04)
- Fixing issues on Windows.- (6053e33)
- tests: Fixes for Windows.- (312c417)
- CI: Try to build on tag pushes.- (b96ff51)
What's Changed in v0.0.7
- typings: Rename esptool.init.py to esptool.init.pyi.- (386f378)
- tests: Add simple tests for the --fs filesystem operations.- (32aae01)
- main: --fs commands can be repeated on the cli.- (63fd491)
- lfs.py: Add BlockCache class for caching block reads and writes.- (3eb4128)
- pyproject.toml: Add more-itertools dependency.- (b85fa1e)
- main.py, lfs.py: Make type hints compatible with python 3.8.- (4cba1a5)
- tox.ini: remove uv run from pytest command.- (c07c75c)
- main.py: Give -q priority over -d.- (67e6256)
- tests: Add README.md for the tests directory.- (eddbbb6)
- partition_table: Rename make_table() to format_table().- (6c070c8)
- firmware.py: Don't erase fs partitions if resizing to larger.- (8e5a92c)
- lfs: Add the "--fs grow" to resize littlefs filesystems.- (8de0f3f)
- README.md: Add note about filesystem partition resizing.- (d6e9627)
- tests: Run mp_image_tool_esp32 as a module rather than a script.- (7de5564)
What's Changed in v0.0.6
- layouts.py: Add the 'original' partition table layout.- (f09935f)
- Bugfix: Fix esptool method selection.- (2882e73)
- Add optional 'check' parameter to FirmwareFile and FirmwareDevice constructors.- (5dedec4)
- tests: Update test scripts and fixtures- (b5e5511)
- tests: Remove ESP32 firmware files from repo.- (09ebec5)
- gitignore: Ignore /tests/data directory.- (be7e21b)
- tests: Refactor and clean up of fixtures and- (7d6019f)
- tests: Bugfix for run-tests.sh script.- (5dae320)
- esptool_io: Minor refactor.- (6f8e296)
- Refactor: Rename image_file.py->firmware.py, firmware_file.py->firmware_fileio.py.- (e250c72)
- esptool_io: Use the Buffer protocol for write_flash().- (d2af347)
- tests: Add flash_size tests.- (e150ef0)
- argparse_typed: Add support for capturing types from the global namespace.- (0364dfc)
- firmware-fileio: Add Partition class to read/write partition contents.- (689f6bd)
- Use the new Partition class for reading/writing partitions.- (bf483f2)
- image-header: Add sanity check when calculating image size.- (db9cc25)
- partition_table: Catch PartitionErrors when loading an existing partition.- (3803517)
- tests: Add tests for file integrity and read/write operations.- (0957c3a)
- firmware_fileio: Add Partition.truncate() method.- (a3cc794)
- main: --flash-size raise an error if size is larger than device flash size.- (451caf8)
- .gitignore: Ignore .python_version files.- (d1c3eb4)
- ota_update: Use new
Partitioncontext manager to write to partitions.- (291f168) - argtypes: Make ArgList and PartList concrete classes.- (3c8eec6)
- pyproject.toml: Use uv for env and dependencies management.- (c462d22)
- Add tox support for running tests.- (413695a)
- run-tests.sh: Use 'uv' to run tests for multiple Python versions.- (58844a2)
- tests: Change --device option to --port in conftest.py.- (19acaf9)
- pyproject.toml: Add tox to dev-dependencies.- (70e8d28)
- pyproject.toml: Use hatch-vcs to set version from git tags.- (e8c395c)
- .gitignore: Ignore requirements.txt file.- (d630118)
- README.md: Update installation instructions (use
uv).- (afdecd8) - FirmwareDeviceIO: Remove chip_name and flash_size attributes.- (ffd78ec)
- argtypes: Remove unsplit(), add str() to ArgList and PartList.- (2fe9762)
- Replace OSError with ValueError in firmware_fileio.py.- (26b2fe7)
- Add --trim and --trimblocks options to mp_image_tool_esp32.- (2e814f4)
- firmware.py: Add "partition_table" as a fake partition name.- (2049e45)
- ImageHeader: Rename check() method to validate().- (9897380)
- Firmware: Make
tablean attribute instead of a cached property.- (0627a58) - Tiny refactoring in the _get_part method of the Firmware class.- (c491c41)
- argparse_typed: Add support for variable number of arguments.- (9310887)
- Firmware: Make
sizean attribute instead of a cached_property.- (49942cc) - logger: Don't use the root logger.- (8760de8)
- Add --fs option to manipulate files on littlefs filesystems.- (11bb984)
- pyproject.toml: Add littlefs-python to dependencies.- (3b50e6e)
What's Changed in v0.0.5
- Be more explicit about what is happening when leaving bootloader mode.- (c3b81b3)
- Use EspToolWrapper class to handle esptool.py commands.- (2ab4d8c)
- Bugfix: handle ValueError when parsing image header.- (b2a0ac0)
- Avoid opening and initialising the device for each operation.- (a04f4e1)
- Add typings stubs for the esptool modules.- (8916a03)
- Remove "-" from the delimiter list in argtypes.py.- (6c9210c)
- Remove write_part_from_file() and read_part_to_file() methods.- (72ffae1)
- Major refactor of the ESP32 device I/O modules and classes.- (9d8e441)
- Rename ImageFormat class to ImageHeader.- (3be5ac7)
- Add typing-extensions to requirements.txt (for
Buffer).- (f5135ee) - More refactoring of the ESP32 device IO modules.- (0ee9fd1)
- image_header.py: Use ctypes for ImageHeader structure.- (7b76834)
- esptool_io: Show esptool.py output for longer writes.- (698859f)
- Bugfix: firmware_file: Correct logic for reset_on_close.- (3585215)
- image_header: Add
check_image_hashfunction to verify image hash.- (59caa02) - Support flashing the output firmware to a serial-attached device.- (c9c5777)
- esptool_io: Rename esptool_wrapper() to get_esptool().- (8ea03b6)
- partition_table: Rename
flash_sizetomax_sizein PartitionTable.- (0be9ec7) - Add README.md to typings/esptool.- (5ba73b7)
- Rename --check to --check-app options to clarify the purpose.- (c62fedc)
- Update README.md with new options and examples.- (a9ae3d4)
- Remove the
app_sizeattribute from theEsp32ImageandPartitionTable- (0e6fbe9) - Add --flash command to flash firmware to a device.- (fb8ab6f)
- esptool_io: Add --flash_frequency=keep to esptool args.- (8a56583)
- More helpful error msg when OTA app part is too small.- (73cdbc1)
- Use
print (table)insted oftable.print().- (7ce7549) - Logging: add new logging messages and refine existing.- (324d16f)
- main.py: Tweaks to the top-level exception catching.- (0de9039)
- image_header.py: Tweaks to the printing of ctypes structures.- (c896418)
- firmware_file: Use the detected flash size if it is different to the flash size in the bootloader header.- (3592387)
- esptool_io.py: Add ESPToolProgressBar class for monitoring esptool.py progress.- (ffd126a)
- Minor update to README.md.- (3403549)
- logger.py: Log messages to stdout not stderr.- (d0fc27e)
- main.py: Exit after --extract-app option.- (0d5a0bd)
- main.py: Force an output file when --erase or --write options are used.- (9d0a1a5)
- layouts.py: Raise PartitionError if app is to large for partition.- (1400335)
- image-file.py: --check-app logs to INFO, not ACTION.- (bccff34)
- tests: Add tests for operations on firmware files.- (954ccc0)
- esptool_io.py: Minor renaming.- (13abb4f)
- Increment version number to 0.0.5.- (0619fcb)
What's Changed in v0.0.4
- Update README.md for new option --no-reset (version 0.0.3).- (bf4dda8)
- pares-args.py: Fix comparison with bool and str- (a5539f4)
- Refactor of the
parse_argsmodule toargparse_typedandargtypesmodules.- (0a948b1) - Refactor to use a logger module for all output messages.- (09ab35f)
- logger.py: Remove dependence on colorlog.- (eef119a)
- Minor refactor of the table.print() method.- (1dab45e)
- PartitionTable: Refactor from_bytes method.- (717779d)
- Minor logging updates.- (48e8b78)
- Improve robustness of esptool subprocess handling.- (c071e6e)
- Bump version number to 0.0.4.- (9403b02)
What's Changed in v0.0.3
- ota_update.py: Minor refactoring.- (8003c7e)
- image_device.py: Increase the minimum size for displaying the progress bar.- (8d1ea4b)
- Bugfix: Recalculate bootloader hash when flash-size is changed.- (33ac3bb)
- Add -n option to leave device in bootloader after exit.- (3ca246b)
- Bump version to 0.0.3.- (0db8a6f)
What's Changed in v0.0.2
- Initial commit- (7b772dc)
- Update README.md- (fdd8adb)
- First checkin: working code.- (d8a5f30)
- Minor ruff fixes.- (a42bcb6)
- README.md: add --ota to feature list.- (04dc8d6)
- Add pyproject.toml (uses hatchling).- (0040916)
- README.md: Add installation instructions.- (97132c1)
- Add support for esp32 device flash storage.- (a1f1097)
- Drop "-o" alias for "--ota".- (2be2466)
- Introduce ESP32Image class to represent an image file or device.- (840227a)
- Add PartitionTable.by_name(name) method.- (908e7a4)
- Add erase_flash_region() function.- (53aff5c)
- main.py: Add the --erase-part and --erase-first-block arguments.- (c214269)
- image_device.py: Add support for providing chip_name.- (e3d3b98)
- Rename --erase-first-blocks to --erase-fs option.- (e76575d)
- Update README.md.- (834280b)
- Add --write-part and --read-part options.- (f819953)
- Use @cached_propery for Part() properties.- (bc98e7c)
- Add --from-csv option.- (1825d12)
- Part: rename label_name property to name.- (be6b823)
- Simplify PartTuple class.- (5f85260)
- Use local parse_args module to simplify args processing.- (600486d)
- Change rules for read_part and write_part arguments.- (ff4e827)
- Add del_part and expand_part methods.- (fb87086)
- Move mp_image_tool_esp32 folder into src/.- (05c4688)
- Fixup for expand_part().- (3b7534c)
- image_device.py: Handle reconnection problems on esp32s2.- (d3c955a)
- image_file.py: Fix when input file is less than expected length.- (7f08372)
- Add support for parsing progname and description.- (ce6e84a)
- Allow table["name"] to return Part with label = "name".- (5ada1b7)
- PartitionTable: Simplify .resize_part() and remove.by_name().- (91a0719)
- Partitiontable: Remove .del_part(), .expand_part(), .resize_flash().- (f1a27a3)
- Bugfix: Handle default offset in .add_part().- (ed96377)
- Add support for printing table on PartError.- (4bc1054)
- Add support for epilog in arguments string.- (54613a3)
- add_part(): Don't check after adding each part.- (d8fdb38)
- Add --table option.- (ca8bcc7)
- image_device.py: Drop use of pathlib.- (e9bbef8)
- Erase data partitions when changed.- (a547888)
- print_table(): Don't print out vfs size.- (3b52135)
- Add esptool to package requirements.txt.- (c2ac35b)
- Allow multiple paragraphs in the epilog.- (5f219bd)
- Streamline command argument processing.- (a7eeba3)
- Correct flash_size in bootloader if it has changed.- (7847a3a)
- API change: Replace --ota with "--table ota".- (3cc36b8)
- Move "Resizing part" message to main.py.- (24d1208)
- Add "--bootloader FILE" option.- (428ff85)
- Refactor: Reorganise code.- (b50543e)
- Cleanup open_image().- (74335e6)
- Refactor: Argparse, strict type checking, minor re-org.- (f0a45c4)
- Add docstrings everywhere...- (8ec7d13)
- More refactoring and module docstrings.- (b726946)
- Add support for OTA update over the serial/USB interface.- (1b04a23)
- Minor Readme update.- (4645671)
- README.md: Add instruction on cloning repo.- (d40ada6)
- Print chip type and flash size sooner.- (6379c83)
- Add progress bar when read/write from flash storage on esp32 devices.- (558f90c)
- Replace --bootloader option with --read/write bootloader=FILE.- (8597cda)
- Update README.md for removal of --bootloader option.- (1f18477)
- Squashed commit from dev: Add --check option.- (13f1bba)
- Allow --read, --write and --erase options to be used on firmware files.- (608de82)
- Add support for python versions 3.8 and 3.9.- (d357de7)
- Refactor of parse_args.py for clarity.- (47a2b32)
- Require at least python 3 8.- (75682ab)
- Use the newer type notation for python >= 3 10.- (db5d77d)
- Fix PartitionErrors raised when changing the flash size.- (268318e)
- Increment version number.- (fc86ff2)