Motion backend certification¶
MaD firmware has one motion backend: the closed-loop servo, dev_servo,
driven by app_motion on the MOTOR cog. The open-loop dev_stepper path was
removed once nothing built it.
| Layer | Automated coverage |
|---|---|
dev_servo |
Unity test_dev_servo: enable, moveTo/atTarget, velocity mode, stop, setPosition, following error, waveforms, the profile's pulse scale, and the stall guard (following-error hard ceiling at once, soft band after persistence, and the travel check on the step pulses; frozen, buzzing, crawling, runaway, a dead encoder or a jam near the target, during a small waveform or at tensile speed, a frame redefined mid-tick, and no trip on lagging-drive stops, reversals or waveforms) against HAL doubles |
app_motion |
Unity test_app_motion against dev_servo doubles, including encoder-scaled moves and profile validation |
| The machine | SIL: the P2 image on the ISS with the mad-machine kind's drive, encoder and hard stop on the machine's project files: mad-cosim.toml (make e2e-motion) and SERVO-stall on mad-hard-stop-cosim.toml (make e2e-stall), both on every PR |
PR checklist¶
When changing motion/HAL:
- Run
test_dev_servoandtest_app_motion(pio test -e native_test -f …). - If the change touches how the carriage moves, run the motion e2e on
mad-cosim.toml(make -C SIL e2e-motion) or say why it was not needed. - Hardware the SIL cannot model (the real drive, its tuning) still needs a bench check; say in the PR what was and was not run there.