Skip to main content

Homing and Direction Calibration Guide

Motor Wiring Check

Prerequisites Before Wiring
  • 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 LabelMeaningDescription
APhase AConnect two wires of the same phase together
BPhase BConnect 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)
Z-axis Direction Requirement
  • 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_pin in 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
Configuration Explanation

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 SymptomDescriptionSolution
Case 1XY axis controls are swapped, and X and Y move in opposite directions for both positive and negativeReverse the X motor wiring (swap any two phases of the X motor)
Case 2XY axis controls are swapped, but the positive and negative movement directions of X and Y are correctReverse the Y motor wiring (swap any two phases of the Y motor)
Case 3XY axis controls are swapped, X positive/negative direction is correct, Y positive/negative direction is reversed1. Reverse the X motor wiring
2. Swap the X and Y motor wires entirely
Case 4XY axis controls are swapped, X positive/negative direction is reversed, Y positive/negative direction is correct1. Reverse the Y motor wiring
2. Swap the X and Y motor wires entirely
Case 5XY axis controls are correct, but both X and Y positive/negative directions are reversedReverse both the X and Y motor wiring
Case 6XY axis controls are correct, X positive/negative direction is correct, Y positive/negative direction is reversedSwap the X and Y motor wires entirely
Case 7XY axis controls are correct, X positive/negative direction is reversed, Y positive/negative direction is correct1. 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:

printer.cfg
[force_move]
enable_force_move: true

After enabling, you can perform forced movement operations through the control interface:

Loading...
Important Notes
  • 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 SymptomPossible CauseSolution
Homing triggers repeatedlyUnstable endstop signal or interference in wiringCheck if the ^ pull-up symbol is added in the endstop configuration, check if wiring is loose
Motor vibrates without resettingMotor skipping steps or insufficient driver currentCheck the driver current settings and ensure the motor wiring is correct
Single axis cannot homeIncorrect motor wire sequence or endstop switch failureCheck the motor wire sequence, use QUERY_ENDSTOPS to confirm the endstop switch status
Loading...