Bläddra i källkod

Patch G33 misuse of PROBE_MANUALLY

Scott Lahteine 6 år sedan
förälder
incheckning
1d0739d6d1
6 ändrade filer med 610 tillägg och 615 borttagningar
  1. 0
    7
      Marlin/Conditionals_LCD.h
  2. 0
    5
      Marlin/Conditionals_post.h
  3. 566
    570
      Marlin/Marlin_main.cpp
  4. 18
    14
      Marlin/SanityCheck.h
  5. 25
    18
      Marlin/ultralcd.cpp
  6. 1
    1
      Marlin/ultralcd.h

+ 0
- 7
Marlin/Conditionals_LCD.h Visa fil

@@ -454,13 +454,6 @@
454 454
   #define HAS_Z_SERVO_ENDSTOP (defined(Z_ENDSTOP_SERVO_NR) && Z_ENDSTOP_SERVO_NR >= 0)
455 455
 
456 456
   /**
457
-   * UBL has its own manual probing, so this just causes trouble.
458
-   */
459
-  #if ENABLED(AUTO_BED_LEVELING_UBL)
460
-    #undef PROBE_MANUALLY
461
-  #endif
462
-
463
-  /**
464 457
    * Set a flag for any enabled probe
465 458
    */
466 459
   #define PROBE_SELECTED (ENABLED(PROBE_MANUALLY) || ENABLED(FIX_MOUNTED_PROBE) || ENABLED(Z_PROBE_ALLEN_KEY) || HAS_Z_SERVO_ENDSTOP || ENABLED(Z_PROBE_SLED) || ENABLED(SOLENOID_PROBE))

+ 0
- 5
Marlin/Conditionals_post.h Visa fil

@@ -1062,11 +1062,6 @@
1062 1062
   // Add commands that need sub-codes to this list
1063 1063
   #define USE_GCODE_SUBCODES ENABLED(G38_PROBE_TARGET) || ENABLED(CNC_COORDINATE_SYSTEMS)
1064 1064
 
1065
-  // MESH_BED_LEVELING overrides PROBE_MANUALLY
1066
-  #if ENABLED(MESH_BED_LEVELING)
1067
-    #undef PROBE_MANUALLY
1068
-  #endif
1069
-
1070 1065
   // Parking Extruder
1071 1066
   #if ENABLED(PARKING_EXTRUDER)
1072 1067
     #ifndef PARKING_EXTRUDER_GRAB_DISTANCE

+ 566
- 570
Marlin/Marlin_main.cpp
Filskillnaden har hållits tillbaka eftersom den är för stor
Visa fil


+ 18
- 14
Marlin/SanityCheck.h Visa fil

