4
$\begingroup$

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?

$\endgroup$

1 Answer 1

3
$\begingroup$

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

/**
$\endgroup$

You must log in to answer this question.

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