|
|
@ -5107,9 +5107,9 @@ void home_all_axes() { gcode_G28(true); }
|
|
|
|
* P4-P7 Probe all positions at different locations and average them.
|
|
|
|
* P4-P7 Probe all positions at different locations and average them.
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* T Don't calibrate tower angle corrections
|
|
|
|
* T Don't calibrate tower angle corrections
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* Cn.nn Calibration precision; when omitted calibrates to maximum precision
|
|
|
|
* Cn.nn Calibration precision; when omitted calibrates to maximum precision
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* Vn Verbose level:
|
|
|
|
* Vn Verbose level:
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* V0 Dry-run mode. Report settings and probe results. No calibration.
|
|
|
|
* V0 Dry-run mode. Report settings and probe results. No calibration.
|
|
|
@ -5229,7 +5229,7 @@ void home_all_axes() { gcode_G28(true); }
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
int8_t iterations = 0;
|
|
|
|
int8_t iterations = 0;
|
|
|
|
|
|
|
|
|
|
|
|
home_offset[Z_AXIS] -= probe_pt(0.0, 0.0 , true, 1); // 1st probe to set height
|
|
|
|
home_offset[Z_AXIS] -= probe_pt(0.0, 0.0 , true, 1); // 1st probe to set height
|
|
|
|
do_probe_raise(Z_CLEARANCE_BETWEEN_PROBES);
|
|
|
|
do_probe_raise(Z_CLEARANCE_BETWEEN_PROBES);
|
|
|
|
|
|
|
|
|
|
|
@ -5239,7 +5239,7 @@ void home_all_axes() { gcode_G28(true); }
|
|
|
|
int16_t N = 0;
|
|
|
|
int16_t N = 0;
|
|
|
|
|
|
|
|
|
|
|
|
test_precision = zero_std_dev_old != 999.0 ? (zero_std_dev + zero_std_dev_old) / 2 : zero_std_dev;
|
|
|
|
test_precision = zero_std_dev_old != 999.0 ? (zero_std_dev + zero_std_dev_old) / 2 : zero_std_dev;
|
|
|
|
|
|
|
|
|
|
|
|
iterations++;
|
|
|
|
iterations++;
|
|
|
|
|
|
|
|
|
|
|
|
// Probe the points
|
|
|
|
// Probe the points
|
|
|
@ -5286,7 +5286,7 @@ void home_all_axes() { gcode_G28(true); }
|
|
|
|
}
|
|
|
|
}
|
|
|
|
zero_std_dev_old = zero_std_dev;
|
|
|
|
zero_std_dev_old = zero_std_dev;
|
|
|
|
zero_std_dev = round(sqrt(S2 / N) * 1000.0) / 1000.0 + 0.00001;
|
|
|
|
zero_std_dev = round(sqrt(S2 / N) * 1000.0) / 1000.0 + 0.00001;
|
|
|
|
|
|
|
|
|
|
|
|
if (iterations == 1) home_offset[Z_AXIS] = zh_old; // reset height after 1st probe change
|
|
|
|
if (iterations == 1) home_offset[Z_AXIS] = zh_old; // reset height after 1st probe change
|
|
|
|
|
|
|
|
|
|
|
|
// Solve matrices
|
|
|
|
// Solve matrices
|
|
|
@ -5416,7 +5416,7 @@ void home_all_axes() { gcode_G28(true); }
|
|
|
|
else {
|
|
|
|
else {
|
|
|
|
SERIAL_PROTOCOLPGM("std dev:");
|
|
|
|
SERIAL_PROTOCOLPGM("std dev:");
|
|
|
|
SERIAL_PROTOCOL_F(zero_std_dev, 3);
|
|
|
|
SERIAL_PROTOCOL_F(zero_std_dev, 3);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
SERIAL_EOL;
|
|
|
|
SERIAL_EOL;
|
|
|
|
LCD_MESSAGEPGM("Calibration OK"); // TODO: Make translatable string
|
|
|
|
LCD_MESSAGEPGM("Calibration OK"); // TODO: Make translatable string
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -5481,7 +5481,7 @@ void home_all_axes() { gcode_G28(true); }
|
|
|
|
home_delta();
|
|
|
|
home_delta();
|
|
|
|
endstops.not_homing();
|
|
|
|
endstops.not_homing();
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
while (zero_std_dev < test_precision && zero_std_dev > calibration_precision && iterations < 31);
|
|
|
|
while (zero_std_dev < test_precision && zero_std_dev > calibration_precision && iterations < 31);
|
|
|
|
|
|
|
|
|
|
|
|
#if ENABLED(DELTA_HOME_TO_SAFE_ZONE)
|
|
|
|
#if ENABLED(DELTA_HOME_TO_SAFE_ZONE)
|
|
|
|