Browse Source

🔧 Adjust DEFAULT_EJERK settings (#26665)

Vovodroid 1 year ago
parent
commit
da96607b65

+ 1 - 2
Marlin/Configuration.h

@@ -1291,6 +1291,7 @@
   #define DEFAULT_XJERK 10.0
   #define DEFAULT_XJERK 10.0
   #define DEFAULT_YJERK 10.0
   #define DEFAULT_YJERK 10.0
   #define DEFAULT_ZJERK  0.3
   #define DEFAULT_ZJERK  0.3
+  #define DEFAULT_EJERK  5.0
   //#define DEFAULT_IJERK  0.3
   //#define DEFAULT_IJERK  0.3
   //#define DEFAULT_JJERK  0.3
   //#define DEFAULT_JJERK  0.3
   //#define DEFAULT_KJERK  0.3
   //#define DEFAULT_KJERK  0.3
@@ -1306,8 +1307,6 @@
   #endif
   #endif
 #endif
 #endif
 
 
-#define DEFAULT_EJERK    5.0  // May be used by Linear Advance
-
 /**
 /**
  * Junction Deviation Factor
  * Junction Deviation Factor
  *
  *

+ 3 - 1
Marlin/Configuration_adv.h

@@ -2320,7 +2320,9 @@
   #endif
   #endif
   //#define ADVANCE_K_EXTRA       // Add a second linear advance constant, configurable with M900 L.
   //#define ADVANCE_K_EXTRA       // Add a second linear advance constant, configurable with M900 L.
   //#define LA_DEBUG              // Print debug information to serial during operation. Disable for production use.
   //#define LA_DEBUG              // Print debug information to serial during operation. Disable for production use.
-  //#define ALLOW_LOW_EJERK       // Allow a DEFAULT_EJERK value of <10. Recommended for direct drive hotends.
+  #if ENABLED(CLASSIC_JERK)
+    //#define ALLOW_LOW_EJERK     // Allow a DEFAULT_EJERK value of <10. Recommended for direct drive hotends.
+  #endif
   //#define EXPERIMENTAL_I2S_LA   // Allow I2S_STEPPER_STREAM to be used with LA. Performance degrades as the LA step rate reaches ~20kHz.
   //#define EXPERIMENTAL_I2S_LA   // Allow I2S_STEPPER_STREAM to be used with LA. Performance degrades as the LA step rate reaches ~20kHz.
 #endif
 #endif
 
 

+ 5 - 1
Marlin/src/gcode/host/M360.cpp

@@ -182,7 +182,11 @@ void GcodeSuite::M360() {
   config_line(F("NumExtruder"), EXTRUDERS);
   config_line(F("NumExtruder"), EXTRUDERS);
   #if HAS_EXTRUDERS
   #if HAS_EXTRUDERS
     EXTRUDER_LOOP() {
     EXTRUDER_LOOP() {
-      config_line_e(e, JERK_STR, TERN(HAS_LINEAR_E_JERK, planner.max_e_jerk[E_INDEX_N(e)], TERN(CLASSIC_JERK, planner.max_jerk.e, DEFAULT_EJERK)));
+      #if HAS_LINEAR_E_JERK
+        config_line_e(e, JERK_STR, planner.max_e_jerk[E_INDEX_N(e)]);
+      #elif ENABLED(CLASSIC_JERK)
+        config_line_e(e, JERK_STR, planner.max_jerk.e);
+      #endif
       config_line_e(e, F("MaxSpeed"), planner.settings.max_feedrate_mm_s[E_AXIS_N(e)]);
       config_line_e(e, F("MaxSpeed"), planner.settings.max_feedrate_mm_s[E_AXIS_N(e)]);
       config_line_e(e, F("Acceleration"), planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(e)]);
       config_line_e(e, F("Acceleration"), planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(e)]);
       config_line_e(e, F("Diameter"), TERN(NO_VOLUMETRICS, DEFAULT_NOMINAL_FILAMENT_DIA, planner.filament_size[e]));
       config_line_e(e, F("Diameter"), TERN(NO_VOLUMETRICS, DEFAULT_NOMINAL_FILAMENT_DIA, planner.filament_size[e]));

+ 6 - 2
Marlin/src/module/planner.cpp

@@ -3386,8 +3386,12 @@ void Planner::set_max_feedrate(const AxisEnum axis, float inMaxFeedrateMMS) {
         #ifdef MAX_JERK_EDIT_VALUES
         #ifdef MAX_JERK_EDIT_VALUES
           MAX_JERK_EDIT_VALUES
           MAX_JERK_EDIT_VALUES
         #else
         #else
-          { (DEFAULT_XJERK) * 2, (DEFAULT_YJERK) * 2,
-            (DEFAULT_ZJERK) * 2, (DEFAULT_EJERK) * 2 }
+          LOGICAL_AXIS_ARRAY(
+            (DEFAULT_EJERK) * 2,
+            (DEFAULT_XJERK) * 2, (DEFAULT_YJERK) * 2, (DEFAULT_ZJERK) * 2,
+            (DEFAULT_IJERK) * 2, (DEFAULT_JJERK) * 2, (DEFAULT_KJERK) * 2,
+            (DEFAULT_UJERK) * 2, (DEFAULT_VJERK) * 2, (DEFAULT_WJERK) * 2
+          )
         #endif
         #endif
       ;
       ;
       limit_and_warn(inMaxJerkMMS, axis, F("Jerk"), max_jerk_edit);
       limit_and_warn(inMaxJerkMMS, axis, F("Jerk"), max_jerk_edit);

+ 1 - 1
Marlin/src/module/settings.cpp

@@ -856,7 +856,7 @@ void MarlinSettings::postprocess() {
           EEPROM_WRITE(dummyf);
           EEPROM_WRITE(dummyf);
         #endif
         #endif
       #else
       #else
-        const xyze_pos_t planner_max_jerk = LOGICAL_AXIS_ARRAY(float(DEFAULT_EJERK), 10, 10, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4);
+        const xyze_pos_t planner_max_jerk = LOGICAL_AXIS_ARRAY(5, 10, 10, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4, 0.4);
         EEPROM_WRITE(planner_max_jerk);
         EEPROM_WRITE(planner_max_jerk);
       #endif
       #endif