Browse Source

Fix issues #1248, #1240

- Fixed issue when BAL area probing is shorter than it should be for
grid probing
- Warning when BAL activated with Delta Kinematics
- Fix XY_TRAVEL_SPEED when homing Z axis
alexborro 9 years ago
parent
commit
3afe66bb0c

+ 23
- 0
Marlin/Configuration.h View File

@@ -431,6 +431,29 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
431 431
 
432 432
   #endif
433 433
 
434
+  #ifdef AUTO_BED_LEVELING_GRID	// Check if Probe_Offset * Grid Points is greater than Probing Range
435
+    #if X_PROBE_OFFSET_FROM_EXTRUDER < 0
436
+      #if (-(X_PROBE_OFFSET_FROM_EXTRUDER * AUTO_BED_LEVELING_GRID_POINTS) >= (RIGHT_PROBE_BED_POSITION - LEFT_PROBE_BED_POSITION))
437
+	     #error "The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
438
+	  #endif
439
+	#else
440
+      #if ((X_PROBE_OFFSET_FROM_EXTRUDER * AUTO_BED_LEVELING_GRID_POINTS) >= (RIGHT_PROBE_BED_POSITION - LEFT_PROBE_BED_POSITION))
441
+	     #error "The X axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
442
+	  #endif
443
+	#endif
444
+    #if Y_PROBE_OFFSET_FROM_EXTRUDER < 0
445
+      #if (-(Y_PROBE_OFFSET_FROM_EXTRUDER * AUTO_BED_LEVELING_GRID_POINTS) >= (BACK_PROBE_BED_POSITION - FRONT_PROBE_BED_POSITION))
446
+	     #error "The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
447
+	  #endif
448
+	#else
449
+      #if ((Y_PROBE_OFFSET_FROM_EXTRUDER * AUTO_BED_LEVELING_GRID_POINTS) >= (BACK_PROBE_BED_POSITION - FRONT_PROBE_BED_POSITION))
450
+	     #error "The Y axis probing range is not enough to fit all the points defined in AUTO_BED_LEVELING_GRID_POINTS"
451
+	  #endif
452
+	#endif
453
+
454
+	
455
+  #endif
456
+  
434 457
 #endif // ENABLE_AUTO_BED_LEVELING
435 458
 
436 459
 

+ 5
- 0
Marlin/Configuration_adv.h View File

@@ -455,6 +455,11 @@ const unsigned int dropsegments=5; //everything with less than this number of st
455 455
 //===========================================================================
456 456
 //=============================  Define Defines  ============================
457 457
 //===========================================================================
458
+
459
+#if defined (ENABLE_AUTO_BED_LEVELING) && defined (DELTA)
460
+  #error "Bed Auto Leveling is still not compatible with Delta Kinematics."
461
+#endif
462
+
458 463
 #if EXTRUDERS > 1 && defined TEMP_SENSOR_1_AS_REDUNDANT
459 464
   #error "You cannot use TEMP_SENSOR_1_AS_REDUNDANT if EXTRUDERS > 1"
460 465
 #endif

+ 1
- 1
Marlin/Marlin_main.cpp View File

@@ -1571,7 +1571,7 @@ void process_commands()
1571 1571
             destination[X_AXIS] = round(Z_SAFE_HOMING_X_POINT - X_PROBE_OFFSET_FROM_EXTRUDER);
1572 1572
             destination[Y_AXIS] = round(Z_SAFE_HOMING_Y_POINT - Y_PROBE_OFFSET_FROM_EXTRUDER);
1573 1573
             destination[Z_AXIS] = Z_RAISE_BEFORE_HOMING * home_dir(Z_AXIS) * (-1);    // Set destination away from bed
1574
-            feedrate = XY_TRAVEL_SPEED;
1574
+            feedrate = XY_TRAVEL_SPEED/60;
1575 1575
             current_position[Z_AXIS] = 0;
1576 1576
 
1577 1577
             plan_set_position(current_position[X_AXIS], current_position[Y_AXIS], current_position[Z_AXIS], current_position[E_AXIS]);

+ 1
- 92
Marlin/example_configurations/delta/Configuration.h View File

@@ -281,9 +281,6 @@ your extruder heater takes 2 minutes to hit the target on heating.
281 281
 //=============================Mechanical Settings===========================
282 282
 //===========================================================================
283 283
 
284
-// Uncomment the following line to enable CoreXY kinematics
285
-// #define COREXY
286
-
287 284
 // coarse Endstop Settings
288 285
 #define ENDSTOPPULLUPS // Comment this out (using // at the start of the line) to disable the endstop pullup resistors
289 286
 
@@ -364,97 +361,9 @@ const bool Z_MAX_ENDSTOP_INVERTING = true; // set to true to invert the logic of
364 361
 #define Y_MAX_LENGTH (Y_MAX_POS - Y_MIN_POS)
365 362
 #define Z_MAX_LENGTH (Z_MAX_POS - Z_MIN_POS)
366 363
 //============================= Bed Auto Leveling ===========================
364
+//Bed Auto Leveling is still not compatible with Delta Kinematics
367 365
 
