Fix for "strings and dots" on bed during autoleveling
Hey guys,
I created a slightly modified gcode starting script that eliminates (or reduces, depending on the filament) the dots and strings that end up on the bed during the autoleveling process. They don't usually cause problems but to me they're incredibly annoying.
My solution here is to set the extruder to a lower temperature during the bed level. This ensures that it's hot enough to soften any plastic that may get between the nozzle and the bed, while remaining cool enough to not ooze freely. As a bonus, it gives the bed a tad longer to stabilize and heat the enclosure if you have one.
I tried 150C for PLA and it seemed to work fine so I didn't mess with it further. I haven't tested it on ABS or other plastics; it may need to be tweaked. I also considered adding a short retract and re-prime before and after but due to the success of the temperature change I didn't feel it was necessary.
M115 U3.1.1-RC4 ; tell printer latest fw version
M83 ; extruder relative mode
M104 S150 ; set extruder temp to 150 for bed leveling
M140 S[first_layer_bed_temperature] ; set bed temp
M190 S[first_layer_bed_temperature] ; wait for bed temp
M109 S150 ; wait for extruder temp to reach 150
G28 W ; home all without mesh bed level
G80 ; mesh bed leveling
M104 S[first_layer_temperature] ; set extruder temp
M109 S[first_layer_temperature] ; wait for extruder temp
G1 Y-3.0 F1000.0 ; go outside print area
G92 E0.0
G1 X60.0 E9.0 F1000.0 ; intro line
G1 X100.0 E12.5 F1000.0 ; intro line
G92 E0.0
M221 S95
I also considered setting the temperature dynamically based on the filament and/or the final target temperature but I'm not aware of a way to easily do that in the gcode scripts (save for a custom postprocessor in Perl which I'm too lazy to do right now... maybe later). That also seems to be the only way to implement a "move the Z axis up 50mm but not exceeding 200mm" option, which would be nicer than having to move the Z axis manually to give enough clearance to get the bed off for prints that are only a few mm high. (Kudos to Prusa Research for including the knob press-and-hold shortcut for moving the Z axis, though, which is at least tolerable).
Re: Fix for "strings and dots" on bed during autoleveling
I was able to eliminate them by just switching the order of the codes around. Moved the 2 'wait' statements to after the mesh leveling/home and before the 'priming'.
I like it because the bed and hot end heat up during the leveling, then it homes and waits for it to hit full temp.
With the new temp compensation on the MK3, I figured it should not matter.
The only thing you have to do is make sure there is no filament hanging from the nozzle because without it being up to temp, it will be stiff and could cause a crash.
Right or wrong, I have run with this change for a year on my MK2 with no issues.
I may be missing something, but I have to assume heating up the hot end is to protect against filament crash during leveling.
Re: Fix for "strings and dots" on bed during autoleveling
This might sound stupid, but I do this manually all the time.
I dont only have problems with oozing while the autolevel.
It oozes so much someitmes, that it curls up to the nozzle and sticks there.
When the priming starts, not everything comes off sometimes and the excess filament gets dragged into prints and sometimes gets stuck somewhere in the middle of it, which is very annoying.
I preheat the printer and when temperature is reached, I take off the little bit that oozed out and manually retract around 4 - 6mm, done.
No oozing whatsoever, till the extruder starts priming (which works just fine if you dont extrude too much).
Isnt it possible to convert this into a script?
I dont have any knowledge about customizing gcodes, so help would be appreciated.
Re: Fix for "strings and dots" on bed during autoleveling
Isnt it possible to convert this into a script?
Most of it, but probably not the "wipe the ooze from the nozzle" part. 🙂
The rest of what you said, each part pretty much corresponds to a G-code line.
I preheat the printer
That would be "M140 S60" to set the bed temp to 60, and "M104 S200" to set the extruder temp to 200.
when temperature is reached
That would be "M109 S200", a.k.a. wait for extruder to reach 200.
retract around 6mm
G1 is the command that moves the motors, and "G1 E-6 F500" specifically moves the extruder axis back 6 mm (at speed 500 mm/min). At least it will if the extruder is in relative mode. If the extruder is in absolute mode, you would move the axis to "position" -6 mm, which is the same thing if this is the first extrusion command in your script. However, usually the extruder is in relative mode. Look for a "M83" command, it indicates relative mode.
Do you know where to insert these custom g code commands? There should be an option in your slicer of choice where you can enter them.
Re: Fix for "strings and dots" on bed during autoleveling
I know where to enter them, in S3D its pretty obvious.
Thanks for the codes, I´ll try around a little bit.