Merge pull request #5678 from Bob-the-Kuhn/G38-optional-double-tap

G38 bug fix, made double touch optional & reverted to Z_MIN_PROBE
This commit is contained in:
Scott Lahteine
2017-04-02 10:32:04 -05:00
committed by GitHub
19 changed files with 49 additions and 32 deletions

View File

@ -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)
* G38 - Probe target - similar to G28 except it uses the Z_MIN endstop for all three axes
* 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
* G92 - Set current position to coordinates given
@ -4824,31 +4824,32 @@ inline void gcode_G28() {
set_current_from_steppers_for_axis(ALL_AXES);
SYNC_PLAN_POSITION_KINEMATIC();
// Only do remaining moves if target was hit
if (G38_endstop_hit) {
G38_pass_fail = true;
// Move away by the retract distance
set_destination_to_current();
LOOP_XYZ(i) destination[i] += retract_mm[i];
endstops.enable(false);
prepare_move_to_destination();
stepper.synchronize();
#if ENABLED(PROBE_DOUBLE_TOUCH)
// Move away by the retract distance
set_destination_to_current();
LOOP_XYZ(i) destination[i] += retract_mm[i];
endstops.enable(false);
prepare_move_to_destination();
stepper.synchronize();
feedrate_mm_s /= 4;
feedrate_mm_s /= 4;
// Bump the target more slowly
LOOP_XYZ(i) destination[i] -= retract_mm[i] * 2;
// Bump the target more slowly
LOOP_XYZ(i) destination[i] -= retract_mm[i] * 2;
endstops.enable(true);
G38_move = true;
prepare_move_to_destination();
stepper.synchronize();
G38_move = false;
endstops.enable(true);
G38_move = true;
prepare_move_to_destination();
stepper.synchronize();
G38_move = false;
set_current_from_steppers_for_axis(ALL_AXES);
SYNC_PLAN_POSITION_KINEMATIC();
set_current_from_steppers_for_axis(ALL_AXES);
SYNC_PLAN_POSITION_KINEMATIC();
#endif
}
endstops.hit_on_purpose();
@ -4860,7 +4861,7 @@ inline void gcode_G28() {
* G38.2 - probe toward workpiece, stop on contact, signal error if failure
* G38.3 - probe toward workpiece, stop on contact
*
* Like G28 except uses Z min endstop for all axes
* Like G28 except uses Z min probe for all axes
*/
inline void gcode_G38(bool is_38_2) {
// Get X Y Z E F