Skip to main content

Homing and Direction Calibration Guide

Motor Wiring Check

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

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

printer.cfg
[force_move]
enable_force_move: true

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

Loading...
Notes
  • 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 PhenomenonPossible CauseSolution
Homing triggers repeatedlyUnstable limit signal or wiring interferenceCheck if the pull-up ^ symbol is added in the limit configuration, check for loose wiring
Motor vibrates without resettingMotor lost steps or insufficient driver currentCheck driver current settings and motor wiring correctness
Single axis fails to homeIncorrect motor wire sequence or faulty limit switchCheck motor wiring sequence, use QUERY_ENDSTOPS to confirm limit switch status
Loading...