Prusa MINI Firmware overview
pins_Z_BOLT_X_SERIES.h
Go to the documentation of this file.
1 /**
2  * Marlin 3D Printer Firmware
3  * Copyright (c) 2019 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 #pragma once
23 
24 /**
25  * Z-Bolt X Series board – based on Arduino Mega2560
26  */
27 
28 #ifndef __AVR_ATmega2560__
29  #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
30 #elif HOTENDS > 4 || E_STEPPERS > 4
31  #error "Z-Bolt X Series board supports up to 4 hotends / E-steppers."
32 #endif
33 
34 #define BOARD_INFO_NAME "Z-Bolt X Series"
35 
36 //
37 // Servos
38 //
39 #ifndef SERVO0_PIN
40  #define SERVO0_PIN 11
41 #endif
42 #ifndef SERVO3_PIN
43  #define SERVO3_PIN 4
44 #endif
45 
46 //
47 // Limit Switches
48 //
49 #define X_MIN_PIN 3
50 #ifndef X_MAX_PIN
51  #define X_MAX_PIN 2
52 #endif
53 #define Y_MIN_PIN 14
54 #define Y_MAX_PIN 15
55 #define Z_MIN_PIN 18
56 #define Z_MAX_PIN 19
57 
58 //
59 // Z Probe (when not Z_MIN_PIN)
60 //
61 #ifndef Z_MIN_PROBE_PIN
62  #define Z_MIN_PROBE_PIN 32
63 #endif
64 
65 //
66 // Steppers
67 //
68 #define X_STEP_PIN 54
69 #define X_DIR_PIN 55
70 #define X_ENABLE_PIN 38
71 #ifndef X_CS_PIN
72  #define X_CS_PIN -1
73 #endif
74 
75 #define Y_STEP_PIN 60
76 #define Y_DIR_PIN 61
77 #define Y_ENABLE_PIN 56
78 #ifndef Y_CS_PIN
79  #define Y_CS_PIN -1
80 #endif
81 
82 #define Z_STEP_PIN 46
83 #define Z_DIR_PIN 48
84 #define Z_ENABLE_PIN 62
85 #ifndef Z_CS_PIN
86  #define Z_CS_PIN -1
87 #endif
88 
89 #define E0_STEP_PIN 26
90 #define E0_DIR_PIN 28
91 #define E0_ENABLE_PIN 24
92 #ifndef E0_CS_PIN
93  #define E0_CS_PIN -1
94 #endif
95 
96 #define E1_STEP_PIN 36
97 #define E1_DIR_PIN 34
98 #define E1_ENABLE_PIN 30
99 #ifndef E1_CS_PIN
100  #define E1_CS_PIN -1
101 #endif
102 
103 // Red
104 #define E2_STEP_PIN 42
105 #define E2_DIR_PIN 40
106 #define E2_ENABLE_PIN 65
107 #ifndef E2_CS_PIN
108  #define E2_CS_PIN -1
109 #endif
110 
111 // Black
112 #define E3_STEP_PIN 44
113 #define E3_DIR_PIN 64
114 #define E3_ENABLE_PIN 66
115 #ifndef E3_CS_PIN
116  #define E3_CS_PIN -1
117 #endif
118 
119 //
120 // Temperature Sensors
121 //
122 #define TEMP_0_PIN 13 // Analog Input
123 #define TEMP_1_PIN 15 // Analog Input
124 #define TEMP_2_PIN 5 // Analog Input (BLACK)
125 #define TEMP_3_PIN 9 // Analog Input (RED)
126 #define TEMP_BED_PIN 14 // Analog Input
127 
128 //
129 // Heaters / Fans
130 //
131 #define HEATER_0_PIN 10
132 #define HEATER_1_PIN 7
133 #define HEATER_2_PIN 6
134 #define HEATER_3_PIN 5
135 #define HEATER_BED_PIN 8
136 
137 #define FAN_PIN 9
138 
139 //
140 // Misc. Functions
141 //
142 #define SDSS 53
143 #define LED_PIN 13
144 
145 #ifndef FILWIDTH_PIN
146  #define FILWIDTH_PIN 5 // Analog Input on AUX2
147 #endif
148 
149 // Оn the servos connector
150 #ifndef FIL_RUNOUT_PIN
151  #define FIL_RUNOUT_PIN 4
152 #endif
153 
154 #ifndef PS_ON_PIN
155  #define PS_ON_PIN 12
156 #endif
157 
158 #if ENABLED(CASE_LIGHT_ENABLE) && !defined(CASE_LIGHT_PIN) && !defined(SPINDLE_LASER_ENA_PIN)
159  #if NUM_SERVOS <= 1 // Prefer the servo connector
160  #define CASE_LIGHT_PIN 6 // Hardware PWM
161  #elif HAS_FREE_AUX2_PINS
162  #define CASE_LIGHT_PIN 44 // Hardware PWM
163  #endif
164 #endif
165 
166 //
167 // M3/M4/M5 - Spindle/Laser Control
168 //
169 #if HAS_CUTTER && !PIN_EXISTS(SPINDLE_LASER_ENA)
170  #if !defined(NUM_SERVOS) || NUM_SERVOS == 0 // Prefer the servo connector
171  #define SPINDLE_LASER_ENA_PIN 4 // Pullup or pulldown!
172  #define SPINDLE_LASER_PWM_PIN 6 // Hardware PWM
173  #define SPINDLE_DIR_PIN 5
174  #elif HAS_FREE_AUX2_PINS
175  #define SPINDLE_LASER_ENA_PIN 40 // Pullup or pulldown!
176  #define SPINDLE_LASER_PWM_PIN 44 // Hardware PWM
177  #define SPINDLE_DIR_PIN 65
178  #endif
179 #endif
180 
181 //
182 // TMC software SPI
183 //
184 #if ENABLED(TMC_USE_SW_SPI)
185  #ifndef TMC_SW_MOSI
186  #define TMC_SW_MOSI 66
187  #endif
188  #ifndef TMC_SW_MISO
189  #define TMC_SW_MISO 44
190  #endif
191  #ifndef TMC_SW_SCK
192  #define TMC_SW_SCK 64
193  #endif
194 #endif
195 
196 #if HAS_DRIVER(TMC2208)
197  /**
198  * TMC2208 stepper drivers
199  *
200  * Hardware serial communication ports.
201  * If undefined software serial is used according to the pins below
202  */
203  //#define X_HARDWARE_SERIAL Serial1
204  //#define X2_HARDWARE_SERIAL Serial1
205  //#define Y_HARDWARE_SERIAL Serial1
206  //#define Y2_HARDWARE_SERIAL Serial1
207  //#define Z_HARDWARE_SERIAL Serial1
208  //#define Z2_HARDWARE_SERIAL Serial1
209  //#define E0_HARDWARE_SERIAL Serial1
210  //#define E1_HARDWARE_SERIAL Serial1
211  //#define E2_HARDWARE_SERIAL Serial1
212  //#define E3_HARDWARE_SERIAL Serial1
213  //#define E4_HARDWARE_SERIAL Serial1
214 
215  //
216  // Software serial
217  //
218 
219  #ifndef X_SERIAL_TX_PIN
220  #define X_SERIAL_TX_PIN 40
221  #endif
222  #ifndef X_SERIAL_RX_PIN
223  #define X_SERIAL_RX_PIN 63
224  #endif
225  #ifndef X2_SERIAL_TX_PIN
226  #define X2_SERIAL_TX_PIN -1
227  #endif
228  #ifndef X2_SERIAL_RX_PIN
229  #define X2_SERIAL_RX_PIN -1
230  #endif
231 
232  #ifndef Y_SERIAL_TX_PIN
233  #define Y_SERIAL_TX_PIN 59
234  #endif
235  #ifndef Y_SERIAL_RX_PIN
236  #define Y_SERIAL_RX_PIN 64
237  #endif
238  #ifndef Y2_SERIAL_TX_PIN
239  #define Y2_SERIAL_TX_PIN -1
240  #endif
241  #ifndef Y2_SERIAL_RX_PIN
242  #define Y2_SERIAL_RX_PIN -1
243  #endif
244 
245  #ifndef Z_SERIAL_TX_PIN
246  #define Z_SERIAL_TX_PIN 42
247  #endif
248  #ifndef Z_SERIAL_RX_PIN
249  #define Z_SERIAL_RX_PIN 65
250  #endif
251  #ifndef Z2_SERIAL_TX_PIN
252  #define Z2_SERIAL_TX_PIN -1
253  #endif
254  #ifndef Z2_SERIAL_RX_PIN
255  #define Z2_SERIAL_RX_PIN -1
256  #endif
257 
258  #ifndef E0_SERIAL_TX_PIN
259  #define E0_SERIAL_TX_PIN 44
260  #endif
261  #ifndef E0_SERIAL_RX_PIN
262  #define E0_SERIAL_RX_PIN 66
263  #endif
264  #ifndef E1_SERIAL_TX_PIN
265  #define E1_SERIAL_TX_PIN -1
266  #endif
267  #ifndef E1_SERIAL_RX_PIN
268  #define E1_SERIAL_RX_PIN -1
269  #endif
270  #ifndef E2_SERIAL_TX_PIN
271  #define E2_SERIAL_TX_PIN -1
272  #endif
273  #ifndef E2_SERIAL_RX_PIN
274  #define E2_SERIAL_RX_PIN -1
275  #endif
276  #ifndef E3_SERIAL_TX_PIN
277  #define E3_SERIAL_TX_PIN -1
278  #endif
279  #ifndef E3_SERIAL_RX_PIN
280  #define E3_SERIAL_RX_PIN -1
281  #endif
282  #ifndef E4_SERIAL_TX_PIN
283  #define E4_SERIAL_TX_PIN -1
284  #endif
285  #ifndef E4_SERIAL_RX_PIN
286  #define E4_SERIAL_RX_PIN -1
287  #endif
288 #endif