Homing Z twice with Mesh bed compensation + bed leveling ?
-
I have a cartesian printer setup with 2 z motors and a touch probe setup for homing, bed compensation and bed leveling.
From what I've read and how I have it set up, this is what happens when I start a print:- Home XYZ with z being probed in the center of the bed
- probe left X/center Y then probe right side for bed leveling
- Home XYZ, again with z being probed in the center of the bed
I just want to confirm that I'm not homing twice for no reason but I feel like I followed all setup instructions properly so maybe it is necessary?
If it is necessary to home all twice to get the bed leveled, is it possible to just home all once when printing one after another?
Configs are below
Config.g; Axis Limits ;M208 X0 Y0 Z-1 S1 ; set axis minima ;M208 X300 Y300 Z400 S0 ; set axis maxima ; Endstops M574 X1 S1 P"xstop" ; configure switch-type (e.g. microswitch) endstop for low end on X via pin xstop M574 Y1 S1 P"ystop" ; configure switch-type (e.g. microswitch) endstop for high end on Y via pin ystop M574 Z1 S1 P"zstop" ; configure switch-type (e.g. microswitch) endstop for low end on Z via pin zstop ; Z-Probe M558 P9 C"^zprobe.in" H5 F200 T3000 ;f50 original probe speed mm/min G31 X-44 Y0 Z1.343 P15 M557 X15:251 Y15:285 P12 ; define mesh grid ; Tools M563 P0 D0 H1 F1 ; define tool 0 G10 P0 X0 Y0 Z0 ; set tool 0 axis offsets G10 P0 R0 S0 ; set initial tool 0 active and standby temperatures to 0C ; Custom settings are not defined ; Miscellaneous M501 ; load saved parameters from non-volatile memory M911 S10 R11 P"M913 X0 Y0 G91 M83 G1 Z3 E-5 F1000" ; set voltage thresholds and actions to run on power loss T0 ; select first tool M950 S0 C"exp.heater3" ; Duet 2 WiFi/Ethernet bltouch M376 H8 ;bed taper compensation 20x max error of .391 ;M572 D0 S0.3
homeall.g
; ; called to home all axes ; G91 ; relative positioning G1 H2 Z5 F6000 ; lift Z relative to current position G1 H1 X-305 Y-305 F1800 ; move quickly to X and Y axis endstops and stop there (first pass) G1 H2 X5 Y5 F6000 ; go back a few mm G1 H1 X-305 Y-305 F360 ; move slowly to X and Y axis endstops once more (second pass) ;G1 H1 Z-405 F360 ; move Z down stopping at the endstop G1 x150 y150 F6000 G30 G90 ; absolute positioning
homez.g
G90 G1 x150 y150 F6000 ;G1 x150 y250 F6000 G30 G1 Z10 F6000
custom g-code from slicer at start of print
G90 ; use absolute coordinates M83 ; extruder relative mode M104 S{first_layer_temperature[0]} ; set final nozzle temp M190 S{first_layer_bed_temperature[0]} ; wait for bed temp to stabilize M109 S{first_layer_temperature[0]} ; wait for nozzle temp to stabilize G32 M561 ; clear height map G28 ; home xy G29 S1
-
The G30 sets the Z=0 Datum which is a good thing to do before doing any of the following:
- before auto leveling the bed
- after auto leveling the bed
- creating a height map
- loading that height map
Now you can might get away with skipping the G30 before auto-leveling but not after. The bed leveling process can change things enough to require re-setting the Z=0 Datum.
The whole point of leveling the bed, creating a height map, setting the Z=0 Datum is to improve the results of the printing process.
So you can limit the G30 G32 G30 G29 S0 sequence to creating the height map and the G30 G32 G30 G29 S1 sequence when starting a print.
You skip G30 and G32 when homing Z as you have a Z endstop switch and can use that instead.
Frederick