Browse Source

Merge pull request #4900 from thinkyhead/rc_g38_changes

Cleanup of G38.2 / G38.3
Scott Lahteine 8 years ago
parent
commit
bad8899ebc

+ 6
- 0
Marlin/Configuration_adv.h View File

532
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
532
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
533
 //#define BEZIER_CURVE_SUPPORT
533
 //#define BEZIER_CURVE_SUPPORT
534
 
534
 
535
+// G38.2 and G38.3 Probe Target
536
+//#define G38_PROBE_TARGET
537
+#if ENABLED(G38_PROBE_TARGET)
538
+  #define G38_MINIMUM_MOVE 0.0275 // minimum distance in mm that will produce a move (determined using the print statement in check_move)
539
+#endif
540
+
535
 // Moves (or segments) with fewer steps than this will be joined with the next move
541
 // Moves (or segments) with fewer steps than this will be joined with the next move
536
 #define MIN_STEPS_PER_SEGMENT 6
542
 #define MIN_STEPS_PER_SEGMENT 6
537
 
543
 

+ 5
- 0
Marlin/Marlin.h View File

209
 
209
 
210
 #endif // !MIXING_EXTRUDER
210
 #endif // !MIXING_EXTRUDER
211
 
211
 
212
+#if ENABLED(G38_PROBE_TARGET)
213
+  extern bool G38_move,        // flag to tell the interrupt handler that a G38 command is being run
214
+              G38_endstop_hit; // flag from the interrupt handler to indicate if the endstop went active
215
+#endif
216
+
212
 /**
217
 /**
213
  * The axis order in all axis related arrays is X, Y, Z, E
218
  * The axis order in all axis related arrays is X, Y, Z, E
214
  */
219
  */

+ 118
- 2
Marlin/Marlin_main.cpp View File

117
  * G30 - Single Z probe, probes bed at current XY location.
117
  * G30 - Single Z probe, probes bed at current XY location.
118
  * G31 - Dock sled (Z_PROBE_SLED only)
118
  * G31 - Dock sled (Z_PROBE_SLED only)
119
  * G32 - Undock sled (Z_PROBE_SLED only)
119
  * G32 - Undock sled (Z_PROBE_SLED only)
120
+ * G38 - Probe target - similar to G28 except it uses the Z_MIN endstop for all three axes
120
  * G90 - Use Absolute Coordinates
121
  * G90 - Use Absolute Coordinates
121
  * G91 - Use Relative Coordinates
122
  * G91 - Use Relative Coordinates
122
  * G92 - Set current position to coordinates given
123
  * G92 - Set current position to coordinates given
276
   TWIBus i2c;
277
   TWIBus i2c;
277
 #endif
278
 #endif
278
 
279
 
280
+#if ENABLED(G38_PROBE_TARGET)
281
+  bool G38_move = false,
282
+       G38_endstop_hit = false;
283
+#endif
284
+
279
 bool Running = true;
285
 bool Running = true;
280
 
286
 
281
 uint8_t marlin_debug_flags = DEBUG_NONE;
287
 uint8_t marlin_debug_flags = DEBUG_NONE;
1337
  * SCARA should wait until all XY homing is done before setting the XY
1343
  * SCARA should wait until all XY homing is done before setting the XY
1338
  * current_position to home, because neither X nor Y is at home until
1344
  * current_position to home, because neither X nor Y is at home until
1339
  * both are at home. Z can however be homed individually.
1345
  * both are at home. Z can however be homed individually.
1340
- * 
1346
+ *
1341
  */
1347
  */
