Browse Source

UltiMachine Archim 1 support (#12404)

Ryan 5 years ago
parent
commit
052d102ded

+ 7
- 1
Marlin/Makefile View File

404
   HARDWARE_VARIANT ?= Teensy
404
   HARDWARE_VARIANT ?= Teensy
405
   MCU              ?= at90usb1286
405
   MCU              ?= at90usb1286
406
 
406
 
407
+# UltiMachine Archim1 (with DRV8825 drivers)
408
+else ifeq ($(HARDWARE_MOTHERBOARD),1591)
409
+  HARDWARE_VARIANT ?= archim
410
+  MCPU              = cortex-m3
411
+  F_CPU             = 84000000L
412
+  IS_MCU            = 0
407
 # UltiMachine Archim2 (with TMC2130 drivers)
413
 # UltiMachine Archim2 (with TMC2130 drivers)
408
-else ifeq ($(HARDWARE_MOTHERBOARD),1590)
414
+else ifeq ($(HARDWARE_MOTHERBOARD),1592)
409
   HARDWARE_VARIANT ?= archim
415
   HARDWARE_VARIANT ?= archim
410
   MCPU              = cortex-m3
416
   MCPU              = cortex-m3
411
   F_CPU             = 84000000L
417
   F_CPU             = 84000000L

+ 6
- 1
Marlin/src/HAL/HAL_DUE/usb/conf_usb.h View File

49
 
49
 
50
 #undef UNUSED                           /* To avoid a macro clash as macros.h already defines it */
50
 #undef UNUSED                           /* To avoid a macro clash as macros.h already defines it */
51
 #include "../../../core/macros.h"       /* For ENABLED()/DISABLED() */
51
 #include "../../../core/macros.h"       /* For ENABLED()/DISABLED() */
52
+#include "../../../core/boards.h"       /* For MB() */
52
 #include "../../../../Configuration.h"  /* For CUSTOM_MACHINE_NAME definition - We just need the name, no C++ allowed! */
53
 #include "../../../../Configuration.h"  /* For CUSTOM_MACHINE_NAME definition - We just need the name, no C++ allowed! */
53
 #include "compiler.h"
54
 #include "compiler.h"
54
 
55
 
88
 //#define  USB_DEVICE_LOW_SPEED
89
 //#define  USB_DEVICE_LOW_SPEED
89
 
90
 
90
 //! To define a Full speed device
91
 //! To define a Full speed device
91
-//#define  USB_DEVICE_FULL_SPEED
92
+//#define USB_DEVICE_FULL_SPEED
93
+
94
+#if MB(ARCHIM1)
95
+  #define USB_DEVICE_FULL_SPEED
96
+#endif
92
 
97
 
93
 //! To authorize the High speed
98
 //! To authorize the High speed
94
 #ifndef USB_DEVICE_FULL_SPEED
99
 #ifndef USB_DEVICE_FULL_SPEED

+ 2019
- 0
Marlin/src/config/examples/UltiMachine/Archim1/Configuration.h
File diff suppressed because it is too large
View File


+ 1886
- 0
Marlin/src/config/examples/UltiMachine/Archim1/Configuration_adv.h
File diff suppressed because it is too large
View File


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

209
 #define BOARD_RURAMPS4D_11     1550   // RuRAMPS4Duo v1.1 (Power outputs: Hotend0, Hotend1, Hotend2, Fan0, Fan1, Bed)
209
 #define BOARD_RURAMPS4D_11     1550   // RuRAMPS4Duo v1.1 (Power outputs: Hotend0, Hotend1, Hotend2, Fan0, Fan1, Bed)
210
 #define BOARD_RURAMPS4D_13     1551   // RuRAMPS4Duo v1.3 (Power outputs: Hotend0, Hotend1, Hotend2, Fan0, Fan1, Bed)
210
 #define BOARD_RURAMPS4D_13     1551   // RuRAMPS4Duo v1.3 (Power outputs: Hotend0, Hotend1, Hotend2, Fan0, Fan1, Bed)
211
 #define BOARD_ULTRATRONICS_PRO 1560   // ReprapWorld Ultratronics Pro V1.0
211
 #define BOARD_ULTRATRONICS_PRO 1560   // ReprapWorld Ultratronics Pro V1.0
212
-#define BOARD_ARCHIM2          1590   // UltiMachine Archim2 (with TMC2130 drivers)
212
+#define BOARD_ARCHIM1          1591   // UltiMachine Archim1 (with DRV8825 drivers)
213
+#define BOARD_ARCHIM2          1592   // UltiMachine Archim2 (with TMC2130 drivers)
213
 #define BOARD_ALLIGATOR        1602   // Alligator Board R2
214
 #define BOARD_ALLIGATOR        1602   // Alligator Board R2
214
 
215
 
215
 //
216
 //

+ 46
- 14
Marlin/src/module/stepper.cpp View File

2407
   void Stepper::refresh_motor_power() {
2407
   void Stepper::refresh_motor_power() {
2408
     LOOP_L_N(i, COUNT(motor_current_setting)) {
2408
     LOOP_L_N(i, COUNT(motor_current_setting)) {
2409
       switch (i) {
2409
       switch (i) {
2410
-        #if PIN_EXISTS(MOTOR_CURRENT_PWM_XY)
2410
+        #if PIN_EXISTS(MOTOR_CURRENT_PWM_XY) || PIN_EXISTS(MOTOR_CURRENT_PWM_X) || PIN_EXISTS(MOTOR_CURRENT_PWM_Y)
2411
           case 0:
2411
           case 0:
2412
         #endif
2412
         #endif
2413
         #if PIN_EXISTS(MOTOR_CURRENT_PWM_Z)
2413
         #if PIN_EXISTS(MOTOR_CURRENT_PWM_Z)
2414
           case 1:
2414
           case 1:
2415
         #endif
2415
         #endif
2416
-        #if PIN_EXISTS(MOTOR_CURRENT_PWM_E)
2416
+        #if PIN_EXISTS(MOTOR_CURRENT_PWM_E) || PIN_EXISTS(MOTOR_CURRENT_PWM_E0) || PIN_EXISTS(MOTOR_CURRENT_PWM_E1)
2417
           case 2:
2417
           case 2:
2418
         #endif
2418
         #endif
2419
             digipot_current(i, motor_current_setting[i]);
2419
             digipot_current(i, motor_current_setting[i]);
2426
 
2426
 
2427
 #if HAS_DIGIPOTSS || HAS_MOTOR_CURRENT_PWM
2427
 #if HAS_DIGIPOTSS || HAS_MOTOR_CURRENT_PWM
2428
 
2428
 
2429
-  void Stepper::digipot_current(const uint8_t driver, const int current) {
2429
+  void Stepper::digipot_current(const uint8_t driver, const int16_t current) {
2430
 
2430
 
2431
     #if HAS_DIGIPOTSS
2431
     #if HAS_DIGIPOTSS
2432
 
2432
 
2440
 
2440
 
2441
       #define _WRITE_CURRENT_PWM(P) analogWrite(MOTOR_CURRENT_PWM_## P ##_PIN, 255L * current / (MOTOR_CURRENT_PWM_RANGE))
2441
       #define _WRITE_CURRENT_PWM(P) analogWrite(MOTOR_CURRENT_PWM_## P ##_PIN, 255L * current / (MOTOR_CURRENT_PWM_RANGE))
2442
       switch (driver) {
2442
       switch (driver) {
2443
-        #if PIN_EXISTS(MOTOR_CURRENT_PWM_XY)
2444
-          case 0: _WRITE_CURRENT_PWM(XY); break;
2445
-        #endif
2446
-        #if PIN_EXISTS(MOTOR_CURRENT_PWM_Z)
2447
-          case 1: _WRITE_CURRENT_PWM(Z); break;
2448
-        #endif
2449
-        #if PIN_EXISTS(MOTOR_CURRENT_PWM_E)
2450
-          case 2: _WRITE_CURRENT_PWM(E); break;
2451
-        #endif
2443
+        case 0:
2444
+          #if PIN_EXISTS(MOTOR_CURRENT_PWM_X)
2445
+            _WRITE_CURRENT_PWM(X);
2446
+          #endif
2447
+          #if PIN_EXISTS(MOTOR_CURRENT_PWM_Y)
2448
+            _WRITE_CURRENT_PWM(Y);
2449
+          #endif
2450
+          #if PIN_EXISTS(MOTOR_CURRENT_PWM_XY)
2451
+            _WRITE_CURRENT_PWM(XY);
2452
+          #endif
2453
+          break;
2454
+        case 1:
2455
+          #if PIN_EXISTS(MOTOR_CURRENT_PWM_Z)
2456
+            _WRITE_CURRENT_PWM(Z);
2457
+          #endif
2458
+          break;
2459
+        case 2:
2460
+          #if PIN_EXISTS(MOTOR_CURRENT_PWM_E)
2461
+            _WRITE_CURRENT_PWM(E);
2462
+          #endif
2463
+          #if PIN_EXISTS(MOTOR_CURRENT_PWM_E0)
2464
+            _WRITE_CURRENT_PWM(E0);
2465
+          #endif
2466
+          #if PIN_EXISTS(MOTOR_CURRENT_PWM_E1)
2467
+            _WRITE_CURRENT_PWM(E1);
2468
+          #endif
2469
+          break;
2452
       }
2470
       }
2453
     #endif
2471
     #endif
2454
   }
2472
   }
2469
 
2487
 
2470
     #elif HAS_MOTOR_CURRENT_PWM
2488
     #elif HAS_MOTOR_CURRENT_PWM
2471
 
2489
 
2490
+      #if PIN_EXISTS(MOTOR_CURRENT_PWM_X)
2491
+        SET_OUTPUT(MOTOR_CURRENT_PWM_X_PIN);
2492
+      #endif
2493
+      #if PIN_EXISTS(MOTOR_CURRENT_PWM_Y)
2494
+        SET_OUTPUT(MOTOR_CURRENT_PWM_Y_PIN);
2495
+      #endif
2472
       #if PIN_EXISTS(MOTOR_CURRENT_PWM_XY)
2496
       #if PIN_EXISTS(MOTOR_CURRENT_PWM_XY)
2473
         SET_OUTPUT(MOTOR_CURRENT_PWM_XY_PIN);
2497
         SET_OUTPUT(MOTOR_CURRENT_PWM_XY_PIN);
2474
       #endif
2498
       #endif
2478
       #if PIN_EXISTS(MOTOR_CURRENT_PWM_E)
2502
       #if PIN_EXISTS(MOTOR_CURRENT_PWM_E)
2479
         SET_OUTPUT(MOTOR_CURRENT_PWM_E_PIN);
2503
         SET_OUTPUT(MOTOR_CURRENT_PWM_E_PIN);
2480
       #endif
2504
       #endif
2505
+      #if PIN_EXISTS(MOTOR_CURRENT_PWM_E0)
2506
+        SET_OUTPUT(MOTOR_CURRENT_PWM_E0_PIN);
2507
+      #endif
2508
+      #if PIN_EXISTS(MOTOR_CURRENT_PWM_E1)
2509
+        SET_OUTPUT(MOTOR_CURRENT_PWM_E1_PIN);
2510
+      #endif
2481
 
2511
 
2482
       refresh_motor_power();
2512
       refresh_motor_power();
2483
 
2513
 
2484
       // Set Timer5 to 31khz so the PWM of the motor power is as constant as possible. (removes a buzzing noise)
2514
       // Set Timer5 to 31khz so the PWM of the motor power is as constant as possible. (removes a buzzing noise)
2485
-      SET_CS5(PRESCALER_1);
2486
-
2515
+      #ifdef __AVR__
2516
+        SET_CS5(PRESCALER_1);
2517
+      #endif
2487
     #endif
2518
     #endif
2488
   }
2519
   }
2489
 
2520
 
2587
         SET_OUTPUT(E5_MS3_PIN);
2618
         SET_OUTPUT(E5_MS3_PIN);
2588
       #endif
2619
       #endif
2589
     #endif
2620
     #endif
2621
+
2590
     static const uint8_t microstep_modes[] = MICROSTEP_MODES;
2622
     static const uint8_t microstep_modes[] = MICROSTEP_MODES;
2591
     for (uint16_t i = 0; i < COUNT(microstep_modes); i++)
2623
     for (uint16_t i = 0; i < COUNT(microstep_modes); i++)
2592
       microstep_mode(i, microstep_modes[i]);
2624
       microstep_mode(i, microstep_modes[i]);

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

365
   #include "pins_RAMPS4DUE.h"         // SAM3X8E                                    env:DUE env:DUE_USB env:DUE_debug
365
   #include "pins_RAMPS4DUE.h"         // SAM3X8E                                    env:DUE env:DUE_USB env:DUE_debug
366
 #elif MB(ULTRATRONICS_PRO)
366
 #elif MB(ULTRATRONICS_PRO)
367
   #include "pins_ULTRATRONICS_PRO.h"  // SAM3X8E                                    env:DUE env:DUE_debug
367
   #include "pins_ULTRATRONICS_PRO.h"  // SAM3X8E                                    env:DUE env:DUE_debug
368
+#elif MB(ARCHIM1)
369
+  #include "pins_ARCHIM1.h"           // SAM3X8E                                    env:DUE env:DUE_debug
368
 #elif MB(ARCHIM2)
370
 #elif MB(ARCHIM2)
369
   #include "pins_ARCHIM2.h"           // SAM3X8E                                    env:DUE env:DUE_debug
371
   #include "pins_ARCHIM2.h"           // SAM3X8E                                    env:DUE env:DUE_debug
370
 #elif MB(ALLIGATOR)
372
 #elif MB(ALLIGATOR)

+ 195
- 0
Marlin/src/pins/pins_ARCHIM1.h View File

1
+/**
2
+ * Marlin 3D Printer Firmware
3
+ * Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
4
+ *
5
+ * Based on Sprinter and grbl.
6
+ * Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
7
+ *
8
+ * This program is free software: you can redistribute it and/or modify
9
+ * it under the terms of the GNU General Public License as published by
10
+ * the Free Software Foundation, either version 3 of the License, or
11
+ * (at your option) any later version.
12
+ *
13
+ * This program is distributed in the hope that it will be useful,
14
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
15
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
16
+ * GNU General Public License for more details.
17
+ *
18
+ * You should have received a copy of the GNU General Public License
19
+ * along with this program.  If not, see <http://www.gnu.org/licenses/>.
20
+ *
21
+ */
22
+
23
+/**
24
+ * ARCHIM1 pin assignment
25
+ *
26
+ * The Archim 1.0 board requires Arduino Archim addons installed.
27
+ *
28
+ * - Add the following URL to Arduino IDE's Additional Board Manager URLs:
29
+ *   https://raw.githubusercontent.com/ultimachine/ArduinoAddons/master/package_ultimachine_index.json
30
+ *
31
+ * - In the Arduino IDE Board Manager search for Archim and install the package.
32
+ *
33
+ * - Change your target board to "Archim".
34
+ *
35
+ * Further information on the UltiMachine website...
36
+ *   https://github.com/ultimachine/Archim/wiki
37
+ */
38
+
39
+#ifndef __SAM3X8E__
40
+  #error "Oops! Select 'Archim' in 'Tools > Board.'"
41
+#endif
42
+
43
+#define BOARD_NAME "Archim 1.0"
44
+
45
+//
46
+// Items marked * have been altered from Archim v1.0
47
+//
48
+
49
+//
50
+// Servos
51
+//
52
+#define SERVO0_PIN         20   // D20 PB12 (Header J20 20)
53
+#define SERVO1_PIN         21   // D21 PB13 (Header J20 19)
54
+
55
+
56
+//
57
+// Limit Switches
58
+//
59
+#define X_MIN_PIN          14   // PD4 MIN ES1
60
+#define X_MAX_PIN          32   // PD10 MAX ES1
61
+#define Y_MIN_PIN          29   // PD6 MIN ES2
62
+#define Y_MAX_PIN          15   // PD5 MAX ES2
63
+#define Z_MIN_PIN          31   // PA7 MIN ES3
64
+#define Z_MAX_PIN          30   // PD9 MAX ES3
65
+
66
+//
67
+// Z Probe (when not Z_MIN_PIN)
68
+//
69
+#ifndef Z_MIN_PROBE_PIN
70
+  #define Z_MIN_PROBE_PIN  32
71
+#endif
72
+
73
+#ifndef FIL_RUNOUT_PIN
74
+  #define FIL_RUNOUT_PIN   66   // D66 PB15 (Header J20 15)
75
+#endif
76
+#ifndef FIL_RUNOUT2_PIN
77
+  #define FIL_RUNOUT2_PIN  67   // D67 PB16 (Header J20 16)
78
+#endif
79
+
80
+
81
+//
82
+// Steppers
83
+//
84
+#define X_STEP_PIN         40   // PC8 STEP1 *
85
+#define X_DIR_PIN          59   // PA4 DIR1 *
86
+#define X_ENABLE_PIN       41   // PC9 EN1
87
+
88
+#define Y_STEP_PIN         49   // PC14 STEP2 *
89
+#define Y_DIR_PIN          47   // PC16 DIR2 *
90
+#define Y_ENABLE_PIN       48   // PC15 EN2 *
91
+
92
+#define Z_STEP_PIN         36   // PC4 STEP Z *
93
+#define Z_DIR_PIN         107   // PB10 DIR Z *
94
+#define Z_ENABLE_PIN       96   // PC10 EN Z -AddOns *
95
+
96
+#define E0_STEP_PIN        78   // PB23 STEP3 *
97
+#define E0_DIR_PIN         22   // PB26 DIR3 *
98
+#define E0_ENABLE_PIN      97   // PB24 EN3 -Addons *
99
+
100
+#define E1_STEP_PIN        26   // PD1 STEP4 *
101
+#define E1_DIR_PIN         27   // PD2 DIR4 *
102
+#define E1_ENABLE_PIN      28   // PD3 EN4 *
103
+
104
+// Microstepping mode pins *
105
+#define X_MS1_PIN          39   // PC7 MOD0E1 - As listed in schematic
106
+#define X_MS2_PIN          38   // PC6 MOD1E1
107
+#define X_MS3_PIN          37   // PC5 MOD2E1
108
+
109
+#define Y_MS1_PIN          50   // PC13 MODE0E2
110
+#define Y_MS2_PIN          51   // PC12 MODE1E2
111
+#define Y_MS3_PIN          92   // PC11 MODE2E2 - AddOns
112
+
113
+#define Z_MS1_PIN          44   // PC19 MOD0E Z
114
+#define Z_MS2_PIN          45   // PC18 MOD1E Z
115
+#define Z_MS3_PIN          46   // PC17 MOD2E Z
116
+
117
+#define E0_MS1_PIN        105   // PB22 MOD0E3 - AddOns
118
+#define E0_MS2_PIN        106   // PC27 MOD1E3 - AddOns
119
+#define E0_MS3_PIN        104   // PC20 MOD2E3 - AddOns
120
+
121
+#define E1_MS1_PIN         25   // PD0 MOD0E4
122
+#define E1_MS2_PIN         18   // PA11 MOD1E4
123
+#define E1_MS3_PIN         19   // PA10 MOD2E4
124
+
125
+// Motor current PWM pins *
126
+#define MOTOR_CURRENT_PWM_X_PIN   58   // PA6   X-REF TIOB2
127
+#define MOTOR_CURRENT_PWM_Y_PIN   12   // PD8   Y-REF TIOB8
128
+#define MOTOR_CURRENT_PWM_Z_PIN   10   // PC29  Z-REF TIOB7
129
+#define MOTOR_CURRENT_PWM_E0_PIN   3   // PC28 E1-REF TIOA7
130
+#define MOTOR_CURRENT_PWM_E1_PIN  11   // PD7  E2-REF TIOA8
131
+
132
+#define MOTOR_CURRENT_PWM_RANGE 2750   // (3.3 Volts * 100000 Ohms) / (100000 Ohms + 20000 Ohms) = 2.75 Volts (max vref)
133
+#define DEFAULT_PWM_MOTOR_CURRENT  { 1000, 1000, 1000 } //, 1000, 1000}   // X Y Z E0 E1, 1000 = 1000mAh
134
+
135
+//
136
+// Temperature Sensors
137
+//
138
+#define TEMP_0_PIN         10   // D10 PB19 THERM AN1 *
139
+#define TEMP_1_PIN          9   // D9 PB18 THERM AN2 *
140
+#define TEMP_2_PIN          8   // D8 PB17 THERM AN4 *
141
+#define TEMP_BED_PIN       11   // D11 PB20 THERM AN3 *
142
+
143
+//
144
+// Heaters / Fans
145
+//
146
+#define HEATER_0_PIN        6   // D6 PC24 FET_PWM3
147
+#define HEATER_1_PIN        7   // D7 PC23 FET_PWM4
148
+#define HEATER_2_PIN        8   // D8 PC22 FET_PWM5
149
+#define HEATER_BED_PIN      9   // D9 PC21 BED_PWM
150
+
151
+#ifndef FAN_PIN
152
+  #define FAN_PIN           4   // D4 PC26 FET_PWM1
153
+#endif
154
+#define FAN1_PIN            5   // D5 PC25 FET_PWM2
155
+
156
+//
157
+// Misc. Functions
158
+//
159
+
160
+// Internal MicroSD card reader on the PCB
161
+#define INT_SCK_PIN        42   // D42 PA19/MCCK
162
+#define INT_MISO_PIN       43   // D43 PA20/MCCDA
163
+#define INT_MOSI_PIN       73   // D73 PA21/MCDA0
164
+#define INT_SDSS           55   // D55 PA24/MCDA3
165
+
166
+// External SD card reader on SC2
167
+#define SCK_PIN            76   // D76 PA27
168
+#define MISO_PIN           74   // D74 PA25
169
+#define MOSI_PIN           75   // D75 PA26
170
+#define SDSS               87   // D87 PA29
171
+
172
+// 2MB SPI Flash
173
+#define SPI_FLASH_SS       52   // D52 PB21
174
+
175
+//
176
+// LCD / Controller
177
+//
178
+#if ENABLED(ULTRA_LCD)
179
+  #define BEEPER_PIN       23   // D24 PA15_CTS1
180
+  #define LCD_PINS_RS      17   // D17 PA12_RXD1
181
+  #define LCD_PINS_ENABLE  24   // D23 PA14_RTS1
182
+  #define LCD_PINS_D4      69   // D69 PA0_CANTX0
183
+  #define LCD_PINS_D5      54   // D54 PA16_SCK1
184
+  #define LCD_PINS_D6      68   // D68 PA1_CANRX0
185
+  #define LCD_PINS_D7      34   // D34 PC2_PWML0
186
+
187
+  #define SD_DETECT_PIN     2   // D2  PB25_TIOA0
188
+
189
+  #if ENABLED(NEWPANEL)
190
+    // Buttons on AUX-2
191
+    #define BTN_EN1        60   // D60 PA3_TIOB1
192
+    #define BTN_EN2        13   // D13 PB27_TIOB0
193
+    #define BTN_ENC        16   // D16 PA13_TXD1
194
+  #endif // NEWPANEL
195
+#endif // ULTRA_LCD

+ 63
- 54
Marlin/src/pins/pins_ARCHIM2.h View File

21
  */
21
  */
22
 
22
 
23
 /**
23
 /**
24
- * ARCHIM2 pin assignment (pins_ARCHIM2.h)
24
+ * ARCHIM2 pin assignment
25
  *
25
  *
26
- * The Archim2 board requires Arduino Archim addons installed.
27
- * Add the following URL to Arduino IDE's Additional Board Manager URLs:
28
- * https://raw.githubusercontent.com/ultimachine/ArduinoAddons/master/package_ultimachine_index.json
29
- * In the Arduino IDE Board Manager search for Archim and install the package.
30
- * Change your target board to "Archim".
26
+ * The Archim 2.0 board requires Arduino Archim addons installed.
31
  *
27
  *
32
- * Further information is provided by UltiMachine
33
- * https://github.com/ultimachine/Archim/wiki/Archim-v2.0
34
- * https://github.com/ultimachine/Archim/wiki
28
+ * - Add the following URL to Arduino IDE's Additional Board Manager URLs:
29
+ *   https://raw.githubusercontent.com/ultimachine/ArduinoAddons/master/package_ultimachine_index.json
35
  *
30
  *
31
+ * - In the Arduino IDE Board Manager search for Archim and install the package.
32
+ *
33
+ * - Change your target board to "Archim".
34
+ *
35
+ * Further information on the UltiMachine website...
36
+ *   https://github.com/ultimachine/Archim/wiki
36
  */
37
  */
37
 
38
 
38
 #ifndef __SAM3X8E__
39
 #ifndef __SAM3X8E__
39
   #error "Oops! Select 'Archim' in 'Tools > Board.'"
40
   #error "Oops! Select 'Archim' in 'Tools > Board.'"
40
 #endif
41
 #endif
41
 
42
 
43
+#define BOARD_NAME "Archim 2.0"
44
+
42
 //
45
 //
43
 // Items marked * have been altered from Archim v1.0
46
 // Items marked * have been altered from Archim v1.0
44
 //
47
 //
45
 
48
 
46
-// TMC2130 Diag Pins (currently just for reference)
47
-#define X_DIAG_PIN         59   // PA4 X_DIAG
48
-#define Y_DIAG_PIN         48   // PC15 Y_DIAG
49
-#define Z_DIAG_PIN         36   // PC4 Z_DIAG
50
-#define E0_DIAG_PIN        78   // PB23 E1_DIAG
51
-#define E1_DIAG_PIN        25   // PD0 E2_DIAG
52
-
53
 //
49
 //
54
 // Servos
50
 // Servos
55
 //
51
 //
56
-#define SERVO0_PIN          20   // D20 PB12 (Header J20 20)
57
-#define SERVO1_PIN          21   // D21 PB13 (Header J20 19)
52
+#define SERVO0_PIN         20   // D20 PB12 (Header J20 20)
53
+#define SERVO1_PIN         21   // D21 PB13 (Header J20 19)
58
 
54
 
59
 //
55
 //
60
 // Limit Switches
56
 // Limit Switches
61
 //
57
 //
62
-// Only use Diag Pins when SENSORLESS_HOMING is enabled for the TMC2130 drivers.
63
-// Otherwise use a physical endstop based configuration.
64
 
58
 
65
-#if DISABLED(SENSORLESS_HOMING)
66
- #define X_MIN_PIN          14   // PD4 MIN ES1
67
- #define X_MAX_PIN          32   // PD10 MAX ES1
68
- #define Y_MIN_PIN          29   // PD6 MIN ES2
69
- #define Y_MAX_PIN          15   // PD5 MAX ES2
70
-#else
59
+#if ENABLED(SENSORLESS_HOMING)
60
+
61
+  // Only use Diag Pins when SENSORLESS_HOMING is enabled for the TMC2130 drivers.
62
+  // Otherwise use a physical endstop based configuration.
63
+
64
+  // TMC2130 Diag Pins
65
+  #define X_DIAG_PIN       59   // PA4
66
+  #define Y_DIAG_PIN       48   // PC15
67
+  #define Z_DIAG_PIN       36   // PC4
68
+  #define E0_DIAG_PIN      78   // PB23
69
+  #define E1_DIAG_PIN      25   // PD0
70
+
71
   #if X_HOME_DIR == -1
71
   #if X_HOME_DIR == -1
72
     #define X_MIN_PIN      X_DIAG_PIN
72
     #define X_MIN_PIN      X_DIAG_PIN
73
     #define X_MAX_PIN      32
73
     #define X_MAX_PIN      32
83
     #define Y_MIN_PIN      29
83
     #define Y_MIN_PIN      29
84
     #define Y_MAX_PIN      Y_DIAG_PIN
84
     #define Y_MAX_PIN      Y_DIAG_PIN
85
   #endif
85
   #endif
86
+
87
+#else
88
+
89
+  #define X_MIN_PIN        14   // PD4 MIN ES1
90
+  #define X_MAX_PIN        32   // PD10 MAX ES1
91
+  #define Y_MIN_PIN        29   // PD6 MIN ES2
92
+  #define Y_MAX_PIN        15   // PD5 MAX ES2
93
+
86
 #endif
94
 #endif
87
 
95
 
88
- #define Z_MIN_PIN          31   // PA7 MIN ES3
89
- #define Z_MAX_PIN          30   // PD9 MAX ES3
96
+#define Z_MIN_PIN          31   // PA7 MIN ES3
97
+#define Z_MAX_PIN          30   // PD9 MAX ES3
90
 
98
 
91
 //
99
 //
92
 // Z Probe (when not Z_MIN_PIN)
100
 // Z Probe (when not Z_MIN_PIN)
95
   #define Z_MIN_PROBE_PIN  32
103
   #define Z_MIN_PROBE_PIN  32
96
 #endif
104
 #endif
97
 
105
 
106
+#ifndef FIL_RUNOUT_PIN
107
+  #define FIL_RUNOUT_PIN   66   // D66 PB15 (Header J20 15)
108
+#endif
109
+#ifndef FIL_RUNOUT2_PIN
110
+  #define FIL_RUNOUT2_PIN  67   // D67 PB16 (Header J20 16)
111
+#endif
112
+
98
 //
113
 //
99
 // Steppers
114
 // Steppers
100
 //
115
 //
154
 //
169
 //
155
 // Heaters / Fans
170
 // Heaters / Fans
156
 //
171
 //
157
-#ifndef FAN_PIN
158
-  #define FAN_PIN           4   // D4 PC26 FET_PWM1
159
-#endif
160
-#define FAN1_PIN            5   // D5 PC25 FET_PWM2
161
-
162
 #define HEATER_0_PIN        6   // D6 PC24 FET_PWM3
172
 #define HEATER_0_PIN        6   // D6 PC24 FET_PWM3
163
 #define HEATER_1_PIN        7   // D7 PC23 FET_PWM4
173
 #define HEATER_1_PIN        7   // D7 PC23 FET_PWM4
164
 #define HEATER_2_PIN        8   // D8 PC22 FET_PWM5
174
 #define HEATER_2_PIN        8   // D8 PC22 FET_PWM5
165
 #define HEATER_BED_PIN      9   // D9 PC21 BED_PWM
175
 #define HEATER_BED_PIN      9   // D9 PC21 BED_PWM
166
 
176
 
177
+#ifndef FAN_PIN
178
+  #define FAN_PIN           4   // D4 PC26 FET_PWM1
179
+#endif
180
+#define FAN1_PIN            5   // D5 PC25 FET_PWM2
181
+
167
 //
182
 //
168
 // Misc. Functions
183
 // Misc. Functions
169
 //
184
 //
170
 
185
 
171
 // Internal MicroSD card reader on the PCB
186
 // Internal MicroSD card reader on the PCB
172
-#define INT_SCK_PIN         42   // D42 PA19/MCCK
173
-#define INT_MISO_PIN        43   // D43 PA20/MCCDA
174
-#define INT_MOSI_PIN        73   // D73 PA21/MCDA0
175
-#define INT_SDSS            55   // D55 PA24/MCDA3
176
-
177
-// The external SD card reader on SC2, as well as 2 Mbyte SPI Flash
178
-#define SCK_PIN             76   // D76 PA27
179
-#define MISO_PIN            74   // D74 PA25
180
-#define MOSI_PIN            75   // D75 PA26
181
-#define SDSS                87   // D87 PA29
182
-#define SPI_FLASH_SS        52   // D52 PB21
183
-
184
-// Filament runout sensor pins (or GPIO)
185
-#ifndef FIL_RUNOUT_PIN
186
-  #define FIL_RUNOUT_PIN    66   // D66 PB15 (Header J20 15)
187
-#endif
188
-#ifndef FIL_RUNOUT2_PIN
189
-  #define FIL_RUNOUT2_PIN   67   // D67 PB16 (Header J20 16)
190
-#endif
187
+#define INT_SCK_PIN        42   // D42 PA19/MCCK
188
+#define INT_MISO_PIN       43   // D43 PA20/MCCDA
189
+#define INT_MOSI_PIN       73   // D73 PA21/MCDA0
190
+#define INT_SDSS           55   // D55 PA24/MCDA3
191
+
192
+// External SD card reader on SC2
193
+#define SCK_PIN            76   // D76 PA27
194
+#define MISO_PIN           74   // D74 PA25
195
+#define MOSI_PIN           75   // D75 PA26
196
+#define SDSS               87   // D87 PA29
197
+
198
+// 2MB SPI Flash
199
+#define SPI_FLASH_SS       52   // D52 PB21
191
 
200
 
192
 //
201
 //
193
 // LCD / Controller
202
 // LCD / Controller
194
 //
203
 //
195
-#if ENABLED(ULTRA_LCD) || ENABLED(EXTENSIBLE_UI)
204
+#if ENABLED(ULTRA_LCD)
196
   #define BEEPER_PIN       23   // D24 PA15_CTS1
205
   #define BEEPER_PIN       23   // D24 PA15_CTS1
197
   #define LCD_PINS_RS      17   // D17 PA12_RXD1
206
   #define LCD_PINS_RS      17   // D17 PA12_RXD1
198
   #define LCD_PINS_ENABLE  24   // D23 PA14_RTS1
207
   #define LCD_PINS_ENABLE  24   // D23 PA14_RTS1
209
     #define BTN_EN2        13   // D13 PB27_TIOB0
218
     #define BTN_EN2        13   // D13 PB27_TIOB0
210
     #define BTN_ENC        16   // D16 PA13_TXD1 // the click
219
     #define BTN_ENC        16   // D16 PA13_TXD1 // the click
211
   #endif // NEWPANEL
220
   #endif // NEWPANEL
212
-#endif // ULTRA_LCD || EXTENSIBLE_UI
221
+#endif // ULTRA_LCD

Loading…
Cancel
Save