On a RAMPS 1.4 it is possible to mount 5 stepper motors: X,Y,Z steppers are used for cartesian movements, while E0 and E1 are provided for extruders control.

I want to use E0 and E1 as additional movement axis in a robotical arm.

Is it possible in Marlin and if not, how can one approach the problem?

  • $\begingroup$ Klipper supports manual steppers natively, if that could be an option for you $\endgroup$
    – towe
    Commented Sep 25, 2019 at 10:49

1 Answer 1


I found many ways to re-task extruder steppers to behave like cartesian-like controls:

  • If your application does not require contemporary movement of all axes, you can enable multiple extruders setting the EXTRUDERS define in Marlin's Configuration.h.

    Then you can select which extruders will be set as E variable in G1 commands, by sending T0, T1 and so on.

  • If your application require contemporary movement of all axes, you can enable the MIXING_EXTRUDERS option (source).

    With that option, you are basically splitting the E argument between steppers. To set the ratio of your movement, you can give

    M163 S0 P0.6    # Set stepper 0 to ratio 0.6
    M163 S1 P0.4    # Set stepper 1 to ratio 0.4
    M164 S2         # Create a virtual stepper with given settings
    T2              # Select the virtual stepper
  • If you want to configure additional steppers as proper axis, check this commit.

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .