Homing and Direction Calibration Guide
Motor Wiring Check
- Wiring operations must be performed with power off
- The wire sequence of all motors should be consistent
Wiring Method
The motor interface on the motherboard is typically in AABB format, meaning two wires of the same phase are connected to the same group:
| Interface Label | Meaning | Description |
|---|---|---|
A | Phase A | Connect two wires of the same phase together |
B | Phase B | Connect two wires of the same phase together |
Wiring Principles:
- Two wires of the same phase are connected to the same group (AA or BB)
- The wire sequence of all motors should be consistent to avoid directional confusion
- If the wire sequence is uncertain, use a multimeter to measure which two wires have continuity, indicating the same phase
Verifying Motor Movement
Use the following commands to verify that each motor operates correctly (the motor will perform small forward and reverse rotations):
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 available)
STEPPER_BUZZ STEPPER=stepper_z2 # Z2 axis motor (if available)
STEPPER_BUZZ STEPPER=stepper_z3 # Z3 axis motor (if available)
- X and Y axis motors have no specific direction requirements
- Z-axis motors must first move up and then down in a reciprocating motion. If the direction is incorrect, modify the
dir_pinin the configuration.
Modifying Motor Direction
If the direction is incorrect, modify the dir_pin in the configuration file by adding or removing the ! symbol:
[stepper_z]
step_pin: <z_step_pin>
dir_pin: !<z_dir_pin> # Add ! to reverse direction, or remove ! to restore
enable_pin: !<z_enable_pin>
Homing Test
Single Axis Homing
Execute the following commands sequentially to test independent homing for each axis:
G28 X
G28 Y
G28 Z
Key Observations:
- Whether the motor rotation direction is correct
- Whether it stops immediately after triggering the endstop
- Whether the coordinates after homing match the configuration expectations
- Voron and other CoreXY structures: X/Y axes usually home to the maximum position
- Traditional Cartesian structures: X/Y axes usually home to the minimum position
The homing coordinate position is determined by the homing_positive_dir parameter:
true→ Homes in the positive direction (maximum position)false→ Homes in the negative direction (minimum position)
CoreXY Structure Direction Calibration
Common issues and solutions for XY motor control in CoreXY structures:
| Fault Symptom | Description | Solution |
|---|---|---|
| Case 1 | XY axis controls are swapped, and X and Y move in opposite directions for both positive and negative | Reverse the X motor wiring (swap any two phases of the X motor) |
| Case 2 | XY axis controls are swapped, but the positive and negative movement directions of X and Y are correct | Reverse the Y motor wiring (swap any two phases of the Y motor) |
| Case 3 | XY axis controls are swapped, X positive/negative direction is correct, Y positive/negative direction is reversed | 1. Reverse the X motor wiring 2. Swap the X and Y motor wires entirely |
| Case 4 | XY axis controls are swapped, X positive/negative direction is reversed, Y positive/negative direction is correct | 1. Reverse the Y motor wiring 2. Swap the X and Y motor wires entirely |
| Case 5 | XY axis controls are correct, but both X and Y positive/negative directions are reversed | Reverse both the X and Y motor wiring |
| Case 6 | XY axis controls are correct, X positive/negative direction is correct, Y positive/negative direction is reversed | Swap the X and Y motor wires entirely |
| Case 7 | XY axis controls are correct, X positive/negative direction is reversed, Y positive/negative direction is correct | 1. Swap the X and Y motor wires entirely 2. Reverse both the X and Y motor wiring |
Force Move Feature
If you need to manually move a motor before homing, enable the force move feature.
Add the following to printer.cfg:
[force_move]
enable_force_move: true
After enabling, you can perform forced movement operations through 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 print head position:
SET_KINEMATIC_POSITION x=50 y=50 z=20
- Safety Tip: Ensure the print head path is clear of obstacles when using the force move feature
Homing Troubleshooting
| Problem Symptom | Possible Cause | Solution |
|---|---|---|
| Homing triggers repeatedly | Unstable endstop signal or interference in wiring | Check if the ^ pull-up symbol is added in the endstop configuration, check if wiring is loose |
| Motor vibrates without resetting | Motor skipping steps or insufficient driver current | Check the driver current settings and ensure the motor wiring is correct |
| Single axis cannot home | Incorrect motor wire sequence or endstop switch failure | Check the motor wire sequence, use QUERY_ENDSTOPS to confirm the endstop switch status |