Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Add NOZZLE_AS_PROBE option to disable limits on probe point #15929

Merged
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
6 changes: 6 additions & 0 deletions Marlin/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -855,6 +855,12 @@
*/
//#define FIX_MOUNTED_PROBE

/**
* Use the nozzle as the probe, as with a conductive
* nozzle system or a piezo-electric smart effector.
*/
//#define NOZZLE_AS_PROBE

/**
* Z Servo Probe, such as an endstop switch on a rotating arm.
*/
Expand Down
2 changes: 2 additions & 0 deletions Marlin/src/core/utility.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -59,6 +59,8 @@ void safe_delay(millis_t ms) {
SERIAL_ECHOLNPGM("Probe: "
#if ENABLED(PROBE_MANUALLY)
"PROBE_MANUALLY"
#elif ENABLED(NOZZLE_AS_PROBE)
"NOZZLE_AS_PROBE"
#elif ENABLED(FIX_MOUNTED_PROBE)
"FIX_MOUNTED_PROBE"
#elif ENABLED(BLTOUCH)
Expand Down
9 changes: 5 additions & 4 deletions Marlin/src/gcode/bedlevel/abl/G29.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -403,13 +403,14 @@ G29_TYPE GcodeSuite::G29() {
}
else {
probe_position_lf.set(
parser.seenval('L') ? (int)RAW_X_POSITION(parser.value_linear_units()) : _MAX(X_CENTER - (X_BED_SIZE) / 2, x_min),
parser.seenval('F') ? (int)RAW_Y_POSITION(parser.value_linear_units()) : _MAX(Y_CENTER - (Y_BED_SIZE) / 2, y_min)
parser.seenval('L') ? (int)RAW_X_POSITION(parser.value_linear_units()) : (_MAX(x_min, X_CENTER - (X_BED_SIZE) / 2) + MIN_PROBE_EDGE_LEFT),
parser.seenval('F') ? (int)RAW_Y_POSITION(parser.value_linear_units()) : (_MAX(y_min, Y_CENTER - (Y_BED_SIZE) / 2) + MIN_PROBE_EDGE_FRONT)
);
probe_position_rb.set(
parser.seenval('R') ? (int)RAW_X_POSITION(parser.value_linear_units()) : _MIN(probe_position_lf.x + X_BED_SIZE, x_max),
parser.seenval('B') ? (int)RAW_Y_POSITION(parser.value_linear_units()) : _MIN(probe_position_lf.y + Y_BED_SIZE, y_max)
parser.seenval('R') ? (int)RAW_X_POSITION(parser.value_linear_units()) : (_MIN(x_max, probe_position_lf.x + X_BED_SIZE) - MIN_PROBE_EDGE_RIGHT),
parser.seenval('B') ? (int)RAW_Y_POSITION(parser.value_linear_units()) : (_MIN(y_max, probe_position_lf.y + Y_BED_SIZE) - MIN_PROBE_EDGE_BACK)
);
SERIAL_ECHOLN("Set Trail 1");
}

if (
Expand Down
2 changes: 1 addition & 1 deletion Marlin/src/inc/Conditionals_LCD.h
Original file line number Diff line number Diff line change
Expand Up @@ -496,7 +496,7 @@
/**
* Set flags for enabled probes
*/
#define HAS_BED_PROBE (HAS_Z_SERVO_PROBE || ANY(FIX_MOUNTED_PROBE, TOUCH_MI_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, SOLENOID_PROBE, SENSORLESS_PROBING, RACK_AND_PINION_PROBE))
#define HAS_BED_PROBE (HAS_Z_SERVO_PROBE || ANY(FIX_MOUNTED_PROBE, NOZZLE_AS_PROBE, TOUCH_MI_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, SOLENOID_PROBE, SENSORLESS_PROBING, RACK_AND_PINION_PROBE))
#define PROBE_SELECTED (HAS_BED_PROBE || EITHER(PROBE_MANUALLY, MESH_BED_LEVELING))

#if HAS_BED_PROBE
Expand Down
4 changes: 4 additions & 0 deletions Marlin/src/inc/Conditionals_post.h
Original file line number Diff line number Diff line change
Expand Up @@ -1490,6 +1490,10 @@
#undef MIN_PROBE_EDGE_RIGHT
#undef MIN_PROBE_EDGE_FRONT
#undef MIN_PROBE_EDGE_BACK
#define MIN_PROBE_EDGE_LEFT 0
#define MIN_PROBE_EDGE_RIGHT 0
#define MIN_PROBE_EDGE_FRONT 0
#define MIN_PROBE_EDGE_BACK 0
#else
#ifndef MIN_PROBE_EDGE_LEFT
#define MIN_PROBE_EDGE_LEFT MIN_PROBE_EDGE
Expand Down
7 changes: 4 additions & 3 deletions Marlin/src/inc/SanityCheck.h
Original file line number Diff line number Diff line change
Expand Up @@ -1080,6 +1080,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
#if 1 < 0 \
+ ENABLED(PROBE_MANUALLY) \
+ ENABLED(FIX_MOUNTED_PROBE) \
+ ENABLED(NOZZLE_AS_PROBE) \
+ (HAS_Z_SERVO_PROBE && DISABLED(BLTOUCH)) \
+ ENABLED(BLTOUCH) \
+ ENABLED(TOUCH_MI_PROBE) \
Expand All @@ -1088,7 +1089,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
+ ENABLED(Z_PROBE_SLED) \
+ ENABLED(RACK_AND_PINION_PROBE) \
+ ENABLED(SENSORLESS_PROBING)
#error "Please enable only one probe option: PROBE_MANUALLY, SENSORLESS_PROBING, BLTOUCH, FIX_MOUNTED_PROBE, TOUCH_MI_PROBE, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or Z Servo."
#error "Please enable only one probe option: PROBE_MANUALLY, SENSORLESS_PROBING, BLTOUCH, FIX_MOUNTED_PROBE, NOZZLE_AS_PROBE, TOUCH_MI_PROBE, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or Z Servo."
#endif

#if HAS_BED_PROBE
Expand Down Expand Up @@ -1219,11 +1220,11 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
* Require some kind of probe for bed leveling and probe testing
*/
#if HAS_ABL_NOT_UBL && !PROBE_SELECTED
#error "Auto Bed Leveling requires one of these: PROBE_MANUALLY, FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or a Z Servo."
#error "Auto Bed Leveling requires one of these: PROBE_MANUALLY, FIX_MOUNTED_PROBE, NOZZLE_AS_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or a Z Servo."
#endif

#if ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST)
#error "Z_MIN_PROBE_REPEATABILITY_TEST requires a probe: FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or Z Servo."
#error "Z_MIN_PROBE_REPEATABILITY_TEST requires a probe: FIX_MOUNTED_PROBE, NOZZLE_AS_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or Z Servo."
#endif

#endif
Expand Down
2 changes: 1 addition & 1 deletion Marlin/src/module/probe.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -358,7 +358,7 @@ bool set_probe_deployed(const bool deploy) {
// Make room for probe to deploy (or stow)
// Fix-mounted probe should only raise for deploy
// unless PAUSE_BEFORE_DEPLOY_STOW is enabled
#if ENABLED(FIX_MOUNTED_PROBE) && DISABLED(PAUSE_BEFORE_DEPLOY_STOW)
#if EITHER(FIX_MOUNTED_PROBE, NOZZLE_AS_PROBE) && DISABLED(PAUSE_BEFORE_DEPLOY_STOW)
const bool deploy_stow_condition = deploy;
#else
constexpr bool deploy_stow_condition = true;
Expand Down
8 changes: 8 additions & 0 deletions Marlin/src/module/probe.h
Original file line number Diff line number Diff line change
Expand Up @@ -85,6 +85,8 @@
return (
#if IS_KINEMATIC
(X_CENTER) - probe_radius()
#elif ENABLED(NOZZLE_AS_PROBE)
_MAX(MIN_PROBE_EDGE_LEFT, X_MIN_POS)
#else
_MAX((X_MIN_BED) + (MIN_PROBE_EDGE_LEFT), (X_MIN_POS) + probe_offset.x)
#endif
Expand All @@ -94,6 +96,8 @@
return (
#if IS_KINEMATIC
(X_CENTER) + probe_radius()
#elif ENABLED(NOZZLE_AS_PROBE)
_MAX(MIN_PROBE_EDGE_RIGHT, X_MAX_POS)
#else
_MIN((X_MAX_BED) - (MIN_PROBE_EDGE_RIGHT), (X_MAX_POS) + probe_offset.x)
#endif
Expand All @@ -103,6 +107,8 @@
return (
#if IS_KINEMATIC
(Y_CENTER) - probe_radius()
#elif ENABLED(NOZZLE_AS_PROBE)
_MIN(MIN_PROBE_EDGE_FRONT, Y_MIN_POS)
#else
_MAX((Y_MIN_BED) + (MIN_PROBE_EDGE_FRONT), (Y_MIN_POS) + probe_offset.y)
#endif
Expand All @@ -112,6 +118,8 @@
return (
#if IS_KINEMATIC
(Y_CENTER) + probe_radius()
#elif ENABLED(NOZZLE_AS_PROBE)
_MAX(MIN_PROBE_EDGE_BACK, Y_MAX_POS)
#else
_MIN((Y_MAX_BED) - (MIN_PROBE_EDGE_BACK), (Y_MAX_POS) + probe_offset.y)
#endif
Expand Down
2 changes: 1 addition & 1 deletion buildroot/share/tests/LPC1768-tests
Original file line number Diff line number Diff line change
Expand Up @@ -39,7 +39,7 @@ opt_set TEMP_SENSOR_1 -1
opt_set TEMP_SENSOR_BED 5
opt_enable REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER SDSUPPORT ADAPTIVE_FAN_SLOWING NO_FAN_SLOWING_IN_PID_TUNING \
FILAMENT_WIDTH_SENSOR FILAMENT_LCD_DISPLAY PID_EXTRUSION_SCALING \
FIX_MOUNTED_PROBE AUTO_BED_LEVELING_BILINEAR G29_RETRY_AND_RECOVER Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE \
NOZZLE_AS_PROBE AUTO_BED_LEVELING_BILINEAR G29_RETRY_AND_RECOVER Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE \
BABYSTEPPING BABYSTEP_XY BABYSTEP_ZPROBE_OFFSET BABYSTEP_ZPROBE_GFX_OVERLAY \
PRINTCOUNTER NOZZLE_PARK_FEATURE NOZZLE_CLEAN_FEATURE SLOW_PWM_HEATERS PIDTEMPBED EEPROM_SETTINGS INCH_MODE_SUPPORT TEMPERATURE_UNITS_SUPPORT \
Z_SAFE_HOMING ADVANCED_PAUSE_FEATURE PARK_HEAD_ON_PAUSE \
Expand Down
6 changes: 6 additions & 0 deletions config/default/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -855,6 +855,12 @@
*/
//#define FIX_MOUNTED_PROBE

/**
* Use the nozzle as the probe, as with a conductive
* nozzle system or a piezo-electric smart effector.
*/
//#define NOZZLE_AS_PROBE

/**
* Z Servo Probe, such as an endstop switch on a rotating arm.
*/
Expand Down
6 changes: 6 additions & 0 deletions config/examples/3DFabXYZ/Migbot/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -862,6 +862,12 @@
*/
#define FIX_MOUNTED_PROBE

/**
* Use the nozzle as the probe, as with a conductive
* nozzle system or a piezo-electric smart effector.
*/
//#define NOZZLE_AS_PROBE

/**
* Z Servo Probe, such as an endstop switch on a rotating arm.
*/
Expand Down
6 changes: 6 additions & 0 deletions config/examples/ADIMLab/Gantry v1/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -855,6 +855,12 @@
*/
//#define FIX_MOUNTED_PROBE

/**
* Use the nozzle as the probe, as with a conductive
* nozzle system or a piezo-electric smart effector.
*/
//#define NOZZLE_AS_PROBE

/**
* Z Servo Probe, such as an endstop switch on a rotating arm.
*/
Expand Down
6 changes: 6 additions & 0 deletions config/examples/ADIMLab/Gantry v2/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -855,6 +855,12 @@
*/
//#define FIX_MOUNTED_PROBE

/**
* Use the nozzle as the probe, as with a conductive
* nozzle system or a piezo-electric smart effector.
*/
//#define NOZZLE_AS_PROBE

/**
* Z Servo Probe, such as an endstop switch on a rotating arm.
*/
Expand Down
6 changes: 6 additions & 0 deletions config/examples/AlephObjects/TAZ4/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -875,6 +875,12 @@
*/
#define FIX_MOUNTED_PROBE

/**
* Use the nozzle as the probe, as with a conductive
* nozzle system or a piezo-electric smart effector.
*/
//#define NOZZLE_AS_PROBE

/**
* Z Servo Probe, such as an endstop switch on a rotating arm.
*/
Expand Down
6 changes: 6 additions & 0 deletions config/examples/Alfawise/U20-bltouch/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -918,6 +918,12 @@
*/
//#define FIX_MOUNTED_PROBE

/**
* Use the nozzle as the probe, as with a conductive
* nozzle system or a piezo-electric smart effector.
*/
//#define NOZZLE_AS_PROBE

/**
* Z Servo Probe, such as an endstop switch on a rotating arm.
*/
Expand Down
6 changes: 6 additions & 0 deletions config/examples/Alfawise/U20/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -918,6 +918,12 @@
*/
//#define FIX_MOUNTED_PROBE

/**
* Use the nozzle as the probe, as with a conductive
* nozzle system or a piezo-electric smart effector.
*/
//#define NOZZLE_AS_PROBE

/**
* Z Servo Probe, such as an endstop switch on a rotating arm.
*/
Expand Down
6 changes: 6 additions & 0 deletions config/examples/AliExpress/CL-260/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -855,6 +855,12 @@
*/
//#define FIX_MOUNTED_PROBE

/**
* Use the nozzle as the probe, as with a conductive
* nozzle system or a piezo-electric smart effector.
*/
//#define NOZZLE_AS_PROBE

/**
* Z Servo Probe, such as an endstop switch on a rotating arm.
*/
Expand Down
6 changes: 6 additions & 0 deletions config/examples/AliExpress/UM2pExt/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -866,6 +866,12 @@
*/
//#define FIX_MOUNTED_PROBE

/**
* Use the nozzle as the probe, as with a conductive
* nozzle system or a piezo-electric smart effector.
*/
//#define NOZZLE_AS_PROBE

/**
* Z Servo Probe, such as an endstop switch on a rotating arm.
*/
Expand Down
6 changes: 6 additions & 0 deletions config/examples/Anet/A2/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -855,6 +855,12 @@
*/
//#define FIX_MOUNTED_PROBE

/**
* Use the nozzle as the probe, as with a conductive
* nozzle system or a piezo-electric smart effector.
*/
//#define NOZZLE_AS_PROBE

/**
* Z Servo Probe, such as an endstop switch on a rotating arm.
*/
Expand Down
6 changes: 6 additions & 0 deletions config/examples/Anet/A2plus/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -855,6 +855,12 @@
*/
//#define FIX_MOUNTED_PROBE

/**
* Use the nozzle as the probe, as with a conductive
* nozzle system or a piezo-electric smart effector.
*/
//#define NOZZLE_AS_PROBE

/**
* Z Servo Probe, such as an endstop switch on a rotating arm.
*/
Expand Down
6 changes: 6 additions & 0 deletions config/examples/Anet/A6/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -896,6 +896,12 @@
*/
//#define FIX_MOUNTED_PROBE

/**
* Use the nozzle as the probe, as with a conductive
* nozzle system or a piezo-electric smart effector.
*/
//#define NOZZLE_AS_PROBE

/**
* Z Servo Probe, such as an endstop switch on a rotating arm.
*/
Expand Down
6 changes: 6 additions & 0 deletions config/examples/Anet/A8/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -868,6 +868,12 @@
*/
//#define FIX_MOUNTED_PROBE

/**
* Use the nozzle as the probe, as with a conductive
* nozzle system or a piezo-electric smart effector.
*/
//#define NOZZLE_AS_PROBE

/**
* Z Servo Probe, such as an endstop switch on a rotating arm.
*/
Expand Down
6 changes: 6 additions & 0 deletions config/examples/Anet/A8plus/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -866,6 +866,12 @@
*/
//#define FIX_MOUNTED_PROBE

/**
* Use the nozzle as the probe, as with a conductive
* nozzle system or a piezo-electric smart effector.
*/
//#define NOZZLE_AS_PROBE

/**
* Z Servo Probe, such as an endstop switch on a rotating arm.
*/
Expand Down
6 changes: 6 additions & 0 deletions config/examples/Anet/E16/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -867,6 +867,12 @@
*/
//#define FIX_MOUNTED_PROBE

/**
* Use the nozzle as the probe, as with a conductive
* nozzle system or a piezo-electric smart effector.
*/
//#define NOZZLE_AS_PROBE

/**
* Z Servo Probe, such as an endstop switch on a rotating arm.
*/
Expand Down
6 changes: 6 additions & 0 deletions config/examples/AnyCubic/i3/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -865,6 +865,12 @@
*/
//#define FIX_MOUNTED_PROBE

/**
* Use the nozzle as the probe, as with a conductive
* nozzle system or a piezo-electric smart effector.
*/
//#define NOZZLE_AS_PROBE

/**
* Z Servo Probe, such as an endstop switch on a rotating arm.
*/
Expand Down
6 changes: 6 additions & 0 deletions config/examples/ArmEd/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -856,6 +856,12 @@
*/
//#define FIX_MOUNTED_PROBE

/**
* Use the nozzle as the probe, as with a conductive
* nozzle system or a piezo-electric smart effector.
*/
//#define NOZZLE_AS_PROBE

/**
* Z Servo Probe, such as an endstop switch on a rotating arm.
*/
Expand Down
6 changes: 6 additions & 0 deletions config/examples/Azteeg/X5GT/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -855,6 +855,12 @@
*/
//#define FIX_MOUNTED_PROBE

/**
* Use the nozzle as the probe, as with a conductive
* nozzle system or a piezo-electric smart effector.
*/
//#define NOZZLE_AS_PROBE

/**
* Z Servo Probe, such as an endstop switch on a rotating arm.
*/
Expand Down
6 changes: 6 additions & 0 deletions config/examples/BIBO/TouchX/cyclops/Configuration.h
Original file line number Diff line number Diff line change
Expand Up @@ -855,6 +855,12 @@
*/
//#define FIX_MOUNTED_PROBE

/**
* Use the nozzle as the probe, as with a conductive
* nozzle system or a piezo-electric smart effector.
*/
//#define NOZZLE_AS_PROBE

/**
* Z Servo Probe, such as an endstop switch on a rotating arm.
*/
Expand Down
Loading