368
-//#define ENABLE_AUTO_BED_LEVELING // Delete the comment to enable (remove // at the start of the line)
369
-#define Z_PROBE_REPEATABILITY_TEST  // If not commented out, Z-Probe Repeatability test will be included if Auto Bed Leveling is Enabled.
370
-
371
-#ifdef ENABLE_AUTO_BED_LEVELING
372
-
373
-// There are 2 different ways to pick the X and Y locations to probe:
374
-
375
-//  - "grid" mode
376
-//    Probe every point in a rectangular grid
377
-//    You must specify the rectangle, and the density of sample points
378
-//    This mode is preferred because there are more measurements.
379
-//    It used to be called ACCURATE_BED_LEVELING but "grid" is more descriptive
380
-
381
-//  - "3-point" mode
382
-//    Probe 3 arbitrary points on the bed (that aren't colinear)
383
-//    You must specify the X & Y coordinates of all 3 points
384
-
385
-  #define AUTO_BED_LEVELING_GRID
386
-  // with AUTO_BED_LEVELING_GRID, the bed is sampled in a
387
-  // AUTO_BED_LEVELING_GRID_POINTSxAUTO_BED_LEVELING_GRID_POINTS grid
388
-  // and least squares solution is calculated
389
-  // Note: this feature occupies 10'206 byte
390
-  #ifdef AUTO_BED_LEVELING_GRID
391
-
392
-    // set the rectangle in which to probe
393
-    #define LEFT_PROBE_BED_POSITION 15
394
-    #define RIGHT_PROBE_BED_POSITION 170
395
-    #define BACK_PROBE_BED_POSITION 180
396
-    #define FRONT_PROBE_BED_POSITION 20
397
-
398
-     // set the number of grid points per dimension
399
-     // I wouldn't see a reason to go above 3 (=9 probing points on the bed)
400
-    #define AUTO_BED_LEVELING_GRID_POINTS 2
401
-
402
-
403
-  #else  // not AUTO_BED_LEVELING_GRID
404
-    // with no grid, just probe 3 arbitrary points.  A simple cross-product
405
-    // is used to esimate the plane of the print bed
406
-
407
-      #define ABL_PROBE_PT_1_X 15
408
-      #define ABL_PROBE_PT_1_Y 180
409
-      #define ABL_PROBE_PT_2_X 15
410
-      #define ABL_PROBE_PT_2_Y 20
411
-      #define ABL_PROBE_PT_3_X 170
412
-      #define ABL_PROBE_PT_3_Y 20
413
-
414
-  #endif // AUTO_BED_LEVELING_GRID
415
-
416
-
417
-  // these are the offsets to the probe relative to the extruder tip (Hotend - Probe)
418
-  #define X_PROBE_OFFSET_FROM_EXTRUDER -25
419
-  #define Y_PROBE_OFFSET_FROM_EXTRUDER -29
420
-  #define Z_PROBE_OFFSET_FROM_EXTRUDER -12.35
421
-
422
-  #define Z_RAISE_BEFORE_HOMING 4       // (in mm) Raise Z before homing (G28) for Probe Clearance.
423
-                                        // Be sure you have this distance over your Z_MAX_POS in case
424
-
425
-  #define XY_TRAVEL_SPEED 8000         // X and Y axis travel speed between probes, in mm/min
426
-
427
-  #define Z_RAISE_BEFORE_PROBING 15    //How much the extruder will be raised before traveling to the first probing point.
428
-  #define Z_RAISE_BETWEEN_PROBINGS 5  //How much the extruder will be raised when traveling from between next probing points
429
-
430
-  //#define Z_PROBE_SLED // turn on if you have a z-probe mounted on a sled like those designed by Charles Bell
431
-  //#define SLED_DOCKING_OFFSET 5 // the extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you'd like.
432
-
433
-  //If defined, the Probe servo will be turned on only during movement and then turned off to avoid jerk
434
-  //The value is the delay to turn the servo off after powered on - depends on the servo speed; 300ms is good value, but you can try lower it.
435
-  // You MUST HAVE the SERVO_ENDSTOPS defined to use here a value higher than zero otherwise your code will not compile.
436
-
437
-//  #define PROBE_SERVO_DEACTIVATION_DELAY 300
438
-
439
-
440
-//If you have enabled the Bed Auto Leveling and are using the same Z Probe for Z Homing,
441
-//it is highly recommended you let this Z_SAFE_HOMING enabled!!!
442
-
443
-  #define Z_SAFE_HOMING   // This feature is meant to avoid Z homing with probe outside the bed area.
444
-                          // When defined, it will:
445
-                          // - Allow Z homing only after X and Y homing AND stepper drivers still enabled
446
-                          // - If stepper drivers timeout, it will need X and Y homing again before Z homing
447
-                          // - Position the probe in a defined XY point before Z Homing when homing all axis (G28)
448
-                          // - Block Z homing only when the probe is outside bed area.
449
-
450
-  #ifdef Z_SAFE_HOMING
451
-
452
-    #define Z_SAFE_HOMING_X_POINT (X_MAX_LENGTH/2)    // X point for Z homing when homing all axis (G28)
453
-    #define Z_SAFE_HOMING_Y_POINT (Y_MAX_LENGTH/2)    // Y point for Z homing when homing all axis (G28)
454
-
455
-  #endif
456 366
 
457
-#endif // ENABLE_AUTO_BED_LEVELING
458 367
 
459 368
 
460 369
 // The position of the homing switches

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

@@ -450,6 +450,11 @@ const unsigned int dropsegments=5; //everything with less than this number of st
450 450
 //===========================================================================
451 451
 //=============================  Define Defines  ============================
452 452
 //===========================================================================
453
+
454
+#if defined (ENABLE_AUTO_BED_LEVELING) && defined (DELTA)
455
+  #error "Bed Auto Leveling is still not compatible with Delta Kinematics."
456
+#endif  
457
+
453 458
 #if EXTRUDERS > 1 && defined TEMP_SENSOR_1_AS_REDUNDANT
454 459
   #error "You cannot use TEMP_SENSOR_1_AS_REDUNDANT if EXTRUDERS > 1"
455 460
 #endif

Loading…
Cancel
Save