diff --git a/Firmware/Marlin_main.cpp b/Firmware/Marlin_main.cpp index dd6dd78b1..c2610653d 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();