Homing and Direction Calibration Guide
Motor Wiring Check
- Power must be off during wiring operations
- All motors should have consistent wire sequence
Wiring Method
The mainboard motor interface is typically in AABB format, meaning the two wires of the same phase are connected to the same group:
| Interface Label | Meaning | Description |
|---|---|---|
A | Phase A | Two wires of the same phase connected together |
B | Phase B | Two wires of the same phase connected together |
Wiring Principles:
- Two wires of the same phase connect to the same group (AA or BB)
- All motors should have consistent wire sequence to avoid direction confusion
- If unsure of the wire sequence, use a multimeter to measure; the two shorted wires belong to the same phase
Verify Motor Movement
Use the following commands to verify each motor operates correctly (the motor will rotate slightly forward and backward):
STEPPER_BUZZ STEPPER=stepper_x # X-axis motor
STEPPER_BUZZ STEPPER=stepper_y # Y-axis motor
STEPPER_BUZZ STEPPER=stepper_z # Z0-axis motor
STEPPER_BUZZ STEPPER=stepper_z1 # Z1-axis motor (if present)
STEPPER_BUZZ STEPPER=stepper_z2 # Z2-axis motor (if present)
STEPPER_BUZZ STEPPER=stepper_z3 # Z3-axis motor (if present)
- X and Y-axis motors have no specific direction requirement
- Z-axis motors must move up first, then down in reciprocating motion. If the direction is wrong, modify the
dir_pinin the configuration.
Modify Motor Direction
If the direction is wrong, modify the dir_pin in the configuration file by adding or removing the ! symbol:
[stepper_z]
step_pin: PE7
dir_pin: !PE11 # Add ! to reverse direction, or remove ! to restore
enable_pin: !PE10
Homing Test
Single-axis Homing
Execute the following commands sequentially to test independent homing for each axis:
G28 X
G28 Y
G28 Z
Key Points to Observe:
- Is the motor rotation direction correct?
- Does it stop immediately after triggering the limit switch?
- Does the coordinate after homing match the configuration expectation?
- Voron and other CoreXY structures: X/Y axes typically home to the maximum position
- Traditional Cartesian structures: X/Y axes typically home to the minimum position
The homing coordinate position is determined by the homing_positive_dir parameter:
true→ Home to positive direction (maximum position)false→ Home to negative direction (minimum position)
CoreXY Structure Direction Calibration
Common issues and solutions for XY motor control in CoreXY structures:
| Fault Phenomenon | Description | Solution |
|---|---|---|
| Case 1 | XY axis control is swapped, and both XY movement positive/negative directions are reversed | Reverse X motor wiring (swap any two phase wires of the X motor) |
| Case 2 | XY axis control is swapped, but XY movement positive/negative directions are correct | Reverse Y motor wiring (swap any two phase wires of the Y motor) |
| Case 3 | XY axis control is swapped, X positive/negative direction correct, Y positive/negative direction reversed | 1. Reverse X motor wiring 2. Swap X and Y motor wires entirely |
| Case 4 | XY axis control is swapped, X positive/negative direction reversed, Y positive/negative direction correct | 1. Reverse Y motor wiring 2. Swap X and Y motor wires entirely |
| Case 5 | XY axis control is correct, but both XY positive/negative directions are reversed | Reverse both X and Y motor wiring simultaneously |
| Case 6 | XY axis control is correct, X positive/negative direction correct, Y positive/negative direction reversed | Swap X and Y motor wires entirely |
| Case 7 | XY axis control is correct, X positive/negative direction reversed, Y positive/negative direction correct | 1. Swap X and Y motor wires entirely 2. Reverse both X and Y motor wiring simultaneously |
Force Move Function
If manual motor movement is needed before homing, the force move function must be enabled.
Add to printer.cfg:
[force_move]
enable_force_move: true
After enabling, force move operations can be performed via the control interface:
- Single-axis restriction: Only one motor can be force-moved at a time
- Multi-axis coordination: To move multiple axes synchronously (e.g., dual Z axes), first set the printhead position:
SET_KINEMATIC_POSITION x=50 y=50 z=20 - Safety reminder: Ensure the printhead path is clear of obstacles when using the force move function
Homing Issue Troubleshooting
| Problem Phenomenon | Possible Cause | Solution |
|---|---|---|
| Homing triggers repeatedly | Unstable limit signal or wiring interference | Check if the pull-up ^ symbol is added in the limit configuration, check for loose wiring |
| Motor vibrates without resetting | Motor lost steps or insufficient driver current | Check driver current settings and motor wiring correctness |
| Single axis fails to home | Incorrect motor wire sequence or faulty limit switch | Check motor wiring sequence, use QUERY_ENDSTOPS to confirm limit switch status |