# Technician tool v0.7 - changes ## Serial reading (firmware 1.0.16+, see firmware-diagnostics-what-changed.md) - `KOTA: key=value` lines are parsed into fields (`core/logline.py`, kind `KOTA`) and interpreted directly by the engine (`diag/engine.py` `_kota_*`, knowledge in `diag/kota.py`) instead of regex rules: boot, i2c, rtc, sd, matter, mic, health, status, led, restart. - Exact status LED (colour + pattern + meaning) from `led` lines; `status` lines give the reason and a status finding that is resolved when the status changes. Cyan LED supported. - Restart cause from `last_restart=` / `restart reason=`; state before a restart from `led previous_boot`. - Error IDs `[E-XX-NN]`: looked up in `diag/error_ids.csv` (copy of the firmware's docs/error_ids.csv); shown with the technician action. Old message rules still match (ID prefix is stripped for matching). - Diagnosis panel: new "Box self-report" section; log view filter "KOTA diagnostics + errors". - Matter QR dialog uses the exact QR/manual code reported by the box. - Older firmware (v1.0) is still diagnosed as before. ## Flashing - Only `.bin` files in the tool's `firmware/` folder can be flashed (import / developer library removed, no manifest needed). The list shows the compile date read from the firmware itself, newest first. - "Refresh list" and "Open firmware folder" buttons; broken or duplicate files are listed as "Not offered". - Flash verification compares the 8-digit build hash from the `KOTA: boot` line. Note: the KOTA lines are tested against lines built from the firmware source; the firmware has not yet been confirmed on hardware.