Im building a 3DChameleon style MMU, for the loading and unloading im using a manual_stepper to push the filament to a filament sensor. This is required because the distance for every material to the extruder can be slightly different.
After pushing the material to the filament sensor i want the extruder and chameleon loading stepper to work together and to this effect i want to sync the steppers.
Here is my issue, a manual_stepper cannot be synced to a extruder because only extruder_steppers or extruders can be synced. But extruder_steppers cant have endstops so i cant manually move it to the endpoint before syncing it up with the extruder.
I’m reasonably good with python but i have no idea where to start because klipper is quite complex.
It would be nice if this feature could be implemented, either allowing extruder_steppers to also have endpoints and to be moved manually or allow manual_steppers to be synced.
If you haven’t gotten too far in your build, I would recommend looking at my 3MS. I created it after purchasing a 3DChameleon and trying to get it to work for months to no avail. The 3MS is much simpler and modular, so you can choose how many filaments you want (up to four so far).
Here is my issue, a manual_stepper cannot be synced to a extruder because only extruder_steppers or extruders can be synced. But extruder_steppers cant have endstops so i cant manually move it to the endpoint before syncing it up with the extruder.
Sorry. I missed that part in your original post.
For a 3DChameleon-style design, I think you should have one manual_stepper for the selector and one extruder_stepper for the drive motor. The selector can be homed with a virtual/physical endstop, and the drive motor can be synced/desynced with your extruder as needed.
Also, you can manually move an extruder_stepper. See this forum post.
That does not solve homing to the extruder, which is the problem. I need an endpoint for the extruding stepper since the distance is not identical for all materials.
I’m not sure how to solve that, but in my experience, you can usually set a load distance slightly too high, then if a failure happens, you can use your filament sensor to detect it and pause the print.