Browse Source

SCARA support in homeaxis

Scott Lahteine 8 years ago
parent
commit
1c5f9821c4
1 changed files with 18 additions and 7 deletions
  1. 18
    7
      Marlin/Marlin_main.cpp

+ 18
- 7
Marlin/Marlin_main.cpp View File

@@ -2228,10 +2228,15 @@ static void do_homing_move(AxisEnum axis, float where, float fr_mm_s = 0.0) {
2228 2228
 #define HOMEAXIS(LETTER) homeaxis(LETTER##_AXIS)
2229 2229
 
2230 2230
 static void homeaxis(AxisEnum axis) {
2231
-  #define CAN_HOME(A) \
2232
-    (axis == A##_AXIS && ((A##_MIN_PIN > -1 && A##_HOME_DIR < 0) || (A##_MAX_PIN > -1 && A##_HOME_DIR > 0)))
2233 2231
 
2234
-  if (!CAN_HOME(X) && !CAN_HOME(Y) && !CAN_HOME(Z)) return;
2232
+  #if IS_SCARA
2233
+    // Only Z homing (with probe) is permitted
2234
+    if (axis != Z_AXIS) { BUZZ(100, 880); return; }
2235
+  #else
2236
+    #define CAN_HOME(A) \
2237
+      (axis == A##_AXIS && ((A##_MIN_PIN > -1 && A##_HOME_DIR < 0) || (A##_MAX_PIN > -1 && A##_HOME_DIR > 0)))
2238
+    if (!CAN_HOME(X) && !CAN_HOME(Y) && !CAN_HOME(Z)) return;
2239
+  #endif
2235 2240
 
2236 2241
   #if ENABLED(DEBUG_LEVELING_FEATURE)
2237 2242
     if (DEBUGGING(LEVELING)) {
@@ -2294,10 +2299,16 @@ static void homeaxis(AxisEnum axis) {
2294 2299
     } // Z_AXIS
2295 2300
   #endif
2296 2301
 
2297
-  // Delta has already moved all three towers up in G28
2298
-  // so here it re-homes each tower in turn.
2299
-  // Delta homing treats the axes as normal linear axes.
2300
-  #if ENABLED(DELTA)
2302
+  #if IS_SCARA
2303
+
2304
+    set_axis_is_at_home(axis);
2305
+    SYNC_PLAN_POSITION_KINEMATIC();
2306
+
2307
+  #elif ENABLED(DELTA)
2308
+
2309
+    // Delta has already moved all three towers up in G28
2310
+    // so here it re-homes each tower in turn.
2311
+    // Delta homing treats the axes as normal linear axes.
2301 2312
 
2302 2313
     // retrace by the amount specified in endstop_adj
2303 2314
     if (endstop_adj[axis] * Z_HOME_DIR < 0) {

Loading…
Cancel
Save