Multi-Z Reference Configuration
This page compiles common configuration methods for dual Z motors. The pins, travel distances, and directions in the examples need to be modified according to the actual motherboard and machine structure.
Debugging Reminders
- Before debugging the Z axis for the first time, ensure that the lead screws, couplings, and platform will not jam.
- Multiple Z motors must use the same
rotation_distance,microsteps, and mechanical transmission specifications. - When using a Probe or BL-Touch as the Z endstop, do not retain
position_endstop.
Dual Z with Single Endstop
When dual Z motors share one endstop, you only need to configure endstop_pin in [stepper_z]. The second Z motor [stepper_z1] does not require an endstop_pin.
printer.cfg
[stepper_z]
step_pin: <z_step_pin>
dir_pin: <z_dir_pin>
enable_pin: !<z_enable_pin>
rotation_distance: 4
full_steps_per_rotation: 200
microsteps: 16
endstop_pin: ^!<z_endstop_pin>
position_endstop: 0
position_max: 300
homing_speed: 50
homing_retract_dist: 5
[stepper_z1]
step_pin: <z1_step_pin>
dir_pin: <z1_dir_pin>
enable_pin: !<z1_enable_pin>
rotation_distance: 4
full_steps_per_rotation: 200
microsteps: 16
Dual Z with Dual Endstops
When dual Z motors use independent endstops, the second Z motor needs an endstop_pin. This method is suitable for machines that require detecting the endpoints of both Z axes separately.
printer.cfg
[stepper_z]
step_pin: <z_step_pin>
dir_pin: <z_dir_pin>
enable_pin: !<z_enable_pin>
rotation_distance: 4
full_steps_per_rotation: 200
microsteps: 16
endstop_pin: ^!<z_endstop_pin>
position_endstop: 0
position_max: 300
homing_speed: 50
homing_retract_dist: 5
[stepper_z1]
step_pin: <z1_step_pin>
dir_pin: <z1_dir_pin>
enable_pin: !<z1_enable_pin>
rotation_distance: 4
full_steps_per_rotation: 200
microsteps: 16
endstop_pin: ^!<z1_endstop_pin>
Dual Z Using Probe or BL-Touch
When using a Probe or BL-Touch as the Z endstop, change the endstop_pin in the first Z configuration to probe:z_virtual_endstop, and add the corresponding [probe] or [bltouch] configuration.
printer.cfg
[stepper_z]
step_pin: <z_step_pin>
dir_pin: <z_dir_pin>
enable_pin: !<z_enable_pin>
rotation_distance: 4
full_steps_per_rotation: 200
microsteps: 16
endstop_pin: probe:z_virtual_endstop
# position_endstop: 0
position_max: 300
homing_speed: 50
homing_retract_dist: 5
step_pulse_duration: 0.000004
[stepper_z1]
step_pin: <z1_step_pin>
dir_pin: <z1_dir_pin>
enable_pin: !<z1_enable_pin>
rotation_distance: 4
full_steps_per_rotation: 200
microsteps: 16
[probe]
pin: ^<probe_pin>
x_offset: 0
y_offset: 0
# z_offset: 0
speed: 3.0
lift_speed: 5
samples: 3
samples_result: median
sample_retract_dist: 3.0
samples_tolerance: 0.075
samples_tolerance_retries: 3
Check Sequence
- Use
STEPPER_BUZZ STEPPER=stepper_zto check the direction of the first Z motor. - Use
STEPPER_BUZZ STEPPER=stepper_z1to check the direction of the second Z motor. - Confirm that both Z motors move up and down in the same direction.
- After confirming the endstop or Probe status is correct, execute
G28 Z.
Loading...