Browse Source

SPI chaining with TMCStepper simplified interface (#15179)

Bob Kuhn 5 years ago
parent
commit
178dcd6fd8
100 changed files with 2514 additions and 2609 deletions
  1. 26
    26
      Marlin/Configuration_adv.h
  2. 8
    2
      Marlin/src/feature/tmc_util.h
  3. 0
    3
      Marlin/src/inc/Conditionals_adv.h
  4. 34
    45
      Marlin/src/inc/SanityCheck.h
  5. 2
    89
      Marlin/src/module/stepper/trinamic.cpp
  6. 26
    26
      config/default/Configuration_adv.h
  7. 26
    26
      config/examples/3DFabXYZ/Migbot/Configuration_adv.h
  8. 26
    26
      config/examples/ADIMLab/Gantry v1/Configuration_adv.h
  9. 26
    26
      config/examples/ADIMLab/Gantry v2/Configuration_adv.h
  10. 26
    26
      config/examples/AlephObjects/TAZ4/Configuration_adv.h
  11. 26
    26
      config/examples/Alfawise/U20-bltouch/Configuration_adv.h
  12. 26
    26
      config/examples/Alfawise/U20/Configuration_adv.h
  13. 26
    26
      config/examples/AliExpress/UM2pExt/Configuration_adv.h
  14. 26
    26
      config/examples/Anet/A2/Configuration_adv.h
  15. 26
    26
      config/examples/Anet/A2plus/Configuration_adv.h
  16. 26
    26
      config/examples/Anet/A6/Configuration_adv.h
  17. 26
    26
      config/examples/Anet/A8/Configuration_adv.h
  18. 26
    26
      config/examples/Anet/A8plus/Configuration_adv.h
  19. 26
    26
      config/examples/Anet/E16/Configuration_adv.h
  20. 26
    26
      config/examples/AnyCubic/i3/Configuration_adv.h
  21. 26
    26
      config/examples/ArmEd/Configuration_adv.h
  22. 26
    26
      config/examples/BIBO/TouchX/cyclops/Configuration_adv.h
  23. 26
    26
      config/examples/BIBO/TouchX/default/Configuration_adv.h
  24. 26
    26
      config/examples/BQ/Hephestos/Configuration_adv.h
  25. 26
    26
      config/examples/BQ/Hephestos_2/Configuration_adv.h
  26. 26
    26
      config/examples/BQ/WITBOX/Configuration_adv.h
  27. 26
    26
      config/examples/Cartesio/Configuration_adv.h
  28. 26
    26
      config/examples/Creality/CR-10/Configuration_adv.h
  29. 26
    26
      config/examples/Creality/CR-10S/Configuration_adv.h
  30. 26
    26
      config/examples/Creality/CR-10_5S/Configuration_adv.h
  31. 26
    26
      config/examples/Creality/CR-10mini/Configuration_adv.h
  32. 26
    26
      config/examples/Creality/CR-20 Pro/Configuration_adv.h
  33. 26
    26
      config/examples/Creality/CR-20/Configuration_adv.h
  34. 26
    26
      config/examples/Creality/CR-8/Configuration_adv.h
  35. 26
    26
      config/examples/Creality/Ender-2/Configuration_adv.h
  36. 26
    26
      config/examples/Creality/Ender-3/Configuration_adv.h
  37. 26
    26
      config/examples/Creality/Ender-4/Configuration_adv.h
  38. 26
    26
      config/examples/Creality/Ender-5/Configuration_adv.h
  39. 26
    26
      config/examples/Dagoma/Disco Ultimate/Configuration_adv.h
  40. 26
    26
      config/examples/EVNOVO (Artillery)/Sidewinder X1/Configuration_adv.h
  41. 26
    26
      config/examples/Einstart-S/Configuration_adv.h
  42. 26
    26
      config/examples/FYSETC/AIO_II/Configuration_adv.h
  43. 26
    26
      config/examples/FYSETC/Cheetah 1.2/BLTouch/Configuration_adv.h
  44. 26
    26
      config/examples/FYSETC/Cheetah 1.2/base/Configuration_adv.h
  45. 26
    26
      config/examples/FYSETC/Cheetah/BLTouch/Configuration_adv.h
  46. 26
    26
      config/examples/FYSETC/Cheetah/base/Configuration_adv.h
  47. 26
    26
      config/examples/FYSETC/F6_13/Configuration_adv.h
  48. 26
    26
      config/examples/Felix/Configuration_adv.h
  49. 26
    26
      config/examples/FlashForge/CreatorPro/Configuration_adv.h
  50. 26
    26
      config/examples/FolgerTech/i3-2020/Configuration_adv.h
  51. 26
    26
      config/examples/Formbot/Raptor/Configuration_adv.h
  52. 26
    26
      config/examples/Formbot/T_Rex_2+/Configuration_adv.h
  53. 26
    26
      config/examples/Formbot/T_Rex_3/Configuration_adv.h
  54. 26
    26
      config/examples/Geeetech/A10/Configuration_adv.h
  55. 26
    26
      config/examples/Geeetech/A10M/Configuration_adv.h
  56. 26
    26
      config/examples/Geeetech/A20M/Configuration_adv.h
  57. 26
    26
      config/examples/Geeetech/MeCreator2/Configuration_adv.h
  58. 26
    26
      config/examples/Geeetech/Prusa i3 Pro C/Configuration_adv.h
  59. 26
    26
      config/examples/Geeetech/Prusa i3 Pro W/Configuration_adv.h
  60. 26
    26
      config/examples/HMS434/Configuration_adv.h
  61. 26
    26
      config/examples/Infitary/i3-M508/Configuration_adv.h
  62. 26
    26
      config/examples/JGAurora/A1/Configuration_adv.h
  63. 26
    26
      config/examples/JGAurora/A5/Configuration_adv.h
  64. 26
    26
      config/examples/JGAurora/A5S/Configuration_adv.h
  65. 26
    26
      config/examples/MakerParts/Configuration_adv.h
  66. 26
    26
      config/examples/Malyan/M150/Configuration_adv.h
  67. 26
    26
      config/examples/Malyan/M200/Configuration_adv.h
  68. 26
    26
      config/examples/Micromake/C1/enhanced/Configuration_adv.h
  69. 26
    26
      config/examples/Mks/Robin/Configuration_adv.h
  70. 26
    26
      config/examples/Mks/Sbase/Configuration_adv.h
  71. 26
    26
      config/examples/RapideLite/RL200/Configuration_adv.h
  72. 26
    26
      config/examples/RigidBot/Configuration_adv.h
  73. 26
    26
      config/examples/SCARA/Configuration_adv.h
  74. 26
    26
      config/examples/STM32/Black_STM32F407VET6/Configuration_adv.h
  75. 26
    26
      config/examples/Sanguinololu/Configuration_adv.h
  76. 26
    26
      config/examples/Tevo/Michelangelo/Configuration_adv.h
  77. 26
    26
      config/examples/Tevo/Tarantula Pro/Configuration_adv.h
  78. 26
    26
      config/examples/Tevo/Tornado/V1 (MKS Base)/Configuration_adv.h
  79. 26
    26
      config/examples/Tevo/Tornado/V2 (MKS GEN-L)/Configuration_adv.h
  80. 26
    26
      config/examples/TheBorg/Configuration_adv.h
  81. 26
    26
      config/examples/TinyBoy2/Configuration_adv.h
  82. 26
    26
      config/examples/Tronxy/X3A/Configuration_adv.h
  83. 26
    26
      config/examples/Tronxy/X5S-2E/Configuration_adv.h
  84. 26
    26
      config/examples/UltiMachine/Archim1/Configuration_adv.h
  85. 26
    26
      config/examples/UltiMachine/Archim2/Configuration_adv.h
  86. 26
    26
      config/examples/VORONDesign/Configuration_adv.h
  87. 26
    26
      config/examples/Velleman/K8200/Configuration_adv.h
  88. 26
    26
      config/examples/Velleman/K8400/Configuration_adv.h
  89. 26
    26
      config/examples/WASP/PowerWASP/Configuration_adv.h
  90. 26
    26
      config/examples/Wanhao/Duplicator 6/Configuration_adv.h
  91. 26
    26
      config/examples/Wanhao/Duplicator i3 Mini/Configuration_adv.h
  92. 26
    26
      config/examples/delta/Anycubic/Kossel/Configuration_adv.h
  93. 26
    26
      config/examples/delta/Dreammaker/Overlord/Configuration_adv.h
  94. 26
    26
      config/examples/delta/Dreammaker/Overlord_Pro/Configuration_adv.h
  95. 26
    26
      config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h
  96. 26
    26
      config/examples/delta/FLSUN/kossel/Configuration_adv.h
  97. 26
    26
      config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h
  98. 26
    26
      config/examples/delta/Geeetech/Rostock 301/Configuration_adv.h
  99. 26
    26
      config/examples/delta/MKS/SBASE/Configuration_adv.h
  100. 0
    0
      config/examples/delta/Tevo Little Monster/Configuration_adv.h

+ 26
- 26
Marlin/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 8
- 2
Marlin/src/feature/tmc_util.h View File

103
     TMCMarlin(const uint16_t cs_pin, const float RS) :
103
     TMCMarlin(const uint16_t cs_pin, const float RS) :
104
       TMC(cs_pin, RS)
104
       TMC(cs_pin, RS)
105
       {}
105
       {}
106
+    TMCMarlin(const uint16_t cs_pin, const float RS, const uint8_t axis_chain_index) :
107
+      TMC(cs_pin, RS, axis_chain_index)
108
+      {}
106
     TMCMarlin(const uint16_t CS, const float RS, const uint16_t pinMOSI, const uint16_t pinMISO, const uint16_t pinSCK) :
109
     TMCMarlin(const uint16_t CS, const float RS, const uint16_t pinMOSI, const uint16_t pinMISO, const uint16_t pinSCK) :
107
       TMC(CS, RS, pinMOSI, pinMISO, pinSCK)
110
       TMC(CS, RS, pinMOSI, pinMISO, pinSCK)
108
       {}
111
       {}
112
+    TMCMarlin(const uint16_t CS, const float RS, const uint16_t pinMOSI, const uint16_t pinMISO, const uint16_t pinSCK, const uint8_t axis_chain_index) :
113
+      TMC(CS, RS, pinMOSI, pinMISO, pinSCK,  axis_chain_index)
114
+      {}
109
     inline uint16_t rms_current() { return TMC::rms_current(); }
115
     inline uint16_t rms_current() { return TMC::rms_current(); }
110
     inline void rms_current(uint16_t mA) {
116
     inline void rms_current(uint16_t mA) {
111
       this->val_mA = mA;
117
       this->val_mA = mA;
267
 template<char AXIS_LETTER, char DRIVER_ID, AxisEnum AXIS_ID>
273
 template<char AXIS_LETTER, char DRIVER_ID, AxisEnum AXIS_ID>
268
 class TMCMarlin<TMC2660Stepper, AXIS_LETTER, DRIVER_ID, AXIS_ID> : public TMC2660Stepper, public TMCStorage<AXIS_LETTER, DRIVER_ID> {
274
 class TMCMarlin<TMC2660Stepper, AXIS_LETTER, DRIVER_ID, AXIS_ID> : public TMC2660Stepper, public TMCStorage<AXIS_LETTER, DRIVER_ID> {
269
   public:
275
   public:
270
-    TMCMarlin(const uint16_t cs_pin, const float RS) :
276
+    TMCMarlin(const uint16_t cs_pin, const float RS, const uint8_t) :
271
       TMC2660Stepper(cs_pin, RS)
277
       TMC2660Stepper(cs_pin, RS)
272
       {}
278
       {}
273
-    TMCMarlin(const uint16_t CS, const float RS, const uint16_t pinMOSI, const uint16_t pinMISO, const uint16_t pinSCK) :
279
+    TMCMarlin(const uint16_t CS, const float RS, const uint16_t pinMOSI, const uint16_t pinMISO, const uint16_t pinSCK, const uint8_t) :
274
       TMC2660Stepper(CS, RS, pinMOSI, pinMISO, pinSCK)
280
       TMC2660Stepper(CS, RS, pinMOSI, pinMISO, pinSCK)
275
       {}
281
       {}
276
     inline uint16_t rms_current() { return TMC2660Stepper::rms_current(); }
282
     inline uint16_t rms_current() { return TMC2660Stepper::rms_current(); }

+ 0
- 3
Marlin/src/inc/Conditionals_adv.h View File

131
 // Extensible UI pin mapping for RepRapDiscount
131
 // Extensible UI pin mapping for RepRapDiscount
132
 #define TOUCH_UI_ULTIPANEL ENABLED(LULZBOT_TOUCH_UI) && ANY(AO_EXP1_PINMAP, AO_EXP2_PINMAP, CR10_TFT_PINMAP)
132
 #define TOUCH_UI_ULTIPANEL ENABLED(LULZBOT_TOUCH_UI) && ANY(AO_EXP1_PINMAP, AO_EXP2_PINMAP, CR10_TFT_PINMAP)
133
 
133
 
134
-// TMC SPI Chaining
135
-#define TMC_USE_CHAIN (X_CHAIN_POS||Y_CHAIN_POS||Z_CHAIN_POS||X2_CHAIN_POS||Y2_CHAIN_POS||Z2_CHAIN_POS||Z3_CHAIN_POS||E0_CHAIN_POS||E1_CHAIN_POS||E2_CHAIN_POS||E3_CHAIN_POS||E4_CHAIN_POS||E5_CHAIN_POS)
136
-
137
 // Poll-based jogging for joystick and other devices
134
 // Poll-based jogging for joystick and other devices
138
 #if ENABLED(JOYSTICK)
135
 #if ENABLED(JOYSTICK)
139
   #define POLL_JOG
136
   #define POLL_JOG

+ 34
- 45
Marlin/src/inc/SanityCheck.h View File

2157
   #error "STEALTHCHOP requires TMC2130, TMC2160, TMC2208, TMC2209, or TMC5160 stepper drivers."
2157
   #error "STEALTHCHOP requires TMC2130, TMC2160, TMC2208, TMC2209, or TMC5160 stepper drivers."
2158
 #endif
2158
 #endif
2159
 
2159
 
2160
-#if TMC_USE_CHAIN
2161
-  #if  (X_CHAIN_POS  && !PIN_EXISTS(X_CS) ) \
2162
-    || (Y_CHAIN_POS  && !PIN_EXISTS(Y_CS) ) \
2163
-    || (Z_CHAIN_POS  && !PIN_EXISTS(Z_CS) ) \
2164
-    || (X2_CHAIN_POS && !PIN_EXISTS(X2_CS)) \
2165
-    || (Y2_CHAIN_POS && !PIN_EXISTS(Y2_CS)) \
2166
-    || (Z2_CHAIN_POS && !PIN_EXISTS(Z2_CS)) \
2167
-    || (Z3_CHAIN_POS && !PIN_EXISTS(Z3_CS)) \
2168
-    || (E0_CHAIN_POS && !PIN_EXISTS(E0_CS)) \
2169
-    || (E1_CHAIN_POS && !PIN_EXISTS(E1_CS)) \
2170
-    || (E2_CHAIN_POS && !PIN_EXISTS(E2_CS)) \
2171
-    || (E3_CHAIN_POS && !PIN_EXISTS(E3_CS)) \
2172
-    || (E4_CHAIN_POS && !PIN_EXISTS(E4_CS)) \
2173
-    || (E5_CHAIN_POS && !PIN_EXISTS(E5_CS))
2174
-    #error "With TMC_USE_CHAIN all chained TMC drivers need a CS pin."
2160
+#define IN_CHAIN(A) (A##_CHAIN_POS > 0)
2161
+// TMC SPI Chaining
2162
+#if IN_CHAIN(X) || IN_CHAIN(Y) || IN_CHAIN(Z) || IN_CHAIN(X2) || IN_CHAIN(Y2) || IN_CHAIN(Z2) || IN_CHAIN(Z3) || IN_CHAIN(E0) || IN_CHAIN(E1) || IN_CHAIN(E2) || IN_CHAIN(E3) || IN_CHAIN(E4) || IN_CHAIN(E5)
2163
+  #if  (IN_CHAIN(X)  && !PIN_EXISTS(X_CS) ) || (IN_CHAIN(Y)  && !PIN_EXISTS(Y_CS) ) \
2164
+    || (IN_CHAIN(Z)  && !PIN_EXISTS(Z_CS) ) || (IN_CHAIN(X2) && !PIN_EXISTS(X2_CS)) \
2165
+    || (IN_CHAIN(Y2) && !PIN_EXISTS(Y2_CS)) || (IN_CHAIN(Z2) && !PIN_EXISTS(Z2_CS)) \
2166
+    || (IN_CHAIN(Z3) && !PIN_EXISTS(Z3_CS)) || (IN_CHAIN(E0) && !PIN_EXISTS(E0_CS)) \
2167
+    || (IN_CHAIN(E1) && !PIN_EXISTS(E1_CS)) || (IN_CHAIN(E2) && !PIN_EXISTS(E2_CS)) \
2168
+    || (IN_CHAIN(E3) && !PIN_EXISTS(E3_CS)) || (IN_CHAIN(E4) && !PIN_EXISTS(E4_CS)) \
2169
+    || (IN_CHAIN(E5) && !PIN_EXISTS(E5_CS))
2170
+    #error "All chained TMC drivers need a CS pin."
2175
   #else
2171
   #else
2176
-    #if X_CHAIN_POS
2172
+    #if IN_CHAIN(X)
2177
       #define CS_COMPARE X_CS_PIN
2173
       #define CS_COMPARE X_CS_PIN
2178
-    #elif Y_CHAIN_POS
2174
+    #elif IN_CHAIN(Y)
2179
       #define CS_COMPARE Y_CS_PIN
2175
       #define CS_COMPARE Y_CS_PIN
2180
-    #elif Z_CHAIN_POS
2176
+    #elif IN_CHAIN(Z)
2181
       #define CS_COMPARE Z_CS_PIN
2177
       #define CS_COMPARE Z_CS_PIN
2182
-    #elif X2_CHAIN_POS
2178
+    #elif IN_CHAIN(X2)
2183
       #define CS_COMPARE X2_CS_PIN
2179
       #define CS_COMPARE X2_CS_PIN
2184
-    #elif Y2_CHAIN_POS
2180
+    #elif IN_CHAIN(Y2)
2185
       #define CS_COMPARE Y2_CS_PIN
2181
       #define CS_COMPARE Y2_CS_PIN
2186
-    #elif Z2_CHAIN_POS
2182
+    #elif IN_CHAIN(Z2)
2187
       #define CS_COMPARE Z2_CS_PIN
2183
       #define CS_COMPARE Z2_CS_PIN
2188
-    #elif Z3_CHAIN_POS
2184
+    #elif IN_CHAIN(Z3)
2189
       #define CS_COMPARE Z3_CS_PIN
2185
       #define CS_COMPARE Z3_CS_PIN
2190
-    #elif E0_CHAIN_POS
2186
+    #elif IN_CHAIN(E0)
2191
       #define CS_COMPARE E0_CS_PIN
2187
       #define CS_COMPARE E0_CS_PIN
2192
-    #elif E1_CHAIN_POS
2188
+    #elif IN_CHAIN(E1)
2193
       #define CS_COMPARE E1_CS_PIN
2189
       #define CS_COMPARE E1_CS_PIN
2194
-    #elif E2_CHAIN_POS
2190
+    #elif IN_CHAIN(E2)
2195
       #define CS_COMPARE E2_CS_PIN
2191
       #define CS_COMPARE E2_CS_PIN
2196
-    #elif E3_CHAIN_POS
2192
+    #elif IN_CHAIN(E3)
2197
       #define CS_COMPARE E3_CS_PIN
2193
       #define CS_COMPARE E3_CS_PIN
2198
-    #elif E4_CHAIN_POS
2194
+    #elif IN_CHAIN(E4)
2199
       #define CS_COMPARE E4_CS_PIN
2195
       #define CS_COMPARE E4_CS_PIN
2200
-    #elif E5_CHAIN_POS
2196
+    #elif IN_CHAIN(E5)
2201
       #define CS_COMPARE E5_CS_PIN
2197
       #define CS_COMPARE E5_CS_PIN
2202
-    #else
2203
-      #error "With TMC_USE_CHAIN some TMC drivers should be chained."
2204
     #endif
2198
     #endif
2205
-    #if  (X_CHAIN_POS  && X_CS_PIN  != CS_COMPARE) \
2206
-      || (Y_CHAIN_POS  && Y_CS_PIN  != CS_COMPARE) \
2207
-      || (Z_CHAIN_POS  && Z_CS_PIN  != CS_COMPARE) \
2208
-      || (X2_CHAIN_POS && X2_CS_PIN != CS_COMPARE) \
2209
-      || (Y2_CHAIN_POS && Y2_CS_PIN != CS_COMPARE) \
2210
-      || (Z2_CHAIN_POS && Z2_CS_PIN != CS_COMPARE) \
2211
-      || (Z3_CHAIN_POS && Z3_CS_PIN != CS_COMPARE) \
2212
-      || (E0_CHAIN_POS && E0_CS_PIN != CS_COMPARE) \
2213
-      || (E1_CHAIN_POS && E1_CS_PIN != CS_COMPARE) \
2214
-      || (E2_CHAIN_POS && E2_CS_PIN != CS_COMPARE) \
2215
-      || (E3_CHAIN_POS && E3_CS_PIN != CS_COMPARE) \
2216
-      || (E4_CHAIN_POS && E4_CS_PIN != CS_COMPARE) \
2217
-      || (E5_CHAIN_POS && E5_CS_PIN != CS_COMPARE)
2218
-      #error "With TMC_USE_CHAIN all TMC drivers must use the same CS pin."
2199
+    #if  (IN_CHAIN(X)  && X_CS_PIN  != CS_COMPARE) || (IN_CHAIN(Y)  && Y_CS_PIN  != CS_COMPARE) \
2200
+      || (IN_CHAIN(Z)  && Z_CS_PIN  != CS_COMPARE) || (IN_CHAIN(X2) && X2_CS_PIN != CS_COMPARE) \
2201
+      || (IN_CHAIN(Y2) && Y2_CS_PIN != CS_COMPARE) || (IN_CHAIN(Z2) && Z2_CS_PIN != CS_COMPARE) \
2202
+      || (IN_CHAIN(Z3) && Z3_CS_PIN != CS_COMPARE) || (IN_CHAIN(E0) && E0_CS_PIN != CS_COMPARE) \
2203
+      || (IN_CHAIN(E1) && E1_CS_PIN != CS_COMPARE) || (IN_CHAIN(E2) && E2_CS_PIN != CS_COMPARE) \
2204
+      || (IN_CHAIN(E3) && E3_CS_PIN != CS_COMPARE) || (IN_CHAIN(E4) && E4_CS_PIN != CS_COMPARE) \
2205
+      || (IN_CHAIN(E5) && E5_CS_PIN != CS_COMPARE)
2206
+      #error "All chained TMC drivers must use the same CS pin."
2219
     #endif
2207
     #endif
2220
   #endif
2208
   #endif
2221
   #undef CS_COMPARE
2209
   #undef CS_COMPARE
2222
-#endif // TMC_USE_CHAIN
2210
+#endif
2211
+#undef IN_CHAIN
2223
 
2212
 
2224
 #if ENABLED(DELTA) && (ENABLED(STEALTHCHOP_XY) != ENABLED(STEALTHCHOP_Z))
2213
 #if ENABLED(DELTA) && (ENABLED(STEALTHCHOP_XY) != ENABLED(STEALTHCHOP_Z))
2225
   #error "STEALTHCHOP_XY and STEALTHCHOP_Z must be the same on DELTA."
2214
   #error "STEALTHCHOP_XY and STEALTHCHOP_Z must be the same on DELTA."

+ 2
- 89
Marlin/src/module/stepper/trinamic.cpp View File

44
 //   AI = Axis Enum Index
44
 //   AI = Axis Enum Index
45
 // SWHW = SW/SH UART selection
45
 // SWHW = SW/SH UART selection
46
 #if ENABLED(TMC_USE_SW_SPI)
46
 #if ENABLED(TMC_USE_SW_SPI)
47
-  #define __TMC_SPI_DEFINE(IC, ST, L, AI) TMCMarlin<IC##Stepper, L, AI> stepper##ST(ST##_CS_PIN, ST##_RSENSE, TMC_SW_MOSI, TMC_SW_MISO, TMC_SW_SCK)
47
+  #define __TMC_SPI_DEFINE(IC, ST, L, AI) TMCMarlin<IC##Stepper, L, AI> stepper##ST(ST##_CS_PIN, ST##_RSENSE, TMC_SW_MOSI, TMC_SW_MISO, TMC_SW_SCK, ST##_CHAIN_POS)
48
 #else
48
 #else
49
-  #define __TMC_SPI_DEFINE(IC, ST, L, AI) TMCMarlin<IC##Stepper, L, AI> stepper##ST(ST##_CS_PIN, ST##_RSENSE)
49
+  #define __TMC_SPI_DEFINE(IC, ST, L, AI) TMCMarlin<IC##Stepper, L, AI> stepper##ST(ST##_CS_PIN, ST##_RSENSE, ST##_CHAIN_POS)
50
 #endif
50
 #endif
51
 
51
 
52
 #define TMC_UART_HW_DEFINE(IC, ST, L, AI) TMCMarlin<IC##Stepper, L, AI> stepper##ST(&ST##_HARDWARE_SERIAL, ST##_RSENSE, ST##_SLAVE_ADDRESS)
52
 #define TMC_UART_HW_DEFINE(IC, ST, L, AI) TMCMarlin<IC##Stepper, L, AI> stepper##ST(&ST##_HARDWARE_SERIAL, ST##_RSENSE, ST##_SLAVE_ADDRESS)
653
     #endif
653
     #endif
654
   };
654
   };
655
 
655
 
656
-  #if TMC_USE_CHAIN
657
-
658
-    enum TMC_axis_enum : unsigned char { _, X, Y, Z, X2, Y2, Z2, Z3, E0, E1, E2, E3, E4, E5 };
659
-    #define __TMC_CHAIN(Q,V) do{ stepper##Q.set_chain_info(Q,V); }while(0)
660
-    #define _TMC_CHAIN(Q) __TMC_CHAIN(Q, Q##_CHAIN_POS)
661
-
662
-    #if AXIS_HAS_SPI(X)                  // First set chain array to uninitialized
663
-      __TMC_CHAIN(X, 0);
664
-    #endif
665
-    #if AXIS_HAS_SPI(X2)
666
-      __TMC_CHAIN(X2, 0);
667
-    #endif
668
-    #if AXIS_HAS_SPI(Y)
669
-      __TMC_CHAIN(Y, 0);
670
-    #endif
671
-    #if AXIS_HAS_SPI(Y2)
672
-      __TMC_CHAIN(Y2, 0);
673
-    #endif
674
-    #if AXIS_HAS_SPI(Z)
675
-      __TMC_CHAIN(Z, 0);
676
-    #endif
677
-    #if AXIS_HAS_SPI(Z2)
678
-      __TMC_CHAIN(Z2, 0);
679
-    #endif
680
-    #if AXIS_HAS_SPI(Z3)
681
-      __TMC_CHAIN(Z3, 0);
682
-    #endif
683
-    #if AXIS_HAS_SPI(E0)
684
-      __TMC_CHAIN(E0, 0);
685
-    #endif
686
-    #if AXIS_HAS_SPI(E1)
687
-      __TMC_CHAIN(E1, 0);
688
-    #endif
689
-    #if AXIS_HAS_SPI(E2)
690
-      __TMC_CHAIN(E2, 0);
691
-    #endif
692
-    #if AXIS_HAS_SPI(E3)
693
-      __TMC_CHAIN(E3, 0);
694
-    #endif
695
-    #if AXIS_HAS_SPI(E4)
696
-      __TMC_CHAIN(E4, 0);
697
-    #endif
698
-    #if AXIS_HAS_SPI(E5)
699
-      __TMC_CHAIN(E5, 0);
700
-    #endif
701
-
702
-    #if AXIS_HAS_SPI(X) && X_CHAIN_POS             // Now set up the SPI chain
703
-      _TMC_CHAIN(X);
704
-    #endif
705
-    #if AXIS_HAS_SPI(X2) && X2_CHAIN_POS
706
-      _TMC_CHAIN(X2);
707
-    #endif
708
-    #if AXIS_HAS_SPI(Y) && Y_CHAIN_POS
709
-      _TMC_CHAIN(Y);
710
-    #endif
711
-    #if AXIS_HAS_SPI(Y2) && Y2_CHAIN_POS
712
-      _TMC_CHAIN(Y2);
713
-    #endif
714
-    #if AXIS_HAS_SPI(Z) && Z_CHAIN_POS
715
-      _TMC_CHAIN(Z);
716
-    #endif
717
-    #if AXIS_HAS_SPI(Z2) && Z2_CHAIN_POS
718
-      _TMC_CHAIN(Z2);
719
-    #endif
720
-    #if AXIS_HAS_SPI(Z3) && Z3_CHAIN_POS
721
-      _TMC_CHAIN(Z3);
722
-    #endif
723
-    #if AXIS_HAS_SPI(E0) && E0_CHAIN_POS
724
-      _TMC_CHAIN(E0);
725
-    #endif
726
-    #if AXIS_HAS_SPI(E1) && E1_CHAIN_POS
727
-      _TMC_CHAIN(E1);
728
-    #endif
729
-    #if AXIS_HAS_SPI(E2) && E2_CHAIN_POS
730
-      _TMC_CHAIN(E2);
731
-    #endif
732
-    #if AXIS_HAS_SPI(E3) && E3_CHAIN_POS
733
-      _TMC_CHAIN(E3);
734
-    #endif
735
-    #if AXIS_HAS_SPI(E4) && E4_CHAIN_POS
736
-      _TMC_CHAIN(E4);
737
-    #endif
738
-    #if AXIS_HAS_SPI(E5) && E5_CHAIN_POS
739
-      _TMC_CHAIN(E5);
740
-    #endif
741
-  #endif // TMC_USE_CHAIN
742
-
743
   #if AXIS_IS_TMC(X)
656
   #if AXIS_IS_TMC(X)
744
     _TMC_INIT(X, STEALTH_AXIS_XY);
657
     _TMC_INIT(X, STEALTH_AXIS_XY);
745
   #endif
658
   #endif

+ 26
- 26
config/default/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/3DFabXYZ/Migbot/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/ADIMLab/Gantry v1/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/ADIMLab/Gantry v2/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/AlephObjects/TAZ4/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Alfawise/U20-bltouch/Configuration_adv.h View File

1802
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1802
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1803
     #define X_MICROSTEPS   16  // 0..256
1803
     #define X_MICROSTEPS   16  // 0..256
1804
     #define X_RSENSE     0.11
1804
     #define X_RSENSE     0.11
1805
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1805
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1806
   #endif
1806
   #endif
1807
 
1807
 
1808
   #if AXIS_IS_TMC(X2)
1808
   #if AXIS_IS_TMC(X2)
1809
     #define X2_CURRENT    800
1809
     #define X2_CURRENT    800
1810
     #define X2_MICROSTEPS  16
1810
     #define X2_MICROSTEPS  16
1811
     #define X2_RSENSE    0.11
1811
     #define X2_RSENSE    0.11
1812
-    #define X2_CHAIN_POS    0
1812
+    #define X2_CHAIN_POS   -1
1813
   #endif
1813
   #endif
1814
 
1814
 
1815
   #if AXIS_IS_TMC(Y)
1815
   #if AXIS_IS_TMC(Y)
1816
     #define Y_CURRENT     800
1816
     #define Y_CURRENT     800
1817
     #define Y_MICROSTEPS   16
1817
     #define Y_MICROSTEPS   16
1818
     #define Y_RSENSE     0.11
1818
     #define Y_RSENSE     0.11
1819
-    #define Y_CHAIN_POS     0
1819
+    #define Y_CHAIN_POS    -1
1820
   #endif
1820
   #endif
1821
 
1821
 
1822
   #if AXIS_IS_TMC(Y2)
1822
   #if AXIS_IS_TMC(Y2)
1823
     #define Y2_CURRENT    800
1823
     #define Y2_CURRENT    800
1824
     #define Y2_MICROSTEPS  16
1824
     #define Y2_MICROSTEPS  16
1825
     #define Y2_RSENSE    0.11
1825
     #define Y2_RSENSE    0.11
1826
-    #define Y2_CHAIN_POS    0
1826
+    #define Y2_CHAIN_POS   -1
1827
   #endif
1827
   #endif
1828
 
1828
 
1829
   #if AXIS_IS_TMC(Z)
1829
   #if AXIS_IS_TMC(Z)
1830
     #define Z_CURRENT     800
1830
     #define Z_CURRENT     800
1831
     #define Z_MICROSTEPS   16
1831
     #define Z_MICROSTEPS   16
1832
     #define Z_RSENSE     0.11
1832
     #define Z_RSENSE     0.11
1833
-    #define Z_CHAIN_POS     0
1833
+    #define Z_CHAIN_POS    -1
1834
   #endif
1834
   #endif
1835
 
1835
 
1836
   #if AXIS_IS_TMC(Z2)
1836
   #if AXIS_IS_TMC(Z2)
1837
     #define Z2_CURRENT    800
1837
     #define Z2_CURRENT    800
1838
     #define Z2_MICROSTEPS  16
1838
     #define Z2_MICROSTEPS  16
1839
     #define Z2_RSENSE    0.11
1839
     #define Z2_RSENSE    0.11
1840
-    #define Z2_CHAIN_POS    0
1840
+    #define Z2_CHAIN_POS   -1
1841
   #endif
1841
   #endif
1842
 
1842
 
1843
   #if AXIS_IS_TMC(Z3)
1843
   #if AXIS_IS_TMC(Z3)
1844
     #define Z3_CURRENT    800
1844
     #define Z3_CURRENT    800
1845
     #define Z3_MICROSTEPS  16
1845
     #define Z3_MICROSTEPS  16
1846
     #define Z3_RSENSE    0.11
1846
     #define Z3_RSENSE    0.11
1847
-    #define Z3_CHAIN_POS    0
1847
+    #define Z3_CHAIN_POS   -1
1848
   #endif
1848
   #endif
1849
 
1849
 
1850
   #if AXIS_IS_TMC(E0)
1850
   #if AXIS_IS_TMC(E0)
1851
     #define E0_CURRENT    800
1851
     #define E0_CURRENT    800
1852
     #define E0_MICROSTEPS  16
1852
     #define E0_MICROSTEPS  16
1853
     #define E0_RSENSE    0.11
1853
     #define E0_RSENSE    0.11
1854
-    #define E0_CHAIN_POS    0
1854
+    #define E0_CHAIN_POS   -1
1855
   #endif
1855
   #endif
1856
 
1856
 
1857
   #if AXIS_IS_TMC(E1)
1857
   #if AXIS_IS_TMC(E1)
1858
     #define E1_CURRENT    800
1858
     #define E1_CURRENT    800
1859
     #define E1_MICROSTEPS  16
1859
     #define E1_MICROSTEPS  16
1860
     #define E1_RSENSE    0.11
1860
     #define E1_RSENSE    0.11
1861
-    #define E1_CHAIN_POS    0
1861
+    #define E1_CHAIN_POS   -1
1862
   #endif
1862
   #endif
1863
 
1863
 
1864
   #if AXIS_IS_TMC(E2)
1864
   #if AXIS_IS_TMC(E2)
1865
     #define E2_CURRENT    800
1865
     #define E2_CURRENT    800
1866
     #define E2_MICROSTEPS  16
1866
     #define E2_MICROSTEPS  16
1867
     #define E2_RSENSE    0.11
1867
     #define E2_RSENSE    0.11
1868
-    #define E2_CHAIN_POS    0
1868
+    #define E2_CHAIN_POS   -1
1869
   #endif
1869
   #endif
1870
 
1870
 
1871
   #if AXIS_IS_TMC(E3)
1871
   #if AXIS_IS_TMC(E3)
1872
     #define E3_CURRENT    800
1872
     #define E3_CURRENT    800
1873
     #define E3_MICROSTEPS  16
1873
     #define E3_MICROSTEPS  16
1874
     #define E3_RSENSE    0.11
1874
     #define E3_RSENSE    0.11
1875
-    #define E3_CHAIN_POS    0
1875
+    #define E3_CHAIN_POS   -1
1876
   #endif
1876
   #endif
1877
 
1877
 
1878
   #if AXIS_IS_TMC(E4)
1878
   #if AXIS_IS_TMC(E4)
1879
     #define E4_CURRENT    800
1879
     #define E4_CURRENT    800
1880
     #define E4_MICROSTEPS  16
1880
     #define E4_MICROSTEPS  16
1881
     #define E4_RSENSE    0.11
1881
     #define E4_RSENSE    0.11
1882
-    #define E4_CHAIN_POS    0
1882
+    #define E4_CHAIN_POS   -1
1883
   #endif
1883
   #endif
1884
 
1884
 
1885
   #if AXIS_IS_TMC(E5)
1885
   #if AXIS_IS_TMC(E5)
1886
     #define E5_CURRENT    800
1886
     #define E5_CURRENT    800
1887
     #define E5_MICROSTEPS  16
1887
     #define E5_MICROSTEPS  16
1888
     #define E5_RSENSE    0.11
1888
     #define E5_RSENSE    0.11
1889
-    #define E5_CHAIN_POS    0
1889
+    #define E5_CHAIN_POS   -1
1890
   #endif
1890
   #endif
1891
 
1891
 
1892
   /**
1892
   /**
2112
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2112
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2113
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2113
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2114
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2114
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2115
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2115
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2116
   #endif
2116
   #endif
2117
 
2117
 
2118
   #if AXIS_DRIVER_TYPE_X2(L6470)
2118
   #if AXIS_DRIVER_TYPE_X2(L6470)
2120
     #define X2_OVERCURRENT    2000
2120
     #define X2_OVERCURRENT    2000
2121
     #define X2_STALLCURRENT   1500
2121
     #define X2_STALLCURRENT   1500
2122
     #define X2_MAX_VOLTAGE     127
2122
     #define X2_MAX_VOLTAGE     127
2123
-    #define X2_CHAIN_POS         0
2123
+    #define X2_CHAIN_POS        -1
2124
   #endif
2124
   #endif
2125
 
2125
 
2126
   #if AXIS_DRIVER_TYPE_Y(L6470)
2126
   #if AXIS_DRIVER_TYPE_Y(L6470)
2128
     #define Y_OVERCURRENT     2000
2128
     #define Y_OVERCURRENT     2000
2129
     #define Y_STALLCURRENT    1500
2129
     #define Y_STALLCURRENT    1500
2130
     #define Y_MAX_VOLTAGE      127
2130
     #define Y_MAX_VOLTAGE      127
2131
-    #define Y_CHAIN_POS          0
2131
+    #define Y_CHAIN_POS         -1
2132
   #endif
2132
   #endif
2133
 
2133
 
2134
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2134
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2136
     #define Y2_OVERCURRENT    2000
2136
     #define Y2_OVERCURRENT    2000
2137
     #define Y2_STALLCURRENT   1500
2137
     #define Y2_STALLCURRENT   1500
2138
     #define Y2_MAX_VOLTAGE     127
2138
     #define Y2_MAX_VOLTAGE     127
2139
-    #define Y2_CHAIN_POS         0
2139
+    #define Y2_CHAIN_POS        -1
2140
   #endif
2140
   #endif
2141
 
2141
 
2142
   #if AXIS_DRIVER_TYPE_Z(L6470)
2142
   #if AXIS_DRIVER_TYPE_Z(L6470)
2144
     #define Z_OVERCURRENT     2000
2144
     #define Z_OVERCURRENT     2000
2145
     #define Z_STALLCURRENT    1500
2145
     #define Z_STALLCURRENT    1500
2146
     #define Z_MAX_VOLTAGE      127
2146
     #define Z_MAX_VOLTAGE      127
2147
-    #define Z_CHAIN_POS          0
2147
+    #define Z_CHAIN_POS         -1
2148
   #endif
2148
   #endif
2149
 
2149
 
2150
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2150
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2152
     #define Z2_OVERCURRENT    2000
2152
     #define Z2_OVERCURRENT    2000
2153
     #define Z2_STALLCURRENT   1500
2153
     #define Z2_STALLCURRENT   1500
2154
     #define Z2_MAX_VOLTAGE     127
2154
     #define Z2_MAX_VOLTAGE     127
2155
-    #define Z2_CHAIN_POS         0
2155
+    #define Z2_CHAIN_POS        -1
2156
   #endif
2156
   #endif
2157
 
2157
 
2158
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2158
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2160
     #define Z3_OVERCURRENT    2000
2160
     #define Z3_OVERCURRENT    2000
2161
     #define Z3_STALLCURRENT   1500
2161
     #define Z3_STALLCURRENT   1500
2162
     #define Z3_MAX_VOLTAGE     127
2162
     #define Z3_MAX_VOLTAGE     127
2163
-    #define Z3_CHAIN_POS         0
2163
+    #define Z3_CHAIN_POS        -1
2164
   #endif
2164
   #endif
2165
 
2165
 
2166
   #if AXIS_DRIVER_TYPE_E0(L6470)
2166
   #if AXIS_DRIVER_TYPE_E0(L6470)
2168
     #define E0_OVERCURRENT    2000
2168
     #define E0_OVERCURRENT    2000
2169
     #define E0_STALLCURRENT   1500
2169
     #define E0_STALLCURRENT   1500
2170
     #define E0_MAX_VOLTAGE     127
2170
     #define E0_MAX_VOLTAGE     127
2171
-    #define E0_CHAIN_POS         0
2171
+    #define E0_CHAIN_POS        -1
2172
   #endif
2172
   #endif
2173
 
2173
 
2174
   #if AXIS_DRIVER_TYPE_E1(L6470)
2174
   #if AXIS_DRIVER_TYPE_E1(L6470)
2176
     #define E1_OVERCURRENT    2000
2176
     #define E1_OVERCURRENT    2000
2177
     #define E1_STALLCURRENT   1500
2177
     #define E1_STALLCURRENT   1500
2178
     #define E1_MAX_VOLTAGE     127
2178
     #define E1_MAX_VOLTAGE     127
2179
-    #define E1_CHAIN_POS         0
2179
+    #define E1_CHAIN_POS        -1
2180
   #endif
2180
   #endif
2181
 
2181
 
2182
   #if AXIS_DRIVER_TYPE_E2(L6470)
2182
   #if AXIS_DRIVER_TYPE_E2(L6470)
2184
     #define E2_OVERCURRENT    2000
2184
     #define E2_OVERCURRENT    2000
2185
     #define E2_STALLCURRENT   1500
2185
     #define E2_STALLCURRENT   1500
2186
     #define E2_MAX_VOLTAGE     127
2186
     #define E2_MAX_VOLTAGE     127
2187
-    #define E2_CHAIN_POS         0
2187
+    #define E2_CHAIN_POS        -1
2188
   #endif
2188
   #endif
2189
 
2189
 
2190
   #if AXIS_DRIVER_TYPE_E3(L6470)
2190
   #if AXIS_DRIVER_TYPE_E3(L6470)
2192
     #define E3_OVERCURRENT    2000
2192
     #define E3_OVERCURRENT    2000
2193
     #define E3_STALLCURRENT   1500
2193
     #define E3_STALLCURRENT   1500
2194
     #define E3_MAX_VOLTAGE     127
2194
     #define E3_MAX_VOLTAGE     127
2195
-    #define E3_CHAIN_POS         0
2195
+    #define E3_CHAIN_POS        -1
2196
   #endif
2196
   #endif
2197
 
2197
 
2198
   #if AXIS_DRIVER_TYPE_E4(L6470)
2198
   #if AXIS_DRIVER_TYPE_E4(L6470)
2200
     #define E4_OVERCURRENT    2000
2200
     #define E4_OVERCURRENT    2000
2201
     #define E4_STALLCURRENT   1500
2201
     #define E4_STALLCURRENT   1500
2202
     #define E4_MAX_VOLTAGE     127
2202
     #define E4_MAX_VOLTAGE     127
2203
-    #define E4_CHAIN_POS         0
2203
+    #define E4_CHAIN_POS        -1
2204
   #endif
2204
   #endif
2205
 
2205
 
2206
   #if AXIS_DRIVER_TYPE_E5(L6470)
2206
   #if AXIS_DRIVER_TYPE_E5(L6470)
2208
     #define E5_OVERCURRENT    2000
2208
     #define E5_OVERCURRENT    2000
2209
     #define E5_STALLCURRENT   1500
2209
     #define E5_STALLCURRENT   1500
2210
     #define E5_MAX_VOLTAGE     127
2210
     #define E5_MAX_VOLTAGE     127
2211
-    #define E5_CHAIN_POS         0
2211
+    #define E5_CHAIN_POS        -1
2212
   #endif
2212
   #endif
2213
 
2213
 
2214
   /**
2214
   /**

+ 26
- 26
config/examples/Alfawise/U20/Configuration_adv.h View File

1801
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1801
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1802
     #define X_MICROSTEPS   16  // 0..256
1802
     #define X_MICROSTEPS   16  // 0..256
1803
     #define X_RSENSE     0.11
1803
     #define X_RSENSE     0.11
1804
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1804
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1805
   #endif
1805
   #endif
1806
 
1806
 
1807
   #if AXIS_IS_TMC(X2)
1807
   #if AXIS_IS_TMC(X2)
1808
     #define X2_CURRENT    800
1808
     #define X2_CURRENT    800
1809
     #define X2_MICROSTEPS  16
1809
     #define X2_MICROSTEPS  16
1810
     #define X2_RSENSE    0.11
1810
     #define X2_RSENSE    0.11
1811
-    #define X2_CHAIN_POS    0
1811
+    #define X2_CHAIN_POS   -1
1812
   #endif
1812
   #endif
1813
 
1813
 
1814
   #if AXIS_IS_TMC(Y)
1814
   #if AXIS_IS_TMC(Y)
1815
     #define Y_CURRENT     800
1815
     #define Y_CURRENT     800
1816
     #define Y_MICROSTEPS   16
1816
     #define Y_MICROSTEPS   16
1817
     #define Y_RSENSE     0.11
1817
     #define Y_RSENSE     0.11
1818
-    #define Y_CHAIN_POS     0
1818
+    #define Y_CHAIN_POS    -1
1819
   #endif
1819
   #endif
1820
 
1820
 
1821
   #if AXIS_IS_TMC(Y2)
1821
   #if AXIS_IS_TMC(Y2)
1822
     #define Y2_CURRENT    800
1822
     #define Y2_CURRENT    800
1823
     #define Y2_MICROSTEPS  16
1823
     #define Y2_MICROSTEPS  16
1824
     #define Y2_RSENSE    0.11
1824
     #define Y2_RSENSE    0.11
1825
-    #define Y2_CHAIN_POS    0
1825
+    #define Y2_CHAIN_POS   -1
1826
   #endif
1826
   #endif
1827
 
1827
 
1828
   #if AXIS_IS_TMC(Z)
1828
   #if AXIS_IS_TMC(Z)
1829
     #define Z_CURRENT     800
1829
     #define Z_CURRENT     800
1830
     #define Z_MICROSTEPS   16
1830
     #define Z_MICROSTEPS   16
1831
     #define Z_RSENSE     0.11
1831
     #define Z_RSENSE     0.11
1832
-    #define Z_CHAIN_POS     0
1832
+    #define Z_CHAIN_POS    -1
1833
   #endif
1833
   #endif
1834
 
1834
 
1835
   #if AXIS_IS_TMC(Z2)
1835
   #if AXIS_IS_TMC(Z2)
1836
     #define Z2_CURRENT    800
1836
     #define Z2_CURRENT    800
1837
     #define Z2_MICROSTEPS  16
1837
     #define Z2_MICROSTEPS  16
1838
     #define Z2_RSENSE    0.11
1838
     #define Z2_RSENSE    0.11
1839
-    #define Z2_CHAIN_POS    0
1839
+    #define Z2_CHAIN_POS   -1
1840
   #endif
1840
   #endif
1841
 
1841
 
1842
   #if AXIS_IS_TMC(Z3)
1842
   #if AXIS_IS_TMC(Z3)
1843
     #define Z3_CURRENT    800
1843
     #define Z3_CURRENT    800
1844
     #define Z3_MICROSTEPS  16
1844
     #define Z3_MICROSTEPS  16
1845
     #define Z3_RSENSE    0.11
1845
     #define Z3_RSENSE    0.11
1846
-    #define Z3_CHAIN_POS    0
1846
+    #define Z3_CHAIN_POS   -1
1847
   #endif
1847
   #endif
1848
 
1848
 
1849
   #if AXIS_IS_TMC(E0)
1849
   #if AXIS_IS_TMC(E0)
1850
     #define E0_CURRENT    800
1850
     #define E0_CURRENT    800
1851
     #define E0_MICROSTEPS  16
1851
     #define E0_MICROSTEPS  16
1852
     #define E0_RSENSE    0.11
1852
     #define E0_RSENSE    0.11
1853
-    #define E0_CHAIN_POS    0
1853
+    #define E0_CHAIN_POS   -1
1854
   #endif
1854
   #endif
1855
 
1855
 
1856
   #if AXIS_IS_TMC(E1)
1856
   #if AXIS_IS_TMC(E1)
1857
     #define E1_CURRENT    800
1857
     #define E1_CURRENT    800
1858
     #define E1_MICROSTEPS  16
1858
     #define E1_MICROSTEPS  16
1859
     #define E1_RSENSE    0.11
1859
     #define E1_RSENSE    0.11
1860
-    #define E1_CHAIN_POS    0
1860
+    #define E1_CHAIN_POS   -1
1861
   #endif
1861
   #endif
1862
 
1862
 
1863
   #if AXIS_IS_TMC(E2)
1863
   #if AXIS_IS_TMC(E2)
1864
     #define E2_CURRENT    800
1864
     #define E2_CURRENT    800
1865
     #define E2_MICROSTEPS  16
1865
     #define E2_MICROSTEPS  16
1866
     #define E2_RSENSE    0.11
1866
     #define E2_RSENSE    0.11
1867
-    #define E2_CHAIN_POS    0
1867
+    #define E2_CHAIN_POS   -1
1868
   #endif
1868
   #endif
1869
 
1869
 
1870
   #if AXIS_IS_TMC(E3)
1870
   #if AXIS_IS_TMC(E3)
1871
     #define E3_CURRENT    800
1871
     #define E3_CURRENT    800
1872
     #define E3_MICROSTEPS  16
1872
     #define E3_MICROSTEPS  16
1873
     #define E3_RSENSE    0.11
1873
     #define E3_RSENSE    0.11
1874
-    #define E3_CHAIN_POS    0
1874
+    #define E3_CHAIN_POS   -1
1875
   #endif
1875
   #endif
1876
 
1876
 
1877
   #if AXIS_IS_TMC(E4)
1877
   #if AXIS_IS_TMC(E4)
1878
     #define E4_CURRENT    800
1878
     #define E4_CURRENT    800
1879
     #define E4_MICROSTEPS  16
1879
     #define E4_MICROSTEPS  16
1880
     #define E4_RSENSE    0.11
1880
     #define E4_RSENSE    0.11
1881
-    #define E4_CHAIN_POS    0
1881
+    #define E4_CHAIN_POS   -1
1882
   #endif
1882
   #endif
1883
 
1883
 
1884
   #if AXIS_IS_TMC(E5)
1884
   #if AXIS_IS_TMC(E5)
1885
     #define E5_CURRENT    800
1885
     #define E5_CURRENT    800
1886
     #define E5_MICROSTEPS  16
1886
     #define E5_MICROSTEPS  16
1887
     #define E5_RSENSE    0.11
1887
     #define E5_RSENSE    0.11
1888
-    #define E5_CHAIN_POS    0
1888
+    #define E5_CHAIN_POS   -1
1889
   #endif
1889
   #endif
1890
 
1890
 
1891
   /**
1891
   /**
2111
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2111
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2112
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2112
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2113
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2113
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2114
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2114
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2115
   #endif
2115
   #endif
2116
 
2116
 
2117
   #if AXIS_DRIVER_TYPE_X2(L6470)
2117
   #if AXIS_DRIVER_TYPE_X2(L6470)
2119
     #define X2_OVERCURRENT    2000
2119
     #define X2_OVERCURRENT    2000
2120
     #define X2_STALLCURRENT   1500
2120
     #define X2_STALLCURRENT   1500
2121
     #define X2_MAX_VOLTAGE     127
2121
     #define X2_MAX_VOLTAGE     127
2122
-    #define X2_CHAIN_POS         0
2122
+    #define X2_CHAIN_POS        -1
2123
   #endif
2123
   #endif
2124
 
2124
 
2125
   #if AXIS_DRIVER_TYPE_Y(L6470)
2125
   #if AXIS_DRIVER_TYPE_Y(L6470)
2127
     #define Y_OVERCURRENT     2000
2127
     #define Y_OVERCURRENT     2000
2128
     #define Y_STALLCURRENT    1500
2128
     #define Y_STALLCURRENT    1500
2129
     #define Y_MAX_VOLTAGE      127
2129
     #define Y_MAX_VOLTAGE      127
2130
-    #define Y_CHAIN_POS          0
2130
+    #define Y_CHAIN_POS         -1
2131
   #endif
2131
   #endif
2132
 
2132
 
2133
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2133
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2135
     #define Y2_OVERCURRENT    2000
2135
     #define Y2_OVERCURRENT    2000
2136
     #define Y2_STALLCURRENT   1500
2136
     #define Y2_STALLCURRENT   1500
2137
     #define Y2_MAX_VOLTAGE     127
2137
     #define Y2_MAX_VOLTAGE     127
2138
-    #define Y2_CHAIN_POS         0
2138
+    #define Y2_CHAIN_POS        -1
2139
   #endif
2139
   #endif
2140
 
2140
 
2141
   #if AXIS_DRIVER_TYPE_Z(L6470)
2141
   #if AXIS_DRIVER_TYPE_Z(L6470)
2143
     #define Z_OVERCURRENT     2000
2143
     #define Z_OVERCURRENT     2000
2144
     #define Z_STALLCURRENT    1500
2144
     #define Z_STALLCURRENT    1500
2145
     #define Z_MAX_VOLTAGE      127
2145
     #define Z_MAX_VOLTAGE      127
2146
-    #define Z_CHAIN_POS          0
2146
+    #define Z_CHAIN_POS         -1
2147
   #endif
2147
   #endif
2148
 
2148
 
2149
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2149
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2151
     #define Z2_OVERCURRENT    2000
2151
     #define Z2_OVERCURRENT    2000
2152
     #define Z2_STALLCURRENT   1500
2152
     #define Z2_STALLCURRENT   1500
2153
     #define Z2_MAX_VOLTAGE     127
2153
     #define Z2_MAX_VOLTAGE     127
2154
-    #define Z2_CHAIN_POS         0
2154
+    #define Z2_CHAIN_POS        -1
2155
   #endif
2155
   #endif
2156
 
2156
 
2157
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2157
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2159
     #define Z3_OVERCURRENT    2000
2159
     #define Z3_OVERCURRENT    2000
2160
     #define Z3_STALLCURRENT   1500
2160
     #define Z3_STALLCURRENT   1500
2161
     #define Z3_MAX_VOLTAGE     127
2161
     #define Z3_MAX_VOLTAGE     127
2162
-    #define Z3_CHAIN_POS         0
2162
+    #define Z3_CHAIN_POS        -1
2163
   #endif
2163
   #endif
2164
 
2164
 
2165
   #if AXIS_DRIVER_TYPE_E0(L6470)
2165
   #if AXIS_DRIVER_TYPE_E0(L6470)
2167
     #define E0_OVERCURRENT    2000
2167
     #define E0_OVERCURRENT    2000
2168
     #define E0_STALLCURRENT   1500
2168
     #define E0_STALLCURRENT   1500
2169
     #define E0_MAX_VOLTAGE     127
2169
     #define E0_MAX_VOLTAGE     127
2170
-    #define E0_CHAIN_POS         0
2170
+    #define E0_CHAIN_POS        -1
2171
   #endif
2171
   #endif
2172
 
2172
 
2173
   #if AXIS_DRIVER_TYPE_E1(L6470)
2173
   #if AXIS_DRIVER_TYPE_E1(L6470)
2175
     #define E1_OVERCURRENT    2000
2175
     #define E1_OVERCURRENT    2000
2176
     #define E1_STALLCURRENT   1500
2176
     #define E1_STALLCURRENT   1500
2177
     #define E1_MAX_VOLTAGE     127
2177
     #define E1_MAX_VOLTAGE     127
2178
-    #define E1_CHAIN_POS         0
2178
+    #define E1_CHAIN_POS        -1
2179
   #endif
2179
   #endif
2180
 
2180
 
2181
   #if AXIS_DRIVER_TYPE_E2(L6470)
2181
   #if AXIS_DRIVER_TYPE_E2(L6470)
2183
     #define E2_OVERCURRENT    2000
2183
     #define E2_OVERCURRENT    2000
2184
     #define E2_STALLCURRENT   1500
2184
     #define E2_STALLCURRENT   1500
2185
     #define E2_MAX_VOLTAGE     127
2185
     #define E2_MAX_VOLTAGE     127
2186
-    #define E2_CHAIN_POS         0
2186
+    #define E2_CHAIN_POS        -1
2187
   #endif
2187
   #endif
2188
 
2188
 
2189
   #if AXIS_DRIVER_TYPE_E3(L6470)
2189
   #if AXIS_DRIVER_TYPE_E3(L6470)
2191
     #define E3_OVERCURRENT    2000
2191
     #define E3_OVERCURRENT    2000
2192
     #define E3_STALLCURRENT   1500
2192
     #define E3_STALLCURRENT   1500
2193
     #define E3_MAX_VOLTAGE     127
2193
     #define E3_MAX_VOLTAGE     127
2194
-    #define E3_CHAIN_POS         0
2194
+    #define E3_CHAIN_POS        -1
2195
   #endif
2195
   #endif
2196
 
2196
 
2197
   #if AXIS_DRIVER_TYPE_E4(L6470)
2197
   #if AXIS_DRIVER_TYPE_E4(L6470)
2199
     #define E4_OVERCURRENT    2000
2199
     #define E4_OVERCURRENT    2000
2200
     #define E4_STALLCURRENT   1500
2200
     #define E4_STALLCURRENT   1500
2201
     #define E4_MAX_VOLTAGE     127
2201
     #define E4_MAX_VOLTAGE     127
2202
-    #define E4_CHAIN_POS         0
2202
+    #define E4_CHAIN_POS        -1
2203
   #endif
2203
   #endif
2204
 
2204
 
2205
   #if AXIS_DRIVER_TYPE_E5(L6470)
2205
   #if AXIS_DRIVER_TYPE_E5(L6470)
2207
     #define E5_OVERCURRENT    2000
2207
     #define E5_OVERCURRENT    2000
2208
     #define E5_STALLCURRENT   1500
2208
     #define E5_STALLCURRENT   1500
2209
     #define E5_MAX_VOLTAGE     127
2209
     #define E5_MAX_VOLTAGE     127
2210
-    #define E5_CHAIN_POS         0
2210
+    #define E5_CHAIN_POS        -1
2211
   #endif
2211
   #endif
2212
 
2212
 
2213
   /**
2213
   /**

+ 26
- 26
config/examples/AliExpress/UM2pExt/Configuration_adv.h View File

1799
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1799
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1800
     #define X_MICROSTEPS   16  // 0..256
1800
     #define X_MICROSTEPS   16  // 0..256
1801
     #define X_RSENSE     0.11
1801
     #define X_RSENSE     0.11
1802
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1802
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1803
   #endif
1803
   #endif
1804
 
1804
 
1805
   #if AXIS_IS_TMC(X2)
1805
   #if AXIS_IS_TMC(X2)
1806
     #define X2_CURRENT    800
1806
     #define X2_CURRENT    800
1807
     #define X2_MICROSTEPS  16
1807
     #define X2_MICROSTEPS  16
1808
     #define X2_RSENSE    0.11
1808
     #define X2_RSENSE    0.11
1809
-    #define X2_CHAIN_POS    0
1809
+    #define X2_CHAIN_POS   -1
1810
   #endif
1810
   #endif
1811
 
1811
 
1812
   #if AXIS_IS_TMC(Y)
1812
   #if AXIS_IS_TMC(Y)
1813
     #define Y_CURRENT     800
1813
     #define Y_CURRENT     800
1814
     #define Y_MICROSTEPS   16
1814
     #define Y_MICROSTEPS   16
1815
     #define Y_RSENSE     0.11
1815
     #define Y_RSENSE     0.11
1816
-    #define Y_CHAIN_POS     0
1816
+    #define Y_CHAIN_POS    -1
1817
   #endif
1817
   #endif
1818
 
1818
 
1819
   #if AXIS_IS_TMC(Y2)
1819
   #if AXIS_IS_TMC(Y2)
1820
     #define Y2_CURRENT    800
1820
     #define Y2_CURRENT    800
1821
     #define Y2_MICROSTEPS  16
1821
     #define Y2_MICROSTEPS  16
1822
     #define Y2_RSENSE    0.11
1822
     #define Y2_RSENSE    0.11
1823
-    #define Y2_CHAIN_POS    0
1823
+    #define Y2_CHAIN_POS   -1
1824
   #endif
1824
   #endif
1825
 
1825
 
1826
   #if AXIS_IS_TMC(Z)
1826
   #if AXIS_IS_TMC(Z)
1827
     #define Z_CURRENT     800
1827
     #define Z_CURRENT     800
1828
     #define Z_MICROSTEPS   16
1828
     #define Z_MICROSTEPS   16
1829
     #define Z_RSENSE     0.11
1829
     #define Z_RSENSE     0.11
1830
-    #define Z_CHAIN_POS     0
1830
+    #define Z_CHAIN_POS    -1
1831
   #endif
1831
   #endif
1832
 
1832
 
1833
   #if AXIS_IS_TMC(Z2)
1833
   #if AXIS_IS_TMC(Z2)
1834
     #define Z2_CURRENT    800
1834
     #define Z2_CURRENT    800
1835
     #define Z2_MICROSTEPS  16
1835
     #define Z2_MICROSTEPS  16
1836
     #define Z2_RSENSE    0.11
1836
     #define Z2_RSENSE    0.11
1837
-    #define Z2_CHAIN_POS    0
1837
+    #define Z2_CHAIN_POS   -1
1838
   #endif
1838
   #endif
1839
 
1839
 
1840
   #if AXIS_IS_TMC(Z3)
1840
   #if AXIS_IS_TMC(Z3)
1841
     #define Z3_CURRENT    800
1841
     #define Z3_CURRENT    800
1842
     #define Z3_MICROSTEPS  16
1842
     #define Z3_MICROSTEPS  16
1843
     #define Z3_RSENSE    0.11
1843
     #define Z3_RSENSE    0.11
1844
-    #define Z3_CHAIN_POS    0
1844
+    #define Z3_CHAIN_POS   -1
1845
   #endif
1845
   #endif
1846
 
1846
 
1847
   #if AXIS_IS_TMC(E0)
1847
   #if AXIS_IS_TMC(E0)
1848
     #define E0_CURRENT    800
1848
     #define E0_CURRENT    800
1849
     #define E0_MICROSTEPS  16
1849
     #define E0_MICROSTEPS  16
1850
     #define E0_RSENSE    0.11
1850
     #define E0_RSENSE    0.11
1851
-    #define E0_CHAIN_POS    0
1851
+    #define E0_CHAIN_POS   -1
1852
   #endif
1852
   #endif
1853
 
1853
 
1854
   #if AXIS_IS_TMC(E1)
1854
   #if AXIS_IS_TMC(E1)
1855
     #define E1_CURRENT    800
1855
     #define E1_CURRENT    800
1856
     #define E1_MICROSTEPS  16
1856
     #define E1_MICROSTEPS  16
1857
     #define E1_RSENSE    0.11
1857
     #define E1_RSENSE    0.11
1858
-    #define E1_CHAIN_POS    0
1858
+    #define E1_CHAIN_POS   -1
1859
   #endif
1859
   #endif
1860
 
1860
 
1861
   #if AXIS_IS_TMC(E2)
1861
   #if AXIS_IS_TMC(E2)
1862
     #define E2_CURRENT    800
1862
     #define E2_CURRENT    800
1863
     #define E2_MICROSTEPS  16
1863
     #define E2_MICROSTEPS  16
1864
     #define E2_RSENSE    0.11
1864
     #define E2_RSENSE    0.11
1865
-    #define E2_CHAIN_POS    0
1865
+    #define E2_CHAIN_POS   -1
1866
   #endif
1866
   #endif
1867
 
1867
 
1868
   #if AXIS_IS_TMC(E3)
1868
   #if AXIS_IS_TMC(E3)
1869
     #define E3_CURRENT    800
1869
     #define E3_CURRENT    800
1870
     #define E3_MICROSTEPS  16
1870
     #define E3_MICROSTEPS  16
1871
     #define E3_RSENSE    0.11
1871
     #define E3_RSENSE    0.11
1872
-    #define E3_CHAIN_POS    0
1872
+    #define E3_CHAIN_POS   -1
1873
   #endif
1873
   #endif
1874
 
1874
 
1875
   #if AXIS_IS_TMC(E4)
1875
   #if AXIS_IS_TMC(E4)
1876
     #define E4_CURRENT    800
1876
     #define E4_CURRENT    800
1877
     #define E4_MICROSTEPS  16
1877
     #define E4_MICROSTEPS  16
1878
     #define E4_RSENSE    0.11
1878
     #define E4_RSENSE    0.11
1879
-    #define E4_CHAIN_POS    0
1879
+    #define E4_CHAIN_POS   -1
1880
   #endif
1880
   #endif
1881
 
1881
 
1882
   #if AXIS_IS_TMC(E5)
1882
   #if AXIS_IS_TMC(E5)
1883
     #define E5_CURRENT    800
1883
     #define E5_CURRENT    800
1884
     #define E5_MICROSTEPS  16
1884
     #define E5_MICROSTEPS  16
1885
     #define E5_RSENSE    0.11
1885
     #define E5_RSENSE    0.11
1886
-    #define E5_CHAIN_POS    0
1886
+    #define E5_CHAIN_POS   -1
1887
   #endif
1887
   #endif
1888
 
1888
 
1889
   /**
1889
   /**
2109
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2109
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2110
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2110
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2111
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2111
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2112
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2112
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2113
   #endif
2113
   #endif
2114
 
2114
 
2115
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
   #if AXIS_DRIVER_TYPE_X2(L6470)
2117
     #define X2_OVERCURRENT    2000
2117
     #define X2_OVERCURRENT    2000
2118
     #define X2_STALLCURRENT   1500
2118
     #define X2_STALLCURRENT   1500
2119
     #define X2_MAX_VOLTAGE     127
2119
     #define X2_MAX_VOLTAGE     127
2120
-    #define X2_CHAIN_POS         0
2120
+    #define X2_CHAIN_POS        -1
2121
   #endif
2121
   #endif
2122
 
2122
 
2123
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
   #if AXIS_DRIVER_TYPE_Y(L6470)
2125
     #define Y_OVERCURRENT     2000
2125
     #define Y_OVERCURRENT     2000
2126
     #define Y_STALLCURRENT    1500
2126
     #define Y_STALLCURRENT    1500
2127
     #define Y_MAX_VOLTAGE      127
2127
     #define Y_MAX_VOLTAGE      127
2128
-    #define Y_CHAIN_POS          0
2128
+    #define Y_CHAIN_POS         -1
2129
   #endif
2129
   #endif
2130
 
2130
 
2131
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2133
     #define Y2_OVERCURRENT    2000
2133
     #define Y2_OVERCURRENT    2000
2134
     #define Y2_STALLCURRENT   1500
2134
     #define Y2_STALLCURRENT   1500
2135
     #define Y2_MAX_VOLTAGE     127
2135
     #define Y2_MAX_VOLTAGE     127
2136
-    #define Y2_CHAIN_POS         0
2136
+    #define Y2_CHAIN_POS        -1
2137
   #endif
2137
   #endif
2138
 
2138
 
2139
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
   #if AXIS_DRIVER_TYPE_Z(L6470)
2141
     #define Z_OVERCURRENT     2000
2141
     #define Z_OVERCURRENT     2000
2142
     #define Z_STALLCURRENT    1500
2142
     #define Z_STALLCURRENT    1500
2143
     #define Z_MAX_VOLTAGE      127
2143
     #define Z_MAX_VOLTAGE      127
2144
-    #define Z_CHAIN_POS          0
2144
+    #define Z_CHAIN_POS         -1
2145
   #endif
2145
   #endif
2146
 
2146
 
2147
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2149
     #define Z2_OVERCURRENT    2000
2149
     #define Z2_OVERCURRENT    2000
2150
     #define Z2_STALLCURRENT   1500
2150
     #define Z2_STALLCURRENT   1500
2151
     #define Z2_MAX_VOLTAGE     127
2151
     #define Z2_MAX_VOLTAGE     127
2152
-    #define Z2_CHAIN_POS         0
2152
+    #define Z2_CHAIN_POS        -1
2153
   #endif
2153
   #endif
2154
 
2154
 
2155
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2157
     #define Z3_OVERCURRENT    2000
2157
     #define Z3_OVERCURRENT    2000
2158
     #define Z3_STALLCURRENT   1500
2158
     #define Z3_STALLCURRENT   1500
2159
     #define Z3_MAX_VOLTAGE     127
2159
     #define Z3_MAX_VOLTAGE     127
2160
-    #define Z3_CHAIN_POS         0
2160
+    #define Z3_CHAIN_POS        -1
2161
   #endif
2161
   #endif
2162
 
2162
 
2163
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
   #if AXIS_DRIVER_TYPE_E0(L6470)
2165
     #define E0_OVERCURRENT    2000
2165
     #define E0_OVERCURRENT    2000
2166
     #define E0_STALLCURRENT   1500
2166
     #define E0_STALLCURRENT   1500
2167
     #define E0_MAX_VOLTAGE     127
2167
     #define E0_MAX_VOLTAGE     127
2168
-    #define E0_CHAIN_POS         0
2168
+    #define E0_CHAIN_POS        -1
2169
   #endif
2169
   #endif
2170
 
2170
 
2171
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
   #if AXIS_DRIVER_TYPE_E1(L6470)
2173
     #define E1_OVERCURRENT    2000
2173
     #define E1_OVERCURRENT    2000
2174
     #define E1_STALLCURRENT   1500
2174
     #define E1_STALLCURRENT   1500
2175
     #define E1_MAX_VOLTAGE     127
2175
     #define E1_MAX_VOLTAGE     127
2176
-    #define E1_CHAIN_POS         0
2176
+    #define E1_CHAIN_POS        -1
2177
   #endif
2177
   #endif
2178
 
2178
 
2179
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
   #if AXIS_DRIVER_TYPE_E2(L6470)
2181
     #define E2_OVERCURRENT    2000
2181
     #define E2_OVERCURRENT    2000
2182
     #define E2_STALLCURRENT   1500
2182
     #define E2_STALLCURRENT   1500
2183
     #define E2_MAX_VOLTAGE     127
2183
     #define E2_MAX_VOLTAGE     127
2184
-    #define E2_CHAIN_POS         0
2184
+    #define E2_CHAIN_POS        -1
2185
   #endif
2185
   #endif
2186
 
2186
 
2187
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
   #if AXIS_DRIVER_TYPE_E3(L6470)
2189
     #define E3_OVERCURRENT    2000
2189
     #define E3_OVERCURRENT    2000
2190
     #define E3_STALLCURRENT   1500
2190
     #define E3_STALLCURRENT   1500
2191
     #define E3_MAX_VOLTAGE     127
2191
     #define E3_MAX_VOLTAGE     127
2192
-    #define E3_CHAIN_POS         0
2192
+    #define E3_CHAIN_POS        -1
2193
   #endif
2193
   #endif
2194
 
2194
 
2195
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
   #if AXIS_DRIVER_TYPE_E4(L6470)
2197
     #define E4_OVERCURRENT    2000
2197
     #define E4_OVERCURRENT    2000
2198
     #define E4_STALLCURRENT   1500
2198
     #define E4_STALLCURRENT   1500
2199
     #define E4_MAX_VOLTAGE     127
2199
     #define E4_MAX_VOLTAGE     127
2200
-    #define E4_CHAIN_POS         0
2200
+    #define E4_CHAIN_POS        -1
2201
   #endif
2201
   #endif
2202
 
2202
 
2203
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
   #if AXIS_DRIVER_TYPE_E5(L6470)
2205
     #define E5_OVERCURRENT    2000
2205
     #define E5_OVERCURRENT    2000
2206
     #define E5_STALLCURRENT   1500
2206
     #define E5_STALLCURRENT   1500
2207
     #define E5_MAX_VOLTAGE     127
2207
     #define E5_MAX_VOLTAGE     127
2208
-    #define E5_CHAIN_POS         0
2208
+    #define E5_CHAIN_POS        -1
2209
   #endif
2209
   #endif
2210
 
2210
 
2211
   /**
2211
   /**

+ 26
- 26
config/examples/Anet/A2/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Anet/A2plus/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Anet/A6/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Anet/A8/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Anet/A8plus/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Anet/E16/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/AnyCubic/i3/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/ArmEd/Configuration_adv.h View File

1801
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1801
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1802
     #define X_MICROSTEPS   16  // 0..256
1802
     #define X_MICROSTEPS   16  // 0..256
1803
     #define X_RSENSE     0.11
1803
     #define X_RSENSE     0.11
1804
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1804
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1805
   #endif
1805
   #endif
1806
 
1806
 
1807
   #if AXIS_IS_TMC(X2)
1807
   #if AXIS_IS_TMC(X2)
1808
     #define X2_CURRENT    800
1808
     #define X2_CURRENT    800
1809
     #define X2_MICROSTEPS  16
1809
     #define X2_MICROSTEPS  16
1810
     #define X2_RSENSE    0.11
1810
     #define X2_RSENSE    0.11
1811
-    #define X2_CHAIN_POS    0
1811
+    #define X2_CHAIN_POS   -1
1812
   #endif
1812
   #endif
1813
 
1813
 
1814
   #if AXIS_IS_TMC(Y)
1814
   #if AXIS_IS_TMC(Y)
1815
     #define Y_CURRENT     800
1815
     #define Y_CURRENT     800
1816
     #define Y_MICROSTEPS   16
1816
     #define Y_MICROSTEPS   16
1817
     #define Y_RSENSE     0.11
1817
     #define Y_RSENSE     0.11
1818
-    #define Y_CHAIN_POS     0
1818
+    #define Y_CHAIN_POS    -1
1819
   #endif
1819
   #endif
1820
 
1820
 
1821
   #if AXIS_IS_TMC(Y2)
1821
   #if AXIS_IS_TMC(Y2)
1822
     #define Y2_CURRENT    800
1822
     #define Y2_CURRENT    800
1823
     #define Y2_MICROSTEPS  16
1823
     #define Y2_MICROSTEPS  16
1824
     #define Y2_RSENSE    0.11
1824
     #define Y2_RSENSE    0.11
1825
-    #define Y2_CHAIN_POS    0
1825
+    #define Y2_CHAIN_POS   -1
1826
   #endif
1826
   #endif
1827
 
1827
 
1828
   #if AXIS_IS_TMC(Z)
1828
   #if AXIS_IS_TMC(Z)
1829
     #define Z_CURRENT     800
1829
     #define Z_CURRENT     800
1830
     #define Z_MICROSTEPS   16
1830
     #define Z_MICROSTEPS   16
1831
     #define Z_RSENSE     0.11
1831
     #define Z_RSENSE     0.11
1832
-    #define Z_CHAIN_POS     0
1832
+    #define Z_CHAIN_POS    -1
1833
   #endif
1833
   #endif
1834
 
1834
 
1835
   #if AXIS_IS_TMC(Z2)
1835
   #if AXIS_IS_TMC(Z2)
1836
     #define Z2_CURRENT    800
1836
     #define Z2_CURRENT    800
1837
     #define Z2_MICROSTEPS  16
1837
     #define Z2_MICROSTEPS  16
1838
     #define Z2_RSENSE    0.11
1838
     #define Z2_RSENSE    0.11
1839
-    #define Z2_CHAIN_POS    0
1839
+    #define Z2_CHAIN_POS   -1
1840
   #endif
1840
   #endif
1841
 
1841
 
1842
   #if AXIS_IS_TMC(Z3)
1842
   #if AXIS_IS_TMC(Z3)
1843
     #define Z3_CURRENT    800
1843
     #define Z3_CURRENT    800
1844
     #define Z3_MICROSTEPS  16
1844
     #define Z3_MICROSTEPS  16
1845
     #define Z3_RSENSE    0.11
1845
     #define Z3_RSENSE    0.11
1846
-    #define Z3_CHAIN_POS    0
1846
+    #define Z3_CHAIN_POS   -1
1847
   #endif
1847
   #endif
1848
 
1848
 
1849
   #if AXIS_IS_TMC(E0)
1849
   #if AXIS_IS_TMC(E0)
1850
     #define E0_CURRENT    800
1850
     #define E0_CURRENT    800
1851
     #define E0_MICROSTEPS  16
1851
     #define E0_MICROSTEPS  16
1852
     #define E0_RSENSE    0.11
1852
     #define E0_RSENSE    0.11
1853
-    #define E0_CHAIN_POS    0
1853
+    #define E0_CHAIN_POS   -1
1854
   #endif
1854
   #endif
1855
 
1855
 
1856
   #if AXIS_IS_TMC(E1)
1856
   #if AXIS_IS_TMC(E1)
1857
     #define E1_CURRENT    800
1857
     #define E1_CURRENT    800
1858
     #define E1_MICROSTEPS  16
1858
     #define E1_MICROSTEPS  16
1859
     #define E1_RSENSE    0.11
1859
     #define E1_RSENSE    0.11
1860
-    #define E1_CHAIN_POS    0
1860
+    #define E1_CHAIN_POS   -1
1861
   #endif
1861
   #endif
1862
 
1862
 
1863
   #if AXIS_IS_TMC(E2)
1863
   #if AXIS_IS_TMC(E2)
1864
     #define E2_CURRENT    800
1864
     #define E2_CURRENT    800
1865
     #define E2_MICROSTEPS  16
1865
     #define E2_MICROSTEPS  16
1866
     #define E2_RSENSE    0.11
1866
     #define E2_RSENSE    0.11
1867
-    #define E2_CHAIN_POS    0
1867
+    #define E2_CHAIN_POS   -1
1868
   #endif
1868
   #endif
1869
 
1869
 
1870
   #if AXIS_IS_TMC(E3)
1870
   #if AXIS_IS_TMC(E3)
1871
     #define E3_CURRENT    800
1871
     #define E3_CURRENT    800
1872
     #define E3_MICROSTEPS  16
1872
     #define E3_MICROSTEPS  16
1873
     #define E3_RSENSE    0.11
1873
     #define E3_RSENSE    0.11
1874
-    #define E3_CHAIN_POS    0
1874
+    #define E3_CHAIN_POS   -1
1875
   #endif
1875
   #endif
1876
 
1876
 
1877
   #if AXIS_IS_TMC(E4)
1877
   #if AXIS_IS_TMC(E4)
1878
     #define E4_CURRENT    800
1878
     #define E4_CURRENT    800
1879
     #define E4_MICROSTEPS  16
1879
     #define E4_MICROSTEPS  16
1880
     #define E4_RSENSE    0.11
1880
     #define E4_RSENSE    0.11
1881
-    #define E4_CHAIN_POS    0
1881
+    #define E4_CHAIN_POS   -1
1882
   #endif
1882
   #endif
1883
 
1883
 
1884
   #if AXIS_IS_TMC(E5)
1884
   #if AXIS_IS_TMC(E5)
1885
     #define E5_CURRENT    800
1885
     #define E5_CURRENT    800
1886
     #define E5_MICROSTEPS  16
1886
     #define E5_MICROSTEPS  16
1887
     #define E5_RSENSE    0.11
1887
     #define E5_RSENSE    0.11
1888
-    #define E5_CHAIN_POS    0
1888
+    #define E5_CHAIN_POS   -1
1889
   #endif
1889
   #endif
1890
 
1890
 
1891
   /**
1891
   /**
2111
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2111
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2112
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2112
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2113
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2113
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2114
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2114
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2115
   #endif
2115
   #endif
2116
 
2116
 
2117
   #if AXIS_DRIVER_TYPE_X2(L6470)
2117
   #if AXIS_DRIVER_TYPE_X2(L6470)
2119
     #define X2_OVERCURRENT    2000
2119
     #define X2_OVERCURRENT    2000
2120
     #define X2_STALLCURRENT   1500
2120
     #define X2_STALLCURRENT   1500
2121
     #define X2_MAX_VOLTAGE     127
2121
     #define X2_MAX_VOLTAGE     127
2122
-    #define X2_CHAIN_POS         0
2122
+    #define X2_CHAIN_POS        -1
2123
   #endif
2123
   #endif
2124
 
2124
 
2125
   #if AXIS_DRIVER_TYPE_Y(L6470)
2125
   #if AXIS_DRIVER_TYPE_Y(L6470)
2127
     #define Y_OVERCURRENT     2000
2127
     #define Y_OVERCURRENT     2000
2128
     #define Y_STALLCURRENT    1500
2128
     #define Y_STALLCURRENT    1500
2129
     #define Y_MAX_VOLTAGE      127
2129
     #define Y_MAX_VOLTAGE      127
2130
-    #define Y_CHAIN_POS          0
2130
+    #define Y_CHAIN_POS         -1
2131
   #endif
2131
   #endif
2132
 
2132
 
2133
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2133
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2135
     #define Y2_OVERCURRENT    2000
2135
     #define Y2_OVERCURRENT    2000
2136
     #define Y2_STALLCURRENT   1500
2136
     #define Y2_STALLCURRENT   1500
2137
     #define Y2_MAX_VOLTAGE     127
2137
     #define Y2_MAX_VOLTAGE     127
2138
-    #define Y2_CHAIN_POS         0
2138
+    #define Y2_CHAIN_POS        -1
2139
   #endif
2139
   #endif
2140
 
2140
 
2141
   #if AXIS_DRIVER_TYPE_Z(L6470)
2141
   #if AXIS_DRIVER_TYPE_Z(L6470)
2143
     #define Z_OVERCURRENT     2000
2143
     #define Z_OVERCURRENT     2000
2144
     #define Z_STALLCURRENT    1500
2144
     #define Z_STALLCURRENT    1500
2145
     #define Z_MAX_VOLTAGE      127
2145
     #define Z_MAX_VOLTAGE      127
2146
-    #define Z_CHAIN_POS          0
2146
+    #define Z_CHAIN_POS         -1
2147
   #endif
2147
   #endif
2148
 
2148
 
2149
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2149
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2151
     #define Z2_OVERCURRENT    2000
2151
     #define Z2_OVERCURRENT    2000
2152
     #define Z2_STALLCURRENT   1500
2152
     #define Z2_STALLCURRENT   1500
2153
     #define Z2_MAX_VOLTAGE     127
2153
     #define Z2_MAX_VOLTAGE     127
2154
-    #define Z2_CHAIN_POS         0
2154
+    #define Z2_CHAIN_POS        -1
2155
   #endif
2155
   #endif
2156
 
2156
 
2157
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2157
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2159
     #define Z3_OVERCURRENT    2000
2159
     #define Z3_OVERCURRENT    2000
2160
     #define Z3_STALLCURRENT   1500
2160
     #define Z3_STALLCURRENT   1500
2161
     #define Z3_MAX_VOLTAGE     127
2161
     #define Z3_MAX_VOLTAGE     127
2162
-    #define Z3_CHAIN_POS         0
2162
+    #define Z3_CHAIN_POS        -1
2163
   #endif
2163
   #endif
2164
 
2164
 
2165
   #if AXIS_DRIVER_TYPE_E0(L6470)
2165
   #if AXIS_DRIVER_TYPE_E0(L6470)
2167
     #define E0_OVERCURRENT    2000
2167
     #define E0_OVERCURRENT    2000
2168
     #define E0_STALLCURRENT   1500
2168
     #define E0_STALLCURRENT   1500
2169
     #define E0_MAX_VOLTAGE     127
2169
     #define E0_MAX_VOLTAGE     127
2170
-    #define E0_CHAIN_POS         0
2170
+    #define E0_CHAIN_POS        -1
2171
   #endif
2171
   #endif
2172
 
2172
 
2173
   #if AXIS_DRIVER_TYPE_E1(L6470)
2173
   #if AXIS_DRIVER_TYPE_E1(L6470)
2175
     #define E1_OVERCURRENT    2000
2175
     #define E1_OVERCURRENT    2000
2176
     #define E1_STALLCURRENT   1500
2176
     #define E1_STALLCURRENT   1500
2177
     #define E1_MAX_VOLTAGE     127
2177
     #define E1_MAX_VOLTAGE     127
2178
-    #define E1_CHAIN_POS         0
2178
+    #define E1_CHAIN_POS        -1
2179
   #endif
2179
   #endif
2180
 
2180
 
2181
   #if AXIS_DRIVER_TYPE_E2(L6470)
2181
   #if AXIS_DRIVER_TYPE_E2(L6470)
2183
     #define E2_OVERCURRENT    2000
2183
     #define E2_OVERCURRENT    2000
2184
     #define E2_STALLCURRENT   1500
2184
     #define E2_STALLCURRENT   1500
2185
     #define E2_MAX_VOLTAGE     127
2185
     #define E2_MAX_VOLTAGE     127
2186
-    #define E2_CHAIN_POS         0
2186
+    #define E2_CHAIN_POS        -1
2187
   #endif
2187
   #endif
2188
 
2188
 
2189
   #if AXIS_DRIVER_TYPE_E3(L6470)
2189
   #if AXIS_DRIVER_TYPE_E3(L6470)
2191
     #define E3_OVERCURRENT    2000
2191
     #define E3_OVERCURRENT    2000
2192
     #define E3_STALLCURRENT   1500
2192
     #define E3_STALLCURRENT   1500
2193
     #define E3_MAX_VOLTAGE     127
2193
     #define E3_MAX_VOLTAGE     127
2194
-    #define E3_CHAIN_POS         0
2194
+    #define E3_CHAIN_POS        -1
2195
   #endif
2195
   #endif
2196
 
2196
 
2197
   #if AXIS_DRIVER_TYPE_E4(L6470)
2197
   #if AXIS_DRIVER_TYPE_E4(L6470)
2199
     #define E4_OVERCURRENT    2000
2199
     #define E4_OVERCURRENT    2000
2200
     #define E4_STALLCURRENT   1500
2200
     #define E4_STALLCURRENT   1500
2201
     #define E4_MAX_VOLTAGE     127
2201
     #define E4_MAX_VOLTAGE     127
2202
-    #define E4_CHAIN_POS         0
2202
+    #define E4_CHAIN_POS        -1
2203
   #endif
2203
   #endif
2204
 
2204
 
2205
   #if AXIS_DRIVER_TYPE_E5(L6470)
2205
   #if AXIS_DRIVER_TYPE_E5(L6470)
2207
     #define E5_OVERCURRENT    2000
2207
     #define E5_OVERCURRENT    2000
2208
     #define E5_STALLCURRENT   1500
2208
     #define E5_STALLCURRENT   1500
2209
     #define E5_MAX_VOLTAGE     127
2209
     #define E5_MAX_VOLTAGE     127
2210
-    #define E5_CHAIN_POS         0
2210
+    #define E5_CHAIN_POS        -1
2211
   #endif
2211
   #endif
2212
 
2212
 
2213
   /**
2213
   /**

+ 26
- 26
config/examples/BIBO/TouchX/cyclops/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/BIBO/TouchX/default/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/BQ/Hephestos/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/BQ/Hephestos_2/Configuration_adv.h View File

1805
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1805
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1806
     #define X_MICROSTEPS   16  // 0..256
1806
     #define X_MICROSTEPS   16  // 0..256
1807
     #define X_RSENSE     0.11
1807
     #define X_RSENSE     0.11
1808
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1808
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1809
   #endif
1809
   #endif
1810
 
1810
 
1811
   #if AXIS_IS_TMC(X2)
1811
   #if AXIS_IS_TMC(X2)
1812
     #define X2_CURRENT    800
1812
     #define X2_CURRENT    800
1813
     #define X2_MICROSTEPS  16
1813
     #define X2_MICROSTEPS  16
1814
     #define X2_RSENSE    0.11
1814
     #define X2_RSENSE    0.11
1815
-    #define X2_CHAIN_POS    0
1815
+    #define X2_CHAIN_POS   -1
1816
   #endif
1816
   #endif
1817
 
1817
 
1818
   #if AXIS_IS_TMC(Y)
1818
   #if AXIS_IS_TMC(Y)
1819
     #define Y_CURRENT     800
1819
     #define Y_CURRENT     800
1820
     #define Y_MICROSTEPS   16
1820
     #define Y_MICROSTEPS   16
1821
     #define Y_RSENSE     0.11
1821
     #define Y_RSENSE     0.11
1822
-    #define Y_CHAIN_POS     0
1822
+    #define Y_CHAIN_POS    -1
1823
   #endif
1823
   #endif
1824
 
1824
 
1825
   #if AXIS_IS_TMC(Y2)
1825
   #if AXIS_IS_TMC(Y2)
1826
     #define Y2_CURRENT    800
1826
     #define Y2_CURRENT    800
1827
     #define Y2_MICROSTEPS  16
1827
     #define Y2_MICROSTEPS  16
1828
     #define Y2_RSENSE    0.11
1828
     #define Y2_RSENSE    0.11
1829
-    #define Y2_CHAIN_POS    0
1829
+    #define Y2_CHAIN_POS   -1
1830
   #endif
1830
   #endif
1831
 
1831
 
1832
   #if AXIS_IS_TMC(Z)
1832
   #if AXIS_IS_TMC(Z)
1833
     #define Z_CURRENT     800
1833
     #define Z_CURRENT     800
1834
     #define Z_MICROSTEPS   16
1834
     #define Z_MICROSTEPS   16
1835
     #define Z_RSENSE     0.11
1835
     #define Z_RSENSE     0.11
1836
-    #define Z_CHAIN_POS     0
1836
+    #define Z_CHAIN_POS    -1
1837
   #endif
1837
   #endif
1838
 
1838
 
1839
   #if AXIS_IS_TMC(Z2)
1839
   #if AXIS_IS_TMC(Z2)
1840
     #define Z2_CURRENT    800
1840
     #define Z2_CURRENT    800
1841
     #define Z2_MICROSTEPS  16
1841
     #define Z2_MICROSTEPS  16
1842
     #define Z2_RSENSE    0.11
1842
     #define Z2_RSENSE    0.11
1843
-    #define Z2_CHAIN_POS    0
1843
+    #define Z2_CHAIN_POS   -1
1844
   #endif
1844
   #endif
1845
 
1845
 
1846
   #if AXIS_IS_TMC(Z3)
1846
   #if AXIS_IS_TMC(Z3)
1847
     #define Z3_CURRENT    800
1847
     #define Z3_CURRENT    800
1848
     #define Z3_MICROSTEPS  16
1848
     #define Z3_MICROSTEPS  16
1849
     #define Z3_RSENSE    0.11
1849
     #define Z3_RSENSE    0.11
1850
-    #define Z3_CHAIN_POS    0
1850
+    #define Z3_CHAIN_POS   -1
1851
   #endif
1851
   #endif
1852
 
1852
 
1853
   #if AXIS_IS_TMC(E0)
1853
   #if AXIS_IS_TMC(E0)
1854
     #define E0_CURRENT    800
1854
     #define E0_CURRENT    800
1855
     #define E0_MICROSTEPS  16
1855
     #define E0_MICROSTEPS  16
1856
     #define E0_RSENSE    0.11
1856
     #define E0_RSENSE    0.11
1857
-    #define E0_CHAIN_POS    0
1857
+    #define E0_CHAIN_POS   -1
1858
   #endif
1858
   #endif
1859
 
1859
 
1860
   #if AXIS_IS_TMC(E1)
1860
   #if AXIS_IS_TMC(E1)
1861
     #define E1_CURRENT    800
1861
     #define E1_CURRENT    800
1862
     #define E1_MICROSTEPS  16
1862
     #define E1_MICROSTEPS  16
1863
     #define E1_RSENSE    0.11
1863
     #define E1_RSENSE    0.11
1864
-    #define E1_CHAIN_POS    0
1864
+    #define E1_CHAIN_POS   -1
1865
   #endif
1865
   #endif
1866
 
1866
 
1867
   #if AXIS_IS_TMC(E2)
1867
   #if AXIS_IS_TMC(E2)
1868
     #define E2_CURRENT    800
1868
     #define E2_CURRENT    800
1869
     #define E2_MICROSTEPS  16
1869
     #define E2_MICROSTEPS  16
1870
     #define E2_RSENSE    0.11
1870
     #define E2_RSENSE    0.11
1871
-    #define E2_CHAIN_POS    0
1871
+    #define E2_CHAIN_POS   -1
1872
   #endif
1872
   #endif
1873
 
1873
 
1874
   #if AXIS_IS_TMC(E3)
1874
   #if AXIS_IS_TMC(E3)
1875
     #define E3_CURRENT    800
1875
     #define E3_CURRENT    800
1876
     #define E3_MICROSTEPS  16
1876
     #define E3_MICROSTEPS  16
1877
     #define E3_RSENSE    0.11
1877
     #define E3_RSENSE    0.11
1878
-    #define E3_CHAIN_POS    0
1878
+    #define E3_CHAIN_POS   -1
1879
   #endif
1879
   #endif
1880
 
1880
 
1881
   #if AXIS_IS_TMC(E4)
1881
   #if AXIS_IS_TMC(E4)
1882
     #define E4_CURRENT    800
1882
     #define E4_CURRENT    800
1883
     #define E4_MICROSTEPS  16
1883
     #define E4_MICROSTEPS  16
1884
     #define E4_RSENSE    0.11
1884
     #define E4_RSENSE    0.11
1885
-    #define E4_CHAIN_POS    0
1885
+    #define E4_CHAIN_POS   -1
1886
   #endif
1886
   #endif
1887
 
1887
 
1888
   #if AXIS_IS_TMC(E5)
1888
   #if AXIS_IS_TMC(E5)
1889
     #define E5_CURRENT    800
1889
     #define E5_CURRENT    800
1890
     #define E5_MICROSTEPS  16
1890
     #define E5_MICROSTEPS  16
1891
     #define E5_RSENSE    0.11
1891
     #define E5_RSENSE    0.11
1892
-    #define E5_CHAIN_POS    0
1892
+    #define E5_CHAIN_POS   -1
1893
   #endif
1893
   #endif
1894
 
1894
 
1895
   /**
1895
   /**
2115
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2115
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2116
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2116
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2117
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2117
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2118
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2118
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_X2(L6470)
2121
   #if AXIS_DRIVER_TYPE_X2(L6470)
2123
     #define X2_OVERCURRENT    2000
2123
     #define X2_OVERCURRENT    2000
2124
     #define X2_STALLCURRENT   1500
2124
     #define X2_STALLCURRENT   1500
2125
     #define X2_MAX_VOLTAGE     127
2125
     #define X2_MAX_VOLTAGE     127
2126
-    #define X2_CHAIN_POS         0
2126
+    #define X2_CHAIN_POS        -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y(L6470)
2131
     #define Y_OVERCURRENT     2000
2131
     #define Y_OVERCURRENT     2000
2132
     #define Y_STALLCURRENT    1500
2132
     #define Y_STALLCURRENT    1500
2133
     #define Y_MAX_VOLTAGE      127
2133
     #define Y_MAX_VOLTAGE      127
2134
-    #define Y_CHAIN_POS          0
2134
+    #define Y_CHAIN_POS         -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2137
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2139
     #define Y2_OVERCURRENT    2000
2139
     #define Y2_OVERCURRENT    2000
2140
     #define Y2_STALLCURRENT   1500
2140
     #define Y2_STALLCURRENT   1500
2141
     #define Y2_MAX_VOLTAGE     127
2141
     #define Y2_MAX_VOLTAGE     127
2142
-    #define Y2_CHAIN_POS         0
2142
+    #define Y2_CHAIN_POS        -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z(L6470)
2147
     #define Z_OVERCURRENT     2000
2147
     #define Z_OVERCURRENT     2000
2148
     #define Z_STALLCURRENT    1500
2148
     #define Z_STALLCURRENT    1500
2149
     #define Z_MAX_VOLTAGE      127
2149
     #define Z_MAX_VOLTAGE      127
2150
-    #define Z_CHAIN_POS          0
2150
+    #define Z_CHAIN_POS         -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2155
     #define Z2_OVERCURRENT    2000
2155
     #define Z2_OVERCURRENT    2000
2156
     #define Z2_STALLCURRENT   1500
2156
     #define Z2_STALLCURRENT   1500
2157
     #define Z2_MAX_VOLTAGE     127
2157
     #define Z2_MAX_VOLTAGE     127
2158
-    #define Z2_CHAIN_POS         0
2158
+    #define Z2_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2161
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2163
     #define Z3_OVERCURRENT    2000
2163
     #define Z3_OVERCURRENT    2000
2164
     #define Z3_STALLCURRENT   1500
2164
     #define Z3_STALLCURRENT   1500
2165
     #define Z3_MAX_VOLTAGE     127
2165
     #define Z3_MAX_VOLTAGE     127
2166
-    #define Z3_CHAIN_POS         0
2166
+    #define Z3_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E0(L6470)
2169
   #if AXIS_DRIVER_TYPE_E0(L6470)
2171
     #define E0_OVERCURRENT    2000
2171
     #define E0_OVERCURRENT    2000
2172
     #define E0_STALLCURRENT   1500
2172
     #define E0_STALLCURRENT   1500
2173
     #define E0_MAX_VOLTAGE     127
2173
     #define E0_MAX_VOLTAGE     127
2174
-    #define E0_CHAIN_POS         0
2174
+    #define E0_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E1(L6470)
2177
   #if AXIS_DRIVER_TYPE_E1(L6470)
2179
     #define E1_OVERCURRENT    2000
2179
     #define E1_OVERCURRENT    2000
2180
     #define E1_STALLCURRENT   1500
2180
     #define E1_STALLCURRENT   1500
2181
     #define E1_MAX_VOLTAGE     127
2181
     #define E1_MAX_VOLTAGE     127
2182
-    #define E1_CHAIN_POS         0
2182
+    #define E1_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E2(L6470)
2185
   #if AXIS_DRIVER_TYPE_E2(L6470)
2187
     #define E2_OVERCURRENT    2000
2187
     #define E2_OVERCURRENT    2000
2188
     #define E2_STALLCURRENT   1500
2188
     #define E2_STALLCURRENT   1500
2189
     #define E2_MAX_VOLTAGE     127
2189
     #define E2_MAX_VOLTAGE     127
2190
-    #define E2_CHAIN_POS         0
2190
+    #define E2_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E3(L6470)
2193
   #if AXIS_DRIVER_TYPE_E3(L6470)
2195
     #define E3_OVERCURRENT    2000
2195
     #define E3_OVERCURRENT    2000
2196
     #define E3_STALLCURRENT   1500
2196
     #define E3_STALLCURRENT   1500
2197
     #define E3_MAX_VOLTAGE     127
2197
     #define E3_MAX_VOLTAGE     127
2198
-    #define E3_CHAIN_POS         0
2198
+    #define E3_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E4(L6470)
2201
   #if AXIS_DRIVER_TYPE_E4(L6470)
2203
     #define E4_OVERCURRENT    2000
2203
     #define E4_OVERCURRENT    2000
2204
     #define E4_STALLCURRENT   1500
2204
     #define E4_STALLCURRENT   1500
2205
     #define E4_MAX_VOLTAGE     127
2205
     #define E4_MAX_VOLTAGE     127
2206
-    #define E4_CHAIN_POS         0
2206
+    #define E4_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   #if AXIS_DRIVER_TYPE_E5(L6470)
2209
   #if AXIS_DRIVER_TYPE_E5(L6470)
2211
     #define E5_OVERCURRENT    2000
2211
     #define E5_OVERCURRENT    2000
2212
     #define E5_STALLCURRENT   1500
2212
     #define E5_STALLCURRENT   1500
2213
     #define E5_MAX_VOLTAGE     127
2213
     #define E5_MAX_VOLTAGE     127
2214
-    #define E5_CHAIN_POS         0
2214
+    #define E5_CHAIN_POS        -1
2215
   #endif
2215
   #endif
2216
 
2216
 
2217
   /**
2217
   /**

+ 26
- 26
config/examples/BQ/WITBOX/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Cartesio/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Creality/CR-10/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Creality/CR-10S/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Creality/CR-10_5S/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Creality/CR-10mini/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Creality/CR-20 Pro/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Creality/CR-20/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Creality/CR-8/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Creality/Ender-2/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Creality/Ender-3/Configuration_adv.h View File

1797
     #define X_CURRENT     580  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     580  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     580
1811
     #define Y_CURRENT     580
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     580
1825
     #define Z_CURRENT     580
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    650
1846
     #define E0_CURRENT    650
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Creality/Ender-4/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Creality/Ender-5/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Dagoma/Disco Ultimate/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/EVNOVO (Artillery)/Sidewinder X1/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Einstart-S/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/FYSETC/AIO_II/Configuration_adv.h View File

1797
     #define X_CURRENT     700  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     700  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     650
1811
     #define Y_CURRENT     650
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    650
1846
     #define E0_CURRENT    650
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/FYSETC/Cheetah 1.2/BLTouch/Configuration_adv.h View File

1797
     #define X_CURRENT     700  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     700  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     500
1811
     #define Y_CURRENT     500
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    650
1846
     #define E0_CURRENT    650
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/FYSETC/Cheetah 1.2/base/Configuration_adv.h View File

1797
     #define X_CURRENT     700  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     700  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     500
1811
     #define Y_CURRENT     500
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    650
1846
     #define E0_CURRENT    650
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/FYSETC/Cheetah/BLTouch/Configuration_adv.h View File

1797
     #define X_CURRENT     700  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     700  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     500
1811
     #define Y_CURRENT     500
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    650
1846
     #define E0_CURRENT    650
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/FYSETC/Cheetah/base/Configuration_adv.h View File

1797
     #define X_CURRENT     700  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     700  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     500
1811
     #define Y_CURRENT     500
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    650
1846
     #define E0_CURRENT    650
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/FYSETC/F6_13/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Felix/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/FlashForge/CreatorPro/Configuration_adv.h View File

1796
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1796
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_MICROSTEPS   16  // 0..256
1797
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_RSENSE     0.11
1798
     #define X_RSENSE     0.11
1799
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1799
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1800
   #endif
1800
   #endif
1801
 
1801
 
1802
   #if AXIS_IS_TMC(X2)
1802
   #if AXIS_IS_TMC(X2)
1803
     #define X2_CURRENT    800
1803
     #define X2_CURRENT    800
1804
     #define X2_MICROSTEPS  16
1804
     #define X2_MICROSTEPS  16
1805
     #define X2_RSENSE    0.11
1805
     #define X2_RSENSE    0.11
1806
-    #define X2_CHAIN_POS    0
1806
+    #define X2_CHAIN_POS   -1
1807
   #endif
1807
   #endif
1808
 
1808
 
1809
   #if AXIS_IS_TMC(Y)
1809
   #if AXIS_IS_TMC(Y)
1810
     #define Y_CURRENT     800
1810
     #define Y_CURRENT     800
1811
     #define Y_MICROSTEPS   16
1811
     #define Y_MICROSTEPS   16
1812
     #define Y_RSENSE     0.11
1812
     #define Y_RSENSE     0.11
1813
-    #define Y_CHAIN_POS     0
1813
+    #define Y_CHAIN_POS    -1
1814
   #endif
1814
   #endif
1815
 
1815
 
1816
   #if AXIS_IS_TMC(Y2)
1816
   #if AXIS_IS_TMC(Y2)
1817
     #define Y2_CURRENT    800
1817
     #define Y2_CURRENT    800
1818
     #define Y2_MICROSTEPS  16
1818
     #define Y2_MICROSTEPS  16
1819
     #define Y2_RSENSE    0.11
1819
     #define Y2_RSENSE    0.11
1820
-    #define Y2_CHAIN_POS    0
1820
+    #define Y2_CHAIN_POS   -1
1821
   #endif
1821
   #endif
1822
 
1822
 
1823
   #if AXIS_IS_TMC(Z)
1823
   #if AXIS_IS_TMC(Z)
1824
     #define Z_CURRENT     800
1824
     #define Z_CURRENT     800
1825
     #define Z_MICROSTEPS   16
1825
     #define Z_MICROSTEPS   16
1826
     #define Z_RSENSE     0.11
1826
     #define Z_RSENSE     0.11
1827
-    #define Z_CHAIN_POS     0
1827
+    #define Z_CHAIN_POS    -1
1828
   #endif
1828
   #endif
1829
 
1829
 
1830
   #if AXIS_IS_TMC(Z2)
1830
   #if AXIS_IS_TMC(Z2)
1831
     #define Z2_CURRENT    800
1831
     #define Z2_CURRENT    800
1832
     #define Z2_MICROSTEPS  16
1832
     #define Z2_MICROSTEPS  16
1833
     #define Z2_RSENSE    0.11
1833
     #define Z2_RSENSE    0.11
1834
-    #define Z2_CHAIN_POS    0
1834
+    #define Z2_CHAIN_POS   -1
1835
   #endif
1835
   #endif
1836
 
1836
 
1837
   #if AXIS_IS_TMC(Z3)
1837
   #if AXIS_IS_TMC(Z3)
1838
     #define Z3_CURRENT    800
1838
     #define Z3_CURRENT    800
1839
     #define Z3_MICROSTEPS  16
1839
     #define Z3_MICROSTEPS  16
1840
     #define Z3_RSENSE    0.11
1840
     #define Z3_RSENSE    0.11
1841
-    #define Z3_CHAIN_POS    0
1841
+    #define Z3_CHAIN_POS   -1
1842
   #endif
1842
   #endif
1843
 
1843
 
1844
   #if AXIS_IS_TMC(E0)
1844
   #if AXIS_IS_TMC(E0)
1845
     #define E0_CURRENT    800
1845
     #define E0_CURRENT    800
1846
     #define E0_MICROSTEPS  16
1846
     #define E0_MICROSTEPS  16
1847
     #define E0_RSENSE    0.11
1847
     #define E0_RSENSE    0.11
1848
-    #define E0_CHAIN_POS    0
1848
+    #define E0_CHAIN_POS   -1
1849
   #endif
1849
   #endif
1850
 
1850
 
1851
   #if AXIS_IS_TMC(E1)
1851
   #if AXIS_IS_TMC(E1)
1852
     #define E1_CURRENT    800
1852
     #define E1_CURRENT    800
1853
     #define E1_MICROSTEPS  16
1853
     #define E1_MICROSTEPS  16
1854
     #define E1_RSENSE    0.11
1854
     #define E1_RSENSE    0.11
1855
-    #define E1_CHAIN_POS    0
1855
+    #define E1_CHAIN_POS   -1
1856
   #endif
1856
   #endif
1857
 
1857
 
1858
   #if AXIS_IS_TMC(E2)
1858
   #if AXIS_IS_TMC(E2)
1859
     #define E2_CURRENT    800
1859
     #define E2_CURRENT    800
1860
     #define E2_MICROSTEPS  16
1860
     #define E2_MICROSTEPS  16
1861
     #define E2_RSENSE    0.11
1861
     #define E2_RSENSE    0.11
1862
-    #define E2_CHAIN_POS    0
1862
+    #define E2_CHAIN_POS   -1
1863
   #endif
1863
   #endif
1864
 
1864
 
1865
   #if AXIS_IS_TMC(E3)
1865
   #if AXIS_IS_TMC(E3)
1866
     #define E3_CURRENT    800
1866
     #define E3_CURRENT    800
1867
     #define E3_MICROSTEPS  16
1867
     #define E3_MICROSTEPS  16
1868
     #define E3_RSENSE    0.11
1868
     #define E3_RSENSE    0.11
1869
-    #define E3_CHAIN_POS    0
1869
+    #define E3_CHAIN_POS   -1
1870
   #endif
1870
   #endif
1871
 
1871
 
1872
   #if AXIS_IS_TMC(E4)
1872
   #if AXIS_IS_TMC(E4)
1873
     #define E4_CURRENT    800
1873
     #define E4_CURRENT    800
1874
     #define E4_MICROSTEPS  16
1874
     #define E4_MICROSTEPS  16
1875
     #define E4_RSENSE    0.11
1875
     #define E4_RSENSE    0.11
1876
-    #define E4_CHAIN_POS    0
1876
+    #define E4_CHAIN_POS   -1
1877
   #endif
1877
   #endif
1878
 
1878
 
1879
   #if AXIS_IS_TMC(E5)
1879
   #if AXIS_IS_TMC(E5)
1880
     #define E5_CURRENT    800
1880
     #define E5_CURRENT    800
1881
     #define E5_MICROSTEPS  16
1881
     #define E5_MICROSTEPS  16
1882
     #define E5_RSENSE    0.11
1882
     #define E5_RSENSE    0.11
1883
-    #define E5_CHAIN_POS    0
1883
+    #define E5_CHAIN_POS   -1
1884
   #endif
1884
   #endif
1885
 
1885
 
1886
   /**
1886
   /**
2106
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2106
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2107
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2108
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2109
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2110
   #endif
2110
   #endif
2111
 
2111
 
2112
   #if AXIS_DRIVER_TYPE_X2(L6470)
2112
   #if AXIS_DRIVER_TYPE_X2(L6470)
2114
     #define X2_OVERCURRENT    2000
2114
     #define X2_OVERCURRENT    2000
2115
     #define X2_STALLCURRENT   1500
2115
     #define X2_STALLCURRENT   1500
2116
     #define X2_MAX_VOLTAGE     127
2116
     #define X2_MAX_VOLTAGE     127
2117
-    #define X2_CHAIN_POS         0
2117
+    #define X2_CHAIN_POS        -1
2118
   #endif
2118
   #endif
2119
 
2119
 
2120
   #if AXIS_DRIVER_TYPE_Y(L6470)
2120
   #if AXIS_DRIVER_TYPE_Y(L6470)
2122
     #define Y_OVERCURRENT     2000
2122
     #define Y_OVERCURRENT     2000
2123
     #define Y_STALLCURRENT    1500
2123
     #define Y_STALLCURRENT    1500
2124
     #define Y_MAX_VOLTAGE      127
2124
     #define Y_MAX_VOLTAGE      127
2125
-    #define Y_CHAIN_POS          0
2125
+    #define Y_CHAIN_POS         -1
2126
   #endif
2126
   #endif
2127
 
2127
 
2128
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2128
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2130
     #define Y2_OVERCURRENT    2000
2130
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_STALLCURRENT   1500
2131
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_MAX_VOLTAGE     127
2132
     #define Y2_MAX_VOLTAGE     127
2133
-    #define Y2_CHAIN_POS         0
2133
+    #define Y2_CHAIN_POS        -1
2134
   #endif
2134
   #endif
2135
 
2135
 
2136
   #if AXIS_DRIVER_TYPE_Z(L6470)
2136
   #if AXIS_DRIVER_TYPE_Z(L6470)
2138
     #define Z_OVERCURRENT     2000
2138
     #define Z_OVERCURRENT     2000
2139
     #define Z_STALLCURRENT    1500
2139
     #define Z_STALLCURRENT    1500
2140
     #define Z_MAX_VOLTAGE      127
2140
     #define Z_MAX_VOLTAGE      127
2141
-    #define Z_CHAIN_POS          0
2141
+    #define Z_CHAIN_POS         -1
2142
   #endif
2142
   #endif
2143
 
2143
 
2144
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2144
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2146
     #define Z2_OVERCURRENT    2000
2146
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_STALLCURRENT   1500
2147
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_MAX_VOLTAGE     127
2148
     #define Z2_MAX_VOLTAGE     127
2149
-    #define Z2_CHAIN_POS         0
2149
+    #define Z2_CHAIN_POS        -1
2150
   #endif
2150
   #endif
2151
 
2151
 
2152
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2152
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2154
     #define Z3_OVERCURRENT    2000
2154
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_STALLCURRENT   1500
2155
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_MAX_VOLTAGE     127
2156
     #define Z3_MAX_VOLTAGE     127
2157
-    #define Z3_CHAIN_POS         0
2157
+    #define Z3_CHAIN_POS        -1
2158
   #endif
2158
   #endif
2159
 
2159
 
2160
   #if AXIS_DRIVER_TYPE_E0(L6470)
2160
   #if AXIS_DRIVER_TYPE_E0(L6470)
2162
     #define E0_OVERCURRENT    2000
2162
     #define E0_OVERCURRENT    2000
2163
     #define E0_STALLCURRENT   1500
2163
     #define E0_STALLCURRENT   1500
2164
     #define E0_MAX_VOLTAGE     127
2164
     #define E0_MAX_VOLTAGE     127
2165
-    #define E0_CHAIN_POS         0
2165
+    #define E0_CHAIN_POS        -1
2166
   #endif
2166
   #endif
2167
 
2167
 
2168
   #if AXIS_DRIVER_TYPE_E1(L6470)
2168
   #if AXIS_DRIVER_TYPE_E1(L6470)
2170
     #define E1_OVERCURRENT    2000
2170
     #define E1_OVERCURRENT    2000
2171
     #define E1_STALLCURRENT   1500
2171
     #define E1_STALLCURRENT   1500
2172
     #define E1_MAX_VOLTAGE     127
2172
     #define E1_MAX_VOLTAGE     127
2173
-    #define E1_CHAIN_POS         0
2173
+    #define E1_CHAIN_POS        -1
2174
   #endif
2174
   #endif
2175
 
2175
 
2176
   #if AXIS_DRIVER_TYPE_E2(L6470)
2176
   #if AXIS_DRIVER_TYPE_E2(L6470)
2178
     #define E2_OVERCURRENT    2000
2178
     #define E2_OVERCURRENT    2000
2179
     #define E2_STALLCURRENT   1500
2179
     #define E2_STALLCURRENT   1500
2180
     #define E2_MAX_VOLTAGE     127
2180
     #define E2_MAX_VOLTAGE     127
2181
-    #define E2_CHAIN_POS         0
2181
+    #define E2_CHAIN_POS        -1
2182
   #endif
2182
   #endif
2183
 
2183
 
2184
   #if AXIS_DRIVER_TYPE_E3(L6470)
2184
   #if AXIS_DRIVER_TYPE_E3(L6470)
2186
     #define E3_OVERCURRENT    2000
2186
     #define E3_OVERCURRENT    2000
2187
     #define E3_STALLCURRENT   1500
2187
     #define E3_STALLCURRENT   1500
2188
     #define E3_MAX_VOLTAGE     127
2188
     #define E3_MAX_VOLTAGE     127
2189
-    #define E3_CHAIN_POS         0
2189
+    #define E3_CHAIN_POS        -1
2190
   #endif
2190
   #endif
2191
 
2191
 
2192
   #if AXIS_DRIVER_TYPE_E4(L6470)
2192
   #if AXIS_DRIVER_TYPE_E4(L6470)
2194
     #define E4_OVERCURRENT    2000
2194
     #define E4_OVERCURRENT    2000
2195
     #define E4_STALLCURRENT   1500
2195
     #define E4_STALLCURRENT   1500
2196
     #define E4_MAX_VOLTAGE     127
2196
     #define E4_MAX_VOLTAGE     127
2197
-    #define E4_CHAIN_POS         0
2197
+    #define E4_CHAIN_POS        -1
2198
   #endif
2198
   #endif
2199
 
2199
 
2200
   #if AXIS_DRIVER_TYPE_E5(L6470)
2200
   #if AXIS_DRIVER_TYPE_E5(L6470)
2202
     #define E5_OVERCURRENT    2000
2202
     #define E5_OVERCURRENT    2000
2203
     #define E5_STALLCURRENT   1500
2203
     #define E5_STALLCURRENT   1500
2204
     #define E5_MAX_VOLTAGE     127
2204
     #define E5_MAX_VOLTAGE     127
2205
-    #define E5_CHAIN_POS         0
2205
+    #define E5_CHAIN_POS        -1
2206
   #endif
2206
   #endif
2207
 
2207
 
2208
   /**
2208
   /**

+ 26
- 26
config/examples/FolgerTech/i3-2020/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Formbot/Raptor/Configuration_adv.h View File

1799
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1799
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1800
     #define X_MICROSTEPS   16  // 0..256
1800
     #define X_MICROSTEPS   16  // 0..256
1801
     #define X_RSENSE     0.11
1801
     #define X_RSENSE     0.11
1802
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1802
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1803
   #endif
1803
   #endif
1804
 
1804
 
1805
   #if AXIS_IS_TMC(X2)
1805
   #if AXIS_IS_TMC(X2)
1806
     #define X2_CURRENT    800
1806
     #define X2_CURRENT    800
1807
     #define X2_MICROSTEPS  16
1807
     #define X2_MICROSTEPS  16
1808
     #define X2_RSENSE    0.11
1808
     #define X2_RSENSE    0.11
1809
-    #define X2_CHAIN_POS    0
1809
+    #define X2_CHAIN_POS   -1
1810
   #endif
1810
   #endif
1811
 
1811
 
1812
   #if AXIS_IS_TMC(Y)
1812
   #if AXIS_IS_TMC(Y)
1813
     #define Y_CURRENT     800
1813
     #define Y_CURRENT     800
1814
     #define Y_MICROSTEPS   16
1814
     #define Y_MICROSTEPS   16
1815
     #define Y_RSENSE     0.11
1815
     #define Y_RSENSE     0.11
1816
-    #define Y_CHAIN_POS     0
1816
+    #define Y_CHAIN_POS    -1
1817
   #endif
1817
   #endif
1818
 
1818
 
1819
   #if AXIS_IS_TMC(Y2)
1819
   #if AXIS_IS_TMC(Y2)
1820
     #define Y2_CURRENT    800
1820
     #define Y2_CURRENT    800
1821
     #define Y2_MICROSTEPS  16
1821
     #define Y2_MICROSTEPS  16
1822
     #define Y2_RSENSE    0.11
1822
     #define Y2_RSENSE    0.11
1823
-    #define Y2_CHAIN_POS    0
1823
+    #define Y2_CHAIN_POS   -1
1824
   #endif
1824
   #endif
1825
 
1825
 
1826
   #if AXIS_IS_TMC(Z)
1826
   #if AXIS_IS_TMC(Z)
1827
     #define Z_CURRENT     800
1827
     #define Z_CURRENT     800
1828
     #define Z_MICROSTEPS   16
1828
     #define Z_MICROSTEPS   16
1829
     #define Z_RSENSE     0.11
1829
     #define Z_RSENSE     0.11
1830
-    #define Z_CHAIN_POS     0
1830
+    #define Z_CHAIN_POS    -1
1831
   #endif
1831
   #endif
1832
 
1832
 
1833
   #if AXIS_IS_TMC(Z2)
1833
   #if AXIS_IS_TMC(Z2)
1834
     #define Z2_CURRENT    800
1834
     #define Z2_CURRENT    800
1835
     #define Z2_MICROSTEPS  16
1835
     #define Z2_MICROSTEPS  16
1836
     #define Z2_RSENSE    0.11
1836
     #define Z2_RSENSE    0.11
1837
-    #define Z2_CHAIN_POS    0
1837
+    #define Z2_CHAIN_POS   -1
1838
   #endif
1838
   #endif
1839
 
1839
 
1840
   #if AXIS_IS_TMC(Z3)
1840
   #if AXIS_IS_TMC(Z3)
1841
     #define Z3_CURRENT    800
1841
     #define Z3_CURRENT    800
1842
     #define Z3_MICROSTEPS  16
1842
     #define Z3_MICROSTEPS  16
1843
     #define Z3_RSENSE    0.11
1843
     #define Z3_RSENSE    0.11
1844
-    #define Z3_CHAIN_POS    0
1844
+    #define Z3_CHAIN_POS   -1
1845
   #endif
1845
   #endif
1846
 
1846
 
1847
   #if AXIS_IS_TMC(E0)
1847
   #if AXIS_IS_TMC(E0)
1848
     #define E0_CURRENT    800
1848
     #define E0_CURRENT    800
1849
     #define E0_MICROSTEPS  16
1849
     #define E0_MICROSTEPS  16
1850
     #define E0_RSENSE    0.11
1850
     #define E0_RSENSE    0.11
1851
-    #define E0_CHAIN_POS    0
1851
+    #define E0_CHAIN_POS   -1
1852
   #endif
1852
   #endif
1853
 
1853
 
1854
   #if AXIS_IS_TMC(E1)
1854
   #if AXIS_IS_TMC(E1)
1855
     #define E1_CURRENT    800
1855
     #define E1_CURRENT    800
1856
     #define E1_MICROSTEPS  16
1856
     #define E1_MICROSTEPS  16
1857
     #define E1_RSENSE    0.11
1857
     #define E1_RSENSE    0.11
1858
-    #define E1_CHAIN_POS    0
1858
+    #define E1_CHAIN_POS   -1
1859
   #endif
1859
   #endif
1860
 
1860
 
1861
   #if AXIS_IS_TMC(E2)
1861
   #if AXIS_IS_TMC(E2)
1862
     #define E2_CURRENT    800
1862
     #define E2_CURRENT    800
1863
     #define E2_MICROSTEPS  16
1863
     #define E2_MICROSTEPS  16
1864
     #define E2_RSENSE    0.11
1864
     #define E2_RSENSE    0.11
1865
-    #define E2_CHAIN_POS    0
1865
+    #define E2_CHAIN_POS   -1
1866
   #endif
1866
   #endif
1867
 
1867
 
1868
   #if AXIS_IS_TMC(E3)
1868
   #if AXIS_IS_TMC(E3)
1869
     #define E3_CURRENT    800
1869
     #define E3_CURRENT    800
1870
     #define E3_MICROSTEPS  16
1870
     #define E3_MICROSTEPS  16
1871
     #define E3_RSENSE    0.11
1871
     #define E3_RSENSE    0.11
1872
-    #define E3_CHAIN_POS    0
1872
+    #define E3_CHAIN_POS   -1
1873
   #endif
1873
   #endif
1874
 
1874
 
1875
   #if AXIS_IS_TMC(E4)
1875
   #if AXIS_IS_TMC(E4)
1876
     #define E4_CURRENT    800
1876
     #define E4_CURRENT    800
1877
     #define E4_MICROSTEPS  16
1877
     #define E4_MICROSTEPS  16
1878
     #define E4_RSENSE    0.11
1878
     #define E4_RSENSE    0.11
1879
-    #define E4_CHAIN_POS    0
1879
+    #define E4_CHAIN_POS   -1
1880
   #endif
1880
   #endif
1881
 
1881
 
1882
   #if AXIS_IS_TMC(E5)
1882
   #if AXIS_IS_TMC(E5)
1883
     #define E5_CURRENT    800
1883
     #define E5_CURRENT    800
1884
     #define E5_MICROSTEPS  16
1884
     #define E5_MICROSTEPS  16
1885
     #define E5_RSENSE    0.11
1885
     #define E5_RSENSE    0.11
1886
-    #define E5_CHAIN_POS    0
1886
+    #define E5_CHAIN_POS   -1
1887
   #endif
1887
   #endif
1888
 
1888
 
1889
   /**
1889
   /**
2109
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2109
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2110
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2110
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2111
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2111
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2112
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2112
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2113
   #endif
2113
   #endif
2114
 
2114
 
2115
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
   #if AXIS_DRIVER_TYPE_X2(L6470)
2117
     #define X2_OVERCURRENT    2000
2117
     #define X2_OVERCURRENT    2000
2118
     #define X2_STALLCURRENT   1500
2118
     #define X2_STALLCURRENT   1500
2119
     #define X2_MAX_VOLTAGE     127
2119
     #define X2_MAX_VOLTAGE     127
2120
-    #define X2_CHAIN_POS         0
2120
+    #define X2_CHAIN_POS        -1
2121
   #endif
2121
   #endif
2122
 
2122
 
2123
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
   #if AXIS_DRIVER_TYPE_Y(L6470)
2125
     #define Y_OVERCURRENT     2000
2125
     #define Y_OVERCURRENT     2000
2126
     #define Y_STALLCURRENT    1500
2126
     #define Y_STALLCURRENT    1500
2127
     #define Y_MAX_VOLTAGE      127
2127
     #define Y_MAX_VOLTAGE      127
2128
-    #define Y_CHAIN_POS          0
2128
+    #define Y_CHAIN_POS         -1
2129
   #endif
2129
   #endif
2130
 
2130
 
2131
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2133
     #define Y2_OVERCURRENT    2000
2133
     #define Y2_OVERCURRENT    2000
2134
     #define Y2_STALLCURRENT   1500
2134
     #define Y2_STALLCURRENT   1500
2135
     #define Y2_MAX_VOLTAGE     127
2135
     #define Y2_MAX_VOLTAGE     127
2136
-    #define Y2_CHAIN_POS         0
2136
+    #define Y2_CHAIN_POS        -1
2137
   #endif
2137
   #endif
2138
 
2138
 
2139
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
   #if AXIS_DRIVER_TYPE_Z(L6470)
2141
     #define Z_OVERCURRENT     2000
2141
     #define Z_OVERCURRENT     2000
2142
     #define Z_STALLCURRENT    1500
2142
     #define Z_STALLCURRENT    1500
2143
     #define Z_MAX_VOLTAGE      127
2143
     #define Z_MAX_VOLTAGE      127
2144
-    #define Z_CHAIN_POS          0
2144
+    #define Z_CHAIN_POS         -1
2145
   #endif
2145
   #endif
2146
 
2146
 
2147
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2149
     #define Z2_OVERCURRENT    2000
2149
     #define Z2_OVERCURRENT    2000
2150
     #define Z2_STALLCURRENT   1500
2150
     #define Z2_STALLCURRENT   1500
2151
     #define Z2_MAX_VOLTAGE     127
2151
     #define Z2_MAX_VOLTAGE     127
2152
-    #define Z2_CHAIN_POS         0
2152
+    #define Z2_CHAIN_POS        -1
2153
   #endif
2153
   #endif
2154
 
2154
 
2155
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2157
     #define Z3_OVERCURRENT    2000
2157
     #define Z3_OVERCURRENT    2000
2158
     #define Z3_STALLCURRENT   1500
2158
     #define Z3_STALLCURRENT   1500
2159
     #define Z3_MAX_VOLTAGE     127
2159
     #define Z3_MAX_VOLTAGE     127
2160
-    #define Z3_CHAIN_POS         0
2160
+    #define Z3_CHAIN_POS        -1
2161
   #endif
2161
   #endif
2162
 
2162
 
2163
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
   #if AXIS_DRIVER_TYPE_E0(L6470)
2165
     #define E0_OVERCURRENT    2000
2165
     #define E0_OVERCURRENT    2000
2166
     #define E0_STALLCURRENT   1500
2166
     #define E0_STALLCURRENT   1500
2167
     #define E0_MAX_VOLTAGE     127
2167
     #define E0_MAX_VOLTAGE     127
2168
-    #define E0_CHAIN_POS         0
2168
+    #define E0_CHAIN_POS        -1
2169
   #endif
2169
   #endif
2170
 
2170
 
2171
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
   #if AXIS_DRIVER_TYPE_E1(L6470)
2173
     #define E1_OVERCURRENT    2000
2173
     #define E1_OVERCURRENT    2000
2174
     #define E1_STALLCURRENT   1500
2174
     #define E1_STALLCURRENT   1500
2175
     #define E1_MAX_VOLTAGE     127
2175
     #define E1_MAX_VOLTAGE     127
2176
-    #define E1_CHAIN_POS         0
2176
+    #define E1_CHAIN_POS        -1
2177
   #endif
2177
   #endif
2178
 
2178
 
2179
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
   #if AXIS_DRIVER_TYPE_E2(L6470)
2181
     #define E2_OVERCURRENT    2000
2181
     #define E2_OVERCURRENT    2000
2182
     #define E2_STALLCURRENT   1500
2182
     #define E2_STALLCURRENT   1500
2183
     #define E2_MAX_VOLTAGE     127
2183
     #define E2_MAX_VOLTAGE     127
2184
-    #define E2_CHAIN_POS         0
2184
+    #define E2_CHAIN_POS        -1
2185
   #endif
2185
   #endif
2186
 
2186
 
2187
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
   #if AXIS_DRIVER_TYPE_E3(L6470)
2189
     #define E3_OVERCURRENT    2000
2189
     #define E3_OVERCURRENT    2000
2190
     #define E3_STALLCURRENT   1500
2190
     #define E3_STALLCURRENT   1500
2191
     #define E3_MAX_VOLTAGE     127
2191
     #define E3_MAX_VOLTAGE     127
2192
-    #define E3_CHAIN_POS         0
2192
+    #define E3_CHAIN_POS        -1
2193
   #endif
2193
   #endif
2194
 
2194
 
2195
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
   #if AXIS_DRIVER_TYPE_E4(L6470)
2197
     #define E4_OVERCURRENT    2000
2197
     #define E4_OVERCURRENT    2000
2198
     #define E4_STALLCURRENT   1500
2198
     #define E4_STALLCURRENT   1500
2199
     #define E4_MAX_VOLTAGE     127
2199
     #define E4_MAX_VOLTAGE     127
2200
-    #define E4_CHAIN_POS         0
2200
+    #define E4_CHAIN_POS        -1
2201
   #endif
2201
   #endif
2202
 
2202
 
2203
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
   #if AXIS_DRIVER_TYPE_E5(L6470)
2205
     #define E5_OVERCURRENT    2000
2205
     #define E5_OVERCURRENT    2000
2206
     #define E5_STALLCURRENT   1500
2206
     #define E5_STALLCURRENT   1500
2207
     #define E5_MAX_VOLTAGE     127
2207
     #define E5_MAX_VOLTAGE     127
2208
-    #define E5_CHAIN_POS         0
2208
+    #define E5_CHAIN_POS        -1
2209
   #endif
2209
   #endif
2210
 
2210
 
2211
   /**
2211
   /**

+ 26
- 26
config/examples/Formbot/T_Rex_2+/Configuration_adv.h View File

1801
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1801
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1802
     #define X_MICROSTEPS   16  // 0..256
1802
     #define X_MICROSTEPS   16  // 0..256
1803
     #define X_RSENSE     0.11
1803
     #define X_RSENSE     0.11
1804
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1804
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1805
   #endif
1805
   #endif
1806
 
1806
 
1807
   #if AXIS_IS_TMC(X2)
1807
   #if AXIS_IS_TMC(X2)
1808
     #define X2_CURRENT    800
1808
     #define X2_CURRENT    800
1809
     #define X2_MICROSTEPS  16
1809
     #define X2_MICROSTEPS  16
1810
     #define X2_RSENSE    0.11
1810
     #define X2_RSENSE    0.11
1811
-    #define X2_CHAIN_POS    0
1811
+    #define X2_CHAIN_POS   -1
1812
   #endif
1812
   #endif
1813
 
1813
 
1814
   #if AXIS_IS_TMC(Y)
1814
   #if AXIS_IS_TMC(Y)
1815
     #define Y_CURRENT     800
1815
     #define Y_CURRENT     800
1816
     #define Y_MICROSTEPS   16
1816
     #define Y_MICROSTEPS   16
1817
     #define Y_RSENSE     0.11
1817
     #define Y_RSENSE     0.11
1818
-    #define Y_CHAIN_POS     0
1818
+    #define Y_CHAIN_POS    -1
1819
   #endif
1819
   #endif
1820
 
1820
 
1821
   #if AXIS_IS_TMC(Y2)
1821
   #if AXIS_IS_TMC(Y2)
1822
     #define Y2_CURRENT    800
1822
     #define Y2_CURRENT    800
1823
     #define Y2_MICROSTEPS  16
1823
     #define Y2_MICROSTEPS  16
1824
     #define Y2_RSENSE    0.11
1824
     #define Y2_RSENSE    0.11
1825
-    #define Y2_CHAIN_POS    0
1825
+    #define Y2_CHAIN_POS   -1
1826
   #endif
1826
   #endif
1827
 
1827
 
1828
   #if AXIS_IS_TMC(Z)
1828
   #if AXIS_IS_TMC(Z)
1829
     #define Z_CURRENT     800
1829
     #define Z_CURRENT     800
1830
     #define Z_MICROSTEPS   16
1830
     #define Z_MICROSTEPS   16
1831
     #define Z_RSENSE     0.11
1831
     #define Z_RSENSE     0.11
1832
-    #define Z_CHAIN_POS     0
1832
+    #define Z_CHAIN_POS    -1
1833
   #endif
1833
   #endif
1834
 
1834
 
1835
   #if AXIS_IS_TMC(Z2)
1835
   #if AXIS_IS_TMC(Z2)
1836
     #define Z2_CURRENT    800
1836
     #define Z2_CURRENT    800
1837
     #define Z2_MICROSTEPS  16
1837
     #define Z2_MICROSTEPS  16
1838
     #define Z2_RSENSE    0.11
1838
     #define Z2_RSENSE    0.11
1839
-    #define Z2_CHAIN_POS    0
1839
+    #define Z2_CHAIN_POS   -1
1840
   #endif
1840
   #endif
1841
 
1841
 
1842
   #if AXIS_IS_TMC(Z3)
1842
   #if AXIS_IS_TMC(Z3)
1843
     #define Z3_CURRENT    800
1843
     #define Z3_CURRENT    800
1844
     #define Z3_MICROSTEPS  16
1844
     #define Z3_MICROSTEPS  16
1845
     #define Z3_RSENSE    0.11
1845
     #define Z3_RSENSE    0.11
1846
-    #define Z3_CHAIN_POS    0
1846
+    #define Z3_CHAIN_POS   -1
1847
   #endif
1847
   #endif
1848
 
1848
 
1849
   #if AXIS_IS_TMC(E0)
1849
   #if AXIS_IS_TMC(E0)
1850
     #define E0_CURRENT    800
1850
     #define E0_CURRENT    800
1851
     #define E0_MICROSTEPS  16
1851
     #define E0_MICROSTEPS  16
1852
     #define E0_RSENSE    0.11
1852
     #define E0_RSENSE    0.11
1853
-    #define E0_CHAIN_POS    0
1853
+    #define E0_CHAIN_POS   -1
1854
   #endif
1854
   #endif
1855
 
1855
 
1856
   #if AXIS_IS_TMC(E1)
1856
   #if AXIS_IS_TMC(E1)
1857
     #define E1_CURRENT    800
1857
     #define E1_CURRENT    800
1858
     #define E1_MICROSTEPS  16
1858
     #define E1_MICROSTEPS  16
1859
     #define E1_RSENSE    0.11
1859
     #define E1_RSENSE    0.11
1860
-    #define E1_CHAIN_POS    0
1860
+    #define E1_CHAIN_POS   -1
1861
   #endif
1861
   #endif
1862
 
1862
 
1863
   #if AXIS_IS_TMC(E2)
1863
   #if AXIS_IS_TMC(E2)
1864
     #define E2_CURRENT    800
1864
     #define E2_CURRENT    800
1865
     #define E2_MICROSTEPS  16
1865
     #define E2_MICROSTEPS  16
1866
     #define E2_RSENSE    0.11
1866
     #define E2_RSENSE    0.11
1867
-    #define E2_CHAIN_POS    0
1867
+    #define E2_CHAIN_POS   -1
1868
   #endif
1868
   #endif
1869
 
1869
 
1870
   #if AXIS_IS_TMC(E3)
1870
   #if AXIS_IS_TMC(E3)
1871
     #define E3_CURRENT    800
1871
     #define E3_CURRENT    800
1872
     #define E3_MICROSTEPS  16
1872
     #define E3_MICROSTEPS  16
1873
     #define E3_RSENSE    0.11
1873
     #define E3_RSENSE    0.11
1874
-    #define E3_CHAIN_POS    0
1874
+    #define E3_CHAIN_POS   -1
1875
   #endif
1875
   #endif
1876
 
1876
 
1877
   #if AXIS_IS_TMC(E4)
1877
   #if AXIS_IS_TMC(E4)
1878
     #define E4_CURRENT    800
1878
     #define E4_CURRENT    800
1879
     #define E4_MICROSTEPS  16
1879
     #define E4_MICROSTEPS  16
1880
     #define E4_RSENSE    0.11
1880
     #define E4_RSENSE    0.11
1881
-    #define E4_CHAIN_POS    0
1881
+    #define E4_CHAIN_POS   -1
1882
   #endif
1882
   #endif
1883
 
1883
 
1884
   #if AXIS_IS_TMC(E5)
1884
   #if AXIS_IS_TMC(E5)
1885
     #define E5_CURRENT    800
1885
     #define E5_CURRENT    800
1886
     #define E5_MICROSTEPS  16
1886
     #define E5_MICROSTEPS  16
1887
     #define E5_RSENSE    0.11
1887
     #define E5_RSENSE    0.11
1888
-    #define E5_CHAIN_POS    0
1888
+    #define E5_CHAIN_POS   -1
1889
   #endif
1889
   #endif
1890
 
1890
 
1891
   /**
1891
   /**
2111
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2111
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2112
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2112
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2113
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2113
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2114
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2114
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2115
   #endif
2115
   #endif
2116
 
2116
 
2117
   #if AXIS_DRIVER_TYPE_X2(L6470)
2117
   #if AXIS_DRIVER_TYPE_X2(L6470)
2119
     #define X2_OVERCURRENT    2000
2119
     #define X2_OVERCURRENT    2000
2120
     #define X2_STALLCURRENT   1500
2120
     #define X2_STALLCURRENT   1500
2121
     #define X2_MAX_VOLTAGE     127
2121
     #define X2_MAX_VOLTAGE     127
2122
-    #define X2_CHAIN_POS         0
2122
+    #define X2_CHAIN_POS        -1
2123
   #endif
2123
   #endif
2124
 
2124
 
2125
   #if AXIS_DRIVER_TYPE_Y(L6470)
2125
   #if AXIS_DRIVER_TYPE_Y(L6470)
2127
     #define Y_OVERCURRENT     2000
2127
     #define Y_OVERCURRENT     2000
2128
     #define Y_STALLCURRENT    1500
2128
     #define Y_STALLCURRENT    1500
2129
     #define Y_MAX_VOLTAGE      127
2129
     #define Y_MAX_VOLTAGE      127
2130
-    #define Y_CHAIN_POS          0
2130
+    #define Y_CHAIN_POS         -1
2131
   #endif
2131
   #endif
2132
 
2132
 
2133
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2133
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2135
     #define Y2_OVERCURRENT    2000
2135
     #define Y2_OVERCURRENT    2000
2136
     #define Y2_STALLCURRENT   1500
2136
     #define Y2_STALLCURRENT   1500
2137
     #define Y2_MAX_VOLTAGE     127
2137
     #define Y2_MAX_VOLTAGE     127
2138
-    #define Y2_CHAIN_POS         0
2138
+    #define Y2_CHAIN_POS        -1
2139
   #endif
2139
   #endif
2140
 
2140
 
2141
   #if AXIS_DRIVER_TYPE_Z(L6470)
2141
   #if AXIS_DRIVER_TYPE_Z(L6470)
2143
     #define Z_OVERCURRENT     2000
2143
     #define Z_OVERCURRENT     2000
2144
     #define Z_STALLCURRENT    1500
2144
     #define Z_STALLCURRENT    1500
2145
     #define Z_MAX_VOLTAGE      127
2145
     #define Z_MAX_VOLTAGE      127
2146
-    #define Z_CHAIN_POS          0
2146
+    #define Z_CHAIN_POS         -1
2147
   #endif
2147
   #endif
2148
 
2148
 
2149
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2149
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2151
     #define Z2_OVERCURRENT    2000
2151
     #define Z2_OVERCURRENT    2000
2152
     #define Z2_STALLCURRENT   1500
2152
     #define Z2_STALLCURRENT   1500
2153
     #define Z2_MAX_VOLTAGE     127
2153
     #define Z2_MAX_VOLTAGE     127
2154
-    #define Z2_CHAIN_POS         0
2154
+    #define Z2_CHAIN_POS        -1
2155
   #endif
2155
   #endif
2156
 
2156
 
2157
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2157
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2159
     #define Z3_OVERCURRENT    2000
2159
     #define Z3_OVERCURRENT    2000
2160
     #define Z3_STALLCURRENT   1500
2160
     #define Z3_STALLCURRENT   1500
2161
     #define Z3_MAX_VOLTAGE     127
2161
     #define Z3_MAX_VOLTAGE     127
2162
-    #define Z3_CHAIN_POS         0
2162
+    #define Z3_CHAIN_POS        -1
2163
   #endif
2163
   #endif
2164
 
2164
 
2165
   #if AXIS_DRIVER_TYPE_E0(L6470)
2165
   #if AXIS_DRIVER_TYPE_E0(L6470)
2167
     #define E0_OVERCURRENT    2000
2167
     #define E0_OVERCURRENT    2000
2168
     #define E0_STALLCURRENT   1500
2168
     #define E0_STALLCURRENT   1500
2169
     #define E0_MAX_VOLTAGE     127
2169
     #define E0_MAX_VOLTAGE     127
2170
-    #define E0_CHAIN_POS         0
2170
+    #define E0_CHAIN_POS        -1
2171
   #endif
2171
   #endif
2172
 
2172
 
2173
   #if AXIS_DRIVER_TYPE_E1(L6470)
2173
   #if AXIS_DRIVER_TYPE_E1(L6470)
2175
     #define E1_OVERCURRENT    2000
2175
     #define E1_OVERCURRENT    2000
2176
     #define E1_STALLCURRENT   1500
2176
     #define E1_STALLCURRENT   1500
2177
     #define E1_MAX_VOLTAGE     127
2177
     #define E1_MAX_VOLTAGE     127
2178
-    #define E1_CHAIN_POS         0
2178
+    #define E1_CHAIN_POS        -1
2179
   #endif
2179
   #endif
2180
 
2180
 
2181
   #if AXIS_DRIVER_TYPE_E2(L6470)
2181
   #if AXIS_DRIVER_TYPE_E2(L6470)
2183
     #define E2_OVERCURRENT    2000
2183
     #define E2_OVERCURRENT    2000
2184
     #define E2_STALLCURRENT   1500
2184
     #define E2_STALLCURRENT   1500
2185
     #define E2_MAX_VOLTAGE     127
2185
     #define E2_MAX_VOLTAGE     127
2186
-    #define E2_CHAIN_POS         0
2186
+    #define E2_CHAIN_POS        -1
2187
   #endif
2187
   #endif
2188
 
2188
 
2189
   #if AXIS_DRIVER_TYPE_E3(L6470)
2189
   #if AXIS_DRIVER_TYPE_E3(L6470)
2191
     #define E3_OVERCURRENT    2000
2191
     #define E3_OVERCURRENT    2000
2192
     #define E3_STALLCURRENT   1500
2192
     #define E3_STALLCURRENT   1500
2193
     #define E3_MAX_VOLTAGE     127
2193
     #define E3_MAX_VOLTAGE     127
2194
-    #define E3_CHAIN_POS         0
2194
+    #define E3_CHAIN_POS        -1
2195
   #endif
2195
   #endif
2196
 
2196
 
2197
   #if AXIS_DRIVER_TYPE_E4(L6470)
2197
   #if AXIS_DRIVER_TYPE_E4(L6470)
2199
     #define E4_OVERCURRENT    2000
2199
     #define E4_OVERCURRENT    2000
2200
     #define E4_STALLCURRENT   1500
2200
     #define E4_STALLCURRENT   1500
2201
     #define E4_MAX_VOLTAGE     127
2201
     #define E4_MAX_VOLTAGE     127
2202
-    #define E4_CHAIN_POS         0
2202
+    #define E4_CHAIN_POS        -1
2203
   #endif
2203
   #endif
2204
 
2204
 
2205
   #if AXIS_DRIVER_TYPE_E5(L6470)
2205
   #if AXIS_DRIVER_TYPE_E5(L6470)
2207
     #define E5_OVERCURRENT    2000
2207
     #define E5_OVERCURRENT    2000
2208
     #define E5_STALLCURRENT   1500
2208
     #define E5_STALLCURRENT   1500
2209
     #define E5_MAX_VOLTAGE     127
2209
     #define E5_MAX_VOLTAGE     127
2210
-    #define E5_CHAIN_POS         0
2210
+    #define E5_CHAIN_POS        -1
2211
   #endif
2211
   #endif
2212
 
2212
 
2213
   /**
2213
   /**

+ 26
- 26
config/examples/Formbot/T_Rex_3/Configuration_adv.h View File

1801
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1801
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1802
     #define X_MICROSTEPS   16  // 0..256
1802
     #define X_MICROSTEPS   16  // 0..256
1803
     #define X_RSENSE     0.11
1803
     #define X_RSENSE     0.11
1804
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1804
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1805
   #endif
1805
   #endif
1806
 
1806
 
1807
   #if AXIS_IS_TMC(X2)
1807
   #if AXIS_IS_TMC(X2)
1808
     #define X2_CURRENT    800
1808
     #define X2_CURRENT    800
1809
     #define X2_MICROSTEPS  16
1809
     #define X2_MICROSTEPS  16
1810
     #define X2_RSENSE    0.11
1810
     #define X2_RSENSE    0.11
1811
-    #define X2_CHAIN_POS    0
1811
+    #define X2_CHAIN_POS   -1
1812
   #endif
1812
   #endif
1813
 
1813
 
1814
   #if AXIS_IS_TMC(Y)
1814
   #if AXIS_IS_TMC(Y)
1815
     #define Y_CURRENT     800
1815
     #define Y_CURRENT     800
1816
     #define Y_MICROSTEPS   16
1816
     #define Y_MICROSTEPS   16
1817
     #define Y_RSENSE     0.11
1817
     #define Y_RSENSE     0.11
1818
-    #define Y_CHAIN_POS     0
1818
+    #define Y_CHAIN_POS    -1
1819
   #endif
1819
   #endif
1820
 
1820
 
1821
   #if AXIS_IS_TMC(Y2)
1821
   #if AXIS_IS_TMC(Y2)
1822
     #define Y2_CURRENT    800
1822
     #define Y2_CURRENT    800
1823
     #define Y2_MICROSTEPS  16
1823
     #define Y2_MICROSTEPS  16
1824
     #define Y2_RSENSE    0.11
1824
     #define Y2_RSENSE    0.11
1825
-    #define Y2_CHAIN_POS    0
1825
+    #define Y2_CHAIN_POS   -1
1826
   #endif
1826
   #endif
1827
 
1827
 
1828
   #if AXIS_IS_TMC(Z)
1828
   #if AXIS_IS_TMC(Z)
1829
     #define Z_CURRENT     800
1829
     #define Z_CURRENT     800
1830
     #define Z_MICROSTEPS   16
1830
     #define Z_MICROSTEPS   16
1831
     #define Z_RSENSE     0.11
1831
     #define Z_RSENSE     0.11
1832
-    #define Z_CHAIN_POS     0
1832
+    #define Z_CHAIN_POS    -1
1833
   #endif
1833
   #endif
1834
 
1834
 
1835
   #if AXIS_IS_TMC(Z2)
1835
   #if AXIS_IS_TMC(Z2)
1836
     #define Z2_CURRENT    800
1836
     #define Z2_CURRENT    800
1837
     #define Z2_MICROSTEPS  16
1837
     #define Z2_MICROSTEPS  16
1838
     #define Z2_RSENSE    0.11
1838
     #define Z2_RSENSE    0.11
1839
-    #define Z2_CHAIN_POS    0
1839
+    #define Z2_CHAIN_POS   -1
1840
   #endif
1840
   #endif
1841
 
1841
 
1842
   #if AXIS_IS_TMC(Z3)
1842
   #if AXIS_IS_TMC(Z3)
1843
     #define Z3_CURRENT    800
1843
     #define Z3_CURRENT    800
1844
     #define Z3_MICROSTEPS  16
1844
     #define Z3_MICROSTEPS  16
1845
     #define Z3_RSENSE    0.11
1845
     #define Z3_RSENSE    0.11
1846
-    #define Z3_CHAIN_POS    0
1846
+    #define Z3_CHAIN_POS   -1
1847
   #endif
1847
   #endif
1848
 
1848
 
1849
   #if AXIS_IS_TMC(E0)
1849
   #if AXIS_IS_TMC(E0)
1850
     #define E0_CURRENT    800
1850
     #define E0_CURRENT    800
1851
     #define E0_MICROSTEPS  16
1851
     #define E0_MICROSTEPS  16
1852
     #define E0_RSENSE    0.11
1852
     #define E0_RSENSE    0.11
1853
-    #define E0_CHAIN_POS    0
1853
+    #define E0_CHAIN_POS   -1
1854
   #endif
1854
   #endif
1855
 
1855
 
1856
   #if AXIS_IS_TMC(E1)
1856
   #if AXIS_IS_TMC(E1)
1857
     #define E1_CURRENT    800
1857
     #define E1_CURRENT    800
1858
     #define E1_MICROSTEPS  16
1858
     #define E1_MICROSTEPS  16
1859
     #define E1_RSENSE    0.11
1859
     #define E1_RSENSE    0.11
1860
-    #define E1_CHAIN_POS    0
1860
+    #define E1_CHAIN_POS   -1
1861
   #endif
1861
   #endif
1862
 
1862
 
1863
   #if AXIS_IS_TMC(E2)
1863
   #if AXIS_IS_TMC(E2)
1864
     #define E2_CURRENT    800
1864
     #define E2_CURRENT    800
1865
     #define E2_MICROSTEPS  16
1865
     #define E2_MICROSTEPS  16
1866
     #define E2_RSENSE    0.11
1866
     #define E2_RSENSE    0.11
1867
-    #define E2_CHAIN_POS    0
1867
+    #define E2_CHAIN_POS   -1
1868
   #endif
1868
   #endif
1869
 
1869
 
1870
   #if AXIS_IS_TMC(E3)
1870
   #if AXIS_IS_TMC(E3)
1871
     #define E3_CURRENT    800
1871
     #define E3_CURRENT    800
1872
     #define E3_MICROSTEPS  16
1872
     #define E3_MICROSTEPS  16
1873
     #define E3_RSENSE    0.11
1873
     #define E3_RSENSE    0.11
1874
-    #define E3_CHAIN_POS    0
1874
+    #define E3_CHAIN_POS   -1
1875
   #endif
1875
   #endif
1876
 
1876
 
1877
   #if AXIS_IS_TMC(E4)
1877
   #if AXIS_IS_TMC(E4)
1878
     #define E4_CURRENT    800
1878
     #define E4_CURRENT    800
1879
     #define E4_MICROSTEPS  16
1879
     #define E4_MICROSTEPS  16
1880
     #define E4_RSENSE    0.11
1880
     #define E4_RSENSE    0.11
1881
-    #define E4_CHAIN_POS    0
1881
+    #define E4_CHAIN_POS   -1
1882
   #endif
1882
   #endif
1883
 
1883
 
1884
   #if AXIS_IS_TMC(E5)
1884
   #if AXIS_IS_TMC(E5)
1885
     #define E5_CURRENT    800
1885
     #define E5_CURRENT    800
1886
     #define E5_MICROSTEPS  16
1886
     #define E5_MICROSTEPS  16
1887
     #define E5_RSENSE    0.11
1887
     #define E5_RSENSE    0.11
1888
-    #define E5_CHAIN_POS    0
1888
+    #define E5_CHAIN_POS   -1
1889
   #endif
1889
   #endif
1890
 
1890
 
1891
   /**
1891
   /**
2111
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2111
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2112
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2112
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2113
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2113
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2114
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2114
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2115
   #endif
2115
   #endif
2116
 
2116
 
2117
   #if AXIS_DRIVER_TYPE_X2(L6470)
2117
   #if AXIS_DRIVER_TYPE_X2(L6470)
2119
     #define X2_OVERCURRENT    2000
2119
     #define X2_OVERCURRENT    2000
2120
     #define X2_STALLCURRENT   1500
2120
     #define X2_STALLCURRENT   1500
2121
     #define X2_MAX_VOLTAGE     127
2121
     #define X2_MAX_VOLTAGE     127
2122
-    #define X2_CHAIN_POS         0
2122
+    #define X2_CHAIN_POS        -1
2123
   #endif
2123
   #endif
2124
 
2124
 
2125
   #if AXIS_DRIVER_TYPE_Y(L6470)
2125
   #if AXIS_DRIVER_TYPE_Y(L6470)
2127
     #define Y_OVERCURRENT     2000
2127
     #define Y_OVERCURRENT     2000
2128
     #define Y_STALLCURRENT    1500
2128
     #define Y_STALLCURRENT    1500
2129
     #define Y_MAX_VOLTAGE      127
2129
     #define Y_MAX_VOLTAGE      127
2130
-    #define Y_CHAIN_POS          0
2130
+    #define Y_CHAIN_POS         -1
2131
   #endif
2131
   #endif
2132
 
2132
 
2133
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2133
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2135
     #define Y2_OVERCURRENT    2000
2135
     #define Y2_OVERCURRENT    2000
2136
     #define Y2_STALLCURRENT   1500
2136
     #define Y2_STALLCURRENT   1500
2137
     #define Y2_MAX_VOLTAGE     127
2137
     #define Y2_MAX_VOLTAGE     127
2138
-    #define Y2_CHAIN_POS         0
2138
+    #define Y2_CHAIN_POS        -1
2139
   #endif
2139
   #endif
2140
 
2140
 
2141
   #if AXIS_DRIVER_TYPE_Z(L6470)
2141
   #if AXIS_DRIVER_TYPE_Z(L6470)
2143
     #define Z_OVERCURRENT     2000
2143
     #define Z_OVERCURRENT     2000
2144
     #define Z_STALLCURRENT    1500
2144
     #define Z_STALLCURRENT    1500
2145
     #define Z_MAX_VOLTAGE      127
2145
     #define Z_MAX_VOLTAGE      127
2146
-    #define Z_CHAIN_POS          0
2146
+    #define Z_CHAIN_POS         -1
2147
   #endif
2147
   #endif
2148
 
2148
 
2149
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2149
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2151
     #define Z2_OVERCURRENT    2000
2151
     #define Z2_OVERCURRENT    2000
2152
     #define Z2_STALLCURRENT   1500
2152
     #define Z2_STALLCURRENT   1500
2153
     #define Z2_MAX_VOLTAGE     127
2153
     #define Z2_MAX_VOLTAGE     127
2154
-    #define Z2_CHAIN_POS         0
2154
+    #define Z2_CHAIN_POS        -1
2155
   #endif
2155
   #endif
2156
 
2156
 
2157
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2157
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2159
     #define Z3_OVERCURRENT    2000
2159
     #define Z3_OVERCURRENT    2000
2160
     #define Z3_STALLCURRENT   1500
2160
     #define Z3_STALLCURRENT   1500
2161
     #define Z3_MAX_VOLTAGE     127
2161
     #define Z3_MAX_VOLTAGE     127
2162
-    #define Z3_CHAIN_POS         0
2162
+    #define Z3_CHAIN_POS        -1
2163
   #endif
2163
   #endif
2164
 
2164
 
2165
   #if AXIS_DRIVER_TYPE_E0(L6470)
2165
   #if AXIS_DRIVER_TYPE_E0(L6470)
2167
     #define E0_OVERCURRENT    2000
2167
     #define E0_OVERCURRENT    2000
2168
     #define E0_STALLCURRENT   1500
2168
     #define E0_STALLCURRENT   1500
2169
     #define E0_MAX_VOLTAGE     127
2169
     #define E0_MAX_VOLTAGE     127
2170
-    #define E0_CHAIN_POS         0
2170
+    #define E0_CHAIN_POS        -1
2171
   #endif
2171
   #endif
2172
 
2172
 
2173
   #if AXIS_DRIVER_TYPE_E1(L6470)
2173
   #if AXIS_DRIVER_TYPE_E1(L6470)
2175
     #define E1_OVERCURRENT    2000
2175
     #define E1_OVERCURRENT    2000
2176
     #define E1_STALLCURRENT   1500
2176
     #define E1_STALLCURRENT   1500
2177
     #define E1_MAX_VOLTAGE     127
2177
     #define E1_MAX_VOLTAGE     127
2178
-    #define E1_CHAIN_POS         0
2178
+    #define E1_CHAIN_POS        -1
2179
   #endif
2179
   #endif
2180
 
2180
 
2181
   #if AXIS_DRIVER_TYPE_E2(L6470)
2181
   #if AXIS_DRIVER_TYPE_E2(L6470)
2183
     #define E2_OVERCURRENT    2000
2183
     #define E2_OVERCURRENT    2000
2184
     #define E2_STALLCURRENT   1500
2184
     #define E2_STALLCURRENT   1500
2185
     #define E2_MAX_VOLTAGE     127
2185
     #define E2_MAX_VOLTAGE     127
2186
-    #define E2_CHAIN_POS         0
2186
+    #define E2_CHAIN_POS        -1
2187
   #endif
2187
   #endif
2188
 
2188
 
2189
   #if AXIS_DRIVER_TYPE_E3(L6470)
2189
   #if AXIS_DRIVER_TYPE_E3(L6470)
2191
     #define E3_OVERCURRENT    2000
2191
     #define E3_OVERCURRENT    2000
2192
     #define E3_STALLCURRENT   1500
2192
     #define E3_STALLCURRENT   1500
2193
     #define E3_MAX_VOLTAGE     127
2193
     #define E3_MAX_VOLTAGE     127
2194
-    #define E3_CHAIN_POS         0
2194
+    #define E3_CHAIN_POS        -1
2195
   #endif
2195
   #endif
2196
 
2196
 
2197
   #if AXIS_DRIVER_TYPE_E4(L6470)
2197
   #if AXIS_DRIVER_TYPE_E4(L6470)
2199
     #define E4_OVERCURRENT    2000
2199
     #define E4_OVERCURRENT    2000
2200
     #define E4_STALLCURRENT   1500
2200
     #define E4_STALLCURRENT   1500
2201
     #define E4_MAX_VOLTAGE     127
2201
     #define E4_MAX_VOLTAGE     127
2202
-    #define E4_CHAIN_POS         0
2202
+    #define E4_CHAIN_POS        -1
2203
   #endif
2203
   #endif
2204
 
2204
 
2205
   #if AXIS_DRIVER_TYPE_E5(L6470)
2205
   #if AXIS_DRIVER_TYPE_E5(L6470)
2207
     #define E5_OVERCURRENT    2000
2207
     #define E5_OVERCURRENT    2000
2208
     #define E5_STALLCURRENT   1500
2208
     #define E5_STALLCURRENT   1500
2209
     #define E5_MAX_VOLTAGE     127
2209
     #define E5_MAX_VOLTAGE     127
2210
-    #define E5_CHAIN_POS         0
2210
+    #define E5_CHAIN_POS        -1
2211
   #endif
2211
   #endif
2212
 
2212
 
2213
   /**
2213
   /**

+ 26
- 26
config/examples/Geeetech/A10/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Geeetech/A10M/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Geeetech/A20M/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Geeetech/MeCreator2/Configuration_adv.h View File

1796
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1796
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_MICROSTEPS   16  // 0..256
1797
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_RSENSE     0.11
1798
     #define X_RSENSE     0.11
1799
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1799
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1800
   #endif
1800
   #endif
1801
 
1801
 
1802
   #if AXIS_IS_TMC(X2)
1802
   #if AXIS_IS_TMC(X2)
1803
     #define X2_CURRENT    800
1803
     #define X2_CURRENT    800
1804
     #define X2_MICROSTEPS  16
1804
     #define X2_MICROSTEPS  16
1805
     #define X2_RSENSE    0.11
1805
     #define X2_RSENSE    0.11
1806
-    #define X2_CHAIN_POS    0
1806
+    #define X2_CHAIN_POS   -1
1807
   #endif
1807
   #endif
1808
 
1808
 
1809
   #if AXIS_IS_TMC(Y)
1809
   #if AXIS_IS_TMC(Y)
1810
     #define Y_CURRENT     800
1810
     #define Y_CURRENT     800
1811
     #define Y_MICROSTEPS   16
1811
     #define Y_MICROSTEPS   16
1812
     #define Y_RSENSE     0.11
1812
     #define Y_RSENSE     0.11
1813
-    #define Y_CHAIN_POS     0
1813
+    #define Y_CHAIN_POS    -1
1814
   #endif
1814
   #endif
1815
 
1815
 
1816
   #if AXIS_IS_TMC(Y2)
1816
   #if AXIS_IS_TMC(Y2)
1817
     #define Y2_CURRENT    800
1817
     #define Y2_CURRENT    800
1818
     #define Y2_MICROSTEPS  16
1818
     #define Y2_MICROSTEPS  16
1819
     #define Y2_RSENSE    0.11
1819
     #define Y2_RSENSE    0.11
1820
-    #define Y2_CHAIN_POS    0
1820
+    #define Y2_CHAIN_POS   -1
1821
   #endif
1821
   #endif
1822
 
1822
 
1823
   #if AXIS_IS_TMC(Z)
1823
   #if AXIS_IS_TMC(Z)
1824
     #define Z_CURRENT     800
1824
     #define Z_CURRENT     800
1825
     #define Z_MICROSTEPS   16
1825
     #define Z_MICROSTEPS   16
1826
     #define Z_RSENSE     0.11
1826
     #define Z_RSENSE     0.11
1827
-    #define Z_CHAIN_POS     0
1827
+    #define Z_CHAIN_POS    -1
1828
   #endif
1828
   #endif
1829
 
1829
 
1830
   #if AXIS_IS_TMC(Z2)
1830
   #if AXIS_IS_TMC(Z2)
1831
     #define Z2_CURRENT    800
1831
     #define Z2_CURRENT    800
1832
     #define Z2_MICROSTEPS  16
1832
     #define Z2_MICROSTEPS  16
1833
     #define Z2_RSENSE    0.11
1833
     #define Z2_RSENSE    0.11
1834
-    #define Z2_CHAIN_POS    0
1834
+    #define Z2_CHAIN_POS   -1
1835
   #endif
1835
   #endif
1836
 
1836
 
1837
   #if AXIS_IS_TMC(Z3)
1837
   #if AXIS_IS_TMC(Z3)
1838
     #define Z3_CURRENT    800
1838
     #define Z3_CURRENT    800
1839
     #define Z3_MICROSTEPS  16
1839
     #define Z3_MICROSTEPS  16
1840
     #define Z3_RSENSE    0.11
1840
     #define Z3_RSENSE    0.11
1841
-    #define Z3_CHAIN_POS    0
1841
+    #define Z3_CHAIN_POS   -1
1842
   #endif
1842
   #endif
1843
 
1843
 
1844
   #if AXIS_IS_TMC(E0)
1844
   #if AXIS_IS_TMC(E0)
1845
     #define E0_CURRENT    800
1845
     #define E0_CURRENT    800
1846
     #define E0_MICROSTEPS  16
1846
     #define E0_MICROSTEPS  16
1847
     #define E0_RSENSE    0.11
1847
     #define E0_RSENSE    0.11
1848
-    #define E0_CHAIN_POS    0
1848
+    #define E0_CHAIN_POS   -1
1849
   #endif
1849
   #endif
1850
 
1850
 
1851
   #if AXIS_IS_TMC(E1)
1851
   #if AXIS_IS_TMC(E1)
1852
     #define E1_CURRENT    800
1852
     #define E1_CURRENT    800
1853
     #define E1_MICROSTEPS  16
1853
     #define E1_MICROSTEPS  16
1854
     #define E1_RSENSE    0.11
1854
     #define E1_RSENSE    0.11
1855
-    #define E1_CHAIN_POS    0
1855
+    #define E1_CHAIN_POS   -1
1856
   #endif
1856
   #endif
1857
 
1857
 
1858
   #if AXIS_IS_TMC(E2)
1858
   #if AXIS_IS_TMC(E2)
1859
     #define E2_CURRENT    800
1859
     #define E2_CURRENT    800
1860
     #define E2_MICROSTEPS  16
1860
     #define E2_MICROSTEPS  16
1861
     #define E2_RSENSE    0.11
1861
     #define E2_RSENSE    0.11
1862
-    #define E2_CHAIN_POS    0
1862
+    #define E2_CHAIN_POS   -1
1863
   #endif
1863
   #endif
1864
 
1864
 
1865
   #if AXIS_IS_TMC(E3)
1865
   #if AXIS_IS_TMC(E3)
1866
     #define E3_CURRENT    800
1866
     #define E3_CURRENT    800
1867
     #define E3_MICROSTEPS  16
1867
     #define E3_MICROSTEPS  16
1868
     #define E3_RSENSE    0.11
1868
     #define E3_RSENSE    0.11
1869
-    #define E3_CHAIN_POS    0
1869
+    #define E3_CHAIN_POS   -1
1870
   #endif
1870
   #endif
1871
 
1871
 
1872
   #if AXIS_IS_TMC(E4)
1872
   #if AXIS_IS_TMC(E4)
1873
     #define E4_CURRENT    800
1873
     #define E4_CURRENT    800
1874
     #define E4_MICROSTEPS  16
1874
     #define E4_MICROSTEPS  16
1875
     #define E4_RSENSE    0.11
1875
     #define E4_RSENSE    0.11
1876
-    #define E4_CHAIN_POS    0
1876
+    #define E4_CHAIN_POS   -1
1877
   #endif
1877
   #endif
1878
 
1878
 
1879
   #if AXIS_IS_TMC(E5)
1879
   #if AXIS_IS_TMC(E5)
1880
     #define E5_CURRENT    800
1880
     #define E5_CURRENT    800
1881
     #define E5_MICROSTEPS  16
1881
     #define E5_MICROSTEPS  16
1882
     #define E5_RSENSE    0.11
1882
     #define E5_RSENSE    0.11
1883
-    #define E5_CHAIN_POS    0
1883
+    #define E5_CHAIN_POS   -1
1884
   #endif
1884
   #endif
1885
 
1885
 
1886
   /**
1886
   /**
2106
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2106
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2107
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2108
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2109
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2110
   #endif
2110
   #endif
2111
 
2111
 
2112
   #if AXIS_DRIVER_TYPE_X2(L6470)
2112
   #if AXIS_DRIVER_TYPE_X2(L6470)
2114
     #define X2_OVERCURRENT    2000
2114
     #define X2_OVERCURRENT    2000
2115
     #define X2_STALLCURRENT   1500
2115
     #define X2_STALLCURRENT   1500
2116
     #define X2_MAX_VOLTAGE     127
2116
     #define X2_MAX_VOLTAGE     127
2117
-    #define X2_CHAIN_POS         0
2117
+    #define X2_CHAIN_POS        -1
2118
   #endif
2118
   #endif
2119
 
2119
 
2120
   #if AXIS_DRIVER_TYPE_Y(L6470)
2120
   #if AXIS_DRIVER_TYPE_Y(L6470)
2122
     #define Y_OVERCURRENT     2000
2122
     #define Y_OVERCURRENT     2000
2123
     #define Y_STALLCURRENT    1500
2123
     #define Y_STALLCURRENT    1500
2124
     #define Y_MAX_VOLTAGE      127
2124
     #define Y_MAX_VOLTAGE      127
2125
-    #define Y_CHAIN_POS          0
2125
+    #define Y_CHAIN_POS         -1
2126
   #endif
2126
   #endif
2127
 
2127
 
2128
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2128
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2130
     #define Y2_OVERCURRENT    2000
2130
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_STALLCURRENT   1500
2131
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_MAX_VOLTAGE     127
2132
     #define Y2_MAX_VOLTAGE     127
2133
-    #define Y2_CHAIN_POS         0
2133
+    #define Y2_CHAIN_POS        -1
2134
   #endif
2134
   #endif
2135
 
2135
 
2136
   #if AXIS_DRIVER_TYPE_Z(L6470)
2136
   #if AXIS_DRIVER_TYPE_Z(L6470)
2138
     #define Z_OVERCURRENT     2000
2138
     #define Z_OVERCURRENT     2000
2139
     #define Z_STALLCURRENT    1500
2139
     #define Z_STALLCURRENT    1500
2140
     #define Z_MAX_VOLTAGE      127
2140
     #define Z_MAX_VOLTAGE      127
2141
-    #define Z_CHAIN_POS          0
2141
+    #define Z_CHAIN_POS         -1
2142
   #endif
2142
   #endif
2143
 
2143
 
2144
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2144
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2146
     #define Z2_OVERCURRENT    2000
2146
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_STALLCURRENT   1500
2147
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_MAX_VOLTAGE     127
2148
     #define Z2_MAX_VOLTAGE     127
2149
-    #define Z2_CHAIN_POS         0
2149
+    #define Z2_CHAIN_POS        -1
2150
   #endif
2150
   #endif
2151
 
2151
 
2152
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2152
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2154
     #define Z3_OVERCURRENT    2000
2154
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_STALLCURRENT   1500
2155
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_MAX_VOLTAGE     127
2156
     #define Z3_MAX_VOLTAGE     127
2157
-    #define Z3_CHAIN_POS         0
2157
+    #define Z3_CHAIN_POS        -1
2158
   #endif
2158
   #endif
2159
 
2159
 
2160
   #if AXIS_DRIVER_TYPE_E0(L6470)
2160
   #if AXIS_DRIVER_TYPE_E0(L6470)
2162
     #define E0_OVERCURRENT    2000
2162
     #define E0_OVERCURRENT    2000
2163
     #define E0_STALLCURRENT   1500
2163
     #define E0_STALLCURRENT   1500
2164
     #define E0_MAX_VOLTAGE     127
2164
     #define E0_MAX_VOLTAGE     127
2165
-    #define E0_CHAIN_POS         0
2165
+    #define E0_CHAIN_POS        -1
2166
   #endif
2166
   #endif
2167
 
2167
 
2168
   #if AXIS_DRIVER_TYPE_E1(L6470)
2168
   #if AXIS_DRIVER_TYPE_E1(L6470)
2170
     #define E1_OVERCURRENT    2000
2170
     #define E1_OVERCURRENT    2000
2171
     #define E1_STALLCURRENT   1500
2171
     #define E1_STALLCURRENT   1500
2172
     #define E1_MAX_VOLTAGE     127
2172
     #define E1_MAX_VOLTAGE     127
2173
-    #define E1_CHAIN_POS         0
2173
+    #define E1_CHAIN_POS        -1
2174
   #endif
2174
   #endif
2175
 
2175
 
2176
   #if AXIS_DRIVER_TYPE_E2(L6470)
2176
   #if AXIS_DRIVER_TYPE_E2(L6470)
2178
     #define E2_OVERCURRENT    2000
2178
     #define E2_OVERCURRENT    2000
2179
     #define E2_STALLCURRENT   1500
2179
     #define E2_STALLCURRENT   1500
2180
     #define E2_MAX_VOLTAGE     127
2180
     #define E2_MAX_VOLTAGE     127
2181
-    #define E2_CHAIN_POS         0
2181
+    #define E2_CHAIN_POS        -1
2182
   #endif
2182
   #endif
2183
 
2183
 
2184
   #if AXIS_DRIVER_TYPE_E3(L6470)
2184
   #if AXIS_DRIVER_TYPE_E3(L6470)
2186
     #define E3_OVERCURRENT    2000
2186
     #define E3_OVERCURRENT    2000
2187
     #define E3_STALLCURRENT   1500
2187
     #define E3_STALLCURRENT   1500
2188
     #define E3_MAX_VOLTAGE     127
2188
     #define E3_MAX_VOLTAGE     127
2189
-    #define E3_CHAIN_POS         0
2189
+    #define E3_CHAIN_POS        -1
2190
   #endif
2190
   #endif
2191
 
2191
 
2192
   #if AXIS_DRIVER_TYPE_E4(L6470)
2192
   #if AXIS_DRIVER_TYPE_E4(L6470)
2194
     #define E4_OVERCURRENT    2000
2194
     #define E4_OVERCURRENT    2000
2195
     #define E4_STALLCURRENT   1500
2195
     #define E4_STALLCURRENT   1500
2196
     #define E4_MAX_VOLTAGE     127
2196
     #define E4_MAX_VOLTAGE     127
2197
-    #define E4_CHAIN_POS         0
2197
+    #define E4_CHAIN_POS        -1
2198
   #endif
2198
   #endif
2199
 
2199
 
2200
   #if AXIS_DRIVER_TYPE_E5(L6470)
2200
   #if AXIS_DRIVER_TYPE_E5(L6470)
2202
     #define E5_OVERCURRENT    2000
2202
     #define E5_OVERCURRENT    2000
2203
     #define E5_STALLCURRENT   1500
2203
     #define E5_STALLCURRENT   1500
2204
     #define E5_MAX_VOLTAGE     127
2204
     #define E5_MAX_VOLTAGE     127
2205
-    #define E5_CHAIN_POS         0
2205
+    #define E5_CHAIN_POS        -1
2206
   #endif
2206
   #endif
2207
 
2207
 
2208
   /**
2208
   /**

+ 26
- 26
config/examples/Geeetech/Prusa i3 Pro C/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Geeetech/Prusa i3 Pro W/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/HMS434/Configuration_adv.h View File

1776
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1776
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1777
     #define X_MICROSTEPS   16  // 0..256
1777
     #define X_MICROSTEPS   16  // 0..256
1778
     #define X_RSENSE     0.11
1778
     #define X_RSENSE     0.11
1779
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1779
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1780
   #endif
1780
   #endif
1781
 
1781
 
1782
   #if AXIS_IS_TMC(X2)
1782
   #if AXIS_IS_TMC(X2)
1783
     #define X2_CURRENT    800
1783
     #define X2_CURRENT    800
1784
     #define X2_MICROSTEPS  16
1784
     #define X2_MICROSTEPS  16
1785
     #define X2_RSENSE    0.11
1785
     #define X2_RSENSE    0.11
1786
-    #define X2_CHAIN_POS    0
1786
+    #define X2_CHAIN_POS   -1
1787
   #endif
1787
   #endif
1788
 
1788
 
1789
   #if AXIS_IS_TMC(Y)
1789
   #if AXIS_IS_TMC(Y)
1790
     #define Y_CURRENT     800
1790
     #define Y_CURRENT     800
1791
     #define Y_MICROSTEPS   16
1791
     #define Y_MICROSTEPS   16
1792
     #define Y_RSENSE     0.11
1792
     #define Y_RSENSE     0.11
1793
-    #define Y_CHAIN_POS     0
1793
+    #define Y_CHAIN_POS    -1
1794
   #endif
1794
   #endif
1795
 
1795
 
1796
   #if AXIS_IS_TMC(Y2)
1796
   #if AXIS_IS_TMC(Y2)
1797
     #define Y2_CURRENT    800
1797
     #define Y2_CURRENT    800
1798
     #define Y2_MICROSTEPS  16
1798
     #define Y2_MICROSTEPS  16
1799
     #define Y2_RSENSE    0.11
1799
     #define Y2_RSENSE    0.11
1800
-    #define Y2_CHAIN_POS    0
1800
+    #define Y2_CHAIN_POS   -1
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(Z)
1803
   #if AXIS_IS_TMC(Z)
1804
     #define Z_CURRENT     800
1804
     #define Z_CURRENT     800
1805
     #define Z_MICROSTEPS   16
1805
     #define Z_MICROSTEPS   16
1806
     #define Z_RSENSE     0.11
1806
     #define Z_RSENSE     0.11
1807
-    #define Z_CHAIN_POS     0
1807
+    #define Z_CHAIN_POS    -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Z2)
1810
   #if AXIS_IS_TMC(Z2)
1811
     #define Z2_CURRENT    800
1811
     #define Z2_CURRENT    800
1812
     #define Z2_MICROSTEPS  16
1812
     #define Z2_MICROSTEPS  16
1813
     #define Z2_RSENSE    0.11
1813
     #define Z2_RSENSE    0.11
1814
-    #define Z2_CHAIN_POS    0
1814
+    #define Z2_CHAIN_POS   -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Z3)
1817
   #if AXIS_IS_TMC(Z3)
1818
     #define Z3_CURRENT    800
1818
     #define Z3_CURRENT    800
1819
     #define Z3_MICROSTEPS  16
1819
     #define Z3_MICROSTEPS  16
1820
     #define Z3_RSENSE    0.11
1820
     #define Z3_RSENSE    0.11
1821
-    #define Z3_CHAIN_POS    0
1821
+    #define Z3_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(E0)
1824
   #if AXIS_IS_TMC(E0)
1825
     #define E0_CURRENT    800
1825
     #define E0_CURRENT    800
1826
     #define E0_MICROSTEPS  16
1826
     #define E0_MICROSTEPS  16
1827
     #define E0_RSENSE    0.11
1827
     #define E0_RSENSE    0.11
1828
-    #define E0_CHAIN_POS    0
1828
+    #define E0_CHAIN_POS   -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(E1)
1831
   #if AXIS_IS_TMC(E1)
1832
     #define E1_CURRENT    800
1832
     #define E1_CURRENT    800
1833
     #define E1_MICROSTEPS  16
1833
     #define E1_MICROSTEPS  16
1834
     #define E1_RSENSE    0.11
1834
     #define E1_RSENSE    0.11
1835
-    #define E1_CHAIN_POS    0
1835
+    #define E1_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(E2)
1838
   #if AXIS_IS_TMC(E2)
1839
     #define E2_CURRENT    800
1839
     #define E2_CURRENT    800
1840
     #define E2_MICROSTEPS  16
1840
     #define E2_MICROSTEPS  16
1841
     #define E2_RSENSE    0.11
1841
     #define E2_RSENSE    0.11
1842
-    #define E2_CHAIN_POS    0
1842
+    #define E2_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E3)
1845
   #if AXIS_IS_TMC(E3)
1846
     #define E3_CURRENT    800
1846
     #define E3_CURRENT    800
1847
     #define E3_MICROSTEPS  16
1847
     #define E3_MICROSTEPS  16
1848
     #define E3_RSENSE    0.11
1848
     #define E3_RSENSE    0.11
1849
-    #define E3_CHAIN_POS    0
1849
+    #define E3_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E4)
1852
   #if AXIS_IS_TMC(E4)
1853
     #define E4_CURRENT    800
1853
     #define E4_CURRENT    800
1854
     #define E4_MICROSTEPS  16
1854
     #define E4_MICROSTEPS  16
1855
     #define E4_RSENSE    0.11
1855
     #define E4_RSENSE    0.11
1856
-    #define E4_CHAIN_POS    0
1856
+    #define E4_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E5)
1859
   #if AXIS_IS_TMC(E5)
1860
     #define E5_CURRENT    800
1860
     #define E5_CURRENT    800
1861
     #define E5_MICROSTEPS  16
1861
     #define E5_MICROSTEPS  16
1862
     #define E5_RSENSE    0.11
1862
     #define E5_RSENSE    0.11
1863
-    #define E5_CHAIN_POS    0
1863
+    #define E5_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   /**
1866
   /**
2086
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2086
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2087
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2087
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2088
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2088
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2089
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2089
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2090
   #endif
2090
   #endif
2091
 
2091
 
2092
   #if AXIS_DRIVER_TYPE_X2(L6470)
2092
   #if AXIS_DRIVER_TYPE_X2(L6470)
2094
     #define X2_OVERCURRENT    2000
2094
     #define X2_OVERCURRENT    2000
2095
     #define X2_STALLCURRENT   1500
2095
     #define X2_STALLCURRENT   1500
2096
     #define X2_MAX_VOLTAGE     127
2096
     #define X2_MAX_VOLTAGE     127
2097
-    #define X2_CHAIN_POS         0
2097
+    #define X2_CHAIN_POS        -1
2098
   #endif
2098
   #endif
2099
 
2099
 
2100
   #if AXIS_DRIVER_TYPE_Y(L6470)
2100
   #if AXIS_DRIVER_TYPE_Y(L6470)
2102
     #define Y_OVERCURRENT     2000
2102
     #define Y_OVERCURRENT     2000
2103
     #define Y_STALLCURRENT    1500
2103
     #define Y_STALLCURRENT    1500
2104
     #define Y_MAX_VOLTAGE      127
2104
     #define Y_MAX_VOLTAGE      127
2105
-    #define Y_CHAIN_POS          0
2105
+    #define Y_CHAIN_POS         -1
2106
   #endif
2106
   #endif
2107
 
2107
 
2108
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2108
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2110
     #define Y2_OVERCURRENT    2000
2110
     #define Y2_OVERCURRENT    2000
2111
     #define Y2_STALLCURRENT   1500
2111
     #define Y2_STALLCURRENT   1500
2112
     #define Y2_MAX_VOLTAGE     127
2112
     #define Y2_MAX_VOLTAGE     127
2113
-    #define Y2_CHAIN_POS         0
2113
+    #define Y2_CHAIN_POS        -1
2114
   #endif
2114
   #endif
2115
 
2115
 
2116
   #if AXIS_DRIVER_TYPE_Z(L6470)
2116
   #if AXIS_DRIVER_TYPE_Z(L6470)
2118
     #define Z_OVERCURRENT     2000
2118
     #define Z_OVERCURRENT     2000
2119
     #define Z_STALLCURRENT    1500
2119
     #define Z_STALLCURRENT    1500
2120
     #define Z_MAX_VOLTAGE      127
2120
     #define Z_MAX_VOLTAGE      127
2121
-    #define Z_CHAIN_POS          0
2121
+    #define Z_CHAIN_POS         -1
2122
   #endif
2122
   #endif
2123
 
2123
 
2124
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2124
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2126
     #define Z2_OVERCURRENT    2000
2126
     #define Z2_OVERCURRENT    2000
2127
     #define Z2_STALLCURRENT   1500
2127
     #define Z2_STALLCURRENT   1500
2128
     #define Z2_MAX_VOLTAGE     127
2128
     #define Z2_MAX_VOLTAGE     127
2129
-    #define Z2_CHAIN_POS         0
2129
+    #define Z2_CHAIN_POS        -1
2130
   #endif
2130
   #endif
2131
 
2131
 
2132
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2132
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2134
     #define Z3_OVERCURRENT    2000
2134
     #define Z3_OVERCURRENT    2000
2135
     #define Z3_STALLCURRENT   1500
2135
     #define Z3_STALLCURRENT   1500
2136
     #define Z3_MAX_VOLTAGE     127
2136
     #define Z3_MAX_VOLTAGE     127
2137
-    #define Z3_CHAIN_POS         0
2137
+    #define Z3_CHAIN_POS        -1
2138
   #endif
2138
   #endif
2139
 
2139
 
2140
   #if AXIS_DRIVER_TYPE_E0(L6470)
2140
   #if AXIS_DRIVER_TYPE_E0(L6470)
2142
     #define E0_OVERCURRENT    2000
2142
     #define E0_OVERCURRENT    2000
2143
     #define E0_STALLCURRENT   1500
2143
     #define E0_STALLCURRENT   1500
2144
     #define E0_MAX_VOLTAGE     127
2144
     #define E0_MAX_VOLTAGE     127
2145
-    #define E0_CHAIN_POS         0
2145
+    #define E0_CHAIN_POS        -1
2146
   #endif
2146
   #endif
2147
 
2147
 
2148
   #if AXIS_DRIVER_TYPE_E1(L6470)
2148
   #if AXIS_DRIVER_TYPE_E1(L6470)
2150
     #define E1_OVERCURRENT    2000
2150
     #define E1_OVERCURRENT    2000
2151
     #define E1_STALLCURRENT   1500
2151
     #define E1_STALLCURRENT   1500
2152
     #define E1_MAX_VOLTAGE     127
2152
     #define E1_MAX_VOLTAGE     127
2153
-    #define E1_CHAIN_POS         0
2153
+    #define E1_CHAIN_POS        -1
2154
   #endif
2154
   #endif
2155
 
2155
 
2156
   #if AXIS_DRIVER_TYPE_E2(L6470)
2156
   #if AXIS_DRIVER_TYPE_E2(L6470)
2158
     #define E2_OVERCURRENT    2000
2158
     #define E2_OVERCURRENT    2000
2159
     #define E2_STALLCURRENT   1500
2159
     #define E2_STALLCURRENT   1500
2160
     #define E2_MAX_VOLTAGE     127
2160
     #define E2_MAX_VOLTAGE     127
2161
-    #define E2_CHAIN_POS         0
2161
+    #define E2_CHAIN_POS        -1
2162
   #endif
2162
   #endif
2163
 
2163
 
2164
   #if AXIS_DRIVER_TYPE_E3(L6470)
2164
   #if AXIS_DRIVER_TYPE_E3(L6470)
2166
     #define E3_OVERCURRENT    2000
2166
     #define E3_OVERCURRENT    2000
2167
     #define E3_STALLCURRENT   1500
2167
     #define E3_STALLCURRENT   1500
2168
     #define E3_MAX_VOLTAGE     127
2168
     #define E3_MAX_VOLTAGE     127
2169
-    #define E3_CHAIN_POS         0
2169
+    #define E3_CHAIN_POS        -1
2170
   #endif
2170
   #endif
2171
 
2171
 
2172
   #if AXIS_DRIVER_TYPE_E4(L6470)
2172
   #if AXIS_DRIVER_TYPE_E4(L6470)
2174
     #define E4_OVERCURRENT    2000
2174
     #define E4_OVERCURRENT    2000
2175
     #define E4_STALLCURRENT   1500
2175
     #define E4_STALLCURRENT   1500
2176
     #define E4_MAX_VOLTAGE     127
2176
     #define E4_MAX_VOLTAGE     127
2177
-    #define E4_CHAIN_POS         0
2177
+    #define E4_CHAIN_POS        -1
2178
   #endif
2178
   #endif
2179
 
2179
 
2180
   #if AXIS_DRIVER_TYPE_E5(L6470)
2180
   #if AXIS_DRIVER_TYPE_E5(L6470)
2182
     #define E5_OVERCURRENT    2000
2182
     #define E5_OVERCURRENT    2000
2183
     #define E5_STALLCURRENT   1500
2183
     #define E5_STALLCURRENT   1500
2184
     #define E5_MAX_VOLTAGE     127
2184
     #define E5_MAX_VOLTAGE     127
2185
-    #define E5_CHAIN_POS         0
2185
+    #define E5_CHAIN_POS        -1
2186
   #endif
2186
   #endif
2187
 
2187
 
2188
   /**
2188
   /**

+ 26
- 26
config/examples/Infitary/i3-M508/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/JGAurora/A1/Configuration_adv.h View File

1802
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1802
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1803
     #define X_MICROSTEPS   16  // 0..256
1803
     #define X_MICROSTEPS   16  // 0..256
1804
     #define X_RSENSE     0.11
1804
     #define X_RSENSE     0.11
1805
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1805
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1806
   #endif
1806
   #endif
1807
 
1807
 
1808
   #if AXIS_IS_TMC(X2)
1808
   #if AXIS_IS_TMC(X2)
1809
     #define X2_CURRENT    800
1809
     #define X2_CURRENT    800
1810
     #define X2_MICROSTEPS  16
1810
     #define X2_MICROSTEPS  16
1811
     #define X2_RSENSE    0.11
1811
     #define X2_RSENSE    0.11
1812
-    #define X2_CHAIN_POS    0
1812
+    #define X2_CHAIN_POS   -1
1813
   #endif
1813
   #endif
1814
 
1814
 
1815
   #if AXIS_IS_TMC(Y)
1815
   #if AXIS_IS_TMC(Y)
1816
     #define Y_CURRENT     800
1816
     #define Y_CURRENT     800
1817
     #define Y_MICROSTEPS   16
1817
     #define Y_MICROSTEPS   16
1818
     #define Y_RSENSE     0.11
1818
     #define Y_RSENSE     0.11
1819
-    #define Y_CHAIN_POS     0
1819
+    #define Y_CHAIN_POS    -1
1820
   #endif
1820
   #endif
1821
 
1821
 
1822
   #if AXIS_IS_TMC(Y2)
1822
   #if AXIS_IS_TMC(Y2)
1823
     #define Y2_CURRENT    800
1823
     #define Y2_CURRENT    800
1824
     #define Y2_MICROSTEPS  16
1824
     #define Y2_MICROSTEPS  16
1825
     #define Y2_RSENSE    0.11
1825
     #define Y2_RSENSE    0.11
1826
-    #define Y2_CHAIN_POS    0
1826
+    #define Y2_CHAIN_POS   -1
1827
   #endif
1827
   #endif
1828
 
1828
 
1829
   #if AXIS_IS_TMC(Z)
1829
   #if AXIS_IS_TMC(Z)
1830
     #define Z_CURRENT     800
1830
     #define Z_CURRENT     800
1831
     #define Z_MICROSTEPS   16
1831
     #define Z_MICROSTEPS   16
1832
     #define Z_RSENSE     0.11
1832
     #define Z_RSENSE     0.11
1833
-    #define Z_CHAIN_POS     0
1833
+    #define Z_CHAIN_POS    -1
1834
   #endif
1834
   #endif
1835
 
1835
 
1836
   #if AXIS_IS_TMC(Z2)
1836
   #if AXIS_IS_TMC(Z2)
1837
     #define Z2_CURRENT    800
1837
     #define Z2_CURRENT    800
1838
     #define Z2_MICROSTEPS  16
1838
     #define Z2_MICROSTEPS  16
1839
     #define Z2_RSENSE    0.11
1839
     #define Z2_RSENSE    0.11
1840
-    #define Z2_CHAIN_POS    0
1840
+    #define Z2_CHAIN_POS   -1
1841
   #endif
1841
   #endif
1842
 
1842
 
1843
   #if AXIS_IS_TMC(Z3)
1843
   #if AXIS_IS_TMC(Z3)
1844
     #define Z3_CURRENT    800
1844
     #define Z3_CURRENT    800
1845
     #define Z3_MICROSTEPS  16
1845
     #define Z3_MICROSTEPS  16
1846
     #define Z3_RSENSE    0.11
1846
     #define Z3_RSENSE    0.11
1847
-    #define Z3_CHAIN_POS    0
1847
+    #define Z3_CHAIN_POS   -1
1848
   #endif
1848
   #endif
1849
 
1849
 
1850
   #if AXIS_IS_TMC(E0)
1850
   #if AXIS_IS_TMC(E0)
1851
     #define E0_CURRENT    800
1851
     #define E0_CURRENT    800
1852
     #define E0_MICROSTEPS  16
1852
     #define E0_MICROSTEPS  16
1853
     #define E0_RSENSE    0.11
1853
     #define E0_RSENSE    0.11
1854
-    #define E0_CHAIN_POS    0
1854
+    #define E0_CHAIN_POS   -1
1855
   #endif
1855
   #endif
1856
 
1856
 
1857
   #if AXIS_IS_TMC(E1)
1857
   #if AXIS_IS_TMC(E1)
1858
     #define E1_CURRENT    800
1858
     #define E1_CURRENT    800
1859
     #define E1_MICROSTEPS  16
1859
     #define E1_MICROSTEPS  16
1860
     #define E1_RSENSE    0.11
1860
     #define E1_RSENSE    0.11
1861
-    #define E1_CHAIN_POS    0
1861
+    #define E1_CHAIN_POS   -1
1862
   #endif
1862
   #endif
1863
 
1863
 
1864
   #if AXIS_IS_TMC(E2)
1864
   #if AXIS_IS_TMC(E2)
1865
     #define E2_CURRENT    800
1865
     #define E2_CURRENT    800
1866
     #define E2_MICROSTEPS  16
1866
     #define E2_MICROSTEPS  16
1867
     #define E2_RSENSE    0.11
1867
     #define E2_RSENSE    0.11
1868
-    #define E2_CHAIN_POS    0
1868
+    #define E2_CHAIN_POS   -1
1869
   #endif
1869
   #endif
1870
 
1870
 
1871
   #if AXIS_IS_TMC(E3)
1871
   #if AXIS_IS_TMC(E3)
1872
     #define E3_CURRENT    800
1872
     #define E3_CURRENT    800
1873
     #define E3_MICROSTEPS  16
1873
     #define E3_MICROSTEPS  16
1874
     #define E3_RSENSE    0.11
1874
     #define E3_RSENSE    0.11
1875
-    #define E3_CHAIN_POS    0
1875
+    #define E3_CHAIN_POS   -1
1876
   #endif
1876
   #endif
1877
 
1877
 
1878
   #if AXIS_IS_TMC(E4)
1878
   #if AXIS_IS_TMC(E4)
1879
     #define E4_CURRENT    800
1879
     #define E4_CURRENT    800
1880
     #define E4_MICROSTEPS  16
1880
     #define E4_MICROSTEPS  16
1881
     #define E4_RSENSE    0.11
1881
     #define E4_RSENSE    0.11
1882
-    #define E4_CHAIN_POS    0
1882
+    #define E4_CHAIN_POS   -1
1883
   #endif
1883
   #endif
1884
 
1884
 
1885
   #if AXIS_IS_TMC(E5)
1885
   #if AXIS_IS_TMC(E5)
1886
     #define E5_CURRENT    800
1886
     #define E5_CURRENT    800
1887
     #define E5_MICROSTEPS  16
1887
     #define E5_MICROSTEPS  16
1888
     #define E5_RSENSE    0.11
1888
     #define E5_RSENSE    0.11
1889
-    #define E5_CHAIN_POS    0
1889
+    #define E5_CHAIN_POS   -1
1890
   #endif
1890
   #endif
1891
 
1891
 
1892
   /**
1892
   /**
2112
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2112
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2113
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2113
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2114
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2114
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2115
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2115
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2116
   #endif
2116
   #endif
2117
 
2117
 
2118
   #if AXIS_DRIVER_TYPE_X2(L6470)
2118
   #if AXIS_DRIVER_TYPE_X2(L6470)
2120
     #define X2_OVERCURRENT    2000
2120
     #define X2_OVERCURRENT    2000
2121
     #define X2_STALLCURRENT   1500
2121
     #define X2_STALLCURRENT   1500
2122
     #define X2_MAX_VOLTAGE     127
2122
     #define X2_MAX_VOLTAGE     127
2123
-    #define X2_CHAIN_POS         0
2123
+    #define X2_CHAIN_POS        -1
2124
   #endif
2124
   #endif
2125
 
2125
 
2126
   #if AXIS_DRIVER_TYPE_Y(L6470)
2126
   #if AXIS_DRIVER_TYPE_Y(L6470)
2128
     #define Y_OVERCURRENT     2000
2128
     #define Y_OVERCURRENT     2000
2129
     #define Y_STALLCURRENT    1500
2129
     #define Y_STALLCURRENT    1500
2130
     #define Y_MAX_VOLTAGE      127
2130
     #define Y_MAX_VOLTAGE      127
2131
-    #define Y_CHAIN_POS          0
2131
+    #define Y_CHAIN_POS         -1
2132
   #endif
2132
   #endif
2133
 
2133
 
2134
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2134
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2136
     #define Y2_OVERCURRENT    2000
2136
     #define Y2_OVERCURRENT    2000
2137
     #define Y2_STALLCURRENT   1500
2137
     #define Y2_STALLCURRENT   1500
2138
     #define Y2_MAX_VOLTAGE     127
2138
     #define Y2_MAX_VOLTAGE     127
2139
-    #define Y2_CHAIN_POS         0
2139
+    #define Y2_CHAIN_POS        -1
2140
   #endif
2140
   #endif
2141
 
2141
 
2142
   #if AXIS_DRIVER_TYPE_Z(L6470)
2142
   #if AXIS_DRIVER_TYPE_Z(L6470)
2144
     #define Z_OVERCURRENT     2000
2144
     #define Z_OVERCURRENT     2000
2145
     #define Z_STALLCURRENT    1500
2145
     #define Z_STALLCURRENT    1500
2146
     #define Z_MAX_VOLTAGE      127
2146
     #define Z_MAX_VOLTAGE      127
2147
-    #define Z_CHAIN_POS          0
2147
+    #define Z_CHAIN_POS         -1
2148
   #endif
2148
   #endif
2149
 
2149
 
2150
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2150
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2152
     #define Z2_OVERCURRENT    2000
2152
     #define Z2_OVERCURRENT    2000
2153
     #define Z2_STALLCURRENT   1500
2153
     #define Z2_STALLCURRENT   1500
2154
     #define Z2_MAX_VOLTAGE     127
2154
     #define Z2_MAX_VOLTAGE     127
2155
-    #define Z2_CHAIN_POS         0
2155
+    #define Z2_CHAIN_POS        -1
2156
   #endif
2156
   #endif
2157
 
2157
 
2158
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2158
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2160
     #define Z3_OVERCURRENT    2000
2160
     #define Z3_OVERCURRENT    2000
2161
     #define Z3_STALLCURRENT   1500
2161
     #define Z3_STALLCURRENT   1500
2162
     #define Z3_MAX_VOLTAGE     127
2162
     #define Z3_MAX_VOLTAGE     127
2163
-    #define Z3_CHAIN_POS         0
2163
+    #define Z3_CHAIN_POS        -1
2164
   #endif
2164
   #endif
2165
 
2165
 
2166
   #if AXIS_DRIVER_TYPE_E0(L6470)
2166
   #if AXIS_DRIVER_TYPE_E0(L6470)
2168
     #define E0_OVERCURRENT    2000
2168
     #define E0_OVERCURRENT    2000
2169
     #define E0_STALLCURRENT   1500
2169
     #define E0_STALLCURRENT   1500
2170
     #define E0_MAX_VOLTAGE     127
2170
     #define E0_MAX_VOLTAGE     127
2171
-    #define E0_CHAIN_POS         0
2171
+    #define E0_CHAIN_POS        -1
2172
   #endif
2172
   #endif
2173
 
2173
 
2174
   #if AXIS_DRIVER_TYPE_E1(L6470)
2174
   #if AXIS_DRIVER_TYPE_E1(L6470)
2176
     #define E1_OVERCURRENT    2000
2176
     #define E1_OVERCURRENT    2000
2177
     #define E1_STALLCURRENT   1500
2177
     #define E1_STALLCURRENT   1500
2178
     #define E1_MAX_VOLTAGE     127
2178
     #define E1_MAX_VOLTAGE     127
2179
-    #define E1_CHAIN_POS         0
2179
+    #define E1_CHAIN_POS        -1
2180
   #endif
2180
   #endif
2181
 
2181
 
2182
   #if AXIS_DRIVER_TYPE_E2(L6470)
2182
   #if AXIS_DRIVER_TYPE_E2(L6470)
2184
     #define E2_OVERCURRENT    2000
2184
     #define E2_OVERCURRENT    2000
2185
     #define E2_STALLCURRENT   1500
2185
     #define E2_STALLCURRENT   1500
2186
     #define E2_MAX_VOLTAGE     127
2186
     #define E2_MAX_VOLTAGE     127
2187
-    #define E2_CHAIN_POS         0
2187
+    #define E2_CHAIN_POS        -1
2188
   #endif
2188
   #endif
2189
 
2189
 
2190
   #if AXIS_DRIVER_TYPE_E3(L6470)
2190
   #if AXIS_DRIVER_TYPE_E3(L6470)
2192
     #define E3_OVERCURRENT    2000
2192
     #define E3_OVERCURRENT    2000
2193
     #define E3_STALLCURRENT   1500
2193
     #define E3_STALLCURRENT   1500
2194
     #define E3_MAX_VOLTAGE     127
2194
     #define E3_MAX_VOLTAGE     127
2195
-    #define E3_CHAIN_POS         0
2195
+    #define E3_CHAIN_POS        -1
2196
   #endif
2196
   #endif
2197
 
2197
 
2198
   #if AXIS_DRIVER_TYPE_E4(L6470)
2198
   #if AXIS_DRIVER_TYPE_E4(L6470)
2200
     #define E4_OVERCURRENT    2000
2200
     #define E4_OVERCURRENT    2000
2201
     #define E4_STALLCURRENT   1500
2201
     #define E4_STALLCURRENT   1500
2202
     #define E4_MAX_VOLTAGE     127
2202
     #define E4_MAX_VOLTAGE     127
2203
-    #define E4_CHAIN_POS         0
2203
+    #define E4_CHAIN_POS        -1
2204
   #endif
2204
   #endif
2205
 
2205
 
2206
   #if AXIS_DRIVER_TYPE_E5(L6470)
2206
   #if AXIS_DRIVER_TYPE_E5(L6470)
2208
     #define E5_OVERCURRENT    2000
2208
     #define E5_OVERCURRENT    2000
2209
     #define E5_STALLCURRENT   1500
2209
     #define E5_STALLCURRENT   1500
2210
     #define E5_MAX_VOLTAGE     127
2210
     #define E5_MAX_VOLTAGE     127
2211
-    #define E5_CHAIN_POS         0
2211
+    #define E5_CHAIN_POS        -1
2212
   #endif
2212
   #endif
2213
 
2213
 
2214
   /**
2214
   /**

+ 26
- 26
config/examples/JGAurora/A5/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/JGAurora/A5S/Configuration_adv.h View File

1802
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1802
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1803
     #define X_MICROSTEPS   16  // 0..256
1803
     #define X_MICROSTEPS   16  // 0..256
1804
     #define X_RSENSE     0.11
1804
     #define X_RSENSE     0.11
1805
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1805
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1806
   #endif
1806
   #endif
1807
 
1807
 
1808
   #if AXIS_IS_TMC(X2)
1808
   #if AXIS_IS_TMC(X2)
1809
     #define X2_CURRENT    800
1809
     #define X2_CURRENT    800
1810
     #define X2_MICROSTEPS  16
1810
     #define X2_MICROSTEPS  16
1811
     #define X2_RSENSE    0.11
1811
     #define X2_RSENSE    0.11
1812
-    #define X2_CHAIN_POS    0
1812
+    #define X2_CHAIN_POS   -1
1813
   #endif
1813
   #endif
1814
 
1814
 
1815
   #if AXIS_IS_TMC(Y)
1815
   #if AXIS_IS_TMC(Y)
1816
     #define Y_CURRENT     800
1816
     #define Y_CURRENT     800
1817
     #define Y_MICROSTEPS   16
1817
     #define Y_MICROSTEPS   16
1818
     #define Y_RSENSE     0.11
1818
     #define Y_RSENSE     0.11
1819
-    #define Y_CHAIN_POS     0
1819
+    #define Y_CHAIN_POS    -1
1820
   #endif
1820
   #endif
1821
 
1821
 
1822
   #if AXIS_IS_TMC(Y2)
1822
   #if AXIS_IS_TMC(Y2)
1823
     #define Y2_CURRENT    800
1823
     #define Y2_CURRENT    800
1824
     #define Y2_MICROSTEPS  16
1824
     #define Y2_MICROSTEPS  16
1825
     #define Y2_RSENSE    0.11
1825
     #define Y2_RSENSE    0.11
1826
-    #define Y2_CHAIN_POS    0
1826
+    #define Y2_CHAIN_POS   -1
1827
   #endif
1827
   #endif
1828
 
1828
 
1829
   #if AXIS_IS_TMC(Z)
1829
   #if AXIS_IS_TMC(Z)
1830
     #define Z_CURRENT     800
1830
     #define Z_CURRENT     800
1831
     #define Z_MICROSTEPS   16
1831
     #define Z_MICROSTEPS   16
1832
     #define Z_RSENSE     0.11
1832
     #define Z_RSENSE     0.11
1833
-    #define Z_CHAIN_POS     0
1833
+    #define Z_CHAIN_POS    -1
1834
   #endif
1834
   #endif
1835
 
1835
 
1836
   #if AXIS_IS_TMC(Z2)
1836
   #if AXIS_IS_TMC(Z2)
1837
     #define Z2_CURRENT    800
1837
     #define Z2_CURRENT    800
1838
     #define Z2_MICROSTEPS  16
1838
     #define Z2_MICROSTEPS  16
1839
     #define Z2_RSENSE    0.11
1839
     #define Z2_RSENSE    0.11
1840
-    #define Z2_CHAIN_POS    0
1840
+    #define Z2_CHAIN_POS   -1
1841
   #endif
1841
   #endif
1842
 
1842
 
1843
   #if AXIS_IS_TMC(Z3)
1843
   #if AXIS_IS_TMC(Z3)
1844
     #define Z3_CURRENT    800
1844
     #define Z3_CURRENT    800
1845
     #define Z3_MICROSTEPS  16
1845
     #define Z3_MICROSTEPS  16
1846
     #define Z3_RSENSE    0.11
1846
     #define Z3_RSENSE    0.11
1847
-    #define Z3_CHAIN_POS    0
1847
+    #define Z3_CHAIN_POS   -1
1848
   #endif
1848
   #endif
1849
 
1849
 
1850
   #if AXIS_IS_TMC(E0)
1850
   #if AXIS_IS_TMC(E0)
1851
     #define E0_CURRENT    800
1851
     #define E0_CURRENT    800
1852
     #define E0_MICROSTEPS  16
1852
     #define E0_MICROSTEPS  16
1853
     #define E0_RSENSE    0.11
1853
     #define E0_RSENSE    0.11
1854
-    #define E0_CHAIN_POS    0
1854
+    #define E0_CHAIN_POS   -1
1855
   #endif
1855
   #endif
1856
 
1856
 
1857
   #if AXIS_IS_TMC(E1)
1857
   #if AXIS_IS_TMC(E1)
1858
     #define E1_CURRENT    800
1858
     #define E1_CURRENT    800
1859
     #define E1_MICROSTEPS  16
1859
     #define E1_MICROSTEPS  16
1860
     #define E1_RSENSE    0.11
1860
     #define E1_RSENSE    0.11
1861
-    #define E1_CHAIN_POS    0
1861
+    #define E1_CHAIN_POS   -1
1862
   #endif
1862
   #endif
1863
 
1863
 
1864
   #if AXIS_IS_TMC(E2)
1864
   #if AXIS_IS_TMC(E2)
1865
     #define E2_CURRENT    800
1865
     #define E2_CURRENT    800
1866
     #define E2_MICROSTEPS  16
1866
     #define E2_MICROSTEPS  16
1867
     #define E2_RSENSE    0.11
1867
     #define E2_RSENSE    0.11
1868
-    #define E2_CHAIN_POS    0
1868
+    #define E2_CHAIN_POS   -1
1869
   #endif
1869
   #endif
1870
 
1870
 
1871
   #if AXIS_IS_TMC(E3)
1871
   #if AXIS_IS_TMC(E3)
1872
     #define E3_CURRENT    800
1872
     #define E3_CURRENT    800
1873
     #define E3_MICROSTEPS  16
1873
     #define E3_MICROSTEPS  16
1874
     #define E3_RSENSE    0.11
1874
     #define E3_RSENSE    0.11
1875
-    #define E3_CHAIN_POS    0
1875
+    #define E3_CHAIN_POS   -1
1876
   #endif
1876
   #endif
1877
 
1877
 
1878
   #if AXIS_IS_TMC(E4)
1878
   #if AXIS_IS_TMC(E4)
1879
     #define E4_CURRENT    800
1879
     #define E4_CURRENT    800
1880
     #define E4_MICROSTEPS  16
1880
     #define E4_MICROSTEPS  16
1881
     #define E4_RSENSE    0.11
1881
     #define E4_RSENSE    0.11
1882
-    #define E4_CHAIN_POS    0
1882
+    #define E4_CHAIN_POS   -1
1883
   #endif
1883
   #endif
1884
 
1884
 
1885
   #if AXIS_IS_TMC(E5)
1885
   #if AXIS_IS_TMC(E5)
1886
     #define E5_CURRENT    800
1886
     #define E5_CURRENT    800
1887
     #define E5_MICROSTEPS  16
1887
     #define E5_MICROSTEPS  16
1888
     #define E5_RSENSE    0.11
1888
     #define E5_RSENSE    0.11
1889
-    #define E5_CHAIN_POS    0
1889
+    #define E5_CHAIN_POS   -1
1890
   #endif
1890
   #endif
1891
 
1891
 
1892
   /**
1892
   /**
2112
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2112
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2113
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2113
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2114
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2114
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2115
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2115
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2116
   #endif
2116
   #endif
2117
 
2117
 
2118
   #if AXIS_DRIVER_TYPE_X2(L6470)
2118
   #if AXIS_DRIVER_TYPE_X2(L6470)
2120
     #define X2_OVERCURRENT    2000
2120
     #define X2_OVERCURRENT    2000
2121
     #define X2_STALLCURRENT   1500
2121
     #define X2_STALLCURRENT   1500
2122
     #define X2_MAX_VOLTAGE     127
2122
     #define X2_MAX_VOLTAGE     127
2123
-    #define X2_CHAIN_POS         0
2123
+    #define X2_CHAIN_POS        -1
2124
   #endif
2124
   #endif
2125
 
2125
 
2126
   #if AXIS_DRIVER_TYPE_Y(L6470)
2126
   #if AXIS_DRIVER_TYPE_Y(L6470)
2128
     #define Y_OVERCURRENT     2000
2128
     #define Y_OVERCURRENT     2000
2129
     #define Y_STALLCURRENT    1500
2129
     #define Y_STALLCURRENT    1500
2130
     #define Y_MAX_VOLTAGE      127
2130
     #define Y_MAX_VOLTAGE      127
2131
-    #define Y_CHAIN_POS          0
2131
+    #define Y_CHAIN_POS         -1
2132
   #endif
2132
   #endif
2133
 
2133
 
2134
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2134
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2136
     #define Y2_OVERCURRENT    2000
2136
     #define Y2_OVERCURRENT    2000
2137
     #define Y2_STALLCURRENT   1500
2137
     #define Y2_STALLCURRENT   1500
2138
     #define Y2_MAX_VOLTAGE     127
2138
     #define Y2_MAX_VOLTAGE     127
2139
-    #define Y2_CHAIN_POS         0
2139
+    #define Y2_CHAIN_POS        -1
2140
   #endif
2140
   #endif
2141
 
2141
 
2142
   #if AXIS_DRIVER_TYPE_Z(L6470)
2142
   #if AXIS_DRIVER_TYPE_Z(L6470)
2144
     #define Z_OVERCURRENT     2000
2144
     #define Z_OVERCURRENT     2000
2145
     #define Z_STALLCURRENT    1500
2145
     #define Z_STALLCURRENT    1500
2146
     #define Z_MAX_VOLTAGE      127
2146
     #define Z_MAX_VOLTAGE      127
2147
-    #define Z_CHAIN_POS          0
2147
+    #define Z_CHAIN_POS         -1
2148
   #endif
2148
   #endif
2149
 
2149
 
2150
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2150
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2152
     #define Z2_OVERCURRENT    2000
2152
     #define Z2_OVERCURRENT    2000
2153
     #define Z2_STALLCURRENT   1500
2153
     #define Z2_STALLCURRENT   1500
2154
     #define Z2_MAX_VOLTAGE     127
2154
     #define Z2_MAX_VOLTAGE     127
2155
-    #define Z2_CHAIN_POS         0
2155
+    #define Z2_CHAIN_POS        -1
2156
   #endif
2156
   #endif
2157
 
2157
 
2158
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2158
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2160
     #define Z3_OVERCURRENT    2000
2160
     #define Z3_OVERCURRENT    2000
2161
     #define Z3_STALLCURRENT   1500
2161
     #define Z3_STALLCURRENT   1500
2162
     #define Z3_MAX_VOLTAGE     127
2162
     #define Z3_MAX_VOLTAGE     127
2163
-    #define Z3_CHAIN_POS         0
2163
+    #define Z3_CHAIN_POS        -1
2164
   #endif
2164
   #endif
2165
 
2165
 
2166
   #if AXIS_DRIVER_TYPE_E0(L6470)
2166
   #if AXIS_DRIVER_TYPE_E0(L6470)
2168
     #define E0_OVERCURRENT    2000
2168
     #define E0_OVERCURRENT    2000
2169
     #define E0_STALLCURRENT   1500
2169
     #define E0_STALLCURRENT   1500
2170
     #define E0_MAX_VOLTAGE     127
2170
     #define E0_MAX_VOLTAGE     127
2171
-    #define E0_CHAIN_POS         0
2171
+    #define E0_CHAIN_POS        -1
2172
   #endif
2172
   #endif
2173
 
2173
 
2174
   #if AXIS_DRIVER_TYPE_E1(L6470)
2174
   #if AXIS_DRIVER_TYPE_E1(L6470)
2176
     #define E1_OVERCURRENT    2000
2176
     #define E1_OVERCURRENT    2000
2177
     #define E1_STALLCURRENT   1500
2177
     #define E1_STALLCURRENT   1500
2178
     #define E1_MAX_VOLTAGE     127
2178
     #define E1_MAX_VOLTAGE     127
2179
-    #define E1_CHAIN_POS         0
2179
+    #define E1_CHAIN_POS        -1
2180
   #endif
2180
   #endif
2181
 
2181
 
2182
   #if AXIS_DRIVER_TYPE_E2(L6470)
2182
   #if AXIS_DRIVER_TYPE_E2(L6470)
2184
     #define E2_OVERCURRENT    2000
2184
     #define E2_OVERCURRENT    2000
2185
     #define E2_STALLCURRENT   1500
2185
     #define E2_STALLCURRENT   1500
2186
     #define E2_MAX_VOLTAGE     127
2186
     #define E2_MAX_VOLTAGE     127
2187
-    #define E2_CHAIN_POS         0
2187
+    #define E2_CHAIN_POS        -1
2188
   #endif
2188
   #endif
2189
 
2189
 
2190
   #if AXIS_DRIVER_TYPE_E3(L6470)
2190
   #if AXIS_DRIVER_TYPE_E3(L6470)
2192
     #define E3_OVERCURRENT    2000
2192
     #define E3_OVERCURRENT    2000
2193
     #define E3_STALLCURRENT   1500
2193
     #define E3_STALLCURRENT   1500
2194
     #define E3_MAX_VOLTAGE     127
2194
     #define E3_MAX_VOLTAGE     127
2195
-    #define E3_CHAIN_POS         0
2195
+    #define E3_CHAIN_POS        -1
2196
   #endif
2196
   #endif
2197
 
2197
 
2198
   #if AXIS_DRIVER_TYPE_E4(L6470)
2198
   #if AXIS_DRIVER_TYPE_E4(L6470)
2200
     #define E4_OVERCURRENT    2000
2200
     #define E4_OVERCURRENT    2000
2201
     #define E4_STALLCURRENT   1500
2201
     #define E4_STALLCURRENT   1500
2202
     #define E4_MAX_VOLTAGE     127
2202
     #define E4_MAX_VOLTAGE     127
2203
-    #define E4_CHAIN_POS         0
2203
+    #define E4_CHAIN_POS        -1
2204
   #endif
2204
   #endif
2205
 
2205
 
2206
   #if AXIS_DRIVER_TYPE_E5(L6470)
2206
   #if AXIS_DRIVER_TYPE_E5(L6470)
2208
     #define E5_OVERCURRENT    2000
2208
     #define E5_OVERCURRENT    2000
2209
     #define E5_STALLCURRENT   1500
2209
     #define E5_STALLCURRENT   1500
2210
     #define E5_MAX_VOLTAGE     127
2210
     #define E5_MAX_VOLTAGE     127
2211
-    #define E5_CHAIN_POS         0
2211
+    #define E5_CHAIN_POS        -1
2212
   #endif
2212
   #endif
2213
 
2213
 
2214
   /**
2214
   /**

+ 26
- 26
config/examples/MakerParts/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Malyan/M150/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Malyan/M200/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Micromake/C1/enhanced/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Mks/Robin/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Mks/Sbase/Configuration_adv.h View File

1798
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1799
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_MICROSTEPS   16  // 0..256
1800
     #define X_RSENSE     0.11
1800
     #define X_RSENSE     0.11
1801
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1801
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1802
   #endif
1802
   #endif
1803
 
1803
 
1804
   #if AXIS_IS_TMC(X2)
1804
   #if AXIS_IS_TMC(X2)
1805
     #define X2_CURRENT    800
1805
     #define X2_CURRENT    800
1806
     #define X2_MICROSTEPS  16
1806
     #define X2_MICROSTEPS  16
1807
     #define X2_RSENSE    0.11
1807
     #define X2_RSENSE    0.11
1808
-    #define X2_CHAIN_POS    0
1808
+    #define X2_CHAIN_POS   -1
1809
   #endif
1809
   #endif
1810
 
1810
 
1811
   #if AXIS_IS_TMC(Y)
1811
   #if AXIS_IS_TMC(Y)
1812
     #define Y_CURRENT     800
1812
     #define Y_CURRENT     800
1813
     #define Y_MICROSTEPS   16
1813
     #define Y_MICROSTEPS   16
1814
     #define Y_RSENSE     0.11
1814
     #define Y_RSENSE     0.11
1815
-    #define Y_CHAIN_POS     0
1815
+    #define Y_CHAIN_POS    -1
1816
   #endif
1816
   #endif
1817
 
1817
 
1818
   #if AXIS_IS_TMC(Y2)
1818
   #if AXIS_IS_TMC(Y2)
1819
     #define Y2_CURRENT    800
1819
     #define Y2_CURRENT    800
1820
     #define Y2_MICROSTEPS  16
1820
     #define Y2_MICROSTEPS  16
1821
     #define Y2_RSENSE    0.11
1821
     #define Y2_RSENSE    0.11
1822
-    #define Y2_CHAIN_POS    0
1822
+    #define Y2_CHAIN_POS   -1
1823
   #endif
1823
   #endif
1824
 
1824
 
1825
   #if AXIS_IS_TMC(Z)
1825
   #if AXIS_IS_TMC(Z)
1826
     #define Z_CURRENT     800
1826
     #define Z_CURRENT     800
1827
     #define Z_MICROSTEPS   16
1827
     #define Z_MICROSTEPS   16
1828
     #define Z_RSENSE     0.11
1828
     #define Z_RSENSE     0.11
1829
-    #define Z_CHAIN_POS     0
1829
+    #define Z_CHAIN_POS    -1
1830
   #endif
1830
   #endif
1831
 
1831
 
1832
   #if AXIS_IS_TMC(Z2)
1832
   #if AXIS_IS_TMC(Z2)
1833
     #define Z2_CURRENT    800
1833
     #define Z2_CURRENT    800
1834
     #define Z2_MICROSTEPS  16
1834
     #define Z2_MICROSTEPS  16
1835
     #define Z2_RSENSE    0.11
1835
     #define Z2_RSENSE    0.11
1836
-    #define Z2_CHAIN_POS    0
1836
+    #define Z2_CHAIN_POS   -1
1837
   #endif
1837
   #endif
1838
 
1838
 
1839
   #if AXIS_IS_TMC(Z3)
1839
   #if AXIS_IS_TMC(Z3)
1840
     #define Z3_CURRENT    800
1840
     #define Z3_CURRENT    800
1841
     #define Z3_MICROSTEPS  16
1841
     #define Z3_MICROSTEPS  16
1842
     #define Z3_RSENSE    0.11
1842
     #define Z3_RSENSE    0.11
1843
-    #define Z3_CHAIN_POS    0
1843
+    #define Z3_CHAIN_POS   -1
1844
   #endif
1844
   #endif
1845
 
1845
 
1846
   #if AXIS_IS_TMC(E0)
1846
   #if AXIS_IS_TMC(E0)
1847
     #define E0_CURRENT    800
1847
     #define E0_CURRENT    800
1848
     #define E0_MICROSTEPS  16
1848
     #define E0_MICROSTEPS  16
1849
     #define E0_RSENSE    0.11
1849
     #define E0_RSENSE    0.11
1850
-    #define E0_CHAIN_POS    0
1850
+    #define E0_CHAIN_POS   -1
1851
   #endif
1851
   #endif
1852
 
1852
 
1853
   #if AXIS_IS_TMC(E1)
1853
   #if AXIS_IS_TMC(E1)
1854
     #define E1_CURRENT    800
1854
     #define E1_CURRENT    800
1855
     #define E1_MICROSTEPS  16
1855
     #define E1_MICROSTEPS  16
1856
     #define E1_RSENSE    0.11
1856
     #define E1_RSENSE    0.11
1857
-    #define E1_CHAIN_POS    0
1857
+    #define E1_CHAIN_POS   -1
1858
   #endif
1858
   #endif
1859
 
1859
 
1860
   #if AXIS_IS_TMC(E2)
1860
   #if AXIS_IS_TMC(E2)
1861
     #define E2_CURRENT    800
1861
     #define E2_CURRENT    800
1862
     #define E2_MICROSTEPS  16
1862
     #define E2_MICROSTEPS  16
1863
     #define E2_RSENSE    0.11
1863
     #define E2_RSENSE    0.11
1864
-    #define E2_CHAIN_POS    0
1864
+    #define E2_CHAIN_POS   -1
1865
   #endif
1865
   #endif
1866
 
1866
 
1867
   #if AXIS_IS_TMC(E3)
1867
   #if AXIS_IS_TMC(E3)
1868
     #define E3_CURRENT    800
1868
     #define E3_CURRENT    800
1869
     #define E3_MICROSTEPS  16
1869
     #define E3_MICROSTEPS  16
1870
     #define E3_RSENSE    0.11
1870
     #define E3_RSENSE    0.11
1871
-    #define E3_CHAIN_POS    0
1871
+    #define E3_CHAIN_POS   -1
1872
   #endif
1872
   #endif
1873
 
1873
 
1874
   #if AXIS_IS_TMC(E4)
1874
   #if AXIS_IS_TMC(E4)
1875
     #define E4_CURRENT    800
1875
     #define E4_CURRENT    800
1876
     #define E4_MICROSTEPS  16
1876
     #define E4_MICROSTEPS  16
1877
     #define E4_RSENSE    0.11
1877
     #define E4_RSENSE    0.11
1878
-    #define E4_CHAIN_POS    0
1878
+    #define E4_CHAIN_POS   -1
1879
   #endif
1879
   #endif
1880
 
1880
 
1881
   #if AXIS_IS_TMC(E5)
1881
   #if AXIS_IS_TMC(E5)
1882
     #define E5_CURRENT    800
1882
     #define E5_CURRENT    800
1883
     #define E5_MICROSTEPS  16
1883
     #define E5_MICROSTEPS  16
1884
     #define E5_RSENSE    0.11
1884
     #define E5_RSENSE    0.11
1885
-    #define E5_CHAIN_POS    0
1885
+    #define E5_CHAIN_POS   -1
1886
   #endif
1886
   #endif
1887
 
1887
 
1888
   /**
1888
   /**
2108
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2109
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2110
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2111
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2111
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2112
   #endif
2112
   #endif
2113
 
2113
 
2114
   #if AXIS_DRIVER_TYPE_X2(L6470)
2114
   #if AXIS_DRIVER_TYPE_X2(L6470)
2116
     #define X2_OVERCURRENT    2000
2116
     #define X2_OVERCURRENT    2000
2117
     #define X2_STALLCURRENT   1500
2117
     #define X2_STALLCURRENT   1500
2118
     #define X2_MAX_VOLTAGE     127
2118
     #define X2_MAX_VOLTAGE     127
2119
-    #define X2_CHAIN_POS         0
2119
+    #define X2_CHAIN_POS        -1
2120
   #endif
2120
   #endif
2121
 
2121
 
2122
   #if AXIS_DRIVER_TYPE_Y(L6470)
2122
   #if AXIS_DRIVER_TYPE_Y(L6470)
2124
     #define Y_OVERCURRENT     2000
2124
     #define Y_OVERCURRENT     2000
2125
     #define Y_STALLCURRENT    1500
2125
     #define Y_STALLCURRENT    1500
2126
     #define Y_MAX_VOLTAGE      127
2126
     #define Y_MAX_VOLTAGE      127
2127
-    #define Y_CHAIN_POS          0
2127
+    #define Y_CHAIN_POS         -1
2128
   #endif
2128
   #endif
2129
 
2129
 
2130
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2130
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2132
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_OVERCURRENT    2000
2133
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_STALLCURRENT   1500
2134
     #define Y2_MAX_VOLTAGE     127
2134
     #define Y2_MAX_VOLTAGE     127
2135
-    #define Y2_CHAIN_POS         0
2135
+    #define Y2_CHAIN_POS        -1
2136
   #endif
2136
   #endif
2137
 
2137
 
2138
   #if AXIS_DRIVER_TYPE_Z(L6470)
2138
   #if AXIS_DRIVER_TYPE_Z(L6470)
2140
     #define Z_OVERCURRENT     2000
2140
     #define Z_OVERCURRENT     2000
2141
     #define Z_STALLCURRENT    1500
2141
     #define Z_STALLCURRENT    1500
2142
     #define Z_MAX_VOLTAGE      127
2142
     #define Z_MAX_VOLTAGE      127
2143
-    #define Z_CHAIN_POS          0
2143
+    #define Z_CHAIN_POS         -1
2144
   #endif
2144
   #endif
2145
 
2145
 
2146
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2146
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2148
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_OVERCURRENT    2000
2149
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_STALLCURRENT   1500
2150
     #define Z2_MAX_VOLTAGE     127
2150
     #define Z2_MAX_VOLTAGE     127
2151
-    #define Z2_CHAIN_POS         0
2151
+    #define Z2_CHAIN_POS        -1
2152
   #endif
2152
   #endif
2153
 
2153
 
2154
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2154
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2156
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_OVERCURRENT    2000
2157
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_STALLCURRENT   1500
2158
     #define Z3_MAX_VOLTAGE     127
2158
     #define Z3_MAX_VOLTAGE     127
2159
-    #define Z3_CHAIN_POS         0
2159
+    #define Z3_CHAIN_POS        -1
2160
   #endif
2160
   #endif
2161
 
2161
 
2162
   #if AXIS_DRIVER_TYPE_E0(L6470)
2162
   #if AXIS_DRIVER_TYPE_E0(L6470)
2164
     #define E0_OVERCURRENT    2000
2164
     #define E0_OVERCURRENT    2000
2165
     #define E0_STALLCURRENT   1500
2165
     #define E0_STALLCURRENT   1500
2166
     #define E0_MAX_VOLTAGE     127
2166
     #define E0_MAX_VOLTAGE     127
2167
-    #define E0_CHAIN_POS         0
2167
+    #define E0_CHAIN_POS        -1
2168
   #endif
2168
   #endif
2169
 
2169
 
2170
   #if AXIS_DRIVER_TYPE_E1(L6470)
2170
   #if AXIS_DRIVER_TYPE_E1(L6470)
2172
     #define E1_OVERCURRENT    2000
2172
     #define E1_OVERCURRENT    2000
2173
     #define E1_STALLCURRENT   1500
2173
     #define E1_STALLCURRENT   1500
2174
     #define E1_MAX_VOLTAGE     127
2174
     #define E1_MAX_VOLTAGE     127
2175
-    #define E1_CHAIN_POS         0
2175
+    #define E1_CHAIN_POS        -1
2176
   #endif
2176
   #endif
2177
 
2177
 
2178
   #if AXIS_DRIVER_TYPE_E2(L6470)
2178
   #if AXIS_DRIVER_TYPE_E2(L6470)
2180
     #define E2_OVERCURRENT    2000
2180
     #define E2_OVERCURRENT    2000
2181
     #define E2_STALLCURRENT   1500
2181
     #define E2_STALLCURRENT   1500
2182
     #define E2_MAX_VOLTAGE     127
2182
     #define E2_MAX_VOLTAGE     127
2183
-    #define E2_CHAIN_POS         0
2183
+    #define E2_CHAIN_POS        -1
2184
   #endif
2184
   #endif
2185
 
2185
 
2186
   #if AXIS_DRIVER_TYPE_E3(L6470)
2186
   #if AXIS_DRIVER_TYPE_E3(L6470)
2188
     #define E3_OVERCURRENT    2000
2188
     #define E3_OVERCURRENT    2000
2189
     #define E3_STALLCURRENT   1500
2189
     #define E3_STALLCURRENT   1500
2190
     #define E3_MAX_VOLTAGE     127
2190
     #define E3_MAX_VOLTAGE     127
2191
-    #define E3_CHAIN_POS         0
2191
+    #define E3_CHAIN_POS        -1
2192
   #endif
2192
   #endif
2193
 
2193
 
2194
   #if AXIS_DRIVER_TYPE_E4(L6470)
2194
   #if AXIS_DRIVER_TYPE_E4(L6470)
2196
     #define E4_OVERCURRENT    2000
2196
     #define E4_OVERCURRENT    2000
2197
     #define E4_STALLCURRENT   1500
2197
     #define E4_STALLCURRENT   1500
2198
     #define E4_MAX_VOLTAGE     127
2198
     #define E4_MAX_VOLTAGE     127
2199
-    #define E4_CHAIN_POS         0
2199
+    #define E4_CHAIN_POS        -1
2200
   #endif
2200
   #endif
2201
 
2201
 
2202
   #if AXIS_DRIVER_TYPE_E5(L6470)
2202
   #if AXIS_DRIVER_TYPE_E5(L6470)
2204
     #define E5_OVERCURRENT    2000
2204
     #define E5_OVERCURRENT    2000
2205
     #define E5_STALLCURRENT   1500
2205
     #define E5_STALLCURRENT   1500
2206
     #define E5_MAX_VOLTAGE     127
2206
     #define E5_MAX_VOLTAGE     127
2207
-    #define E5_CHAIN_POS         0
2207
+    #define E5_CHAIN_POS        -1
2208
   #endif
2208
   #endif
2209
 
2209
 
2210
   /**
2210
   /**

+ 26
- 26
config/examples/RapideLite/RL200/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/RigidBot/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/SCARA/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/STM32/Black_STM32F407VET6/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Sanguinololu/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Tevo/Michelangelo/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Tevo/Tarantula Pro/Configuration_adv.h View File

1793
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1793
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1794
     #define X_MICROSTEPS   16  // 0..256
1794
     #define X_MICROSTEPS   16  // 0..256
1795
     #define X_RSENSE     0.11
1795
     #define X_RSENSE     0.11
1796
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1796
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1797
   #endif
1797
   #endif
1798
 
1798
 
1799
   #if AXIS_IS_TMC(X2)
1799
   #if AXIS_IS_TMC(X2)
1800
     #define X2_CURRENT    800
1800
     #define X2_CURRENT    800
1801
     #define X2_MICROSTEPS  16
1801
     #define X2_MICROSTEPS  16
1802
     #define X2_RSENSE    0.11
1802
     #define X2_RSENSE    0.11
1803
-    #define X2_CHAIN_POS    0
1803
+    #define X2_CHAIN_POS   -1
1804
   #endif
1804
   #endif
1805
 
1805
 
1806
   #if AXIS_IS_TMC(Y)
1806
   #if AXIS_IS_TMC(Y)
1807
     #define Y_CURRENT     800
1807
     #define Y_CURRENT     800
1808
     #define Y_MICROSTEPS   16
1808
     #define Y_MICROSTEPS   16
1809
     #define Y_RSENSE     0.11
1809
     #define Y_RSENSE     0.11
1810
-    #define Y_CHAIN_POS     0
1810
+    #define Y_CHAIN_POS    -1
1811
   #endif
1811
   #endif
1812
 
1812
 
1813
   #if AXIS_IS_TMC(Y2)
1813
   #if AXIS_IS_TMC(Y2)
1814
     #define Y2_CURRENT    800
1814
     #define Y2_CURRENT    800
1815
     #define Y2_MICROSTEPS  16
1815
     #define Y2_MICROSTEPS  16
1816
     #define Y2_RSENSE    0.11
1816
     #define Y2_RSENSE    0.11
1817
-    #define Y2_CHAIN_POS    0
1817
+    #define Y2_CHAIN_POS   -1
1818
   #endif
1818
   #endif
1819
 
1819
 
1820
   #if AXIS_IS_TMC(Z)
1820
   #if AXIS_IS_TMC(Z)
1821
     #define Z_CURRENT     800
1821
     #define Z_CURRENT     800
1822
     #define Z_MICROSTEPS   16
1822
     #define Z_MICROSTEPS   16
1823
     #define Z_RSENSE     0.11
1823
     #define Z_RSENSE     0.11
1824
-    #define Z_CHAIN_POS     0
1824
+    #define Z_CHAIN_POS    -1
1825
   #endif
1825
   #endif
1826
 
1826
 
1827
   #if AXIS_IS_TMC(Z2)
1827
   #if AXIS_IS_TMC(Z2)
1828
     #define Z2_CURRENT    800
1828
     #define Z2_CURRENT    800
1829
     #define Z2_MICROSTEPS  16
1829
     #define Z2_MICROSTEPS  16
1830
     #define Z2_RSENSE    0.11
1830
     #define Z2_RSENSE    0.11
1831
-    #define Z2_CHAIN_POS    0
1831
+    #define Z2_CHAIN_POS   -1
1832
   #endif
1832
   #endif
1833
 
1833
 
1834
   #if AXIS_IS_TMC(Z3)
1834
   #if AXIS_IS_TMC(Z3)
1835
     #define Z3_CURRENT    800
1835
     #define Z3_CURRENT    800
1836
     #define Z3_MICROSTEPS  16
1836
     #define Z3_MICROSTEPS  16
1837
     #define Z3_RSENSE    0.11
1837
     #define Z3_RSENSE    0.11
1838
-    #define Z3_CHAIN_POS    0
1838
+    #define Z3_CHAIN_POS   -1
1839
   #endif
1839
   #endif
1840
 
1840
 
1841
   #if AXIS_IS_TMC(E0)
1841
   #if AXIS_IS_TMC(E0)
1842
     #define E0_CURRENT    800
1842
     #define E0_CURRENT    800
1843
     #define E0_MICROSTEPS  16
1843
     #define E0_MICROSTEPS  16
1844
     #define E0_RSENSE    0.11
1844
     #define E0_RSENSE    0.11
1845
-    #define E0_CHAIN_POS    0
1845
+    #define E0_CHAIN_POS   -1
1846
   #endif
1846
   #endif
1847
 
1847
 
1848
   #if AXIS_IS_TMC(E1)
1848
   #if AXIS_IS_TMC(E1)
1849
     #define E1_CURRENT    800
1849
     #define E1_CURRENT    800
1850
     #define E1_MICROSTEPS  16
1850
     #define E1_MICROSTEPS  16
1851
     #define E1_RSENSE    0.11
1851
     #define E1_RSENSE    0.11
1852
-    #define E1_CHAIN_POS    0
1852
+    #define E1_CHAIN_POS   -1
1853
   #endif
1853
   #endif
1854
 
1854
 
1855
   #if AXIS_IS_TMC(E2)
1855
   #if AXIS_IS_TMC(E2)
1856
     #define E2_CURRENT    800
1856
     #define E2_CURRENT    800
1857
     #define E2_MICROSTEPS  16
1857
     #define E2_MICROSTEPS  16
1858
     #define E2_RSENSE    0.11
1858
     #define E2_RSENSE    0.11
1859
-    #define E2_CHAIN_POS    0
1859
+    #define E2_CHAIN_POS   -1
1860
   #endif
1860
   #endif
1861
 
1861
 
1862
   #if AXIS_IS_TMC(E3)
1862
   #if AXIS_IS_TMC(E3)
1863
     #define E3_CURRENT    800
1863
     #define E3_CURRENT    800
1864
     #define E3_MICROSTEPS  16
1864
     #define E3_MICROSTEPS  16
1865
     #define E3_RSENSE    0.11
1865
     #define E3_RSENSE    0.11
1866
-    #define E3_CHAIN_POS    0
1866
+    #define E3_CHAIN_POS   -1
1867
   #endif
1867
   #endif
1868
 
1868
 
1869
   #if AXIS_IS_TMC(E4)
1869
   #if AXIS_IS_TMC(E4)
1870
     #define E4_CURRENT    800
1870
     #define E4_CURRENT    800
1871
     #define E4_MICROSTEPS  16
1871
     #define E4_MICROSTEPS  16
1872
     #define E4_RSENSE    0.11
1872
     #define E4_RSENSE    0.11
1873
-    #define E4_CHAIN_POS    0
1873
+    #define E4_CHAIN_POS   -1
1874
   #endif
1874
   #endif
1875
 
1875
 
1876
   #if AXIS_IS_TMC(E5)
1876
   #if AXIS_IS_TMC(E5)
1877
     #define E5_CURRENT    800
1877
     #define E5_CURRENT    800
1878
     #define E5_MICROSTEPS  16
1878
     #define E5_MICROSTEPS  16
1879
     #define E5_RSENSE    0.11
1879
     #define E5_RSENSE    0.11
1880
-    #define E5_CHAIN_POS    0
1880
+    #define E5_CHAIN_POS   -1
1881
   #endif
1881
   #endif
1882
 
1882
 
1883
   /**
1883
   /**
2103
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2103
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2104
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2104
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2105
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2105
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2106
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2106
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2107
   #endif
2107
   #endif
2108
 
2108
 
2109
   #if AXIS_DRIVER_TYPE_X2(L6470)
2109
   #if AXIS_DRIVER_TYPE_X2(L6470)
2111
     #define X2_OVERCURRENT    2000
2111
     #define X2_OVERCURRENT    2000
2112
     #define X2_STALLCURRENT   1500
2112
     #define X2_STALLCURRENT   1500
2113
     #define X2_MAX_VOLTAGE     127
2113
     #define X2_MAX_VOLTAGE     127
2114
-    #define X2_CHAIN_POS         0
2114
+    #define X2_CHAIN_POS        -1
2115
   #endif
2115
   #endif
2116
 
2116
 
2117
   #if AXIS_DRIVER_TYPE_Y(L6470)
2117
   #if AXIS_DRIVER_TYPE_Y(L6470)
2119
     #define Y_OVERCURRENT     2000
2119
     #define Y_OVERCURRENT     2000
2120
     #define Y_STALLCURRENT    1500
2120
     #define Y_STALLCURRENT    1500
2121
     #define Y_MAX_VOLTAGE      127
2121
     #define Y_MAX_VOLTAGE      127
2122
-    #define Y_CHAIN_POS          0
2122
+    #define Y_CHAIN_POS         -1
2123
   #endif
2123
   #endif
2124
 
2124
 
2125
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2125
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2127
     #define Y2_OVERCURRENT    2000
2127
     #define Y2_OVERCURRENT    2000
2128
     #define Y2_STALLCURRENT   1500
2128
     #define Y2_STALLCURRENT   1500
2129
     #define Y2_MAX_VOLTAGE     127
2129
     #define Y2_MAX_VOLTAGE     127
2130
-    #define Y2_CHAIN_POS         0
2130
+    #define Y2_CHAIN_POS        -1
2131
   #endif
2131
   #endif
2132
 
2132
 
2133
   #if AXIS_DRIVER_TYPE_Z(L6470)
2133
   #if AXIS_DRIVER_TYPE_Z(L6470)
2135
     #define Z_OVERCURRENT     2000
2135
     #define Z_OVERCURRENT     2000
2136
     #define Z_STALLCURRENT    1500
2136
     #define Z_STALLCURRENT    1500
2137
     #define Z_MAX_VOLTAGE      127
2137
     #define Z_MAX_VOLTAGE      127
2138
-    #define Z_CHAIN_POS          0
2138
+    #define Z_CHAIN_POS         -1
2139
   #endif
2139
   #endif
2140
 
2140
 
2141
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2141
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2143
     #define Z2_OVERCURRENT    2000
2143
     #define Z2_OVERCURRENT    2000
2144
     #define Z2_STALLCURRENT   1500
2144
     #define Z2_STALLCURRENT   1500
2145
     #define Z2_MAX_VOLTAGE     127
2145
     #define Z2_MAX_VOLTAGE     127
2146
-    #define Z2_CHAIN_POS         0
2146
+    #define Z2_CHAIN_POS        -1
2147
   #endif
2147
   #endif
2148
 
2148
 
2149
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2149
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2151
     #define Z3_OVERCURRENT    2000
2151
     #define Z3_OVERCURRENT    2000
2152
     #define Z3_STALLCURRENT   1500
2152
     #define Z3_STALLCURRENT   1500
2153
     #define Z3_MAX_VOLTAGE     127
2153
     #define Z3_MAX_VOLTAGE     127
2154
-    #define Z3_CHAIN_POS         0
2154
+    #define Z3_CHAIN_POS        -1
2155
   #endif
2155
   #endif
2156
 
2156
 
2157
   #if AXIS_DRIVER_TYPE_E0(L6470)
2157
   #if AXIS_DRIVER_TYPE_E0(L6470)
2159
     #define E0_OVERCURRENT    2000
2159
     #define E0_OVERCURRENT    2000
2160
     #define E0_STALLCURRENT   1500
2160
     #define E0_STALLCURRENT   1500
2161
     #define E0_MAX_VOLTAGE     127
2161
     #define E0_MAX_VOLTAGE     127
2162
-    #define E0_CHAIN_POS         0
2162
+    #define E0_CHAIN_POS        -1
2163
   #endif
2163
   #endif
2164
 
2164
 
2165
   #if AXIS_DRIVER_TYPE_E1(L6470)
2165
   #if AXIS_DRIVER_TYPE_E1(L6470)
2167
     #define E1_OVERCURRENT    2000
2167
     #define E1_OVERCURRENT    2000
2168
     #define E1_STALLCURRENT   1500
2168
     #define E1_STALLCURRENT   1500
2169
     #define E1_MAX_VOLTAGE     127
2169
     #define E1_MAX_VOLTAGE     127
2170
-    #define E1_CHAIN_POS         0
2170
+    #define E1_CHAIN_POS        -1
2171
   #endif
2171
   #endif
2172
 
2172
 
2173
   #if AXIS_DRIVER_TYPE_E2(L6470)
2173
   #if AXIS_DRIVER_TYPE_E2(L6470)
2175
     #define E2_OVERCURRENT    2000
2175
     #define E2_OVERCURRENT    2000
2176
     #define E2_STALLCURRENT   1500
2176
     #define E2_STALLCURRENT   1500
2177
     #define E2_MAX_VOLTAGE     127
2177
     #define E2_MAX_VOLTAGE     127
2178
-    #define E2_CHAIN_POS         0
2178
+    #define E2_CHAIN_POS        -1
2179
   #endif
2179
   #endif
2180
 
2180
 
2181
   #if AXIS_DRIVER_TYPE_E3(L6470)
2181
   #if AXIS_DRIVER_TYPE_E3(L6470)
2183
     #define E3_OVERCURRENT    2000
2183
     #define E3_OVERCURRENT    2000
2184
     #define E3_STALLCURRENT   1500
2184
     #define E3_STALLCURRENT   1500
2185
     #define E3_MAX_VOLTAGE     127
2185
     #define E3_MAX_VOLTAGE     127
2186
-    #define E3_CHAIN_POS         0
2186
+    #define E3_CHAIN_POS        -1
2187
   #endif
2187
   #endif
2188
 
2188
 
2189
   #if AXIS_DRIVER_TYPE_E4(L6470)
2189
   #if AXIS_DRIVER_TYPE_E4(L6470)
2191
     #define E4_OVERCURRENT    2000
2191
     #define E4_OVERCURRENT    2000
2192
     #define E4_STALLCURRENT   1500
2192
     #define E4_STALLCURRENT   1500
2193
     #define E4_MAX_VOLTAGE     127
2193
     #define E4_MAX_VOLTAGE     127
2194
-    #define E4_CHAIN_POS         0
2194
+    #define E4_CHAIN_POS        -1
2195
   #endif
2195
   #endif
2196
 
2196
 
2197
   #if AXIS_DRIVER_TYPE_E5(L6470)
2197
   #if AXIS_DRIVER_TYPE_E5(L6470)
2199
     #define E5_OVERCURRENT    2000
2199
     #define E5_OVERCURRENT    2000
2200
     #define E5_STALLCURRENT   1500
2200
     #define E5_STALLCURRENT   1500
2201
     #define E5_MAX_VOLTAGE     127
2201
     #define E5_MAX_VOLTAGE     127
2202
-    #define E5_CHAIN_POS         0
2202
+    #define E5_CHAIN_POS        -1
2203
   #endif
2203
   #endif
2204
 
2204
 
2205
   /**
2205
   /**

+ 26
- 26
config/examples/Tevo/Tornado/V1 (MKS Base)/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Tevo/Tornado/V2 (MKS GEN-L)/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/TheBorg/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/TinyBoy2/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Tronxy/X3A/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Tronxy/X5S-2E/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/UltiMachine/Archim1/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/UltiMachine/Archim2/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/VORONDesign/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Velleman/K8200/Configuration_adv.h View File

1810
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1810
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1811
     #define X_MICROSTEPS   16  // 0..256
1811
     #define X_MICROSTEPS   16  // 0..256
1812
     #define X_RSENSE     0.11
1812
     #define X_RSENSE     0.11
1813
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1813
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1814
   #endif
1814
   #endif
1815
 
1815
 
1816
   #if AXIS_IS_TMC(X2)
1816
   #if AXIS_IS_TMC(X2)
1817
     #define X2_CURRENT    800
1817
     #define X2_CURRENT    800
1818
     #define X2_MICROSTEPS  16
1818
     #define X2_MICROSTEPS  16
1819
     #define X2_RSENSE    0.11
1819
     #define X2_RSENSE    0.11
1820
-    #define X2_CHAIN_POS    0
1820
+    #define X2_CHAIN_POS   -1
1821
   #endif
1821
   #endif
1822
 
1822
 
1823
   #if AXIS_IS_TMC(Y)
1823
   #if AXIS_IS_TMC(Y)
1824
     #define Y_CURRENT     800
1824
     #define Y_CURRENT     800
1825
     #define Y_MICROSTEPS   16
1825
     #define Y_MICROSTEPS   16
1826
     #define Y_RSENSE     0.11
1826
     #define Y_RSENSE     0.11
1827
-    #define Y_CHAIN_POS     0
1827
+    #define Y_CHAIN_POS    -1
1828
   #endif
1828
   #endif
1829
 
1829
 
1830
   #if AXIS_IS_TMC(Y2)
1830
   #if AXIS_IS_TMC(Y2)
1831
     #define Y2_CURRENT    800
1831
     #define Y2_CURRENT    800
1832
     #define Y2_MICROSTEPS  16
1832
     #define Y2_MICROSTEPS  16
1833
     #define Y2_RSENSE    0.11
1833
     #define Y2_RSENSE    0.11
1834
-    #define Y2_CHAIN_POS    0
1834
+    #define Y2_CHAIN_POS   -1
1835
   #endif
1835
   #endif
1836
 
1836
 
1837
   #if AXIS_IS_TMC(Z)
1837
   #if AXIS_IS_TMC(Z)
1838
     #define Z_CURRENT     800
1838
     #define Z_CURRENT     800
1839
     #define Z_MICROSTEPS   16
1839
     #define Z_MICROSTEPS   16
1840
     #define Z_RSENSE     0.11
1840
     #define Z_RSENSE     0.11
1841
-    #define Z_CHAIN_POS     0
1841
+    #define Z_CHAIN_POS    -1
1842
   #endif
1842
   #endif
1843
 
1843
 
1844
   #if AXIS_IS_TMC(Z2)
1844
   #if AXIS_IS_TMC(Z2)
1845
     #define Z2_CURRENT    800
1845
     #define Z2_CURRENT    800
1846
     #define Z2_MICROSTEPS  16
1846
     #define Z2_MICROSTEPS  16
1847
     #define Z2_RSENSE    0.11
1847
     #define Z2_RSENSE    0.11
1848
-    #define Z2_CHAIN_POS    0
1848
+    #define Z2_CHAIN_POS   -1
1849
   #endif
1849
   #endif
1850
 
1850
 
1851
   #if AXIS_IS_TMC(Z3)
1851
   #if AXIS_IS_TMC(Z3)
1852
     #define Z3_CURRENT    800
1852
     #define Z3_CURRENT    800
1853
     #define Z3_MICROSTEPS  16
1853
     #define Z3_MICROSTEPS  16
1854
     #define Z3_RSENSE    0.11
1854
     #define Z3_RSENSE    0.11
1855
-    #define Z3_CHAIN_POS    0
1855
+    #define Z3_CHAIN_POS   -1
1856
   #endif
1856
   #endif
1857
 
1857
 
1858
   #if AXIS_IS_TMC(E0)
1858
   #if AXIS_IS_TMC(E0)
1859
     #define E0_CURRENT    800
1859
     #define E0_CURRENT    800
1860
     #define E0_MICROSTEPS  16
1860
     #define E0_MICROSTEPS  16
1861
     #define E0_RSENSE    0.11
1861
     #define E0_RSENSE    0.11
1862
-    #define E0_CHAIN_POS    0
1862
+    #define E0_CHAIN_POS   -1
1863
   #endif
1863
   #endif
1864
 
1864
 
1865
   #if AXIS_IS_TMC(E1)
1865
   #if AXIS_IS_TMC(E1)
1866
     #define E1_CURRENT    800
1866
     #define E1_CURRENT    800
1867
     #define E1_MICROSTEPS  16
1867
     #define E1_MICROSTEPS  16
1868
     #define E1_RSENSE    0.11
1868
     #define E1_RSENSE    0.11
1869
-    #define E1_CHAIN_POS    0
1869
+    #define E1_CHAIN_POS   -1
1870
   #endif
1870
   #endif
1871
 
1871
 
1872
   #if AXIS_IS_TMC(E2)
1872
   #if AXIS_IS_TMC(E2)
1873
     #define E2_CURRENT    800
1873
     #define E2_CURRENT    800
1874
     #define E2_MICROSTEPS  16
1874
     #define E2_MICROSTEPS  16
1875
     #define E2_RSENSE    0.11
1875
     #define E2_RSENSE    0.11
1876
-    #define E2_CHAIN_POS    0
1876
+    #define E2_CHAIN_POS   -1
1877
   #endif
1877
   #endif
1878
 
1878
 
1879
   #if AXIS_IS_TMC(E3)
1879
   #if AXIS_IS_TMC(E3)
1880
     #define E3_CURRENT    800
1880
     #define E3_CURRENT    800
1881
     #define E3_MICROSTEPS  16
1881
     #define E3_MICROSTEPS  16
1882
     #define E3_RSENSE    0.11
1882
     #define E3_RSENSE    0.11
1883
-    #define E3_CHAIN_POS    0
1883
+    #define E3_CHAIN_POS   -1
1884
   #endif
1884
   #endif
1885
 
1885
 
1886
   #if AXIS_IS_TMC(E4)
1886
   #if AXIS_IS_TMC(E4)
1887
     #define E4_CURRENT    800
1887
     #define E4_CURRENT    800
1888
     #define E4_MICROSTEPS  16
1888
     #define E4_MICROSTEPS  16
1889
     #define E4_RSENSE    0.11
1889
     #define E4_RSENSE    0.11
1890
-    #define E4_CHAIN_POS    0
1890
+    #define E4_CHAIN_POS   -1
1891
   #endif
1891
   #endif
1892
 
1892
 
1893
   #if AXIS_IS_TMC(E5)
1893
   #if AXIS_IS_TMC(E5)
1894
     #define E5_CURRENT    800
1894
     #define E5_CURRENT    800
1895
     #define E5_MICROSTEPS  16
1895
     #define E5_MICROSTEPS  16
1896
     #define E5_RSENSE    0.11
1896
     #define E5_RSENSE    0.11
1897
-    #define E5_CHAIN_POS    0
1897
+    #define E5_CHAIN_POS   -1
1898
   #endif
1898
   #endif
1899
 
1899
 
1900
   /**
1900
   /**
2120
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2120
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2121
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2121
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2122
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2122
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2123
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2123
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2124
   #endif
2124
   #endif
2125
 
2125
 
2126
   #if AXIS_DRIVER_TYPE_X2(L6470)
2126
   #if AXIS_DRIVER_TYPE_X2(L6470)
2128
     #define X2_OVERCURRENT    2000
2128
     #define X2_OVERCURRENT    2000
2129
     #define X2_STALLCURRENT   1500
2129
     #define X2_STALLCURRENT   1500
2130
     #define X2_MAX_VOLTAGE     127
2130
     #define X2_MAX_VOLTAGE     127
2131
-    #define X2_CHAIN_POS         0
2131
+    #define X2_CHAIN_POS        -1
2132
   #endif
2132
   #endif
2133
 
2133
 
2134
   #if AXIS_DRIVER_TYPE_Y(L6470)
2134
   #if AXIS_DRIVER_TYPE_Y(L6470)
2136
     #define Y_OVERCURRENT     2000
2136
     #define Y_OVERCURRENT     2000
2137
     #define Y_STALLCURRENT    1500
2137
     #define Y_STALLCURRENT    1500
2138
     #define Y_MAX_VOLTAGE      127
2138
     #define Y_MAX_VOLTAGE      127
2139
-    #define Y_CHAIN_POS          0
2139
+    #define Y_CHAIN_POS         -1
2140
   #endif
2140
   #endif
2141
 
2141
 
2142
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2142
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2144
     #define Y2_OVERCURRENT    2000
2144
     #define Y2_OVERCURRENT    2000
2145
     #define Y2_STALLCURRENT   1500
2145
     #define Y2_STALLCURRENT   1500
2146
     #define Y2_MAX_VOLTAGE     127
2146
     #define Y2_MAX_VOLTAGE     127
2147
-    #define Y2_CHAIN_POS         0
2147
+    #define Y2_CHAIN_POS        -1
2148
   #endif
2148
   #endif
2149
 
2149
 
2150
   #if AXIS_DRIVER_TYPE_Z(L6470)
2150
   #if AXIS_DRIVER_TYPE_Z(L6470)
2152
     #define Z_OVERCURRENT     2000
2152
     #define Z_OVERCURRENT     2000
2153
     #define Z_STALLCURRENT    1500
2153
     #define Z_STALLCURRENT    1500
2154
     #define Z_MAX_VOLTAGE      127
2154
     #define Z_MAX_VOLTAGE      127
2155
-    #define Z_CHAIN_POS          0
2155
+    #define Z_CHAIN_POS         -1
2156
   #endif
2156
   #endif
2157
 
2157
 
2158
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2158
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2160
     #define Z2_OVERCURRENT    2000
2160
     #define Z2_OVERCURRENT    2000
2161
     #define Z2_STALLCURRENT   1500
2161
     #define Z2_STALLCURRENT   1500
2162
     #define Z2_MAX_VOLTAGE     127
2162
     #define Z2_MAX_VOLTAGE     127
2163
-    #define Z2_CHAIN_POS         0
2163
+    #define Z2_CHAIN_POS        -1
2164
   #endif
2164
   #endif
2165
 
2165
 
2166
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2166
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2168
     #define Z3_OVERCURRENT    2000
2168
     #define Z3_OVERCURRENT    2000
2169
     #define Z3_STALLCURRENT   1500
2169
     #define Z3_STALLCURRENT   1500
2170
     #define Z3_MAX_VOLTAGE     127
2170
     #define Z3_MAX_VOLTAGE     127
2171
-    #define Z3_CHAIN_POS         0
2171
+    #define Z3_CHAIN_POS        -1
2172
   #endif
2172
   #endif
2173
 
2173
 
2174
   #if AXIS_DRIVER_TYPE_E0(L6470)
2174
   #if AXIS_DRIVER_TYPE_E0(L6470)
2176
     #define E0_OVERCURRENT    2000
2176
     #define E0_OVERCURRENT    2000
2177
     #define E0_STALLCURRENT   1500
2177
     #define E0_STALLCURRENT   1500
2178
     #define E0_MAX_VOLTAGE     127
2178
     #define E0_MAX_VOLTAGE     127
2179
-    #define E0_CHAIN_POS         0
2179
+    #define E0_CHAIN_POS        -1
2180
   #endif
2180
   #endif
2181
 
2181
 
2182
   #if AXIS_DRIVER_TYPE_E1(L6470)
2182
   #if AXIS_DRIVER_TYPE_E1(L6470)
2184
     #define E1_OVERCURRENT    2000
2184
     #define E1_OVERCURRENT    2000
2185
     #define E1_STALLCURRENT   1500
2185
     #define E1_STALLCURRENT   1500
2186
     #define E1_MAX_VOLTAGE     127
2186
     #define E1_MAX_VOLTAGE     127
2187
-    #define E1_CHAIN_POS         0
2187
+    #define E1_CHAIN_POS        -1
2188
   #endif
2188
   #endif
2189
 
2189
 
2190
   #if AXIS_DRIVER_TYPE_E2(L6470)
2190
   #if AXIS_DRIVER_TYPE_E2(L6470)
2192
     #define E2_OVERCURRENT    2000
2192
     #define E2_OVERCURRENT    2000
2193
     #define E2_STALLCURRENT   1500
2193
     #define E2_STALLCURRENT   1500
2194
     #define E2_MAX_VOLTAGE     127
2194
     #define E2_MAX_VOLTAGE     127
2195
-    #define E2_CHAIN_POS         0
2195
+    #define E2_CHAIN_POS        -1
2196
   #endif
2196
   #endif
2197
 
2197
 
2198
   #if AXIS_DRIVER_TYPE_E3(L6470)
2198
   #if AXIS_DRIVER_TYPE_E3(L6470)
2200
     #define E3_OVERCURRENT    2000
2200
     #define E3_OVERCURRENT    2000
2201
     #define E3_STALLCURRENT   1500
2201
     #define E3_STALLCURRENT   1500
2202
     #define E3_MAX_VOLTAGE     127
2202
     #define E3_MAX_VOLTAGE     127
2203
-    #define E3_CHAIN_POS         0
2203
+    #define E3_CHAIN_POS        -1
2204
   #endif
2204
   #endif
2205
 
2205
 
2206
   #if AXIS_DRIVER_TYPE_E4(L6470)
2206
   #if AXIS_DRIVER_TYPE_E4(L6470)
2208
     #define E4_OVERCURRENT    2000
2208
     #define E4_OVERCURRENT    2000
2209
     #define E4_STALLCURRENT   1500
2209
     #define E4_STALLCURRENT   1500
2210
     #define E4_MAX_VOLTAGE     127
2210
     #define E4_MAX_VOLTAGE     127
2211
-    #define E4_CHAIN_POS         0
2211
+    #define E4_CHAIN_POS        -1
2212
   #endif
2212
   #endif
2213
 
2213
 
2214
   #if AXIS_DRIVER_TYPE_E5(L6470)
2214
   #if AXIS_DRIVER_TYPE_E5(L6470)
2216
     #define E5_OVERCURRENT    2000
2216
     #define E5_OVERCURRENT    2000
2217
     #define E5_STALLCURRENT   1500
2217
     #define E5_STALLCURRENT   1500
2218
     #define E5_MAX_VOLTAGE     127
2218
     #define E5_MAX_VOLTAGE     127
2219
-    #define E5_CHAIN_POS         0
2219
+    #define E5_CHAIN_POS        -1
2220
   #endif
2220
   #endif
2221
 
2221
 
2222
   /**
2222
   /**

+ 26
- 26
config/examples/Velleman/K8400/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/WASP/PowerWASP/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/Wanhao/Duplicator 6/Configuration_adv.h View File

1799
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1799
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1800
     #define X_MICROSTEPS   16  // 0..256
1800
     #define X_MICROSTEPS   16  // 0..256
1801
     #define X_RSENSE     0.11
1801
     #define X_RSENSE     0.11
1802
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1802
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1803
   #endif
1803
   #endif
1804
 
1804
 
1805
   #if AXIS_IS_TMC(X2)
1805
   #if AXIS_IS_TMC(X2)
1806
     #define X2_CURRENT    800
1806
     #define X2_CURRENT    800
1807
     #define X2_MICROSTEPS  16
1807
     #define X2_MICROSTEPS  16
1808
     #define X2_RSENSE    0.11
1808
     #define X2_RSENSE    0.11
1809
-    #define X2_CHAIN_POS    0
1809
+    #define X2_CHAIN_POS   -1
1810
   #endif
1810
   #endif
1811
 
1811
 
1812
   #if AXIS_IS_TMC(Y)
1812
   #if AXIS_IS_TMC(Y)
1813
     #define Y_CURRENT     800
1813
     #define Y_CURRENT     800
1814
     #define Y_MICROSTEPS   16
1814
     #define Y_MICROSTEPS   16
1815
     #define Y_RSENSE     0.11
1815
     #define Y_RSENSE     0.11
1816
-    #define Y_CHAIN_POS     0
1816
+    #define Y_CHAIN_POS    -1
1817
   #endif
1817
   #endif
1818
 
1818
 
1819
   #if AXIS_IS_TMC(Y2)
1819
   #if AXIS_IS_TMC(Y2)
1820
     #define Y2_CURRENT    800
1820
     #define Y2_CURRENT    800
1821
     #define Y2_MICROSTEPS  16
1821
     #define Y2_MICROSTEPS  16
1822
     #define Y2_RSENSE    0.11
1822
     #define Y2_RSENSE    0.11
1823
-    #define Y2_CHAIN_POS    0
1823
+    #define Y2_CHAIN_POS   -1
1824
   #endif
1824
   #endif
1825
 
1825
 
1826
   #if AXIS_IS_TMC(Z)
1826
   #if AXIS_IS_TMC(Z)
1827
     #define Z_CURRENT     800
1827
     #define Z_CURRENT     800
1828
     #define Z_MICROSTEPS   16
1828
     #define Z_MICROSTEPS   16
1829
     #define Z_RSENSE     0.11
1829
     #define Z_RSENSE     0.11
1830
-    #define Z_CHAIN_POS     0
1830
+    #define Z_CHAIN_POS    -1
1831
   #endif
1831
   #endif
1832
 
1832
 
1833
   #if AXIS_IS_TMC(Z2)
1833
   #if AXIS_IS_TMC(Z2)
1834
     #define Z2_CURRENT    800
1834
     #define Z2_CURRENT    800
1835
     #define Z2_MICROSTEPS  16
1835
     #define Z2_MICROSTEPS  16
1836
     #define Z2_RSENSE    0.11
1836
     #define Z2_RSENSE    0.11
1837
-    #define Z2_CHAIN_POS    0
1837
+    #define Z2_CHAIN_POS   -1
1838
   #endif
1838
   #endif
1839
 
1839
 
1840
   #if AXIS_IS_TMC(Z3)
1840
   #if AXIS_IS_TMC(Z3)
1841
     #define Z3_CURRENT    800
1841
     #define Z3_CURRENT    800
1842
     #define Z3_MICROSTEPS  16
1842
     #define Z3_MICROSTEPS  16
1843
     #define Z3_RSENSE    0.11
1843
     #define Z3_RSENSE    0.11
1844
-    #define Z3_CHAIN_POS    0
1844
+    #define Z3_CHAIN_POS   -1
1845
   #endif
1845
   #endif
1846
 
1846
 
1847
   #if AXIS_IS_TMC(E0)
1847
   #if AXIS_IS_TMC(E0)
1848
     #define E0_CURRENT    800
1848
     #define E0_CURRENT    800
1849
     #define E0_MICROSTEPS  16
1849
     #define E0_MICROSTEPS  16
1850
     #define E0_RSENSE    0.11
1850
     #define E0_RSENSE    0.11
1851
-    #define E0_CHAIN_POS    0
1851
+    #define E0_CHAIN_POS   -1
1852
   #endif
1852
   #endif
1853
 
1853
 
1854
   #if AXIS_IS_TMC(E1)
1854
   #if AXIS_IS_TMC(E1)
1855
     #define E1_CURRENT    800
1855
     #define E1_CURRENT    800
1856
     #define E1_MICROSTEPS  16
1856
     #define E1_MICROSTEPS  16
1857
     #define E1_RSENSE    0.11
1857
     #define E1_RSENSE    0.11
1858
-    #define E1_CHAIN_POS    0
1858
+    #define E1_CHAIN_POS   -1
1859
   #endif
1859
   #endif
1860
 
1860
 
1861
   #if AXIS_IS_TMC(E2)
1861
   #if AXIS_IS_TMC(E2)
1862
     #define E2_CURRENT    800
1862
     #define E2_CURRENT    800
1863
     #define E2_MICROSTEPS  16
1863
     #define E2_MICROSTEPS  16
1864
     #define E2_RSENSE    0.11
1864
     #define E2_RSENSE    0.11
1865
-    #define E2_CHAIN_POS    0
1865
+    #define E2_CHAIN_POS   -1
1866
   #endif
1866
   #endif
1867
 
1867
 
1868
   #if AXIS_IS_TMC(E3)
1868
   #if AXIS_IS_TMC(E3)
1869
     #define E3_CURRENT    800
1869
     #define E3_CURRENT    800
1870
     #define E3_MICROSTEPS  16
1870
     #define E3_MICROSTEPS  16
1871
     #define E3_RSENSE    0.11
1871
     #define E3_RSENSE    0.11
1872
-    #define E3_CHAIN_POS    0
1872
+    #define E3_CHAIN_POS   -1
1873
   #endif
1873
   #endif
1874
 
1874
 
1875
   #if AXIS_IS_TMC(E4)
1875
   #if AXIS_IS_TMC(E4)
1876
     #define E4_CURRENT    800
1876
     #define E4_CURRENT    800
1877
     #define E4_MICROSTEPS  16
1877
     #define E4_MICROSTEPS  16
1878
     #define E4_RSENSE    0.11
1878
     #define E4_RSENSE    0.11
1879
-    #define E4_CHAIN_POS    0
1879
+    #define E4_CHAIN_POS   -1
1880
   #endif
1880
   #endif
1881
 
1881
 
1882
   #if AXIS_IS_TMC(E5)
1882
   #if AXIS_IS_TMC(E5)
1883
     #define E5_CURRENT    800
1883
     #define E5_CURRENT    800
1884
     #define E5_MICROSTEPS  16
1884
     #define E5_MICROSTEPS  16
1885
     #define E5_RSENSE    0.11
1885
     #define E5_RSENSE    0.11
1886
-    #define E5_CHAIN_POS    0
1886
+    #define E5_CHAIN_POS   -1
1887
   #endif
1887
   #endif
1888
 
1888
 
1889
   /**
1889
   /**
2109
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2109
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2110
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2110
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2111
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2111
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2112
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2112
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2113
   #endif
2113
   #endif
2114
 
2114
 
2115
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
   #if AXIS_DRIVER_TYPE_X2(L6470)
2117
     #define X2_OVERCURRENT    2000
2117
     #define X2_OVERCURRENT    2000
2118
     #define X2_STALLCURRENT   1500
2118
     #define X2_STALLCURRENT   1500
2119
     #define X2_MAX_VOLTAGE     127
2119
     #define X2_MAX_VOLTAGE     127
2120
-    #define X2_CHAIN_POS         0
2120
+    #define X2_CHAIN_POS        -1
2121
   #endif
2121
   #endif
2122
 
2122
 
2123
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
   #if AXIS_DRIVER_TYPE_Y(L6470)
2125
     #define Y_OVERCURRENT     2000
2125
     #define Y_OVERCURRENT     2000
2126
     #define Y_STALLCURRENT    1500
2126
     #define Y_STALLCURRENT    1500
2127
     #define Y_MAX_VOLTAGE      127
2127
     #define Y_MAX_VOLTAGE      127
2128
-    #define Y_CHAIN_POS          0
2128
+    #define Y_CHAIN_POS         -1
2129
   #endif
2129
   #endif
2130
 
2130
 
2131
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2133
     #define Y2_OVERCURRENT    2000
2133
     #define Y2_OVERCURRENT    2000
2134
     #define Y2_STALLCURRENT   1500
2134
     #define Y2_STALLCURRENT   1500
2135
     #define Y2_MAX_VOLTAGE     127
2135
     #define Y2_MAX_VOLTAGE     127
2136
-    #define Y2_CHAIN_POS         0
2136
+    #define Y2_CHAIN_POS        -1
2137
   #endif
2137
   #endif
2138
 
2138
 
2139
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
   #if AXIS_DRIVER_TYPE_Z(L6470)
2141
     #define Z_OVERCURRENT     2000
2141
     #define Z_OVERCURRENT     2000
2142
     #define Z_STALLCURRENT    1500
2142
     #define Z_STALLCURRENT    1500
2143
     #define Z_MAX_VOLTAGE      127
2143
     #define Z_MAX_VOLTAGE      127
2144
-    #define Z_CHAIN_POS          0
2144
+    #define Z_CHAIN_POS         -1
2145
   #endif
2145
   #endif
2146
 
2146
 
2147
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2149
     #define Z2_OVERCURRENT    2000
2149
     #define Z2_OVERCURRENT    2000
2150
     #define Z2_STALLCURRENT   1500
2150
     #define Z2_STALLCURRENT   1500
2151
     #define Z2_MAX_VOLTAGE     127
2151
     #define Z2_MAX_VOLTAGE     127
2152
-    #define Z2_CHAIN_POS         0
2152
+    #define Z2_CHAIN_POS        -1
2153
   #endif
2153
   #endif
2154
 
2154
 
2155
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2157
     #define Z3_OVERCURRENT    2000
2157
     #define Z3_OVERCURRENT    2000
2158
     #define Z3_STALLCURRENT   1500
2158
     #define Z3_STALLCURRENT   1500
2159
     #define Z3_MAX_VOLTAGE     127
2159
     #define Z3_MAX_VOLTAGE     127
2160
-    #define Z3_CHAIN_POS         0
2160
+    #define Z3_CHAIN_POS        -1
2161
   #endif
2161
   #endif
2162
 
2162
 
2163
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
   #if AXIS_DRIVER_TYPE_E0(L6470)
2165
     #define E0_OVERCURRENT    2000
2165
     #define E0_OVERCURRENT    2000
2166
     #define E0_STALLCURRENT   1500
2166
     #define E0_STALLCURRENT   1500
2167
     #define E0_MAX_VOLTAGE     127
2167
     #define E0_MAX_VOLTAGE     127
2168
-    #define E0_CHAIN_POS         0
2168
+    #define E0_CHAIN_POS        -1
2169
   #endif
2169
   #endif
2170
 
2170
 
2171
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
   #if AXIS_DRIVER_TYPE_E1(L6470)
2173
     #define E1_OVERCURRENT    2000
2173
     #define E1_OVERCURRENT    2000
2174
     #define E1_STALLCURRENT   1500
2174
     #define E1_STALLCURRENT   1500
2175
     #define E1_MAX_VOLTAGE     127
2175
     #define E1_MAX_VOLTAGE     127
2176
-    #define E1_CHAIN_POS         0
2176
+    #define E1_CHAIN_POS        -1
2177
   #endif
2177
   #endif
2178
 
2178
 
2179
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
   #if AXIS_DRIVER_TYPE_E2(L6470)
2181
     #define E2_OVERCURRENT    2000
2181
     #define E2_OVERCURRENT    2000
2182
     #define E2_STALLCURRENT   1500
2182
     #define E2_STALLCURRENT   1500
2183
     #define E2_MAX_VOLTAGE     127
2183
     #define E2_MAX_VOLTAGE     127
2184
-    #define E2_CHAIN_POS         0
2184
+    #define E2_CHAIN_POS        -1
2185
   #endif
2185
   #endif
2186
 
2186
 
2187
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
   #if AXIS_DRIVER_TYPE_E3(L6470)
2189
     #define E3_OVERCURRENT    2000
2189
     #define E3_OVERCURRENT    2000
2190
     #define E3_STALLCURRENT   1500
2190
     #define E3_STALLCURRENT   1500
2191
     #define E3_MAX_VOLTAGE     127
2191
     #define E3_MAX_VOLTAGE     127
2192
-    #define E3_CHAIN_POS         0
2192
+    #define E3_CHAIN_POS        -1
2193
   #endif
2193
   #endif
2194
 
2194
 
2195
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
   #if AXIS_DRIVER_TYPE_E4(L6470)
2197
     #define E4_OVERCURRENT    2000
2197
     #define E4_OVERCURRENT    2000
2198
     #define E4_STALLCURRENT   1500
2198
     #define E4_STALLCURRENT   1500
2199
     #define E4_MAX_VOLTAGE     127
2199
     #define E4_MAX_VOLTAGE     127
2200
-    #define E4_CHAIN_POS         0
2200
+    #define E4_CHAIN_POS        -1
2201
   #endif
2201
   #endif
2202
 
2202
 
2203
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
   #if AXIS_DRIVER_TYPE_E5(L6470)
2205
     #define E5_OVERCURRENT    2000
2205
     #define E5_OVERCURRENT    2000
2206
     #define E5_STALLCURRENT   1500
2206
     #define E5_STALLCURRENT   1500
2207
     #define E5_MAX_VOLTAGE     127
2207
     #define E5_MAX_VOLTAGE     127
2208
-    #define E5_CHAIN_POS         0
2208
+    #define E5_CHAIN_POS        -1
2209
   #endif
2209
   #endif
2210
 
2210
 
2211
   /**
2211
   /**

+ 26
- 26
config/examples/Wanhao/Duplicator i3 Mini/Configuration_adv.h View File

1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1797
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1798
     #define X_MICROSTEPS   16  // 0..256
1798
     #define X_MICROSTEPS   16  // 0..256
1799
     #define X_RSENSE     0.11
1799
     #define X_RSENSE     0.11
1800
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1800
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1801
   #endif
1801
   #endif
1802
 
1802
 
1803
   #if AXIS_IS_TMC(X2)
1803
   #if AXIS_IS_TMC(X2)
1804
     #define X2_CURRENT    800
1804
     #define X2_CURRENT    800
1805
     #define X2_MICROSTEPS  16
1805
     #define X2_MICROSTEPS  16
1806
     #define X2_RSENSE    0.11
1806
     #define X2_RSENSE    0.11
1807
-    #define X2_CHAIN_POS    0
1807
+    #define X2_CHAIN_POS   -1
1808
   #endif
1808
   #endif
1809
 
1809
 
1810
   #if AXIS_IS_TMC(Y)
1810
   #if AXIS_IS_TMC(Y)
1811
     #define Y_CURRENT     800
1811
     #define Y_CURRENT     800
1812
     #define Y_MICROSTEPS   16
1812
     #define Y_MICROSTEPS   16
1813
     #define Y_RSENSE     0.11
1813
     #define Y_RSENSE     0.11
1814
-    #define Y_CHAIN_POS     0
1814
+    #define Y_CHAIN_POS    -1
1815
   #endif
1815
   #endif
1816
 
1816
 
1817
   #if AXIS_IS_TMC(Y2)
1817
   #if AXIS_IS_TMC(Y2)
1818
     #define Y2_CURRENT    800
1818
     #define Y2_CURRENT    800
1819
     #define Y2_MICROSTEPS  16
1819
     #define Y2_MICROSTEPS  16
1820
     #define Y2_RSENSE    0.11
1820
     #define Y2_RSENSE    0.11
1821
-    #define Y2_CHAIN_POS    0
1821
+    #define Y2_CHAIN_POS   -1
1822
   #endif
1822
   #endif
1823
 
1823
 
1824
   #if AXIS_IS_TMC(Z)
1824
   #if AXIS_IS_TMC(Z)
1825
     #define Z_CURRENT     800
1825
     #define Z_CURRENT     800
1826
     #define Z_MICROSTEPS   16
1826
     #define Z_MICROSTEPS   16
1827
     #define Z_RSENSE     0.11
1827
     #define Z_RSENSE     0.11
1828
-    #define Z_CHAIN_POS     0
1828
+    #define Z_CHAIN_POS    -1
1829
   #endif
1829
   #endif
1830
 
1830
 
1831
   #if AXIS_IS_TMC(Z2)
1831
   #if AXIS_IS_TMC(Z2)
1832
     #define Z2_CURRENT    800
1832
     #define Z2_CURRENT    800
1833
     #define Z2_MICROSTEPS  16
1833
     #define Z2_MICROSTEPS  16
1834
     #define Z2_RSENSE    0.11
1834
     #define Z2_RSENSE    0.11
1835
-    #define Z2_CHAIN_POS    0
1835
+    #define Z2_CHAIN_POS   -1
1836
   #endif
1836
   #endif
1837
 
1837
 
1838
   #if AXIS_IS_TMC(Z3)
1838
   #if AXIS_IS_TMC(Z3)
1839
     #define Z3_CURRENT    800
1839
     #define Z3_CURRENT    800
1840
     #define Z3_MICROSTEPS  16
1840
     #define Z3_MICROSTEPS  16
1841
     #define Z3_RSENSE    0.11
1841
     #define Z3_RSENSE    0.11
1842
-    #define Z3_CHAIN_POS    0
1842
+    #define Z3_CHAIN_POS   -1
1843
   #endif
1843
   #endif
1844
 
1844
 
1845
   #if AXIS_IS_TMC(E0)
1845
   #if AXIS_IS_TMC(E0)
1846
     #define E0_CURRENT    800
1846
     #define E0_CURRENT    800
1847
     #define E0_MICROSTEPS  16
1847
     #define E0_MICROSTEPS  16
1848
     #define E0_RSENSE    0.11
1848
     #define E0_RSENSE    0.11
1849
-    #define E0_CHAIN_POS    0
1849
+    #define E0_CHAIN_POS   -1
1850
   #endif
1850
   #endif
1851
 
1851
 
1852
   #if AXIS_IS_TMC(E1)
1852
   #if AXIS_IS_TMC(E1)
1853
     #define E1_CURRENT    800
1853
     #define E1_CURRENT    800
1854
     #define E1_MICROSTEPS  16
1854
     #define E1_MICROSTEPS  16
1855
     #define E1_RSENSE    0.11
1855
     #define E1_RSENSE    0.11
1856
-    #define E1_CHAIN_POS    0
1856
+    #define E1_CHAIN_POS   -1
1857
   #endif
1857
   #endif
1858
 
1858
 
1859
   #if AXIS_IS_TMC(E2)
1859
   #if AXIS_IS_TMC(E2)
1860
     #define E2_CURRENT    800
1860
     #define E2_CURRENT    800
1861
     #define E2_MICROSTEPS  16
1861
     #define E2_MICROSTEPS  16
1862
     #define E2_RSENSE    0.11
1862
     #define E2_RSENSE    0.11
1863
-    #define E2_CHAIN_POS    0
1863
+    #define E2_CHAIN_POS   -1
1864
   #endif
1864
   #endif
1865
 
1865
 
1866
   #if AXIS_IS_TMC(E3)
1866
   #if AXIS_IS_TMC(E3)
1867
     #define E3_CURRENT    800
1867
     #define E3_CURRENT    800
1868
     #define E3_MICROSTEPS  16
1868
     #define E3_MICROSTEPS  16
1869
     #define E3_RSENSE    0.11
1869
     #define E3_RSENSE    0.11
1870
-    #define E3_CHAIN_POS    0
1870
+    #define E3_CHAIN_POS   -1
1871
   #endif
1871
   #endif
1872
 
1872
 
1873
   #if AXIS_IS_TMC(E4)
1873
   #if AXIS_IS_TMC(E4)
1874
     #define E4_CURRENT    800
1874
     #define E4_CURRENT    800
1875
     #define E4_MICROSTEPS  16
1875
     #define E4_MICROSTEPS  16
1876
     #define E4_RSENSE    0.11
1876
     #define E4_RSENSE    0.11
1877
-    #define E4_CHAIN_POS    0
1877
+    #define E4_CHAIN_POS   -1
1878
   #endif
1878
   #endif
1879
 
1879
 
1880
   #if AXIS_IS_TMC(E5)
1880
   #if AXIS_IS_TMC(E5)
1881
     #define E5_CURRENT    800
1881
     #define E5_CURRENT    800
1882
     #define E5_MICROSTEPS  16
1882
     #define E5_MICROSTEPS  16
1883
     #define E5_RSENSE    0.11
1883
     #define E5_RSENSE    0.11
1884
-    #define E5_CHAIN_POS    0
1884
+    #define E5_CHAIN_POS   -1
1885
   #endif
1885
   #endif
1886
 
1886
 
1887
   /**
1887
   /**
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2107
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2108
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2109
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2110
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2110
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2111
   #endif
2111
   #endif
2112
 
2112
 
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2113
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
     #define X2_OVERCURRENT    2000
2115
     #define X2_OVERCURRENT    2000
2116
     #define X2_STALLCURRENT   1500
2116
     #define X2_STALLCURRENT   1500
2117
     #define X2_MAX_VOLTAGE     127
2117
     #define X2_MAX_VOLTAGE     127
2118
-    #define X2_CHAIN_POS         0
2118
+    #define X2_CHAIN_POS        -1
2119
   #endif
2119
   #endif
2120
 
2120
 
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2121
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
     #define Y_OVERCURRENT     2000
2123
     #define Y_OVERCURRENT     2000
2124
     #define Y_STALLCURRENT    1500
2124
     #define Y_STALLCURRENT    1500
2125
     #define Y_MAX_VOLTAGE      127
2125
     #define Y_MAX_VOLTAGE      127
2126
-    #define Y_CHAIN_POS          0
2126
+    #define Y_CHAIN_POS         -1
2127
   #endif
2127
   #endif
2128
 
2128
 
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2129
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
     #define Y2_OVERCURRENT    2000
2131
     #define Y2_OVERCURRENT    2000
2132
     #define Y2_STALLCURRENT   1500
2132
     #define Y2_STALLCURRENT   1500
2133
     #define Y2_MAX_VOLTAGE     127
2133
     #define Y2_MAX_VOLTAGE     127
2134
-    #define Y2_CHAIN_POS         0
2134
+    #define Y2_CHAIN_POS        -1
2135
   #endif
2135
   #endif
2136
 
2136
 
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2137
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
     #define Z_OVERCURRENT     2000
2139
     #define Z_OVERCURRENT     2000
2140
     #define Z_STALLCURRENT    1500
2140
     #define Z_STALLCURRENT    1500
2141
     #define Z_MAX_VOLTAGE      127
2141
     #define Z_MAX_VOLTAGE      127
2142
-    #define Z_CHAIN_POS          0
2142
+    #define Z_CHAIN_POS         -1
2143
   #endif
2143
   #endif
2144
 
2144
 
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2145
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
     #define Z2_OVERCURRENT    2000
2147
     #define Z2_OVERCURRENT    2000
2148
     #define Z2_STALLCURRENT   1500
2148
     #define Z2_STALLCURRENT   1500
2149
     #define Z2_MAX_VOLTAGE     127
2149
     #define Z2_MAX_VOLTAGE     127
2150
-    #define Z2_CHAIN_POS         0
2150
+    #define Z2_CHAIN_POS        -1
2151
   #endif
2151
   #endif
2152
 
2152
 
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2153
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
     #define Z3_OVERCURRENT    2000
2155
     #define Z3_OVERCURRENT    2000
2156
     #define Z3_STALLCURRENT   1500
2156
     #define Z3_STALLCURRENT   1500
2157
     #define Z3_MAX_VOLTAGE     127
2157
     #define Z3_MAX_VOLTAGE     127
2158
-    #define Z3_CHAIN_POS         0
2158
+    #define Z3_CHAIN_POS        -1
2159
   #endif
2159
   #endif
2160
 
2160
 
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2161
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
     #define E0_OVERCURRENT    2000
2163
     #define E0_OVERCURRENT    2000
2164
     #define E0_STALLCURRENT   1500
2164
     #define E0_STALLCURRENT   1500
2165
     #define E0_MAX_VOLTAGE     127
2165
     #define E0_MAX_VOLTAGE     127
2166
-    #define E0_CHAIN_POS         0
2166
+    #define E0_CHAIN_POS        -1
2167
   #endif
2167
   #endif
2168
 
2168
 
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2169
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
     #define E1_OVERCURRENT    2000
2171
     #define E1_OVERCURRENT    2000
2172
     #define E1_STALLCURRENT   1500
2172
     #define E1_STALLCURRENT   1500
2173
     #define E1_MAX_VOLTAGE     127
2173
     #define E1_MAX_VOLTAGE     127
2174
-    #define E1_CHAIN_POS         0
2174
+    #define E1_CHAIN_POS        -1
2175
   #endif
2175
   #endif
2176
 
2176
 
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2177
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
     #define E2_OVERCURRENT    2000
2179
     #define E2_OVERCURRENT    2000
2180
     #define E2_STALLCURRENT   1500
2180
     #define E2_STALLCURRENT   1500
2181
     #define E2_MAX_VOLTAGE     127
2181
     #define E2_MAX_VOLTAGE     127
2182
-    #define E2_CHAIN_POS         0
2182
+    #define E2_CHAIN_POS        -1
2183
   #endif
2183
   #endif
2184
 
2184
 
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2185
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
     #define E3_OVERCURRENT    2000
2187
     #define E3_OVERCURRENT    2000
2188
     #define E3_STALLCURRENT   1500
2188
     #define E3_STALLCURRENT   1500
2189
     #define E3_MAX_VOLTAGE     127
2189
     #define E3_MAX_VOLTAGE     127
2190
-    #define E3_CHAIN_POS         0
2190
+    #define E3_CHAIN_POS        -1
2191
   #endif
2191
   #endif
2192
 
2192
 
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2193
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
     #define E4_OVERCURRENT    2000
2195
     #define E4_OVERCURRENT    2000
2196
     #define E4_STALLCURRENT   1500
2196
     #define E4_STALLCURRENT   1500
2197
     #define E4_MAX_VOLTAGE     127
2197
     #define E4_MAX_VOLTAGE     127
2198
-    #define E4_CHAIN_POS         0
2198
+    #define E4_CHAIN_POS        -1
2199
   #endif
2199
   #endif
2200
 
2200
 
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2201
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
     #define E5_OVERCURRENT    2000
2203
     #define E5_OVERCURRENT    2000
2204
     #define E5_STALLCURRENT   1500
2204
     #define E5_STALLCURRENT   1500
2205
     #define E5_MAX_VOLTAGE     127
2205
     #define E5_MAX_VOLTAGE     127
2206
-    #define E5_CHAIN_POS         0
2206
+    #define E5_CHAIN_POS        -1
2207
   #endif
2207
   #endif
2208
 
2208
 
2209
   /**
2209
   /**

+ 26
- 26
config/examples/delta/Anycubic/Kossel/Configuration_adv.h View File

1799
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1799
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1800
     #define X_MICROSTEPS   16  // 0..256
1800
     #define X_MICROSTEPS   16  // 0..256
1801
     #define X_RSENSE     0.11
1801
     #define X_RSENSE     0.11
1802
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1802
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1803
   #endif
1803
   #endif
1804
 
1804
 
1805
   #if AXIS_IS_TMC(X2)
1805
   #if AXIS_IS_TMC(X2)
1806
     #define X2_CURRENT    800
1806
     #define X2_CURRENT    800
1807
     #define X2_MICROSTEPS  16
1807
     #define X2_MICROSTEPS  16
1808
     #define X2_RSENSE    0.11
1808
     #define X2_RSENSE    0.11
1809
-    #define X2_CHAIN_POS    0
1809
+    #define X2_CHAIN_POS   -1
1810
   #endif
1810
   #endif
1811
 
1811
 
1812
   #if AXIS_IS_TMC(Y)
1812
   #if AXIS_IS_TMC(Y)
1813
     #define Y_CURRENT     800
1813
     #define Y_CURRENT     800
1814
     #define Y_MICROSTEPS   16
1814
     #define Y_MICROSTEPS   16
1815
     #define Y_RSENSE     0.11
1815
     #define Y_RSENSE     0.11
1816
-    #define Y_CHAIN_POS     0
1816
+    #define Y_CHAIN_POS    -1
1817
   #endif
1817
   #endif
1818
 
1818
 
1819
   #if AXIS_IS_TMC(Y2)
1819
   #if AXIS_IS_TMC(Y2)
1820
     #define Y2_CURRENT    800
1820
     #define Y2_CURRENT    800
1821
     #define Y2_MICROSTEPS  16
1821
     #define Y2_MICROSTEPS  16
1822
     #define Y2_RSENSE    0.11
1822
     #define Y2_RSENSE    0.11
1823
-    #define Y2_CHAIN_POS    0
1823
+    #define Y2_CHAIN_POS   -1
1824
   #endif
1824
   #endif
1825
 
1825
 
1826
   #if AXIS_IS_TMC(Z)
1826
   #if AXIS_IS_TMC(Z)
1827
     #define Z_CURRENT     800
1827
     #define Z_CURRENT     800
1828
     #define Z_MICROSTEPS   16
1828
     #define Z_MICROSTEPS   16
1829
     #define Z_RSENSE     0.11
1829
     #define Z_RSENSE     0.11
1830
-    #define Z_CHAIN_POS     0
1830
+    #define Z_CHAIN_POS    -1
1831
   #endif
1831
   #endif
1832
 
1832
 
1833
   #if AXIS_IS_TMC(Z2)
1833
   #if AXIS_IS_TMC(Z2)
1834
     #define Z2_CURRENT    800
1834
     #define Z2_CURRENT    800
1835
     #define Z2_MICROSTEPS  16
1835
     #define Z2_MICROSTEPS  16
1836
     #define Z2_RSENSE    0.11
1836
     #define Z2_RSENSE    0.11
1837
-    #define Z2_CHAIN_POS    0
1837
+    #define Z2_CHAIN_POS   -1
1838
   #endif
1838
   #endif
1839
 
1839
 
1840
   #if AXIS_IS_TMC(Z3)
1840
   #if AXIS_IS_TMC(Z3)
1841
     #define Z3_CURRENT    800
1841
     #define Z3_CURRENT    800
1842
     #define Z3_MICROSTEPS  16
1842
     #define Z3_MICROSTEPS  16
1843
     #define Z3_RSENSE    0.11
1843
     #define Z3_RSENSE    0.11
1844
-    #define Z3_CHAIN_POS    0
1844
+    #define Z3_CHAIN_POS   -1
1845
   #endif
1845
   #endif
1846
 
1846
 
1847
   #if AXIS_IS_TMC(E0)
1847
   #if AXIS_IS_TMC(E0)
1848
     #define E0_CURRENT    800
1848
     #define E0_CURRENT    800
1849
     #define E0_MICROSTEPS  16
1849
     #define E0_MICROSTEPS  16
1850
     #define E0_RSENSE    0.11
1850
     #define E0_RSENSE    0.11
1851
-    #define E0_CHAIN_POS    0
1851
+    #define E0_CHAIN_POS   -1
1852
   #endif
1852
   #endif
1853
 
1853
 
1854
   #if AXIS_IS_TMC(E1)
1854
   #if AXIS_IS_TMC(E1)
1855
     #define E1_CURRENT    800
1855
     #define E1_CURRENT    800
1856
     #define E1_MICROSTEPS  16
1856
     #define E1_MICROSTEPS  16
1857
     #define E1_RSENSE    0.11
1857
     #define E1_RSENSE    0.11
1858
-    #define E1_CHAIN_POS    0
1858
+    #define E1_CHAIN_POS   -1
1859
   #endif
1859
   #endif
1860
 
1860
 
1861
   #if AXIS_IS_TMC(E2)
1861
   #if AXIS_IS_TMC(E2)
1862
     #define E2_CURRENT    800
1862
     #define E2_CURRENT    800
1863
     #define E2_MICROSTEPS  16
1863
     #define E2_MICROSTEPS  16
1864
     #define E2_RSENSE    0.11
1864
     #define E2_RSENSE    0.11
1865
-    #define E2_CHAIN_POS    0
1865
+    #define E2_CHAIN_POS   -1
1866
   #endif
1866
   #endif
1867
 
1867
 
1868
   #if AXIS_IS_TMC(E3)
1868
   #if AXIS_IS_TMC(E3)
1869
     #define E3_CURRENT    800
1869
     #define E3_CURRENT    800
1870
     #define E3_MICROSTEPS  16
1870
     #define E3_MICROSTEPS  16
1871
     #define E3_RSENSE    0.11
1871
     #define E3_RSENSE    0.11
1872
-    #define E3_CHAIN_POS    0
1872
+    #define E3_CHAIN_POS   -1
1873
   #endif
1873
   #endif
1874
 
1874
 
1875
   #if AXIS_IS_TMC(E4)
1875
   #if AXIS_IS_TMC(E4)
1876
     #define E4_CURRENT    800
1876
     #define E4_CURRENT    800
1877
     #define E4_MICROSTEPS  16
1877
     #define E4_MICROSTEPS  16
1878
     #define E4_RSENSE    0.11
1878
     #define E4_RSENSE    0.11
1879
-    #define E4_CHAIN_POS    0
1879
+    #define E4_CHAIN_POS   -1
1880
   #endif
1880
   #endif
1881
 
1881
 
1882
   #if AXIS_IS_TMC(E5)
1882
   #if AXIS_IS_TMC(E5)
1883
     #define E5_CURRENT    800
1883
     #define E5_CURRENT    800
1884
     #define E5_MICROSTEPS  16
1884
     #define E5_MICROSTEPS  16
1885
     #define E5_RSENSE    0.11
1885
     #define E5_RSENSE    0.11
1886
-    #define E5_CHAIN_POS    0
1886
+    #define E5_CHAIN_POS   -1
1887
   #endif
1887
   #endif
1888
 
1888
 
1889
   /**
1889
   /**
2109
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2109
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2110
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2110
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2111
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2111
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2112
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2112
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2113
   #endif
2113
   #endif
2114
 
2114
 
2115
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
   #if AXIS_DRIVER_TYPE_X2(L6470)
2117
     #define X2_OVERCURRENT    2000
2117
     #define X2_OVERCURRENT    2000
2118
     #define X2_STALLCURRENT   1500
2118
     #define X2_STALLCURRENT   1500
2119
     #define X2_MAX_VOLTAGE     127
2119
     #define X2_MAX_VOLTAGE     127
2120
-    #define X2_CHAIN_POS         0
2120
+    #define X2_CHAIN_POS        -1
2121
   #endif
2121
   #endif
2122
 
2122
 
2123
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
   #if AXIS_DRIVER_TYPE_Y(L6470)
2125
     #define Y_OVERCURRENT     2000
2125
     #define Y_OVERCURRENT     2000
2126
     #define Y_STALLCURRENT    1500
2126
     #define Y_STALLCURRENT    1500
2127
     #define Y_MAX_VOLTAGE      127
2127
     #define Y_MAX_VOLTAGE      127
2128
-    #define Y_CHAIN_POS          0
2128
+    #define Y_CHAIN_POS         -1
2129
   #endif
2129
   #endif
2130
 
2130
 
2131
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2133
     #define Y2_OVERCURRENT    2000
2133
     #define Y2_OVERCURRENT    2000
2134
     #define Y2_STALLCURRENT   1500
2134
     #define Y2_STALLCURRENT   1500
2135
     #define Y2_MAX_VOLTAGE     127
2135
     #define Y2_MAX_VOLTAGE     127
2136
-    #define Y2_CHAIN_POS         0
2136
+    #define Y2_CHAIN_POS        -1
2137
   #endif
2137
   #endif
2138
 
2138
 
2139
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
   #if AXIS_DRIVER_TYPE_Z(L6470)
2141
     #define Z_OVERCURRENT     2000
2141
     #define Z_OVERCURRENT     2000
2142
     #define Z_STALLCURRENT    1500
2142
     #define Z_STALLCURRENT    1500
2143
     #define Z_MAX_VOLTAGE      127
2143
     #define Z_MAX_VOLTAGE      127
2144
-    #define Z_CHAIN_POS          0
2144
+    #define Z_CHAIN_POS         -1
2145
   #endif
2145
   #endif
2146
 
2146
 
2147
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2149
     #define Z2_OVERCURRENT    2000
2149
     #define Z2_OVERCURRENT    2000
2150
     #define Z2_STALLCURRENT   1500
2150
     #define Z2_STALLCURRENT   1500
2151
     #define Z2_MAX_VOLTAGE     127
2151
     #define Z2_MAX_VOLTAGE     127
2152
-    #define Z2_CHAIN_POS         0
2152
+    #define Z2_CHAIN_POS        -1
2153
   #endif
2153
   #endif
2154
 
2154
 
2155
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2157
     #define Z3_OVERCURRENT    2000
2157
     #define Z3_OVERCURRENT    2000
2158
     #define Z3_STALLCURRENT   1500
2158
     #define Z3_STALLCURRENT   1500
2159
     #define Z3_MAX_VOLTAGE     127
2159
     #define Z3_MAX_VOLTAGE     127
2160
-    #define Z3_CHAIN_POS         0
2160
+    #define Z3_CHAIN_POS        -1
2161
   #endif
2161
   #endif
2162
 
2162
 
2163
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
   #if AXIS_DRIVER_TYPE_E0(L6470)
2165
     #define E0_OVERCURRENT    2000
2165
     #define E0_OVERCURRENT    2000
2166
     #define E0_STALLCURRENT   1500
2166
     #define E0_STALLCURRENT   1500
2167
     #define E0_MAX_VOLTAGE     127
2167
     #define E0_MAX_VOLTAGE     127
2168
-    #define E0_CHAIN_POS         0
2168
+    #define E0_CHAIN_POS        -1
2169
   #endif
2169
   #endif
2170
 
2170
 
2171
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
   #if AXIS_DRIVER_TYPE_E1(L6470)
2173
     #define E1_OVERCURRENT    2000
2173
     #define E1_OVERCURRENT    2000
2174
     #define E1_STALLCURRENT   1500
2174
     #define E1_STALLCURRENT   1500
2175
     #define E1_MAX_VOLTAGE     127
2175
     #define E1_MAX_VOLTAGE     127
2176
-    #define E1_CHAIN_POS         0
2176
+    #define E1_CHAIN_POS        -1
2177
   #endif
2177
   #endif
2178
 
2178
 
2179
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
   #if AXIS_DRIVER_TYPE_E2(L6470)
2181
     #define E2_OVERCURRENT    2000
2181
     #define E2_OVERCURRENT    2000
2182
     #define E2_STALLCURRENT   1500
2182
     #define E2_STALLCURRENT   1500
2183
     #define E2_MAX_VOLTAGE     127
2183
     #define E2_MAX_VOLTAGE     127
2184
-    #define E2_CHAIN_POS         0
2184
+    #define E2_CHAIN_POS        -1
2185
   #endif
2185
   #endif
2186
 
2186
 
2187
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
   #if AXIS_DRIVER_TYPE_E3(L6470)
2189
     #define E3_OVERCURRENT    2000
2189
     #define E3_OVERCURRENT    2000
2190
     #define E3_STALLCURRENT   1500
2190
     #define E3_STALLCURRENT   1500
2191
     #define E3_MAX_VOLTAGE     127
2191
     #define E3_MAX_VOLTAGE     127
2192
-    #define E3_CHAIN_POS         0
2192
+    #define E3_CHAIN_POS        -1
2193
   #endif
2193
   #endif
2194
 
2194
 
2195
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
   #if AXIS_DRIVER_TYPE_E4(L6470)
2197
     #define E4_OVERCURRENT    2000
2197
     #define E4_OVERCURRENT    2000
2198
     #define E4_STALLCURRENT   1500
2198
     #define E4_STALLCURRENT   1500
2199
     #define E4_MAX_VOLTAGE     127
2199
     #define E4_MAX_VOLTAGE     127
2200
-    #define E4_CHAIN_POS         0
2200
+    #define E4_CHAIN_POS        -1
2201
   #endif
2201
   #endif
2202
 
2202
 
2203
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
   #if AXIS_DRIVER_TYPE_E5(L6470)
2205
     #define E5_OVERCURRENT    2000
2205
     #define E5_OVERCURRENT    2000
2206
     #define E5_STALLCURRENT   1500
2206
     #define E5_STALLCURRENT   1500
2207
     #define E5_MAX_VOLTAGE     127
2207
     #define E5_MAX_VOLTAGE     127
2208
-    #define E5_CHAIN_POS         0
2208
+    #define E5_CHAIN_POS        -1
2209
   #endif
2209
   #endif
2210
 
2210
 
2211
   /**
2211
   /**

+ 26
- 26
config/examples/delta/Dreammaker/Overlord/Configuration_adv.h View File

1799
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1799
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1800
     #define X_MICROSTEPS   16  // 0..256
1800
     #define X_MICROSTEPS   16  // 0..256
1801
     #define X_RSENSE     0.11
1801
     #define X_RSENSE     0.11
1802
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1802
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1803
   #endif
1803
   #endif
1804
 
1804
 
1805
   #if AXIS_IS_TMC(X2)
1805
   #if AXIS_IS_TMC(X2)
1806
     #define X2_CURRENT    800
1806
     #define X2_CURRENT    800
1807
     #define X2_MICROSTEPS  16
1807
     #define X2_MICROSTEPS  16
1808
     #define X2_RSENSE    0.11
1808
     #define X2_RSENSE    0.11
1809
-    #define X2_CHAIN_POS    0
1809
+    #define X2_CHAIN_POS   -1
1810
   #endif
1810
   #endif
1811
 
1811
 
1812
   #if AXIS_IS_TMC(Y)
1812
   #if AXIS_IS_TMC(Y)
1813
     #define Y_CURRENT     800
1813
     #define Y_CURRENT     800
1814
     #define Y_MICROSTEPS   16
1814
     #define Y_MICROSTEPS   16
1815
     #define Y_RSENSE     0.11
1815
     #define Y_RSENSE     0.11
1816
-    #define Y_CHAIN_POS     0
1816
+    #define Y_CHAIN_POS    -1
1817
   #endif
1817
   #endif
1818
 
1818
 
1819
   #if AXIS_IS_TMC(Y2)
1819
   #if AXIS_IS_TMC(Y2)
1820
     #define Y2_CURRENT    800
1820
     #define Y2_CURRENT    800
1821
     #define Y2_MICROSTEPS  16
1821
     #define Y2_MICROSTEPS  16
1822
     #define Y2_RSENSE    0.11
1822
     #define Y2_RSENSE    0.11
1823
-    #define Y2_CHAIN_POS    0
1823
+    #define Y2_CHAIN_POS   -1
1824
   #endif
1824
   #endif
1825
 
1825
 
1826
   #if AXIS_IS_TMC(Z)
1826
   #if AXIS_IS_TMC(Z)
1827
     #define Z_CURRENT     800
1827
     #define Z_CURRENT     800
1828
     #define Z_MICROSTEPS   16
1828
     #define Z_MICROSTEPS   16
1829
     #define Z_RSENSE     0.11
1829
     #define Z_RSENSE     0.11
1830
-    #define Z_CHAIN_POS     0
1830
+    #define Z_CHAIN_POS    -1
1831
   #endif
1831
   #endif
1832
 
1832
 
1833
   #if AXIS_IS_TMC(Z2)
1833
   #if AXIS_IS_TMC(Z2)
1834
     #define Z2_CURRENT    800
1834
     #define Z2_CURRENT    800
1835
     #define Z2_MICROSTEPS  16
1835
     #define Z2_MICROSTEPS  16
1836
     #define Z2_RSENSE    0.11
1836
     #define Z2_RSENSE    0.11
1837
-    #define Z2_CHAIN_POS    0
1837
+    #define Z2_CHAIN_POS   -1
1838
   #endif
1838
   #endif
1839
 
1839
 
1840
   #if AXIS_IS_TMC(Z3)
1840
   #if AXIS_IS_TMC(Z3)
1841
     #define Z3_CURRENT    800
1841
     #define Z3_CURRENT    800
1842
     #define Z3_MICROSTEPS  16
1842
     #define Z3_MICROSTEPS  16
1843
     #define Z3_RSENSE    0.11
1843
     #define Z3_RSENSE    0.11
1844
-    #define Z3_CHAIN_POS    0
1844
+    #define Z3_CHAIN_POS   -1
1845
   #endif
1845
   #endif
1846
 
1846
 
1847
   #if AXIS_IS_TMC(E0)
1847
   #if AXIS_IS_TMC(E0)
1848
     #define E0_CURRENT    800
1848
     #define E0_CURRENT    800
1849
     #define E0_MICROSTEPS  16
1849
     #define E0_MICROSTEPS  16
1850
     #define E0_RSENSE    0.11
1850
     #define E0_RSENSE    0.11
1851
-    #define E0_CHAIN_POS    0
1851
+    #define E0_CHAIN_POS   -1
1852
   #endif
1852
   #endif
1853
 
1853
 
1854
   #if AXIS_IS_TMC(E1)
1854
   #if AXIS_IS_TMC(E1)
1855
     #define E1_CURRENT    800
1855
     #define E1_CURRENT    800
1856
     #define E1_MICROSTEPS  16
1856
     #define E1_MICROSTEPS  16
1857
     #define E1_RSENSE    0.11
1857
     #define E1_RSENSE    0.11
1858
-    #define E1_CHAIN_POS    0
1858
+    #define E1_CHAIN_POS   -1
1859
   #endif
1859
   #endif
1860
 
1860
 
1861
   #if AXIS_IS_TMC(E2)
1861
   #if AXIS_IS_TMC(E2)
1862
     #define E2_CURRENT    800
1862
     #define E2_CURRENT    800
1863
     #define E2_MICROSTEPS  16
1863
     #define E2_MICROSTEPS  16
1864
     #define E2_RSENSE    0.11
1864
     #define E2_RSENSE    0.11
1865
-    #define E2_CHAIN_POS    0
1865
+    #define E2_CHAIN_POS   -1
1866
   #endif
1866
   #endif
1867
 
1867
 
1868
   #if AXIS_IS_TMC(E3)
1868
   #if AXIS_IS_TMC(E3)
1869
     #define E3_CURRENT    800
1869
     #define E3_CURRENT    800
1870
     #define E3_MICROSTEPS  16
1870
     #define E3_MICROSTEPS  16
1871
     #define E3_RSENSE    0.11
1871
     #define E3_RSENSE    0.11
1872
-    #define E3_CHAIN_POS    0
1872
+    #define E3_CHAIN_POS   -1
1873
   #endif
1873
   #endif
1874
 
1874
 
1875
   #if AXIS_IS_TMC(E4)
1875
   #if AXIS_IS_TMC(E4)
1876
     #define E4_CURRENT    800
1876
     #define E4_CURRENT    800
1877
     #define E4_MICROSTEPS  16
1877
     #define E4_MICROSTEPS  16
1878
     #define E4_RSENSE    0.11
1878
     #define E4_RSENSE    0.11
1879
-    #define E4_CHAIN_POS    0
1879
+    #define E4_CHAIN_POS   -1
1880
   #endif
1880
   #endif
1881
 
1881
 
1882
   #if AXIS_IS_TMC(E5)
1882
   #if AXIS_IS_TMC(E5)
1883
     #define E5_CURRENT    800
1883
     #define E5_CURRENT    800
1884
     #define E5_MICROSTEPS  16
1884
     #define E5_MICROSTEPS  16
1885
     #define E5_RSENSE    0.11
1885
     #define E5_RSENSE    0.11
1886
-    #define E5_CHAIN_POS    0
1886
+    #define E5_CHAIN_POS   -1
1887
   #endif
1887
   #endif
1888
 
1888
 
1889
   /**
1889
   /**
2097
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2097
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2098
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2098
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2099
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2099
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2100
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2100
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2101
   #endif
2101
   #endif
2102
 
2102
 
2103
   #if AXIS_DRIVER_TYPE_X2(L6470)
2103
   #if AXIS_DRIVER_TYPE_X2(L6470)
2105
     #define X2_OVERCURRENT    2000
2105
     #define X2_OVERCURRENT    2000
2106
     #define X2_STALLCURRENT   1500
2106
     #define X2_STALLCURRENT   1500
2107
     #define X2_MAX_VOLTAGE     127
2107
     #define X2_MAX_VOLTAGE     127
2108
-    #define X2_CHAIN_POS         0
2108
+    #define X2_CHAIN_POS        -1
2109
   #endif
2109
   #endif
2110
 
2110
 
2111
   #if AXIS_DRIVER_TYPE_Y(L6470)
2111
   #if AXIS_DRIVER_TYPE_Y(L6470)
2113
     #define Y_OVERCURRENT     2000
2113
     #define Y_OVERCURRENT     2000
2114
     #define Y_STALLCURRENT    1500
2114
     #define Y_STALLCURRENT    1500
2115
     #define Y_MAX_VOLTAGE      127
2115
     #define Y_MAX_VOLTAGE      127
2116
-    #define Y_CHAIN_POS          0
2116
+    #define Y_CHAIN_POS         -1
2117
   #endif
2117
   #endif
2118
 
2118
 
2119
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2119
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2121
     #define Y2_OVERCURRENT    2000
2121
     #define Y2_OVERCURRENT    2000
2122
     #define Y2_STALLCURRENT   1500
2122
     #define Y2_STALLCURRENT   1500
2123
     #define Y2_MAX_VOLTAGE     127
2123
     #define Y2_MAX_VOLTAGE     127
2124
-    #define Y2_CHAIN_POS         0
2124
+    #define Y2_CHAIN_POS        -1
2125
   #endif
2125
   #endif
2126
 
2126
 
2127
   #if AXIS_DRIVER_TYPE_Z(L6470)
2127
   #if AXIS_DRIVER_TYPE_Z(L6470)
2129
     #define Z_OVERCURRENT     2000
2129
     #define Z_OVERCURRENT     2000
2130
     #define Z_STALLCURRENT    1500
2130
     #define Z_STALLCURRENT    1500
2131
     #define Z_MAX_VOLTAGE      127
2131
     #define Z_MAX_VOLTAGE      127
2132
-    #define Z_CHAIN_POS          0
2132
+    #define Z_CHAIN_POS         -1
2133
   #endif
2133
   #endif
2134
 
2134
 
2135
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2135
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2137
     #define Z2_OVERCURRENT    2000
2137
     #define Z2_OVERCURRENT    2000
2138
     #define Z2_STALLCURRENT   1500
2138
     #define Z2_STALLCURRENT   1500
2139
     #define Z2_MAX_VOLTAGE     127
2139
     #define Z2_MAX_VOLTAGE     127
2140
-    #define Z2_CHAIN_POS         0
2140
+    #define Z2_CHAIN_POS        -1
2141
   #endif
2141
   #endif
2142
 
2142
 
2143
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2143
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2145
     #define Z3_OVERCURRENT    2000
2145
     #define Z3_OVERCURRENT    2000
2146
     #define Z3_STALLCURRENT   1500
2146
     #define Z3_STALLCURRENT   1500
2147
     #define Z3_MAX_VOLTAGE     127
2147
     #define Z3_MAX_VOLTAGE     127
2148
-    #define Z3_CHAIN_POS         0
2148
+    #define Z3_CHAIN_POS        -1
2149
   #endif
2149
   #endif
2150
 
2150
 
2151
   #if AXIS_DRIVER_TYPE_E0(L6470)
2151
   #if AXIS_DRIVER_TYPE_E0(L6470)
2153
     #define E0_OVERCURRENT    2000
2153
     #define E0_OVERCURRENT    2000
2154
     #define E0_STALLCURRENT   1500
2154
     #define E0_STALLCURRENT   1500
2155
     #define E0_MAX_VOLTAGE     127
2155
     #define E0_MAX_VOLTAGE     127
2156
-    #define E0_CHAIN_POS         0
2156
+    #define E0_CHAIN_POS        -1
2157
   #endif
2157
   #endif
2158
 
2158
 
2159
   #if AXIS_DRIVER_TYPE_E1(L6470)
2159
   #if AXIS_DRIVER_TYPE_E1(L6470)
2161
     #define E1_OVERCURRENT    2000
2161
     #define E1_OVERCURRENT    2000
2162
     #define E1_STALLCURRENT   1500
2162
     #define E1_STALLCURRENT   1500
2163
     #define E1_MAX_VOLTAGE     127
2163
     #define E1_MAX_VOLTAGE     127
2164
-    #define E1_CHAIN_POS         0
2164
+    #define E1_CHAIN_POS        -1
2165
   #endif
2165
   #endif
2166
 
2166
 
2167
   #if AXIS_DRIVER_TYPE_E2(L6470)
2167
   #if AXIS_DRIVER_TYPE_E2(L6470)
2169
     #define E2_OVERCURRENT    2000
2169
     #define E2_OVERCURRENT    2000
2170
     #define E2_STALLCURRENT   1500
2170
     #define E2_STALLCURRENT   1500
2171
     #define E2_MAX_VOLTAGE     127
2171
     #define E2_MAX_VOLTAGE     127
2172
-    #define E2_CHAIN_POS         0
2172
+    #define E2_CHAIN_POS        -1
2173
   #endif
2173
   #endif
2174
 
2174
 
2175
   #if AXIS_DRIVER_TYPE_E3(L6470)
2175
   #if AXIS_DRIVER_TYPE_E3(L6470)
2177
     #define E3_OVERCURRENT    2000
2177
     #define E3_OVERCURRENT    2000
2178
     #define E3_STALLCURRENT   1500
2178
     #define E3_STALLCURRENT   1500
2179
     #define E3_MAX_VOLTAGE     127
2179
     #define E3_MAX_VOLTAGE     127
2180
-    #define E3_CHAIN_POS         0
2180
+    #define E3_CHAIN_POS        -1
2181
   #endif
2181
   #endif
2182
 
2182
 
2183
   #if AXIS_DRIVER_TYPE_E4(L6470)
2183
   #if AXIS_DRIVER_TYPE_E4(L6470)
2185
     #define E4_OVERCURRENT    2000
2185
     #define E4_OVERCURRENT    2000
2186
     #define E4_STALLCURRENT   1500
2186
     #define E4_STALLCURRENT   1500
2187
     #define E4_MAX_VOLTAGE     127
2187
     #define E4_MAX_VOLTAGE     127
2188
-    #define E4_CHAIN_POS         0
2188
+    #define E4_CHAIN_POS        -1
2189
   #endif
2189
   #endif
2190
 
2190
 
2191
   #if AXIS_DRIVER_TYPE_E5(L6470)
2191
   #if AXIS_DRIVER_TYPE_E5(L6470)
2193
     #define E5_OVERCURRENT    2000
2193
     #define E5_OVERCURRENT    2000
2194
     #define E5_STALLCURRENT   1500
2194
     #define E5_STALLCURRENT   1500
2195
     #define E5_MAX_VOLTAGE     127
2195
     #define E5_MAX_VOLTAGE     127
2196
-    #define E5_CHAIN_POS         0
2196
+    #define E5_CHAIN_POS        -1
2197
   #endif
2197
   #endif
2198
 
2198
 
2199
   /**
2199
   /**

+ 26
- 26
config/examples/delta/Dreammaker/Overlord_Pro/Configuration_adv.h View File

1799
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1799
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1800
     #define X_MICROSTEPS   16  // 0..256
1800
     #define X_MICROSTEPS   16  // 0..256
1801
     #define X_RSENSE     0.11
1801
     #define X_RSENSE     0.11
1802
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1802
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1803
   #endif
1803
   #endif
1804
 
1804
 
1805
   #if AXIS_IS_TMC(X2)
1805
   #if AXIS_IS_TMC(X2)
1806
     #define X2_CURRENT    800
1806
     #define X2_CURRENT    800
1807
     #define X2_MICROSTEPS  16
1807
     #define X2_MICROSTEPS  16
1808
     #define X2_RSENSE    0.11
1808
     #define X2_RSENSE    0.11
1809
-    #define X2_CHAIN_POS    0
1809
+    #define X2_CHAIN_POS   -1
1810
   #endif
1810
   #endif
1811
 
1811
 
1812
   #if AXIS_IS_TMC(Y)
1812
   #if AXIS_IS_TMC(Y)
1813
     #define Y_CURRENT     800
1813
     #define Y_CURRENT     800
1814
     #define Y_MICROSTEPS   16
1814
     #define Y_MICROSTEPS   16
1815
     #define Y_RSENSE     0.11
1815
     #define Y_RSENSE     0.11
1816
-    #define Y_CHAIN_POS     0
1816
+    #define Y_CHAIN_POS    -1
1817
   #endif
1817
   #endif
1818
 
1818
 
1819
   #if AXIS_IS_TMC(Y2)
1819
   #if AXIS_IS_TMC(Y2)
1820
     #define Y2_CURRENT    800
1820
     #define Y2_CURRENT    800
1821
     #define Y2_MICROSTEPS  16
1821
     #define Y2_MICROSTEPS  16
1822
     #define Y2_RSENSE    0.11
1822
     #define Y2_RSENSE    0.11
1823
-    #define Y2_CHAIN_POS    0
1823
+    #define Y2_CHAIN_POS   -1
1824
   #endif
1824
   #endif
1825
 
1825
 
1826
   #if AXIS_IS_TMC(Z)
1826
   #if AXIS_IS_TMC(Z)
1827
     #define Z_CURRENT     800
1827
     #define Z_CURRENT     800
1828
     #define Z_MICROSTEPS   16
1828
     #define Z_MICROSTEPS   16
1829
     #define Z_RSENSE     0.11
1829
     #define Z_RSENSE     0.11
1830
-    #define Z_CHAIN_POS     0
1830
+    #define Z_CHAIN_POS    -1
1831
   #endif
1831
   #endif
1832
 
1832
 
1833
   #if AXIS_IS_TMC(Z2)
1833
   #if AXIS_IS_TMC(Z2)
1834
     #define Z2_CURRENT    800
1834
     #define Z2_CURRENT    800
1835
     #define Z2_MICROSTEPS  16
1835
     #define Z2_MICROSTEPS  16
1836
     #define Z2_RSENSE    0.11
1836
     #define Z2_RSENSE    0.11
1837
-    #define Z2_CHAIN_POS    0
1837
+    #define Z2_CHAIN_POS   -1
1838
   #endif
1838
   #endif
1839
 
1839
 
1840
   #if AXIS_IS_TMC(Z3)
1840
   #if AXIS_IS_TMC(Z3)
1841
     #define Z3_CURRENT    800
1841
     #define Z3_CURRENT    800
1842
     #define Z3_MICROSTEPS  16
1842
     #define Z3_MICROSTEPS  16
1843
     #define Z3_RSENSE    0.11
1843
     #define Z3_RSENSE    0.11
1844
-    #define Z3_CHAIN_POS    0
1844
+    #define Z3_CHAIN_POS   -1
1845
   #endif
1845
   #endif
1846
 
1846
 
1847
   #if AXIS_IS_TMC(E0)
1847
   #if AXIS_IS_TMC(E0)
1848
     #define E0_CURRENT    800
1848
     #define E0_CURRENT    800
1849
     #define E0_MICROSTEPS  16
1849
     #define E0_MICROSTEPS  16
1850
     #define E0_RSENSE    0.11
1850
     #define E0_RSENSE    0.11
1851
-    #define E0_CHAIN_POS    0
1851
+    #define E0_CHAIN_POS   -1
1852
   #endif
1852
   #endif
1853
 
1853
 
1854
   #if AXIS_IS_TMC(E1)
1854
   #if AXIS_IS_TMC(E1)
1855
     #define E1_CURRENT    800
1855
     #define E1_CURRENT    800
1856
     #define E1_MICROSTEPS  16
1856
     #define E1_MICROSTEPS  16
1857
     #define E1_RSENSE    0.11
1857
     #define E1_RSENSE    0.11
1858
-    #define E1_CHAIN_POS    0
1858
+    #define E1_CHAIN_POS   -1
1859
   #endif
1859
   #endif
1860
 
1860
 
1861
   #if AXIS_IS_TMC(E2)
1861
   #if AXIS_IS_TMC(E2)
1862
     #define E2_CURRENT    800
1862
     #define E2_CURRENT    800
1863
     #define E2_MICROSTEPS  16
1863
     #define E2_MICROSTEPS  16
1864
     #define E2_RSENSE    0.11
1864
     #define E2_RSENSE    0.11
1865
-    #define E2_CHAIN_POS    0
1865
+    #define E2_CHAIN_POS   -1
1866
   #endif
1866
   #endif
1867
 
1867
 
1868
   #if AXIS_IS_TMC(E3)
1868
   #if AXIS_IS_TMC(E3)
1869
     #define E3_CURRENT    800
1869
     #define E3_CURRENT    800
1870
     #define E3_MICROSTEPS  16
1870
     #define E3_MICROSTEPS  16
1871
     #define E3_RSENSE    0.11
1871
     #define E3_RSENSE    0.11
1872
-    #define E3_CHAIN_POS    0
1872
+    #define E3_CHAIN_POS   -1
1873
   #endif
1873
   #endif
1874
 
1874
 
1875
   #if AXIS_IS_TMC(E4)
1875
   #if AXIS_IS_TMC(E4)
1876
     #define E4_CURRENT    800
1876
     #define E4_CURRENT    800
1877
     #define E4_MICROSTEPS  16
1877
     #define E4_MICROSTEPS  16
1878
     #define E4_RSENSE    0.11
1878
     #define E4_RSENSE    0.11
1879
-    #define E4_CHAIN_POS    0
1879
+    #define E4_CHAIN_POS   -1
1880
   #endif
1880
   #endif
1881
 
1881
 
1882
   #if AXIS_IS_TMC(E5)
1882
   #if AXIS_IS_TMC(E5)
1883
     #define E5_CURRENT    800
1883
     #define E5_CURRENT    800
1884
     #define E5_MICROSTEPS  16
1884
     #define E5_MICROSTEPS  16
1885
     #define E5_RSENSE    0.11
1885
     #define E5_RSENSE    0.11
1886
-    #define E5_CHAIN_POS    0
1886
+    #define E5_CHAIN_POS   -1
1887
   #endif
1887
   #endif
1888
 
1888
 
1889
   /**
1889
   /**
2097
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2097
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2098
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2098
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2099
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2099
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2100
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2100
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2101
   #endif
2101
   #endif
2102
 
2102
 
2103
   #if AXIS_DRIVER_TYPE_X2(L6470)
2103
   #if AXIS_DRIVER_TYPE_X2(L6470)
2105
     #define X2_OVERCURRENT    2000
2105
     #define X2_OVERCURRENT    2000
2106
     #define X2_STALLCURRENT   1500
2106
     #define X2_STALLCURRENT   1500
2107
     #define X2_MAX_VOLTAGE     127
2107
     #define X2_MAX_VOLTAGE     127
2108
-    #define X2_CHAIN_POS         0
2108
+    #define X2_CHAIN_POS        -1
2109
   #endif
2109
   #endif
2110
 
2110
 
2111
   #if AXIS_DRIVER_TYPE_Y(L6470)
2111
   #if AXIS_DRIVER_TYPE_Y(L6470)
2113
     #define Y_OVERCURRENT     2000
2113
     #define Y_OVERCURRENT     2000
2114
     #define Y_STALLCURRENT    1500
2114
     #define Y_STALLCURRENT    1500
2115
     #define Y_MAX_VOLTAGE      127
2115
     #define Y_MAX_VOLTAGE      127
2116
-    #define Y_CHAIN_POS          0
2116
+    #define Y_CHAIN_POS         -1
2117
   #endif
2117
   #endif
2118
 
2118
 
2119
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2119
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2121
     #define Y2_OVERCURRENT    2000
2121
     #define Y2_OVERCURRENT    2000
2122
     #define Y2_STALLCURRENT   1500
2122
     #define Y2_STALLCURRENT   1500
2123
     #define Y2_MAX_VOLTAGE     127
2123
     #define Y2_MAX_VOLTAGE     127
2124
-    #define Y2_CHAIN_POS         0
2124
+    #define Y2_CHAIN_POS        -1
2125
   #endif
2125
   #endif
2126
 
2126
 
2127
   #if AXIS_DRIVER_TYPE_Z(L6470)
2127
   #if AXIS_DRIVER_TYPE_Z(L6470)
2129
     #define Z_OVERCURRENT     2000
2129
     #define Z_OVERCURRENT     2000
2130
     #define Z_STALLCURRENT    1500
2130
     #define Z_STALLCURRENT    1500
2131
     #define Z_MAX_VOLTAGE      127
2131
     #define Z_MAX_VOLTAGE      127
2132
-    #define Z_CHAIN_POS          0
2132
+    #define Z_CHAIN_POS         -1
2133
   #endif
2133
   #endif
2134
 
2134
 
2135
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2135
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2137
     #define Z2_OVERCURRENT    2000
2137
     #define Z2_OVERCURRENT    2000
2138
     #define Z2_STALLCURRENT   1500
2138
     #define Z2_STALLCURRENT   1500
2139
     #define Z2_MAX_VOLTAGE     127
2139
     #define Z2_MAX_VOLTAGE     127
2140
-    #define Z2_CHAIN_POS         0
2140
+    #define Z2_CHAIN_POS        -1
2141
   #endif
2141
   #endif
2142
 
2142
 
2143
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2143
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2145
     #define Z3_OVERCURRENT    2000
2145
     #define Z3_OVERCURRENT    2000
2146
     #define Z3_STALLCURRENT   1500
2146
     #define Z3_STALLCURRENT   1500
2147
     #define Z3_MAX_VOLTAGE     127
2147
     #define Z3_MAX_VOLTAGE     127
2148
-    #define Z3_CHAIN_POS         0
2148
+    #define Z3_CHAIN_POS        -1
2149
   #endif
2149
   #endif
2150
 
2150
 
2151
   #if AXIS_DRIVER_TYPE_E0(L6470)
2151
   #if AXIS_DRIVER_TYPE_E0(L6470)
2153
     #define E0_OVERCURRENT    2000
2153
     #define E0_OVERCURRENT    2000
2154
     #define E0_STALLCURRENT   1500
2154
     #define E0_STALLCURRENT   1500
2155
     #define E0_MAX_VOLTAGE     127
2155
     #define E0_MAX_VOLTAGE     127
2156
-    #define E0_CHAIN_POS         0
2156
+    #define E0_CHAIN_POS        -1
2157
   #endif
2157
   #endif
2158
 
2158
 
2159
   #if AXIS_DRIVER_TYPE_E1(L6470)
2159
   #if AXIS_DRIVER_TYPE_E1(L6470)
2161
     #define E1_OVERCURRENT    2000
2161
     #define E1_OVERCURRENT    2000
2162
     #define E1_STALLCURRENT   1500
2162
     #define E1_STALLCURRENT   1500
2163
     #define E1_MAX_VOLTAGE     127
2163
     #define E1_MAX_VOLTAGE     127
2164
-    #define E1_CHAIN_POS         0
2164
+    #define E1_CHAIN_POS        -1
2165
   #endif
2165
   #endif
2166
 
2166
 
2167
   #if AXIS_DRIVER_TYPE_E2(L6470)
2167
   #if AXIS_DRIVER_TYPE_E2(L6470)
2169
     #define E2_OVERCURRENT    2000
2169
     #define E2_OVERCURRENT    2000
2170
     #define E2_STALLCURRENT   1500
2170
     #define E2_STALLCURRENT   1500
2171
     #define E2_MAX_VOLTAGE     127
2171
     #define E2_MAX_VOLTAGE     127
2172
-    #define E2_CHAIN_POS         0
2172
+    #define E2_CHAIN_POS        -1
2173
   #endif
2173
   #endif
2174
 
2174
 
2175
   #if AXIS_DRIVER_TYPE_E3(L6470)
2175
   #if AXIS_DRIVER_TYPE_E3(L6470)
2177
     #define E3_OVERCURRENT    2000
2177
     #define E3_OVERCURRENT    2000
2178
     #define E3_STALLCURRENT   1500
2178
     #define E3_STALLCURRENT   1500
2179
     #define E3_MAX_VOLTAGE     127
2179
     #define E3_MAX_VOLTAGE     127
2180
-    #define E3_CHAIN_POS         0
2180
+    #define E3_CHAIN_POS        -1
2181
   #endif
2181
   #endif
2182
 
2182
 
2183
   #if AXIS_DRIVER_TYPE_E4(L6470)
2183
   #if AXIS_DRIVER_TYPE_E4(L6470)
2185
     #define E4_OVERCURRENT    2000
2185
     #define E4_OVERCURRENT    2000
2186
     #define E4_STALLCURRENT   1500
2186
     #define E4_STALLCURRENT   1500
2187
     #define E4_MAX_VOLTAGE     127
2187
     #define E4_MAX_VOLTAGE     127
2188
-    #define E4_CHAIN_POS         0
2188
+    #define E4_CHAIN_POS        -1
2189
   #endif
2189
   #endif
2190
 
2190
 
2191
   #if AXIS_DRIVER_TYPE_E5(L6470)
2191
   #if AXIS_DRIVER_TYPE_E5(L6470)
2193
     #define E5_OVERCURRENT    2000
2193
     #define E5_OVERCURRENT    2000
2194
     #define E5_STALLCURRENT   1500
2194
     #define E5_STALLCURRENT   1500
2195
     #define E5_MAX_VOLTAGE     127
2195
     #define E5_MAX_VOLTAGE     127
2196
-    #define E5_CHAIN_POS         0
2196
+    #define E5_CHAIN_POS        -1
2197
   #endif
2197
   #endif
2198
 
2198
 
2199
   /**
2199
   /**

+ 26
- 26
config/examples/delta/FLSUN/auto_calibrate/Configuration_adv.h View File

1799
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1799
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1800
     #define X_MICROSTEPS   16  // 0..256
1800
     #define X_MICROSTEPS   16  // 0..256
1801
     #define X_RSENSE     0.11
1801
     #define X_RSENSE     0.11
1802
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1802
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1803
   #endif
1803
   #endif
1804
 
1804
 
1805
   #if AXIS_IS_TMC(X2)
1805
   #if AXIS_IS_TMC(X2)
1806
     #define X2_CURRENT    800
1806
     #define X2_CURRENT    800
1807
     #define X2_MICROSTEPS  16
1807
     #define X2_MICROSTEPS  16
1808
     #define X2_RSENSE    0.11
1808
     #define X2_RSENSE    0.11
1809
-    #define X2_CHAIN_POS    0
1809
+    #define X2_CHAIN_POS   -1
1810
   #endif
1810
   #endif
1811
 
1811
 
1812
   #if AXIS_IS_TMC(Y)
1812
   #if AXIS_IS_TMC(Y)
1813
     #define Y_CURRENT     800
1813
     #define Y_CURRENT     800
1814
     #define Y_MICROSTEPS   16
1814
     #define Y_MICROSTEPS   16
1815
     #define Y_RSENSE     0.11
1815
     #define Y_RSENSE     0.11
1816
-    #define Y_CHAIN_POS     0
1816
+    #define Y_CHAIN_POS    -1
1817
   #endif
1817
   #endif
1818
 
1818
 
1819
   #if AXIS_IS_TMC(Y2)
1819
   #if AXIS_IS_TMC(Y2)
1820
     #define Y2_CURRENT    800
1820
     #define Y2_CURRENT    800
1821
     #define Y2_MICROSTEPS  16
1821
     #define Y2_MICROSTEPS  16
1822
     #define Y2_RSENSE    0.11
1822
     #define Y2_RSENSE    0.11
1823
-    #define Y2_CHAIN_POS    0
1823
+    #define Y2_CHAIN_POS   -1
1824
   #endif
1824
   #endif
1825
 
1825
 
1826
   #if AXIS_IS_TMC(Z)
1826
   #if AXIS_IS_TMC(Z)
1827
     #define Z_CURRENT     800
1827
     #define Z_CURRENT     800
1828
     #define Z_MICROSTEPS   16
1828
     #define Z_MICROSTEPS   16
1829
     #define Z_RSENSE     0.11
1829
     #define Z_RSENSE     0.11
1830
-    #define Z_CHAIN_POS     0
1830
+    #define Z_CHAIN_POS    -1
1831
   #endif
1831
   #endif
1832
 
1832
 
1833
   #if AXIS_IS_TMC(Z2)
1833
   #if AXIS_IS_TMC(Z2)
1834
     #define Z2_CURRENT    800
1834
     #define Z2_CURRENT    800
1835
     #define Z2_MICROSTEPS  16
1835
     #define Z2_MICROSTEPS  16
1836
     #define Z2_RSENSE    0.11
1836
     #define Z2_RSENSE    0.11
1837
-    #define Z2_CHAIN_POS    0
1837
+    #define Z2_CHAIN_POS   -1
1838
   #endif
1838
   #endif
1839
 
1839
 
1840
   #if AXIS_IS_TMC(Z3)
1840
   #if AXIS_IS_TMC(Z3)
1841
     #define Z3_CURRENT    800
1841
     #define Z3_CURRENT    800
1842
     #define Z3_MICROSTEPS  16
1842
     #define Z3_MICROSTEPS  16
1843
     #define Z3_RSENSE    0.11
1843
     #define Z3_RSENSE    0.11
1844
-    #define Z3_CHAIN_POS    0
1844
+    #define Z3_CHAIN_POS   -1
1845
   #endif
1845
   #endif
1846
 
1846
 
1847
   #if AXIS_IS_TMC(E0)
1847
   #if AXIS_IS_TMC(E0)
1848
     #define E0_CURRENT    800
1848
     #define E0_CURRENT    800
1849
     #define E0_MICROSTEPS  16
1849
     #define E0_MICROSTEPS  16
1850
     #define E0_RSENSE    0.11
1850
     #define E0_RSENSE    0.11
1851
-    #define E0_CHAIN_POS    0
1851
+    #define E0_CHAIN_POS   -1
1852
   #endif
1852
   #endif
1853
 
1853
 
1854
   #if AXIS_IS_TMC(E1)
1854
   #if AXIS_IS_TMC(E1)
1855
     #define E1_CURRENT    800
1855
     #define E1_CURRENT    800
1856
     #define E1_MICROSTEPS  16
1856
     #define E1_MICROSTEPS  16
1857
     #define E1_RSENSE    0.11
1857
     #define E1_RSENSE    0.11
1858
-    #define E1_CHAIN_POS    0
1858
+    #define E1_CHAIN_POS   -1
1859
   #endif
1859
   #endif
1860
 
1860
 
1861
   #if AXIS_IS_TMC(E2)
1861
   #if AXIS_IS_TMC(E2)
1862
     #define E2_CURRENT    800
1862
     #define E2_CURRENT    800
1863
     #define E2_MICROSTEPS  16
1863
     #define E2_MICROSTEPS  16
1864
     #define E2_RSENSE    0.11
1864
     #define E2_RSENSE    0.11
1865
-    #define E2_CHAIN_POS    0
1865
+    #define E2_CHAIN_POS   -1
1866
   #endif
1866
   #endif
1867
 
1867
 
1868
   #if AXIS_IS_TMC(E3)
1868
   #if AXIS_IS_TMC(E3)
1869
     #define E3_CURRENT    800
1869
     #define E3_CURRENT    800
1870
     #define E3_MICROSTEPS  16
1870
     #define E3_MICROSTEPS  16
1871
     #define E3_RSENSE    0.11
1871
     #define E3_RSENSE    0.11
1872
-    #define E3_CHAIN_POS    0
1872
+    #define E3_CHAIN_POS   -1
1873
   #endif
1873
   #endif
1874
 
1874
 
1875
   #if AXIS_IS_TMC(E4)
1875
   #if AXIS_IS_TMC(E4)
1876
     #define E4_CURRENT    800
1876
     #define E4_CURRENT    800
1877
     #define E4_MICROSTEPS  16
1877
     #define E4_MICROSTEPS  16
1878
     #define E4_RSENSE    0.11
1878
     #define E4_RSENSE    0.11
1879
-    #define E4_CHAIN_POS    0
1879
+    #define E4_CHAIN_POS   -1
1880
   #endif
1880
   #endif
1881
 
1881
 
1882
   #if AXIS_IS_TMC(E5)
1882
   #if AXIS_IS_TMC(E5)
1883
     #define E5_CURRENT    800
1883
     #define E5_CURRENT    800
1884
     #define E5_MICROSTEPS  16
1884
     #define E5_MICROSTEPS  16
1885
     #define E5_RSENSE    0.11
1885
     #define E5_RSENSE    0.11
1886
-    #define E5_CHAIN_POS    0
1886
+    #define E5_CHAIN_POS   -1
1887
   #endif
1887
   #endif
1888
 
1888
 
1889
   /**
1889
   /**
2109
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2109
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2110
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2110
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2111
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2111
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2112
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2112
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2113
   #endif
2113
   #endif
2114
 
2114
 
2115
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
   #if AXIS_DRIVER_TYPE_X2(L6470)
2117
     #define X2_OVERCURRENT    2000
2117
     #define X2_OVERCURRENT    2000
2118
     #define X2_STALLCURRENT   1500
2118
     #define X2_STALLCURRENT   1500
2119
     #define X2_MAX_VOLTAGE     127
2119
     #define X2_MAX_VOLTAGE     127
2120
-    #define X2_CHAIN_POS         0
2120
+    #define X2_CHAIN_POS        -1
2121
   #endif
2121
   #endif
2122
 
2122
 
2123
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
   #if AXIS_DRIVER_TYPE_Y(L6470)
2125
     #define Y_OVERCURRENT     2000
2125
     #define Y_OVERCURRENT     2000
2126
     #define Y_STALLCURRENT    1500
2126
     #define Y_STALLCURRENT    1500
2127
     #define Y_MAX_VOLTAGE      127
2127
     #define Y_MAX_VOLTAGE      127
2128
-    #define Y_CHAIN_POS          0
2128
+    #define Y_CHAIN_POS         -1
2129
   #endif
2129
   #endif
2130
 
2130
 
2131
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2133
     #define Y2_OVERCURRENT    2000
2133
     #define Y2_OVERCURRENT    2000
2134
     #define Y2_STALLCURRENT   1500
2134
     #define Y2_STALLCURRENT   1500
2135
     #define Y2_MAX_VOLTAGE     127
2135
     #define Y2_MAX_VOLTAGE     127
2136
-    #define Y2_CHAIN_POS         0
2136
+    #define Y2_CHAIN_POS        -1
2137
   #endif
2137
   #endif
2138
 
2138
 
2139
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
   #if AXIS_DRIVER_TYPE_Z(L6470)
2141
     #define Z_OVERCURRENT     2000
2141
     #define Z_OVERCURRENT     2000
2142
     #define Z_STALLCURRENT    1500
2142
     #define Z_STALLCURRENT    1500
2143
     #define Z_MAX_VOLTAGE      127
2143
     #define Z_MAX_VOLTAGE      127
2144
-    #define Z_CHAIN_POS          0
2144
+    #define Z_CHAIN_POS         -1
2145
   #endif
2145
   #endif
2146
 
2146
 
2147
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2149
     #define Z2_OVERCURRENT    2000
2149
     #define Z2_OVERCURRENT    2000
2150
     #define Z2_STALLCURRENT   1500
2150
     #define Z2_STALLCURRENT   1500
2151
     #define Z2_MAX_VOLTAGE     127
2151
     #define Z2_MAX_VOLTAGE     127
2152
-    #define Z2_CHAIN_POS         0
2152
+    #define Z2_CHAIN_POS        -1
2153
   #endif
2153
   #endif
2154
 
2154
 
2155
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2157
     #define Z3_OVERCURRENT    2000
2157
     #define Z3_OVERCURRENT    2000
2158
     #define Z3_STALLCURRENT   1500
2158
     #define Z3_STALLCURRENT   1500
2159
     #define Z3_MAX_VOLTAGE     127
2159
     #define Z3_MAX_VOLTAGE     127
2160
-    #define Z3_CHAIN_POS         0
2160
+    #define Z3_CHAIN_POS        -1
2161
   #endif
2161
   #endif
2162
 
2162
 
2163
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
   #if AXIS_DRIVER_TYPE_E0(L6470)
2165
     #define E0_OVERCURRENT    2000
2165
     #define E0_OVERCURRENT    2000
2166
     #define E0_STALLCURRENT   1500
2166
     #define E0_STALLCURRENT   1500
2167
     #define E0_MAX_VOLTAGE     127
2167
     #define E0_MAX_VOLTAGE     127
2168
-    #define E0_CHAIN_POS         0
2168
+    #define E0_CHAIN_POS        -1
2169
   #endif
2169
   #endif
2170
 
2170
 
2171
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
   #if AXIS_DRIVER_TYPE_E1(L6470)
2173
     #define E1_OVERCURRENT    2000
2173
     #define E1_OVERCURRENT    2000
2174
     #define E1_STALLCURRENT   1500
2174
     #define E1_STALLCURRENT   1500
2175
     #define E1_MAX_VOLTAGE     127
2175
     #define E1_MAX_VOLTAGE     127
2176
-    #define E1_CHAIN_POS         0
2176
+    #define E1_CHAIN_POS        -1
2177
   #endif
2177
   #endif
2178
 
2178
 
2179
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
   #if AXIS_DRIVER_TYPE_E2(L6470)
2181
     #define E2_OVERCURRENT    2000
2181
     #define E2_OVERCURRENT    2000
2182
     #define E2_STALLCURRENT   1500
2182
     #define E2_STALLCURRENT   1500
2183
     #define E2_MAX_VOLTAGE     127
2183
     #define E2_MAX_VOLTAGE     127
2184
-    #define E2_CHAIN_POS         0
2184
+    #define E2_CHAIN_POS        -1
2185
   #endif
2185
   #endif
2186
 
2186
 
2187
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
   #if AXIS_DRIVER_TYPE_E3(L6470)
2189
     #define E3_OVERCURRENT    2000
2189
     #define E3_OVERCURRENT    2000
2190
     #define E3_STALLCURRENT   1500
2190
     #define E3_STALLCURRENT   1500
2191
     #define E3_MAX_VOLTAGE     127
2191
     #define E3_MAX_VOLTAGE     127
2192
-    #define E3_CHAIN_POS         0
2192
+    #define E3_CHAIN_POS        -1
2193
   #endif
2193
   #endif
2194
 
2194
 
2195
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
   #if AXIS_DRIVER_TYPE_E4(L6470)
2197
     #define E4_OVERCURRENT    2000
2197
     #define E4_OVERCURRENT    2000
2198
     #define E4_STALLCURRENT   1500
2198
     #define E4_STALLCURRENT   1500
2199
     #define E4_MAX_VOLTAGE     127
2199
     #define E4_MAX_VOLTAGE     127
2200
-    #define E4_CHAIN_POS         0
2200
+    #define E4_CHAIN_POS        -1
2201
   #endif
2201
   #endif
2202
 
2202
 
2203
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
   #if AXIS_DRIVER_TYPE_E5(L6470)
2205
     #define E5_OVERCURRENT    2000
2205
     #define E5_OVERCURRENT    2000
2206
     #define E5_STALLCURRENT   1500
2206
     #define E5_STALLCURRENT   1500
2207
     #define E5_MAX_VOLTAGE     127
2207
     #define E5_MAX_VOLTAGE     127
2208
-    #define E5_CHAIN_POS         0
2208
+    #define E5_CHAIN_POS        -1
2209
   #endif
2209
   #endif
2210
 
2210
 
2211
   /**
2211
   /**

+ 26
- 26
config/examples/delta/FLSUN/kossel/Configuration_adv.h View File

1799
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1799
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1800
     #define X_MICROSTEPS   16  // 0..256
1800
     #define X_MICROSTEPS   16  // 0..256
1801
     #define X_RSENSE     0.11
1801
     #define X_RSENSE     0.11
1802
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1802
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1803
   #endif
1803
   #endif
1804
 
1804
 
1805
   #if AXIS_IS_TMC(X2)
1805
   #if AXIS_IS_TMC(X2)
1806
     #define X2_CURRENT    800
1806
     #define X2_CURRENT    800
1807
     #define X2_MICROSTEPS  16
1807
     #define X2_MICROSTEPS  16
1808
     #define X2_RSENSE    0.11
1808
     #define X2_RSENSE    0.11
1809
-    #define X2_CHAIN_POS    0
1809
+    #define X2_CHAIN_POS   -1
1810
   #endif
1810
   #endif
1811
 
1811
 
1812
   #if AXIS_IS_TMC(Y)
1812
   #if AXIS_IS_TMC(Y)
1813
     #define Y_CURRENT     800
1813
     #define Y_CURRENT     800
1814
     #define Y_MICROSTEPS   16
1814
     #define Y_MICROSTEPS   16
1815
     #define Y_RSENSE     0.11
1815
     #define Y_RSENSE     0.11
1816
-    #define Y_CHAIN_POS     0
1816
+    #define Y_CHAIN_POS    -1
1817
   #endif
1817
   #endif
1818
 
1818
 
1819
   #if AXIS_IS_TMC(Y2)
1819
   #if AXIS_IS_TMC(Y2)
1820
     #define Y2_CURRENT    800
1820
     #define Y2_CURRENT    800
1821
     #define Y2_MICROSTEPS  16
1821
     #define Y2_MICROSTEPS  16
1822
     #define Y2_RSENSE    0.11
1822
     #define Y2_RSENSE    0.11
1823
-    #define Y2_CHAIN_POS    0
1823
+    #define Y2_CHAIN_POS   -1
1824
   #endif
1824
   #endif
1825
 
1825
 
1826
   #if AXIS_IS_TMC(Z)
1826
   #if AXIS_IS_TMC(Z)
1827
     #define Z_CURRENT     800
1827
     #define Z_CURRENT     800
1828
     #define Z_MICROSTEPS   16
1828
     #define Z_MICROSTEPS   16
1829
     #define Z_RSENSE     0.11
1829
     #define Z_RSENSE     0.11
1830
-    #define Z_CHAIN_POS     0
1830
+    #define Z_CHAIN_POS    -1
1831
   #endif
1831
   #endif
1832
 
1832
 
1833
   #if AXIS_IS_TMC(Z2)
1833
   #if AXIS_IS_TMC(Z2)
1834
     #define Z2_CURRENT    800
1834
     #define Z2_CURRENT    800
1835
     #define Z2_MICROSTEPS  16
1835
     #define Z2_MICROSTEPS  16
1836
     #define Z2_RSENSE    0.11
1836
     #define Z2_RSENSE    0.11
1837
-    #define Z2_CHAIN_POS    0
1837
+    #define Z2_CHAIN_POS   -1
1838
   #endif
1838
   #endif
1839
 
1839
 
1840
   #if AXIS_IS_TMC(Z3)
1840
   #if AXIS_IS_TMC(Z3)
1841
     #define Z3_CURRENT    800
1841
     #define Z3_CURRENT    800
1842
     #define Z3_MICROSTEPS  16
1842
     #define Z3_MICROSTEPS  16
1843
     #define Z3_RSENSE    0.11
1843
     #define Z3_RSENSE    0.11
1844
-    #define Z3_CHAIN_POS    0
1844
+    #define Z3_CHAIN_POS   -1
1845
   #endif
1845
   #endif
1846
 
1846
 
1847
   #if AXIS_IS_TMC(E0)
1847
   #if AXIS_IS_TMC(E0)
1848
     #define E0_CURRENT    800
1848
     #define E0_CURRENT    800
1849
     #define E0_MICROSTEPS  16
1849
     #define E0_MICROSTEPS  16
1850
     #define E0_RSENSE    0.11
1850
     #define E0_RSENSE    0.11
1851
-    #define E0_CHAIN_POS    0
1851
+    #define E0_CHAIN_POS   -1
1852
   #endif
1852
   #endif
1853
 
1853
 
1854
   #if AXIS_IS_TMC(E1)
1854
   #if AXIS_IS_TMC(E1)
1855
     #define E1_CURRENT    800
1855
     #define E1_CURRENT    800
1856
     #define E1_MICROSTEPS  16
1856
     #define E1_MICROSTEPS  16
1857
     #define E1_RSENSE    0.11
1857
     #define E1_RSENSE    0.11
1858
-    #define E1_CHAIN_POS    0
1858
+    #define E1_CHAIN_POS   -1
1859
   #endif
1859
   #endif
1860
 
1860
 
1861
   #if AXIS_IS_TMC(E2)
1861
   #if AXIS_IS_TMC(E2)
1862
     #define E2_CURRENT    800
1862
     #define E2_CURRENT    800
1863
     #define E2_MICROSTEPS  16
1863
     #define E2_MICROSTEPS  16
1864
     #define E2_RSENSE    0.11
1864
     #define E2_RSENSE    0.11
1865
-    #define E2_CHAIN_POS    0
1865
+    #define E2_CHAIN_POS   -1
1866
   #endif
1866
   #endif
1867
 
1867
 
1868
   #if AXIS_IS_TMC(E3)
1868
   #if AXIS_IS_TMC(E3)
1869
     #define E3_CURRENT    800
1869
     #define E3_CURRENT    800
1870
     #define E3_MICROSTEPS  16
1870
     #define E3_MICROSTEPS  16
1871
     #define E3_RSENSE    0.11
1871
     #define E3_RSENSE    0.11
1872
-    #define E3_CHAIN_POS    0
1872
+    #define E3_CHAIN_POS   -1
1873
   #endif
1873
   #endif
1874
 
1874
 
1875
   #if AXIS_IS_TMC(E4)
1875
   #if AXIS_IS_TMC(E4)
1876
     #define E4_CURRENT    800
1876
     #define E4_CURRENT    800
1877
     #define E4_MICROSTEPS  16
1877
     #define E4_MICROSTEPS  16
1878
     #define E4_RSENSE    0.11
1878
     #define E4_RSENSE    0.11
1879
-    #define E4_CHAIN_POS    0
1879
+    #define E4_CHAIN_POS   -1
1880
   #endif
1880
   #endif
1881
 
1881
 
1882
   #if AXIS_IS_TMC(E5)
1882
   #if AXIS_IS_TMC(E5)
1883
     #define E5_CURRENT    800
1883
     #define E5_CURRENT    800
1884
     #define E5_MICROSTEPS  16
1884
     #define E5_MICROSTEPS  16
1885
     #define E5_RSENSE    0.11
1885
     #define E5_RSENSE    0.11
1886
-    #define E5_CHAIN_POS    0
1886
+    #define E5_CHAIN_POS   -1
1887
   #endif
1887
   #endif
1888
 
1888
 
1889
   /**
1889
   /**
2109
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2109
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2110
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2110
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2111
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2111
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2112
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2112
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2113
   #endif
2113
   #endif
2114
 
2114
 
2115
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
   #if AXIS_DRIVER_TYPE_X2(L6470)
2117
     #define X2_OVERCURRENT    2000
2117
     #define X2_OVERCURRENT    2000
2118
     #define X2_STALLCURRENT   1500
2118
     #define X2_STALLCURRENT   1500
2119
     #define X2_MAX_VOLTAGE     127
2119
     #define X2_MAX_VOLTAGE     127
2120
-    #define X2_CHAIN_POS         0
2120
+    #define X2_CHAIN_POS        -1
2121
   #endif
2121
   #endif
2122
 
2122
 
2123
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
   #if AXIS_DRIVER_TYPE_Y(L6470)
2125
     #define Y_OVERCURRENT     2000
2125
     #define Y_OVERCURRENT     2000
2126
     #define Y_STALLCURRENT    1500
2126
     #define Y_STALLCURRENT    1500
2127
     #define Y_MAX_VOLTAGE      127
2127
     #define Y_MAX_VOLTAGE      127
2128
-    #define Y_CHAIN_POS          0
2128
+    #define Y_CHAIN_POS         -1
2129
   #endif
2129
   #endif
2130
 
2130
 
2131
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2133
     #define Y2_OVERCURRENT    2000
2133
     #define Y2_OVERCURRENT    2000
2134
     #define Y2_STALLCURRENT   1500
2134
     #define Y2_STALLCURRENT   1500
2135
     #define Y2_MAX_VOLTAGE     127
2135
     #define Y2_MAX_VOLTAGE     127
2136
-    #define Y2_CHAIN_POS         0
2136
+    #define Y2_CHAIN_POS        -1
2137
   #endif
2137
   #endif
2138
 
2138
 
2139
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
   #if AXIS_DRIVER_TYPE_Z(L6470)
2141
     #define Z_OVERCURRENT     2000
2141
     #define Z_OVERCURRENT     2000
2142
     #define Z_STALLCURRENT    1500
2142
     #define Z_STALLCURRENT    1500
2143
     #define Z_MAX_VOLTAGE      127
2143
     #define Z_MAX_VOLTAGE      127
2144
-    #define Z_CHAIN_POS          0
2144
+    #define Z_CHAIN_POS         -1
2145
   #endif
2145
   #endif
2146
 
2146
 
2147
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2149
     #define Z2_OVERCURRENT    2000
2149
     #define Z2_OVERCURRENT    2000
2150
     #define Z2_STALLCURRENT   1500
2150
     #define Z2_STALLCURRENT   1500
2151
     #define Z2_MAX_VOLTAGE     127
2151
     #define Z2_MAX_VOLTAGE     127
2152
-    #define Z2_CHAIN_POS         0
2152
+    #define Z2_CHAIN_POS        -1
2153
   #endif
2153
   #endif
2154
 
2154
 
2155
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2157
     #define Z3_OVERCURRENT    2000
2157
     #define Z3_OVERCURRENT    2000
2158
     #define Z3_STALLCURRENT   1500
2158
     #define Z3_STALLCURRENT   1500
2159
     #define Z3_MAX_VOLTAGE     127
2159
     #define Z3_MAX_VOLTAGE     127
2160
-    #define Z3_CHAIN_POS         0
2160
+    #define Z3_CHAIN_POS        -1
2161
   #endif
2161
   #endif
2162
 
2162
 
2163
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
   #if AXIS_DRIVER_TYPE_E0(L6470)
2165
     #define E0_OVERCURRENT    2000
2165
     #define E0_OVERCURRENT    2000
2166
     #define E0_STALLCURRENT   1500
2166
     #define E0_STALLCURRENT   1500
2167
     #define E0_MAX_VOLTAGE     127
2167
     #define E0_MAX_VOLTAGE     127
2168
-    #define E0_CHAIN_POS         0
2168
+    #define E0_CHAIN_POS        -1
2169
   #endif
2169
   #endif
2170
 
2170
 
2171
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
   #if AXIS_DRIVER_TYPE_E1(L6470)
2173
     #define E1_OVERCURRENT    2000
2173
     #define E1_OVERCURRENT    2000
2174
     #define E1_STALLCURRENT   1500
2174
     #define E1_STALLCURRENT   1500
2175
     #define E1_MAX_VOLTAGE     127
2175
     #define E1_MAX_VOLTAGE     127
2176
-    #define E1_CHAIN_POS         0
2176
+    #define E1_CHAIN_POS        -1
2177
   #endif
2177
   #endif
2178
 
2178
 
2179
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
   #if AXIS_DRIVER_TYPE_E2(L6470)
2181
     #define E2_OVERCURRENT    2000
2181
     #define E2_OVERCURRENT    2000
2182
     #define E2_STALLCURRENT   1500
2182
     #define E2_STALLCURRENT   1500
2183
     #define E2_MAX_VOLTAGE     127
2183
     #define E2_MAX_VOLTAGE     127
2184
-    #define E2_CHAIN_POS         0
2184
+    #define E2_CHAIN_POS        -1
2185
   #endif
2185
   #endif
2186
 
2186
 
2187
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
   #if AXIS_DRIVER_TYPE_E3(L6470)
2189
     #define E3_OVERCURRENT    2000
2189
     #define E3_OVERCURRENT    2000
2190
     #define E3_STALLCURRENT   1500
2190
     #define E3_STALLCURRENT   1500
2191
     #define E3_MAX_VOLTAGE     127
2191
     #define E3_MAX_VOLTAGE     127
2192
-    #define E3_CHAIN_POS         0
2192
+    #define E3_CHAIN_POS        -1
2193
   #endif
2193
   #endif
2194
 
2194
 
2195
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
   #if AXIS_DRIVER_TYPE_E4(L6470)
2197
     #define E4_OVERCURRENT    2000
2197
     #define E4_OVERCURRENT    2000
2198
     #define E4_STALLCURRENT   1500
2198
     #define E4_STALLCURRENT   1500
2199
     #define E4_MAX_VOLTAGE     127
2199
     #define E4_MAX_VOLTAGE     127
2200
-    #define E4_CHAIN_POS         0
2200
+    #define E4_CHAIN_POS        -1
2201
   #endif
2201
   #endif
2202
 
2202
 
2203
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
   #if AXIS_DRIVER_TYPE_E5(L6470)
2205
     #define E5_OVERCURRENT    2000
2205
     #define E5_OVERCURRENT    2000
2206
     #define E5_STALLCURRENT   1500
2206
     #define E5_STALLCURRENT   1500
2207
     #define E5_MAX_VOLTAGE     127
2207
     #define E5_MAX_VOLTAGE     127
2208
-    #define E5_CHAIN_POS         0
2208
+    #define E5_CHAIN_POS        -1
2209
   #endif
2209
   #endif
2210
 
2210
 
2211
   /**
2211
   /**

+ 26
- 26
config/examples/delta/FLSUN/kossel_mini/Configuration_adv.h View File

1799
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1799
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1800
     #define X_MICROSTEPS   16  // 0..256
1800
     #define X_MICROSTEPS   16  // 0..256
1801
     #define X_RSENSE     0.11
1801
     #define X_RSENSE     0.11
1802
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1802
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1803
   #endif
1803
   #endif
1804
 
1804
 
1805
   #if AXIS_IS_TMC(X2)
1805
   #if AXIS_IS_TMC(X2)
1806
     #define X2_CURRENT    800
1806
     #define X2_CURRENT    800
1807
     #define X2_MICROSTEPS  16
1807
     #define X2_MICROSTEPS  16
1808
     #define X2_RSENSE    0.11
1808
     #define X2_RSENSE    0.11
1809
-    #define X2_CHAIN_POS    0
1809
+    #define X2_CHAIN_POS   -1
1810
   #endif
1810
   #endif
1811
 
1811
 
1812
   #if AXIS_IS_TMC(Y)
1812
   #if AXIS_IS_TMC(Y)
1813
     #define Y_CURRENT     800
1813
     #define Y_CURRENT     800
1814
     #define Y_MICROSTEPS   16
1814
     #define Y_MICROSTEPS   16
1815
     #define Y_RSENSE     0.11
1815
     #define Y_RSENSE     0.11
1816
-    #define Y_CHAIN_POS     0
1816
+    #define Y_CHAIN_POS    -1
1817
   #endif
1817
   #endif
1818
 
1818
 
1819
   #if AXIS_IS_TMC(Y2)
1819
   #if AXIS_IS_TMC(Y2)
1820
     #define Y2_CURRENT    800
1820
     #define Y2_CURRENT    800
1821
     #define Y2_MICROSTEPS  16
1821
     #define Y2_MICROSTEPS  16
1822
     #define Y2_RSENSE    0.11
1822
     #define Y2_RSENSE    0.11
1823
-    #define Y2_CHAIN_POS    0
1823
+    #define Y2_CHAIN_POS   -1
1824
   #endif
1824
   #endif
1825
 
1825
 
1826
   #if AXIS_IS_TMC(Z)
1826
   #if AXIS_IS_TMC(Z)
1827
     #define Z_CURRENT     800
1827
     #define Z_CURRENT     800
1828
     #define Z_MICROSTEPS   16
1828
     #define Z_MICROSTEPS   16
1829
     #define Z_RSENSE     0.11
1829
     #define Z_RSENSE     0.11
1830
-    #define Z_CHAIN_POS     0
1830
+    #define Z_CHAIN_POS    -1
1831
   #endif
1831
   #endif
1832
 
1832
 
1833
   #if AXIS_IS_TMC(Z2)
1833
   #if AXIS_IS_TMC(Z2)
1834
     #define Z2_CURRENT    800
1834
     #define Z2_CURRENT    800
1835
     #define Z2_MICROSTEPS  16
1835
     #define Z2_MICROSTEPS  16
1836
     #define Z2_RSENSE    0.11
1836
     #define Z2_RSENSE    0.11
1837
-    #define Z2_CHAIN_POS    0
1837
+    #define Z2_CHAIN_POS   -1
1838
   #endif
1838
   #endif
1839
 
1839
 
1840
   #if AXIS_IS_TMC(Z3)
1840
   #if AXIS_IS_TMC(Z3)
1841
     #define Z3_CURRENT    800
1841
     #define Z3_CURRENT    800
1842
     #define Z3_MICROSTEPS  16
1842
     #define Z3_MICROSTEPS  16
1843
     #define Z3_RSENSE    0.11
1843
     #define Z3_RSENSE    0.11
1844
-    #define Z3_CHAIN_POS    0
1844
+    #define Z3_CHAIN_POS   -1
1845
   #endif
1845
   #endif
1846
 
1846
 
1847
   #if AXIS_IS_TMC(E0)
1847
   #if AXIS_IS_TMC(E0)
1848
     #define E0_CURRENT    800
1848
     #define E0_CURRENT    800
1849
     #define E0_MICROSTEPS  16
1849
     #define E0_MICROSTEPS  16
1850
     #define E0_RSENSE    0.11
1850
     #define E0_RSENSE    0.11
1851
-    #define E0_CHAIN_POS    0
1851
+    #define E0_CHAIN_POS   -1
1852
   #endif
1852
   #endif
1853
 
1853
 
1854
   #if AXIS_IS_TMC(E1)
1854
   #if AXIS_IS_TMC(E1)
1855
     #define E1_CURRENT    800
1855
     #define E1_CURRENT    800
1856
     #define E1_MICROSTEPS  16
1856
     #define E1_MICROSTEPS  16
1857
     #define E1_RSENSE    0.11
1857
     #define E1_RSENSE    0.11
1858
-    #define E1_CHAIN_POS    0
1858
+    #define E1_CHAIN_POS   -1
1859
   #endif
1859
   #endif
1860
 
1860
 
1861
   #if AXIS_IS_TMC(E2)
1861
   #if AXIS_IS_TMC(E2)
1862
     #define E2_CURRENT    800
1862
     #define E2_CURRENT    800
1863
     #define E2_MICROSTEPS  16
1863
     #define E2_MICROSTEPS  16
1864
     #define E2_RSENSE    0.11
1864
     #define E2_RSENSE    0.11
1865
-    #define E2_CHAIN_POS    0
1865
+    #define E2_CHAIN_POS   -1
1866
   #endif
1866
   #endif
1867
 
1867
 
1868
   #if AXIS_IS_TMC(E3)
1868
   #if AXIS_IS_TMC(E3)
1869
     #define E3_CURRENT    800
1869
     #define E3_CURRENT    800
1870
     #define E3_MICROSTEPS  16
1870
     #define E3_MICROSTEPS  16
1871
     #define E3_RSENSE    0.11
1871
     #define E3_RSENSE    0.11
1872
-    #define E3_CHAIN_POS    0
1872
+    #define E3_CHAIN_POS   -1
1873
   #endif
1873
   #endif
1874
 
1874
 
1875
   #if AXIS_IS_TMC(E4)
1875
   #if AXIS_IS_TMC(E4)
1876
     #define E4_CURRENT    800
1876
     #define E4_CURRENT    800
1877
     #define E4_MICROSTEPS  16
1877
     #define E4_MICROSTEPS  16
1878
     #define E4_RSENSE    0.11
1878
     #define E4_RSENSE    0.11
1879
-    #define E4_CHAIN_POS    0
1879
+    #define E4_CHAIN_POS   -1
1880
   #endif
1880
   #endif
1881
 
1881
 
1882
   #if AXIS_IS_TMC(E5)
1882
   #if AXIS_IS_TMC(E5)
1883
     #define E5_CURRENT    800
1883
     #define E5_CURRENT    800
1884
     #define E5_MICROSTEPS  16
1884
     #define E5_MICROSTEPS  16
1885
     #define E5_RSENSE    0.11
1885
     #define E5_RSENSE    0.11
1886
-    #define E5_CHAIN_POS    0
1886
+    #define E5_CHAIN_POS   -1
1887
   #endif
1887
   #endif
1888
 
1888
 
1889
   /**
1889
   /**
2109
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2109
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2110
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2110
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2111
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2111
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2112
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2112
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2113
   #endif
2113
   #endif
2114
 
2114
 
2115
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
   #if AXIS_DRIVER_TYPE_X2(L6470)
2117
     #define X2_OVERCURRENT    2000
2117
     #define X2_OVERCURRENT    2000
2118
     #define X2_STALLCURRENT   1500
2118
     #define X2_STALLCURRENT   1500
2119
     #define X2_MAX_VOLTAGE     127
2119
     #define X2_MAX_VOLTAGE     127
2120
-    #define X2_CHAIN_POS         0
2120
+    #define X2_CHAIN_POS        -1
2121
   #endif
2121
   #endif
2122
 
2122
 
2123
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
   #if AXIS_DRIVER_TYPE_Y(L6470)
2125
     #define Y_OVERCURRENT     2000
2125
     #define Y_OVERCURRENT     2000
2126
     #define Y_STALLCURRENT    1500
2126
     #define Y_STALLCURRENT    1500
2127
     #define Y_MAX_VOLTAGE      127
2127
     #define Y_MAX_VOLTAGE      127
2128
-    #define Y_CHAIN_POS          0
2128
+    #define Y_CHAIN_POS         -1
2129
   #endif
2129
   #endif
2130
 
2130
 
2131
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2133
     #define Y2_OVERCURRENT    2000
2133
     #define Y2_OVERCURRENT    2000
2134
     #define Y2_STALLCURRENT   1500
2134
     #define Y2_STALLCURRENT   1500
2135
     #define Y2_MAX_VOLTAGE     127
2135
     #define Y2_MAX_VOLTAGE     127
2136
-    #define Y2_CHAIN_POS         0
2136
+    #define Y2_CHAIN_POS        -1
2137
   #endif
2137
   #endif
2138
 
2138
 
2139
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
   #if AXIS_DRIVER_TYPE_Z(L6470)
2141
     #define Z_OVERCURRENT     2000
2141
     #define Z_OVERCURRENT     2000
2142
     #define Z_STALLCURRENT    1500
2142
     #define Z_STALLCURRENT    1500
2143
     #define Z_MAX_VOLTAGE      127
2143
     #define Z_MAX_VOLTAGE      127
2144
-    #define Z_CHAIN_POS          0
2144
+    #define Z_CHAIN_POS         -1
2145
   #endif
2145
   #endif
2146
 
2146
 
2147
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2149
     #define Z2_OVERCURRENT    2000
2149
     #define Z2_OVERCURRENT    2000
2150
     #define Z2_STALLCURRENT   1500
2150
     #define Z2_STALLCURRENT   1500
2151
     #define Z2_MAX_VOLTAGE     127
2151
     #define Z2_MAX_VOLTAGE     127
2152
-    #define Z2_CHAIN_POS         0
2152
+    #define Z2_CHAIN_POS        -1
2153
   #endif
2153
   #endif
2154
 
2154
 
2155
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2157
     #define Z3_OVERCURRENT    2000
2157
     #define Z3_OVERCURRENT    2000
2158
     #define Z3_STALLCURRENT   1500
2158
     #define Z3_STALLCURRENT   1500
2159
     #define Z3_MAX_VOLTAGE     127
2159
     #define Z3_MAX_VOLTAGE     127
2160
-    #define Z3_CHAIN_POS         0
2160
+    #define Z3_CHAIN_POS        -1
2161
   #endif
2161
   #endif
2162
 
2162
 
2163
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
   #if AXIS_DRIVER_TYPE_E0(L6470)
2165
     #define E0_OVERCURRENT    2000
2165
     #define E0_OVERCURRENT    2000
2166
     #define E0_STALLCURRENT   1500
2166
     #define E0_STALLCURRENT   1500
2167
     #define E0_MAX_VOLTAGE     127
2167
     #define E0_MAX_VOLTAGE     127
2168
-    #define E0_CHAIN_POS         0
2168
+    #define E0_CHAIN_POS        -1
2169
   #endif
2169
   #endif
2170
 
2170
 
2171
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
   #if AXIS_DRIVER_TYPE_E1(L6470)
2173
     #define E1_OVERCURRENT    2000
2173
     #define E1_OVERCURRENT    2000
2174
     #define E1_STALLCURRENT   1500
2174
     #define E1_STALLCURRENT   1500
2175
     #define E1_MAX_VOLTAGE     127
2175
     #define E1_MAX_VOLTAGE     127
2176
-    #define E1_CHAIN_POS         0
2176
+    #define E1_CHAIN_POS        -1
2177
   #endif
2177
   #endif
2178
 
2178
 
2179
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
   #if AXIS_DRIVER_TYPE_E2(L6470)
2181
     #define E2_OVERCURRENT    2000
2181
     #define E2_OVERCURRENT    2000
2182
     #define E2_STALLCURRENT   1500
2182
     #define E2_STALLCURRENT   1500
2183
     #define E2_MAX_VOLTAGE     127
2183
     #define E2_MAX_VOLTAGE     127
2184
-    #define E2_CHAIN_POS         0
2184
+    #define E2_CHAIN_POS        -1
2185
   #endif
2185
   #endif
2186
 
2186
 
2187
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
   #if AXIS_DRIVER_TYPE_E3(L6470)
2189
     #define E3_OVERCURRENT    2000
2189
     #define E3_OVERCURRENT    2000
2190
     #define E3_STALLCURRENT   1500
2190
     #define E3_STALLCURRENT   1500
2191
     #define E3_MAX_VOLTAGE     127
2191
     #define E3_MAX_VOLTAGE     127
2192
-    #define E3_CHAIN_POS         0
2192
+    #define E3_CHAIN_POS        -1
2193
   #endif
2193
   #endif
2194
 
2194
 
2195
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
   #if AXIS_DRIVER_TYPE_E4(L6470)
2197
     #define E4_OVERCURRENT    2000
2197
     #define E4_OVERCURRENT    2000
2198
     #define E4_STALLCURRENT   1500
2198
     #define E4_STALLCURRENT   1500
2199
     #define E4_MAX_VOLTAGE     127
2199
     #define E4_MAX_VOLTAGE     127
2200
-    #define E4_CHAIN_POS         0
2200
+    #define E4_CHAIN_POS        -1
2201
   #endif
2201
   #endif
2202
 
2202
 
2203
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
   #if AXIS_DRIVER_TYPE_E5(L6470)
2205
     #define E5_OVERCURRENT    2000
2205
     #define E5_OVERCURRENT    2000
2206
     #define E5_STALLCURRENT   1500
2206
     #define E5_STALLCURRENT   1500
2207
     #define E5_MAX_VOLTAGE     127
2207
     #define E5_MAX_VOLTAGE     127
2208
-    #define E5_CHAIN_POS         0
2208
+    #define E5_CHAIN_POS        -1
2209
   #endif
2209
   #endif
2210
 
2210
 
2211
   /**
2211
   /**

+ 26
- 26
config/examples/delta/Geeetech/Rostock 301/Configuration_adv.h View File

1799
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1799
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1800
     #define X_MICROSTEPS   16  // 0..256
1800
     #define X_MICROSTEPS   16  // 0..256
1801
     #define X_RSENSE     0.11
1801
     #define X_RSENSE     0.11
1802
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1802
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1803
   #endif
1803
   #endif
1804
 
1804
 
1805
   #if AXIS_IS_TMC(X2)
1805
   #if AXIS_IS_TMC(X2)
1806
     #define X2_CURRENT    800
1806
     #define X2_CURRENT    800
1807
     #define X2_MICROSTEPS  16
1807
     #define X2_MICROSTEPS  16
1808
     #define X2_RSENSE    0.11
1808
     #define X2_RSENSE    0.11
1809
-    #define X2_CHAIN_POS    0
1809
+    #define X2_CHAIN_POS   -1
1810
   #endif
1810
   #endif
1811
 
1811
 
1812
   #if AXIS_IS_TMC(Y)
1812
   #if AXIS_IS_TMC(Y)
1813
     #define Y_CURRENT     800
1813
     #define Y_CURRENT     800
1814
     #define Y_MICROSTEPS   16
1814
     #define Y_MICROSTEPS   16
1815
     #define Y_RSENSE     0.11
1815
     #define Y_RSENSE     0.11
1816
-    #define Y_CHAIN_POS     0
1816
+    #define Y_CHAIN_POS    -1
1817
   #endif
1817
   #endif
1818
 
1818
 
1819
   #if AXIS_IS_TMC(Y2)
1819
   #if AXIS_IS_TMC(Y2)
1820
     #define Y2_CURRENT    800
1820
     #define Y2_CURRENT    800
1821
     #define Y2_MICROSTEPS  16
1821
     #define Y2_MICROSTEPS  16
1822
     #define Y2_RSENSE    0.11
1822
     #define Y2_RSENSE    0.11
1823
-    #define Y2_CHAIN_POS    0
1823
+    #define Y2_CHAIN_POS   -1
1824
   #endif
1824
   #endif
1825
 
1825
 
1826
   #if AXIS_IS_TMC(Z)
1826
   #if AXIS_IS_TMC(Z)
1827
     #define Z_CURRENT     800
1827
     #define Z_CURRENT     800
1828
     #define Z_MICROSTEPS   16
1828
     #define Z_MICROSTEPS   16
1829
     #define Z_RSENSE     0.11
1829
     #define Z_RSENSE     0.11
1830
-    #define Z_CHAIN_POS     0
1830
+    #define Z_CHAIN_POS    -1
1831
   #endif
1831
   #endif
1832
 
1832
 
1833
   #if AXIS_IS_TMC(Z2)
1833
   #if AXIS_IS_TMC(Z2)
1834
     #define Z2_CURRENT    800
1834
     #define Z2_CURRENT    800
1835
     #define Z2_MICROSTEPS  16
1835
     #define Z2_MICROSTEPS  16
1836
     #define Z2_RSENSE    0.11
1836
     #define Z2_RSENSE    0.11
1837
-    #define Z2_CHAIN_POS    0
1837
+    #define Z2_CHAIN_POS   -1
1838
   #endif
1838
   #endif
1839
 
1839
 
1840
   #if AXIS_IS_TMC(Z3)
1840
   #if AXIS_IS_TMC(Z3)
1841
     #define Z3_CURRENT    800
1841
     #define Z3_CURRENT    800
1842
     #define Z3_MICROSTEPS  16
1842
     #define Z3_MICROSTEPS  16
1843
     #define Z3_RSENSE    0.11
1843
     #define Z3_RSENSE    0.11
1844
-    #define Z3_CHAIN_POS    0
1844
+    #define Z3_CHAIN_POS   -1
1845
   #endif
1845
   #endif
1846
 
1846
 
1847
   #if AXIS_IS_TMC(E0)
1847
   #if AXIS_IS_TMC(E0)
1848
     #define E0_CURRENT    800
1848
     #define E0_CURRENT    800
1849
     #define E0_MICROSTEPS  16
1849
     #define E0_MICROSTEPS  16
1850
     #define E0_RSENSE    0.11
1850
     #define E0_RSENSE    0.11
1851
-    #define E0_CHAIN_POS    0
1851
+    #define E0_CHAIN_POS   -1
1852
   #endif
1852
   #endif
1853
 
1853
 
1854
   #if AXIS_IS_TMC(E1)
1854
   #if AXIS_IS_TMC(E1)
1855
     #define E1_CURRENT    800
1855
     #define E1_CURRENT    800
1856
     #define E1_MICROSTEPS  16
1856
     #define E1_MICROSTEPS  16
1857
     #define E1_RSENSE    0.11
1857
     #define E1_RSENSE    0.11
1858
-    #define E1_CHAIN_POS    0
1858
+    #define E1_CHAIN_POS   -1
1859
   #endif
1859
   #endif
1860
 
1860
 
1861
   #if AXIS_IS_TMC(E2)
1861
   #if AXIS_IS_TMC(E2)
1862
     #define E2_CURRENT    800
1862
     #define E2_CURRENT    800
1863
     #define E2_MICROSTEPS  16
1863
     #define E2_MICROSTEPS  16
1864
     #define E2_RSENSE    0.11
1864
     #define E2_RSENSE    0.11
1865
-    #define E2_CHAIN_POS    0
1865
+    #define E2_CHAIN_POS   -1
1866
   #endif
1866
   #endif
1867
 
1867
 
1868
   #if AXIS_IS_TMC(E3)
1868
   #if AXIS_IS_TMC(E3)
1869
     #define E3_CURRENT    800
1869
     #define E3_CURRENT    800
1870
     #define E3_MICROSTEPS  16
1870
     #define E3_MICROSTEPS  16
1871
     #define E3_RSENSE    0.11
1871
     #define E3_RSENSE    0.11
1872
-    #define E3_CHAIN_POS    0
1872
+    #define E3_CHAIN_POS   -1
1873
   #endif
1873
   #endif
1874
 
1874
 
1875
   #if AXIS_IS_TMC(E4)
1875
   #if AXIS_IS_TMC(E4)
1876
     #define E4_CURRENT    800
1876
     #define E4_CURRENT    800
1877
     #define E4_MICROSTEPS  16
1877
     #define E4_MICROSTEPS  16
1878
     #define E4_RSENSE    0.11
1878
     #define E4_RSENSE    0.11
1879
-    #define E4_CHAIN_POS    0
1879
+    #define E4_CHAIN_POS   -1
1880
   #endif
1880
   #endif
1881
 
1881
 
1882
   #if AXIS_IS_TMC(E5)
1882
   #if AXIS_IS_TMC(E5)
1883
     #define E5_CURRENT    800
1883
     #define E5_CURRENT    800
1884
     #define E5_MICROSTEPS  16
1884
     #define E5_MICROSTEPS  16
1885
     #define E5_RSENSE    0.11
1885
     #define E5_RSENSE    0.11
1886
-    #define E5_CHAIN_POS    0
1886
+    #define E5_CHAIN_POS   -1
1887
   #endif
1887
   #endif
1888
 
1888
 
1889
   /**
1889
   /**
2109
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2109
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2110
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2110
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2111
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2111
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2112
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2112
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2113
   #endif
2113
   #endif
2114
 
2114
 
2115
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
   #if AXIS_DRIVER_TYPE_X2(L6470)
2117
     #define X2_OVERCURRENT    2000
2117
     #define X2_OVERCURRENT    2000
2118
     #define X2_STALLCURRENT   1500
2118
     #define X2_STALLCURRENT   1500
2119
     #define X2_MAX_VOLTAGE     127
2119
     #define X2_MAX_VOLTAGE     127
2120
-    #define X2_CHAIN_POS         0
2120
+    #define X2_CHAIN_POS        -1
2121
   #endif
2121
   #endif
2122
 
2122
 
2123
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
   #if AXIS_DRIVER_TYPE_Y(L6470)
2125
     #define Y_OVERCURRENT     2000
2125
     #define Y_OVERCURRENT     2000
2126
     #define Y_STALLCURRENT    1500
2126
     #define Y_STALLCURRENT    1500
2127
     #define Y_MAX_VOLTAGE      127
2127
     #define Y_MAX_VOLTAGE      127
2128
-    #define Y_CHAIN_POS          0
2128
+    #define Y_CHAIN_POS         -1
2129
   #endif
2129
   #endif
2130
 
2130
 
2131
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2133
     #define Y2_OVERCURRENT    2000
2133
     #define Y2_OVERCURRENT    2000
2134
     #define Y2_STALLCURRENT   1500
2134
     #define Y2_STALLCURRENT   1500
2135
     #define Y2_MAX_VOLTAGE     127
2135
     #define Y2_MAX_VOLTAGE     127
2136
-    #define Y2_CHAIN_POS         0
2136
+    #define Y2_CHAIN_POS        -1
2137
   #endif
2137
   #endif
2138
 
2138
 
2139
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
   #if AXIS_DRIVER_TYPE_Z(L6470)
2141
     #define Z_OVERCURRENT     2000
2141
     #define Z_OVERCURRENT     2000
2142
     #define Z_STALLCURRENT    1500
2142
     #define Z_STALLCURRENT    1500
2143
     #define Z_MAX_VOLTAGE      127
2143
     #define Z_MAX_VOLTAGE      127
2144
-    #define Z_CHAIN_POS          0
2144
+    #define Z_CHAIN_POS         -1
2145
   #endif
2145
   #endif
2146
 
2146
 
2147
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2149
     #define Z2_OVERCURRENT    2000
2149
     #define Z2_OVERCURRENT    2000
2150
     #define Z2_STALLCURRENT   1500
2150
     #define Z2_STALLCURRENT   1500
2151
     #define Z2_MAX_VOLTAGE     127
2151
     #define Z2_MAX_VOLTAGE     127
2152
-    #define Z2_CHAIN_POS         0
2152
+    #define Z2_CHAIN_POS        -1
2153
   #endif
2153
   #endif
2154
 
2154
 
2155
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2157
     #define Z3_OVERCURRENT    2000
2157
     #define Z3_OVERCURRENT    2000
2158
     #define Z3_STALLCURRENT   1500
2158
     #define Z3_STALLCURRENT   1500
2159
     #define Z3_MAX_VOLTAGE     127
2159
     #define Z3_MAX_VOLTAGE     127
2160
-    #define Z3_CHAIN_POS         0
2160
+    #define Z3_CHAIN_POS        -1
2161
   #endif
2161
   #endif
2162
 
2162
 
2163
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
   #if AXIS_DRIVER_TYPE_E0(L6470)
2165
     #define E0_OVERCURRENT    2000
2165
     #define E0_OVERCURRENT    2000
2166
     #define E0_STALLCURRENT   1500
2166
     #define E0_STALLCURRENT   1500
2167
     #define E0_MAX_VOLTAGE     127
2167
     #define E0_MAX_VOLTAGE     127
2168
-    #define E0_CHAIN_POS         0
2168
+    #define E0_CHAIN_POS        -1
2169
   #endif
2169
   #endif
2170
 
2170
 
2171
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
   #if AXIS_DRIVER_TYPE_E1(L6470)
2173
     #define E1_OVERCURRENT    2000
2173
     #define E1_OVERCURRENT    2000
2174
     #define E1_STALLCURRENT   1500
2174
     #define E1_STALLCURRENT   1500
2175
     #define E1_MAX_VOLTAGE     127
2175
     #define E1_MAX_VOLTAGE     127
2176
-    #define E1_CHAIN_POS         0
2176
+    #define E1_CHAIN_POS        -1
2177
   #endif
2177
   #endif
2178
 
2178
 
2179
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
   #if AXIS_DRIVER_TYPE_E2(L6470)
2181
     #define E2_OVERCURRENT    2000
2181
     #define E2_OVERCURRENT    2000
2182
     #define E2_STALLCURRENT   1500
2182
     #define E2_STALLCURRENT   1500
2183
     #define E2_MAX_VOLTAGE     127
2183
     #define E2_MAX_VOLTAGE     127
2184
-    #define E2_CHAIN_POS         0
2184
+    #define E2_CHAIN_POS        -1
2185
   #endif
2185
   #endif
2186
 
2186
 
2187
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
   #if AXIS_DRIVER_TYPE_E3(L6470)
2189
     #define E3_OVERCURRENT    2000
2189
     #define E3_OVERCURRENT    2000
2190
     #define E3_STALLCURRENT   1500
2190
     #define E3_STALLCURRENT   1500
2191
     #define E3_MAX_VOLTAGE     127
2191
     #define E3_MAX_VOLTAGE     127
2192
-    #define E3_CHAIN_POS         0
2192
+    #define E3_CHAIN_POS        -1
2193
   #endif
2193
   #endif
2194
 
2194
 
2195
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
   #if AXIS_DRIVER_TYPE_E4(L6470)
2197
     #define E4_OVERCURRENT    2000
2197
     #define E4_OVERCURRENT    2000
2198
     #define E4_STALLCURRENT   1500
2198
     #define E4_STALLCURRENT   1500
2199
     #define E4_MAX_VOLTAGE     127
2199
     #define E4_MAX_VOLTAGE     127
2200
-    #define E4_CHAIN_POS         0
2200
+    #define E4_CHAIN_POS        -1
2201
   #endif
2201
   #endif
2202
 
2202
 
2203
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
   #if AXIS_DRIVER_TYPE_E5(L6470)
2205
     #define E5_OVERCURRENT    2000
2205
     #define E5_OVERCURRENT    2000
2206
     #define E5_STALLCURRENT   1500
2206
     #define E5_STALLCURRENT   1500
2207
     #define E5_MAX_VOLTAGE     127
2207
     #define E5_MAX_VOLTAGE     127
2208
-    #define E5_CHAIN_POS         0
2208
+    #define E5_CHAIN_POS        -1
2209
   #endif
2209
   #endif
2210
 
2210
 
2211
   /**
2211
   /**

+ 26
- 26
config/examples/delta/MKS/SBASE/Configuration_adv.h View File

1799
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1799
     #define X_CURRENT     800  // (mA) RMS current. Multiply by 1.414 for peak current.
1800
     #define X_MICROSTEPS   16  // 0..256
1800
     #define X_MICROSTEPS   16  // 0..256
1801
     #define X_RSENSE     0.11
1801
     #define X_RSENSE     0.11
1802
-    #define X_CHAIN_POS     0  // 0 - Not chained, 1 - MCU MOSI connected, 2 - next in chain, ...
1802
+    #define X_CHAIN_POS    -1  // <=0 : Not chained. 1 : MCU MOSI connected. 2 : Next in chain, ...
1803
   #endif
1803
   #endif
1804
 
1804
 
1805
   #if AXIS_IS_TMC(X2)
1805
   #if AXIS_IS_TMC(X2)
1806
     #define X2_CURRENT    800
1806
     #define X2_CURRENT    800
1807
     #define X2_MICROSTEPS  16
1807
     #define X2_MICROSTEPS  16
1808
     #define X2_RSENSE    0.11
1808
     #define X2_RSENSE    0.11
1809
-    #define X2_CHAIN_POS    0
1809
+    #define X2_CHAIN_POS   -1
1810
   #endif
1810
   #endif
1811
 
1811
 
1812
   #if AXIS_IS_TMC(Y)
1812
   #if AXIS_IS_TMC(Y)
1813
     #define Y_CURRENT     800
1813
     #define Y_CURRENT     800
1814
     #define Y_MICROSTEPS   16
1814
     #define Y_MICROSTEPS   16
1815
     #define Y_RSENSE     0.11
1815
     #define Y_RSENSE     0.11
1816
-    #define Y_CHAIN_POS     0
1816
+    #define Y_CHAIN_POS    -1
1817
   #endif
1817
   #endif
1818
 
1818
 
1819
   #if AXIS_IS_TMC(Y2)
1819
   #if AXIS_IS_TMC(Y2)
1820
     #define Y2_CURRENT    800
1820
     #define Y2_CURRENT    800
1821
     #define Y2_MICROSTEPS  16
1821
     #define Y2_MICROSTEPS  16
1822
     #define Y2_RSENSE    0.11
1822
     #define Y2_RSENSE    0.11
1823
-    #define Y2_CHAIN_POS    0
1823
+    #define Y2_CHAIN_POS   -1
1824
   #endif
1824
   #endif
1825
 
1825
 
1826
   #if AXIS_IS_TMC(Z)
1826
   #if AXIS_IS_TMC(Z)
1827
     #define Z_CURRENT     800
1827
     #define Z_CURRENT     800
1828
     #define Z_MICROSTEPS   16
1828
     #define Z_MICROSTEPS   16
1829
     #define Z_RSENSE     0.11
1829
     #define Z_RSENSE     0.11
1830
-    #define Z_CHAIN_POS     0
1830
+    #define Z_CHAIN_POS    -1
1831
   #endif
1831
   #endif
1832
 
1832
 
1833
   #if AXIS_IS_TMC(Z2)
1833
   #if AXIS_IS_TMC(Z2)
1834
     #define Z2_CURRENT    800
1834
     #define Z2_CURRENT    800
1835
     #define Z2_MICROSTEPS  16
1835
     #define Z2_MICROSTEPS  16
1836
     #define Z2_RSENSE    0.11
1836
     #define Z2_RSENSE    0.11
1837
-    #define Z2_CHAIN_POS    0
1837
+    #define Z2_CHAIN_POS   -1
1838
   #endif
1838
   #endif
1839
 
1839
 
1840
   #if AXIS_IS_TMC(Z3)
1840
   #if AXIS_IS_TMC(Z3)
1841
     #define Z3_CURRENT    800
1841
     #define Z3_CURRENT    800
1842
     #define Z3_MICROSTEPS  16
1842
     #define Z3_MICROSTEPS  16
1843
     #define Z3_RSENSE    0.11
1843
     #define Z3_RSENSE    0.11
1844
-    #define Z3_CHAIN_POS    0
1844
+    #define Z3_CHAIN_POS   -1
1845
   #endif
1845
   #endif
1846
 
1846
 
1847
   #if AXIS_IS_TMC(E0)
1847
   #if AXIS_IS_TMC(E0)
1848
     #define E0_CURRENT    800
1848
     #define E0_CURRENT    800
1849
     #define E0_MICROSTEPS  16
1849
     #define E0_MICROSTEPS  16
1850
     #define E0_RSENSE    0.11
1850
     #define E0_RSENSE    0.11
1851
-    #define E0_CHAIN_POS    0
1851
+    #define E0_CHAIN_POS   -1
1852
   #endif
1852
   #endif
1853
 
1853
 
1854
   #if AXIS_IS_TMC(E1)
1854
   #if AXIS_IS_TMC(E1)
1855
     #define E1_CURRENT    800
1855
     #define E1_CURRENT    800
1856
     #define E1_MICROSTEPS  16
1856
     #define E1_MICROSTEPS  16
1857
     #define E1_RSENSE    0.11
1857
     #define E1_RSENSE    0.11
1858
-    #define E1_CHAIN_POS    0
1858
+    #define E1_CHAIN_POS   -1
1859
   #endif
1859
   #endif
1860
 
1860
 
1861
   #if AXIS_IS_TMC(E2)
1861
   #if AXIS_IS_TMC(E2)
1862
     #define E2_CURRENT    800
1862
     #define E2_CURRENT    800
1863
     #define E2_MICROSTEPS  16
1863
     #define E2_MICROSTEPS  16
1864
     #define E2_RSENSE    0.11
1864
     #define E2_RSENSE    0.11
1865
-    #define E2_CHAIN_POS    0
1865
+    #define E2_CHAIN_POS   -1
1866
   #endif
1866
   #endif
1867
 
1867
 
1868
   #if AXIS_IS_TMC(E3)
1868
   #if AXIS_IS_TMC(E3)
1869
     #define E3_CURRENT    800
1869
     #define E3_CURRENT    800
1870
     #define E3_MICROSTEPS  16
1870
     #define E3_MICROSTEPS  16
1871
     #define E3_RSENSE    0.11
1871
     #define E3_RSENSE    0.11
1872
-    #define E3_CHAIN_POS    0
1872
+    #define E3_CHAIN_POS   -1
1873
   #endif
1873
   #endif
1874
 
1874
 
1875
   #if AXIS_IS_TMC(E4)
1875
   #if AXIS_IS_TMC(E4)
1876
     #define E4_CURRENT    800
1876
     #define E4_CURRENT    800
1877
     #define E4_MICROSTEPS  16
1877
     #define E4_MICROSTEPS  16
1878
     #define E4_RSENSE    0.11
1878
     #define E4_RSENSE    0.11
1879
-    #define E4_CHAIN_POS    0
1879
+    #define E4_CHAIN_POS   -1
1880
   #endif
1880
   #endif
1881
 
1881
 
1882
   #if AXIS_IS_TMC(E5)
1882
   #if AXIS_IS_TMC(E5)
1883
     #define E5_CURRENT    800
1883
     #define E5_CURRENT    800
1884
     #define E5_MICROSTEPS  16
1884
     #define E5_MICROSTEPS  16
1885
     #define E5_RSENSE    0.11
1885
     #define E5_RSENSE    0.11
1886
-    #define E5_CHAIN_POS    0
1886
+    #define E5_CHAIN_POS   -1
1887
   #endif
1887
   #endif
1888
 
1888
 
1889
   /**
1889
   /**
2109
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2109
     #define X_OVERCURRENT   2000  // (mA) Current where the driver detects an over current (VALID: 375 x (1 - 16) - 6A max - rounds down)
2110
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2110
     #define X_STALLCURRENT  1500  // (mA) Current where the driver detects a stall (VALID: 31.25 * (1-128) -  4A max - rounds down)
2111
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2111
     #define X_MAX_VOLTAGE    127  // 0-255, Maximum effective voltage seen by stepper
2112
-    #define X_CHAIN_POS        0  // Position in SPI chain, 0=Not in chain, 1=Nearest MOSI
2112
+    #define X_CHAIN_POS       -1  // Position in SPI chain. (<=0 : Not in chain. 1 : Nearest MOSI)
2113
   #endif
2113
   #endif
2114
 
2114
 
2115
   #if AXIS_DRIVER_TYPE_X2(L6470)
2115
   #if AXIS_DRIVER_TYPE_X2(L6470)
2117
     #define X2_OVERCURRENT    2000
2117
     #define X2_OVERCURRENT    2000
2118
     #define X2_STALLCURRENT   1500
2118
     #define X2_STALLCURRENT   1500
2119
     #define X2_MAX_VOLTAGE     127
2119
     #define X2_MAX_VOLTAGE     127
2120
-    #define X2_CHAIN_POS         0
2120
+    #define X2_CHAIN_POS        -1
2121
   #endif
2121
   #endif
2122
 
2122
 
2123
   #if AXIS_DRIVER_TYPE_Y(L6470)
2123
   #if AXIS_DRIVER_TYPE_Y(L6470)
2125
     #define Y_OVERCURRENT     2000
2125
     #define Y_OVERCURRENT     2000
2126
     #define Y_STALLCURRENT    1500
2126
     #define Y_STALLCURRENT    1500
2127
     #define Y_MAX_VOLTAGE      127
2127
     #define Y_MAX_VOLTAGE      127
2128
-    #define Y_CHAIN_POS          0
2128
+    #define Y_CHAIN_POS         -1
2129
   #endif
2129
   #endif
2130
 
2130
 
2131
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2131
   #if AXIS_DRIVER_TYPE_Y2(L6470)
2133
     #define Y2_OVERCURRENT    2000
2133
     #define Y2_OVERCURRENT    2000
2134
     #define Y2_STALLCURRENT   1500
2134
     #define Y2_STALLCURRENT   1500
2135
     #define Y2_MAX_VOLTAGE     127
2135
     #define Y2_MAX_VOLTAGE     127
2136
-    #define Y2_CHAIN_POS         0
2136
+    #define Y2_CHAIN_POS        -1
2137
   #endif
2137
   #endif
2138
 
2138
 
2139
   #if AXIS_DRIVER_TYPE_Z(L6470)
2139
   #if AXIS_DRIVER_TYPE_Z(L6470)
2141
     #define Z_OVERCURRENT     2000
2141
     #define Z_OVERCURRENT     2000
2142
     #define Z_STALLCURRENT    1500
2142
     #define Z_STALLCURRENT    1500
2143
     #define Z_MAX_VOLTAGE      127
2143
     #define Z_MAX_VOLTAGE      127
2144
-    #define Z_CHAIN_POS          0
2144
+    #define Z_CHAIN_POS         -1
2145
   #endif
2145
   #endif
2146
 
2146
 
2147
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2147
   #if AXIS_DRIVER_TYPE_Z2(L6470)
2149
     #define Z2_OVERCURRENT    2000
2149
     #define Z2_OVERCURRENT    2000
2150
     #define Z2_STALLCURRENT   1500
2150
     #define Z2_STALLCURRENT   1500
2151
     #define Z2_MAX_VOLTAGE     127
2151
     #define Z2_MAX_VOLTAGE     127
2152
-    #define Z2_CHAIN_POS         0
2152
+    #define Z2_CHAIN_POS        -1
2153
   #endif
2153
   #endif
2154
 
2154
 
2155
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2155
   #if AXIS_DRIVER_TYPE_Z3(L6470)
2157
     #define Z3_OVERCURRENT    2000
2157
     #define Z3_OVERCURRENT    2000
2158
     #define Z3_STALLCURRENT   1500
2158
     #define Z3_STALLCURRENT   1500
2159
     #define Z3_MAX_VOLTAGE     127
2159
     #define Z3_MAX_VOLTAGE     127
2160
-    #define Z3_CHAIN_POS         0
2160
+    #define Z3_CHAIN_POS        -1
2161
   #endif
2161
   #endif
2162
 
2162
 
2163
   #if AXIS_DRIVER_TYPE_E0(L6470)
2163
   #if AXIS_DRIVER_TYPE_E0(L6470)
2165
     #define E0_OVERCURRENT    2000
2165
     #define E0_OVERCURRENT    2000
2166
     #define E0_STALLCURRENT   1500
2166
     #define E0_STALLCURRENT   1500
2167
     #define E0_MAX_VOLTAGE     127
2167
     #define E0_MAX_VOLTAGE     127
2168
-    #define E0_CHAIN_POS         0
2168
+    #define E0_CHAIN_POS        -1
2169
   #endif
2169
   #endif
2170
 
2170
 
2171
   #if AXIS_DRIVER_TYPE_E1(L6470)
2171
   #if AXIS_DRIVER_TYPE_E1(L6470)
2173
     #define E1_OVERCURRENT    2000
2173
     #define E1_OVERCURRENT    2000
2174
     #define E1_STALLCURRENT   1500
2174
     #define E1_STALLCURRENT   1500
2175
     #define E1_MAX_VOLTAGE     127
2175
     #define E1_MAX_VOLTAGE     127
2176
-    #define E1_CHAIN_POS         0
2176
+    #define E1_CHAIN_POS        -1
2177
   #endif
2177
   #endif
2178
 
2178
 
2179
   #if AXIS_DRIVER_TYPE_E2(L6470)
2179
   #if AXIS_DRIVER_TYPE_E2(L6470)
2181
     #define E2_OVERCURRENT    2000
2181
     #define E2_OVERCURRENT    2000
2182
     #define E2_STALLCURRENT   1500
2182
     #define E2_STALLCURRENT   1500
2183
     #define E2_MAX_VOLTAGE     127
2183
     #define E2_MAX_VOLTAGE     127
2184
-    #define E2_CHAIN_POS         0
2184
+    #define E2_CHAIN_POS        -1
2185
   #endif
2185
   #endif
2186
 
2186
 
2187
   #if AXIS_DRIVER_TYPE_E3(L6470)
2187
   #if AXIS_DRIVER_TYPE_E3(L6470)
2189
     #define E3_OVERCURRENT    2000
2189
     #define E3_OVERCURRENT    2000
2190
     #define E3_STALLCURRENT   1500
2190
     #define E3_STALLCURRENT   1500
2191
     #define E3_MAX_VOLTAGE     127
2191
     #define E3_MAX_VOLTAGE     127
2192
-    #define E3_CHAIN_POS         0
2192
+    #define E3_CHAIN_POS        -1
2193
   #endif
2193
   #endif
2194
 
2194
 
2195
   #if AXIS_DRIVER_TYPE_E4(L6470)
2195
   #if AXIS_DRIVER_TYPE_E4(L6470)
2197
     #define E4_OVERCURRENT    2000
2197
     #define E4_OVERCURRENT    2000
2198
     #define E4_STALLCURRENT   1500
2198
     #define E4_STALLCURRENT   1500
2199
     #define E4_MAX_VOLTAGE     127
2199
     #define E4_MAX_VOLTAGE     127
2200
-    #define E4_CHAIN_POS         0
2200
+    #define E4_CHAIN_POS        -1
2201
   #endif
2201
   #endif
2202
 
2202
 
2203
   #if AXIS_DRIVER_TYPE_E5(L6470)
2203
   #if AXIS_DRIVER_TYPE_E5(L6470)
2205
     #define E5_OVERCURRENT    2000
2205
     #define E5_OVERCURRENT    2000
2206
     #define E5_STALLCURRENT   1500
2206
     #define E5_STALLCURRENT   1500
2207
     #define E5_MAX_VOLTAGE     127
2207
     #define E5_MAX_VOLTAGE     127
2208
-    #define E5_CHAIN_POS         0
2208
+    #define E5_CHAIN_POS        -1
2209
   #endif
2209
   #endif
2210
 
2210
 
2211
   /**
2211
   /**

+ 0
- 0
config/examples/delta/Tevo Little Monster/Configuration_adv.h View File


Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save