Mechanical Gantry Leveling (G34) Block For Dual Z-Axis Ender 3 Style Printers

Mechanical Gantry Leveling (G34) Block For Dual Z-Axis Ender 3 Style Printers

Boost
1
1
0

Print Profile(0)


Add the first print profile to earn points

Boost
1
1
0
0
0
0
Released

Description

A simple mechanical end-stop for dual Z axis Ender 3 style printers to be used with mechanical gantry leveling routines. Print two of these blocks and attach them the outside of the two Z extrusions with a single M5 screw and T nut each. Be sure to press the block hard up against the top extrusion when you're installing it so they are even with one another.

 

To level the gantry, move the Z axis to it's maximum position (which should be set just below where the top outer Z axis wheels contact the blocks). Then, lower the TMC stepper currents to ~0.12A and then force move the gantry up about 10 mm. Each wheel will hit it's respective block and therefore level the gantry.

 

I found it easiest to have the wheels run into the hard stop rather than the gantry itself just due to space constraints.

 

NOTE: This requires a board with UART wired stepper drivers, like an SKR mini E3 V3. This will not work with stock creality boards since you cannot change the stepper current through the firmware.

 

My example klipper macro for mechanical gantry leveling is shown below. [force_move] must be enabled in printer.cfg.

 

[gcode_macro MECHANICAL_GANTRY_CALIBRATION]
gcode:
{% set my_current = params.CURRENT|default(0.12)|float %} ; adjust crash current as required without fighting config.
{% set oldcurrent = printer.configfile.settings["tmc2209 stepper_z"].run_current %} ; TODO: Find runtime current settings
{% set oldhold = printer.configfile.settings["tmc2209 stepper_z"].hold_current %}
{% set x_max = printer.toolhead.axis_maximum.x %}
{% set y_max = printer.toolhead.axis_maximum.y %}
{% set z_max = printer.toolhead.axis_maximum.z %}

G28
G90 ; absolute
G0 X{x_max / 2} Y{y_max / 2} F3600
G0 Z{z_max - 2} F600
SET_TMC_CURRENT STEPPER=stepper_z CURRENT={my_current}
G4 P200 ; Probably not necessary, it is here just for sure
FORCE_MOVE STEPPER=stepper_z DISTANCE=10 VELOCITY=6
G4 P200 ;
FORCE_MOVE STEPPER=stepper_z DISTANCE=-4 VELOCITY=6
G4 P200 ; same as the first one
SET_TMC_CURRENT STEPPER=stepper_z CURRENT={oldcurrent} HOLDCURRENT={oldhold}
G4 P200 ; same as the first one
G28 Z

 

Mechanical gantry leveling can also be performed with marlin firmware. See here for more info.

Mechanical Gantry Calibration | Marlin Firmware (marlinfw.org)

 

Comment & Rating (0)

Please fill in your opinion
(0/5000)

No more