From f37f132ee41413408d50d26c0e646bfc185b7e6a Mon Sep 17 00:00:00 2001 From: Yuri D'Elia Date: Wed, 4 Nov 2020 16:00:53 +0100 Subject: [PATCH 1/2] Allow all microstep resolutions for all axes --- Firmware/Marlin_main.cpp | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index dd6dd78b..c2610653 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -8530,9 +8530,7 @@ Sigma_Exit: if(code_seen(axis_codes[i])) { uint16_t res_new = code_value(); - bool res_valid = (res_new == 8) || (res_new == 16) || (res_new == 32); // resolutions valid for all axis - res_valid |= (i != E_AXIS) && ((res_new == 1) || (res_new == 2) || (res_new == 4)); // resolutions valid for X Y Z only - res_valid |= (i == E_AXIS) && ((res_new == 64) || (res_new == 128)); // resolutions valid for E only + bool res_valid = res_new > 0 && res_new <= 256 && !(res_new & (res_new - 1)); // must be a power of two if (res_valid) { st_synchronize(); From 916212b597ee530b3557a5a682702ada6c9ea390 Mon Sep 17 00:00:00 2001 From: Alex Voinea Date: Wed, 9 Feb 2022 10:28:45 +0100 Subject: [PATCH 2/2] Add ALLOW_ALL_MRES as requested in PR --- Firmware/Marlin_main.cpp | 6 ++++++ Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h | 1 + Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h | 1 + 3 files changed, 8 insertions(+) diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index c2610653..81d9bcc5 100755 --- a/Firmware/Marlin_main.cpp +++ b/Firmware/Marlin_main.cpp @@ -8530,7 +8530,13 @@ Sigma_Exit: if(code_seen(axis_codes[i])) { uint16_t res_new = code_value(); +#ifdef ALLOW_ALL_MRES bool res_valid = res_new > 0 && res_new <= 256 && !(res_new & (res_new - 1)); // must be a power of two +#else + bool res_valid = (res_new == 8) || (res_new == 16) || (res_new == 32); // resolutions valid for all axis + res_valid |= (i != E_AXIS) && ((res_new == 1) || (res_new == 2) || (res_new == 4)); // resolutions valid for X Y Z only + res_valid |= (i == E_AXIS) && ((res_new == 64) || (res_new == 128)); // resolutions valid for E only +#endif if (res_valid) { st_synchronize(); diff --git a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h index 04b4c526..1400e7eb 100644 --- a/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3-EINSy10a-E3Dv6full.h @@ -212,6 +212,7 @@ #define TMC2130_INTPOL_XY 1 // extrapolate 256 for XY axes #define TMC2130_INTPOL_Z 1 // extrapolate 256 for Z axis #define TMC2130_INTPOL_E 1 // extrapolate 256 for E axis +// #define ALLOW_ALL_MRES #define TMC2130_PWM_GRAD_X 2 // PWMCONF #define TMC2130_PWM_AMPL_X 230 // PWMCONF diff --git a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h index c869ec51..d9d72d3d 100644 --- a/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h +++ b/Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h @@ -214,6 +214,7 @@ #define TMC2130_INTPOL_XY 1 // extrapolate 256 for XY axes #define TMC2130_INTPOL_Z 1 // extrapolate 256 for Z axis #define TMC2130_INTPOL_E 1 // extrapolate 256 for E axis +// #define ALLOW_ALL_MRES #define TMC2130_PWM_GRAD_X 2 // PWMCONF #define TMC2130_PWM_AMPL_X 230 // PWMCONF