Преглед изворни кода

Auto assign DIAG pins for multi-endstop (#16723)

Scott Lahteine пре 4 година
родитељ
комит
5b12627e14
No account linked to committer's email address

+ 17
- 6
Marlin/src/core/macros.h Прегледај датотеку

@@ -29,12 +29,23 @@
29 29
 
30 30
 #define _AXIS(A) (A##_AXIS)
31 31
 
32
-#define _XMIN_ 100
33
-#define _YMIN_ 200
34
-#define _ZMIN_ 300
35
-#define _XMAX_ 101
36
-#define _YMAX_ 201
37
-#define _ZMAX_ 301
32
+#define _XMIN_   100
33
+#define _YMIN_   200
34
+#define _ZMIN_   300
35
+#define _XMAX_   101
36
+#define _YMAX_   201
37
+#define _ZMAX_   301
38
+#define _XDIAG_  102
39
+#define _YDIAG_  202
40
+#define _ZDIAG_  302
41
+#define _E0DIAG_ 400
42
+#define _E1DIAG_ 401
43
+#define _E2DIAG_ 402
44
+#define _E3DIAG_ 403
45
+#define _E4DIAG_ 404
46
+#define _E5DIAG_ 405
47
+#define _E6DIAG_ 406
48
+#define _E7DIAG_ 407
38 49
 
39 50
 #define _FORCE_INLINE_ __attribute__((__always_inline__)) __inline__
40 51
 #define  FORCE_INLINE  __attribute__((always_inline)) inline

+ 370
- 60
Marlin/src/inc/Conditionals_post.h Прегледај датотеку

@@ -679,48 +679,110 @@
679 679
   #if X_HOME_DIR > 0
680 680
     #if X2_USE_ENDSTOP == _XMIN_
681 681
       #define X2_MAX_ENDSTOP_INVERTING X_MIN_ENDSTOP_INVERTING
682
-      #define X2_MAX_PIN X_MIN_PIN
683 682
     #elif X2_USE_ENDSTOP == _XMAX_
684 683
       #define X2_MAX_ENDSTOP_INVERTING X_MAX_ENDSTOP_INVERTING
685
-      #define X2_MAX_PIN X_MAX_PIN
686 684
     #elif X2_USE_ENDSTOP == _YMIN_
687 685
       #define X2_MAX_ENDSTOP_INVERTING Y_MIN_ENDSTOP_INVERTING
688
-      #define X2_MAX_PIN Y_MIN_PIN
689 686
     #elif X2_USE_ENDSTOP == _YMAX_
690 687
       #define X2_MAX_ENDSTOP_INVERTING Y_MAX_ENDSTOP_INVERTING
691
-      #define X2_MAX_PIN Y_MAX_PIN
692 688
     #elif X2_USE_ENDSTOP == _ZMIN_
693 689
       #define X2_MAX_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
694
-      #define X2_MAX_PIN Z_MIN_PIN
695 690
     #elif X2_USE_ENDSTOP == _ZMAX_
696 691
       #define X2_MAX_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
697
-      #define X2_MAX_PIN Z_MAX_PIN
698 692
     #else
699 693
       #define X2_MAX_ENDSTOP_INVERTING false
700 694
     #endif
695
+    #ifndef X2_MAX_PIN
696
+      #if X2_USE_ENDSTOP == _XMIN_
697
+        #define X2_MAX_PIN X_MIN_PIN
698
+      #elif X2_USE_ENDSTOP == _XMAX_
699
+        #define X2_MAX_PIN X_MAX_PIN
700
+      #elif X2_USE_ENDSTOP == _YMIN_
701
+        #define X2_MAX_PIN Y_MIN_PIN
702
+      #elif X2_USE_ENDSTOP == _YMAX_
703
+        #define X2_MAX_PIN Y_MAX_PIN
704
+      #elif X2_USE_ENDSTOP == _ZMIN_
705
+        #define X2_MAX_PIN Z_MIN_PIN
706
+      #elif X2_USE_ENDSTOP == _ZMAX_
707
+        #define X2_MAX_PIN Z_MAX_PIN
708
+      #elif X2_USE_ENDSTOP == _XDIAG_
709
+        #define X2_MAX_PIN X_DIAG_PIN
710
+      #elif X2_USE_ENDSTOP == _YDIAG_
711
+        #define X2_MAX_PIN Y_DIAG_PIN
712
+      #elif X2_USE_ENDSTOP == _ZDIAG_
713
+        #define X2_MAX_PIN Z_DIAG_PIN
714
+      #elif X2_USE_ENDSTOP == _E0DIAG_
715
+        #define X2_MAX_PIN E0_DIAG_PIN
716
+      #elif X2_USE_ENDSTOP == _E1DIAG_
717
+        #define X2_MAX_PIN E1_DIAG_PIN
718
+      #elif X2_USE_ENDSTOP == _E2DIAG_
719
+        #define X2_MAX_PIN E2_DIAG_PIN
720
+      #elif X2_USE_ENDSTOP == _E3DIAG_
721
+        #define X2_MAX_PIN E3_DIAG_PIN
722
+      #elif X2_USE_ENDSTOP == _E4DIAG_
723
+        #define X2_MAX_PIN E4_DIAG_PIN
724
+      #elif X2_USE_ENDSTOP == _E5DIAG_
725
+        #define X2_MAX_PIN E5_DIAG_PIN
726
+      #elif X2_USE_ENDSTOP == _E6DIAG_
727
+        #define X2_MAX_PIN E6_DIAG_PIN
728
+      #elif X2_USE_ENDSTOP == _E7DIAG_
729
+        #define X2_MAX_PIN E7_DIAG_PIN
730
+      #endif
731
+    #endif
701 732
     #define X2_MIN_ENDSTOP_INVERTING false
702 733
   #else
703 734
     #if X2_USE_ENDSTOP == _XMIN_
704 735
       #define X2_MIN_ENDSTOP_INVERTING X_MIN_ENDSTOP_INVERTING
705
-      #define X2_MIN_PIN X_MIN_PIN
706 736
     #elif X2_USE_ENDSTOP == _XMAX_
707 737
       #define X2_MIN_ENDSTOP_INVERTING X_MAX_ENDSTOP_INVERTING
708
-      #define X2_MIN_PIN X_MAX_PIN
709 738
     #elif X2_USE_ENDSTOP == _YMIN_
710 739
       #define X2_MIN_ENDSTOP_INVERTING Y_MIN_ENDSTOP_INVERTING
711
-      #define X2_MIN_PIN Y_MIN_PIN
712 740
     #elif X2_USE_ENDSTOP == _YMAX_
713 741
       #define X2_MIN_ENDSTOP_INVERTING Y_MAX_ENDSTOP_INVERTING
714
-      #define X2_MIN_PIN Y_MAX_PIN
715 742
     #elif X2_USE_ENDSTOP == _ZMIN_
716 743
       #define X2_MIN_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
717
-      #define X2_MIN_PIN Z_MIN_PIN
718 744
     #elif X2_USE_ENDSTOP == _ZMAX_
719 745
       #define X2_MIN_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
720
-      #define X2_MIN_PIN Z_MAX_PIN
721 746
     #else
722 747
       #define X2_MIN_ENDSTOP_INVERTING false
723 748
     #endif
749
+    #ifndef X2_MIN_PIN
750
+      #if X2_USE_ENDSTOP == _XMIN_
751
+        #define X2_MIN_PIN X_MIN_PIN
752
+      #elif X2_USE_ENDSTOP == _XMAX_
753
+        #define X2_MIN_PIN X_MAX_PIN
754
+      #elif X2_USE_ENDSTOP == _YMIN_
755
+        #define X2_MIN_PIN Y_MIN_PIN
756
+      #elif X2_USE_ENDSTOP == _YMAX_
757
+        #define X2_MIN_PIN Y_MAX_PIN
758
+      #elif X2_USE_ENDSTOP == _ZMIN_
759
+        #define X2_MIN_PIN Z_MIN_PIN
760
+      #elif X2_USE_ENDSTOP == _ZMAX_
761
+        #define X2_MIN_PIN Z_MAX_PIN
762
+      #elif X2_USE_ENDSTOP == _XDIAG_
763
+        #define X2_MIN_PIN X_DIAG_PIN
764
+      #elif X2_USE_ENDSTOP == _YDIAG_
765
+        #define X2_MIN_PIN Y_DIAG_PIN
766
+      #elif X2_USE_ENDSTOP == _ZDIAG_
767
+        #define X2_MIN_PIN Z_DIAG_PIN
768
+      #elif X2_USE_ENDSTOP == _E0DIAG_
769
+        #define X2_MIN_PIN E0_DIAG_PIN
770
+      #elif X2_USE_ENDSTOP == _E1DIAG_
771
+        #define X2_MIN_PIN E1_DIAG_PIN
772
+      #elif X2_USE_ENDSTOP == _E2DIAG_
773
+        #define X2_MIN_PIN E2_DIAG_PIN
774
+      #elif X2_USE_ENDSTOP == _E3DIAG_
775
+        #define X2_MIN_PIN E3_DIAG_PIN
776
+      #elif X2_USE_ENDSTOP == _E4DIAG_
777
+        #define X2_MIN_PIN E4_DIAG_PIN
778
+      #elif X2_USE_ENDSTOP == _E5DIAG_
779
+        #define X2_MIN_PIN E5_DIAG_PIN
780
+      #elif X2_USE_ENDSTOP == _E6DIAG_
781
+        #define X2_MIN_PIN E6_DIAG_PIN
782
+      #elif X2_USE_ENDSTOP == _E7DIAG_
783
+        #define X2_MIN_PIN E7_DIAG_PIN
784
+      #endif
785
+    #endif
724 786
     #define X2_MAX_ENDSTOP_INVERTING false
725 787
   #endif
726 788
 #endif
@@ -732,48 +794,110 @@
732 794
   #if Y_HOME_DIR > 0
733 795
     #if Y2_USE_ENDSTOP == _XMIN_
734 796
       #define Y2_MAX_ENDSTOP_INVERTING X_MIN_ENDSTOP_INVERTING
735
-      #define Y2_MAX_PIN X_MIN_PIN
736 797
     #elif Y2_USE_ENDSTOP == _XMAX_
737 798
       #define Y2_MAX_ENDSTOP_INVERTING X_MAX_ENDSTOP_INVERTING
738
-      #define Y2_MAX_PIN X_MAX_PIN
739 799
     #elif Y2_USE_ENDSTOP == _YMIN_
740 800
       #define Y2_MAX_ENDSTOP_INVERTING Y_MIN_ENDSTOP_INVERTING
741
-      #define Y2_MAX_PIN Y_MIN_PIN
742 801
     #elif Y2_USE_ENDSTOP == _YMAX_
743 802
       #define Y2_MAX_ENDSTOP_INVERTING Y_MAX_ENDSTOP_INVERTING
744
-      #define Y2_MAX_PIN Y_MAX_PIN
745 803
     #elif Y2_USE_ENDSTOP == _ZMIN_
746 804
       #define Y2_MAX_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
747
-      #define Y2_MAX_PIN Z_MIN_PIN
748 805
     #elif Y2_USE_ENDSTOP == _ZMAX_
749 806
       #define Y2_MAX_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
750
-      #define Y2_MAX_PIN Z_MAX_PIN
751 807
     #else
752 808
       #define Y2_MAX_ENDSTOP_INVERTING false
753 809
     #endif
810
+    #ifndef Y2_MAX_PIN
811
+      #if Y2_USE_ENDSTOP == _XMIN_
812
+        #define Y2_MAX_PIN X_MIN_PIN
813
+      #elif Y2_USE_ENDSTOP == _XMAX_
814
+        #define Y2_MAX_PIN X_MAX_PIN
815
+      #elif Y2_USE_ENDSTOP == _YMIN_
816
+        #define Y2_MAX_PIN Y_MIN_PIN
817
+      #elif Y2_USE_ENDSTOP == _YMAX_
818
+        #define Y2_MAX_PIN Y_MAX_PIN
819
+      #elif Y2_USE_ENDSTOP == _ZMIN_
820
+        #define Y2_MAX_PIN Z_MIN_PIN
821
+      #elif Y2_USE_ENDSTOP == _ZMAX_
822
+        #define Y2_MAX_PIN Z_MAX_PIN
823
+      #elif Y2_USE_ENDSTOP == _XDIAG_
824
+        #define Y2_MAX_PIN X_DIAG_PIN
825
+      #elif Y2_USE_ENDSTOP == _YDIAG_
826
+        #define Y2_MAX_PIN Y_DIAG_PIN
827
+      #elif Y2_USE_ENDSTOP == _ZDIAG_
828
+        #define Y2_MAX_PIN Z_DIAG_PIN
829
+      #elif Y2_USE_ENDSTOP == _E0DIAG_
830
+        #define Y2_MAX_PIN E0_DIAG_PIN
831
+      #elif Y2_USE_ENDSTOP == _E1DIAG_
832
+        #define Y2_MAX_PIN E1_DIAG_PIN
833
+      #elif Y2_USE_ENDSTOP == _E2DIAG_
834
+        #define Y2_MAX_PIN E2_DIAG_PIN
835
+      #elif Y2_USE_ENDSTOP == _E3DIAG_
836
+        #define Y2_MAX_PIN E3_DIAG_PIN
837
+      #elif Y2_USE_ENDSTOP == _E4DIAG_
838
+        #define Y2_MAX_PIN E4_DIAG_PIN
839
+      #elif Y2_USE_ENDSTOP == _E5DIAG_
840
+        #define Y2_MAX_PIN E5_DIAG_PIN
841
+      #elif Y2_USE_ENDSTOP == _E6DIAG_
842
+        #define Y2_MAX_PIN E6_DIAG_PIN
843
+      #elif Y2_USE_ENDSTOP == _E7DIAG_
844
+        #define Y2_MAX_PIN E7_DIAG_PIN
845
+      #endif
846
+    #endif
754 847
     #define Y2_MIN_ENDSTOP_INVERTING false
755 848
   #else
756 849
     #if Y2_USE_ENDSTOP == _XMIN_
757 850
       #define Y2_MIN_ENDSTOP_INVERTING X_MIN_ENDSTOP_INVERTING
758
-      #define Y2_MIN_PIN X_MIN_PIN
759 851
     #elif Y2_USE_ENDSTOP == _XMAX_
760 852
       #define Y2_MIN_ENDSTOP_INVERTING X_MAX_ENDSTOP_INVERTING
761
-      #define Y2_MIN_PIN X_MAX_PIN
762 853
     #elif Y2_USE_ENDSTOP == _YMIN_
763 854
       #define Y2_MIN_ENDSTOP_INVERTING Y_MIN_ENDSTOP_INVERTING
764
-      #define Y2_MIN_PIN Y_MIN_PIN
765 855
     #elif Y2_USE_ENDSTOP == _YMAX_
766 856
       #define Y2_MIN_ENDSTOP_INVERTING Y_MAX_ENDSTOP_INVERTING
767
-      #define Y2_MIN_PIN Y_MAX_PIN
768 857
     #elif Y2_USE_ENDSTOP == _ZMIN_
769 858
       #define Y2_MIN_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
770
-      #define Y2_MIN_PIN Z_MIN_PIN
771 859
     #elif Y2_USE_ENDSTOP == _ZMAX_
772 860
       #define Y2_MIN_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
773
-      #define Y2_MIN_PIN Z_MAX_PIN
774 861
     #else
775 862
       #define Y2_MIN_ENDSTOP_INVERTING false
776 863
     #endif
864
+    #ifndef Y2_MIN_PIN
865
+      #if Y2_USE_ENDSTOP == _XMIN_
866
+        #define Y2_MIN_PIN X_MIN_PIN
867
+      #elif Y2_USE_ENDSTOP == _XMAX_
868
+        #define Y2_MIN_PIN X_MAX_PIN
869
+      #elif Y2_USE_ENDSTOP == _YMIN_
870
+        #define Y2_MIN_PIN Y_MIN_PIN
871
+      #elif Y2_USE_ENDSTOP == _YMAX_
872
+        #define Y2_MIN_PIN Y_MAX_PIN
873
+      #elif Y2_USE_ENDSTOP == _ZMIN_
874
+        #define Y2_MIN_PIN Z_MIN_PIN
875
+      #elif Y2_USE_ENDSTOP == _ZMAX_
876
+        #define Y2_MIN_PIN Z_MAX_PIN
877
+      #elif Y2_USE_ENDSTOP == _XDIAG_
878
+        #define Y2_MIN_PIN X_DIAG_PIN
879
+      #elif Y2_USE_ENDSTOP == _YDIAG_
880
+        #define Y2_MIN_PIN Y_DIAG_PIN
881
+      #elif Y2_USE_ENDSTOP == _ZDIAG_
882
+        #define Y2_MIN_PIN Z_DIAG_PIN
883
+      #elif Y2_USE_ENDSTOP == _E0DIAG_
884
+        #define Y2_MIN_PIN E0_DIAG_PIN
885
+      #elif Y2_USE_ENDSTOP == _E1DIAG_
886
+        #define Y2_MIN_PIN E1_DIAG_PIN
887
+      #elif Y2_USE_ENDSTOP == _E2DIAG_
888
+        #define Y2_MIN_PIN E2_DIAG_PIN
889
+      #elif Y2_USE_ENDSTOP == _E3DIAG_
890
+        #define Y2_MIN_PIN E3_DIAG_PIN
891
+      #elif Y2_USE_ENDSTOP == _E4DIAG_
892
+        #define Y2_MIN_PIN E4_DIAG_PIN
893
+      #elif Y2_USE_ENDSTOP == _E5DIAG_
894
+        #define Y2_MIN_PIN E5_DIAG_PIN
895
+      #elif Y2_USE_ENDSTOP == _E6DIAG_
896
+        #define Y2_MIN_PIN E6_DIAG_PIN
897
+      #elif Y2_USE_ENDSTOP == _E7DIAG_
898
+        #define Y2_MIN_PIN E7_DIAG_PIN
899
+      #endif
900
+    #endif
777 901
     #define Y2_MAX_ENDSTOP_INVERTING false
778 902
   #endif
779 903
 #endif
@@ -786,48 +910,110 @@
786 910
   #if Z_HOME_DIR > 0
787 911
     #if Z2_USE_ENDSTOP == _XMIN_
788 912
       #define Z2_MAX_ENDSTOP_INVERTING X_MIN_ENDSTOP_INVERTING
789
-      #define Z2_MAX_PIN X_MIN_PIN
790 913
     #elif Z2_USE_ENDSTOP == _XMAX_
791 914
       #define Z2_MAX_ENDSTOP_INVERTING X_MAX_ENDSTOP_INVERTING
792
-      #define Z2_MAX_PIN X_MAX_PIN
793 915
     #elif Z2_USE_ENDSTOP == _YMIN_
794 916
       #define Z2_MAX_ENDSTOP_INVERTING Y_MIN_ENDSTOP_INVERTING
795
-      #define Z2_MAX_PIN Y_MIN_PIN
796 917
     #elif Z2_USE_ENDSTOP == _YMAX_
797 918
       #define Z2_MAX_ENDSTOP_INVERTING Y_MAX_ENDSTOP_INVERTING
798
-      #define Z2_MAX_PIN Y_MAX_PIN
799 919
     #elif Z2_USE_ENDSTOP == _ZMIN_
800 920
       #define Z2_MAX_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
801
-      #define Z2_MAX_PIN Z_MIN_PIN
802 921
     #elif Z2_USE_ENDSTOP == _ZMAX_
803 922
       #define Z2_MAX_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
804
-      #define Z2_MAX_PIN Z_MAX_PIN
805 923
     #else
806 924
       #define Z2_MAX_ENDSTOP_INVERTING false
807 925
     #endif
926
+    #ifndef Z2_MAX_PIN
927
+      #if Z2_USE_ENDSTOP == _XMIN_
928
+        #define Z2_MAX_PIN X_MIN_PIN
929
+      #elif Z2_USE_ENDSTOP == _XMAX_
930
+        #define Z2_MAX_PIN X_MAX_PIN
931
+      #elif Z2_USE_ENDSTOP == _YMIN_
932
+        #define Z2_MAX_PIN Y_MIN_PIN
933
+      #elif Z2_USE_ENDSTOP == _YMAX_
934
+        #define Z2_MAX_PIN Y_MAX_PIN
935
+      #elif Z2_USE_ENDSTOP == _ZMIN_
936
+        #define Z2_MAX_PIN Z_MIN_PIN
937
+      #elif Z2_USE_ENDSTOP == _ZMAX_
938
+        #define Z2_MAX_PIN Z_MAX_PIN
939
+      #elif Z2_USE_ENDSTOP == _XDIAG_
940
+        #define Z2_MAX_PIN X_DIAG_PIN
941
+      #elif Z2_USE_ENDSTOP == _YDIAG_
942
+        #define Z2_MAX_PIN Y_DIAG_PIN
943
+      #elif Z2_USE_ENDSTOP == _ZDIAG_
944
+        #define Z2_MAX_PIN Z_DIAG_PIN
945
+      #elif Z2_USE_ENDSTOP == _E0DIAG_
946
+        #define Z2_MAX_PIN E0_DIAG_PIN
947
+      #elif Z2_USE_ENDSTOP == _E1DIAG_
948
+        #define Z2_MAX_PIN E1_DIAG_PIN
949
+      #elif Z2_USE_ENDSTOP == _E2DIAG_
950
+        #define Z2_MAX_PIN E2_DIAG_PIN
951
+      #elif Z2_USE_ENDSTOP == _E3DIAG_
952
+        #define Z2_MAX_PIN E3_DIAG_PIN
953
+      #elif Z2_USE_ENDSTOP == _E4DIAG_
954
+        #define Z2_MAX_PIN E4_DIAG_PIN
955
+      #elif Z2_USE_ENDSTOP == _E5DIAG_
956
+        #define Z2_MAX_PIN E5_DIAG_PIN
957
+      #elif Z2_USE_ENDSTOP == _E6DIAG_
958
+        #define Z2_MAX_PIN E6_DIAG_PIN
959
+      #elif Z2_USE_ENDSTOP == _E7DIAG_
960
+        #define Z2_MAX_PIN E7_DIAG_PIN
961
+      #endif
962
+    #endif
808 963
     #define Z2_MIN_ENDSTOP_INVERTING false
809 964
   #else
810 965
     #if Z2_USE_ENDSTOP == _XMIN_
811 966
       #define Z2_MIN_ENDSTOP_INVERTING X_MIN_ENDSTOP_INVERTING
812
-      #define Z2_MIN_PIN X_MIN_PIN
813 967
     #elif Z2_USE_ENDSTOP == _XMAX_
814 968
       #define Z2_MIN_ENDSTOP_INVERTING X_MAX_ENDSTOP_INVERTING
815
-      #define Z2_MIN_PIN X_MAX_PIN
816 969
     #elif Z2_USE_ENDSTOP == _YMIN_
817 970
       #define Z2_MIN_ENDSTOP_INVERTING Y_MIN_ENDSTOP_INVERTING
818
-      #define Z2_MIN_PIN Y_MIN_PIN
819 971
     #elif Z2_USE_ENDSTOP == _YMAX_
820 972
       #define Z2_MIN_ENDSTOP_INVERTING Y_MAX_ENDSTOP_INVERTING
821
-      #define Z2_MIN_PIN Y_MAX_PIN
822 973
     #elif Z2_USE_ENDSTOP == _ZMIN_
823 974
       #define Z2_MIN_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
824
-      #define Z2_MIN_PIN Z_MIN_PIN
825 975
     #elif Z2_USE_ENDSTOP == _ZMAX_
826 976
       #define Z2_MIN_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
827
-      #define Z2_MIN_PIN Z_MAX_PIN
828 977
     #else
829 978
       #define Z2_MIN_ENDSTOP_INVERTING false
830 979
     #endif
980
+    #ifndef Z2_MIN_PIN
981
+      #if Z2_USE_ENDSTOP == _XMIN_
982
+        #define Z2_MIN_PIN X_MIN_PIN
983
+      #elif Z2_USE_ENDSTOP == _XMAX_
984
+        #define Z2_MIN_PIN X_MAX_PIN
985
+      #elif Z2_USE_ENDSTOP == _YMIN_
986
+        #define Z2_MIN_PIN Y_MIN_PIN
987
+      #elif Z2_USE_ENDSTOP == _YMAX_
988
+        #define Z2_MIN_PIN Y_MAX_PIN
989
+      #elif Z2_USE_ENDSTOP == _ZMIN_
990
+        #define Z2_MIN_PIN Z_MIN_PIN
991
+      #elif Z2_USE_ENDSTOP == _ZMAX_
992
+        #define Z2_MIN_PIN Z_MAX_PIN
993
+      #elif Z2_USE_ENDSTOP == _XDIAG_
994
+        #define Z2_MIN_PIN X_DIAG_PIN
995
+      #elif Z2_USE_ENDSTOP == _YDIAG_
996
+        #define Z2_MIN_PIN Y_DIAG_PIN
997
+      #elif Z2_USE_ENDSTOP == _ZDIAG_
998
+        #define Z2_MIN_PIN Z_DIAG_PIN
999
+      #elif Z2_USE_ENDSTOP == _E0DIAG_
1000
+        #define Z2_MIN_PIN E0_DIAG_PIN
1001
+      #elif Z2_USE_ENDSTOP == _E1DIAG_
1002
+        #define Z2_MIN_PIN E1_DIAG_PIN
1003
+      #elif Z2_USE_ENDSTOP == _E2DIAG_
1004
+        #define Z2_MIN_PIN E2_DIAG_PIN
1005
+      #elif Z2_USE_ENDSTOP == _E3DIAG_
1006
+        #define Z2_MIN_PIN E3_DIAG_PIN
1007
+      #elif Z2_USE_ENDSTOP == _E4DIAG_
1008
+        #define Z2_MIN_PIN E4_DIAG_PIN
1009
+      #elif Z2_USE_ENDSTOP == _E5DIAG_
1010
+        #define Z2_MIN_PIN E5_DIAG_PIN
1011
+      #elif Z2_USE_ENDSTOP == _E6DIAG_
1012
+        #define Z2_MIN_PIN E6_DIAG_PIN
1013
+      #elif Z2_USE_ENDSTOP == _E7DIAG_
1014
+        #define Z2_MIN_PIN E7_DIAG_PIN
1015
+      #endif
1016
+    #endif
831 1017
     #define Z2_MAX_ENDSTOP_INVERTING false
832 1018
   #endif
833 1019
 
@@ -835,48 +1021,110 @@
835 1021
     #if Z_HOME_DIR > 0
836 1022
       #if Z3_USE_ENDSTOP == _XMIN_
837 1023
         #define Z3_MAX_ENDSTOP_INVERTING X_MIN_ENDSTOP_INVERTING
838
-        #define Z3_MAX_PIN X_MIN_PIN
839 1024
       #elif Z3_USE_ENDSTOP == _XMAX_
840 1025
         #define Z3_MAX_ENDSTOP_INVERTING X_MAX_ENDSTOP_INVERTING
841
-        #define Z3_MAX_PIN X_MAX_PIN
842 1026
       #elif Z3_USE_ENDSTOP == _YMIN_
843 1027
         #define Z3_MAX_ENDSTOP_INVERTING Y_MIN_ENDSTOP_INVERTING
844
-        #define Z3_MAX_PIN Y_MIN_PIN
845 1028
       #elif Z3_USE_ENDSTOP == _YMAX_
846 1029
         #define Z3_MAX_ENDSTOP_INVERTING Y_MAX_ENDSTOP_INVERTING
847
-        #define Z3_MAX_PIN Y_MAX_PIN
848 1030
       #elif Z3_USE_ENDSTOP == _ZMIN_
849 1031
         #define Z3_MAX_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
850
-        #define Z3_MAX_PIN Z_MIN_PIN
851 1032
       #elif Z3_USE_ENDSTOP == _ZMAX_
852 1033
         #define Z3_MAX_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
853
-        #define Z3_MAX_PIN Z_MAX_PIN
854 1034
       #else
855 1035
         #define Z3_MAX_ENDSTOP_INVERTING false
856 1036
       #endif
1037
+      #ifndef Z3_MAX_PIN
1038
+        #if Z3_USE_ENDSTOP == _XMIN_
1039
+          #define Z3_MAX_PIN X_MIN_PIN
1040
+        #elif Z3_USE_ENDSTOP == _XMAX_
1041
+          #define Z3_MAX_PIN X_MAX_PIN
1042
+        #elif Z3_USE_ENDSTOP == _YMIN_
1043
+          #define Z3_MAX_PIN Y_MIN_PIN
1044
+        #elif Z3_USE_ENDSTOP == _YMAX_
1045
+          #define Z3_MAX_PIN Y_MAX_PIN
1046
+        #elif Z3_USE_ENDSTOP == _ZMIN_
1047
+          #define Z3_MAX_PIN Z_MIN_PIN
1048
+        #elif Z3_USE_ENDSTOP == _ZMAX_
1049
+          #define Z3_MAX_PIN Z_MAX_PIN
1050
+        #elif Z3_USE_ENDSTOP == _XDIAG_
1051
+          #define Z3_MAX_PIN X_DIAG_PIN
1052
+        #elif Z3_USE_ENDSTOP == _YDIAG_
1053
+          #define Z3_MAX_PIN Y_DIAG_PIN
1054
+        #elif Z3_USE_ENDSTOP == _ZDIAG_
1055
+          #define Z3_MAX_PIN Z_DIAG_PIN
1056
+        #elif Z3_USE_ENDSTOP == _E0DIAG_
1057
+          #define Z3_MAX_PIN E0_DIAG_PIN
1058
+        #elif Z3_USE_ENDSTOP == _E1DIAG_
1059
+          #define Z3_MAX_PIN E1_DIAG_PIN
1060
+        #elif Z3_USE_ENDSTOP == _E2DIAG_
1061
+          #define Z3_MAX_PIN E2_DIAG_PIN
1062
+        #elif Z3_USE_ENDSTOP == _E3DIAG_
1063
+          #define Z3_MAX_PIN E3_DIAG_PIN
1064
+        #elif Z3_USE_ENDSTOP == _E4DIAG_
1065
+          #define Z3_MAX_PIN E4_DIAG_PIN
1066
+        #elif Z3_USE_ENDSTOP == _E5DIAG_
1067
+          #define Z3_MAX_PIN E5_DIAG_PIN
1068
+        #elif Z3_USE_ENDSTOP == _E6DIAG_
1069
+          #define Z3_MAX_PIN E6_DIAG_PIN
1070
+        #elif Z3_USE_ENDSTOP == _E7DIAG_
1071
+          #define Z3_MAX_PIN E7_DIAG_PIN
1072
+        #endif
1073
+      #endif
857 1074
       #define Z3_MIN_ENDSTOP_INVERTING false
858 1075
     #else
859 1076
       #if Z3_USE_ENDSTOP == _XMIN_
860 1077
         #define Z3_MIN_ENDSTOP_INVERTING X_MIN_ENDSTOP_INVERTING
861
-        #define Z3_MIN_PIN X_MIN_PIN
862 1078
       #elif Z3_USE_ENDSTOP == _XMAX_
863 1079
         #define Z3_MIN_ENDSTOP_INVERTING X_MAX_ENDSTOP_INVERTING
864
-        #define Z3_MIN_PIN X_MAX_PIN
865 1080
       #elif Z3_USE_ENDSTOP == _YMIN_
866 1081
         #define Z3_MIN_ENDSTOP_INVERTING Y_MIN_ENDSTOP_INVERTING
867
-        #define Z3_MIN_PIN Y_MIN_PIN
868 1082
       #elif Z3_USE_ENDSTOP == _YMAX_
869 1083
         #define Z3_MIN_ENDSTOP_INVERTING Y_MAX_ENDSTOP_INVERTING
870
-        #define Z3_MIN_PIN Y_MAX_PIN
871 1084
       #elif Z3_USE_ENDSTOP == _ZMIN_
872 1085
         #define Z3_MIN_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
873
-        #define Z3_MIN_PIN Z_MIN_PIN
874 1086
       #elif Z3_USE_ENDSTOP == _ZMAX_
875 1087
         #define Z3_MIN_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
876
-        #define Z3_MIN_PIN Z_MAX_PIN
877 1088
       #else
878 1089
         #define Z3_MIN_ENDSTOP_INVERTING false
879 1090
       #endif
1091
+      #ifndef Z3_MIN_PIN
1092
+        #if Z3_USE_ENDSTOP == _XMIN_
1093
+          #define Z3_MIN_PIN X_MIN_PIN
1094
+        #elif Z3_USE_ENDSTOP == _XMAX_
1095
+          #define Z3_MIN_PIN X_MAX_PIN
1096
+        #elif Z3_USE_ENDSTOP == _YMIN_
1097
+          #define Z3_MIN_PIN Y_MIN_PIN
1098
+        #elif Z3_USE_ENDSTOP == _YMAX_
1099
+          #define Z3_MIN_PIN Y_MAX_PIN
1100
+        #elif Z3_USE_ENDSTOP == _ZMIN_
1101
+          #define Z3_MIN_PIN Z_MIN_PIN
1102
+        #elif Z3_USE_ENDSTOP == _ZMAX_
1103
+          #define Z3_MIN_PIN Z_MAX_PIN
1104
+        #elif Z3_USE_ENDSTOP == _XDIAG_
1105
+          #define Z3_MIN_PIN X_DIAG_PIN
1106
+        #elif Z3_USE_ENDSTOP == _YDIAG_
1107
+          #define Z3_MIN_PIN Y_DIAG_PIN
1108
+        #elif Z3_USE_ENDSTOP == _ZDIAG_
1109
+          #define Z3_MIN_PIN Z_DIAG_PIN
1110
+        #elif Z3_USE_ENDSTOP == _E0DIAG_
1111
+          #define Z3_MIN_PIN E0_DIAG_PIN
1112
+        #elif Z3_USE_ENDSTOP == _E1DIAG_
1113
+          #define Z3_MIN_PIN E1_DIAG_PIN
1114
+        #elif Z3_USE_ENDSTOP == _E2DIAG_
1115
+          #define Z3_MIN_PIN E2_DIAG_PIN
1116
+        #elif Z3_USE_ENDSTOP == _E3DIAG_
1117
+          #define Z3_MIN_PIN E3_DIAG_PIN
1118
+        #elif Z3_USE_ENDSTOP == _E4DIAG_
1119
+          #define Z3_MIN_PIN E4_DIAG_PIN
1120
+        #elif Z3_USE_ENDSTOP == _E5DIAG_
1121
+          #define Z3_MIN_PIN E5_DIAG_PIN
1122
+        #elif Z3_USE_ENDSTOP == _E6DIAG_
1123
+          #define Z3_MIN_PIN E6_DIAG_PIN
1124
+        #elif Z3_USE_ENDSTOP == _E7DIAG_
1125
+          #define Z3_MIN_PIN E7_DIAG_PIN
1126
+        #endif
1127
+      #endif
880 1128
       #define Z3_MAX_ENDSTOP_INVERTING false
881 1129
     #endif
882 1130
   #endif
@@ -885,48 +1133,110 @@
885 1133
     #if Z_HOME_DIR > 0
886 1134
       #if Z4_USE_ENDSTOP == _XMIN_
887 1135
         #define Z4_MAX_ENDSTOP_INVERTING X_MIN_ENDSTOP_INVERTING
888
-        #define Z4_MAX_PIN X_MIN_PIN
889 1136
       #elif Z4_USE_ENDSTOP == _XMAX_
890 1137
         #define Z4_MAX_ENDSTOP_INVERTING X_MAX_ENDSTOP_INVERTING
891
-        #define Z4_MAX_PIN X_MAX_PIN
892 1138
       #elif Z4_USE_ENDSTOP == _YMIN_
893 1139
         #define Z4_MAX_ENDSTOP_INVERTING Y_MIN_ENDSTOP_INVERTING
894
-        #define Z4_MAX_PIN Y_MIN_PIN
895 1140
       #elif Z4_USE_ENDSTOP == _YMAX_
896 1141
         #define Z4_MAX_ENDSTOP_INVERTING Y_MAX_ENDSTOP_INVERTING
897
-        #define Z4_MAX_PIN Y_MAX_PIN
898 1142
       #elif Z4_USE_ENDSTOP == _ZMIN_
899 1143
         #define Z4_MAX_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
900
-        #define Z4_MAX_PIN Z_MIN_PIN
901 1144
       #elif Z4_USE_ENDSTOP == _ZMAX_
902 1145
         #define Z4_MAX_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
903
-        #define Z4_MAX_PIN Z_MAX_PIN
904 1146
       #else
905 1147
         #define Z4_MAX_ENDSTOP_INVERTING false
906 1148
       #endif
1149
+      #ifndef Z4_MAX_PIN
1150
+        #if Z4_USE_ENDSTOP == _XMIN_
1151
+          #define Z4_MAX_PIN X_MIN_PIN
1152
+        #elif Z4_USE_ENDSTOP == _XMAX_
1153
+          #define Z4_MAX_PIN X_MAX_PIN
1154
+        #elif Z4_USE_ENDSTOP == _YMIN_
1155
+          #define Z4_MAX_PIN Y_MIN_PIN
1156
+        #elif Z4_USE_ENDSTOP == _YMAX_
1157
+          #define Z4_MAX_PIN Y_MAX_PIN
1158
+        #elif Z4_USE_ENDSTOP == _ZMIN_
1159
+          #define Z4_MAX_PIN Z_MIN_PIN
1160
+        #elif Z4_USE_ENDSTOP == _ZMAX_
1161
+          #define Z4_MAX_PIN Z_MAX_PIN
1162
+        #elif Z4_USE_ENDSTOP == _XDIAG_
1163
+          #define Z4_MAX_PIN X_DIAG_PIN
1164
+        #elif Z4_USE_ENDSTOP == _YDIAG_
1165
+          #define Z4_MAX_PIN Y_DIAG_PIN
1166
+        #elif Z4_USE_ENDSTOP == _ZDIAG_
1167
+          #define Z4_MAX_PIN Z_DIAG_PIN
1168
+        #elif Z4_USE_ENDSTOP == _E0DIAG_
1169
+          #define Z4_MAX_PIN E0_DIAG_PIN
1170
+        #elif Z4_USE_ENDSTOP == _E1DIAG_
1171
+          #define Z4_MAX_PIN E1_DIAG_PIN
1172
+        #elif Z4_USE_ENDSTOP == _E2DIAG_
1173
+          #define Z4_MAX_PIN E2_DIAG_PIN
1174
+        #elif Z4_USE_ENDSTOP == _E3DIAG_
1175
+          #define Z4_MAX_PIN E3_DIAG_PIN
1176
+        #elif Z4_USE_ENDSTOP == _E4DIAG_
1177
+          #define Z4_MAX_PIN E4_DIAG_PIN
1178
+        #elif Z4_USE_ENDSTOP == _E5DIAG_
1179
+          #define Z4_MAX_PIN E5_DIAG_PIN
1180
+        #elif Z4_USE_ENDSTOP == _E6DIAG_
1181
+          #define Z4_MAX_PIN E6_DIAG_PIN
1182
+        #elif Z4_USE_ENDSTOP == _E7DIAG_
1183
+          #define Z4_MAX_PIN E7_DIAG_PIN
1184
+        #endif
1185
+      #endif
907 1186
       #define Z4_MIN_ENDSTOP_INVERTING false
908 1187
     #else
909 1188
       #if Z4_USE_ENDSTOP == _XMIN_
910 1189
         #define Z4_MIN_ENDSTOP_INVERTING X_MIN_ENDSTOP_INVERTING
911
-        #define Z4_MIN_PIN X_MIN_PIN
912 1190
       #elif Z4_USE_ENDSTOP == _XMAX_
913 1191
         #define Z4_MIN_ENDSTOP_INVERTING X_MAX_ENDSTOP_INVERTING
914
-        #define Z4_MIN_PIN X_MAX_PIN
915 1192
       #elif Z4_USE_ENDSTOP == _YMIN_
916 1193
         #define Z4_MIN_ENDSTOP_INVERTING Y_MIN_ENDSTOP_INVERTING
917
-        #define Z4_MIN_PIN Y_MIN_PIN
918 1194
       #elif Z4_USE_ENDSTOP == _YMAX_
919 1195
         #define Z4_MIN_ENDSTOP_INVERTING Y_MAX_ENDSTOP_INVERTING
920
-        #define Z4_MIN_PIN Y_MAX_PIN
921 1196
       #elif Z4_USE_ENDSTOP == _ZMIN_
922 1197
         #define Z4_MIN_ENDSTOP_INVERTING Z_MIN_ENDSTOP_INVERTING
923
-        #define Z4_MIN_PIN Z_MIN_PIN
924 1198
       #elif Z4_USE_ENDSTOP == _ZMAX_
925 1199
         #define Z4_MIN_ENDSTOP_INVERTING Z_MAX_ENDSTOP_INVERTING
926
-        #define Z4_MIN_PIN Z_MAX_PIN
927 1200
       #else
928 1201
         #define Z4_MIN_ENDSTOP_INVERTING false
929 1202
       #endif
1203
+      #ifndef Z4_MIN_PIN
1204
+        #if Z4_USE_ENDSTOP == _XMIN_
1205
+          #define Z4_MIN_PIN X_MIN_PIN
1206
+        #elif Z4_USE_ENDSTOP == _XMAX_
1207
+          #define Z4_MIN_PIN X_MAX_PIN
1208
+        #elif Z4_USE_ENDSTOP == _YMIN_
1209
+          #define Z4_MIN_PIN Y_MIN_PIN
1210
+        #elif Z4_USE_ENDSTOP == _YMAX_
1211
+          #define Z4_MIN_PIN Y_MAX_PIN
1212
+        #elif Z4_USE_ENDSTOP == _ZMIN_
1213
+          #define Z4_MIN_PIN Z_MIN_PIN
1214
+        #elif Z4_USE_ENDSTOP == _ZMAX_
1215
+          #define Z4_MIN_PIN Z_MAX_PIN
1216
+        #elif Z4_USE_ENDSTOP == _XDIAG_
1217
+          #define Z4_MIN_PIN X_DIAG_PIN
1218
+        #elif Z4_USE_ENDSTOP == _YDIAG_
1219
+          #define Z4_MIN_PIN Y_DIAG_PIN
1220
+        #elif Z4_USE_ENDSTOP == _ZDIAG_
1221
+          #define Z4_MIN_PIN Z_DIAG_PIN
1222
+        #elif Z4_USE_ENDSTOP == _E0DIAG_
1223
+          #define Z4_MIN_PIN E0_DIAG_PIN
1224
+        #elif Z4_USE_ENDSTOP == _E1DIAG_
1225
+          #define Z4_MIN_PIN E1_DIAG_PIN
1226
+        #elif Z4_USE_ENDSTOP == _E2DIAG_
1227
+          #define Z4_MIN_PIN E2_DIAG_PIN
1228
+        #elif Z4_USE_ENDSTOP == _E3DIAG_
1229
+          #define Z4_MIN_PIN E3_DIAG_PIN
1230
+        #elif Z4_USE_ENDSTOP == _E4DIAG_
1231
+          #define Z4_MIN_PIN E4_DIAG_PIN
1232
+        #elif Z4_USE_ENDSTOP == _E5DIAG_
1233
+          #define Z4_MIN_PIN E5_DIAG_PIN
1234
+        #elif Z4_USE_ENDSTOP == _E6DIAG_
1235
+          #define Z4_MIN_PIN E6_DIAG_PIN
1236
+        #elif Z4_USE_ENDSTOP == _E7DIAG_
1237
+          #define Z4_MIN_PIN E7_DIAG_PIN
1238
+        #endif
1239
+      #endif
930 1240
       #define Z4_MAX_ENDSTOP_INVERTING false
931 1241
     #endif
932 1242
   #endif

+ 40
- 18
Marlin/src/pins/lpc1768/pins_BTT_SKR_V1_3.h Прегледај датотеку

@@ -24,32 +24,54 @@
24 24
 #define BOARD_INFO_NAME "BIGTREE SKR 1.3"
25 25
 
26 26
 /**
27
+ * Trinamic Stallguard pins
28
+ */
29
+#define X_DIAG_PIN           P1_29   // X-
30
+#define Y_DIAG_PIN           P1_27   // Y-
31
+#define Z_DIAG_PIN           P1_25   // Z-
32
+#define E0_DIAG_PIN          P1_28   // X+
33
+#define E1_DIAG_PIN          P1_26   // Y+
34
+
35
+/**
27 36
  * Limit Switches
28 37
  */
29
-#if X_HOME_DIR > 0 && X_STALL_SENSITIVITY && !defined(USE_XMAX_PLUG)
30
-  // For StallGuard homing to MAX swap the MIN / MAX pins
31
-  // so the MAX physical connectors may be used for other things.
32
-  #define X_MIN_PIN          P1_28   // X_MAX (free)
33
-  #define X_MAX_PIN          P1_29   // X_MIN
34
-#else                                // else, non-endstop is free and appears in M43 output
35
-  #define X_MIN_PIN          P1_29   // X_MIN
36
-  #define X_MAX_PIN          P1_28   // X_MAX
38
+#if X_STALL_SENSITIVITY
39
+  #if X_HOME_DIR < 0
40
+    #define X_MIN_PIN        X_DIAG_PIN
41
+    #define X_MAX_PIN        P1_28   // X+
42
+  #else
43
+    #define X_MAX_PIN        X_DIAG_PIN
44
+    #define X_MIN_PIN        P1_28   // X+
45
+  #endif
46
+#else
47
+  #define X_MIN_PIN          P1_29   // X-
48
+  #define X_MAX_PIN          P1_28   // X+
37 49
 #endif
38 50
 
39
-#if Y_HOME_DIR > 0 && Y_STALL_SENSITIVITY && !defined(USE_YMAX_PLUG)
40
-  #define Y_MIN_PIN          P1_26   // Y_MAX (free)
41
-  #define Y_MAX_PIN          P1_27   // Y_MIN
51
+#if Y_STALL_SENSITIVITY
52
+  #if Y_HOME_DIR < 0
53
+    #define Y_MIN_PIN        Y_DIAG_PIN
54
+    #define Y_MAX_PIN        P1_26   // Y+
55
+  #else
56
+    #define Y_MAX_PIN        Y_DIAG_PIN
57
+    #define Y_MIN_PIN        P1_26   // Y+
58
+  #endif
42 59
 #else
43
-  #define Y_MIN_PIN          P1_27   // Y_MIN
44
-  #define Y_MAX_PIN          P1_26   // Y_MAX
60
+  #define Y_MIN_PIN          P1_27   // Y-
61
+  #define Y_MAX_PIN          P1_26   // Y+
45 62
 #endif
46 63
 
47
-#if Z_HOME_DIR > 0 && Z_STALL_SENSITIVITY && !defined(USE_ZMAX_PLUG)
48
-  #define Z_MIN_PIN          P1_24   // Z_MAX (free)
49
-  #define Z_MAX_PIN          P1_25   // Z_MIN
64
+#if Z_STALL_SENSITIVITY
65
+  #if Z_HOME_DIR < 0
66
+    #define Z_MIN_PIN        Z_DIAG_PIN
67
+    #define Z_MAX_PIN        P1_24   // Z+
68
+  #else
69
+    #define Z_MAX_PIN        Z_DIAG_PIN
70
+    #define Z_MIN_PIN        P1_24   // Z+
71
+  #endif
50 72
 #else
51
-  #define Z_MIN_PIN          P1_25   // Z_MIN
52
-  #define Z_MAX_PIN          P1_24   // Z_MAX
73
+  #define Z_MIN_PIN          P1_25   // Z-
74
+  #define Z_MAX_PIN          P1_24   // Z+
53 75
 #endif
54 76
 
55 77
 #define ONBOARD_ENDSTOPPULLUPS     // Board has built-in pullups

+ 112
- 13
Marlin/src/pins/pins.h Прегледај датотеку

@@ -1129,40 +1129,66 @@
1129 1129
 
1130 1130
 #define __EPIN(p,q) E##p##_##q##_PIN
1131 1131
 #define _EPIN(p,q) __EPIN(p,q)
1132
+#define DIAG_REMAPPED(P,Q) (PIN_EXISTS(Q) && (P##_DIAG_PIN == Q##_PIN))
1132 1133
 
1133 1134
 // The X2 axis, if any, should be the next open extruder port
1135
+#define X2_E_INDEX E_STEPPERS
1136
+
1134 1137
 #if EITHER(DUAL_X_CARRIAGE, X_DUAL_STEPPER_DRIVERS)
1135 1138
   #ifndef X2_STEP_PIN
1136
-    #define X2_STEP_PIN   _EPIN(E_STEPPERS, STEP)
1137
-    #define X2_DIR_PIN    _EPIN(E_STEPPERS, DIR)
1138
-    #define X2_ENABLE_PIN _EPIN(E_STEPPERS, ENABLE)
1139
-    #if E_STEPPERS >= MAX_EXTRUDERS || !PIN_EXISTS(X2_STEP)
1139
+    #define X2_STEP_PIN   _EPIN(X2_E_INDEX, STEP)
1140
+    #define X2_DIR_PIN    _EPIN(X2_E_INDEX, DIR)
1141
+    #define X2_ENABLE_PIN _EPIN(X2_E_INDEX, ENABLE)
1142
+    #if X2_E_INDEX >= MAX_EXTRUDERS || !PIN_EXISTS(X2_STEP)
1140 1143
       #error "No E stepper plug left for X2!"
1141 1144
     #endif
1142 1145
   #endif
1143 1146
   #ifndef X2_MS1_PIN
1144
-    #define X2_MS1_PIN    _EPIN(E_STEPPERS, MS1)
1147
+    #define X2_MS1_PIN    _EPIN(X2_E_INDEX, MS1)
1145 1148
   #endif
1146 1149
   #ifndef X2_MS2_PIN
1147
-    #define X2_MS2_PIN    _EPIN(E_STEPPERS, MS2)
1150
+    #define X2_MS2_PIN    _EPIN(X2_E_INDEX, MS2)
1148 1151
   #endif
1149 1152
   #ifndef X2_MS3_PIN
1150
-    #define X2_MS3_PIN    _EPIN(E_STEPPERS, MS3)
1153
+    #define X2_MS3_PIN    _EPIN(X2_E_INDEX, MS3)
1151 1154
   #endif
1152 1155
   #if AXIS_HAS_SPI(X2) && !defined(X2_CS_PIN)
1153
-    #define X2_CS_PIN     _EPIN(E_STEPPERS, CS)
1156
+    #define X2_CS_PIN     _EPIN(X2_E_INDEX, CS)
1154 1157
   #endif
1155 1158
   #if AXIS_HAS_UART(X2)
1156 1159
     #ifndef X2_SERIAL_TX_PIN
1157
-      #define X2_SERIAL_TX_PIN _EPIN(E_STEPPERS, SERIAL_TX)
1160
+      #define X2_SERIAL_TX_PIN _EPIN(X2_E_INDEX, SERIAL_TX)
1158 1161
     #endif
1159 1162
     #ifndef X2_SERIAL_RX_PIN
1160
-      #define X2_SERIAL_RX_PIN _EPIN(E_STEPPERS, SERIAL_RX)
1163
+      #define X2_SERIAL_RX_PIN _EPIN(X2_E_INDEX, SERIAL_RX)
1164
+    #endif
1165
+  #endif
1166
+
1167
+  //
1168
+  // Auto-assign pins for stallGuard sensorless homing
1169
+  //
1170
+  #if X2_STALL_SENSITIVITY && ENABLED(X_DUAL_ENDSTOPS) && _EPIN(X2_E_INDEX, DIAG) > 0
1171
+    #if   DIAG_REMAPPED(X2, X_MIN)      // If already remapped in the pins file...
1172
+      #define X2_USE_ENDSTOP _XMIN_
1173
+    #elif DIAG_REMAPPED(X2, Y_MIN)
1174
+      #define X2_USE_ENDSTOP _YMIN_
1175
+    #elif DIAG_REMAPPED(X2, Z_MIN)
1176
+      #define X2_USE_ENDSTOP _ZMIN_
1177
+    #elif DIAG_REMAPPED(X2, X_MAX)
1178
+      #define X2_USE_ENDSTOP _XMAX_
1179
+    #elif DIAG_REMAPPED(X2, Y_MAX)
1180
+      #define X2_USE_ENDSTOP _YMAX_
1181
+    #elif DIAG_REMAPPED(X2, Z_MAX)
1182
+      #define X2_USE_ENDSTOP _ZMAX_
1183
+    #else                               // Otherwise use the driver DIAG_PIN directly
1184
+      #define _X2_USE_ENDSTOP(P) _E##P##_DIAG_
1185
+      #define X2_USE_ENDSTOP _X2_USE_ENDSTOP(X2_E_INDEX)
1161 1186
     #endif
1162 1187
   #endif
1163
-  #define Y2_E_INDEX INCREMENT(E_STEPPERS)
1188
+
1189
+  #define Y2_E_INDEX INCREMENT(X2_E_INDEX)
1164 1190
 #else
1165
-  #define Y2_E_INDEX E_STEPPERS
1191
+  #define Y2_E_INDEX X2_E_INDEX
1166 1192
 #endif
1167 1193
 
1168 1194
 #ifndef X2_CS_PIN
@@ -1208,6 +1234,24 @@
1208 1234
       #define Y2_SERIAL_RX_PIN _EPIN(Y2_E_INDEX, SERIAL_RX)
1209 1235
     #endif
1210 1236
   #endif
1237
+  #if Y2_STALL_SENSITIVITY && ENABLED(X_DUAL_ENDSTOPS) && _EPIN(Y2_E_INDEX, DIAG) > 0
1238
+    #if   DIAG_REMAPPED(Y2, X_MIN)
1239
+      #define Y2_USE_ENDSTOP _XMIN_
1240
+    #elif DIAG_REMAPPED(Y2, Y_MIN)
1241
+      #define Y2_USE_ENDSTOP _YMIN_
1242
+    #elif DIAG_REMAPPED(Y2, Z_MIN)
1243
+      #define Y2_USE_ENDSTOP _ZMIN_
1244
+    #elif DIAG_REMAPPED(Y2, X_MAX)
1245
+      #define Y2_USE_ENDSTOP _XMAX_
1246
+    #elif DIAG_REMAPPED(Y2, Y_MAX)
1247
+      #define Y2_USE_ENDSTOP _YMAX_
1248
+    #elif DIAG_REMAPPED(Y2, Z_MAX)
1249
+      #define Y2_USE_ENDSTOP _ZMAX_
1250
+    #else
1251
+      #define _Y2_USE_ENDSTOP(P) _E##P##_DIAG_
1252
+      #define Y2_USE_ENDSTOP _Y2_USE_ENDSTOP(Y2_E_INDEX)
1253
+    #endif
1254
+  #endif
1211 1255
   #define Z2_E_INDEX INCREMENT(Y2_E_INDEX)
1212 1256
 #else
1213 1257
   #define Z2_E_INDEX Y2_E_INDEX
@@ -1256,6 +1300,24 @@
1256 1300
       #define Z2_SERIAL_RX_PIN _EPIN(Z2_E_INDEX, SERIAL_RX)
1257 1301
     #endif
1258 1302
   #endif
1303
+  #if Z2_STALL_SENSITIVITY && ENABLED(X_DUAL_ENDSTOPS) && _EPIN(Z2_E_INDEX, DIAG) > 0
1304
+    #if   DIAG_REMAPPED(Z2, X_MIN)
1305
+      #define Z2_USE_ENDSTOP _XMIN_
1306
+    #elif DIAG_REMAPPED(Z2, Y_MIN)
1307
+      #define Z2_USE_ENDSTOP _YMIN_
1308
+    #elif DIAG_REMAPPED(Z2, Z_MIN)
1309
+      #define Z2_USE_ENDSTOP _ZMIN_
1310
+    #elif DIAG_REMAPPED(Z2, X_MAX)
1311
+      #define Z2_USE_ENDSTOP _XMAX_
1312
+    #elif DIAG_REMAPPED(Z2, Y_MAX)
1313
+      #define Z2_USE_ENDSTOP _YMAX_
1314
+    #elif DIAG_REMAPPED(Z2, Z_MAX)
1315
+      #define Z2_USE_ENDSTOP _ZMAX_
1316
+    #else
1317
+      #define _Z2_USE_ENDSTOP(P) _E##P##_DIAG_
1318
+      #define Z2_USE_ENDSTOP _Z2_USE_ENDSTOP(Z2_E_INDEX)
1319
+    #endif
1320
+  #endif
1259 1321
   #define Z3_E_INDEX INCREMENT(Z2_E_INDEX)
1260 1322
 #else
1261 1323
   #define Z3_E_INDEX Z2_E_INDEX
@@ -1285,7 +1347,7 @@
1285 1347
   #endif
1286 1348
   #if AXIS_HAS_SPI(Z3)
1287 1349
     #ifndef Z3_CS_PIN
1288
-      #define Z3_CS_PIN     _EPIN(Z3_E_INDEX, CS)
1350
+      #define Z3_CS_PIN   _EPIN(Z3_E_INDEX, CS)
1289 1351
     #endif
1290 1352
   #endif
1291 1353
   #ifndef Z3_MS1_PIN
@@ -1305,6 +1367,24 @@
1305 1367
       #define Z3_SERIAL_RX_PIN _EPIN(Z3_E_INDEX, SERIAL_RX)
1306 1368
     #endif
1307 1369
   #endif
1370
+  #if Z3_STALL_SENSITIVITY && ENABLED(X_DUAL_ENDSTOPS) && _EPIN(Z3_E_INDEX, DIAG) > 0
1371
+    #if   DIAG_REMAPPED(Z3, X_MIN)
1372
+      #define Z3_USE_ENDSTOP _XMIN_
1373
+    #elif DIAG_REMAPPED(Z3, Y_MIN)
1374
+      #define Z3_USE_ENDSTOP _YMIN_
1375
+    #elif DIAG_REMAPPED(Z3, Z_MIN)
1376
+      #define Z3_USE_ENDSTOP _ZMIN_
1377
+    #elif DIAG_REMAPPED(Z3, X_MAX)
1378
+      #define Z3_USE_ENDSTOP _XMAX_
1379
+    #elif DIAG_REMAPPED(Z3, Y_MAX)
1380
+      #define Z3_USE_ENDSTOP _YMAX_
1381
+    #elif DIAG_REMAPPED(Z3, Z_MAX)
1382
+      #define Z3_USE_ENDSTOP _ZMAX_
1383
+    #else
1384
+      #define _Z3_USE_ENDSTOP(P) _E##P##_DIAG_
1385
+      #define Z3_USE_ENDSTOP _Y2_USE_ENDSTOP(Y2_E_INDEX)
1386
+    #endif
1387
+  #endif
1308 1388
   #define Z4_E_INDEX INCREMENT(Z3_E_INDEX)
1309 1389
 #endif
1310 1390
 
@@ -1352,6 +1432,24 @@
1352 1432
       #define Z4_SERIAL_RX_PIN _EPIN(Z4_E_INDEX, SERIAL_RX)
1353 1433
     #endif
1354 1434
   #endif
1435
+  #if Z4_STALL_SENSITIVITY && ENABLED(X_DUAL_ENDSTOPS) && _EPIN(Z4_E_INDEX, DIAG) > 0
1436
+    #if   DIAG_REMAPPED(Z4, X_MIN)
1437
+      #define Z4_USE_ENDSTOP _XMIN_
1438
+    #elif DIAG_REMAPPED(Z4, Y_MIN)
1439
+      #define Z4_USE_ENDSTOP _YMIN_
1440
+    #elif DIAG_REMAPPED(Z4, Z_MIN)
1441
+      #define Z4_USE_ENDSTOP _ZMIN_
1442
+    #elif DIAG_REMAPPED(Z4, X_MAX)
1443
+      #define Z4_USE_ENDSTOP _XMAX_
1444
+    #elif DIAG_REMAPPED(Z4, Y_MAX)
1445
+      #define Z4_USE_ENDSTOP _YMAX_
1446
+    #elif DIAG_REMAPPED(Z4, Z_MAX)
1447
+      #define Z4_USE_ENDSTOP _ZMAX_
1448
+    #else
1449
+      #define _Z4_USE_ENDSTOP(P) _E##P##_DIAG_
1450
+      #define Z4_USE_ENDSTOP _Z4_USE_ENDSTOP(Z4_E_INDEX)
1451
+    #endif
1452
+  #endif
1355 1453
 #endif
1356 1454
 
1357 1455
 #ifndef Z4_CS_PIN
@@ -1384,3 +1482,4 @@
1384 1482
 #endif
1385 1483
 
1386 1484
 #undef HAS_FREE_AUX2_PINS
1485
+#undef DIAG_REMAPPED

+ 65
- 2
Marlin/src/pins/pinsDebug_list.h Прегледај датотеку

@@ -1323,6 +1323,9 @@
1323 1323
 #if PIN_EXISTS(X_MIN)
1324 1324
   REPORT_NAME_DIGITAL(__LINE__, X_MIN_PIN)
1325 1325
 #endif
1326
+#if PIN_EXISTS(X_DIAG)
1327
+  REPORT_NAME_DIGITAL(__LINE__, X_DIAG_PIN)
1328
+#endif
1326 1329
 #if PIN_EXISTS(X_MS1)
1327 1330
   REPORT_NAME_DIGITAL(__LINE__, X_MS1_PIN)
1328 1331
 #endif
@@ -1344,6 +1347,12 @@
1344 1347
 #if PIN_EXISTS(X2_ENABLE)
1345 1348
   REPORT_NAME_DIGITAL(__LINE__, X2_ENABLE_PIN)
1346 1349
 #endif
1350
+#if PIN_EXISTS(X2_MAX)
1351
+  REPORT_NAME_DIGITAL(__LINE__, X2_MAX_PIN)
1352
+#endif
1353
+#if PIN_EXISTS(X2_MIN)
1354
+  REPORT_NAME_DIGITAL(__LINE__, X2_MIN_PIN)
1355
+#endif
1347 1356
 #if PIN_EXISTS(X2_MS1)
1348 1357
   REPORT_NAME_DIGITAL(__LINE__, X2_MS1_PIN)
1349 1358
 #endif
@@ -1374,6 +1383,9 @@
1374 1383
 #if PIN_EXISTS(Y_MIN)
1375 1384
   REPORT_NAME_DIGITAL(__LINE__, Y_MIN_PIN)
1376 1385
 #endif
1386
+#if PIN_EXISTS(Y_DIAG)
1387
+  REPORT_NAME_DIGITAL(__LINE__, Y_DIAG_PIN)
1388
+#endif
1377 1389
 #if PIN_EXISTS(Y_MS1)
1378 1390
   REPORT_NAME_DIGITAL(__LINE__, Y_MS1_PIN)
1379 1391
 #endif
@@ -1395,6 +1407,12 @@
1395 1407
 #if PIN_EXISTS(Y2_ENABLE)
1396 1408
   REPORT_NAME_DIGITAL(__LINE__, Y2_ENABLE_PIN)
1397 1409
 #endif
1410
+#if PIN_EXISTS(Y2_MAX)
1411
+  REPORT_NAME_DIGITAL(__LINE__, Y2_MAX_PIN)
1412
+#endif
1413
+#if PIN_EXISTS(Y2_MIN)
1414
+  REPORT_NAME_DIGITAL(__LINE__, Y2_MIN_PIN)
1415
+#endif
1398 1416
 #if PIN_EXISTS(Y2_MS1)
1399 1417
   REPORT_NAME_DIGITAL(__LINE__, Y2_MS1_PIN)
1400 1418
 #endif
@@ -1425,8 +1443,8 @@
1425 1443
 #if PIN_EXISTS(Z_MIN)
1426 1444
   REPORT_NAME_DIGITAL(__LINE__, Z_MIN_PIN)
1427 1445
 #endif
1428
-#if PIN_EXISTS(Z_MIN_PROBE)
1429
-  REPORT_NAME_DIGITAL(__LINE__, Z_MIN_PROBE_PIN)
1446
+#if PIN_EXISTS(Z_DIAG)
1447
+  REPORT_NAME_DIGITAL(__LINE__, Z_DIAG_PIN)
1430 1448
 #endif
1431 1449
 #if PIN_EXISTS(Z_MS1)
1432 1450
   REPORT_NAME_DIGITAL(__LINE__, Z_MS1_PIN)
@@ -1452,6 +1470,12 @@
1452 1470
 #if PIN_EXISTS(Z2_ENABLE)
1453 1471
   REPORT_NAME_DIGITAL(__LINE__, Z2_ENABLE_PIN)
1454 1472
 #endif
1473
+#if PIN_EXISTS(Z2_MAX)
1474
+  REPORT_NAME_DIGITAL(__LINE__, Z2_MAX_PIN)
1475
+#endif
1476
+#if PIN_EXISTS(Z2_MIN)
1477
+  REPORT_NAME_DIGITAL(__LINE__, Z2_MIN_PIN)
1478
+#endif
1455 1479
 #if PIN_EXISTS(Z2_MS1)
1456 1480
   REPORT_NAME_DIGITAL(__LINE__, Z2_MS1_PIN)
1457 1481
 #endif
@@ -1473,6 +1497,12 @@
1473 1497
 #if PIN_EXISTS(Z3_ENABLE)
1474 1498
   REPORT_NAME_DIGITAL(__LINE__, Z3_ENABLE_PIN)
1475 1499
 #endif
1500
+#if PIN_EXISTS(Z3_MAX)
1501
+  REPORT_NAME_DIGITAL(__LINE__, Z3_MAX_PIN)
1502
+#endif
1503
+#if PIN_EXISTS(Z3_MIN)
1504
+  REPORT_NAME_DIGITAL(__LINE__, Z3_MIN_PIN)
1505
+#endif
1476 1506
 #if PIN_EXISTS(Z3_MS1)
1477 1507
   REPORT_NAME_DIGITAL(__LINE__, Z3_MS1_PIN)
1478 1508
 #endif
@@ -1494,6 +1524,12 @@
1494 1524
 #if PIN_EXISTS(Z4_ENABLE)
1495 1525
   REPORT_NAME_DIGITAL(__LINE__, Z4_ENABLE_PIN)
1496 1526
 #endif
1527
+#if PIN_EXISTS(Z4_MAX)
1528
+  REPORT_NAME_DIGITAL(__LINE__, Z4_MAX_PIN)
1529
+#endif
1530
+#if PIN_EXISTS(Z4_MIN)
1531
+  REPORT_NAME_DIGITAL(__LINE__, Z4_MIN_PIN)
1532
+#endif
1497 1533
 #if PIN_EXISTS(Z4_MS1)
1498 1534
   REPORT_NAME_DIGITAL(__LINE__, Z4_MS1_PIN)
1499 1535
 #endif
@@ -1506,6 +1542,9 @@
1506 1542
 #if PIN_EXISTS(Z4_STEP)
1507 1543
   REPORT_NAME_DIGITAL(__LINE__, Z4_STEP_PIN)
1508 1544
 #endif
1545
+#if PIN_EXISTS(Z_MIN_PROBE)
1546
+  REPORT_NAME_DIGITAL(__LINE__, Z_MIN_PROBE_PIN)
1547
+#endif
1509 1548
 #if PIN_EXISTS(ZRIB_V20_D6)
1510 1549
   REPORT_NAME_DIGITAL(__LINE__, ZRIB_V20_D6_PIN)
1511 1550
 #endif
@@ -1560,48 +1599,72 @@
1560 1599
 #if PIN_EXISTS(Z4_SERIAL_RX)
1561 1600
   REPORT_NAME_DIGITAL(__LINE__, Z4_SERIAL_RX_PIN)
1562 1601
 #endif
1602
+#if PIN_EXISTS(E0_DIAG)
1603
+  REPORT_NAME_DIGITAL(__LINE__, E0_DIAG_PIN)
1604
+#endif
1563 1605
 #if PIN_EXISTS(E0_SERIAL_TX)
1564 1606
   REPORT_NAME_DIGITAL(__LINE__, E0_SERIAL_TX_PIN)
1565 1607
 #endif
1566 1608
 #if PIN_EXISTS(E0_SERIAL_RX)
1567 1609
   REPORT_NAME_DIGITAL(__LINE__, E0_SERIAL_RX_PIN)
1568 1610
 #endif
1611
+#if PIN_EXISTS(E1_DIAG)
1612
+  REPORT_NAME_DIGITAL(__LINE__, E1_DIAG_PIN)
1613
+#endif
1569 1614
 #if PIN_EXISTS(E1_SERIAL_TX)
1570 1615
   REPORT_NAME_DIGITAL(__LINE__, E1_SERIAL_TX_PIN)
1571 1616
 #endif
1572 1617
 #if PIN_EXISTS(E1_SERIAL_RX)
1573 1618
   REPORT_NAME_DIGITAL(__LINE__, E1_SERIAL_RX_PIN)
1574 1619
 #endif
1620
+#if PIN_EXISTS(E2_DIAG)
1621
+  REPORT_NAME_DIGITAL(__LINE__, E2_DIAG_PIN)
1622
+#endif
1575 1623
 #if PIN_EXISTS(E2_SERIAL_TX)
1576 1624
   REPORT_NAME_DIGITAL(__LINE__, E2_SERIAL_TX_PIN)
1577 1625
 #endif
1578 1626
 #if PIN_EXISTS(E2_SERIAL_RX)
1579 1627
   REPORT_NAME_DIGITAL(__LINE__, E2_SERIAL_RX_PIN)
1580 1628
 #endif
1629
+#if PIN_EXISTS(E3_DIAG)
1630
+  REPORT_NAME_DIGITAL(__LINE__, E3_DIAG_PIN)
1631
+#endif
1581 1632
 #if PIN_EXISTS(E3_SERIAL_TX)
1582 1633
   REPORT_NAME_DIGITAL(__LINE__, E3_SERIAL_TX_PIN)
1583 1634
 #endif
1584 1635
 #if PIN_EXISTS(E3_SERIAL_RX)
1585 1636
   REPORT_NAME_DIGITAL(__LINE__, E3_SERIAL_RX_PIN)
1586 1637
 #endif
1638
+#if PIN_EXISTS(E4_DIAG)
1639
+  REPORT_NAME_DIGITAL(__LINE__, E4_DIAG_PIN)
1640
+#endif
1587 1641
 #if PIN_EXISTS(E4_SERIAL_TX)
1588 1642
   REPORT_NAME_DIGITAL(__LINE__, E4_SERIAL_TX_PIN)
1589 1643
 #endif
1590 1644
 #if PIN_EXISTS(E4_SERIAL_RX)
1591 1645
   REPORT_NAME_DIGITAL(__LINE__, E4_SERIAL_RX_PIN)
1592 1646
 #endif
1647
+#if PIN_EXISTS(E5_DIAG)
1648
+  REPORT_NAME_DIGITAL(__LINE__, E5_DIAG_PIN)
1649
+#endif
1593 1650
 #if PIN_EXISTS(E5_SERIAL_TX)
1594 1651
   REPORT_NAME_DIGITAL(__LINE__, E5_SERIAL_TX_PIN)
1595 1652
 #endif
1596 1653
 #if PIN_EXISTS(E5_SERIAL_RX)
1597 1654
   REPORT_NAME_DIGITAL(__LINE__, E5_SERIAL_RX_PIN)
1598 1655
 #endif
1656
+#if PIN_EXISTS(E6_DIAG)
1657
+  REPORT_NAME_DIGITAL(__LINE__, E6_DIAG_PIN)
1658
+#endif
1599 1659
 #if PIN_EXISTS(E6_SERIAL_TX)
1600 1660
   REPORT_NAME_DIGITAL(__LINE__, E6_SERIAL_TX_PIN)
1601 1661
 #endif
1602 1662
 #if PIN_EXISTS(E6_SERIAL_RX)
1603 1663
   REPORT_NAME_DIGITAL(__LINE__, E6_SERIAL_RX_PIN)
1604 1664
 #endif
1665
+#if PIN_EXISTS(E7_DIAG)
1666
+  REPORT_NAME_DIGITAL(__LINE__, E7_DIAG_PIN)
1667
+#endif
1605 1668
 #if PIN_EXISTS(E7_SERIAL_TX)
1606 1669
   REPORT_NAME_DIGITAL(__LINE__, E7_SERIAL_TX_PIN)
1607 1670
 #endif

Loading…
Откажи
Сачувај