|
|
@ -1493,18 +1493,20 @@ static void homeaxis(int axis) { |
|
|
|
|
|
|
|
|
|
|
|
#ifndef Z_PROBE_SLED |
|
|
|
// Engage Servo endstop if enabled
|
|
|
|
#ifdef SERVO_ENDSTOPS |
|
|
|
#if SERVO_LEVELING |
|
|
|
// Engage Servo endstop if enabled and we are not using Z_PROBE_AND_ENDSTOP
|
|
|
|
#ifndef Z_PROBE_AND_ENDSTOP |
|
|
|
#ifdef SERVO_ENDSTOPS |
|
|
|
#if SERVO_LEVELING |
|
|
|
if (axis==Z_AXIS) { |
|
|
|
engage_z_probe(); |
|
|
|
} |
|
|
|
else |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
if (servo_endstops[axis] > -1) { |
|
|
|
servos[servo_endstops[axis]].write(servo_endstop_angles[axis * 2]); |
|
|
|
} |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
#endif // Z_PROBE_AND_ENDSTOP
|
|
|
|
#endif // Z_PROBE_SLED
|
|
|
|
#ifdef Z_DUAL_ENDSTOPS |
|
|
|
if (axis==Z_AXIS) In_Homing_Process(true); |
|
|
@ -1922,10 +1924,12 @@ inline void gcode_G28() { |
|
|
|
|
|
|
|
if (home_all_axis || code_seen(axis_codes[Z_AXIS])) { |
|
|
|
#if defined(Z_RAISE_BEFORE_HOMING) && Z_RAISE_BEFORE_HOMING > 0 |
|
|
|
#ifndef Z_PROBE_AND_ENDSTOP |
|
|
|
destination[Z_AXIS] = -Z_RAISE_BEFORE_HOMING * home_dir(Z_AXIS); // Set destination away from bed
|
|
|
|
feedrate = max_feedrate[Z_AXIS]; |
|
|
|
plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate, active_extruder); |
|
|
|
st_synchronize(); |
|
|
|
#endif |
|
|
|
#endif |
|
|
|
HOMEAXIS(Z); |
|
|
|
} |
|
|
|