Prusa-Firmware icon indicating copy to clipboard operation
Prusa-Firmware copied to clipboard

[BUG] Extra extrusion after filament change

Open espr14 opened this issue 5 years ago • 64 comments

i3 MK3S FW 3.8.1

  1. Filament runs out during print
  2. Printer pauses and asks for filament change.
  3. Filament is pulled out.
  4. Filament is pulled in.
  5. Answer for question is YES (everything OK).
  6. 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.

espr14 avatar Feb 18 '20 21:02 espr14

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.

DRracer avatar Feb 19 '20 07:02 DRracer

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.

espr14 avatar Feb 19 '20 12:02 espr14

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.

wavexx avatar Feb 26 '20 18:02 wavexx

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:

  1. Move nozzle to the spot where printing start before extruding (avoiding extrusion in the air).
  2. No extra extrude, but let the new LA1.5 (Linear Advance) handle all pressure control in the nozzle.
  3. Making a way to turn this feature off in the firmware.

Area5142 avatar Feb 27 '20 23:02 Area5142

Another relevant reference: "Blobs upon resume after M600" #904

Area5142 avatar Feb 27 '20 23:02 Area5142

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 avatar Feb 28 '20 07:02 wavexx

@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.

Area5142 avatar Feb 28 '20 13:02 Area5142

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.

espr14 avatar Mar 03 '20 19:03 espr14

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.

GunSmoker avatar Apr 30 '20 20:04 GunSmoker

"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.

gogglespisano avatar May 18 '20 14:05 gogglespisano

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.

sledjunk avatar Aug 12 '20 21:08 sledjunk

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?

wavexx avatar Aug 13 '20 13:08 wavexx

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.

sledjunk avatar Aug 13 '20 14:08 sledjunk

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.

gogglespisano avatar Aug 13 '20 15:08 gogglespisano

I haven't really had an issue with start of print because of the purge done after bed leveling and before the print begins

sledjunk avatar Aug 13 '20 16:08 sledjunk

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.

gogglespisano avatar Aug 13 '20 16:08 gogglespisano

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.

benr916 avatar Feb 20 '21 19:02 benr916

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.

ChrisWhite1985 avatar Sep 05 '21 18:09 ChrisWhite1985

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.

Panayiotis-git avatar Sep 06 '21 06:09 Panayiotis-git

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!

ChrisWhite1985 avatar Sep 06 '21 06:09 ChrisWhite1985

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.

ChrisWhite1985 avatar Sep 11 '21 07:09 ChrisWhite1985

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

  1. Firmware: add 2 second delay after the extra extrusion to give the user more time to remove it before printing resumes.
  2. Firmware: warn about the extra extrusion in LCD menu.
  3. PrusaSlicer: In "color change" action add option to enable/disable the extra extrusion.
  4. PrusaSlicer: In "color change" action warn about the extra extrusion.
  5. Prusa "Color Change" help page. Inform about the extra extrusion and describe workaround 1 and 2.
  6. Prusa "Color Change" video. Update video to show the extra extrusion step and workarounds for it.

floslo avatar Sep 20 '21 12:09 floslo

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.

SquidPony avatar Jan 13 '22 00:01 SquidPony

I also experience this hm

camdenorrb avatar Jul 28 '22 08:07 camdenorrb

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 avatar Aug 08 '22 13:08 Prusa-Support

@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.

floslo avatar Aug 09 '22 10:08 floslo

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 avatar Sep 01 '22 16:09 Prusa-Support

@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?

ChrisWhite1985 avatar Sep 02 '22 18:09 ChrisWhite1985

Foslo wrote Things that could fix or mitigate the problem

  1. Firmware: add 2 second delay after the extra extrusion to give the user more time to remove it before printing resumes.
  2. Firmware: warn about the extra extrusion in LCD menu.
  3. PrusaSlicer: In "color change" action add option to enable/disable the extra extrusion.
  4. PrusaSlicer: In "color change" action warn about the extra extrusion.
  5. Prusa "Color Change" help page. Inform about the extra extrusion and describe workaround 1 and 2.
  6. 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

puterboy avatar Apr 27 '23 19:04 puterboy

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

Prusa-Support avatar May 29 '23 14:05 Prusa-Support