Meshbedleveling/MK3 - check crash Z after homeaxis (kill with message "debris on nozzle...")

This commit is contained in:
Robert Pelnar 2018-04-24 20:12:29 +02:00
parent 864284f043
commit 1553e99d8e

View File

@ -2075,6 +2075,9 @@ void homeaxis(int axis, uint8_t cnt, uint8_t* pstep)
feedrate = homing_feedrate[axis]; feedrate = homing_feedrate[axis];
plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder); plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder);
st_synchronize(); st_synchronize();
#ifdef TMC2130
if (READ(Z_TMC2130_DIAG) != 0) return; //Z crash
#endif //TMC2130
current_position[axis] = 0; current_position[axis] = 0;
plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]); plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
destination[axis] = -home_retract_mm(axis) * axis_home_dir; destination[axis] = -home_retract_mm(axis) * axis_home_dir;
@ -2084,6 +2087,9 @@ void homeaxis(int axis, uint8_t cnt, uint8_t* pstep)
feedrate = homing_feedrate[axis]/2 ; feedrate = homing_feedrate[axis]/2 ;
plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder); plan_buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], feedrate/60, active_extruder);
st_synchronize(); st_synchronize();
#ifdef TMC2130
if (READ(Z_TMC2130_DIAG) != 0) return; //Z crash
#endif //TMC2130
axis_is_at_home(axis); axis_is_at_home(axis);
destination[axis] = current_position[axis]; destination[axis] = current_position[axis];
feedrate = 0.0; feedrate = 0.0;
@ -3765,6 +3771,15 @@ void process_commands()
#endif //MK1BP #endif //MK1BP
case_G80: case_G80:
{ {
#ifdef TMC2130
//previously enqueued "G28 W0" failed (crash Z)
if (axis_known_position[X_AXIS] && axis_known_position[Y_AXIS] && !axis_known_position[Z_AXIS] && (READ(Z_TMC2130_DIAG) != 0))
{
kill(MSG_BED_LEVELING_FAILED_POINT_LOW);
break;
}
#endif //TMC2130
mesh_bed_leveling_flag = true; mesh_bed_leveling_flag = true;
int8_t verbosity_level = 0; int8_t verbosity_level = 0;
static bool run = false; static bool run = false;