Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Perform a small extrusion prior to unload #2318

Open
wants to merge 4 commits into
base: MK3
Choose a base branch
from

Conversation

wavexx
Copy link
Collaborator

@wavexx wavexx commented Nov 9, 2019

When the filament is left inside the hot zone a larger tip is formed, caused by slow softening of the material. On an MK3, this larger tip will fail to unload as it will jam inside the lower PTFE section, sometimes on the gears, and and sometimes upper PTFE section as well (depending on the viscosity state of the hot tip as it gets ejected).

This PR will perform a small extrusion when unloading manually (though the LCD) using this sequence:

  • slow 5mm extrusion
  • very slow 0.1mm extrusion to relieve leftover pressure (mostly for flexible materials)
  • 2mm retract at max speed
  • filament ejection

This sequence essentially extrudes the entire large section of the tip, which avoids jams.
This is not done when MMU is operating and/or when a filament runout occurs.

This has been discussed at lengths on issue #1095, and requested on #2162.

In addition, we re-organize the various #defines related to filament change inside the variant files in order to be more meaningful (the actual values are left unchanged).

@leptun
Copy link
Collaborator

leptun commented Nov 9, 2019

@wavexx you know what would be more interesting? It would be performing a ramming sequence just like on the MMU2. It does the small extrusion and it also cools the filament, ensuring a sharp tip.

@wavexx
Copy link
Collaborator Author

wavexx commented Nov 9, 2019

I did try this early on (the discussion is still in the issue) using the built-in ramming sequence in mmu.cpp, but it didn't work as nicely. I still frequently got jams.

My understanding is that the MMU ramming sequence needs to operate with backpressure of the purge tower in order to work.

@wavexx
Copy link
Collaborator Author

wavexx commented Nov 9, 2019

Also, the unload jams on the MK3 (w/o MMU) are often caused by a complete cooldown of the hotend. An unload which was performed during a filament change and/or just immediately after a print was always ok. On the other hand, an unload from a cold state would almost always jam.

@leptun
Copy link
Collaborator

leptun commented Nov 10, 2019

Hmmm. Maybe the small extrusion part can remain as is, however I still think that the cooling move would help also after unload from cooled down hotend. Sometimes I get jams when I attempt to load a badly shaped tip after an unload that didn’t jam.

@wavexx
Copy link
Collaborator Author

wavexx commented Nov 10, 2019

How does the tip look in such cases?

@leptun
Copy link
Collaborator

leptun commented Nov 10, 2019

It sometimes has a bigger blob that is usually connected to the rest with a thinner filament (stretched) and is very stringy. I haven’t tested your changes. This is my experience with the MK2 heatbreak. The MK3 heatbreak might behave better.

@wavexx
Copy link
Collaborator Author

wavexx commented Nov 10, 2019

Indeed, that's the classic result of a normal unload for me.

With this patch, we extrude the blob. The result is a tip which is completely flush though-out.

With PETG/PC I often see the V chamfer on the inside of the nozzle imprinted on the tip, meaning the retract performs a perfectly clean break. With PLA sometimes I still see some stringing, but the tip has no bulge, so the unload is always clean.

I was hoping to eliminate stringing, but given that this is done for manual unloads, it's not a real problem (and yes, I also get stringing without the change anyway).

You're right that doing some cooling moves might improve in this area.
More than ramming, skinnydip aim to solve this better by remelting the string:

prusa3d/PrusaSlicer#2452

@matlinder
Copy link

Wavexx was this implemented? I am having the same issues that this solution was aimed at fixing. How do I get my mk3s to extrude a little before the unload sequence (without manual intervention).

@wavexx
Copy link
Collaborator Author

wavexx commented Apr 2, 2020

It hasn't been merged yet, hopefully after 3.9.

Also, as a reminder for myself, I found that 5mm of extrusion prior to unload is sometimes not enough when printing PC at 270-280C. It seems that some heatcreep at these temperatures will soften the PC enough to widen towards the bottom, causing a jam during ejection. PC being PC, it's essentially impossible to extract by just pulling. It seems 2-3mm extra millimiters would do it.

@Lacehim
Copy link

Lacehim commented May 12, 2020

Any progress on this? I love printing on my MK3 but it always jams if it cools and I try to unload/swap filament. My printer is in the garage so I don't hear the beeps.
I just installed the latest 3.9.0 RC3 and nothing has changed with unloading or changing filament, it's just a straight unload.

