Skip to content

Commit

Permalink
Add NOZZLE_AS_PROBE (no probe offsets) (MarlinFirmware#15929)
Browse files Browse the repository at this point in the history
  • Loading branch information
InsanityAutomation authored and thinkyhead committed Dec 24, 2019
1 parent 9c02115 commit 1c9ccce
Show file tree
Hide file tree
Showing 151 changed files with 884 additions and 10 deletions.
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 @@ -1483,6 +1483,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 @@ -1082,6 +1082,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 @@ -1090,7 +1091,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 @@ -1221,11 +1222,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

0 comments on commit 1c9ccce

Please sign in to comment.