Browse Source

Enforce minimum TMC2130 / TMC2208 libs

Scott Lahteine 6 years ago
parent
commit
a891af2f7a
3 changed files with 76 additions and 66 deletions
  1. 66
    64
      Marlin/src/inc/SanityCheck.h
  2. 8
    0
      Marlin/src/module/stepper_indirection.cpp
  3. 2
    2
      platformio.ini

+ 66
- 64
Marlin/src/inc/SanityCheck.h View File

@@ -1393,36 +1393,36 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,
1393 1393
  * Make sure HAVE_TMC26X is warranted
1394 1394
  */
1395 1395
 #if ENABLED(HAVE_TMC26X) && !( \
1396
-         ENABLED( X_IS_TMC26X) \
1397
-      || ENABLED(X2_IS_TMC26X) \
1398
-      || ENABLED( Y_IS_TMC26X) \
1399
-      || ENABLED(Y2_IS_TMC26X) \
1400
-      || ENABLED( Z_IS_TMC26X) \
1401
-      || ENABLED(Z2_IS_TMC26X) \
1402
-      || ENABLED(E0_IS_TMC26X) \
1403
-      || ENABLED(E1_IS_TMC26X) \
1404
-      || ENABLED(E2_IS_TMC26X) \
1405
-      || ENABLED(E3_IS_TMC26X) \
1406
-      || ENABLED(E4_IS_TMC26X) \
1396
+         ENABLED(  X_IS_TMC26X ) \
1397
+      || ENABLED( X2_IS_TMC26X ) \
1398
+      || ENABLED(  Y_IS_TMC26X ) \
1399
+      || ENABLED( Y2_IS_TMC26X ) \
1400
+      || ENABLED(  Z_IS_TMC26X ) \
1401
+      || ENABLED( Z2_IS_TMC26X ) \
1402
+      || ENABLED( E0_IS_TMC26X ) \
1403
+      || ENABLED( E1_IS_TMC26X ) \
1404
+      || ENABLED( E2_IS_TMC26X ) \
1405
+      || ENABLED( E3_IS_TMC26X ) \
1406
+      || ENABLED( E4_IS_TMC26X ) \
1407 1407
   )
1408 1408
   #error "HAVE_TMC26X requires at least one TMC26X stepper to be set."
1409 1409
 #endif
1410 1410
 
1411 1411
 /**
1412
- * TMC2130 Requirements
1412
+ * Make sure HAVE_TMC2130 is warranted
1413 1413
  */
1414 1414
 #if ENABLED(HAVE_TMC2130)
1415
-  #if !( ENABLED( X_IS_TMC2130) \
1416
-      || ENABLED(X2_IS_TMC2130) \
1417
-      || ENABLED( Y_IS_TMC2130) \
1418
-      || ENABLED(Y2_IS_TMC2130) \
1419
-      || ENABLED( Z_IS_TMC2130) \
1420
-      || ENABLED(Z2_IS_TMC2130) \
1421
-      || ENABLED(E0_IS_TMC2130) \
1422
-      || ENABLED(E1_IS_TMC2130) \
1423
-      || ENABLED(E2_IS_TMC2130) \
1424
-      || ENABLED(E3_IS_TMC2130) \
1425
-      || ENABLED(E4_IS_TMC2130) )
1415
+  #if !( ENABLED(  X_IS_TMC2130 ) \
1416
+      || ENABLED( X2_IS_TMC2130 ) \
1417
+      || ENABLED(  Y_IS_TMC2130 ) \
1418
+      || ENABLED( Y2_IS_TMC2130 ) \
1419
+      || ENABLED(  Z_IS_TMC2130 ) \
1420
+      || ENABLED( Z2_IS_TMC2130 ) \
1421
+      || ENABLED( E0_IS_TMC2130 ) \
1422
+      || ENABLED( E1_IS_TMC2130 ) \
1423
+      || ENABLED( E2_IS_TMC2130 ) \
1424
+      || ENABLED( E3_IS_TMC2130 ) \
1425
+      || ENABLED( E4_IS_TMC2130 ) )
1426 1426
     #error "HAVE_TMC2130 requires at least one TMC2130 stepper to be set."
1427 1427
   #elif ENABLED(HYBRID_THRESHOLD) && DISABLED(STEALTHCHOP)
1428 1428
     #error "Enable STEALTHCHOP to use HYBRID_THRESHOLD."
@@ -1476,36 +1476,38 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,
1476 1476
 #endif
1477 1477
 
