Notifications
Clear all

"Start G-code" modification to mitigate oozing problem  

  RSS
ParSec
(@parsec)
Member
"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.

This topic was modified 9 months ago 2 times by ParSec
Posted : 31/03/2024 11:55 am
Share: