Browse Source

Merge pull request #8318 from thinkyhead/bf1_sprintf_p_fix

[1.1] Patch G33 misuse of PROBE_MANUALLY
Scott Lahteine 7 years ago
parent
commit
50a1352f7f
No account linked to committer's email address
6 changed files with 635 additions and 616 deletions
  1. 0
    7
      Marlin/Conditionals_LCD.h
  2. 25
    6
      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 View File

454
   #define HAS_Z_SERVO_ENDSTOP (defined(Z_ENDSTOP_SERVO_NR) && Z_ENDSTOP_SERVO_NR >= 0)
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
    * Set a flag for any enabled probe
457
    * Set a flag for any enabled probe
465
    */
458
    */
466
   #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))
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))

+ 25
- 6
Marlin/Conditionals_post.h View File

855
   #define HEATER_IDLE_HANDLER (ENABLED(ADVANCED_PAUSE_FEATURE) || ENABLED(PROBING_HEATERS_OFF))
855
   #define HEATER_IDLE_HANDLER (ENABLED(ADVANCED_PAUSE_FEATURE) || ENABLED(PROBING_HEATERS_OFF))
856
 
856
 
857
   /**
857
   /**
858
+   * Only constrain Z on DELTA / SCARA machines
859
+   */
860
+  #if IS_KINEMATIC
861
+    #undef MIN_SOFTWARE_ENDSTOP_X
862
+    #undef MIN_SOFTWARE_ENDSTOP_Y
863
+    #undef MAX_SOFTWARE_ENDSTOP_X
864
+    #undef MAX_SOFTWARE_ENDSTOP_Y
865
+  #endif
866
+
867
+  /**
858
    * Delta radius/rod trimmers/angle trimmers
868
    * Delta radius/rod trimmers/angle trimmers
859
    */
869
    */
860
   #if ENABLED(DELTA)
870
   #if ENABLED(DELTA)
871
+    #ifndef DELTA_PROBEABLE_RADIUS
872
+      #define DELTA_PROBEABLE_RADIUS DELTA_PRINTABLE_RADIUS
873
+    #endif
861
     #ifndef DELTA_CALIBRATION_RADIUS
874
     #ifndef DELTA_CALIBRATION_RADIUS
862
       #define DELTA_CALIBRATION_RADIUS DELTA_PRINTABLE_RADIUS - 10
875
       #define DELTA_CALIBRATION_RADIUS DELTA_PRINTABLE_RADIUS - 10
863
     #endif
876
     #endif
878
   /**
891
   /**
879
    * Set granular options based on the specific type of leveling
892
    * Set granular options based on the specific type of leveling
880
    */
893
    */
881
-
882
   #define UBL_DELTA  (ENABLED(AUTO_BED_LEVELING_UBL) && (ENABLED(DELTA) || ENABLED(UBL_GRANULAR_SEGMENTATION_FOR_CARTESIAN)))
894
   #define UBL_DELTA  (ENABLED(AUTO_BED_LEVELING_UBL) && (ENABLED(DELTA) || ENABLED(UBL_GRANULAR_SEGMENTATION_FOR_CARTESIAN)))
883
   #define ABL_PLANAR (ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_3POINT))
895
   #define ABL_PLANAR (ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_3POINT))
884
   #define ABL_GRID   (ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR))
896
   #define ABL_GRID   (ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR))
978
   #endif
990
   #endif
979
 
991
 
980
   /**
992
   /**
993
+   * VIKI2, miniVIKI, and AZSMZ_12864 require DOGLCD_SCK and DOGLCD_MOSI to be defined.
994
+   */
995
+  #if ENABLED(VIKI2) || ENABLED(miniVIKI) || ENABLED(AZSMZ_12864)
996
+    #ifndef DOGLCD_SCK
997
+      #define DOGLCD_SCK  SCK_PIN
998
+    #endif
999
+    #ifndef DOGLCD_MOSI
1000
+      #define DOGLCD_MOSI MOSI_PIN
1001
+    #endif
1002
+  #endif
1003
+
1004
+  /**
981
    * Z_HOMING_HEIGHT / Z_CLEARANCE_BETWEEN_PROBES
1005
    * Z_HOMING_HEIGHT / Z_CLEARANCE_BETWEEN_PROBES
982
    */