1342
 static void set_axis_is_at_home(AxisEnum axis) {
1348
 static void set_axis_is_at_home(AxisEnum axis) {
1343
   #if ENABLED(DEBUG_LEVELING_FEATURE)
1349
   #if ENABLED(DEBUG_LEVELING_FEATURE)
2325
 
2331
 
2326
 #endif // AUTO_BED_LEVELING_BILINEAR
2332
 #endif // AUTO_BED_LEVELING_BILINEAR
2327
 
2333
 
2334
+
2328
 /**
2335
 /**
2329
  * Home an individual linear axis
2336
  * Home an individual linear axis
2330
  */
2337
  */
4158
 
4165
 
4159
 #endif // HAS_BED_PROBE
4166
 #endif // HAS_BED_PROBE
4160
 
4167
 
4168
+#if ENABLED(G38_PROBE_TARGET)
4169
+
4170
+  static bool G38_run_probe() {
4171
+
4172
+    bool G38_pass_fail = false;
4173
+
4174
+    // Get direction of move and retract
4175
+    float retract_mm[XYZ];
4176
+    LOOP_XYZ(i) {
4177
+      float dist = destination[i] - current_position[i];
4178
+      retract_mm[i] = fabs(dist) < G38_MINIMUM_MOVE ? 0 : home_bump_mm(i) * (dist > 0 ? -1 : 1);
4179
+    }
4180
+
4181
+    stepper.synchronize();  // wait until the machine is idle
4182
+
4183
+    // Move until destination reached or target hit
4184
+    endstops.enable(true);
4185
+    G38_move = true;
4186
+    G38_endstop_hit = false;
4187
+    prepare_move_to_destination();
4188
+    stepper.synchronize();
4189
+    G38_move = false;
4190
+
4191
+    endstops.hit_on_purpose();
4192
+    set_current_from_steppers_for_axis(ALL_AXES);
4193
+    SYNC_PLAN_POSITION_KINEMATIC();
4194
+
4195
+    // Only do remaining moves if target was hit
4196
+    if (G38_endstop_hit) {
4197
+
4198
+      G38_pass_fail = true;
4199
+
4200
+      // Move away by the retract distance
4201
+      set_destination_to_current();
4202
+      LOOP_XYZ(i) destination[i] += retract_mm[i];
4203
+      endstops.enable(false);
4204
+      prepare_move_to_destination();
4205
+      stepper.synchronize();
4206
+
4207
+      feedrate_mm_s /= 4;
4208
+
4209
+      // Bump the target more slowly
4210
+      LOOP_XYZ(i) destination[i] -= retract_mm[i] * 2;
4211
+
4212
+      endstops.enable(true);
4213
+      G38_move = true;
4214
+      prepare_move_to_destination();
4215
+      stepper.synchronize();
4216
+      G38_move = false;
4217
+
4218
+      set_current_from_steppers_for_axis(ALL_AXES);
4219
+      SYNC_PLAN_POSITION_KINEMATIC();
4220
+    }
4221
+
4222
+    endstops.hit_on_purpose();
4223
+    endstops.not_homing();
4224
+    return G38_pass_fail;
4225
+  }
4226
+
4227
+  /**
4228
+   * G38.2 - probe toward workpiece, stop on contact, signal error if failure
4229
+   * G38.3 - probe toward workpiece, stop on contact
4230
+   *
4231
+   * Like G28 except uses Z min endstop for all axes
4232
+   */
4233
+  inline void gcode_G38(bool is_38_2) {
4234
+    // Get X Y Z E F
4235
+    gcode_get_destination();
4236
+
4237
+    setup_for_endstop_or_probe_move();
4238
+
4239
+    // If any axis has enough movement, do the move
4240
+    LOOP_XYZ(i)
4241
+      if (fabs(destination[i] - current_position[i]) >= G38_MINIMUM_MOVE) {
4242
+        if (!code_seen('F')) feedrate_mm_s = homing_feedrate_mm_s[i];
4243
+        // If G38.2 fails throw an error
4244
+        if (!G38_run_probe() && is_38_2) {
4245
+          SERIAL_ERROR_START;
4246
+          SERIAL_ERRORLNPGM("Failed to reach target");
4247
+        }
4248
+        break;
4249
+      }
4250
+
4251
+    clean_up_after_endstop_or_probe_move();
4252
+  }
4253
+
4254
+#endif // G38_PROBE_TARGET
4255
+
4161
 /**
4256
 /**
4162
  * G92: Set current position to given X Y Z E
4257
  * G92: Set current position to given X Y Z E
4163
  */
4258
  */
7279
   // Skip spaces to get the numeric part
7374
   // Skip spaces to get the numeric part
7280
   while (*cmd_ptr == ' ') cmd_ptr++;
7375
   while (*cmd_ptr == ' ') cmd_ptr++;
7281
 
7376
 
7377
+  // Allow for decimal point in command
7378
+  #if ENABLED(G38_PROBE_TARGET)
7379
+    uint8_t subcode = 0;
7380
+  #endif
7381
+
7282
   uint16_t codenum = 0; // define ahead of goto
7382
   uint16_t codenum = 0; // define ahead of goto
7283
 
7383
 
7284
   // Bail early if there's no code
7384
   // Bail early if there's no code
7291
     cmd_ptr++;
7391
     cmd_ptr++;
7292
   } while (NUMERIC(*cmd_ptr));
7392
   } while (NUMERIC(*cmd_ptr));
