Skip to content

Handling Errors

moggieuk edited this page May 17, 2024 · 8 revisions

We all hope that printing is straightforward, and everything works to plan. Unfortunately that is not always the case with an MMU, it may pause and require manual intervention to complete a successful print.


#f03c15 #c5f015 #1589F0 Causes of Errors

Happy Hare will pause the print whenever a condition occurs that it can't automatically handle. These include unavoidable conditions as well as unexpected issues E.g.

  • Running out of filament
  • MMU malfunction
  • Detecting a clog
  • Misconfiguration
  • Unreliability issues
  • etc.

Although error conditions are inevitable, that isn't to say mostely reliable operation isn't possible - I've had many multi-thousand swap prints complete without a single incident. Spending time to tune your MMU and correctly tackle problems one at a time is the key to reliability.


#f03c15 #c5f015 #1589F0 What to do when MMU pauses

When the print pauses Happy Hare a few things happen:

  • Happy Hare will lift the toolhead off the print to avoid blobs
  • The `PAUSE` macro will be called. Typically this will further move the toolhead to a parking position
  • The heated bed will remain heated for the time set by `timeout_pause`
  • The extruder will remain hot for the time set with `disable_heater`

The timeout_pause config variable overrides the default klipper idle_timeout as is applied during the paused state. This allow the bed heater to remain on for a longer period and prevents the steppers from de-energising and loosing position. Similarly the disable_heater config controls how long the extruder is kept heated. Typically the extruder can be allowed to cool after a few minutes but you want to make sure the bed remains hot long enough for you to notice the pause.

Note that you can mimick a pause behavior for testing with this command:

MMU_PAUSE FORCE_IN_PRINT=1

The best way to describe the workflow is as follows:

    graph TD;
    Printing --> Paused_Error
    Paused_Error --> MMU_UNLOCK
    MMU_UNLOCK --> Fix_Problem
    Paused_Error --> Fix_Problem
    Fix_Problem --> CANCEL_PRINT
    Fix_Problem --> RESUME
    Fix_Problem --> MMU_RECOVER
    MMU_RECOVER --> RESUME
    RESUME --> Printing
    CANCEL_PRINT --> Print_Cancelled
Loading

Explanation:

  • While the MMU is paused you can fix the problem either by careful manual manipulation or by running MMU_* commands.
  • If the extruder has dropped temperature or it is about to it is a good idea to run MMU_UNLOCK first and to wait for the extruder to get back to temperature
  • When the problem is fixed decide if MMU_RECOVER or similar is necessary. Generally this won't be necessary.
  • If you decide to abort the print you can with the usual CANCEL_PRINT command
  • Resume printing with the RESUME command

#f03c15 #c5f015 #1589F0 State Recovery

If you fix a problem using Happy Hare command or operations you can ignore this section, but if you are fixing completely manually, Happy Hare may not know the current state of the MMU (see Macro Based Sequences for all the gory detail) and this can lead to it failing to resume (just results in another error).

You can decide if recovery is necessary by using the MMU_STATUS command and validating the MMU state by interpreting the status display:

2:18 AM Gates: |#0 |#1 |#2 |#3 |#4 |#5 |#6 |#7 |#8 |
        Tools: |T0 |T1 |T2 |T3 |T4 |T5 |T6 |T7 |T8 |
        Avail: | B | B | B | ? | . | ? | S | ? | B |
        Selct: --------| * |------------------------ T4
2:18 AM MMU [T2] >>> [En] >>>>>>> [Ex] >> [Ts] >> [Nz] LOADED (@0.0 mm)

If you need to recover there is a simple command that will do this automatically the majority of the time:

MMU_RECOVER

By default this causes Happy Hare to run some tests (like reading sensors and wiggling the filament) to try to assertain the correct state, for example, to confirm the position of the filament. But you can also force it by specifying additional options. E.g.

MMU_RECOVER TOOL=1 GATE=1 LOADED=1

This will ensure that Happy Hare understands that tool 1 is selected on gate 1 and the filament is loaded in the extruder. See the Command Reference for more details.

One other operation that may be useful during recovery is updating the Gate map and Tool-to-Gate map. For example, correcting the tool to gate mapping or noting availabily of filament in a gate after loading new filament. The need for this depends a lot of configuration and sensor options - e.g. pre-gate sensors will automatically set filament availability. Read Tool and Gate Maps for a better understanding of the sate contained ini these maps.

Note

Remember this is optional and ONLY needed if you may have confused the MMU state. I.e. if you left everything where the MMU expects it there is no need to run and indeed if you use MMU commands then the state will be correct and there is never a need to run. However, this can be useful to force Happy Hare to run its own checks to, for example, confirm the position of the filament.


#f03c15 #c5f015 #1589F0 Resuming a print

Once you have addressed the issue, optionally correctly MMU state you are ready to resume printing:

RESUME

This will not only run your own print resume logic, but it will reset the heater timeout clocks and restore the z-hop move to put the printhead back on the print at the correct position.

 1. Introduction
 2. Installation
 3. Essential Configuration
 4. Calibration
 5. Operation

-- YOUR MMU IS READY TO PLAY WITH --

 6. Slicer-MMU Setup

-- NOW YOU ARE READY TO PRINT! --

 7. Tuning
 8. Optional Feature Setup
 9. Advanced Configuration
 10. Advanced Concepts
11. Quick References

12. Troubleshooting
13. FAQ
14. MCU Board Reference 🆕
15. Change Log
Happy Hare Discord

Clone this wiki locally