New proposal for Klipper "extension" support

Thanks. I appreciate the information and feedback. I have some additional comments and questions.

For the low-level manipulations that you need to do, it sounds like you need:

  • A way to define several “mmu” stepper motors. All the steppers are known at startup, though when they move changes at runtime.
  • A way to define a set of “mmu” endstops (potentially 2+). All the endstops are known at startup, but when they are used varies at run-time.
  • Be able to group one or more of these “mmu” motors into a subset. The total set is known at start time, but the pertinent subset can change at run-time.
  • You need to be able to manually command movement of a grouping of “mmu” steppers. You don’t need to group or simultaneously move kinematic steppers and mmu steppers (that is, you’re not moving X while simultaneously moving a “gear” motor).
  • You need to be able to manually command movement of a grouping of “mmu” steppers until one of the previously defined “mmu” endstops triggers. Which endstop changes at run-time. You don’t need to home mmu steppers to an XY endstop nor similar; you don’t need to home an XY stepper to an “mmu” endstop; you don’t need to home an XY stepper while simultaneously homing an “mmu” stepper; you don’t need to home one “mmu” stepper to one “mmu” endstop while simultaneously homing a different “mmu” stepper to a different “mmu” endstop.
  • You need to be able to associate a grouping of “mmu” steppers with an extruder at runtime.

Did I understand the above correctly?

Are there any situations where you have “hard real-time” requirements, or can you mostly just “queue up a bunch of commands” and wait for them to complete? I understand you need to associate steppers with extruders and need to implement homing, but are there other cases which are strictly timed?

Separately, what is your mid to long term preferred development approach? Are you happy with the current setup (instructing users to drop code in the Klipper directory), would like to upstream the code to mainline Klipper repo, would you prefer HappyHair to remain in a separate repo and interact with Klipper via a stable api (like moonraker, mainsail, etc.), or perhaps something else.

Thanks again,
-Kevin

2 Likes