@wavexx
Copy link
Collaborator Author

wavexx commented Aug 6, 2020

Btw, with a total of 10mm of extrusion prior to unload I can now always swap any material from any situation (especially from cold-start). No problems with PC any longer.

@NiliusJulius
Copy link

Any progress on this? It is pretty annoying to have to do a manual extrusion before unloading every single time. Otherwise it jams almost always.

wavexx added a commit to wavexx/Prusa-Firmware that referenced this pull request Oct 29, 2020
When unloading + preheat immediately followed by a load, the carriage is
raised first up to 20mm, then again to 50mm.

With PR prusa3d#2318 it makes sense to make more space for the extra extrusion
anyway, so make them the same. This moves the carriage only once _while_
preheating, which is nice.
wavexx added a commit to wavexx/Prusa-Firmware that referenced this pull request Oct 29, 2020
When unloading + preheat immediately followed by a load, the carriage is
raised first up to 20mm, then again to 50mm.

With PR prusa3d#2318 it makes sense to make more space for the extra extrusion
anyway, so make them the same. This moves the carriage only once _while_
preheating, which is nice.
@MohanMaker
Copy link

This same issue happened to me earlier today! Any progress on this PR @wavexx? Would be great if it was implemented in 3.10. Thanks :).

wavexx added a commit to wavexx/Prusa-Firmware that referenced this pull request Apr 21, 2021
This change restores the minimum extruder height for filament purge
during M600 from the current 50mm back to 27mm from FW 3.9.

We do this by introducing a new option for unload_filament() to indicate
that the unload is part of an automatic swap, and in such cases avoid
raising more than absolutely necessary (this will _also_ come in handy
to avoid the extra purge in PR prusa3d#2318 during M600).

A new define MIN_Z_FOR_SWAP is introduced for this purpose.
MIN_Z_FOR_UNLOAD is still used for manual lcd unload and for M702 and
hasn't been changed.
Re-organize variant #define's related to related feedrates (without
changing old defaults) and add some extra comments
Introduce a new internal code 'R' to cleanly differentiate between
regular filament swap or runout.
Swaps are triggered with a hot printer, and thus don't require to
perform an extra purge. This follows my own advice from PR prusa3d#3121.
Not doing the extra purge is sensible if the swap is performed fast
enough, but if an extruder cooldown happened while waiting for the user
in M600 this is no longer true and the tip might have softened.

Do an extra purge in such cases.

Add some comments and rename UnloadType::User into ::Purge to make the
distinction between the various modes clear.
@wavexx
Copy link
Collaborator Author

wavexx commented May 11, 2022

@leptun should we aim this for 3.12?

@leptun
Copy link
Collaborator

leptun commented May 11, 2022

I think yes, but let's wait for the mmu PR. Maybe we can combine the unload sequences. Afaik, the mmu unload procedure also purges and it even also does a cooling move.

@pbotte
Copy link

pbotte commented Mar 10, 2023

Is there any change to get this into the next release? This has been a known problem for 5+ years. Newbies get a free PLA spool with their printer, but immediately run into jamming problem. --> Not fair!
1
2

@wavexx
Copy link
Collaborator Author

wavexx commented Mar 10, 2023

Almost grew tired of rebasing it :/

@3d-gussner 3d-gussner added this to the FW 3.13.1 milestone Aug 4, 2023
@sarusani
Copy link
Contributor

sarusani commented Aug 9, 2023

I'm using the MMU style unload for more than a year now and since then never again had a jam. (PLA was mostly OK, but especially PC Blend jammed regularly before the change)
This is the code I'm using.

@wavexx
Copy link
Collaborator Author

wavexx commented Aug 9, 2023

I'll try to rebase this once more...

@3d-gussner 3d-gussner modified the milestones: FW 3.13.1, FW 3.14.0 Aug 18, 2023
@3d-gussner
Copy link
Collaborator

Moved to 3.14.0. Add two gcode lines when manual unload or change filament is selected.

@3d-gussner 3d-gussner removed this from the FW 3.14.0 milestone Sep 22, 2023
@3d-gussner 3d-gussner added this to the FW 3.14.1 milestone Nov 24, 2023
@3d-gussner 3d-gussner removed this from the FW 3.14.1 milestone Apr 30, 2024
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

9 participants