1006
    */
983
   #ifndef Z_HOMING_HEIGHT
1007
   #ifndef Z_HOMING_HEIGHT
1038
   // Add commands that need sub-codes to this list
1062
   // Add commands that need sub-codes to this list
1039
   #define USE_GCODE_SUBCODES ENABLED(G38_PROBE_TARGET) || ENABLED(CNC_COORDINATE_SYSTEMS)
1063
   #define USE_GCODE_SUBCODES ENABLED(G38_PROBE_TARGET) || ENABLED(CNC_COORDINATE_SYSTEMS)
1040
 
1064
 
1041
-  // MESH_BED_LEVELING overrides PROBE_MANUALLY
1042
-  #if ENABLED(MESH_BED_LEVELING)
1043
-    #undef PROBE_MANUALLY
1044
-  #endif
1045
-
1046
   // Parking Extruder
1065
   // Parking Extruder
1047
   #if ENABLED(PARKING_EXTRUDER)
1066
   #if ENABLED(PARKING_EXTRUDER)
1048
     #ifndef PARKING_EXTRUDER_GRAB_DISTANCE
1067
     #ifndef PARKING_EXTRUDER_GRAB_DISTANCE

+ 566
- 570
Marlin/Marlin_main.cpp
File diff suppressed because it is too large
View File


+ 18
- 14
Marlin/SanityCheck.h View File

567
     #error "You probably want to use Max Endstops for DELTA!"
567
     #error "You probably want to use Max Endstops for DELTA!"
568
   #elif ENABLED(ENABLE_LEVELING_FADE_HEIGHT) && DISABLED(AUTO_BED_LEVELING_BILINEAR) && !UBL_DELTA
568
   #elif ENABLED(ENABLE_LEVELING_FADE_HEIGHT) && DISABLED(AUTO_BED_LEVELING_BILINEAR) && !UBL_DELTA
569
     #error "ENABLE_LEVELING_FADE_HEIGHT on DELTA requires AUTO_BED_LEVELING_BILINEAR or AUTO_BED_LEVELING_UBL."
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
   #elif ABL_GRID
572
   #elif ABL_GRID
575
     #if (GRID_MAX_POINTS_X & 1) == 0 || (GRID_MAX_POINTS_Y & 1) == 0
573
     #if (GRID_MAX_POINTS_X & 1) == 0 || (GRID_MAX_POINTS_Y & 1) == 0
576
       #error "DELTA requires GRID_MAX_POINTS_X and GRID_MAX_POINTS_Y to be odd numbers."
574
       #error "DELTA requires GRID_MAX_POINTS_X and GRID_MAX_POINTS_Y to be odd numbers."
612
   , "Please enable only one probe option: PROBE_MANUALLY, FIX_MOUNTED_PROBE, BLTOUCH, SOLENOID_PROBE, Z_PROBE_ALLEN_KEY, Z_PROBE_SLED, or Z Servo."
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
    * Z_PROBE_SLED is incompatible with DELTA
616
    * Z_PROBE_SLED is incompatible with DELTA
660
     #if !HAS_Z_MIN_PROBE_PIN
658
     #if !HAS_Z_MIN_PROBE_PIN
661
       #error "Z_MIN_PROBE_ENDSTOP requires the Z_MIN_PROBE_PIN to be defined."
659
       #error "Z_MIN_PROBE_ENDSTOP requires the Z_MIN_PROBE_PIN to be defined."
662
     #endif
660
     #endif
663
-  #elif DISABLED(PROBE_MANUALLY)
661
+  #else
664
     #error "You must enable either Z_MIN_PROBE_ENDSTOP or Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN to use a probe."
662
     #error "You must enable either Z_MIN_PROBE_ENDSTOP or Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN to use a probe."
665
   #endif
663
   #endif
666
 
664
 
667
   /**
665
   /**
668
    * Make sure Z raise values are set
666
    * Make sure Z raise values are set
669
    */
667
    */
