docs: sync control source to AK60 RPi5 BiSS-C
This commit is contained in:
@@ -40,7 +40,7 @@ Rationale: the controller is not deciding polishing strategy. It is executing/lo
|
||||
## 4. Affected layers
|
||||
|
||||
- Host controller: normalize/validate direction aliases and include direction in manual setpoints/log events.
|
||||
- Teensy firmware: accept direction in `MANUAL_START`, `SETPOINT`, and future `SEGMENT_START`; map to ODrive command sign.
|
||||
- Teensy firmware: accept direction in `MANUAL_START`, `SETPOINT`, and future `SEGMENT_START`; map to AK60 command direction/sign convention.
|
||||
- Host ↔ Teensy protocol: add `spindle_direction` / `commanded_spindle_direction` enum values `cw` / `ccw`.
|
||||
- Telemetry channels: add `spindle_direction_setpoint` and `spindle_direction_actual` as recommended channels.
|
||||
- Run/manual-session logs: record direction separately from RPM; RPM remains a non-negative magnitude.
|
||||
@@ -51,8 +51,8 @@ Rationale: the controller is not deciding polishing strategy. It is executing/lo
|
||||
## 5. Safety implications
|
||||
|
||||
- Direction must not be inferred from signed RPM; use explicit enum plus non-negative RPM magnitude.
|
||||
- Direction reversal while spindle is moving should be ramped/handled safely by firmware/ODrive implementation. The scaffold currently defines the contract; Cédric should decide whether live reversal is allowed directly or requires ramp-to-zero before applying the new direction.
|
||||
- ODrive sign mapping is a commissioning item: firmware must be configured so UI `cw`/`ccw` matches physical observed tool rotation.
|
||||
- Direction reversal while spindle is moving should be ramped/handled safely by firmware/AK60 implementation. The scaffold currently defines the contract; Cédric should decide whether live reversal is allowed directly or requires ramp-to-zero before applying the new direction.
|
||||
- AK60 direction mapping is a commissioning item: firmware must be configured so UI `cw`/`ccw` matches physical observed tool rotation.
|
||||
|
||||
Safety decision:
|
||||
|
||||
@@ -72,14 +72,14 @@ Safety decision:
|
||||
- [x] Host contract tests for enum values and alias normalization.
|
||||
- [x] Schema field test for `commanded_spindle_direction`.
|
||||
- [x] Telemetry channel test for direction channels.
|
||||
- [ ] Firmware compile/build check once Cédric maps this into Teensy/ODrive code.
|
||||
- [ ] Firmware compile/build check once Cédric maps this into Teensy/AK60 code.
|
||||
- [ ] Bench test confirms UI `cw` physically rotates clockwise by the documented convention.
|
||||
- [ ] Bench test confirms UI `ccw` physically rotates counter-clockwise by the documented convention.
|
||||
- [ ] Bench test confirms live reversal behavior is safe or blocked until spindle reaches zero.
|
||||
|
||||
## 8. Open questions
|
||||
|
||||
- Cédric: confirm the ODrive command/sign mapping and whether live direction reversal requires ramp-to-zero.
|
||||
- Cédric: confirm the AK60 command/direction mapping and whether live direction reversal requires ramp-to-zero.
|
||||
- Antoine/Normand: confirm the physical viewing convention: current draft uses “viewed from above the toolhead looking down toward the mirror/tool contact.”
|
||||
|
||||
## 9. Implementation notes
|
||||
|
||||
@@ -0,0 +1,44 @@
|
||||
---
|
||||
title: AK60 / Raspberry Pi 5 / BiSS-C Source Sync
|
||||
status: draft
|
||||
requested_by: Antoine Letarte
|
||||
generated_by: Nick / Hermes
|
||||
project: P11-Polisher-Fullum
|
||||
repo: polisher-control
|
||||
source_truth: false
|
||||
created: 2026-07-06
|
||||
privacy: technical-only
|
||||
---
|
||||
|
||||
# AK60 / Raspberry Pi 5 / BiSS-C Source Sync
|
||||
|
||||
## Purpose
|
||||
|
||||
Align the repo foundation with Antoine's accepted hardware corrections before Cédric writes firmware against stale assumptions.
|
||||
|
||||
## Source references
|
||||
|
||||
- P11 firmware source: `software-suite/control/firmware/Fullum-Polisher-Machine-Control-Firmware-Spec-v1.md`
|
||||
- Repo mirror: `docs/reference/fullum-control-firmware-spec/Fullum-Polisher-Machine-Control-Firmware-Spec-v1.md`
|
||||
- Electrical audit TLDR: `2026-07-06-Polisher-Control-Electrical-Audit-TLDR.md`
|
||||
- Change gate: `CEDRIC-PROP-20260609-001`
|
||||
|
||||
## Accepted corrections now reflected here
|
||||
|
||||
1. Host computer is **Raspberry Pi 5 + touchscreen**, not Raspberry Pi 4.
|
||||
2. Toolhead spindle path is **CubeMars AK60-6 V1.1 KV80**, not ODrive S1 + M8325s.
|
||||
3. Table encoder order is `DHR162DB20BAAS30DA02` + `SAR162C143AF14WAP00`, which means **BiSS-C / RS422**.
|
||||
4. Arm encoder order is `BR10DCD14B12DH00` + `BM120A190A1ABA00`, which means **BiSS-C / RS422**.
|
||||
|
||||
## Cédric implementation cautions
|
||||
|
||||
- Do not treat CAN stop/disable as a safety-rated AK60 stop. The safety basis must remove AK60 power through the hardwired safety-controlled post-contactor path and be bench-tested.
|
||||
- Freeze AK60 CAN topology before firmware lock: IDs, frame rates, stale-frame timeouts, fault handling, startup behavior, and whether AK60 shares a CAN bus with KWR75B.
|
||||
- Freeze BiSS-C implementation details before encoder firmware lock: frame timing, CRC/status bits, RS422 transceiver/pinout, shielding, and error handling.
|
||||
- Preserve `cw` / `ccw` as explicit direction enums separate from non-negative RPM; bench-map them to physical rotation.
|
||||
|
||||
## Acceptance checks
|
||||
|
||||
- Firmware source and repo mirror no longer name ODrive/M8325s as the current spindle basis.
|
||||
- Repo start docs, LLM context, roadmap, commissioning checklist, open questions, and machine capability profile now use AK60/RPi5/BiSS-C language.
|
||||
- Host-side tests and JSON validation should still pass after this docs/source refresh.
|
||||
Reference in New Issue
Block a user