# MANUAL\_STEPPER + Extruder Sync

**URL:** <https://klipper.discourse.group/t/manual-stepper-extruder-sync/17844>\
**Category:** Features\
**Created:** [July 23, 2024, 5:45pm UTC](https://klipper.discourse.group/t/manual-stepper-extruder-sync/17844 "2024-07-23T17:45:26Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![Subcode](https://avatars.discourse-cdn.com/v4/letter/s/d78d45/32.png) [@Subcode](https://klipper.discourse.group/u/Subcode)\
**Post date:** [July 23, 2024, 5:45pm UTC](https://klipper.discourse.group/t/manual-stepper-extruder-sync/17844/1 "2024-07-23T17:45:26Z")

</div>

Hi,

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.

---

<div class="post-metadata">

**Author:** ![3dcoded](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/3dcoded/32/20297_2.png) [@3dcoded](https://klipper.discourse.group/u/3dcoded)\
**Post date:** [July 23, 2024, 5:49pm UTC](https://klipper.discourse.group/t/manual-stepper-extruder-sync/17844/2 "2024-07-23T17:49:17Z")

</div>

Currently, I don’t think you can sync a `manual_stepper` to an extruder. You can convert it to an `extruder_stepper`, though. See [extruder\_stepper](https://www.klipper3d.org/Config_Reference.html#extruder_stepper) and [ACTIVATE\_EXTRUDER/SYNC\_EXTRUDER\_MOTION](https://www.klipper3d.org/G-Codes.html#extruder).

If you haven’t gotten too far in your build, I would recommend looking at my [3MS](https://github.com/3dcoded/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).

---

<div class="post-metadata">

**Author:** ![Subcode](https://avatars.discourse-cdn.com/v4/letter/s/d78d45/32.png) [@Subcode](https://klipper.discourse.group/u/Subcode)\
**Post date:** [July 23, 2024, 5:50pm UTC](https://klipper.discourse.group/t/manual-stepper-extruder-sync/17844/3 "2024-07-23T17:50:52Z")

</div>

As stated an extruder\_stepper cannot do what i need it to. it cannot use endpoints or move manually.

---

<div class="post-metadata">

**Author:** ![3dcoded](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/3dcoded/32/20297_2.png) [@3dcoded](https://klipper.discourse.group/u/3dcoded)\
**Post date:** [July 23, 2024, 5:53pm UTC](https://klipper.discourse.group/t/manual-stepper-extruder-sync/17844/4 "2024-07-23T17:53:03Z")

</div>

> 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](https://klipper.discourse.group/t/force-move-on-extruder-stepper/7442/4).

---

<div class="post-metadata">

**Author:** ![Subcode](https://avatars.discourse-cdn.com/v4/letter/s/d78d45/32.png) [@Subcode](https://klipper.discourse.group/u/Subcode)\
**Post date:** [July 23, 2024, 5:54pm UTC](https://klipper.discourse.group/t/manual-stepper-extruder-sync/17844/5 "2024-07-23T17:54:02Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![3dcoded](https://yyz2.discourse-cdn.com/free1/user_avatar/klipper.discourse.group/3dcoded/32/20297_2.png) [@3dcoded](https://klipper.discourse.group/u/3dcoded)\
**Post date:** [July 23, 2024, 5:58pm UTC](https://klipper.discourse.group/t/manual-stepper-extruder-sync/17844/6 "2024-07-23T17:58:24Z")

</div>

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.

---

<div class="post-metadata">

**Author:** ![system](https://global.discourse-cdn.com/free1/uploads/klipper/original/1X/64419bf2aac6639e6ef5cef200dcd456b0a01ac3.png) [@system](https://klipper.discourse.group/u/system)\
**Post date:** [September 21, 2024, 5:58pm UTC](https://klipper.discourse.group/t/manual-stepper-extruder-sync/17844/7 "2024-09-21T17:58:51Z")

</div>

This topic was automatically closed 60 days after the last reply. New replies are no longer allowed.
