|
|
@ -46,8 +46,17 @@ |
|
|
|
void GcodeSuite::M425() { |
|
|
|
bool noArgs = true; |
|
|
|
|
|
|
|
auto axis_can_calibrate = [](const uint8_t a) { |
|
|
|
switch (a) { |
|
|
|
default: |
|
|
|
case X_AXIS: return AXIS_CAN_CALIBRATE(X); |
|
|
|
case Y_AXIS: return AXIS_CAN_CALIBRATE(Y); |
|
|
|
case Z_AXIS: return AXIS_CAN_CALIBRATE(Z); |
|
|
|
} |
|
|
|
}; |
|
|
|
|
|
|
|
LOOP_XYZ(a) { |
|
|
|
if (CAN_CALIBRATE(a) && parser.seen(XYZ_CHAR(a))) { |
|
|
|
if (AXIS_CAN_CALIBRATE(a) && parser.seen(XYZ_CHAR(a))) { |
|
|
|
planner.synchronize(); |
|
|
|
backlash.distance_mm[a] = parser.has_value() ? parser.value_linear_units() : backlash.get_measurement(AxisEnum(a)); |
|
|
|
noArgs = false; |
|
|
@ -74,7 +83,7 @@ void GcodeSuite::M425() { |
|
|
|
SERIAL_ECHOLNPGM("active:"); |
|
|
|
SERIAL_ECHOLNPAIR(" Correction Amount/Fade-out: F", backlash.get_correction(), " (F1.0 = full, F0.0 = none)"); |
|
|
|
SERIAL_ECHOPGM(" Backlash Distance (mm): "); |
|
|
|
LOOP_XYZ(a) if (CAN_CALIBRATE(a)) { |
|
|
|
LOOP_XYZ(a) if (axis_can_calibrate(a)) { |
|
|
|
SERIAL_CHAR(' ', XYZ_CHAR(a)); |
|
|
|
SERIAL_ECHO(backlash.distance_mm[a]); |
|
|
|
SERIAL_EOL(); |
|
|
@ -87,7 +96,7 @@ void GcodeSuite::M425() { |
|
|
|
#if ENABLED(MEASURE_BACKLASH_WHEN_PROBING) |
|
|
|
SERIAL_ECHOPGM(" Average measured backlash (mm):"); |
|
|
|
if (backlash.has_any_measurement()) { |
|
|
|
LOOP_XYZ(a) if (CAN_CALIBRATE(a) && backlash.has_measurement(AxisEnum(a))) { |
|
|
|
LOOP_XYZ(a) if (axis_can_calibrate(a) && backlash.has_measurement(AxisEnum(a))) { |
|
|
|
SERIAL_CHAR(' ', XYZ_CHAR(a)); |
|
|
|
SERIAL_ECHO(backlash.get_measurement(AxisEnum(a))); |
|
|
|
} |
|
|
|