Browse Source

Smoothieboard V1.0/1.1 and A5984 support

Greg Nutt 5 years ago
parent
commit
a1a5367380

+ 2
- 2
Marlin/Configuration.h View File

@@ -556,11 +556,11 @@
556 556
  * The options are used to determine driver pulse timings as well as more advanced functionality.
557 557
  * Stepper timing options can be overridden in Configuration_adv.h
558 558
  *
559
- * Options: A4988, DRV8825, LV8729, L6470, TB6560, TB6600, TMC2100,
559
+ * Options: A4988, A5984, DRV8825, LV8729, L6470, TB6560, TB6600, TMC2100,
560 560
  *          TMC2130, TMC2130_STANDALONE, TMC2208, TMC2208_STANDALONE,
561 561
  *          TMC26X,  TMC26X_STANDALONE,  TMC2660, TMC2660_STANDALONE,
562 562
  *          TMC5130, TMC5130_STANDALONE
563
- * :['A4988', 'DRV8825', 'LV8729', 'L6470', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE']
563
+ * :['A4988', 'A5984', 'DRV8825', 'LV8729', 'L6470', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE']
564 564
  */
565 565
 #define X_DRIVER_TYPE  A4988
566 566
 #define Y_DRIVER_TYPE  A4988

+ 2
- 2
Marlin/Configuration_adv.h View File

@@ -842,6 +842,7 @@
842 842
  *     0 : No delay (Expect at least 10µS since one Stepper ISR must transpire)
843 843
  *    20 : Minimum for TMC2xxx drivers
844 844
  *   200 : Minimum for A4988 drivers
845
+ *   400 : Minimum for A5984 drivers
845 846
  *   500 : Minimum for LV8729 drivers (guess, no info in datasheet)
846 847
  *   650 : Minimum for DRV8825 drivers
847 848
  *  1500 : Minimum for TB6600 drivers (guess, no info in datasheet)
@@ -854,8 +855,7 @@
854 855
 /**
855 856
  * Minimum stepper driver pulse width (in µs)
856 857
  *   0 : Smallest possible width the MCU can produce, compatible with TMC2xxx drivers
857
- *   1 : Minimum for A4988 stepper drivers
858
- *   1 : Minimum for LV8729 stepper drivers
858
+ *   1 : Minimum for A4988, A5984, and LV8729 stepper drivers
859 859
  *   2 : Minimum for DRV8825 stepper drivers
860 860
  *   3 : Minimum for TB6600 stepper drivers
861 861
  *  30 : Minimum for TB6560 stepper drivers

+ 2
- 2
Marlin/src/config/default/Configuration.h View File

@@ -556,11 +556,11 @@
556 556
  * The options are used to determine driver pulse timings as well as more advanced functionality.
557 557
  * Stepper timing options can be overridden in Configuration_adv.h
558 558
  *
559
- * Options: A4988, DRV8825, LV8729, L6470, TB6560, TB6600, TMC2100,
559
+ * Options: A4988, A5984, DRV8825, LV8729, L6470, TB6560, TB6600, TMC2100,
560 560
  *          TMC2130, TMC2130_STANDALONE, TMC2208, TMC2208_STANDALONE,
561 561
  *          TMC26X,  TMC26X_STANDALONE,  TMC2660, TMC2660_STANDALONE,
562 562
  *          TMC5130, TMC5130_STANDALONE
563
- * :['A4988', 'DRV8825', 'LV8729', 'L6470', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE']
563
+ * :['A4988', 'A5984', 'DRV8825', 'LV8729', 'L6470', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE']
564 564
  */
565 565
 #define X_DRIVER_TYPE  A4988
566 566
 #define Y_DRIVER_TYPE  A4988

+ 2
- 2
Marlin/src/config/default/Configuration_adv.h View File

@@ -842,6 +842,7 @@
842 842
  *     0 : No delay (Expect at least 10µS since one Stepper ISR must transpire)
843 843
  *    20 : Minimum for TMC2xxx drivers
844 844
  *   200 : Minimum for A4988 drivers
845
+ *   400 : Minimum for A5984 drivers
845 846
  *   500 : Minimum for LV8729 drivers (guess, no info in datasheet)
846 847
  *   650 : Minimum for DRV8825 drivers
847 848
  *  1500 : Minimum for TB6600 drivers (guess, no info in datasheet)
@@ -854,8 +855,7 @@
854 855
 /**
855 856
  * Minimum stepper driver pulse width (in µs)
856 857
  *   0 : Smallest possible width the MCU can produce, compatible with TMC2xxx drivers
857
- *   1 : Minimum for A4988 stepper drivers
858
- *   1 : Minimum for LV8729 stepper drivers
858
+ *   1 : Minimum for A4988, A5984, and LV8729 stepper drivers
859 859
  *   2 : Minimum for DRV8825 stepper drivers
860 860
  *   3 : Minimum for TB6600 stepper drivers
861 861
  *  30 : Minimum for TB6560 stepper drivers

+ 1
- 0
Marlin/src/core/boards.h View File

@@ -174,6 +174,7 @@
174 174
 #define BOARD_SELENA_COMPACT      1754  // Selena Compact (Power outputs: Hotend0, Hotend1, Bed0, Bed1, Fan0, Fan1)
175 175
 #define BOARD_COHESION3D_REMIX    1755  // Cohesion3D ReMix
176 176
 #define BOARD_COHESION3D_MINI     1756  // Cohesion3D Mini
177
+#define BOARD_SMOOTHIEBOARD       1757  // Smoothieboard
177 178
 
178 179
 //
179 180
 // SAM3X8E ARM Cortex M3

+ 15
- 14
Marlin/src/core/drivers.h View File

@@ -24,20 +24,21 @@
24 24
 #include "../inc/MarlinConfigPre.h"
25 25
 
26 26
 #define A4988               0x001
27
-#define DRV8825             0x002
28
-#define LV8729              0x003
29
-#define L6470               0x104
30
-#define TB6560              0x005
31
-#define TB6600              0x006
32
-#define TMC2100             0x007
33
-#define TMC2130             0x108
34
-#define TMC2130_STANDALONE  0x008
35
-#define TMC2208             0x109
36
-#define TMC2208_STANDALONE  0x009
37
-#define TMC26X              0x10A
38
-#define TMC26X_STANDALONE   0x00A
39
-#define TMC2660             0x10B
40
-#define TMC2660_STANDALONE  0x00B
27
+#define A5984               0x002
28
+#define DRV8825             0x003
29
+#define LV8729              0x004
30
+#define L6470               0x105
31
+#define TB6560              0x006
32
+#define TB6600              0x007
33
+#define TMC2100             0x008
34
+#define TMC2130             0x109
35
+#define TMC2130_STANDALONE  0x009
36
+#define TMC2208             0x10A
37
+#define TMC2208_STANDALONE  0x00A
38
+#define TMC26X              0x10B
39
+#define TMC26X_STANDALONE   0x00B
40
+#define TMC2660             0x10C
41
+#define TMC2660_STANDALONE  0x00C
41 42
 
42 43
 #define AXIS_DRIVER_TYPE(A,T) ( defined(A##_DRIVER_TYPE) && (A##_DRIVER_TYPE == T) )
43 44
 

+ 3
- 1
Marlin/src/inc/Conditionals_post.h View File

@@ -452,6 +452,8 @@
452 452
     #define MINIMUM_STEPPER_DIR_DELAY 650
453 453
   #elif HAS_DRIVER(LV8729)
454 454
     #define MINIMUM_STEPPER_DIR_DELAY 500
455
+  #elif HAS_DRIVER(A5984)
456
+    #define MINIMUM_STEPPER_DIR_DELAY 400  
455 457
   #elif HAS_DRIVER(A4988)
456 458
     #define MINIMUM_STEPPER_DIR_DELAY 200
457 459
   #elif HAS_TRINAMIC || HAS_DRIVER(TMC2130_STANDALONE) || HAS_DRIVER(TMC2208_STANDALONE) || HAS_DRIVER(TMC26X_STANDALONE) || HAS_DRIVER(TMC2660_STANDALONE)
@@ -468,7 +470,7 @@
468 470
     #define MINIMUM_STEPPER_PULSE 3
469 471
   #elif HAS_DRIVER(DRV8825)
470 472
     #define MINIMUM_STEPPER_PULSE 2
471
-  #elif HAS_DRIVER(A4988) || HAS_DRIVER(LV8729)
473
+  #elif HAS_DRIVER(A4988) || HAS_DRIVER(LV8729) || HAS_DRIVER(A5984)
472 474
     #define MINIMUM_STEPPER_PULSE 1
473 475
   #elif HAS_TRINAMIC || HAS_DRIVER(TMC2130_STANDALONE) || HAS_DRIVER(TMC2208_STANDALONE) || HAS_DRIVER(TMC26X_STANDALONE) || HAS_DRIVER(TMC2660_STANDALONE)
474 476
     #define MINIMUM_STEPPER_PULSE 0

+ 2
- 0
Marlin/src/pins/pins.h View File

@@ -298,6 +298,8 @@
298 298
   #include "pins_COHESION3D_REMIX.h"  // LPC176x                                    env:LPC1768 env:LPC1768_debug_and_upload
299 299
 #elif MB(COHESION3D_MINI)
300 300
   #include "pins_COHESION3D_MINI.h"   // LPC176x                                    env:LPC1768 env:LPC1768_debug_and_upload
301
+#elif MB(SMOOTHIEBOARD)
302
+  #include "pins_SMOOTHIEBOARD.h"     // LPC176x                                    env:LPC1768 env:LPC1768_debug_and_upload
301 303
 
302 304
 //
303 305
 // Other 32-bit Boards

+ 115
- 0
Marlin/src/pins/pins_SMOOTHIEBOARD.h View File

@@ -0,0 +1,115 @@
1
+/**
2
+ * Marlin 3D Printer Firmware
3
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
4
+ * Copyright (C) 2017 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
5
+ *
6
+ * Based on Sprinter and grbl.
7
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
8
+ *
9
+ * This program is free software: you can redistribute it and/or modify
10
+ * it under the terms of the GNU General Public License as published by
11
+ * the Free Software Foundation, either version 3 of the License, or
12
+ * (at your option) any later version.
13
+ *
14
+ * This program is distributed in the hope that it will be useful,
15
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
16
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17
+ * GNU General Public License for more details.
18
+ *
19
+ * You should have received a copy of the GNU General Public License
20
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
21
+ *
22
+ */
23
+
24
+/**
25
+ * Smoothieboard pin assignments
26
+ */
27
+
28
+#ifndef TARGET_LPC1768
29
+  #error "Oops!  Make sure you have the LPC1768 environment selected in your IDE."
30
+#endif
31
+
32
+#ifndef BOARD_NAME
33
+  #define BOARD_NAME "Smoothieboard"
34
+  #define DEFAULT_WEBSITE_URL "http://smoothieware.org/smoothieboard"
35
+#endif
36
+
37
+#undef F_CPU
38
+#define F_CPU 120000000
39
+
40
+//
41
+// Servos
42
+//
43
+#define SERVO0_PIN          P1_23
44
+
45
+//
46
+// Limit Switches
47
+//
48
+#define X_MIN_PIN           P1_24
49
+#define X_MAX_PIN           P1_25
50
+#define Y_MIN_PIN           P1_26
51
+#define Y_MAX_PIN           P1_27
52
+#define Z_MIN_PIN           P1_28
53
+#define Z_MAX_PIN           P1_29
54
+
55
+//
56
+// Steppers
57
+//
58
+#define X_STEP_PIN          P2_00
59
+#define X_DIR_PIN           P0_05
60
+#define X_ENABLE_PIN        P0_04
61
+
62
+#define Y_STEP_PIN          P2_01
63
+#define Y_DIR_PIN           P0_11
64
+#define Y_ENABLE_PIN        P0_10
65
+
66
+#define Z_STEP_PIN          P2_02
67
+#define Z_DIR_PIN           P0_20
68
+#define Z_ENABLE_PIN        P0_19
69
+
70
+#define E0_STEP_PIN         P2_03
71
+#define E0_DIR_PIN          P0_22
72
+#define E0_ENABLE_PIN       P0_21
73
+
74
+#define E1_STEP_PIN         P2_08
75
+#define E1_DIR_PIN          P2_13
76
+#define E1_ENABLE_PIN       P4_29
77
+
78
+//
79
+// Temperature Sensors
80
+// 3.3V max when defined as an analog input
81
+//
82
+#define TEMP_0_PIN          0   // P0.23 (T1)
83
+#define TEMP_BED_PIN        1   // P0.24 (T2)
84
+#define TEMP_1_PIN          2   // P0.25 (T3)
85
+#define TEMP_2_PIN          3   // P0.26 (T4)
86
+
87
+//
88
+// Heaters / Fans
89
+//
90
+#define HEATER_BED_PIN      P2_05
91
+#define HEATER_0_PIN        P2_07
92
+#define HEATER_1_PIN        P1_23
93
+#ifndef FAN_PIN
94
+  #define FAN_PIN           P2_06
95
+#endif
96
+#define FAN1_PIN            P2_04
97
+
98
+//
99
+// Display
100
+//
101
+#if ENABLED(VIKI2) || ENABLED(miniVIKI)
102
+  #define BEEPER_PIN        P1_31
103
+  //#define DOGLCD_A0       P2_06
104
+  #define DOGLCD_CS         P0_16
105
+
106
+  #define BTN_EN1           P3_25
107
+  #define BTN_EN2           P3_26
108
+  #define BTN_ENC           P2_11
109
+
110
+  #define SD_DETECT_PIN     P1_18
111
+  #define SDSS              P1_21
112
+
113
+  #define STAT_LED_RED_PIN  P1_19
114
+  #define STAT_LED_BLUE_PIN P1_20
115
+#endif

Loading…
Cancel
Save