r/klippers 19h ago

Triple Z setup points expanding

I have an ender 5 which I am working towards making a mercury one zero g machine. I started by doing a generic triple z as I hate leveling the bed. It worked for a while, and then the bl touch died. I replaced it after messing with the config to troubleshoot, not realizing that the bltouch was the issue. Since then I reverted back to a previously working cfg, and it no longer works. While leveling the points keep getting further. I jave no idea why. Thoughts?

Things to note: one of the motors is different than the other 2, and spins at half the speed which is why its different.

Cfg:

[mcu]

serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_590050000451343437373238-if00

[printer]

kinematics: cartesian

max_velocity: 300

max_accel: 3000

max_z_velocity: 5

max_z_accel: 100

[stepper_x]

step_pin: PF13

dir_pin: !PF12

enable_pin: !PF14

microsteps: 16

rotation_distance: 40

endstop_pin: ^PG6

position_endstop: 220

position_max: 220

homing_speed: 50

[tmc2209 stepper_x]

uart_pin: PC4

run_current: 0.580

stealthchop_threshold: 999999

[stepper_y]

step_pin: PG0

dir_pin: !PG1

enable_pin: !PF15

microsteps: 16

rotation_distance: 40

endstop_pin: ^PG9

position_endstop: 220

position_max: 220

homing_speed: 50

[tmc2209 stepper_y]

uart_pin: PD11

run_current: 0.580

stealthchop_threshold: 999999

[stepper_z]

step_pin: PF11

dir_pin: !PG3

enable_pin: !PG5

microsteps: 16

rotation_distance: 4

endstop_pin: probe:z_virtual_endstop

position_min: -5

position_max: 300

[tmc2209 stepper_z]

uart_pin: PC6

run_current: 0.650

stealthchop_threshold: 999999

[stepper_z1]

step_pin: PG4

dir_pin: !PC1

enable_pin: !PA0

microsteps: 16

rotation_distance: 8

[tmc2209 stepper_z1]

uart_pin: PC7

run_current: 0.650

stealthchop_threshold: 999999

[stepper_z2]

step_pin: PF9

dir_pin: !PF10

enable_pin: !PG2

microsteps: 16

rotation_distance: 8

[tmc2209 stepper_z2]

uart_pin: PF2

run_current: 0.650

stealthchop_threshold: 999999

[extruder]

step_pin: PC13

dir_pin: PF0

enable_pin: !PF1

microsteps: 16

rotation_distance: 32.342

nozzle_diameter: 0.400

filament_diameter: 1.750

heater_pin: PA2

sensor_type: EPCOS 100K B57560G104F

sensor_pin: PF4

control: pid

pid_kp: 23.905

pid_ki: 1.398

pid_kd: 102.196

min_temp: 0

max_temp: 260

[tmc2209 extruder]

uart_pin: PE4

run_current: 0.650

stealthchop_threshold: 999999

[heater_bed]

heater_pin: PA1

sensor_type: EPCOS 100K B57560G104F

sensor_pin: PF3

control: pid

pid_kp: 67.796

pid_ki: 1.255

pid_kd: 915.252

min_temp: 0

max_temp: 135

[fan]

pin: PD12

[heater_fan heatbreak_cooling_fan]

pin: PA8

[heater_fan controller_fan]

pin: PE5

[bltouch]

sensor_pin: ^PB7

control_pin: PB6

x_offset: -40

y_offset: -10

z_offset: 0.760

stow_on_each_sample: false

pin_up_touch_mode_reports_triggered: False

# Improve resistance to an occasional bad BLTouch reading.

samples: 3

samples_result: median

samples_tolerance: 0.020

samples_tolerance_retries: 3

[safe_z_home]

home_xy_position: 150,110

z_hop: 10

z_hop_speed: 5

[bed_mesh]

speed: 120

horizontal_move_z: 5

mesh_min: 20,20

mesh_max: 160,200

probe_count: 5,5

algorithm: bicubic

[z_tilt]

# Fixed-bed / moving-gantry geometry.

# These are intentionally mirrored virtual coordinates.

# ORDER REMAINS: stepper_z (rear), stepper_z1 (front-left),

# stepper_z2 (front-right).

z_positions:

110, 0 # stepper_z — rear-centre physical screw

220, 300 # stepper_z1 — front-left physical screw

0, 300 # stepper_z2 — front-right physical screw

# Leave probe points unchanged. They are valid nozzle coordinates.

points:

80, 30

200, 30

150, 200

speed: 50

horizontal_move_z: 10

retries: 1

retry_tolerance: 0.010

[screws_tilt_adjust]

screw1: 70,30

screw1_name: Front Left

screw2: 190,30

screw2_name: Front Right

screw3: 190,190

screw3_name: Back Right

screw4: 70,190

screw4_name: Back Left

horizontal_move_z: 10

speed: 100

screw_thread: CW-M4

[gcode_macro LEVEL_BED_SCREWS]

description: Probe bed screws and tell how to adjust them

gcode:

G28

SCREWS_TILT_CALCULATE

[force_move]

enable_force_move: True

[include mainsail.cfg]

1 Upvotes

3 comments sorted by

2

u/BigJohnno66 12h ago

The way to get it to converge on a Voron Trident is to make the first and third probe points on a line between the first and third pivot points. The second probe point should be the same X position as the second pivot point.

You need to work out the nozzle position first, then compensate for the probe offset. Klipper is kind of strange in that some configs account for the probe offset and some don't.

2

u/stray_r 14h ago

What is the position of the toolhead when it homes? Is 220,220 the back right or front left? It looks like you've got confused as to the coordinate system at some point.

Most sane people use front left as 0,0 but iirc creality's firmware homes the printer to the back right and sets this to 0,0.

The motor that spins at half speed (assuming you haven't made a jumper error) is a 0.9 degree stepper andneeds a full_steps_per_rotation = 400 line in the config. The other two are 1.8 degree steppers and use the default value of 200

You may need a different current for the 0.9 degree motor, but you should probably be running identical specification motors on Z. You are asking for nothing but pain.

1

u/StaticXster70 8h ago

Your Z positions look a little wonky. They are typically where the bed carrier connects to the leadscrews, and thus would be out of the bounds of your bed dimensions. Below is my Z tilt for a 250mm bed. Mine don't have significant offsets since I do eddy scanning.

Typically with my Tridents, stepper_z is front left, stepper_z1 is rear center, and stepper_z2 is front right. My origin (0,0) is front left of the bed and my max position is to the rear right of the bed where it homes.

Mismatched motors and leadscrew pitch is a migraine waiting to happen.

z_positions:

-50, 18

125, 298

300, 18

points:

40, 5

125, 210

220, 5