"Start G-code" modification to mitigate oozing problem
I have come here to start a little discussion to gain some knowledge, so please point out any errors I did (everything was done i3 MK3S+, it is as vanilla as it gets, I have only installed additional camera on it and raspberry pi zero 2 for prusalink).
Recently I have noticed a problem with oozing, so I did some modification to my starting gcode, at first I modified it to only heat up to material temp minus 60 degrees to stop oozing before calibration and then heat up nozle to proper temp after calibration, the oozing was still after the calibration because it nozle liked to drag ooze behind to print area sometimes ruining first layer (it was still better than before).
This was the first version of the modified g-code:
M862.3 P "[printer_model]" ; printer model check M862.1 P[nozzle_diameter] ; nozzle diameter check M115 U3.13.3 ; tell printer latest fw version G90 ; use absolute coordinates M83 ; extruder relative mode M104 S{first_layer_temperature[0]-60} ; set preheat extruder temp M140 S[first_layer_bed_temperature] ; set bed temp M190 S[first_layer_bed_temperature] ; wait for bed temp M109 S{first_layer_temperature[0]-60} ; wait for preheat extruder temp G28 W ; home all without mesh bed level G80 X{first_layer_print_min[0]} Y{first_layer_print_min[1]} W{(first_layer_print_max[0]) - (first_layer_print_min[0])} H{(first_layer_print_max[1]) - (first_layer_print_min[1])} ; mesh bed levelling G0 Z100 M104 S[first_layer_temperature] ; set extruder temp M109 S[first_layer_temperature] ; wait for extruder temp {if filament_settings_id[initial_tool]=~/.*Prusament PA11.*/} G1 Z0.3 F720 G1 Y-3 F1000 ; go outside print area G92 E0 G1 X60 E9 F1000 ; intro line G1 X100 E9 F1000 ; intro line {else} G1 Z0.2 F720 G1 Y-3 F1000 ; go outside print area G92 E0 G1 X60 E9 F1000 ; intro line G1 X100 E12.5 F1000 ; intro line {endif} G92 E0 M221 S{if layer_height<0.075}100{else}95{endif} ; Don't change E values below. Excessive value can damage the printer. {if print_settings_id=~/.*(DETAIL @MK3|QUALITY @MK3).*/}M907 E430 ; set extruder motor current{endif} {if print_settings_id=~/.*(SPEED @MK3|DRAFT @MK3).*/}M907 E538 ; set extruder motor current{endif}
So... I set out to modify the start g-code even further, so I started examining the printer itself for some potential fix. I noticed the nozle is able to go off print bed by 5mm to the right, idea popped in to my head to move the whole starting line on bed and nozle to the right. So it starts oozing out of nozzle outside of bed so once it moves to make the starting line the ooze will be cought by steel sheet itself. It worked like a charm.
Current starting g-code:
M862.3 P "[printer_model]" ; printer model check M862.1 P[nozzle_diameter] ; nozzle diameter check M115 U3.13.3 ; tell printer latest fw version G90 ; use absolute coordinates M83 ; extruder relative mode M104 S{first_layer_temperature[0]-60} ; set preheat extruder temp M140 S[first_layer_bed_temperature] ; set bed temp M190 S[first_layer_bed_temperature] ; wait for bed temp M109 S{first_layer_temperature[0]-60} ; wait for preheat extruder temp G28 W ; home all without mesh bed level G80 X{first_layer_print_min[0]} Y{first_layer_print_min[1]} W{(first_layer_print_max[0]) - (first_layer_print_min[0])} H{(first_layer_print_max[1]) - (first_layer_print_min[1])} ; mesh bed levelling G0 Z20 F5000 ; Move head upward M400 G0 X255 F5000; go outside print area for nozzle cleanup M400 G0 Z0.2 Y-3 F5000; Return to bed level M400 M104 S[first_layer_temperature] ; set extruder temp M109 S[first_layer_temperature] ; wait for extruder temp G0 X250 {if filament_settings_id[initial_tool]=~/.*Prusament PA11.*/} G1 Z0.3 F720 G92 E0 G1 X195 E9 F1000 ; intro line G1 X155 E9 F1000 ; intro line {else} G1 Z0.2 F720 G92 E0 G1 X195 E9 F1000 ; intro line G1 X155 E12.5 F1000 ; intro line {endif} G92 E0 M221 S{if layer_height<0.075}100{else}95{endif} ; Don't change E values below. Excessive value can damage the printer. {if print_settings_id=~/.*(DETAIL @MK3|QUALITY @MK3).*/}M907 E430 ; set extruder motor current{endif} {if print_settings_id=~/.*(SPEED @MK3|DRAFT @MK3).*/}M907 E538 ; set extruder motor current{endif}
I would like to open a little discussion to improve on the g-code and meybe find a better way to do it.