Repository navigation
OTAmpy v4.7.0
·
32 commits
to main
since this release
Immutable
release. Only release title and notes can be modified.
OTAmpy 4.7.0 — 2026-09-11
Major (breaking changes)
- None.
Minor (functionality added in a backward compatible manner)
- Added optional channel-mux mode for sharing one serial port between OTAmpy and other host/device traffic: outer frame protocol,
ChannelCodec/ChannelSerial,otampy muxcommand,
--muxflag,OTAMPY_MUXsetting, and anotampy init --muxscaffold. - Added fail-safe, all-or-nothing update commits with a retain-previous journal, automatic sweep of orphaned
.bckfiles, andrestore.repair()run on every boot. - Added a trial-boot lifecycle: boots are counted with automatic rollback on repeated failure, plus
otampy confirm/otampy statecommands and a device-sideota.confirm()facade. - Added
otampy rollbackfor a user-initiated revert to the previous firmware generation. - Added a boot-time recovery window so a stranded device can be reached over the radio after a failed or unpolled boot, via
otampy upd --recoverandotampy rollback --recover. - Replaced the old watchdog guidance with a heartbeat threaded through
boot.run()andOTA.boot().
Patch (backward compatible bug fixes)
- Fixed
main.pyto runrecover()so a lostboot.pyself-heals (F-06). - Fixed the orphan sweep so it no longer deletes retained
.bckfiles (F-04). - Fixed the one-shot RTC helper so it is no longer retained or journaled (F-05).
- Fixed post-reboot waits to use their own timeout instead of inheriting an unrelated one (F-11).
- Fixed the boot-time recovery window so it is actually reachable in practice, including a two-tier window and boot marker (F-10, F-14).
- Fixed the host-side recovery handshake to hold one port open and retry at stock timings (F-15).
- Fixed
--recoverto skip the bytecode-shadow preflight, which doesn't apply during recovery (F-16). - Fixed
otampy rollback --recoverto refuse to run against an already-healthy device (F-17). - Fixed
ChannelSerialso it no longer blocks on an empty serial port. - Fixed the CLI to ignore a malformed
OTAMPY_MUXvalue instead of aborting every command.