Prusa MINI Firmware overview
pins_BIGTREE_SKR_PRO_V1.1.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 #ifndef TARGET_STM32F4
25  #error "Oops! Select an STM32F4 board in 'Tools > Board.'"
26 #elif HOTENDS > 3 || E_STEPPERS > 3
27  #error "BIGTREE SKR Pro V1.1 supports up to 3 hotends / E-steppers."
28 #endif
29 
30 #define BOARD_INFO_NAME "BIGTREE SKR Pro 1.1" // redefined?
31 
32 // Use one of these or SDCard-based Emulation will be used
33 //#define SRAM_EEPROM_EMULATION // Use BackSRAM-based EEPROM emulation
34 //#define FLASH_EEPROM_EMULATION // Use Flash-based EEPROM emulation
35 
36 //
37 // Servos
38 //
39 #define SERVO0_PIN PA1
40 
41 //
42 // Limit Switches
43 //
44 #define X_MIN_PIN PB10
45 #define X_MAX_PIN PE15
46 #define Y_MIN_PIN PE12
47 #define Y_MAX_PIN PE10
48 #define Z_MIN_PIN PG8
49 #define Z_MAX_PIN PG5
50 
51 //
52 // Z Probe must be this pins
53 //
54 #ifndef Z_MIN_PROBE_PIN
55  #define Z_MIN_PROBE_PIN PA2
56 #endif
57 
58 //
59 // Steppers
60 //
61 #define X_STEP_PIN PE9
62 #define X_DIR_PIN PF1
63 #define X_ENABLE_PIN PF2
64 #ifndef X_CS_PIN
65  #define X_CS_PIN PA15
66 #endif
67 
68 #define Y_STEP_PIN PE11
69 #define Y_DIR_PIN PE8
70 #define Y_ENABLE_PIN PD7
71  #ifndef Y_CS_PIN
72  #define Y_CS_PIN PB8
73 #endif
74 
75 #define Z_STEP_PIN PE13
76 #define Z_DIR_PIN PC2
77 #define Z_ENABLE_PIN PC0
78 #ifndef Z_CS_PIN
79  #define Z_CS_PIN PB9
80 #endif
81 
82 #define E0_STEP_PIN PE14
83 #define E0_DIR_PIN PA0
84 #define E0_ENABLE_PIN PC3
85 #ifndef E0_CS_PIN
86  #define E0_CS_PIN PB3
87 #endif
88 
89 #define E1_STEP_PIN PD15
90 #define E1_DIR_PIN PE7
91 #define E1_ENABLE_PIN PA3
92 #ifndef E1_CS_PIN
93  #define E1_CS_PIN PG15
94 #endif
95 
96 #define E2_STEP_PIN PD13
97 #define E2_DIR_PIN PG9
98 #define E2_ENABLE_PIN PF0
99 #ifndef E2_CS_PIN
100  #define E2_CS_PIN PG12
101 #endif
102 
103 //
104 // Software SPI pins for TMC2130 stepper drivers
105 //
106 #if ENABLED(TMC_USE_SW_SPI)
107  #ifndef TMC_SW_MOSI
108  #define TMC_SW_MOSI PC12
109  #endif
110  #ifndef TMC_SW_MISO
111  #define TMC_SW_MISO PC11
112  #endif
113  #ifndef TMC_SW_SCK
114  #define TMC_SW_SCK PC10
115  #endif
116 #endif
117 
118 #if HAS_TMC220x
119  /**
120  * TMC2208/TMC2209 stepper drivers
121  *
122  * Hardware serial communication ports.
123  * If undefined software serial is used according to the pins below
124  */
125  //#define X_HARDWARE_SERIAL Serial
126  //#define X2_HARDWARE_SERIAL Serial1
127  //#define Y_HARDWARE_SERIAL Serial1
128  //#define Y2_HARDWARE_SERIAL Serial1
129  //#define Z_HARDWARE_SERIAL Serial1
130  //#define Z2_HARDWARE_SERIAL Serial1
131  //#define E0_HARDWARE_SERIAL Serial1
132  //#define E1_HARDWARE_SERIAL Serial1
133  //#define E2_HARDWARE_SERIAL Serial1
134  //#define E3_HARDWARE_SERIAL Serial1
135  //#define E4_HARDWARE_SERIAL Serial1
136 
137  //
138  // Software serial
139  //
140  #define X_SERIAL_TX_PIN PC13
141  #define X_SERIAL_RX_PIN PC13
142 
143  #define Y_SERIAL_TX_PIN PE3
144  #define Y_SERIAL_RX_PIN PE3
145 
146  #define Z_SERIAL_TX_PIN PE1
147  #define Z_SERIAL_RX_PIN PE1
148 
149  #define E0_SERIAL_TX_PIN PD4
150  #define E0_SERIAL_RX_PIN PD4
151 
152  #define E1_SERIAL_TX_PIN PD1
153  #define E1_SERIAL_RX_PIN PD1
154 
155  #define E2_SERIAL_TX_PIN PD6
156  #define E2_SERIAL_RX_PIN PD6
157 #endif
158 
159 //
160 // Temperature Sensors
161 //
162 #define TEMP_0_PIN PF4 // T1 <-> E0
163 #define TEMP_1_PIN PF5 // T2 <-> E1
164 #define TEMP_2_PIN PF6 // T3 <-> E2
165 #define TEMP_BED_PIN PF3 // T0 <-> Bed
166 
167 //
168 // Heaters / Fans
169 //
170 #define HEATER_0_PIN PB1 // Heater0
171 #define HEATER_1_PIN PD14 // Heater1
172 #define HEATER_2_PIN PB0 // Heater1
173 #define HEATER_BED_PIN PD12 // Hotbed
174 #define FAN_PIN PC8 // Fan0
175 #define FAN1_PIN PE5 // Fan1
176 #define FAN2_PIN PE6 // Fan2
177 
178 //
179 // Misc. Functions
180 //
181 #define SDSS PB12
182 
183 /**
184  * _____ _____
185  * NC | · · | GND 5V | · · | GND
186  * RESET | · · | PF12(SD_DETECT) (LCD_D7) PG7 | · · | PG6 (LCD_D6)
187  * (MOSI)PB15 | · · | PF11(BTN_EN2) (LCD_D5) PG3 | · · | PG2 (LCD_D4)
188  * (SD_SS)PB12 | · · | PG10(BTN_EN1) (LCD_RS) PD10 | · · | PD11 (LCD_EN)
189  * (SCK)PB13 | · · | PB14(MISO) (BTN_ENC) PA8 | · · | PG4 (BEEPER)
190  *  ̄ ̄  ̄ ̄
191  * EXP2 EXP1
192  */
193 
194 //
195 // LCDs and Controllers
196 //
197 #if HAS_SPI_LCD
198  #define BEEPER_PIN PG4
199  #define BTN_ENC PA8
200 
201  #if ENABLED(CR10_STOCKDISPLAY)
202  #define LCD_PINS_RS PG6
203 
204  #define BTN_EN1 PD11
205  #define BTN_EN2 PG2
206 
207  #define LCD_PINS_ENABLE PG7
208  #define LCD_PINS_D4 PG3
209 
210  // CR10_Stock Display needs a different delay setting on SKR PRO v1.1, so undef it here.
211  // It will be defined again at the #HAS_GRAPHICAL_LCD section below.
212  #undef ST7920_DELAY_1
213  #undef ST7920_DELAY_2
214  #undef ST7920_DELAY_3
215 
216 
217  #else
218 
219  #define LCD_PINS_RS PD10
220 
221  #define BTN_EN1 PG10
222  #define BTN_EN2 PF11
223  #define SD_DETECT_PIN PF12
224 
225  #define LCD_SDSS PB12
226 
227  #define LCD_PINS_ENABLE PD11
228  #define LCD_PINS_D4 PG2
229 
230  #if ENABLED(FYSETC_MINI_12864)
231  #define DOGLCD_CS PD11
232  #define DOGLCD_A0 PD10
233  //#define LCD_BACKLIGHT_PIN -1
234  #define LCD_RESET_PIN PG2 // Must be high or open for LCD to operate normally.
235  #if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
236  #ifndef RGB_LED_R_PIN
237  #define RGB_LED_R_PIN PG3
238  #endif
239  #ifndef RGB_LED_G_PIN
240  #define RGB_LED_G_PIN PG6
241  #endif
242  #ifndef RGB_LED_B_PIN
243  #define RGB_LED_B_PIN PG7
244  #endif
245  #elif ENABLED(FYSETC_MINI_12864_2_1)
246  #define NEOPIXEL_PIN PG3
247  #endif
248  #endif // !FYSETC_MINI_12864
249 
250  #if ENABLED(ULTIPANEL)
251  #define LCD_PINS_D5 PG3
252  #define LCD_PINS_D6 PG6
253  #define LCD_PINS_D7 PG7
254  #endif
255 
256  #endif
257 
258  // Alter timing for graphical display
259  #if HAS_GRAPHICAL_LCD
260  #ifndef ST7920_DELAY_1
261  #define ST7920_DELAY_1 DELAY_NS(96)
262  #endif
263  #ifndef ST7920_DELAY_2
264  #define ST7920_DELAY_2 DELAY_NS(48)
265  #endif
266  #ifndef ST7920_DELAY_3
267  #define ST7920_DELAY_3 DELAY_NS(600)
268  #endif
269  #endif
270 
271 #endif // HAS_SPI_LCD