Delete 'expert level'
and getting rid off verbose level 3 and configuration_adv settings
This commit is contained in:
parent
13c8493878
commit
d4f593d200
7 changed files with 39 additions and 229 deletions
|
@ -61,7 +61,7 @@
|
|||
* G30 - Single Z probe, probes bed at X Y location (defaults to current XY location)
|
||||
* G31 - Dock sled (Z_PROBE_SLED only)
|
||||
* G32 - Undock sled (Z_PROBE_SLED only)
|
||||
* G33 - Delta '4-point' auto calibration iteration
|
||||
* G33 - Delta '4-7-point' auto calibration : "G33 C<points> V<verbose>" (Requires DELTA)
|
||||
* G38 - Probe target - similar to G28 except it uses the Z_MIN_PROBE for all three axes
|
||||
* G90 - Use Absolute Coordinates
|
||||
* G91 - Use Relative Coordinates
|
||||
|
@ -4982,32 +4982,23 @@ inline void gcode_G28() {
|
|||
|
||||
#if ENABLED(DELTA_AUTO_CALIBRATION)
|
||||
/**
|
||||
* G33: Delta '4-point' auto calibration iteration
|
||||
* G33 - Delta '4-7-point' auto calibration (Requires DELTA)
|
||||
*
|
||||
* Usage: G33 <Cn> <Vn>
|
||||
* Usage:
|
||||
* G33 <Cn> <Vn>
|
||||
*
|
||||
* C (default) = Calibrate endstops, height and delta radius
|
||||
*
|
||||
* -2, 1-4: n x n probe points, default 3 x 3
|
||||
*
|
||||
* 1: probe center
|
||||
* set height only - useful when z_offset is changed
|
||||
* 2: probe center and towers
|
||||
* solve one '4 point' calibration
|
||||
* -2: probe center and opposite the towers
|
||||
* solve one '4 point' calibration
|
||||
* 3: probe 3 center points, towers and opposite-towers
|
||||
* averages between 2 '4 point' calibrations
|
||||
* 4: probe 4 center points, towers, opposite-towers and itermediate points
|
||||
* averages between 4 '4 point' calibrations
|
||||
*
|
||||
* V Verbose level (0-3, default 1)
|
||||
*
|
||||
* 0: Dry-run mode: no calibration
|
||||
* 1: Settings
|
||||
* 2: Setting + probe results
|
||||
* 3: Expert mode: setting + iteration factors (see Configuration_adv.h)
|
||||
* This prematurely stops the iteration process when factors are found
|
||||
* Cn = (default) = calibrates height ('1 point'), endstops, and delta radius with '4 point'
|
||||
* and calibrates tower angles with '7+ point'
|
||||
* n= -2, 1-7 : n*n probe points
|
||||
* n=1 probes center - sets height only - usefull when z_offset is changed
|
||||
* n=2 probes center and towers
|
||||
* n=-2 probes center and opposite towers
|
||||
* n=3 probes all points: center, towers and opposite towers
|
||||
* n>3 probes all points multiple times and averages
|
||||
* Vn = verbose level (n=0-3 default 1)
|
||||
* n=0 dry-run mode: no calibration
|
||||
* n=1 settings
|
||||
* n=2 setting + probe results
|
||||
*/
|
||||
inline void gcode_G33() {
|
||||
|
||||
|
@ -5022,16 +5013,7 @@ inline void gcode_G28() {
|
|||
|
||||
int8_t verbose_level = code_seen('V') ? code_value_byte() : 1;
|
||||
|
||||
#if ENABLED(DELTA_CALIBRATE_EXPERT_MODE)
|
||||
#define _MAX_M33_V 3
|
||||
if (verbose_level == 3 && probe_points == 1) verbose_level--; // needs at least 4 points
|
||||
#else
|
||||
#define _MAX_M33_V 2
|
||||
if (verbose_level > 2)
|
||||
SERIAL_PROTOCOLLNPGM("Enable DELTA_CALIBRATE_EXPERT_MODE in Configuration_adv.h");
|
||||
#endif
|
||||
|
||||
if (!WITHIN(verbose_level, 0, _MAX_M33_V)) verbose_level = 1;
|
||||
if (!WITHIN(verbose_level, 0, 2)) verbose_level = 1;
|
||||
|
||||
float zero_std_dev = verbose_level ? 999.0 : 0.0; // 0.0 in dry-run mode : forced end
|
||||
|
||||
|
@ -5041,20 +5023,12 @@ inline void gcode_G28() {
|
|||
dr_old = delta_radius,
|
||||
zh_old = home_offset[Z_AXIS];
|
||||
COPY(e_old,endstop_adj);
|
||||
#if ENABLED(DELTA_CALIBRATE_EXPERT_MODE)
|
||||
// expert variables
|
||||
float h_f_old = 1.00, r_f_old = 0.00,
|
||||
h_diff_min = 1.00, r_diff_max = 0.10;
|
||||
#endif
|
||||
|
||||
// print settings
|
||||
|
||||
SERIAL_PROTOCOLLNPGM("G33 Auto Calibrate");
|
||||
SERIAL_PROTOCOLPGM("Checking... AC");
|
||||
if (verbose_level == 0) SERIAL_PROTOCOLPGM(" (DRY-RUN)");
|
||||
#if ENABLED(DELTA_CALIBRATE_EXPERT_MODE)
|
||||
if (verbose_level == 3) SERIAL_PROTOCOLPGM(" (EXPERT)");
|
||||
#endif
|
||||
SERIAL_EOL;
|
||||
LCD_MESSAGEPGM("Checking... AC");
|
||||
|
||||
|
@ -5084,16 +5058,8 @@ inline void gcode_G28() {
|
|||
|
||||
setup_for_endstop_or_probe_move();
|
||||
|
||||
test_precision =
|
||||
#if ENABLED(DELTA_CALIBRATE_EXPERT_MODE)
|
||||
// Expert mode : forced end at std_dev < 0.1
|
||||
(verbose_level == 3 && zero_std_dev < 0.1) ? 0.0 :
|
||||
#endif
|
||||
zero_std_dev
|
||||
;
|
||||
|
||||
test_precision = zero_std_dev;
|
||||
float z_at_pt[13] = { 0 };
|
||||
|
||||
iterations++;
|
||||
|
||||
// probe the points
|
||||
|
@ -5149,21 +5115,19 @@ inline void gcode_G28() {
|
|||
zh_old = home_offset[Z_AXIS];
|
||||
|
||||
float e_delta[XYZ] = { 0.0 }, r_delta = 0.0;
|
||||
|
||||
#if ENABLED(DELTA_CALIBRATE_EXPERT_MODE)
|
||||
float h_f_new = 0.0, r_f_new = 0.0 , t_f_new = 0.0,
|
||||
h_diff = 0.00, r_diff = 0.00;
|
||||
#endif
|
||||
const float r_diff = delta_radius - delta_calibration_radius,
|
||||
h_factor = 1.00 + r_diff * 0.001,
|
||||
r_factor = -(1.75 + 0.005 * r_diff + 0.001 * sq(r_diff)); //2.25 for r_diff = 20mm
|
||||
|
||||
#define ZP(N,I) ((N) * z_at_pt[I])
|
||||
#define Z1000(I) ZP(1.00, I)
|
||||
#define Z1050(I) ZP(H_FACTOR, I)
|
||||
#define Z0700(I) ZP((H_FACTOR) * 2.0 / 3.00, I)
|
||||
#define Z0350(I) ZP((H_FACTOR) / 3.00, I)
|
||||
#define Z0175(I) ZP((H_FACTOR) / 6.00, I)
|
||||
#define Z2250(I) ZP(R_FACTOR, I)
|
||||
#define Z0750(I) ZP((R_FACTOR) / 3.00, I)
|
||||
#define Z0375(I) ZP((R_FACTOR) / 6.00, I)
|
||||
#define Z1050(I) ZP(h_factor, I)
|
||||
#define Z0700(I) ZP(h_factor * 2.0 / 3.00, I)
|
||||
#define Z0350(I) ZP(h_factor / 3.00, I)
|
||||
#define Z0175(I) ZP(h_factor / 6.00, I)
|
||||
#define Z2250(I) ZP(r_factor, I)
|
||||
#define Z0750(I) ZP(r_factor / 3.00, I)
|
||||
#define Z0375(I) ZP(r_factor / 6.00, I)
|
||||
|
||||
switch (probe_points) {
|
||||
case 1:
|
||||
|
@ -5193,28 +5157,7 @@ inline void gcode_G28() {
|
|||
break;
|
||||
}
|
||||
|
||||
#if ENABLED(DELTA_CALIBRATE_EXPERT_MODE)
|
||||
// Calculate h & r factors
|
||||
if (verbose_level == 3) {
|
||||
LOOP_XYZ(axis) h_f_new += e_delta[axis] / 3;
|
||||
r_f_new = r_delta;
|
||||
h_diff = (1.0 / H_FACTOR) * (h_f_old - h_f_new) / h_f_old;
|
||||
if (h_diff < h_diff_min && h_diff > 0.9) h_diff_min = h_diff;
|
||||
if (r_f_old != 0)
|
||||
r_diff = ( 0.0301 * sq(R_FACTOR) * R_FACTOR
|
||||
+ 0.311 * sq(R_FACTOR)
|
||||
+ 1.1493 * R_FACTOR
|
||||
+ 1.7952
|
||||
) * (r_f_old - r_f_new) / r_f_old;
|
||||
if (r_diff > r_diff_max && r_diff < 0.4444) r_diff_max = r_diff;
|
||||
SERIAL_EOL;
|
||||
|
||||
h_f_old = h_f_new;
|
||||
r_f_old = r_f_new;
|
||||
}
|
||||
#endif // DELTA_CALIBRATE_EXPERT_MODE
|
||||
|
||||
// Adjust delta_height and endstops by the max amount
|
||||
// adjust delta_height and endstops by the max amount
|
||||
LOOP_XYZ(axis) endstop_adj[axis] += e_delta[axis];
|
||||
delta_radius += r_delta;
|
||||
|
||||
|
@ -5235,17 +5178,6 @@ inline void gcode_G28() {
|
|||
|
||||
// print report
|
||||
|
||||
#if ENABLED(DELTA_CALIBRATE_EXPERT_MODE)
|
||||
if (verbose_level == 3) {
|
||||
const float r_factor = 22.902 * sq(r_diff_max) * r_diff_max
|
||||
- 44.988 * sq(r_diff_max)
|
||||
+ 31.697 * r_diff_max
|
||||
- 9.4439;
|
||||
SERIAL_PROTOCOLPAIR("h_factor:", 1.0 / h_diff_min);
|
||||
SERIAL_PROTOCOLPAIR(" r_factor:", r_factor);
|
||||
SERIAL_EOL;
|
||||
}
|
||||
#endif
|
||||
if (verbose_level == 2) {
|
||||
SERIAL_PROTOCOLPGM(". c:");
|
||||
if (z_at_pt[0] > 0) SERIAL_CHAR('+');
|
||||
|
@ -5277,7 +5209,7 @@ inline void gcode_G28() {
|
|||
}
|
||||
}
|
||||
if (test_precision != 0.0) { // !forced end
|
||||
if (zero_std_dev >= test_precision) {
|
||||
if (zero_std_dev >= test_precision) { // end iterations
|
||||
SERIAL_PROTOCOLPGM("Calibration OK");
|
||||
SERIAL_PROTOCOLLNPGM(" rolling back 1");
|
||||
LCD_MESSAGEPGM("Calibration OK");
|
||||
|
@ -5311,17 +5243,10 @@ inline void gcode_G28() {
|
|||
SERIAL_PROTOCOLLNPGM("save with M500 and/or copy to configuration.h");
|
||||
}
|
||||
else { // forced end
|
||||
#if ENABLED(DELTA_CALIBRATE_EXPERT_MODE)
|
||||
if (verbose_level == 3)
|
||||
SERIAL_PROTOCOLLNPGM("Copy to Configuration_adv.h");
|
||||
else
|
||||
#endif
|
||||
{
|
||||
SERIAL_PROTOCOLPGM("End DRY-RUN std dev:");
|
||||
SERIAL_PROTOCOL_F(zero_std_dev, 3);
|
||||
SERIAL_EOL;
|
||||
}
|
||||
}
|
||||
|
||||
clean_up_after_endstop_or_probe_move();
|
||||
stepper.synchronize();
|
||||
|
|
|
@ -431,25 +431,6 @@
|
|||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} // AZTEEG_X3_PRO
|
||||
|
||||
//===========================================================================
|
||||
//============================== Delta Settings =============================
|
||||
//===========================================================================
|
||||
|
||||
#if ENABLED(DELTA_AUTO_CALIBRATION)
|
||||
/**
|
||||
* Set the height short (H-10) with M665 Hx.xx.
|
||||
* Set the delta_radius offset (R-5, R-10, R+5, R+10) with M665 Rx.xx.
|
||||
* Run G33 Cx V3 (C2, C-2) with different values for C and R
|
||||
* Take the average for R_FACTOR and maximum for H_FACTOR.
|
||||
* Run the tests with default values!!!
|
||||
*/
|
||||
//#define DELTA_CALIBRATE_EXPERT_MODE
|
||||
|
||||
// Remove the comments of the folling 2 lines to overide default values
|
||||
#define H_FACTOR 1.02 // 1.0 < H_FACTOR < 1.11, default 1.00
|
||||
#define R_FACTOR -3.95 // -6.7 < R_FACTOR < -2.25, default -2.25
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
//=============================Additional Features===========================
|
||||
//===========================================================================
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/**
|
||||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
|
@ -431,25 +431,6 @@
|
|||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} // AZTEEG_X3_PRO
|
||||
|
||||
//===========================================================================
|
||||
//============================== Delta Settings =============================
|
||||
//===========================================================================
|
||||
|
||||
#if ENABLED(DELTA_AUTO_CALIBRATION)
|
||||
/**
|
||||
* Set the height short (H-10) with M665 Hx.xx.
|
||||
* Set the delta_radius offset (R-5, R-10, R+5, R+10) with M665 Rx.xx.
|
||||
* Run G33 Cx V3 (C2, C-2) with different values for C and R
|
||||
* Take the average for R_FACTOR and maximum for H_FACTOR.
|
||||
* Run the tests with default values!!!
|
||||
*/
|
||||
//#define DELTA_CALIBRATE_EXPERT_MODE
|
||||
|
||||
// Remove the comments of the folling 2 lines to overide default values
|
||||
#define H_FACTOR 1.02 // 1.0 < H_FACTOR < 1.11, default 1.00
|
||||
#define R_FACTOR -3.95 // -6.7 < R_FACTOR < -2.25, default -2.25
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
//=============================Additional Features===========================
|
||||
//===========================================================================
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/**
|
||||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
|
@ -431,25 +431,6 @@
|
|||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} // AZTEEG_X3_PRO
|
||||
|
||||
//===========================================================================
|
||||
//============================== Delta Settings =============================
|
||||
//===========================================================================
|
||||
|
||||
#if ENABLED(DELTA_AUTO_CALIBRATION)
|
||||
/**
|
||||
* Set the height short (H-10) with M665 Hx.xx.
|
||||
* Set the delta_radius offset (R-5, R-10, R+5, R+10) with M665 Rx.xx.
|
||||
* Run G33 Cx V3 (C2, C-2) with different values for C and R
|
||||
* Take the average for R_FACTOR and maximum for H_FACTOR.
|
||||
* Run the tests with default values!!!
|
||||
*/
|
||||
//#define DELTA_CALIBRATE_EXPERT_MODE
|
||||
|
||||
// Remove the comments of the folling 2 lines to overide default values
|
||||
//#define H_FACTOR 1.02 // 1.0 < H_FACTOR < 1.11, default 1.00
|
||||
//#define R_FACTOR -3.95 // -6.7 < R_FACTOR < -2.25, default -2.25
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
//=============================Additional Features===========================
|
||||
//===========================================================================
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/**
|
||||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
|
@ -431,25 +431,6 @@
|
|||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} // AZTEEG_X3_PRO
|
||||
|
||||
//===========================================================================
|
||||
//============================== Delta Settings =============================
|
||||
//===========================================================================
|
||||
|
||||
#if ENABLED(DELTA_AUTO_CALIBRATION)
|
||||
/**
|
||||
* Set the height short (H-10) with M665 Hx.xx.
|
||||
* Set the delta_radius offset (R-5, R-10, R+5, R+10) with M665 Rx.xx.
|
||||
* Run G33 Cx V3 (C2, C-2) with different values for C and R
|
||||
* Take the average for R_FACTOR and maximum for H_FACTOR.
|
||||
* Run the tests with default values!!!
|
||||
*/
|
||||
//#define DELTA_CALIBRATE_EXPERT_MODE
|
||||
|
||||
// Remove the comments of the folling 2 lines to overide default values
|
||||
//#define H_FACTOR 1.02 // 1.0 < H_FACTOR < 1.11, default 1.00
|
||||
//#define R_FACTOR -3.95 // -6.7 < R_FACTOR < -2.25, default -2.25
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
//=============================Additional Features===========================
|
||||
//===========================================================================
|
||||
|
|
|
@ -1,4 +1,4 @@
|
|||
/**
|
||||
/**
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
|
@ -436,26 +436,6 @@
|
|||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} // AZTEEG_X3_PRO
|
||||
|
||||
//===========================================================================
|
||||
//============================== Delta Settings =============================
|
||||
//===========================================================================
|
||||
|
||||
#if ENABLED(DELTA_AUTO_CALIBRATION)
|
||||
/**
|
||||
* Set the height short (H-10) with M665 Hx.xx.
|
||||
* Set the delta_radius offset (R-5, R-10, R+5, R+10) with M665 Rx.xx.
|
||||
* Run G33 Cx V3 (C2, C-2) with different values for C and R
|
||||
* Take the average for R_FACTOR and maximum for H_FACTOR.
|
||||
* Run the tests with default values!!!
|
||||
*/
|
||||
//#define DELTA_CALIBRATE_EXPERT_MODE
|
||||
|
||||
// Remove the comments of the folling 2 lines to overide default values
|
||||
//#define H_FACTOR 1.02 // 1.0 < H_FACTOR < 1.11, default 1.00
|
||||
//#define R_FACTOR -3.95 // -6.7 < R_FACTOR < -2.25, default -2.25
|
||||
#endif
|
||||
|
||||
|
||||
//===========================================================================
|
||||
//=============================Additional Features===========================
|
||||
//===========================================================================
|
||||
|
|
|
@ -431,25 +431,6 @@
|
|||
// Actual motor currents in Amps, need as many here as DIGIPOT_I2C_NUM_CHANNELS
|
||||
#define DIGIPOT_I2C_MOTOR_CURRENTS {1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 1.0} // AZTEEG_X3_PRO
|
||||
|
||||
//===========================================================================
|
||||
//============================== Delta Settings =============================
|
||||
//===========================================================================
|
||||
|
||||
#if ENABLED(DELTA_AUTO_CALIBRATION)
|
||||
/**
|
||||
* Set the height short (H-10) with M665 Hx.xx.
|
||||
* Set the delta_radius offset (R-5, R-10, R+5, R+10) with M665 Rx.xx.
|
||||
* Run G33 Cx V3 (C2, C-2) with different values for C and R
|
||||
* Take the average for R_FACTOR and maximum for H_FACTOR.
|
||||
* Run the tests with default values!!!
|
||||
*/
|
||||
//#define DELTA_CALIBRATE_EXPERT_MODE
|
||||
|
||||
// Remove the comments of the folling 2 lines to overide default values
|
||||
//#define H_FACTOR 1.02 // 1.0 < H_FACTOR < 1.11, default 1.00
|
||||
//#define R_FACTOR -3.95 // -6.7 < R_FACTOR < -2.25, default -2.25
|
||||
#endif
|
||||
|
||||
//===========================================================================
|
||||
//=============================Additional Features===========================
|
||||
//===========================================================================
|
||||
|
|
Reference in a new issue