prusa3d / Prusa-Firmware-MMU

Other
35 stars 19 forks source link

Introduce manual operation of MMU #160

Closed DRracer closed 2 years ago

DRracer commented 2 years ago

This PR brings the option to move the selector directly using buttons of the MMU - obviously while the MMU is idle and no filament is stuck in the selector.

Left/Right buttons move the selector Left/Right.

Middle button performs a LoadFilament (into the MMU) on the active slot.

With this PR a change of LoadFilament behavior is also introduced. Now, LoadFilament spins the Pulley for infinite time while waiting for either FINDA trigger and/or a button pressed.

More commits to follow, especially unit tests...

MMU-116 MMU-77

DRracer commented 2 years ago

@wavexx please think about the stability of motion implementation - can we accidentally hit some limit of stepping/motion if the motion runs for a very long time? Can we reset pulley's position occasionally to prevent this?

wavexx commented 2 years ago

If I remember right, the move itself should be stepped fine when the internal counter overflows, but the absolute pulley position will be incorrect. This can be a problem when you get the current position.

I guess this is a problem when loading continuously right? Any other spots I can look at?

DRracer commented 2 years ago

@wavexx ok, good to know. I don't need the absolute position of Pulley in this operation, so resetting it to whatever number we see fit can be done at the end safely.

wavexx commented 2 years ago

"L" and manual behavior tested. Working as intended now!