🚸 Use Z_STEPPER_ALIGN_STEPPER_XY to enable
This commit is contained in:
parent
575c3150f9
commit
e082a141f6
|
@ -959,15 +959,17 @@
|
||||||
//#define Z_STEPPERS_ORIENTATION 0
|
//#define Z_STEPPERS_ORIENTATION 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Provide Z stepper positions for more rapid convergence in bed alignment.
|
/**
|
||||||
// Requires triple stepper drivers (i.e., set NUM_Z_STEPPER_DRIVERS to 3)
|
* Z Stepper positions for more rapid convergence in bed alignment.
|
||||||
//#define Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS
|
* Requires NUM_Z_STEPPER_DRIVERS to be 3 or 4.
|
||||||
#if ENABLED(Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS)
|
*
|
||||||
// Define Stepper XY positions for Z1, Z2, Z3 corresponding to
|
* Define Stepper XY positions for Z1, Z2, Z3... corresponding to the screw
|
||||||
// the Z screw positions in the bed carriage.
|
* positions in the bed carriage, with one position per Z stepper in stepper
|
||||||
// Define one position per Z stepper in stepper driver order.
|
* driver order.
|
||||||
#define Z_STEPPER_ALIGN_STEPPER_XY { { 210.7, 102.5 }, { 152.6, 220.0 }, { 94.5, 102.5 } }
|
*/
|
||||||
#else
|
//#define Z_STEPPER_ALIGN_STEPPER_XY { { 210.7, 102.5 }, { 152.6, 220.0 }, { 94.5, 102.5 } }
|
||||||
|
|
||||||
|
#ifndef Z_STEPPER_ALIGN_STEPPER_XY
|
||||||
// Amplification factor. Used to scale the correction step up or down in case
|
// Amplification factor. Used to scale the correction step up or down in case
|
||||||
// the stepper (spindle) position is farther out than the test point.
|
// the stepper (spindle) position is farther out than the test point.
|
||||||
#define Z_STEPPER_ALIGN_AMP 1.0 // Use a value > 1.0 NOTE: This may cause instability!
|
#define Z_STEPPER_ALIGN_AMP 1.0 // Use a value > 1.0 NOTE: This may cause instability!
|
||||||
|
|
|
@ -35,7 +35,7 @@ ZStepperAlign z_stepper_align;
|
||||||
|
|
||||||
xy_pos_t ZStepperAlign::xy[NUM_Z_STEPPER_DRIVERS];
|
xy_pos_t ZStepperAlign::xy[NUM_Z_STEPPER_DRIVERS];
|
||||||
|
|
||||||
#if ENABLED(Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS)
|
#if HAS_Z_STEPPER_ALIGN_STEPPER_XY
|
||||||
xy_pos_t ZStepperAlign::stepper_xy[NUM_Z_STEPPER_DRIVERS];
|
xy_pos_t ZStepperAlign::stepper_xy[NUM_Z_STEPPER_DRIVERS];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -103,7 +103,7 @@ void ZStepperAlign::reset_to_default() {
|
||||||
|
|
||||||
COPY(xy, xy_init);
|
COPY(xy, xy_init);
|
||||||
|
|
||||||
#if ENABLED(Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS)
|
#if HAS_Z_STEPPER_ALIGN_STEPPER_XY
|
||||||
constexpr xy_pos_t stepper_xy_init[] = Z_STEPPER_ALIGN_STEPPER_XY;
|
constexpr xy_pos_t stepper_xy_init[] = Z_STEPPER_ALIGN_STEPPER_XY;
|
||||||
static_assert(
|
static_assert(
|
||||||
COUNT(stepper_xy_init) == NUM_Z_STEPPER_DRIVERS,
|
COUNT(stepper_xy_init) == NUM_Z_STEPPER_DRIVERS,
|
||||||
|
|
|
@ -31,7 +31,7 @@ class ZStepperAlign {
|
||||||
public:
|
public:
|
||||||
static xy_pos_t xy[NUM_Z_STEPPER_DRIVERS];
|
static xy_pos_t xy[NUM_Z_STEPPER_DRIVERS];
|
||||||
|
|
||||||
#if ENABLED(Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS)
|
#if HAS_Z_STEPPER_ALIGN_STEPPER_XY
|
||||||
static xy_pos_t stepper_xy[NUM_Z_STEPPER_DRIVERS];
|
static xy_pos_t stepper_xy[NUM_Z_STEPPER_DRIVERS];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -41,7 +41,7 @@
|
||||||
#include "../../module/tool_change.h"
|
#include "../../module/tool_change.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS)
|
#if HAS_Z_STEPPER_ALIGN_STEPPER_XY
|
||||||
#include "../../libs/least_squares_fit.h"
|
#include "../../libs/least_squares_fit.h"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -122,7 +122,7 @@ void GcodeSuite::G34() {
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
const float z_auto_align_amplification = TERN(Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS, Z_STEPPER_ALIGN_AMP, parser.floatval('A', Z_STEPPER_ALIGN_AMP));
|
const float z_auto_align_amplification = TERN(HAS_Z_STEPPER_ALIGN_STEPPER_XY, Z_STEPPER_ALIGN_AMP, parser.floatval('A', Z_STEPPER_ALIGN_AMP));
|
||||||
if (!WITHIN(ABS(z_auto_align_amplification), 0.5f, 2.0f)) {
|
if (!WITHIN(ABS(z_auto_align_amplification), 0.5f, 2.0f)) {
|
||||||
SERIAL_ECHOLNPGM("?(A)mplification out of bounds (0.5-2.0).");
|
SERIAL_ECHOLNPGM("?(A)mplification out of bounds (0.5-2.0).");
|
||||||
break;
|
break;
|
||||||
|
@ -179,7 +179,7 @@ void GcodeSuite::G34() {
|
||||||
// Now, the Z origin lies below the build plate. That allows to probe deeper, before run_z_probe throws an error.
|
// Now, the Z origin lies below the build plate. That allows to probe deeper, before run_z_probe throws an error.
|
||||||
// This hack is un-done at the end of G34 - either by re-homing, or by using the probed heights of the last iteration.
|
// This hack is un-done at the end of G34 - either by re-homing, or by using the probed heights of the last iteration.
|
||||||
|
|
||||||
#if DISABLED(Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS)
|
#if !HAS_Z_STEPPER_ALIGN_STEPPER_XY
|
||||||
float last_z_align_move[NUM_Z_STEPPER_DRIVERS] = ARRAY_N_1(NUM_Z_STEPPER_DRIVERS, 10000.0f);
|
float last_z_align_move[NUM_Z_STEPPER_DRIVERS] = ARRAY_N_1(NUM_Z_STEPPER_DRIVERS, 10000.0f);
|
||||||
#else
|
#else
|
||||||
float last_z_align_level_indicator = 10000.0f;
|
float last_z_align_level_indicator = 10000.0f;
|
||||||
|
@ -188,7 +188,7 @@ void GcodeSuite::G34() {
|
||||||
z_maxdiff = 0.0f,
|
z_maxdiff = 0.0f,
|
||||||
amplification = z_auto_align_amplification;
|
amplification = z_auto_align_amplification;
|
||||||
|
|
||||||
#if DISABLED(Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS)
|
#if !HAS_Z_STEPPER_ALIGN_STEPPER_XY
|
||||||
bool adjustment_reverse = false;
|
bool adjustment_reverse = false;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -256,7 +256,7 @@ void GcodeSuite::G34() {
|
||||||
z_maxdiff = z_measured_max - z_measured_min;
|
z_maxdiff = z_measured_max - z_measured_min;
|
||||||
z_probe = Z_BASIC_CLEARANCE + z_measured_max + z_maxdiff;
|
z_probe = Z_BASIC_CLEARANCE + z_measured_max + z_maxdiff;
|
||||||
|
|
||||||
#if ENABLED(Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS)
|
#if HAS_Z_STEPPER_ALIGN_STEPPER_XY
|
||||||
// Replace the initial values in z_measured with calculated heights at
|
// Replace the initial values in z_measured with calculated heights at
|
||||||
// each stepper position. This allows the adjustment algorithm to be
|
// each stepper position. This allows the adjustment algorithm to be
|
||||||
// shared between both possible probing mechanisms.
|
// shared between both possible probing mechanisms.
|
||||||
|
@ -338,7 +338,7 @@ void GcodeSuite::G34() {
|
||||||
return false;
|
return false;
|
||||||
};
|
};
|
||||||
|
|
||||||
#if ENABLED(Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS)
|
#if HAS_Z_STEPPER_ALIGN_STEPPER_XY
|
||||||
// Check if the applied corrections go in the correct direction.
|
// Check if the applied corrections go in the correct direction.
|
||||||
// Calculate the sum of the absolute deviations from the mean of the probe measurements.
|
// Calculate the sum of the absolute deviations from the mean of the probe measurements.
|
||||||
// Compare to the last iteration to ensure it's getting better.
|
// Compare to the last iteration to ensure it's getting better.
|
||||||
|
@ -370,7 +370,7 @@ void GcodeSuite::G34() {
|
||||||
float z_align_move = z_measured[zstepper] - z_measured_min;
|
float z_align_move = z_measured[zstepper] - z_measured_min;
|
||||||
const float z_align_abs = ABS(z_align_move);
|
const float z_align_abs = ABS(z_align_move);
|
||||||
|
|
||||||
#if DISABLED(Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS)
|
#if !HAS_Z_STEPPER_ALIGN_STEPPER_XY
|
||||||
// Optimize one iteration's correction based on the first measurements
|
// Optimize one iteration's correction based on the first measurements
|
||||||
if (z_align_abs) amplification = (iteration == 1) ? _MIN(last_z_align_move[zstepper] / z_align_abs, 2.0f) : z_auto_align_amplification;
|
if (z_align_abs) amplification = (iteration == 1) ? _MIN(last_z_align_move[zstepper] / z_align_abs, 2.0f) : z_auto_align_amplification;
|
||||||
|
|
||||||
|
@ -394,7 +394,7 @@ void GcodeSuite::G34() {
|
||||||
// Lock all steppers except one
|
// Lock all steppers except one
|
||||||
stepper.set_all_z_lock(true, zstepper);
|
stepper.set_all_z_lock(true, zstepper);
|
||||||
|
|
||||||
#if DISABLED(Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS)
|
#if !HAS_Z_STEPPER_ALIGN_STEPPER_XY
|
||||||
// Decreasing accuracy was detected so move was inverted.
|
// Decreasing accuracy was detected so move was inverted.
|
||||||
// Will match reversed Z steppers on dual steppers. Triple will need more work to map.
|
// Will match reversed Z steppers on dual steppers. Triple will need more work to map.
|
||||||
if (adjustment_reverse) {
|
if (adjustment_reverse) {
|
||||||
|
@ -467,7 +467,7 @@ void GcodeSuite::G34() {
|
||||||
*
|
*
|
||||||
* S<index> : Index of the probe point to set
|
* S<index> : Index of the probe point to set
|
||||||
*
|
*
|
||||||
* With Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS:
|
* With Z_STEPPER_ALIGN_STEPPER_XY:
|
||||||
* W<index> : Index of the Z stepper position to set
|
* W<index> : Index of the Z stepper position to set
|
||||||
* The W and S parameters may not be combined.
|
* The W and S parameters may not be combined.
|
||||||
*
|
*
|
||||||
|
@ -488,18 +488,18 @@ void GcodeSuite::M422() {
|
||||||
|
|
||||||
const bool is_probe_point = parser.seen('S');
|
const bool is_probe_point = parser.seen('S');
|
||||||
|
|
||||||
if (TERN0(Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS, is_probe_point && parser.seen('W'))) {
|
if (TERN0(HAS_Z_STEPPER_ALIGN_STEPPER_XY, is_probe_point && parser.seen('W'))) {
|
||||||
SERIAL_ECHOLNPGM("?(S) and (W) may not be combined.");
|
SERIAL_ECHOLNPGM("?(S) and (W) may not be combined.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
xy_pos_t *pos_dest = (
|
xy_pos_t *pos_dest = (
|
||||||
TERN_(Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS, !is_probe_point ? z_stepper_align.stepper_xy :)
|
TERN_(HAS_Z_STEPPER_ALIGN_STEPPER_XY, !is_probe_point ? z_stepper_align.stepper_xy :)
|
||||||
z_stepper_align.xy
|
z_stepper_align.xy
|
||||||
);
|
);
|
||||||
|
|
||||||
if (!is_probe_point && TERN1(Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS, !parser.seen('W'))) {
|
if (!is_probe_point && TERN1(HAS_Z_STEPPER_ALIGN_STEPPER_XY, !parser.seen('W'))) {
|
||||||
SERIAL_ECHOLNPGM("?(S)" TERN_(Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS, " or (W)") " is required.");
|
SERIAL_ECHOLNPGM("?(S)" TERN_(HAS_Z_STEPPER_ALIGN_STEPPER_XY, " or (W)") " is required.");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -513,7 +513,7 @@ void GcodeSuite::M422() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
#if ENABLED(Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS)
|
#if HAS_Z_STEPPER_ALIGN_STEPPER_XY
|
||||||
position_index = parser.intval('W') - 1;
|
position_index = parser.intval('W') - 1;
|
||||||
if (!WITHIN(position_index, 0, NUM_Z_STEPPER_DRIVERS - 1)) {
|
if (!WITHIN(position_index, 0, NUM_Z_STEPPER_DRIVERS - 1)) {
|
||||||
SERIAL_ECHOLNPGM("?(W) Z-stepper index invalid.");
|
SERIAL_ECHOLNPGM("?(W) Z-stepper index invalid.");
|
||||||
|
@ -551,7 +551,7 @@ void GcodeSuite::M422_report(const bool forReplay/*=true*/) {
|
||||||
SP_Y_STR, z_stepper_align.xy[i].y
|
SP_Y_STR, z_stepper_align.xy[i].y
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
#if ENABLED(Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS)
|
#if HAS_Z_STEPPER_ALIGN_STEPPER_XY
|
||||||
LOOP_L_N(i, NUM_Z_STEPPER_DRIVERS) {
|
LOOP_L_N(i, NUM_Z_STEPPER_DRIVERS) {
|
||||||
report_echo_start(forReplay);
|
report_echo_start(forReplay);
|
||||||
SERIAL_ECHOLNPGM_P(
|
SERIAL_ECHOLNPGM_P(
|
||||||
|
|
|
@ -630,7 +630,8 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(Z_STEPPER_AUTO_ALIGN)
|
#if ENABLED(Z_STEPPER_AUTO_ALIGN)
|
||||||
#if ENABLED(Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS)
|
#ifdef Z_STEPPER_ALIGN_STEPPER_XY
|
||||||
|
#define HAS_Z_STEPPER_ALIGN_STEPPER_XY 1
|
||||||
#undef Z_STEPPER_ALIGN_AMP
|
#undef Z_STEPPER_ALIGN_AMP
|
||||||
#endif
|
#endif
|
||||||
#ifndef Z_STEPPER_ALIGN_AMP
|
#ifndef Z_STEPPER_ALIGN_AMP
|
||||||
|
@ -986,7 +987,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Flag whether least_squares_fit.cpp is used
|
// Flag whether least_squares_fit.cpp is used
|
||||||
#if ANY(AUTO_BED_LEVELING_UBL, AUTO_BED_LEVELING_LINEAR, Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS)
|
#if ANY(AUTO_BED_LEVELING_UBL, AUTO_BED_LEVELING_LINEAR, HAS_Z_STEPPER_ALIGN_STEPPER_XY)
|
||||||
#define NEED_LSF 1
|
#define NEED_LSF 1
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -613,6 +613,8 @@
|
||||||
#error "NOZZLE_PARK_X_ONLY is now NOZZLE_PARK_MOVE 1."
|
#error "NOZZLE_PARK_X_ONLY is now NOZZLE_PARK_MOVE 1."
|
||||||
#elif defined(NOZZLE_PARK_Y_ONLY)
|
#elif defined(NOZZLE_PARK_Y_ONLY)
|
||||||
#error "NOZZLE_PARK_X_ONLY is now NOZZLE_PARK_MOVE 2."
|
#error "NOZZLE_PARK_X_ONLY is now NOZZLE_PARK_MOVE 2."
|
||||||
|
#elif defined(Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS)
|
||||||
|
#error "Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS is now just Z_STEPPER_ALIGN_STEPPER_XY."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
constexpr float arm[] = AXIS_RELATIVE_MODES;
|
constexpr float arm[] = AXIS_RELATIVE_MODES;
|
||||||
|
@ -3479,10 +3481,10 @@ static_assert(_PLUS_TEST(4), "HOMING_FEEDRATE_MM_M values must be positive.");
|
||||||
#error "Z_STEPPER_AUTO_ALIGN requires NUM_Z_STEPPER_DRIVERS greater than 1."
|
#error "Z_STEPPER_AUTO_ALIGN requires NUM_Z_STEPPER_DRIVERS greater than 1."
|
||||||
#elif !HAS_BED_PROBE
|
#elif !HAS_BED_PROBE
|
||||||
#error "Z_STEPPER_AUTO_ALIGN requires a Z-bed probe."
|
#error "Z_STEPPER_AUTO_ALIGN requires a Z-bed probe."
|
||||||
#elif ENABLED(Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS)
|
#elif HAS_Z_STEPPER_ALIGN_STEPPER_XY
|
||||||
static_assert(WITHIN(Z_STEPPER_ALIGN_AMP, 0.5, 2.0), "Z_STEPPER_ALIGN_AMP must be between 0.5 and 2.0.");
|
static_assert(WITHIN(Z_STEPPER_ALIGN_AMP, 0.5, 2.0), "Z_STEPPER_ALIGN_AMP must be between 0.5 and 2.0.");
|
||||||
#if NUM_Z_STEPPER_DRIVERS < 3
|
#if NUM_Z_STEPPER_DRIVERS < 3
|
||||||
#error "Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS requires NUM_Z_STEPPER_DRIVERS to be 3 or 4."
|
#error "Z_STEPPER_ALIGN_STEPPER_XY requires NUM_Z_STEPPER_DRIVERS to be 3 or 4."
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -341,11 +341,11 @@ typedef struct SettingsDataStruct {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//
|
//
|
||||||
// Z_STEPPER_AUTO_ALIGN, Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS
|
// Z_STEPPER_AUTO_ALIGN, HAS_Z_STEPPER_ALIGN_STEPPER_XY
|
||||||
//
|
//
|
||||||
#if ENABLED(Z_STEPPER_AUTO_ALIGN)
|
#if ENABLED(Z_STEPPER_AUTO_ALIGN)
|
||||||
xy_pos_t z_stepper_align_xy[NUM_Z_STEPPER_DRIVERS]; // M422 S X Y
|
xy_pos_t z_stepper_align_xy[NUM_Z_STEPPER_DRIVERS]; // M422 S X Y
|
||||||
#if ENABLED(Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS)
|
#if HAS_Z_STEPPER_ALIGN_STEPPER_XY
|
||||||
xy_pos_t z_stepper_align_stepper_xy[NUM_Z_STEPPER_DRIVERS]; // M422 W X Y
|
xy_pos_t z_stepper_align_stepper_xy[NUM_Z_STEPPER_DRIVERS]; // M422 W X Y
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
@ -1005,7 +1005,7 @@ void MarlinSettings::postprocess() {
|
||||||
|
|
||||||
#if ENABLED(Z_STEPPER_AUTO_ALIGN)
|
#if ENABLED(Z_STEPPER_AUTO_ALIGN)
|
||||||
EEPROM_WRITE(z_stepper_align.xy);
|
EEPROM_WRITE(z_stepper_align.xy);
|
||||||
#if ENABLED(Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS)
|
#if HAS_Z_STEPPER_ALIGN_STEPPER_XY
|
||||||
EEPROM_WRITE(z_stepper_align.stepper_xy);
|
EEPROM_WRITE(z_stepper_align.stepper_xy);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
@ -1924,7 +1924,7 @@ void MarlinSettings::postprocess() {
|
||||||
|
|
||||||
#if ENABLED(Z_STEPPER_AUTO_ALIGN)
|
#if ENABLED(Z_STEPPER_AUTO_ALIGN)
|
||||||
EEPROM_READ(z_stepper_align.xy);
|
EEPROM_READ(z_stepper_align.xy);
|
||||||
#if ENABLED(Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS)
|
#if HAS_Z_STEPPER_ALIGN_STEPPER_XY
|
||||||
EEPROM_READ(z_stepper_align.stepper_xy);
|
EEPROM_READ(z_stepper_align.stepper_xy);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -37,7 +37,7 @@ exec_test $1 $2 "RAMPS4DUE_EFB with ABL (Bilinear), ExtUI, S-Curve, many options
|
||||||
restore_configs
|
restore_configs
|
||||||
opt_set MOTHERBOARD BOARD_RADDS NUM_Z_STEPPER_DRIVERS 3
|
opt_set MOTHERBOARD BOARD_RADDS NUM_Z_STEPPER_DRIVERS 3
|
||||||
opt_enable USE_XMAX_PLUG USE_YMAX_PLUG ENDSTOPPULLUPS BLTOUCH AUTO_BED_LEVELING_BILINEAR \
|
opt_enable USE_XMAX_PLUG USE_YMAX_PLUG ENDSTOPPULLUPS BLTOUCH AUTO_BED_LEVELING_BILINEAR \
|
||||||
Z_STEPPER_AUTO_ALIGN Z_STEPPER_ALIGN_KNOWN_STEPPER_POSITIONS Z_SAFE_HOMING
|
Z_STEPPER_AUTO_ALIGN Z_STEPPER_ALIGN_STEPPER_XY Z_SAFE_HOMING
|
||||||
pins_set ramps/RAMPS X_MAX_PIN -1
|
pins_set ramps/RAMPS X_MAX_PIN -1
|
||||||
pins_set ramps/RAMPS Y_MAX_PIN -1
|
pins_set ramps/RAMPS Y_MAX_PIN -1
|
||||||
exec_test $1 $2 "RADDS with ABL (Bilinear), Triple Z Axis, Z_STEPPER_AUTO_ALIGN, E_DUAL_STEPPER_DRIVERS" "$3"
|
exec_test $1 $2 "RADDS with ABL (Bilinear), Triple Z Axis, Z_STEPPER_AUTO_ALIGN, E_DUAL_STEPPER_DRIVERS" "$3"
|
||||||
|
|
Loading…
Reference in a new issue