docs: update hendi lockout findings with v1.14 retest results
Firmware v1.14 makes --reset (DTR/RTS toggle) reliably clear the ungraceful-disconnect lockout, unlike v1.12. A plain reconnect without --reset still fails on both versions, so recovery is specifically tied to the reset line, not just a fresh connection. Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01GpePKZiEZWbGo9HrfuML6U
This commit is contained in:
@@ -1,9 +1,9 @@
|
|||||||
# Hendi remote-control lockout findings
|
# Hendi remote-control lockout findings
|
||||||
|
|
||||||
Firmware under test: **v1.12** (`getSoftwareVersion()` / `I?`+`V?` via
|
Reproduced and verified on real hardware using `scripts/hendi_ctrl_app.py`'s
|
||||||
`components/actor/hendiCtrl.py`). Reproduced and verified on real hardware
|
`--trigger-error-state`, `--reset` and `--test-heater` flags, across two
|
||||||
using `scripts/hendi_ctrl_app.py`'s `--trigger-error-state`, `--reset` and
|
firmware versions (`getSoftwareVersion()` / `I?`+`V?` via
|
||||||
`--test-heater` flags.
|
`components/actor/hendiCtrl.py`).
|
||||||
|
|
||||||
## Trigger
|
## Trigger
|
||||||
|
|
||||||
@@ -11,13 +11,16 @@ Calling `remoteEnable(True)` (`R1`) and then disconnecting/exiting without a
|
|||||||
matching `remoteEnable(False)` (`R0`) - i.e. an ungraceful disconnect while
|
matching `remoteEnable(False)` (`R0`) - i.e. an ungraceful disconnect while
|
||||||
remote control is enabled - puts the device into a locked-out state.
|
remote control is enabled - puts the device into a locked-out state.
|
||||||
|
|
||||||
## Recovery attempts
|
## Recovery attempts - v1.12 vs v1.14
|
||||||
|
|
||||||
| # | Recovery method | Mechanism | Result |
|
v1.14 flashed via `--update-firmware HendiCtrl_0114.srec`;
|
||||||
|
`getSoftwareVersion()` confirmed `v1.14` afterward.
|
||||||
|
|
||||||
|
| Recovery method | Mechanism | v1.12 (original) | v1.14 (firmware fix) |
|
||||||
|---|---|---|---|
|
|---|---|---|---|
|
||||||
| 1 | `--reset` (toggle DTR/RTS reset line) | Soft reset via serial control lines, no power loss | **Fails** - `remoteEnable(True)` still returns `HendiException("Communication error")` on the next connection |
|
| Plain reconnect, no `--reset` | Fresh serial connection only, no DTR/RTS toggle | **Fails** | **Fails** - unchanged, a bare reconnect alone still does not clear the lockout |
|
||||||
| 2 | `--reset` immediately followed by `--test-heater` in the *same* process/connection | Soft reset, then reuse the still-open serial connection | Succeeded once, but not reproducible across repeat isolated attempts - not a reliable recovery path |
|
| `--reset`, isolated process | Soft reset via DTR/RTS toggle, no power loss | **Fails** (one fluke recovery when combined with `--test-heater` in the *same* process/connection - not reproducible in isolation) | **Recovers** - reproducible across two independent trigger/reset/verify cycles |
|
||||||
| 3 | Physical power cycle (device knob) | Full power-off/on of the unit | **Recovers** - `remoteEnable(True)` succeeds immediately afterward, heater sweep runs cleanly |
|
| Physical power cycle (device knob) | Full power-off/on of the unit | **Recovers** | Not retested on v1.14 (superseded by `--reset` working) |
|
||||||
|
|
||||||
## Symptom while locked out
|
## Symptom while locked out
|
||||||
|
|
||||||
@@ -29,7 +32,11 @@ remote control is enabled - puts the device into a locked-out state.
|
|||||||
## Conclusion
|
## Conclusion
|
||||||
|
|
||||||
On firmware v1.12, only a physical power cycle clears the lockout; neither a
|
On firmware v1.12, only a physical power cycle clears the lockout; neither a
|
||||||
serial soft-reset nor a fresh serial reconnect does. This is the behavior the
|
serial soft-reset nor a fresh serial reconnect does reliably.
|
||||||
planned firmware fix should address - a graceful-disconnect timeout, an
|
|
||||||
explicit unlock command, or making the DTR/RTS reset line actually clear the
|
**Firmware v1.14 fixes this partially**: a soft reset (`--reset`, i.e.
|
||||||
lockout flag.
|
toggling the DTR/RTS line) now reliably clears the lockout, confirmed across
|
||||||
|
two independent trigger/reset/verify cycles - no physical power cycle
|
||||||
|
needed. However, a plain reconnect *without* `--reset` still does not clear
|
||||||
|
it, so the fix specifically ties recovery to the DTR/RTS reset line rather
|
||||||
|
than to any new connection.
|
||||||
|
|||||||
Reference in New Issue
Block a user