# Commissioning Checklist

## Bench — no machine motion

- [ ] Host can open serial link to Teensy.
- [ ] HEARTBEAT / ACK / NACK verified.
- [ ] Bad CRC/frame rejected with NACK or ignored safely.
- [ ] State machine illegal transitions logged.
- [ ] Telemetry frames parse at expected rate.

## Sensor bring-up

- [ ] KWR75B-CAN isolated CAN wiring verified.
- [ ] CAN bit rate confirmed.
- [ ] Vendor frame map decoded into Fx/Fy/Fz/Mx/My/Mz/status.
- [ ] F/T stale-frame watchdog tested.
- [ ] Table encoder angle stable and monotonic.
- [ ] Arm encoder angle stable.

## Drive bring-up

- [ ] AK60 runtime interface selected and documented.
- [ ] AK60 enable/disable/fault reset path verified.
- [ ] Spindle RPM command, actual feedback, direction mapping, and safe ramp/stop behavior verified.
- [ ] Z force actuator command path verified with safe limits.
- [ ] Brake engaged feedback verified if installed.

## Safety

- [ ] STO channels wired as independent safety channels per SV2A and safety relay manuals.
- [ ] Z brake engages on E-stop, STO/drive fault, controller crash, and power loss with no software dependency.
- [ ] AK60 power removal through the safety-controlled post-contactor bus verified; CAN stop is not treated as safety-rated.

- [ ] E-stop hard circuit tested independent of software state.
- [ ] Force over-limit response tested.
- [ ] Encoder-loss response tested.
- [ ] Drive-fault response tested.
- [ ] Host timeout -> pause -> abort behavior tested.
- [ ] FAULTED requires explicit reset.

## Manual run

- [ ] Geometric gate blocks stale/missing geometry.
- [ ] Manual start succeeds after valid geometry.
- [ ] Force/table/spindle setpoints ramp smoothly.
- [ ] Live setpoint changes are logged.
- [ ] Telemetry CSV has required header and >=100 Hz samples.
- [ ] Manual-session log includes setpoint history and actual summary.
- [ ] Artifacts are saved under `/data/manual/{session_id}/`.
