瀏覽代碼

Raise on nozzle crash

Alex Voinea 5 年之前
父節點
當前提交
8b2b32c85b
共有 1 個文件被更改,包括 18 次插入6 次删除
  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