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$
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

/**
| improve this answer | |
$\endgroup$

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.