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

MMU2s C0 fix #26524

Closed

Conversation

eoyilmaz
Copy link
Contributor

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.

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();
Copy link
Member

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.

Copy link
Contributor Author

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?

Copy link
Contributor

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)

Copy link
Contributor Author

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

Copy link
Contributor

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

Copy link
Member

@thisiskeithb thisiskeithb Dec 15, 2023

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

* PRUSA_MMU2 : Průša MMU2
* PRUSA_MMU2S : Průša MMU2S (Requires MK3S extruder with motion sensor, EXTRUDERS = 5)

Copy link
Contributor Author

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

Copy link
Member

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.

Copy link
Contributor

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

Copy link
Contributor Author

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

@thisiskeithb
Copy link
Member

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

Closing.

@eoyilmaz
Copy link
Contributor Author

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 👍

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants