From 02cce7d4b40e229338619813912ad62f0480fa3a Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 26 Feb 2020 06:39:29 -0600 Subject: [PATCH] Add TRAVEL_EXTRA_XYJERK option See #16949 Co-Authored-By: josedpedroso --- Marlin/Configuration.h | 2 ++ Marlin/src/module/planner.cpp | 11 +++++++++-- 2 files changed, 11 insertions(+), 2 deletions(-) diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index fd3687a7fc..5679aa3093 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -784,6 +784,8 @@ #define DEFAULT_YJERK 10.0 #define DEFAULT_ZJERK 0.3 + //#define TRAVEL_EXTRA_XYJERK 0.0 // Additional jerk allowance for all travel moves + //#define LIMITED_JERK_EDITING // Limit edit via M205 or LCD to DEFAULT_aJERK * 2 #if ENABLED(LIMITED_JERK_EDITING) #define MAX_JERK_EDIT_VALUES { 20, 20, 0.6, 10 } // ...or, set your own edit limits diff --git a/Marlin/src/module/planner.cpp b/Marlin/src/module/planner.cpp index bf01c771ae..dd1109011e 100644 --- a/Marlin/src/module/planner.cpp +++ b/Marlin/src/module/planner.cpp @@ -2397,8 +2397,15 @@ bool Planner::_populate_block(block_t * const block, bool split_move, LOOP_XYZE(i) #endif { - const float jerk = ABS(current_speed[i]), // cs : Starting from zero, change in speed for this axis - maxj = max_jerk[i]; // mj : The max jerk setting for this axis + const float jerk = ABS(current_speed[i]); // cs : Starting from zero, change in speed for this axis + + float maxj = max_jerk[i]; // mj : The max jerk setting for this axis + + #ifdef TRAVEL_EXTRA_XYJERK + if ((TRAVEL_EXTRA_XYJERK) && !de <= 0 && (i == X_AXIS || i == Y_AXIS)) + maxj += TRAVEL_EXTRA_XYJERK; // Extra jerk allowance for travel moves + #endif + if (jerk > maxj) { // cs > mj : New current speed too fast? if (limited) { // limited already? const float mjerk = nominal_speed * maxj; // ns*mj