Startup Optimization and UBL re: Taz6Archim2AeroBLTouch

I sometimes need to level right before full bed long (3-4 day prints) to ensure the best possible print, in this I have developed the following start-print gcode for my printer, see below. But my question is about optimization of this, my probe is far left of the tool head preventing reading the right side automatically. Are there any other optimizations or something else to make it faster/more reliable/remove unneeded lines? I’m really just optimizing here so no rush just curious some about some expert opinions

M73 P0 ; clear GLCD progress bar
M75 ; start GLCD timer
G26 ; clear potential ‘probe fail’ condition
M107 ; disable fans
M420 S0 ; disable leveling matrix
G90 ; absolute positioning
M82 ; set extruder to absolute mode
G92 E0 ; set extruder position to 0
M140 S{first_layer_bed_temperature[0]} ; start bed heating up
G28 XY ; home X and Y
G0 X-19 Y258 F1000 ; move to safe homing position
G28 Z ; home Z
M109 R{first_layer_temperature[0] - 60} ; wait for extruder to reach wiping and retract temp
G1 E-15 F100 ; retract filament
G0 X-16.5 Y100 F3000 ; move above wiper pad
G0 Z1 ; PushIntoPad
G3 Y94 R3 F1000 ; BeginWipe
G2 Y88 R3 F1000 ; CurveWipe
G3 Y82 R3 F2000 ; CurveWipe
G2 Y76 R3 F2000 ; CurveWipe
G3 Y70 R3 F1000 ; CurveWipe
G2 Y64 R3 F1000 ; CurveWipe
G3 Y58 R3 F2000 ; CurveWipe
G2 Y52 R3 F2000 ; CurveWipe
G3 Y46 R3 F1000 ; CurveWipe
G2 Y40 R3 F1000 ; CurveWipe
G3 Y34 R3 F2000 ; CurveWipe
G2 Y28 R3 F2000 ; CurveWipe
G3 Y22 R3 F1000 ; CurveWipe
G3 Y28 R3 F1000 ; CurveWipeTurnAround
G2 Y34 R3 F2000 ; CurveWipe
G3 Y40 R3 F2000 ; CurveWipe
G2 Y46 R3 F1000 ; CurveWipe
G3 Y52 R3 F1000 ; CurveWipe
G2 Y58 R3 F2000 ; CurveWipe
G3 Y64 R3 F2000 ; CurveWipe
G2 Y70 R3 F1000 ; CurveWipe
G3 Y76 R3 F1000 ; CurveWipe
G2 Y82 R3 F2000 ; CurveWipe
G3 Y88 R3 F2000 ; CurveWipe
G2 Y94 R3 F1000 ; CurveWipe
G3 Y100 R3 F1000 ; CurveWipe
G0 Z0.5 ; PushIntoFinalWipe
G3 Y94 R3 F300 ; FinalWipe
G3 Y100 R3 F300 ; FinalWipe
G3 Y94 R3 F300 ; FinalWipe
G3 Y100 R3 F300 ; FinalWipe
G0 Z10 ; raise extruder
M400 ; Finish Moves
M109 R{first_layer_temperature[0] - 60} ; wait for extruder to reach probe temp
M190 R{first_layer_bed_temperature[0]} ; wait for bed to reach printing temp
M155 S30 ; reduce temperature reporting rate to reduce output pollution
M204 S100 ; set probing acceleration
G29 P1 ; automatically populate mesh with all reachable points
G29 P2 ; manual probe unreachable areas
G29 P3 ; infer the rest of the mesh values
G29 P5 ; mean correction use c value to execute g29 p6 c(meanH) also
@BEDLEVELVISUALIZER ; tell the plugin to watch for reported mesh
M420 S1 V ; enabled leveling and report the new mesh
G29 F 10.0 ; Set Fade Height for correction at 10.0 mm.
G29 A ; Activate the UBL System.
M425 Z ; use measured Z backlash for compensation
M425 Z F0 ; turn off measured Z backlash compensation. (if activated in the quality settings, this command will automatically be ignored)
M204 S500 ; restore standard acceleration
G0 Z10 F5000 ; move up off last probe point
M400 ; wait for moves to finish
M117 Heating… ; progress indicator message on LCD
M109 R{first_layer_temperature[0]} ; wait for extruder to reach printing temp
M190 R{first_layer_bed_temperature[0]} ; wait for bed to reach printing temp
G1 Z2 E0 F75 ; prime tiny bit of filament into the nozzle

