Bring-up
Requires the printer.cfg from Configuration
and a running Klipper. Run each command below once per axis (stepper_x,
then stepper_y).
Self-test
Section titled “Self-test”FOCI_SELFTEST STEPPER=stepper_xChecks board and wiring health, independent of motor tuning. A passing run:
ADC calibration .................... PASS (offset_i0=..., offset_i1=...) Motor coil A ....................... PASS (current=...) Motor coil B ....................... PASS (current=...) Phase wiring ....................... PASS Encoder ............................ PASS Encoder direction .................. PASS R-model evidence ................... PASS L control-model evidence ........... PASSFOCI_SELFTEST stepper_x: SUCCEEDED, all 8 stages passed.Stage reference:
| Stage | Checks | On failure |
|---|---|---|
| ADC calibration | TMC4671 current-sense offsets | Board or chip fault, not wiring |
| Motor coil A / B | Each coil draws current when driven | Open or shorted phase. Check the motor connector |
| Phase wiring | Coils aren’t cross-wired to the wrong driver channel | Swap the two motor phase pairs at the connector |
| Encoder | Encoder signal present and readable | Encoder cable disconnected or miswired |
| Encoder direction | Encoder counts the expected direction for commanded current | Not a wiring fault. Console reports encoder_direction looks inverted. Set encoder_direction: reversed in [foci stepper_x] and re-run |
| R-model / L control-model evidence | Resistance/inductance measurement quality | Motor moved during the test. Ensure it’s unloaded and free to turn, then re-run |
FOCI_SETUP STEPPER=stepper_xIdentifies motor resistance and inductance and applies current gains.
Defaults to the balanced profile. Pass PROFILE=conservative or
PROFILE=stiff to change it.
FOCI_SETUP stepper_x: SUCCEEDED, resistance/inductance identified, current gains applied.Warnings
Section titled “Warnings”If the measurement wasn’t fully clean, the console also prints a warning line, for example:
FOCI stepper_x inner confidence: coil R mismatch, theta/tau ratio| Warning | Cause | Action |
|---|---|---|
| coil R mismatch, coil control-model tau mismatch, theta/tau ratio | Electrical asymmetry between the two coils | Check the connector, re-run |
| current gains fell back to defaults, host-default confidence (no fresh measurement) | Identification run didn’t get a clean measurement | Ensure the motor is unloaded and free to move, re-run |
A warning doesn’t block the axis from working. Firmware tunes it more
conservatively than a clean measurement would allow, so you can proceed
to bring-up the next axis or start homing. To clear a warning instead,
apply the fix from the table above and re-run FOCI_SETUP before
SAVE_CONFIG.
SAVE_CONFIGPersists the identified resistance, inductance, and current gains to
printer.cfg, and restarts Klipper. Run self-test and setup for both
axes first, so one SAVE_CONFIG covers both.
First home
Section titled “First home”Keep a hand on emergency stop (M112, or your printer’s physical
switch) in case an axis moves the wrong way or doesn’t stop at the
endstop.
G28 XG28 YEach axis moves and homes correctly, but isn’t tuned for production motion yet. Continue with Tuning before printing.