Browse Source

Merge pull request #2395 from wavexx/always_raise_at_zmin

Improve raise_z_above to always raise when at Z_MIN
DRracer 4 years ago
parent
commit
4936e01d3d
1 changed files with 8 additions and 2 deletions
  1. 8 2
      Firmware/Marlin_main.cpp

+ 8 - 2
Firmware/Marlin_main.cpp

@@ -2125,9 +2125,15 @@ void raise_z_above(float target, bool plan)
     // Z needs raising
     current_position[Z_AXIS] = target;
 
-    if (axis_known_position[Z_AXIS])
+#if defined(Z_MIN_PIN) && (Z_MIN_PIN > -1) && !defined(DEBUG_DISABLE_ZMINLIMIT)
+    bool z_min_endstop = (READ(Z_MIN_PIN) != Z_MIN_ENDSTOP_INVERTING);
+#else
+    bool z_min_endstop = false;
+#endif
+
+    if (axis_known_position[Z_AXIS] || z_min_endstop)
     {
-        // current position is known, it's safe to raise Z
+        // current position is known or very low, it's safe to raise Z
         if(plan) plan_buffer_line_curposXYZE(max_feedrate[Z_AXIS], active_extruder);
         return;
     }