Skip to main content

Homing and Direction Calibration Guide

Motor Wiring Check

Important Before Wiring
  • 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 LabelMeaningDescription
APhase AThe two wires of the same phase are connected together
BPhase BThe 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)
Z-axis Direction Requirement
  • 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_pin in 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
Configuration Explanation

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

printer.cfg
[force_move]
enable_force_move: true

After enabling, force move operations can be performed via the control interface:

Loading...
Precautions
  • 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 PhenomenonPossible CauseSolution
Homing triggers repeatedlyUnstable limit signal or wiring interferenceCheck if the limit configuration has the pull-up ^ symbol added, check for loose wiring
Motor jitters and doesn't homeMotor lost steps or driver current insufficientCheck driver current settings and motor wiring correctness
Single axis fails to homeMotor wire sequence error or limit switch failureCheck motor wiring sequence, use QUERY_ENDSTOPS to confirm limit switch status
Loading...