@@ -567,10 +567,8 @@ static_assert(1 >= 0
567 567
     #error "You probably want to use Max Endstops for DELTA!"
568 568
   #elif ENABLED(ENABLE_LEVELING_FADE_HEIGHT) && DISABLED(AUTO_BED_LEVELING_BILINEAR) && !UBL_DELTA
569 569
     #error "ENABLE_LEVELING_FADE_HEIGHT on DELTA requires AUTO_BED_LEVELING_BILINEAR or AUTO_BED_LEVELING_UBL."
570
-  #elif ENABLED(DELTA_AUTO_CALIBRATION) && !PROBE_SELECTED
571
-    #error "DELTA_AUTO_CALIBRATION requires a probe: PROBE_MANUALLY, FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, Z Servo."
572
-  #elif ENABLED(DELTA_AUTO_CALIBRATION) && ENABLED(PROBE_MANUALLY) && DISABLED(ULTIPANEL)
573
-    #error "DELTA_AUTO_CALIBRATION requires an LCD controller with PROBE_MANUALLY."
570
+  #elif ENABLED(DELTA_AUTO_CALIBRATION) && !(HAS_BED_PROBE || ENABLED(ULTIPANEL))
571
+    #error "DELTA_AUTO_CALIBRATION requires either a probe or an LCD Controller."
574 572
   #elif ABL_GRID
575 573
     #if (GRID_MAX_POINTS_X & 1) == 0 || (GRID_MAX_POINTS_Y & 1) == 0
576 574
       #error "DELTA requires GRID_MAX_POINTS_X and GRID_MAX_POINTS_Y to be odd numbers."
@@ -612,7 +610,7 @@ static_assert(1 >= 0
612 610
   , "Please enable only one probe option: PROBE_MANUALLY, FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or Z Servo."
613 611
 );
614 612
 
615
-#if PROBE_SELECTED
613
+#if HAS_BED_PROBE
616 614
 
617 615
   /**
618 616
    * Z_PROBE_SLED is incompatible with DELTA
@@ -660,14 +658,14 @@ static_assert(1 >= 0
660 658
     #if !HAS_Z_MIN_PROBE_PIN
661 659
       #error "Z_MIN_PROBE_ENDSTOP requires the Z_MIN_PROBE_PIN to be defined."
662 660
     #endif
663
-  #elif DISABLED(PROBE_MANUALLY)
661
+  #else
664 662
     #error "You must enable either Z_MIN_PROBE_ENDSTOP or Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN to use a probe."
665 663
   #endif
666 664
 
667 665
   /**
668 666
    * Make sure Z raise values are set
669 667
    */
670
-  #if !defined(Z_CLEARANCE_DEPLOY_PROBE)
668
+  #ifndef Z_CLEARANCE_DEPLOY_PROBE
671 669
     #error "You must define Z_CLEARANCE_DEPLOY_PROBE in your configuration."
672 670
   #elif !defined(Z_CLEARANCE_BETWEEN_PROBES)
673 671
     #error "You must define Z_CLEARANCE_BETWEEN_PROBES in your configuration."
@@ -682,14 +680,14 @@ static_assert(1 >= 0
682 680
   /**
683 681
    * Require some kind of probe for bed leveling and probe testing
684 682
    */
685
-  #if OLDSCHOOL_ABL
683
+  #if OLDSCHOOL_ABL && !PROBE_SELECTED
686 684
     #error "Auto Bed Leveling requires one of these: PROBE_MANUALLY, FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or a Z Servo."
687 685
   #endif
688 686
 
689
-#endif
687
+  #if ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST)
688
+    #error "Z_MIN_PROBE_REPEATABILITY_TEST requires a probe: FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or Z Servo."
689
+  #endif
690 690
 
691
-#if ENABLED(Z_MIN_PROBE_REPEATABILITY_TEST) && !HAS_BED_PROBE
692
-  #error "Z_MIN_PROBE_REPEATABILITY_TEST requires a probe: FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or Z Servo."
693 691
 #endif
694 692
 
695 693
 /**
@@ -724,6 +722,9 @@ static_assert(1 >= 0
724 722
    * Unified Bed Leveling
725 723
    */
726 724
 
725
+  // Hide PROBE_MANUALLY from the rest of the code
726
+  #undef PROBE_MANUALLY
727
+
727 728
   #if IS_SCARA
728 729
     #error "AUTO_BED_LEVELING_UBL does not yet support SCARA printers."
729 730
   #elif DISABLED(EEPROM_SETTINGS)
@@ -739,7 +740,7 @@ static_assert(1 >= 0
739 740
     static_assert(WITHIN(UBL_PROBE_PT_3_Y, MIN_PROBE_Y, MAX_PROBE_Y), "UBL_PROBE_PT_3_Y can't be reached by the Z probe.");
740 741
   #endif
741 742
 
742
-#elif HAS_ABL
743
+#elif OLDSCHOOL_ABL
743 744
 
744 745
   /**
745 746
    * Auto Bed Leveling
@@ -788,6 +789,9 @@ static_assert(1 >= 0
788 789
 
789 790
 #elif ENABLED(MESH_BED_LEVELING)
790 791
 
792
+  // Hide PROBE_MANUALLY from the rest of the code
793
+  #undef PROBE_MANUALLY
794
+
791 795
   /**
792 796
    * Mesh Bed Leveling
793 797
    */
@@ -806,8 +810,8 @@ static_assert(1 >= 0
806 810
 #if ENABLED(LCD_BED_LEVELING)
807 811
   #if DISABLED(ULTIPANEL)
808 812
     #error "LCD_BED_LEVELING requires an LCD controller."
809
-  #elif DISABLED(MESH_BED_LEVELING) && !(HAS_ABL && ENABLED(PROBE_MANUALLY))
810
-    #error "LCD_BED_LEVELING requires MESH_BED_LEVELING or PROBE_MANUALLY with auto bed leveling enabled."
813
+  #elif !(ENABLED(MESH_BED_LEVELING) || (OLDSCHOOL_ABL && ENABLED(PROBE_MANUALLY)))
814
+    #error "LCD_BED_LEVELING requires MESH_BED_LEVELING or ABL with PROBE_MANUALLY."
811 815
   #endif
812 816
 #endif
813 817
 

+ 25
- 18
Marlin/ultralcd.cpp Visa fil

@@ -2682,26 +2682,9 @@ void kill_screen(const char* lcd_msg) {
2682 2682
 
2683 2683
   float move_menu_scale;
2684 2684
 
2685
-  #if ENABLED(DELTA_CALIBRATION_MENU)
2685
+  #if ENABLED(DELTA_CALIBRATION_MENU) || (ENABLED(DELTA_AUTO_CALIBRATION) && !HAS_BED_PROBE)
2686 2686
 
2687 2687
     void lcd_move_z();
2688
-    void lcd_delta_calibrate_menu();
2689
-
2690
-    void _lcd_calibrate_homing() {
2691
-      if (lcdDrawUpdate) lcd_implementation_drawmenu_static(LCD_HEIGHT >= 4 ? 1 : 0, PSTR(MSG_LEVEL_BED_HOMING));
2692
-      lcdDrawUpdate = LCDVIEW_CALL_REDRAW_NEXT;
2693
-      if (axis_homed[X_AXIS] && axis_homed[Y_AXIS] && axis_homed[Z_AXIS])
2694
-        lcd_goto_previous_menu();
2695
-    }
2696
-
2697
-    void _lcd_delta_calibrate_home() {
2698
-      #if HAS_LEVELING
2699
-        reset_bed_level(); // After calibration bed-level data is no longer valid
2700
-      #endif
2701
-
2702
-      enqueue_and_echo_commands_P(PSTR("G28"));
2703
-      lcd_goto_screen(_lcd_calibrate_homing);
2704
-    }
2705 2688
 
2706 2689
     void _man_probe_pt(const float rx, const float ry) {
2707 2690
       #if HAS_LEVELING
@@ -2719,6 +2702,10 @@ void kill_screen(const char* lcd_msg) {
2719 2702
       lcd_goto_screen(lcd_move_z);
2720 2703
     }
2721 2704
 
2705
+  #endif // DELTA_CALIBRATION_MENU || (DELTA_AUTO_CALIBRATION && !HAS_BED_PROBE)
2706
+
2707
+  #if ENABLED(DELTA_AUTO_CALIBRATION) && !HAS_BED_PROBE
2708
+
2722 2709
     float lcd_probe_pt(const float &rx, const float &ry) {
2723 2710
       _man_probe_pt(rx, ry);
2724 2711
       KEEPALIVE_STATE(PAUSED_FOR_USER);
@@ -2730,6 +2717,26 @@ void kill_screen(const char* lcd_msg) {
2730 2717
       return current_position[Z_AXIS];
2731 2718
     }
2732 2719
 
2720
+  #endif // DELTA_AUTO_CALIBRATION && !HAS_BED_PROBE
2721
+
2722
+  #if ENABLED(DELTA_CALIBRATION_MENU)
2723
+
2724
+    void _lcd_calibrate_homing() {
2725
+      if (lcdDrawUpdate) lcd_implementation_drawmenu_static(LCD_HEIGHT >= 4 ? 1 : 0, PSTR(MSG_LEVEL_BED_HOMING));
2726
+      lcdDrawUpdate = LCDVIEW_CALL_REDRAW_NEXT;
2727
+      if (axis_homed[X_AXIS] && axis_homed[Y_AXIS] && axis_homed[Z_AXIS])
2728
+        lcd_goto_previous_menu();
2729
+    }
2730
+
2731
+    void _lcd_delta_calibrate_home() {
2732
+      #if HAS_LEVELING
2733
+        reset_bed_level(); // After calibration bed-level data is no longer valid
2734
+      #endif
2735
+
2736
+      enqueue_and_echo_commands_P(PSTR("G28"));
2737
+      lcd_goto_screen(_lcd_calibrate_homing);
2738
+    }
2739
+
2733 2740
     void _goto_tower_x() { _man_probe_pt(cos(RADIANS(210)) * delta_calibration_radius, sin(RADIANS(210)) * delta_calibration_radius); }
2734 2741
     void _goto_tower_y() { _man_probe_pt(cos(RADIANS(330)) * delta_calibration_radius, sin(RADIANS(330)) * delta_calibration_radius); }
2735 2742
     void _goto_tower_z() { _man_probe_pt(cos(RADIANS( 90)) * delta_calibration_radius, sin(RADIANS( 90)) * delta_calibration_radius); }

+ 1
- 1
Marlin/ultralcd.h Visa fil

@@ -201,7 +201,7 @@ void lcd_reset_status();
201 201
   float lcd_z_offset_edit();
202 202
 #endif
203 203
 
204
-#if ENABLED(DELTA_CALIBRATION_MENU)
204
+#if ENABLED(DELTA_AUTO_CALIBRATION) && !HAS_BED_PROBE
205 205
   float lcd_probe_pt(const float &rx, const float &ry);
206 206
 #endif
207 207
 

Laddar…
Avbryt
Spara