670
-  #if !defined(Z_CLEARANCE_DEPLOY_PROBE)
668
+  #ifndef Z_CLEARANCE_DEPLOY_PROBE
671
     #error "You must define Z_CLEARANCE_DEPLOY_PROBE in your configuration."
669
     #error "You must define Z_CLEARANCE_DEPLOY_PROBE in your configuration."
672
   #elif !defined(Z_CLEARANCE_BETWEEN_PROBES)
670
   #elif !defined(Z_CLEARANCE_BETWEEN_PROBES)
673
     #error "You must define Z_CLEARANCE_BETWEEN_PROBES in your configuration."
671
     #error "You must define Z_CLEARANCE_BETWEEN_PROBES in your configuration."
682
   /**
680
   /**
683
    * Require some kind of probe for bed leveling and probe testing
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
     #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."
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
   #endif
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
 #endif
691
 #endif
694
 
692
 
695
 /**
693
 /**
724
    * Unified Bed Leveling
722
    * Unified Bed Leveling
725
    */
723
    */
726
 
724
 
725
+  // Hide PROBE_MANUALLY from the rest of the code
726
+  #undef PROBE_MANUALLY
727
+
727
   #if IS_SCARA
728
   #if IS_SCARA
728
     #error "AUTO_BED_LEVELING_UBL does not yet support SCARA printers."
729
     #error "AUTO_BED_LEVELING_UBL does not yet support SCARA printers."
729
   #elif DISABLED(EEPROM_SETTINGS)
730
   #elif DISABLED(EEPROM_SETTINGS)
739
     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
     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
   #endif
741
   #endif
741
 
742
 
742
-#elif HAS_ABL
743
+#elif OLDSCHOOL_ABL
743
 
744
 
744
   /**
745
   /**
745
    * Auto Bed Leveling
746
    * Auto Bed Leveling
788
 
789
 
789
 #elif ENABLED(MESH_BED_LEVELING)
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
    * Mesh Bed Leveling
796
    * Mesh Bed Leveling
793
    */
797
    */
806
 #if ENABLED(LCD_BED_LEVELING)
810
 #if ENABLED(LCD_BED_LEVELING)
807
   #if DISABLED(ULTIPANEL)
811
   #if DISABLED(ULTIPANEL)
808
     #error "LCD_BED_LEVELING requires an LCD controller."
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
   #endif
815
   #endif
812
 #endif
816
 #endif
813
 
817
 

+ 25
- 18
Marlin/ultralcd.cpp View File

2682
 
2682
 
2683
   float move_menu_scale;
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
     void lcd_move_z();
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
     void _man_probe_pt(const float rx, const float ry) {
2689
     void _man_probe_pt(const float rx, const float ry) {
2707
       #if HAS_LEVELING
2690
       #if HAS_LEVELING
2719
       lcd_goto_screen(lcd_move_z);
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
     float lcd_probe_pt(const float &rx, const float &ry) {
2709
     float lcd_probe_pt(const float &rx, const float &ry) {
2723
       _man_probe_pt(rx, ry);
2710
       _man_probe_pt(rx, ry);
2724
       KEEPALIVE_STATE(PAUSED_FOR_USER);
2711
       KEEPALIVE_STATE(PAUSED_FOR_USER);
2730
       return current_position[Z_AXIS];
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
     void _goto_tower_x() { _man_probe_pt(cos(RADIANS(210)) * delta_calibration_radius, sin(RADIANS(210)) * delta_calibration_radius); }
2740
     void _goto_tower_x() { _man_probe_pt(cos(RADIANS(210)) * delta_calibration_radius, sin(RADIANS(210)) * delta_calibration_radius); }
2734
     void _goto_tower_y() { _man_probe_pt(cos(RADIANS(330)) * delta_calibration_radius, sin(RADIANS(330)) * delta_calibration_radius); }
2741
     void _goto_tower_y() { _man_probe_pt(cos(RADIANS(330)) * delta_calibration_radius, sin(RADIANS(330)) * delta_calibration_radius); }
2735
     void _goto_tower_z() { _man_probe_pt(cos(RADIANS( 90)) * delta_calibration_radius, sin(RADIANS( 90)) * delta_calibration_radius); }
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 View File

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

Loading…
Cancel
Save