Browse Source

Raise on nozzle crash

Alex Voinea 4 years ago
parent
commit
8b2b32c85b
1 changed files with 18 additions and 6 deletions
  1. 18 6
      Firmware/Marlin_main.cpp

+ 18 - 6
Firmware/Marlin_main.cpp

@@ -2314,9 +2314,15 @@ bool homeaxis(int axis, bool doError, uint8_t cnt)
 #ifdef TMC2130
 		if (READ(Z_TMC2130_DIAG) != 0) { //Z crash
 			FORCE_HIGH_POWER_END;
-			if (doError) kill(_T(MSG_BED_LEVELING_FAILED_POINT_LOW));
-            current_position[axis] = -5; //assume that nozzle crashed into bed
-            plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+			if (doError)
+			{
+				current_position[Z_AXIS] += MESH_HOME_Z_SEARCH;
+				plan_buffer_line_curposXYZE(max_feedrate[Z_AXIS], active_extruder);
+				st_synchronize();
+				kill(_T(MSG_BED_LEVELING_FAILED_POINT_LOW));
+			}
+			current_position[axis] = -MESH_HOME_Z_SEARCH; //assume that nozzle crashed into bed
+			plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
 			return 0; 
 		}
 #endif //TMC2130
@@ -2332,9 +2338,15 @@ bool homeaxis(int axis, bool doError, uint8_t cnt)
 #ifdef TMC2130
 		if (READ(Z_TMC2130_DIAG) != 0) { //Z crash
 			FORCE_HIGH_POWER_END;
-			if (doError) kill(_T(MSG_BED_LEVELING_FAILED_POINT_LOW));
-            current_position[axis] = -5; //assume that nozzle crashed into bed
-            plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
+			if (doError)
+			{
+				current_position[Z_AXIS] += MESH_HOME_Z_SEARCH;
+				plan_buffer_line_curposXYZE(max_feedrate[Z_AXIS], active_extruder);
+				st_synchronize();
+				kill(_T(MSG_BED_LEVELING_FAILED_POINT_LOW));
+			}
+			current_position[axis] = -MESH_HOME_Z_SEARCH; //assume that nozzle crashed into bed
+			plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);
 			return 0; 
 		}
 #endif //TMC2130