1 Like

Current Version

M73 P0 ; clear GLCD progress bar
M75 ; start GLCD timer
G26 ; clear potential ‘probe fail’ condition
M107 ; disable fans
M420 S0 ; disable leveling matrix
G90 ; absolute positioning
M82 ; set extruder to absolute mode
G92 E0 ; set extruder position to 0
M140 S{first_layer_bed_temperature[0]} ; start bed heating up
G28 XY ; home X and Y
G28 Z ; home Z
M109 R{first_layer_temperature[0] - 60} ; wait for extruder to reach wiping and retract temp
G1 E-10 F100 ; retract filament
G0 X-16.5 Y100 F3000 ; move above wiper pad
G0 Z0.75 ; PushIntoPad
G3 Y94 R3 F1000 ; BeginWipe
G2 Y88 R3 F1000 ; CurveWipe
G3 Y82 R3 F2000 ; CurveWipe
G2 Y76 R3 F2000 ; CurveWipe
G3 Y70 R3 F1000 ; CurveWipe
G2 Y64 R3 F1000 ; CurveWipe
G3 Y58 R3 F2000 ; CurveWipe
G2 Y52 R3 F2000 ; CurveWipe
G3 Y46 R3 F1000 ; CurveWipe
G2 Y40 R3 F1000 ; CurveWipe
G3 Y34 R3 F2000 ; CurveWipe
G2 Y28 R3 F2000 ; CurveWipe
G3 Y22 R3 F1000 ; CurveWipe
G3 Y28 R3 F1000 ; CurveWipeTurnAround
G2 Y34 R3 F2000 ; CurveWipe
G3 Y40 R3 F2000 ; CurveWipe
G2 Y46 R3 F1000 ; CurveWipe
G3 Y52 R3 F1000 ; CurveWipe
G2 Y58 R3 F2000 ; CurveWipe
G3 Y64 R3 F2000 ; CurveWipe
G2 Y70 R3 F1000 ; CurveWipe
G3 Y76 R3 F1000 ; CurveWipe
G2 Y82 R3 F2000 ; CurveWipe
G3 Y88 R3 F2000 ; CurveWipe
G2 Y94 R3 F1000 ; CurveWipe
G3 Y100 R3 F1000 ; CurveWipe
G0 Z0.35 ; PushIntoFinalWipe
G3 Y94 R3 F300 ; FinalWipe
G3 Y100 R3 F300 ; FinalWipe
G3 Y94 R3 F300 ; FinalWipe
G3 Y100 R3 F300 ; FinalWipe
G0 Z10 ; raise extruder
M400 ; Finish Moves
M109 R{first_layer_temperature[0] - 60} ; wait for extruder to reach probe temp
M190 R{first_layer_bed_temperature[0]} ; wait for bed to reach printing temp
M155 S30 ; reduce temperature reporting rate to reduce output pollution
M204 S250 ; set probing acceleration
G29 P1 ; automatically populate mesh with all reachable points
G29 P2 H0.75 ; manual probe unreachable areas
G29 P3 ; infer the rest of the mesh values
G29 P5 ; mean correction use c value to execute g29 p6 c(meanH) also
@BEDLEVELVISUALIZER ; tell the plugin to watch for reported mesh
M420 S1 V ; enabled leveling and report the new mesh
G29 F 10.0 ; Set Fade Height for correction at 10.0 mm.
G29 A ; Activate the UBL System.
M425 Z ; use measured Z backlash for compensation
M425 Z F0 ; turn off measured Z backlash compensation. (if activated in the quality settings, this command will automatically be ignored)
M204 S500 ; restore standard acceleration
G0 Z10 F5000 ; move up off last probe point
M400 ; wait for moves to finish
M117 Heating… ; progress indicator message on LCD
M109 R{first_layer_temperature[0]} ; wait for extruder to reach printing temp
M190 R{first_layer_bed_temperature[0]} ; wait for bed to reach printing temp
G1 E0 F100 ; push filament for start of print

