diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 0d285e99bc..2aa3014348 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -2865,6 +2865,7 @@ #define U_RSENSE 0.11 #define U_CHAIN_POS -1 //#define U_INTERPOLATE true + //#define U_HOLD_MULTIPLIER 0.5 #endif #if AXIS_IS_TMC(V) @@ -2874,6 +2875,7 @@ #define V_RSENSE 0.11 #define V_CHAIN_POS -1 //#define V_INTERPOLATE true + //#define V_HOLD_MULTIPLIER 0.5 #endif #if AXIS_IS_TMC(W) @@ -2883,6 +2885,7 @@ #define W_RSENSE 0.11 #define W_CHAIN_POS -1 //#define W_INTERPOLATE true + //#define W_HOLD_MULTIPLIER 0.5 #endif #if AXIS_IS_TMC(E0) diff --git a/Marlin/src/gcode/calibrate/M425.cpp b/Marlin/src/gcode/calibrate/M425.cpp index bfceefdbe2..65d368f532 100644 --- a/Marlin/src/gcode/calibrate/M425.cpp +++ b/Marlin/src/gcode/calibrate/M425.cpp @@ -66,7 +66,7 @@ void GcodeSuite::M425() { LOOP_NUM_AXES(a) { if (axis_can_calibrate(a) && parser.seen(AXIS_CHAR(a))) { planner.synchronize(); - backlash.set_distance_mm(AxisEnum(a), parser.has_value() ? parser.value_axis_units(AxisEnum(a)) : backlash.get_measurement(AxisEnum(a))); + backlash.set_distance_mm((AxisEnum)a, parser.has_value() ? parser.value_axis_units((AxisEnum)a) : backlash.get_measurement((AxisEnum)a)); noArgs = false; } } diff --git a/Marlin/src/gcode/config/M200-M205.cpp b/Marlin/src/gcode/config/M200-M205.cpp index 5e15ff65e8..649bee53de 100644 --- a/Marlin/src/gcode/config/M200-M205.cpp +++ b/Marlin/src/gcode/config/M200-M205.cpp @@ -144,7 +144,7 @@ void GcodeSuite::M201_report(const bool forReplay/*=true*/) { SP_K_STR, K_AXIS_UNIT(planner.settings.max_acceleration_mm_per_s2[K_AXIS]), SP_U_STR, U_AXIS_UNIT(planner.settings.max_acceleration_mm_per_s2[U_AXIS]), SP_V_STR, V_AXIS_UNIT(planner.settings.max_acceleration_mm_per_s2[V_AXIS]), - SP_W_STR, W_AXIS_UNIT(planner.settings.max_acceleration_mm_per_s2[W_AXIS]), + SP_W_STR, W_AXIS_UNIT(planner.settings.max_acceleration_mm_per_s2[W_AXIS]) ) #if HAS_EXTRUDERS && DISABLED(DISTINCT_E_FACTORS) , SP_E_STR, VOLUMETRIC_UNIT(planner.settings.max_acceleration_mm_per_s2[E_AXIS]) diff --git a/Marlin/src/gcode/control/M17_M18_M84.cpp b/Marlin/src/gcode/control/M17_M18_M84.cpp index 4b97dfe9ae..42fd445b7d 100644 --- a/Marlin/src/gcode/control/M17_M18_M84.cpp +++ b/Marlin/src/gcode/control/M17_M18_M84.cpp @@ -92,7 +92,7 @@ void do_enable(const stepper_flags_t to_enable) { if ((also_enabled &= ~(shall_enable | was_enabled))) { SERIAL_CHAR('('); - LOOP_NUM_AXES(a) if (TEST(also_enabled, a)) SERIAL_CHAR(axis_codes[a], ' '); + LOOP_NUM_AXES(a) if (TEST(also_enabled, a)) SERIAL_CHAR(AXIS_CHAR(a), ' '); #if HAS_EXTRUDERS #define _EN_ALSO(N) if (TEST(also_enabled, INDEX_OF_AXIS(E_AXIS, N))) SERIAL_CHAR('E', '0' + N, ' '); REPEAT(EXTRUDERS, _EN_ALSO) diff --git a/Marlin/src/gcode/feature/L6470/M906.cpp b/Marlin/src/gcode/feature/L6470/M906.cpp index f55405b798..0aefc03f7c 100644 --- a/Marlin/src/gcode/feature/L6470/M906.cpp +++ b/Marlin/src/gcode/feature/L6470/M906.cpp @@ -285,6 +285,25 @@ void GcodeSuite::M906() { break; #endif + #if AXIS_IS_L64XX(I) + case I_AXIS: L6470_SET_KVAL_HOLD(I); break; + #endif + #if AXIS_IS_L64XX(J) + case J_AXIS: L6470_SET_KVAL_HOLD(J); break; + #endif + #if AXIS_IS_L64XX(K) + case K_AXIS: L6470_SET_KVAL_HOLD(K); break; + #endif + #if AXIS_IS_L64XX(U) + case U_AXIS: L6470_SET_KVAL_HOLD(U); break; + #endif + #if AXIS_IS_L64XX(V) + case V_AXIS: L6470_SET_KVAL_HOLD(V); break; + #endif + #if AXIS_IS_L64XX(W) + case W_AXIS: L6470_SET_KVAL_HOLD(W); break; + #endif + #if AXIS_IS_L64XX(E0) || AXIS_IS_L64XX(E1) || AXIS_IS_L64XX(E2) || AXIS_IS_L64XX(E3) || AXIS_IS_L64XX(E4) || AXIS_IS_L64XX(E5) || AXIS_IS_L64XX(E6) || AXIS_IS_L64XX(E7) case E_AXIS: { const int8_t eindex = get_target_e_stepper_from_command(-2); @@ -346,6 +365,24 @@ void GcodeSuite::M906() { #if AXIS_IS_L64XX(Z4) L64XX_REPORT_CURRENT(Z4); #endif + #if AXIS_IS_L64XX(I) + L64XX_REPORT_CURRENT(I); + #endif + #if AXIS_IS_L64XX(J) + L64XX_REPORT_CURRENT(J); + #endif + #if AXIS_IS_L64XX(K) + L64XX_REPORT_CURRENT(K); + #endif + #if AXIS_IS_L64XX(U) + L64XX_REPORT_CURRENT(U); + #endif + #if AXIS_IS_L64XX(V) + L64XX_REPORT_CURRENT(V); + #endif + #if AXIS_IS_L64XX(W) + L64XX_REPORT_CURRENT(W); + #endif #if AXIS_IS_L64XX(E0) L64XX_REPORT_CURRENT(E0); #endif diff --git a/Marlin/src/gcode/host/M114.cpp b/Marlin/src/gcode/host/M114.cpp index 41433b510d..fc1c7f9e4b 100644 --- a/Marlin/src/gcode/host/M114.cpp +++ b/Marlin/src/gcode/host/M114.cpp @@ -34,7 +34,7 @@ #include "../../core/debug_out.h" #endif - void report_all_axis_pos(const xyze_pos_t &pos, const uint8_t n=XYZE, const uint8_t precision=3) { + void report_all_axis_pos(const xyze_pos_t &pos, const uint8_t n=LOGICAL_AXES, const uint8_t precision=3) { char str[12]; LOOP_L_N(a, n) { SERIAL_CHAR(' ', axis_codes[a], ':'); diff --git a/Marlin/src/libs/L64XX/L64XX_Marlin.cpp b/Marlin/src/libs/L64XX/L64XX_Marlin.cpp index 0aa2a85439..6d7ab788d4 100644 --- a/Marlin/src/libs/L64XX/L64XX_Marlin.cpp +++ b/Marlin/src/libs/L64XX/L64XX_Marlin.cpp @@ -415,8 +415,8 @@ uint8_t L64XX_Marlin::get_user_input(uint8_t &driver_count, L64XX_axis_t axis_in LOOP_LOGICAL_AXES(i) if (uint16_t _displacement = parser.intval(axis_codes[i])) { found_displacement = true; displacement = _displacement; - uint8_t axis_offset = parser.byteval('J'); - axis_mon[0][0] = axis_codes[i]; // Axis first character, one of XYZE + const uint8_t axis_offset = parser.byteval('J'); + axis_mon[0][0] = axis_codes[i]; // Axis first character, one of XYZ...E const bool single_or_e = axis_offset >= 2 || axis_mon[0][0] == 'E', one_or_more = !single_or_e && axis_offset == 0; uint8_t driver_count_local = 0; // Can't use "driver_count" directly as a subscript because it's passed by reference diff --git a/Marlin/src/libs/L64XX/L64XX_Marlin.h b/Marlin/src/libs/L64XX/L64XX_Marlin.h index d00b5c16cd..b71d97a0d6 100644 --- a/Marlin/src/libs/L64XX/L64XX_Marlin.h +++ b/Marlin/src/libs/L64XX/L64XX_Marlin.h @@ -36,7 +36,7 @@ #define HAS_L64XX_EXTRUDER (AXIS_IS_L64XX(E0) || AXIS_IS_L64XX(E1) || AXIS_IS_L64XX(E2) || AXIS_IS_L64XX(E3) || AXIS_IS_L64XX(E4) || AXIS_IS_L64XX(E5) || AXIS_IS_L64XX(E6) || AXIS_IS_L64XX(E7)) #define _EN_ITEM(N) , E##N -enum L64XX_axis_t : uint8_t { NUM_AXIS_LIST(X, Y, Z, I, J, K), X2, Y2, Z2, Z3, Z4 REPEAT(E_STEPPERS, _EN_ITEM), MAX_L64XX }; +enum L64XX_axis_t : uint8_t { NUM_AXIS_LIST(X, Y, Z, I, J, K, U, V, W), X2, Y2, Z2, Z3, Z4 REPEAT(E_STEPPERS, _EN_ITEM), MAX_L64XX }; #undef _EN_ITEM class L64XX_Marlin : public L64XXHelper {