# Using extruder motor as 4th axis

I am currently working with a hobbyist robotic arm (uArm Swift Pro) which runs a modified version of Marlin 3D printing firmware.

The arm can be used as a 3D printer as well thus it has an extruder motor. I am not using it as a 3D printer, instead I am reusing the extruder motor as 4th axis to move the arm along a rail. The problem I have run into is that the extruder motor is accelerating in steps, that is accelerating up to a certain speed holds that speed for a while (1-2 s) and then accelerates up to a higher speed holds that for a while. It then decelerates in the same fashion.

So my question is where in the Marlin code is planing made for the E-axis and is it any different from planing the speed of the other axis?

Movement of the steppers is controlled by the jerk and acceleration settings. Both are controlled/set in the Marlin configuration file.

/**
* Default Max Acceleration (change/s) change = mm/s
* (Maximum start speed for accelerated moves)
* Override with M201
*                                      X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
*/
#define DEFAULT_MAX_ACCELERATION      { 3000, 3000, 100, 10000 }

/**
* Default Acceleration (change/s) change = mm/s
* Override with M204
*
*   M204 P    Acceleration
*   M204 R    Retract Acceleration
*   M204 T    Travel Acceleration
*/
#define DEFAULT_ACCELERATION          3000    // X, Y, Z and E acceleration for printing moves
#define DEFAULT_RETRACT_ACCELERATION  3000    // E acceleration for retracts
#define DEFAULT_TRAVEL_ACCELERATION   3000    // X, Y, Z acceleration for travel (non printing) moves

/**
* Default Jerk (mm/s)
* Override with M205 X Y Z E
*
* "Jerk" specifies the minimum speed change that requires acceleration.
* When changing speed and direction, if the difference is less than the
* value set here, it may happen instantaneously.
*/
#define DEFAULT_XJERK                 10.0
#define DEFAULT_YJERK                 10.0
#define DEFAULT_ZJERK                  0.3
#define DEFAULT_EJERK                  5.0

/**