7293
 
7393
 
7394
+  // Allow for decimal point in command
7395
+  #if ENABLED(G38_PROBE_TARGET)
7396
+    if (*cmd_ptr == '.') {
7397
+      cmd_ptr++;
7398
+      while (NUMERIC(*cmd_ptr))
7399
+        subcode = (subcode * 10) + (*cmd_ptr++ - '0');
7400
+    }
7401
+  #endif
7402
+
7294
   // Skip all spaces to get to the first argument, or nul
7403
   // Skip all spaces to get to the first argument, or nul
7295
   while (*cmd_ptr == ' ') cmd_ptr++;
7404
   while (*cmd_ptr == ' ') cmd_ptr++;
7296
 
7405
 
7391
         #endif // Z_PROBE_SLED
7500
         #endif // Z_PROBE_SLED
7392
       #endif // HAS_BED_PROBE
7501
       #endif // HAS_BED_PROBE
7393
 
7502
 
7503
+      #if ENABLED(G38_PROBE_TARGET)
7504
+        case 38: // G38.2 & G38.3
7505
+          if (subcode == 2 || subcode == 3)
7506
+            gcode_G38(subcode == 2);
7507
+          break;
7508
+      #endif
7509
+
7394
       case 90: // G90
7510
       case 90: // G90
7395
         relative_mode = false;
7511
         relative_mode = false;
7396
         break;
7512
         break;
8899
    * Morgan SCARA Inverse Kinematics. Results in delta[].
9015
    * Morgan SCARA Inverse Kinematics. Results in delta[].
8900
    *
9016
    *
8901
    * See http://forums.reprap.org/read.php?185,283327
9017
    * See http://forums.reprap.org/read.php?185,283327
8902
-   * 
9018
+   *
8903
    * Maths and first version by QHARLEY.
9019
    * Maths and first version by QHARLEY.
8904
    * Integrated into Marlin and slightly restructured by Joachim Cerny.
9020
    * Integrated into Marlin and slightly restructured by Joachim Cerny.
8905
    */
9021
    */

+ 11
- 0
Marlin/SanityCheck.h View File

852
 #endif
852
 #endif
853
 
853
 
