# 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. AK60 spindle command/telemetry path, including CAN topology and safety power-removal assumptions.
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.
