-
Notifications
You must be signed in to change notification settings - Fork 1.1k
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
Filament gets stuck during unloading #1095
Comments
@ufoDziner Could you share this function? |
I remember I've seen this report along with #417, I would suggest the same behavior. I generally never have unloading issues when printing. It just works. In this case I incurred in both problems:
I'm not fully sure why this happens when the machine is cold, but I never had it happen when swapping filaments after printing or doing filament swaps. As suggested here and in #417, I resolved the issue in both cases by doing a small extrusion before attempting the unload again. The unloaded filament looks absolutely perfect after this procedure and I don't think it would harm. |
I get exactly the same issue on my printer, except a lot more often (about once every other time) and likewise I have noticed that a short extrusion before unloading makes for a perfect unloading, smooth as a hot knife in butter. |
How much do you need to extrude before you get a perfect unload? I'm planning to implement this in the next week and it would be great if we could find the smallest extrusion needed to always get a perfect unload. |
That'd be great, thanks! I have not tried to fully optimise/minimise this but I can tell that 2mm works just fine and it uses very little filament. I'll try with 1mm to see if that works too and I'll let you know. |
On Wed, Apr 17 2019, matt-3 wrote:
That'd be great, thanks! I have not tried to fully optimise/minimise
this but I can tell that 2mm works just fine and it uses very little
filament. I'll try with 1mm to see if that works too and I'll let you
know.
I just tried to preheat, go to settings->move->extruder and extruded
1mm (which is the minimum you can do from there).
There's still half a mm of somewhat thicker filament in my case, but it
unloaded correctly.
Is it the same in your case?
Next swap I'll try with 2mm.
Maybe the right spot is 1.5.
|
To be honnest I don't think trying to save 1mm of filament is relevant here, especially in the view that when you will load a new filament the printer will extrude about 200mm of the new one to ensure color change. |
On Fri, Apr 19 2019, matt-3 wrote:
To be honnest I don't think trying to save 1mm of filament is relevant
here, especially in the view that when you will load a new filament
the printer will extrude about 200mm of the new one to ensure color
change.
No, but if the nozzle is low and you extrude more, then having to raise
the nozzle (like autoload does) might be necessary as well.
|
After a few trials, I realized I could just use the mmu ramming sequence to unload. @bubnikv: any reason why the manual filament change sequence couldn't just call mmu_filament_ramming() as opposed to do each own their own thing? A few notes:
these constants (including the UNLOAD_* ones) are not actually used. The FILAMENTCHANGE_* ones are used both in M600 and during filament runout/jam detection. Both "unload filament" from the menu and M702 call either unload_filament() or the mmu sequence (extr_unload -> mmu_ramming_filament+some mmu comm) depending if the mmu is detected or not. But calling mmu_filament_ramming in unload_filament() doesn't sound stupid in regular "unload_filament", M600 and M702. As I said, for a test I replaced the hard-coded sequence in unload_filament() by just calling mmu_ramming_filament. The filament is perfectly shaped and the unload is flawless. @matt-3 I could push some code for you to test or also provide a precompiled firmware if you want to try. |
Using the mmu code for this sounds like a good idea indeed. Sure I could help with validation by testing a precompiled firmware (from Wednesday as I'm currently away). |
For which variant I should build? MK3, MK3S? |
mk3 please |
Here's the prebuilt firmware for the MK3: https://www.thregr.org/~wavexx/tmp/MK3-ramming_unload_test.ino.hex Just as an info, the above is based on the current MK3 code, which disabled the PWM bed heating due to some issue (just so you know). Here are the changes, which are quite simple: https://github.com/prusa3d/Prusa-Firmware/compare/MK3...wavexx:mk3_ramming_unload_test?expand=1 I tested the ramming with both pla and petg, both with very good results. A few things I'd like to do are the following:
|
Hi wavexx,
Overall I think it needs to extrude much more slowly (2mm in 1 second is fine) instead of ejecting 10cm of filament in a fraction of a second. This will help leave enough time for the heat to propagate into the tip of the filament, making it softer so that it can change its shape to the shape of the tube when being pulled out. |
The video was very helpful. There should be a slower insertion and ejection sequence before the filament is spat out, which I cannot spot during the video (looking at the gear marks). Maybe I initialized something wrong or incompletely: I'll give that a look. But before trying to use the ramming code, I did a few iterations of extrude/eject and it didn't work as nicely as I would have expected. In the end, the minimal extrusion length required to always clear off the blob was no less than 4mm. I was inserting, ejecting, inserting, cooling-off, heating, ejecting.. and still had cases where I had a larger tip jamming above the gear. Still better than a plain eject, but not working as consistently as one would have hoped for. Doing a couple of moves to shape the filament did improve things, but that's when I though about the ramming code. |
The video in my previous post does start at the very beginning of the sequence, the first beep you hear is when I selected "unload filament", there is no other movement before that. Here is another one with the official firmware showing how I usually actually unload the filament to avoid it getting stuck (extrude 2mm then unload). It has always worked as far as I can remember and when I pull the filament it feels very smooth. https://youtu.be/JQ9J_3Zb5fs One other thing to keep in mind, if this can help, is that we just need to be able to pull the filament out, the tip does not have to be perfectly shapped for automated re-insertion like with the MMU, it's ok to have to clip it once pulled out. |
On Thu, Apr 25 2019, matt-3 wrote:
Here is another one with the official firmware showing how I usually
actually unload the filament to avoid it getting stuck (extrude 2mm
then unload). It has always worked as far as I can remember and when I
pull the filament it feels very smooth. https://youtu.be/JQ9J_3Zb5fs
I did this as well, but when trying multiple times these days I found
that I do frequently get a very stringy tip.
|
I have prepared another MK3 firmware for testing: https://gemex.eurac.edu/dl/?t=1dedbacd4e0ccd47d9b676b028d580cf It does the following:
|
Here's the worst tip I got with the above: White pla, left in in the hot extruder for ~5m @ 215. Prusa's silver comes out clean, as does most of the PETG I've tried here. |
Thanks for the firmware. Unfortunately it did not work at all as described.
|
On Fri, Apr 26 2019, matt-3 wrote:
It is surprising that the behaviour is so different than what is
expected. Could it be a mix-up of firmwares in the build / upload?
From the bootup screen, yes :(, sorry for this.
I'll rebuild.
|
On Fri, Apr 26 2019, matt-3 wrote:
It is surprising that the behaviour is so different than what is
expected. Could it be a mix-up of firmwares in the build / upload?
Hopefully correct:
https://gemex.eurac.edu/dl/?t=7e58a7a73043a4aa5823edebc5cbbdeb
|
Ah, perfect ! I've tried with PLA, PET-G and FlexiSmart filament and they all give a results similar to the picture that you've posted above, and could be pulled out easily without blockage. Good job ! |
On Fri, Apr 26 2019, matt-3 wrote:
Ah, perfect ! I've tried with PLA, PET-G and FlexiSmart filament and
they all give a result similar to the picture you've posted above, and
could be pulled out easily without blockage. Good job !
Somehow I was expecting the mmu ramming code to do a better job than
that so, in a way, I'm still a bit let down :/
But after trying multiple times, I've also found issues with the ramming
sequence anyway. Ramming works definitely better with PLA, but the
built-in sequence it's not that much better with PET, and the ramp
waaaay is too aggressive for polycarbonate (I was trying out a roll of
PC-MAX which is not even 100% pc).
So, all things considered, if you plan fancy materials, this solution is
probably safer.
|
On Fri, Apr 26 2019, Yuri D'Elia wrote:
On Fri, Apr 26 2019, matt-3 wrote:
> Ah, perfect ! I've tried with PLA, PET-G and FlexiSmart filament and
> they all give a result similar to the picture you've posted above, and
> could be pulled out easily without blockage. Good job !
The firmware I've sent also contains this fix:
#1768
it will raise the carriage (when needed) also during unload, as there's
now some extrusion.
I want to see if the above gets merged (or at least commented on) before
submitting another PR, since there are some code dependencies
intermixed and I've submitted quite a few already ;)
|
A few more thoughts:
|
In M600, some extra priming is performed just before resuming to print. This was already in place and I didn't change it. I do indeed use exactly the same constant in the code just before the unload. I used M600 rarely on the MK3, so I'm open to anything here. If you ack the lcd just after the loading has been done, 5mm does indeed seem excessive. Some value <1mm would probably be enough to stabilize the nozzle pressure. But if you pull the excess just as the print head is moving, some extra material is useful to "grab on". I use a piece of paper to pull the excess. I do this all the time when using a bowden printer on stock marlin and it results in a cleaner resume, but that's mostly because the bowden tube tends to accumulate backpressure, so doing it "as late as possible" does help. The slow part did seem to improve the results for me. Some extra time to soften the filament helps in shaping the blob and avoid sharp protrusions just at the tip. How familiar are you with running GCODE manually? You can run the ejection sequence manually for testing which is much easier if you want to experiment. I normally use "pronsole" from https://github.com/kliment/Printrun The current sequence:
I didn't realize I shortened it to 0.1mm at 60mm/m, which is only half a second. As for the ramming, it's useful to point out what I discovered while reading the source, since I don't have an MMU2 unit. I assumed initially that the built-in ramming sequence would be used (and be updated) by slic3r using some custom GCODE, but it's not the case. Slic3r "rams" while extruding on the purge tower, which results in a different pressure dynamic on the nozzle. It also uses different ramps with different materials, but the firmware has no knowledge of what is loaded. Running the built-in ramming sequence on a difficult material such as PC is not a good idea. |
I have been using my printer quite a bit for the past weeks with your firmware, and the filament has unloaded correctly every single time. Thanks for the info about the unloading sequence gcodes but since it has worked fined I have not tried playing with them. Tbh I think it's a wrap. I hope your change is accepted in the master branch. Thanks! |
Is this done for normal mk3 operation, or only with mmu use?, I hope it will be changed for normal firmware also, forgetting to extrude filament when unloading sometimes, and it tend to get reall stuck. |
It is done when using the LCD and when issuing a filament-change command without an MMU (lcd or GCODE). The mmu filament handling is actually untouched. |
Which firmware?, not happening on 3.7.0. (no mmu) |
This feature is not yet available in the official firmware. If you look above, I provided this experimental firmware for the MK3 that does this. I didn't submit a patch for this yet, as I'd love Prusa to merge some other conflicting changes first. |
This is the biggest issue I have with the MK3. The printer is going great, so I don't like to keep pulling it apart to fix the filament getting stuck. It's in my garage so I don't always hear the beeps, and if it cools, it's going to get stuck! :( otherwise I haven't had any issues and even with half the magnets missing off the heat bed it's still going. I've been checking the internet for a fix for this issue, and found this! Yay. I'll check out your firmware and report back. I use M600 a lot for printing cake decorations, and dog tags. :) |
As a heads up/note for everyone, this has been working very well for me, except sometimes when combined with filament runout. If a filament change is scheduled because the filament has finished, the additional extrusion might bring the filament too low (below the top PTFE tube), to the point that the final retraction doesn't always work as planned. In these cases I simply pushed the filament down (to be melted) with the new filament, but you need to open the spring door to do so. The supplemental extrusion needs to be disabled when an M600 is scheduled by runout. |
This works for me with the Mosquito Hotend. It does extrude +11 which is enough to clean the tip and the gears can still grab the filament for retraction. I also adjusted the speed a bit (slower) for the first retract. I find this lowers the risk of the tip getting ripped off. Changes are in the ultralcd.cpp. I dunno how to contribute here in "the right way" on GitHub so I'm just sharing this here:
|
The code I was depending on was merged yesterday. The new PR #2318 now implements this (handling the runout state as well) on the current FW. |
This issue has been flagged as stale because it has been open for 60 days with no activity. The issue will be closed in 7 days unless someone removes the "stale" label or adds a comment. |
This issue has been closed due to lack of recent activity. |
Hello,
I have found that filament can easily get stuck in the hot end PTFE tubing during the unload process. Occasionally a small blob breaks off in the hot end PTFE tubing requiring disassembly of the extruder. I've tested with a short loading function prior to the unload, and this eliminates this issue entirely. It would be great to have this short ramming function built in to the unload function to ensure an easy removal. Thanks
The text was updated successfully, but these errors were encountered: