Re: Bed Levelling using multiple Z motors
i can't get it to work can someone help me out? corrections applied after probing during tilt calibration seem to be incorrect, causing the bed to remain uneven or the calibration process to fail.
• Printer Model: Modix Big-120X
• Firmware Version: 3.4.5
• Z-Motors: Four independent Z-motors controlled via the Duex Expansion board.
• Probe Type: BLTouch
• Z-Probe Offset: X = -1, Y = 38
config.g
;Motor to stepper motor driver mapping_________________________________________________________
M584 X5 Y1 Z7:8:6:9 E3:4 P3 ; M584 X5 Y1 Z7:8:6:9 E3:4 P3 P3Driver mapping
M671 X-185:-185:1268:1268 Y-46:668:668:-46 S5
Bed_duex.g
M558 H15 F80 ; This raises the probing height from 4mm to 15mm, to increase the range in which the tilt calibration can adjust the bed.
M566 Z20 ; Reducing the Z jerk a slight bit
M203 Z100 ; Reducing max Z speed a bit.
M201 Z60 ; Reducing Z acceleration a slight bit
M98 P"config_probe.g" ; Load Z-probe data
T-1 ; deselect any tools
if !move.axes[0].homed || !move.axes[1].homed || !move.axes[2].homed ; If the printer hasn't been homed, home it
G28
G29 S2 ; cancel mesh bed compensation
M290 R0 S0 ; cancel baby stepping
G90 ; absolute moves
G1 Z15 F400 ; insure Z starting position is high enough to avoid probing errors
G1 X{(move.axes[0].min + move.axes[0].max) / 2 - 1} Y{(move.axes[1].min + move.axes[1].max) / 2 + 38} F6000 ; Beweeg naar het dynamisch berekende midden met probe offset (homez_middle)
G30 ; do single probe which sets Z to trigger height of Z probe
M671 X-185:-185:1268:1268 Y-46:668:668:-46 S5 ;M584 X5 Y1 Z7:6:9:8 E3:4 P3
; --- level bed ---
while true
G30 P0 X{move.axes[0].min + 2 - sensors.probes[0].offsets[0]} Y{move.axes[1].min + 2 - sensors.probes[0].offsets[1]} Z-99999 ; FL
G30 P1 X{move.axes[0].min + sensors.probes[0].offsets[0] + 2} Y{move.axes[1].max + sensors.probes[0].offsets[1] - 2} Z-99999 ; BL
G30 P2 X{move.axes[0].max + sensors.probes[0].offsets[0] - 2} Y{move.axes[1].max + sensors.probes[0].offsets[1] - 2} Z-99999 ; BR
G30 P3 X{move.axes[0].max - 2 - sensors.probes[0].offsets[0]} Y{move.axes[1].min + 2 - sensors.probes[0].offsets[1]} Z-99999 S4 ; FR
; check results - exit loop if results are good
if move.calibration.initial.deviation < 0.02
set var.success = true
break
; check pass limit - exit loop if pass limit reached
if iterations = 5
set var.success = false
break
G1 X{(move.axes[0].min + move.axes[0].max) / 2 - 1} Y{(move.axes[1].min + move.axes[1].max) / 2 + 38} F6000 ; Beweeg naar het dynamisch berekende midden met probe offset
M558 H5 ; BLTouch probing settings
M558 F180 ; reset BLTouch probing settings to default
M566 Z30 ; reset jerk
M203 Z400 ; reset max speed
M201 Z240 ; reset acceleration
M98 P"config_probe.g"
G30 ; do single probe which sets Z to trigger height of Z probe
if {global.idex} = 1
M18 XYU ; release XYU stepper motors
else
M18 XY ; release XY stepper motors