1478 1478
 /**
1479
- * TMC2208 Requirements
1480
- */
1481
-#if ENABLED(HAVE_TMC2208)
1482
-  #if !( ENABLED( X_IS_TMC2208) \
1483
-      || ENABLED(X2_IS_TMC2208) \
1484
-      || ENABLED( Y_IS_TMC2208) \
1485
-      || ENABLED(Y2_IS_TMC2208) \
1486
-      || ENABLED( Z_IS_TMC2208) \
1487
-      || ENABLED(Z2_IS_TMC2208) \
1488
-      || ENABLED(E0_IS_TMC2208) \
1489
-      || ENABLED(E1_IS_TMC2208) \
1490
-      || ENABLED(E2_IS_TMC2208) \
1491
-      || ENABLED(E3_IS_TMC2208) \
1492
-      || ENABLED(E4_IS_TMC2208 ) )
1493
-    #error "HAVE_TMC2208 requires at least one TMC2208 stepper to be set."
1494
-  // Software UART and ENDSTOP_INTERRUPTS both use Pin Change interrupts (PCI)
1495
-  #elif ENABLED(ENDSTOP_INTERRUPTS_FEATURE) && \
1496
-      !( defined( X_HARDWARE_SERIAL) \
1497
-      || defined(X2_HARDWARE_SERIAL) \
1498
-      || defined( Y_HARDWARE_SERIAL) \
1499
-      || defined(Y2_HARDWARE_SERIAL) \
1500
-      || defined( Z_HARDWARE_SERIAL) \
1501
-      || defined(Z2_HARDWARE_SERIAL) \
1502
-      || defined(E0_HARDWARE_SERIAL) \
1503
-      || defined(E1_HARDWARE_SERIAL) \
1504
-      || defined(E2_HARDWARE_SERIAL) \
1505
-      || defined(E3_HARDWARE_SERIAL) \
1506
-      || defined(E4_HARDWARE_SERIAL) )
1507
-    #error "Select *_HARDWARE_SERIAL to use both TMC2208 and ENDSTOP_INTERRUPTS_FEATURE."
1508
-  #endif
1479
+ * Make sure HAVE_TMC2208 is warranted
1480
+ */
1481
+#if ENABLED(HAVE_TMC2208) && !( \
1482
+       ENABLED(  X_IS_TMC2208 ) \
1483
+    || ENABLED( X2_IS_TMC2208 ) \
1484
+    || ENABLED(  Y_IS_TMC2208 ) \
1485
+    || ENABLED( Y2_IS_TMC2208 ) \
1486
+    || ENABLED(  Z_IS_TMC2208 ) \
1487
+    || ENABLED( Z2_IS_TMC2208 ) \
1488
+    || ENABLED( E0_IS_TMC2208 ) \
1489
+    || ENABLED( E1_IS_TMC2208 ) \
1490
+    || ENABLED( E2_IS_TMC2208 ) \
1491
+    || ENABLED( E3_IS_TMC2208 ) )
1492
+  #error "HAVE_TMC2208 requires at least one TMC2208 stepper to be set."
1493
+#endif
1494
+
1495
+/**
1496
+ * TMC2208 software UART and ENDSTOP_INTERRUPTS both use pin change interrupts (PCI)
1497
+ */
1498
+#if ENABLED(HAVE_TMC2208) && ENABLED(ENDSTOP_INTERRUPTS_FEATURE) && !( \
1499
+       defined(X_HARDWARE_SERIAL ) \
1500
+    || defined(X2_HARDWARE_SERIAL) \
1501
+    || defined(Y_HARDWARE_SERIAL ) \
1502
+    || defined(Y2_HARDWARE_SERIAL) \
1503
+    || defined(Z_HARDWARE_SERIAL ) \
1504
+    || defined(Z2_HARDWARE_SERIAL) \
1505
+    || defined(E0_HARDWARE_SERIAL) \
1506
+    || defined(E1_HARDWARE_SERIAL) \
1507
+    || defined(E2_HARDWARE_SERIAL) \
1508
+    || defined(E3_HARDWARE_SERIAL) \
1509
+    || defined(E4_HARDWARE_SERIAL) )
1510
+  #error "select hardware UART for TMC2208 to use both TMC2208 and ENDSTOP_INTERRUPTS_FEATURE."
1509 1511
 #endif
1510 1512
 
1511 1513
 #if ENABLED(HYBRID_THRESHOLD) && DISABLED(STEALTHCHOP)
