# Start Here — Cédric Build Brief ## Mission Build the machine-side control stack for the Fullum swing-arm polisher so Normand can run manual polishing sessions safely while producing clean telemetry for the rest of the software suite. ## v1 priority order 1. Safety/interlocks and deterministic state machine. 2. Manual mode from the touchscreen / host UI. 3. Stable host↔Teensy setpoint + telemetry protocol. 4. KWR75B-CAN force/torque acquisition and stale-frame detection. 5. Table/arm encoder acquisition and synchronized timestamps. 6. ODrive spindle command/telemetry path. 7. Run/manual logs and `/data/` file layout. 8. Controller-job intake dry-run for future program execution. ## Mental model The host says: "run these approved setpoints and log what happens." The Teensy says: "accepted/rejected, here is measured reality, here are events/faults." Neither side invents polishing strategy. ## Ask Nick for - protocol notes; - firmware module breakdowns; - test checklists; - telemetry schema clarifications; - state-machine/safety edge cases; - concise implementation notes in `docs/nick-generated/`; - feature-request classification using `docs/11-feature-request-intake.md`. ## If you are using an LLM/coding assistant Start with [`LLM_CONTEXT.md`](LLM_CONTEXT.md), then load the narrower docs relevant to the change you are making. Do not let the LLM infer optical strategy or change safety/protocol/telemetry contracts without Antoine approval.