You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
The clean-cycle command — the Home Assistant button, the CLI clean-cycle
subcommand, and commands.clean_cycle(). A live capture proved the inherited 0x02A30000 ("cleanCycle") opcode resets the robot (odometerPowerCycles
increments, no cycle runs) — it was a reset disguised as a cycle, so it's gone
rather than left shipping a surprise reboot.
Changed
0xA3 reclassified to never-send. It's the reset / main-board-OTA
orchestrator, not a motor command; the safety guard now refuses it unconditionally
alongside 0xA4 / 0xAC / 0xAD. No motor command is exposed until a real
cleanCycle trigger is recovered — the MOTOR / allow_motor gate stays wired but
empty.
Documented the action-command hunt in docs/reverse-engineering.md: the 0xA3 correction, why the cleanCycle / power / empty / reset dispatch lives in a
bootloader region absent from every public OTA image, the exhaustive (and empty)
search for a complete firmware dump, and the recovery paths (cloud-byte capture,
app decompile, ESP-flash / PIC-ICSP dump).