@@ -1520,17 +1522,17 @@ static_assert(X_MAX_LENGTH >= X_BED_SIZE && Y_MAX_LENGTH >= Y_BED_SIZE,
1520 1522
  * Make sure HAVE_L6470DRIVER is warranted
1521 1523
  */
1522 1524
 #if ENABLED(HAVE_L6470DRIVER) && !( \
1523
-         ENABLED( X_IS_L6470) \
1524
-      || ENABLED(X2_IS_L6470) \
1525
-      || ENABLED( Y_IS_L6470) \
1526
-      || ENABLED(Y2_IS_L6470) \
1527
-      || ENABLED( Z_IS_L6470) \
1528
-      || ENABLED(Z2_IS_L6470) \
1529
-      || ENABLED(E0_IS_L6470) \
1530
-      || ENABLED(E1_IS_L6470) \
1531
-      || ENABLED(E2_IS_L6470) \
1532
-      || ENABLED(E3_IS_L6470) \
1533
-      || ENABLED(E4_IS_L6470) \
1525
+         ENABLED(  X_IS_L6470 ) \
1526
+      || ENABLED( X2_IS_L6470 ) \
1527
+      || ENABLED(  Y_IS_L6470 ) \
1528
+      || ENABLED( Y2_IS_L6470 ) \
1529
+      || ENABLED(  Z_IS_L6470 ) \
1530
+      || ENABLED( Z2_IS_L6470 ) \
1531
+      || ENABLED( E0_IS_L6470 ) \
1532
+      || ENABLED( E1_IS_L6470 ) \
1533
+      || ENABLED( E2_IS_L6470 ) \
1534
+      || ENABLED( E3_IS_L6470 ) \
1535
+      || ENABLED( E4_IS_L6470 ) \
1534 1536
   )
1535 1537
   #error "HAVE_L6470DRIVER requires at least one L6470 stepper to be set."
1536 1538
 #endif

+ 8
- 0
Marlin/src/module/stepper_indirection.cpp View File

@@ -135,6 +135,10 @@
135 135
   #include "planner.h"
136 136
   #include "../core/enum.h"
137 137
 
138
+  #if TMC2130STEPPER_VERSION < 0x020201
139
+    #error "Update TMC2130Stepper library to 2.2.1 or newer."
140
+  #endif
141
+
138 142
   #if ENABLED(TMC_USE_SW_SPI)
139 143
     #define _TMC2130_DEFINE(ST) TMC2130Stepper stepper##ST(ST##_ENABLE_PIN, ST##_DIR_PIN, ST##_STEP_PIN, ST##_CS_PIN, TMC_SW_MOSI, TMC_SW_MISO, TMC_SW_SCK)
140 144
   #else
@@ -285,6 +289,10 @@
285 289
   #include <TMC2208Stepper.h>
286 290
   #include "planner.h"
287 291
 
292
+  #if TMC2208STEPPER_VERSION < 0x000101
293
+    #error "Update TMC2208Stepper library to 0.1.1 or newer."
294
+  #endif
295
+
288 296
   #define _TMC2208_DEFINE_HARDWARE(ST) TMC2208Stepper stepper##ST(&ST##_HARDWARE_SERIAL)
289 297
   #define _TMC2208_DEFINE_SOFTWARE(ST) SoftwareSerial ST##_HARDWARE_SERIAL = SoftwareSerial(ST##_SERIAL_RX_PIN, ST##_SERIAL_TX_PIN); \
290 298
                                        TMC2208Stepper stepper##ST(&ST##_HARDWARE_SERIAL, ST##_SERIAL_RX_PIN > -1)

+ 2
- 2
platformio.ini View File

@@ -31,7 +31,7 @@ lib_deps =
31 31
   https://github.com/MarlinFirmware/U8glib-HAL/archive/dev.zip
32 32
   LiquidCrystal_I2C@1.1.2
33 33
   TMC2130Stepper
34
-  https://github.com/teemuatlut/TMC2208Stepper/archive/v0.0.4.zip
34
+  https://github.com/teemuatlut/TMC2208Stepper/archive/v0.1.1.zip
35 35
   Adafruit NeoPixel@1.1.3
36 36
   https://github.com/lincomatic/LiquidTWI2/archive/30aa480.zip
37 37
   https://github.com/ameyer/Arduino-L6470/archive/0c5e5de.zip
@@ -126,7 +126,7 @@ lib_ldf_mode    = off
126 126
 lib_extra_dirs  = frameworks
127 127
 lib_deps        = CMSIS-LPC1768
128 128
   https://github.com/MarlinFirmware/U8glib-HAL/archive/dev.zip
129
-  TMC2130Stepper@>=2.2.0
129
+  TMC2130Stepper@>=2.2.1
130 130
 extra_scripts   = Marlin/src/HAL/HAL_LPC1768/lpc1768_flag_script.py
131 131
 src_filter      = ${common.default_src_filter}
132 132
 monitor_baud    = 250000

Loading…
Cancel
Save