1 Like

Current (2023-03-13T05:00:00Z) Start GCode

M73 P0 ; clear GLCD progress bar
M75 ; start GLCD timer
;;G26 ; OBSOLETED clear potential ‘probe fail’ condition
M107 ; disable fans
M420 S0 ; disable leveling matrix
G90 ; absolute positioning
M82 ; set extruder to absolute mode
G92 E0 ; set extruder position to 0
M140 S{first_layer_bed_temperature[0]} ; start bed heating up
G28 XY ; home X and Y
G28 Z ; home Z
;;Extended Circular Wipe
M109 R{first_layer_temperature[0] - 60} ; wait for extruder to reach wiping/retract temp
G1 E-10 F100 ; retract filament
G0 X-16.5 Y100 F3000 ; move to start of wipe Change Here for Variation of Wiper Type
G0 Z0.65 ; Push Into Pad Change Here for Variation of Wiper Type
G3 Y94 R3 F1000 ; BeginWipe
G2 Y88 R3 F1000 ; CurveWipe
G3 Y82 R3 F2000 ; CurveWipe
G2 Y76 R3 F2000 ; CurveWipe
G3 Y70 R3 F1000 ; CurveWipe
G2 Y64 R3 F1000 ; CurveWipe
G3 Y58 R3 F2000 ; CurveWipe
G2 Y52 R3 F2000 ; CurveWipe
G3 Y46 R3 F1000 ; CurveWipe
G2 Y40 R3 F1000 ; CurveWipe
G3 Y34 R3 F2000 ; CurveWipe
G2 Y28 R3 F2000 ; CurveWipe
G3 Y22 R3 F1000 ; CurveWipe
G3 Y28 R3 F1000 ; CurveWipeTurnAround
G2 Y34 R3 F2000 ; CurveWipe
G3 Y40 R3 F2000 ; CurveWipe
G2 Y46 R3 F1000 ; CurveWipe
G3 Y52 R3 F1000 ; CurveWipe
G2 Y58 R3 F2000 ; CurveWipe
G3 Y64 R3 F2000 ; CurveWipe
G2 Y70 R3 F1000 ; CurveWipe
G3 Y76 R3 F1000 ; CurveWipe
G2 Y82 R3 F2000 ; CurveWipe
G3 Y88 R3 F2000 ; CurveWipe
G2 Y94 R3 F1000 ; CurveWipe
G3 Y100 R3 F1000 ; CurveWipe
G0 Z0.25 ; PushIntoFinalWipe Change Here for Variation of Wiper Type
G3 Y94 R3 F600 ; FinalWipe 1
G3 Y100 R3 F600 ; FinalWipe 1
G3 Y94 R3 F400 ; FinalWipe 2
G3 Y100 R3 F400 ; FinalWipe 2
G3 Y94 R3 F300 ; FinalWipe 3
G3 Y100 R3 F300 ; FinalWipe 3
G3 Y94 R3 F200 ; FinalWipe 4
G3 Y100 R3 F200 ; FinalWipe 4
G0 Y75 Z10 ; raise extruder w Y Wipe
M400 ; Finish Moves End of Extended Circular Wipe
M109 R{first_layer_temperature[0] - 60} ; wait for extruder to reach probe temp
M190 R{first_layer_bed_temperature[0]} ; wait for bed to reach printing temp
;;UBL Autolevelling
M155 S30 ; reduce temperature reporting rate to reduce output pollution
M204 S250 ; set probing acceleration
G29 P0 ; invalidate and revert ubl
M425 Z ; use measured Z backlash for compensation
M425 Z F0 ; turn off measured Z backlash compensation. (if activated in the quality settings, this command will automatically be ignored)
G29 P1 ; automatically populate mesh with all reachable points
;G29 P2 B H0.6 ; manual probe unreachable areas
;G29 P3 ; infer the rest of the mesh values
G29 P5 ; mean correction use c value to execute g29 p6 c(meanH) also
@BEDLEVELVISUALIZER ; tell the plugin to watch for reported mesh
M420 S1 V ; enabled leveling and report the new mesh
G29 F 10.0 ; Set Fade Height for correction at 10.0 mm.
G29 A ; Activate the UBL System.
M204 S500 ; restore standard acceleration
M400 ; wait for moves to finish End of UBL Autolevelling
M117 Heating… ; progress indicator message on LCD
M109 R{first_layer_temperature[0]} ; wait for extruder to reach printing temp
M190 R{first_layer_bed_temperature[0]} ; wait for bed to reach printing temp
G1 E0 F100 ; push filament for start of print