854
 /**
854
 /**
855
+ * G38 Probe Target
856
+ */
857
+#if ENABLED(G38_PROBE_TARGET)
858
+  #if !HAS_BED_PROBE
859
+    #error "G38_PROBE_TARGET requires a bed probe."
860
+  #elif !IS_CARTESIAN
861
+    #error "G38_PROBE_TARGET requires a Cartesian machine."
862
+  #endif
863
+#endif
864
+
865
+/**
855
  * Make sure only one display is enabled
866
  * Make sure only one display is enabled
856
  *
867
  *
857
  * Note: BQ_LCD_SMART_CONTROLLER => REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
868
  * Note: BQ_LCD_SMART_CONTROLLER => REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

+ 15
- 1
Marlin/endstops.cpp View File

243
   // COPY_BIT: copy the value of COPY_BIT to BIT in bits
243
   // COPY_BIT: copy the value of COPY_BIT to BIT in bits
244
   #define COPY_BIT(bits, COPY_BIT, BIT) SET_BIT(bits, BIT, TEST(bits, COPY_BIT))
244
   #define COPY_BIT(bits, COPY_BIT, BIT) SET_BIT(bits, BIT, TEST(bits, COPY_BIT))
245
 
245
 
246
-  #define UPDATE_ENDSTOP(AXIS,MINMAX) do { \
246
+  #define _UPDATE_ENDSTOP(AXIS,MINMAX,CODE) do { \
247
       UPDATE_ENDSTOP_BIT(AXIS, MINMAX); \
247
       UPDATE_ENDSTOP_BIT(AXIS, MINMAX); \
248
       if (TEST_ENDSTOP(_ENDSTOP(AXIS, MINMAX)) && stepper.current_block->steps[_AXIS(AXIS)] > 0) { \
248
       if (TEST_ENDSTOP(_ENDSTOP(AXIS, MINMAX)) && stepper.current_block->steps[_AXIS(AXIS)] > 0) { \
249
         _ENDSTOP_HIT(AXIS); \
249
         _ENDSTOP_HIT(AXIS); \
250
         stepper.endstop_triggered(_AXIS(AXIS)); \
250
         stepper.endstop_triggered(_AXIS(AXIS)); \
251
+        CODE; \
251
       } \
252
       } \
252
     } while(0)
253
     } while(0)
253
 
254
 
255
+  #if ENABLED(G38_PROBE_TARGET) && PIN_EXISTS(Z_MIN)  // If G38 command then check Z_MIN for every axis and every direction  
256
+
257
+    #define UPDATE_ENDSTOP(AXIS,MINMAX) do { \
258
+        _UPDATE_ENDSTOP(AXIS,MINMAX,NOOP); \
259
+        if (G38_move) _UPDATE_ENDSTOP(Z, MIN, G38_endstop_hit = true); \
260
+      } while(0)
261
+
262
+  #else	
263
+
264
+    #define UPDATE_ENDSTOP(AXIS,MINMAX) _UPDATE_ENDSTOP(AXIS,MINMAX,NOOP)
265
+
266
+  #endif
267
+
254
   #if ENABLED(COREXY) || ENABLED(COREXZ)
268
   #if ENABLED(COREXY) || ENABLED(COREXZ)
255
     // Head direction in -X axis for CoreXY and CoreXZ bots.
269
     // Head direction in -X axis for CoreXY and CoreXZ bots.
256
     // If DeltaA == -DeltaB, the movement is only in Y or Z axis
270
     // If DeltaA == -DeltaB, the movement is only in Y or Z axis

+ 6
- 0
Marlin/example_configurations/Cartesio/Configuration_adv.h View File

532
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
532
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
533
 //#define BEZIER_CURVE_SUPPORT
533
 //#define BEZIER_CURVE_SUPPORT
534
 
534
 
535
+// G38.2 and G38.3 Probe Target
536
+//#define G38_PROBE_TARGET
537
+#if ENABLED(G38_PROBE_TARGET)
538
+  #define G38_MINIMUM_MOVE 0.0275 // minimum distance in mm that will produce a move (determined using the print statement in check_move)
539
+#endif
540
+
535
 // Moves (or segments) with fewer steps than this will be joined with the next move
541
 // Moves (or segments) with fewer steps than this will be joined with the next move
536
 #define MIN_STEPS_PER_SEGMENT 6
542
 #define MIN_STEPS_PER_SEGMENT 6
537
 
543
 

+ 6
- 0
Marlin/example_configurations/Felix/Configuration_adv.h View File

532
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
532
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
533
 //#define BEZIER_CURVE_SUPPORT
533
 //#define BEZIER_CURVE_SUPPORT
534
 
534
 
535
+// G38.2 and G38.3 Probe Target
536
+//#define G38_PROBE_TARGET
537
+#if ENABLED(G38_PROBE_TARGET)
538
+  #define G38_MINIMUM_MOVE 0.0275 // minimum distance in mm that will produce a move (determined using the print statement in check_move)
539
+#endif
540
+
535
 // Moves (or segments) with fewer steps than this will be joined with the next move
541
 // Moves (or segments) with fewer steps than this will be joined with the next move
536
 #define MIN_STEPS_PER_SEGMENT 6
542
 #define MIN_STEPS_PER_SEGMENT 6
537
 
543
 

+ 6
- 0
Marlin/example_configurations/Hephestos/Configuration_adv.h View File

532
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
532
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
533
 //#define BEZIER_CURVE_SUPPORT
533
 //#define BEZIER_CURVE_SUPPORT
534
 
534
 
535
+// G38.2 and G38.3 Probe Target
536
+//#define G38_PROBE_TARGET
537
+#if ENABLED(G38_PROBE_TARGET)
538
+  #define G38_MINIMUM_MOVE 0.0275 // minimum distance in mm that will produce a move (determined using the print statement in check_move)
539
+#endif
540
+
535
 // Moves (or segments) with fewer steps than this will be joined with the next move
541
 // Moves (or segments) with fewer steps than this will be joined with the next move
536
 #define MIN_STEPS_PER_SEGMENT 6
542
 #define MIN_STEPS_PER_SEGMENT 6
537
 
543
 

+ 6
- 0
Marlin/example_configurations/Hephestos_2/Configuration_adv.h View File

532
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
532
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
533
 //#define BEZIER_CURVE_SUPPORT
533
 //#define BEZIER_CURVE_SUPPORT
534
 
534
 
535
+// G38.2 and G38.3 Probe Target
536
+//#define G38_PROBE_TARGET
537
+#if ENABLED(G38_PROBE_TARGET)
538
+  #define G38_MINIMUM_MOVE 0.0275 // minimum distance in mm that will produce a move (determined using the print statement in check_move)
539
+#endif
540
+
535
 // Moves (or segments) with fewer steps than this will be joined with the next move
541
 // Moves (or segments) with fewer steps than this will be joined with the next move
536
 #define MIN_STEPS_PER_SEGMENT 6
542
 #define MIN_STEPS_PER_SEGMENT 6
537
 
543
 

+ 6
- 0
Marlin/example_configurations/K8200/Configuration_adv.h View File

538
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
538
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
539
 //#define BEZIER_CURVE_SUPPORT
539
 //#define BEZIER_CURVE_SUPPORT
540
 
540
 
541
+// G38.2 and G38.3 Probe Target
542
+//#define G38_PROBE_TARGET
543
+#if ENABLED(G38_PROBE_TARGET)
544
+  #define G38_MINIMUM_MOVE 0.0275 // minimum distance in mm that will produce a move (determined using the print statement in check_move)
545
+#endif
546
+
541
 // Moves (or segments) with fewer steps than this will be joined with the next move
547
 // Moves (or segments) with fewer steps than this will be joined with the next move
542
 #define MIN_STEPS_PER_SEGMENT 3
548
 #define MIN_STEPS_PER_SEGMENT 3
543
 
549
 

+ 6
- 0
Marlin/example_configurations/K8400/Configuration_adv.h View File

532
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
532
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
533
 //#define BEZIER_CURVE_SUPPORT
533
 //#define BEZIER_CURVE_SUPPORT
534
 
534
 
535
+// G38.2 and G38.3 Probe Target
536
+//#define G38_PROBE_TARGET
537
+#if ENABLED(G38_PROBE_TARGET)
538
+  #define G38_MINIMUM_MOVE 0.0275 // minimum distance in mm that will produce a move (determined using the print statement in check_move)
539
+#endif
540
+
535
 // Moves (or segments) with fewer steps than this will be joined with the next move
541
 // Moves (or segments) with fewer steps than this will be joined with the next move
536
 #define MIN_STEPS_PER_SEGMENT 6
542
 #define MIN_STEPS_PER_SEGMENT 6
537
 
543
 

+ 6
- 0
Marlin/example_configurations/RigidBot/Configuration_adv.h View File

532
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
532
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
533
 //#define BEZIER_CURVE_SUPPORT
533
 //#define BEZIER_CURVE_SUPPORT
534
 
534
 
535
+// G38.2 and G38.3 Probe Target
536
+//#define G38_PROBE_TARGET
537
+#if ENABLED(G38_PROBE_TARGET)
538
+  #define G38_MINIMUM_MOVE 0.0275 // minimum distance in mm that will produce a move (determined using the print statement in check_move)
539
+#endif
540
+
535
 // Moves (or segments) with fewer steps than this will be joined with the next move
541
 // Moves (or segments) with fewer steps than this will be joined with the next move
536
 #define MIN_STEPS_PER_SEGMENT 6
542
 #define MIN_STEPS_PER_SEGMENT 6
537
 
543
 

+ 6
- 0
Marlin/example_configurations/SCARA/Configuration_adv.h View File

532
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
532
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
533
 //#define BEZIER_CURVE_SUPPORT
533
 //#define BEZIER_CURVE_SUPPORT
534
 
534
 
535
+// G38.2 and G38.3 Probe Target
536
+//#define G38_PROBE_TARGET
537
+#if ENABLED(G38_PROBE_TARGET)
538
+  #define G38_MINIMUM_MOVE 0.0275 // minimum distance in mm that will produce a move (determined using the print statement in check_move)
539
+#endif
540
+
535
 // Moves (or segments) with fewer steps than this will be joined with the next move
541
 // Moves (or segments) with fewer steps than this will be joined with the next move
536
 #define MIN_STEPS_PER_SEGMENT 6
542
 #define MIN_STEPS_PER_SEGMENT 6
537
 
543
 

+ 6
- 0
Marlin/example_configurations/TAZ4/Configuration_adv.h View File

540
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
540
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
541
 //#define BEZIER_CURVE_SUPPORT
541
 //#define BEZIER_CURVE_SUPPORT
542
 
542
 
543
+// G38.2 and G38.3 Probe Target
544
+//#define G38_PROBE_TARGET
545
+#if ENABLED(G38_PROBE_TARGET)
546
+  #define G38_MINIMUM_MOVE 0.0275 // minimum distance in mm that will produce a move (determined using the print statement in check_move)
547
+#endif
548
+
543
 // Moves (or segments) with fewer steps than this will be joined with the next move
549
 // Moves (or segments) with fewer steps than this will be joined with the next move
544
 #define MIN_STEPS_PER_SEGMENT 6
550
 #define MIN_STEPS_PER_SEGMENT 6
545
 
551
 

+ 6
- 0
Marlin/example_configurations/WITBOX/Configuration_adv.h View File

532
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
532
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
533
 //#define BEZIER_CURVE_SUPPORT
533
 //#define BEZIER_CURVE_SUPPORT
534
 
534
 
535
+// G38.2 and G38.3 Probe Target
536
+//#define G38_PROBE_TARGET
537
+#if ENABLED(G38_PROBE_TARGET)
538
+  #define G38_MINIMUM_MOVE 0.0275 // minimum distance in mm that will produce a move (determined using the print statement in check_move)
539
+#endif
540
+
535
 // Moves (or segments) with fewer steps than this will be joined with the next move
541
 // Moves (or segments) with fewer steps than this will be joined with the next move
536
 #define MIN_STEPS_PER_SEGMENT 6
542
 #define MIN_STEPS_PER_SEGMENT 6
537
 
543
 

+ 6
- 0
Marlin/example_configurations/delta/biv2.5/Configuration_adv.h View File

534
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
534
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
535
 //#define BEZIER_CURVE_SUPPORT
535
 //#define BEZIER_CURVE_SUPPORT
536
 
536
 
537
+// G38.2 and G38.3 Probe Target
538
+//#define G38_PROBE_TARGET
539
+#if ENABLED(G38_PROBE_TARGET)
540
+  #define G38_MINIMUM_MOVE 0.0275 // minimum distance in mm that will produce a move (determined using the print statement in check_move)
541
+#endif
542
+
537
 // Moves (or segments) with fewer steps than this will be joined with the next move
543
 // Moves (or segments) with fewer steps than this will be joined with the next move
538
 #define MIN_STEPS_PER_SEGMENT 6
544
 #define MIN_STEPS_PER_SEGMENT 6
539
 
545
 

+ 6
- 0
Marlin/example_configurations/delta/generic/Configuration_adv.h View File

534
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
534
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
535
 //#define BEZIER_CURVE_SUPPORT
535
 //#define BEZIER_CURVE_SUPPORT
536
 
536
 
537
+// G38.2 and G38.3 Probe Target
538
+//#define G38_PROBE_TARGET
539
+#if ENABLED(G38_PROBE_TARGET)
540
+  #define G38_MINIMUM_MOVE 0.0275 // minimum distance in mm that will produce a move (determined using the print statement in check_move)
541
+#endif
542
+
537
 // Moves (or segments) with fewer steps than this will be joined with the next move
543
 // Moves (or segments) with fewer steps than this will be joined with the next move
538
 #define MIN_STEPS_PER_SEGMENT 6
544
 #define MIN_STEPS_PER_SEGMENT 6
539
 
545
 

+ 6
- 0
Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h View File

534
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
534
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
535
 //#define BEZIER_CURVE_SUPPORT
535
 //#define BEZIER_CURVE_SUPPORT
536
 
536
 
537
+// G38.2 and G38.3 Probe Target
538
+//#define G38_PROBE_TARGET
539
+#if ENABLED(G38_PROBE_TARGET)
540
+  #define G38_MINIMUM_MOVE 0.0275 // minimum distance in mm that will produce a move (determined using the print statement in check_move)
541
+#endif
542
+
537
 // Moves (or segments) with fewer steps than this will be joined with the next move
543
 // Moves (or segments) with fewer steps than this will be joined with the next move
538
 #define MIN_STEPS_PER_SEGMENT 6
544
 #define MIN_STEPS_PER_SEGMENT 6
539
 
545
 

+ 6
- 0
Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h View File

539
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
539
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
540
 //#define BEZIER_CURVE_SUPPORT
540
 //#define BEZIER_CURVE_SUPPORT
541
 
541
 
542
+// G38.2 and G38.3 Probe Target
543
+//#define G38_PROBE_TARGET
544
+#if ENABLED(G38_PROBE_TARGET)
545
+  #define G38_MINIMUM_MOVE 0.0275 // minimum distance in mm that will produce a move (determined using the print statement in check_move)
546
+#endif
547
+
542
 // Moves (or segments) with fewer steps than this will be joined with the next move
548
 // Moves (or segments) with fewer steps than this will be joined with the next move
543
 #define MIN_STEPS_PER_SEGMENT 6
549
 #define MIN_STEPS_PER_SEGMENT 6
544
 
550
 

+ 6
- 0
Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h View File

534
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
534
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
535
 //#define BEZIER_CURVE_SUPPORT
535
 //#define BEZIER_CURVE_SUPPORT
536
 
536
 
537
+// G38.2 and G38.3 Probe Target
538
+//#define G38_PROBE_TARGET
539
+#if ENABLED(G38_PROBE_TARGET)
540
+  #define G38_MINIMUM_MOVE 0.0275 // minimum distance in mm that will produce a move (determined using the print statement in check_move)
541
+#endif
542
+
537
 // Moves (or segments) with fewer steps than this will be joined with the next move
543
 // Moves (or segments) with fewer steps than this will be joined with the next move
538
 #define MIN_STEPS_PER_SEGMENT 6
544
 #define MIN_STEPS_PER_SEGMENT 6
539
 
545
 

+ 6
- 0
Marlin/example_configurations/makibox/Configuration_adv.h View File

532
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
532
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
533
 //#define BEZIER_CURVE_SUPPORT
533
 //#define BEZIER_CURVE_SUPPORT
534
 
534
 
535
+// G38.2 and G38.3 Probe Target
536
+//#define G38_PROBE_TARGET
537
+#if ENABLED(G38_PROBE_TARGET)
538
+  #define G38_MINIMUM_MOVE 0.0275 // minimum distance in mm that will produce a move (determined using the print statement in check_move)
539
+#endif
540
+
535
 // Moves (or segments) with fewer steps than this will be joined with the next move
541
 // Moves (or segments) with fewer steps than this will be joined with the next move
536
 #define MIN_STEPS_PER_SEGMENT 6
542
 #define MIN_STEPS_PER_SEGMENT 6
537
 
543
 

+ 6
- 0
Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h View File

532
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
532
 // Support for G5 with XYZE destination and IJPQ offsets. Requires ~2666 bytes.
533
 //#define BEZIER_CURVE_SUPPORT
533
 //#define BEZIER_CURVE_SUPPORT
534
 
534
 
535
+// G38.2 and G38.3 Probe Target
536
+//#define G38_PROBE_TARGET
537
+#if ENABLED(G38_PROBE_TARGET)
538
+  #define G38_MINIMUM_MOVE 0.0275 // minimum distance in mm that will produce a move (determined using the print statement in check_move)
539
+#endif
540
+
535
 // Moves (or segments) with fewer steps than this will be joined with the next move
541
 // Moves (or segments) with fewer steps than this will be joined with the next move
536
 #define MIN_STEPS_PER_SEGMENT 6
542
 #define MIN_STEPS_PER_SEGMENT 6
537
 
543
 

Loading…
Cancel
Save