-
-
Notifications
You must be signed in to change notification settings - Fork 19.3k
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
MMU2s C0 fix #26524
MMU2s C0 fix #26524
Conversation
Marlin keeps extruding filament while waiting on the "C0" to be executed by the MMU2s. Incase the MMU2s is having issues, like the 5 flashing lights or some other problems that requires manual intervention and cannot respond to requests properly and the filament is already in the extruder, a huge bulge of filament on to the wipe tower is extruded which is not recoverable anymore. This fixes that by replacing the `unscaled_mmu2_e_move` call with an `idle` call.
// "keep slowly spinning during C0" causes a huge amount of | ||
// filament to be extruded and causing catastrophic/unrecoverable | ||
// issues... | ||
idle(); |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Removing the move would seem to negate the point of checking that the planner has fewer than 3 moves. The comment above says this block will "Slowly spin the extruder during C0." Will that still occur with these changes? If not, that comment should also be removed.
The code being changed here was originally added in #19429 by @isanval so it would be a good idea to review that PR and to get their input to understand what this was intended to accomplish and to come to a consensus about the best solution.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I read through the afformentioned PR and issue tickets. First of all, the claim of MMU not having enough torque to push the filament into gears doesn't feel right to me, I suspect @isanval had voltage issues mentioned and already solved here: I found serious design error in MMU2 electronics hardware
Secondly, in my setup the filament sensor is around 8-10mm before the gears and keep rotating the gears doesn't help for anything. I wish I had a video showing the error.
Maybe I should introduce a new config option like MMU2_EXTRUDE_WHILE_C0
which True by default and keep both the codes. This way I can fix my problem and keep the previous implementation, what do you think?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
PR claim that move should be done with MMU2S but if you have filament sensor before gears you should not have MMU2S but MMU2 (AFAIK)
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
but if you have filament sensor before gears you should not have MMU2S but MMU2 (AFAIK)
That's not true, MMU2 doesn't have a sensor at all and only extrudes a pre-defined length of filament. With my setup MMU2s feeds until the filament sensor triggers, but pushes the filament a little further after that, putting the filament to the gears.
But, sure enough, even if I find a proper way of putting the filament sensor inside my Sprite Extruder Pro (I have an idea how to do that) the gears rotating indefinitely will cause the same issue that I'm currently having...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That's true, it's not MMU2 that has such sensor but I recall, maybe wrongly, that together with MMU2S the sensor on extruder was moved "on gears" to be sure filament was got. Maybe just wrong assumption on my side
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Wouldn’t you just use the PRUSA_MMU2
option instead of PRUSA_MMU2S
?
Requires MK3S extruder with motion sensor
Lines 376 to 377 in 68ab7f6
* PRUSA_MMU2 : Průša MMU2 | |
* PRUSA_MMU2S : Průša MMU2S (Requires MK3S extruder with motion sensor, EXTRUDERS = 5) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Unfortunately no, I still have the benefits of having a filament sensor, as sometimes the pulley cannot pull the filaments for some reason (friction in the spool holders etc.), and MMU extrudes shorter than required and thanks to the filament sensor MMU knows that and starts the intermitent extrusion sequence...
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you’re using an MMU2S without the required MK3S extruder (or something closely resembling it), then a hidden flag to disable some MMU2S functionality might be best.
Thinkyhead will need to weigh in.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
You require the extruder end. not just for the sensor. It requires a specially sized PTFE that has a ID of 1.85 mm in the entrance of the hotend.. On retraction the hot filament is pulled into this section and allowed to form a blob of maximum diameter 1.85 before being pulled through the rest of the unit.
Using PFTE hotend tubes of other diameters or lengths will cause jams or just fail to work. It is all very carefully timed for the expected dimensions and lengths
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Although, I feel that the rotation of the extruder gears while C0
will still cause issues, and I'll disable that feature on my own branch, I'm convinced that what I'm doing is out of the booundaries of the intended design of MMU2s. So, I think we can reject this PR...
@ellensp I don't have any problems with the tip shapes (thickness or stringiness), I adjusted my slicer for the cooling tube length and position, hopefully the filament tips are coming out perfectly, it took a while to achieve that though...
Closing. |
thanks gents, updated my filament runout sensor design, it now uses the lever to sense if the filament is in the gear, and it is working beautifully now... on the other hand I'm continuing my work on MMU3 implementation 👍 |
Marlin keeps extruding filament while waiting on the "C0" to be executed by the MMU2s. Incase the MMU2s is having issues, like the 5 flashing lights or some other problems that requires manual intervention and cannot respond to requests properly and the filament is already in the extruder, a huge bulge of filament on to the wipe tower is extruded which is not recoverable anymore. This fixes that by replacing the
unscaled_mmu2_e_move
call with anidle
call.