@usulrasolas: I don’t have a TAZ 6, so I really can’t offer any recommendations specific to that model, but the SynDaver Axi does have a similar frame and uses a BLTouch. Here is the GCODE used in that printer, which could give you some ideas:

;This G-Code has been generated specifically for SynDaver Axi with Hemera toolhead
M73 P1                                       ; clear LCD progress bar
M75                                          ; start LCD Print Timer
M107                                         ; disable fans
M420 S0                                      ; disable leveling matrix
M82                                          ; set extruder to absolute mode
G92 E0                                       ; set extruder position to 0
M140 S{material_bed_temperature_layer_0}     ; start bed heating up
M104 S{material_wipe_temperature}            ; start nozzle heating up
G28                                          ; home all axes
M117 AXI Heating Up...
G1 X-17.5 Y100 F3000                         ; move to wipe position
G1 Z10 F5000
G29 L1                                       ; load leveling matrix slot 1
G29 A                                        ; ensure mesh is enabled
M109 R{material_wipe_temperature}            ; wait for nozzle to reach wiping temp
G1 E-3                                       ; retract material before wipe
M117 AXI Wiping Nozzle...
G1 Z0                                        ; lower nozzle
G1 Y90 F1000                                 ; slow wipe
G1 Y65 F1000                                 ; slow wipe
G1 Y80 F1000                                 ; slow wipe
G1 Y65 F1000                                 ; slow wipe
G1 Y55 F1000                                 ; slow wipe
G1 Y30 F3000                                 ; fast wipe
G1 Y55 F3000                                 ; fast wipe
G1 Y30 F3000                                 ; fast wipe
G1 Y55 F3000                                 ; fast wipe
G1 Z10                                       ; raise nozzle
M117 Heating...
M190 R{material_bed_temperature_layer_0}     ; wait for bed to reach printing temp
M104 S{material_print_temperature_layer_0}   ; set extruder to reach initial printing temp, held back for ooze reasons
M117 Probe Z at Temp
G28 Z                                        ; re-probe Z0 to account for any thermal expansion in the bed
G1 X-17.5 Y80 F3000                          ; move back to wiper
G1 Z10 F5000
M117 Heating...
M109 R{material_print_temperature_layer_0}   ; wait for extruder to reach initial printing temp
M117 AXI Wiping Nozzle...
G1 E0                                        ; prime material in nozzle
G1 Z0                                        ; final ooze wipe
G1 Y60 F2000                                 ; final ooze wipe
G1 Y20 F2000                                 ; final ooze wipe
M117 AXI Starting Print
G1 Z2                                        ; move nozzle back up to not run into things on print start
M400                                         ; wait for moves to finish
M117 AXI Printing