Prusa-Firmware
Prusa-Firmware copied to clipboard
[BUG] Extra extrusion after filament change
i3 MK3S FW 3.8.1
- Filament runs out during print
- Printer pauses and asks for filament change.
- Filament is pulled out.
- Filament is pulled in.
- Answer for question is YES (everything OK).
- Now it extrudes extra filament which is immediately attached to the printed object !!!
Should not extrude extra filament but do retraction. Since there's no default retraction length, there should be Marlin instruction added which defines default retraction length. There could be retraction instruction as well.
This extra purge is a feature and the user shall count with that. It is there to prime the extruder and to reduce (avoid) the gap in the print caused by missing filament. Removing excess filament from the print is less a problem than adding back missing filament.
Missing filament is bad for external perimeter but not for the rest (in most cases). But this excess filament is attached to the print always. So, at least, it would be nice to turn fan to 100% while extruding this excess filament not to attach to the print well.
It was weird to understand this for me at first, but it works the following way: leave the excess attached to the nozzle while swapping the filament. As soon as the extruder starts moving, grab it with a quick motion to make a nice break at the nozzle. If you do that, the result is almost perfect (next to zero gap or blob).
You cannot "grab" the filament unless you have some excess being extruded.
I think this is related to the unfixed issue "M600 does unwanted extrude after 'is color clear?' confirmation" #197
I print almost only in PETG and this behaviour often makes the extra filament stick to the nozzle instead of the perimeter. The new lump on the nozzle is then dragged along making more harm than a tiny hole in the perimeter.
I have found no way to turn this "feature" off...
I understand that this extra purge is to build up the pressure in the nozzle - maybe there is another way to do that or reduce the problem:
- Move nozzle to the spot where printing start before extruding (avoiding extrusion in the air).
- No extra extrude, but let the new LA1.5 (Linear Advance) handle all pressure control in the nozzle.
- Making a way to turn this feature off in the firmware.
Another relevant reference: "Blobs upon resume after M600" #904
The problem has already been described, it boils down to the fact that between "is color clear?" and the extruder moving some material has oozed already. We could retract just before the "is color clear?" prompt, but stuff like TPU would probably still leak a bit.
LA cannot do magic either. It has to assume the nozzle is fully primed in order to work.
Is it really such a big issue? When swapping filament some excess will always be there. I just pull it at the very end instead of doing it right after the prompt.
I also print a ton of PETG, so I know really well the effect you describe.
@wavexx I try to quickly grab the extra extruded filament, but when printing things like flat signs the room from the build plate to the nozzle is very small (only about 10mm). It would help a lot if the nozzle had a larger distance over the build plate - that would make room for multiple purges and cleaning the nozzle. A short retraction (2mm) after "is color clear" would also help and properly prevent filament sticking to the nozzle.
The amount of extra extrusion is very much. It's like 10 cm with 0.4 nozzle. This can lead to collision during printing. Even with 1 mm nozzle it is more than enough. Moreover, only 0.6 mm nozzle is supported.
This is definitely not a bug. I do remember instructions on changing filament, which explicitly says that you must grab extruded filament and hold it in place until hotend will move. Moving hotend will break filament from nozzle, leaving clean primed nozzle, and filament blob on your tweezers.
"I do remember instructions on changing filament, which explicitly says that you must grab extruded filament and hold it in place until hotend will move. Moving hotend will break filament from nozzle, leaving clean primed nozzle, and filament blob on your tweezers."
This doesn't work very well for me. When I grab hold of the filament change blob if often breaks loose from the nozzle.
How does this help with priming and pressurizing? The extra extrusion is into open air just like the filament change extrusion 2 seconds earlier. The only need for this is if you wait a long time after the filament change to continue printing. How about a timer? Less than a few seconds - no extrusion; Longer - do the extra extrusion.
Sorry I posted #2801 as it is a double post. However, I will add that after the filament change is done, and while the printer is moving to the start position, the extruder is turning, so it really is almost impossible to prevent a blob, especially with PETG.
Forgot about this until now.. I had a few filament swaps yesterday, and I might have to agree.
As @sledjunk said the extrusion keeps going until XY are in-line with the print. Sometimes grabbing the filament as late as possible is not always easy on large prints.
Thinking again, I'd still do an extrusion before starting to move (the filament just oozes out even if you're fast with the button), followed by a quick retract and then move. This way if you grab the last bit of filament before (or during) the extruder moves there's less ooze going on.
I tried this by simulating a change with some gcode and seems to work "good enough", certainly not worse than before even if you click "ok" after ~30s or so.
Some ooze is still present even with a retract though. The move back to the print is slowish.. I'm not sure if this speed is fully intentional?
I tried again yesterday and I used a strip of plastic (actually a ruler that came with overture PETG) and held it to the nozzle when it landed on the job so that it caught most of the blob. It helped somewhat, but you almost have to ruin one print so that you know where the nozzle is going to land on the job.
If there was a beep and 1 second pause just before moving back to print you could easily grab it.
This would be good at the start of prints too. I've gotten used to grabbing the ooze just before a print starts by watching the temps and knowing when it's about to start. If I don't grab the ooze, it's hit and miss if it will fall off during leveling and be laying in the middle of the print area.
I haven't really had an issue with start of print because of the purge done after bed leveling and before the print begins
I don't have a problem after the purge starts, but once in a while the preheat ooze will fall off while leveling and then get into the print.
It happens often enough that I got in the habit of grabbing in just before the leveling starts.
Yea, this is still an issue even on the latest version firmware and PrusaSlicer. Ive gotten pretty good at grabbing that extra filament that leaks out but it would be nice if I didnt have to babysit the change over so much.
I have this issue repeatedly on both my MK3S when using PLA.
I use an M600 Tool Change Command during the same layer to get multiple colours for signs and plaques. This extra purge is un-necessary as you have just wasted a load of filament flushing the old colour and making sure its ready. It just creates blobs sufficient that the nozzle crashes on the print and I've had it wreck production pieces over and over again.
Its not oozing, its not the wrong filament change technique (I do 20 changes on some prints and always grab the excess and pull it away at the very last second.). It just sits there and blows a blob of filament as if its trying to wipe.
I remember some time ago, when I did some prints with many color changes per layer (over 10), the only reliable way to do the filament change was to use at the slicer a fine tuned purge tower, even without the MMU.
I remember some time ago, when I did some prints with many color changes per layer (over 10), the only reliable way to do the filament change was to use at the slicer a fine tuned purge tower, even without the MMU.
Thanks, actually I always turn off the purge tower but now I can see the use of it for fixing this issue. Thanks Panay!
I remember some time ago, when I did some prints with many color changes per layer (over 10), the only reliable way to do the filament change was to use at the slicer a fine tuned purge tower, even without the MMU.
I tried this and it worked perfectly! No sign of any blobs! Thanks very much for the help.
Summary of the issue
The problem: unwanted blobs/strings of filament ruin prints for users because there is very little time to remove the extra extruded string and it is surprising and undocumented.
Surprising: No extra extrusion into the air happens when loading filament at the start of a single color print. Undocumented: Prusa "color change" help page text / video does not mention / show the extra extrusion.
There are two suboptimal workarounds. Workaround 1: Leave the first extrusion after filament change on the print bed, hold it with two fingers, press "yes" and when the extra extrusion happens remove all filament in one go. That's suboptimal because the extra extrusion string can break off and leave a little hanging from the nozzle and because the double extruded strings can twirl or bend back up and stick to the nozzle when printing PETG.
Workaround 2: Manually create a purge tower object in PrusaSlicer. Right click bed > "Add shape" > rectangle > size it about 3 cm long, 3 mm wide and height above the final color change layer. Position close to the south-east corner of the build plate. In the right pane list of objects drag the rectangle to the bottom to make it print first at each layer. Press "Slice now" and use the g-code preview sliders to double-check that print starts at the waste tower after color change. That's suboptimal because print time increases and the manual steps take time.
The problem has been reported multiple times for at least 4 years. 2017 prusa forum and issues years 2017, 2018, 2020. New users still run into the problem - see comments on Color change help page.
Things that could fix or mitigate the problem
- Firmware: add 2 second delay after the extra extrusion to give the user more time to remove it before printing resumes.
- Firmware: warn about the extra extrusion in LCD menu.
- PrusaSlicer: In "color change" action add option to enable/disable the extra extrusion.
- PrusaSlicer: In "color change" action warn about the extra extrusion.
- Prusa "Color Change" help page. Inform about the extra extrusion and describe workaround 1 and 2.
- Prusa "Color Change" video. Update video to show the extra extrusion step and workarounds for it.
Any chance this is going to ever get fixed?
If an extra purge extrusion is desired, users can add that in. We need a way to not have it push extra filament when it doesn't need to.
Like in comment https://github.com/prusa3d/Prusa-Firmware/issues/2502#issuecomment-913200978, I have a single extruder and do color changes and after the color change have to babysit the purge. Sometimes there's room to do Workaround 1 listed above, but not if I'm printing something that goes all the way to the resting edge where the hotend moves for the change.
I also experience this hm
Hello! Thank you for the feedback on this. Unfortunately, no timeframe yet or confirmation of a possible fix at this moment. In a way that extra extrusion does ensure the correct pressure and flow are there. Did the workarounds proposed on previous comments improve the situation so far? Even just being ready with pliers to remove that excess can do, in addition to all the workarounds on the previous comments.
Alessandro Pantaleo Prusa Research
@Prusa-Support What I above described as Workaround 1 helps a little, but a proper fix is still needed. Until a fix is in place Prusa could update the documentation text/video and PrusaSlicer to inform and warn about the issue. See my suggestions 4 5 6 at the linked comment.
Hello! Thank you for the reply, noted this suggestion internally for us to further evaluate and take into consideration. In case of more info from our side we'll update on this thread, but in case of any more suggestions or aspects to review feel free to add more comments here.
Alessandro Pantaleo Prusa Research
@Prusa-Support
Please try this in your lab to re-create what we are getting and then you can work towards a solution?
Prepare a model in PrusaSlicer that has 2 colours on the same layer. I.e. a split model that you can assign 2 Extruders.
Go to Printer Settings > General and select Extruders (param "extruders_count") to a value of 2. Go to Printer Settings > Custom G-Code > Tool Change G-Code
Set the value in this box to the following...
{if layer_z > 0}M600{endif}
Go to Print Settings > Multiple Extruders Check Wipe Tower (param wipe_tower) is disabled / unticked.
In the Plater tab, assign the two parts on the same layer as Extruder 1 and Extruder 2 colours.
Run the print and watch for the M600 to trigger. The printer will print the first colour as normal. Then it will come forward for a filament change. After you have done the filament change, and held the excess purge from the nozzle as it moves across to the print - WATCH CAREFULLY. The nozzle moves down onto the print and blows a big bubble of filament? This does not happen when you implement a wipe tower.
On my file I am seeing two lines before it starts printing in the new colour...
G1 Z.4 F720
G1 E4 F2100
Clearly this is telling the printer to purge 4mm of filament before moving?
Foslo wrote Things that could fix or mitigate the problem
- Firmware: add 2 second delay after the extra extrusion to give the user more time to remove it before printing resumes.
- Firmware: warn about the extra extrusion in LCD menu.
- PrusaSlicer: In "color change" action add option to enable/disable the extra extrusion.
- PrusaSlicer: In "color change" action warn about the extra extrusion.
- Prusa "Color Change" help page. Inform about the extra extrusion and describe workaround 1 and 2.
- Prusa "Color Change" video. Update video to show the extra extrusion step and workarounds for it.
Here are a couple more solutions 8. (Similar to 1) move printhead higher during filament change to give more room (and time) to ensure extra extrusion is cleared) 9. (Extension of 3) Instead of making it a binary option to turn on/off extra extrusion, allow user to set the amount of extra extrusion. Thus 0= no extrusion. 5mm = current default. Other numbers would allow for more or less depending on the use case. Also, I would suggest this option occur under "Filament Settings" rather than having to change it each time under "color change", especially since behavior is likely to be filament-dependent 10. Remove from slicer and add to firmware so that extra extrusion only occurs if there is a more than x-second gap between extrusion of filament during filament change and when "yes" is pressed
Hello, thank you for the extra suggestions. I apologize for the late response and for the long time passed, there are unfortunately at the moment other aspects with a higher priority, given the recently released products, but I passed the feedback and suggestions on to our devs, in case of more info from our side on these aspects, we'll certainly let you know on this thread.
Alessandro Pantaleo Prusa Research