Homing and Direction Calibration Guide
Motor Wiring Check
- Wiring operations must be performed with power off
- The wire sequence for all motors should be consistent
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 | The two wires of the same phase are connected together |
B | Phase B | The two wires of the same phase are connected together |
Wiring Principles:
- The two wires of the same phase connect to the same group (AA or BB)
- The wire sequence for all motors should be consistent to avoid direction confusion
- If unsure about the wire sequence, use a multimeter to measure; the two wires that are shorted belong to the same phase
Verifying 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 a reciprocating motion. If the direction is incorrect, modify the
dir_pinin the configuration.
Modifying 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 the positive direction (maximum position)false→ Home to the 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 controls are 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 controls are 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 controls are swapped, X positive/negative direction correct, Y positive/negative direction reversed | 1. Reverse X motor wiring 2. Swap the motor wires of X and Y overall |
| Case 4 | XY-axis controls are swapped, X positive/negative direction reversed, Y positive/negative direction correct | 1. Reverse Y motor wiring 2. Swap the motor wires of X and Y overall |
| Case 5 | XY-axis controls are correct, but both XY positive/negative directions are reversed | Reverse both X motor and Y motor wiring simultaneously |
| Case 6 | XY-axis controls are correct, X positive/negative direction correct, Y positive/negative direction reversed | Swap the motor wires of X and Y overall |
| Case 7 | XY-axis controls are correct, X positive/negative direction reversed, Y positive/negative direction correct | 1. Swap the motor wires of X and Y overall 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 the following to printer.cfg:
[force_move]
enable_force_move: true
After enabling, force move operations can be performed via the control interface:
- Single-axis Limitation: 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 limit configuration has the pull-up ^ symbol added, check for loose wiring |
| Motor jitters and doesn't home | Motor lost steps or driver current insufficient | Check driver current settings and motor wiring correctness |
| Single axis fails to home | Motor wire sequence error or limit switch failure | Check motor wiring sequence, use QUERY_ENDSTOPS to confirm limit switch status |