Prusa MINI Firmware overview
pins_GTM32_PRO_VB.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  * 24 May 2018 - @chepo for STM32F103VET6
26  * Schematic: https://github.com/chepo92/Smartto/blob/master/circuit_diagram/Rostock301/Hardware_GTM32_PRO_VB.pdf
27  */
28 
29 #ifndef __STM32F1__
30  #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
31 #endif
32 
33 #define BOARD_INFO_NAME "GTM32 Pro VB"
34 #define DEFAULT_MACHINE_NAME "STM32F103VET6"
35 
36 //#define DISABLE_DEBUG
37 
38 //
39 // It is required to disable JTAG function because its pins are
40 // used as GPIO to drive the Y axis stepper.
41 // DO NOT ENABLE!
42 //
43 #define DISABLE_JTAG
44 
45 //
46 // If you don't need the SWDIO functionality (any more), you may
47 // disable SWD here to regain PA13/PA14 pins for other use.
48 //
49 //#define DISABLE_JTAGSWD
50 
51 // Ignore temp readings during development.
52 //#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
53 
54 // Enable EEPROM Emulation for this board as it doesn't have EEPROM
55 #define FLASH_EEPROM_EMULATION
56 #define E2END 0xFFF // 4KB
57 
58 //
59 // Limit Switches
60 //
61 #define X_MIN_PIN PE5 // ENDSTOPS 15,17
62 #define X_MAX_PIN PE4 // ENDSTOPS 16,18
63 #define Y_MIN_PIN PE3 // ENDSTOPS 9,11
64 #define Y_MAX_PIN PE2 // ENDSTOPS 10,12
65 #define Z_MIN_PIN PE1 // ENDSTOPS 3,5
66 #define Z_MAX_PIN PE0 // ENDSTOPS 4,6
67 
68 //
69 // Steppers
70 //
71 #define X_STEP_PIN PC6
72 #define X_DIR_PIN PD13
73 #define X_ENABLE_PIN PA8
74 
75 #define Y_STEP_PIN PA12
76 #define Y_DIR_PIN PA11
77 #define Y_ENABLE_PIN PA15
78 
79 #define Z_STEP_PIN PD6
80 #define Z_DIR_PIN PD3
81 #define Z_ENABLE_PIN PB3
82 
83 // Extruder stepper pins
84 // NOTE: Numbering here is made according to EXT connector numbers,
85 // the FANx_PWM line numbering in the schematics is reverse.
86 // That is, E0_*_PIN are the E2_* lines connected to E2_A1 step
87 // stick that drives the EXT0 output on the board.
88 //
89 #define E0_STEP_PIN PC14
90 #define E0_DIR_PIN PC13
91 #define E0_ENABLE_PIN PC15
92 
93 #define E1_STEP_PIN PA0
94 #define E1_DIR_PIN PB6
95 #define E1_ENABLE_PIN PA1
96 
97 #define E2_STEP_PIN PB2
98 #define E2_DIR_PIN PB11
99 #define E2_ENABLE_PIN PC4
100 
101 //
102 // Heaters / Fans
103 //
104 #define HEATER_0_PIN PB0 // EXT0 port
105 #define HEATER_1_PIN PB5 // EXT1 port
106 #define HEATER_2_PIN PB4 // EXT2 port
107 #define HEATER_BED_PIN PB1 // CON2X3 hotbed port
108 
109 //
110 // These are FAN PWM pins on EXT0..EXT2 connectors.
111 //
112 //#define FAN_PIN PB9 // EXT0 port
113 #define ORIG_E0_AUTO_FAN_PIN PB9 // EXT0 port, used as main extruder fan
114 #define FAN1_PIN PB8 // EXT1 port
115 #define FAN2_PIN PB7 // EXT2 port
116 
117 //
118 // Temperature Sensors
119 //
120 #define TEMP_0_PIN PC2 // EXT0 port
121 #define TEMP_1_PIN PC1 // EXT1 port
122 #define TEMP_2_PIN PC0 // EXT2 port
123 #define TEMP_BED_PIN PC3 // CON2X3 hotbed port
124 
125 //
126 // Misc. Functions
127 //
128 #define LED_PWM PD12 // External LED, pin 2 on LED labeled connector
129 
130 //
131 // LCD / Controller
132 //
133 #if HAS_SPI_LCD
134 
135  #if ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER)
136  //
137  // LCD display on J2 FFC40
138  // Geeetech's LCD2004A Control Panel is very much like
139  // RepRapDiscount Smart Controller, but adds an FFC40 connector
140  //
141  #define LCD_PINS_RS PE6 // CS chip select /SS chip slave select
142  #define LCD_PINS_ENABLE PE14 // SID (MOSI)
143  #define LCD_PINS_D4 PD8 // SCK (CLK) clock
144  #define LCD_PINS_D5 PD9
145  #define LCD_PINS_D6 PD10
146  #define LCD_PINS_D7 PE15
147 
148  #else
149  //
150  // Serial LCDs can be implemented in ExtUI
151  //
152  //#define LCD_UART_TX PD8
153  //#define LCD_UART_RX PD9
154  #endif
155 
156  #ifndef ST7920_DELAY_1
157  #define ST7920_DELAY_1 DELAY_NS(96)
158  #endif
159  #ifndef ST7920_DELAY_2
160  #define ST7920_DELAY_2 DELAY_NS(48)
161  #endif
162  #ifndef ST7920_DELAY_3
163  #define ST7920_DELAY_3 DELAY_NS(715)
164  #endif
165 
166 #endif // HAS_SPI_LCD
167 
168 #if ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER)
169  //
170  // Geeetech's LCD2004A Control Panel is very much like
171  // RepRapDiscount Smart Controller, but adds an FFC40 connector
172  // connected with a flat wire to J2 connector on the board.
173  //
174  #define BTN_EN1 PE8
175  #define BTN_EN2 PE9
176  #define BTN_ENC PE13
177 
178  #define GTM32_PRO_VB_USE_LCD_BEEPER
179  #define GTM32_PRO_VB_USE_EXT_SDCARD
180 #endif
181 
182 //
183 // Beeper
184 //
185 #ifdef GTM32_PRO_VB_USE_LCD_BEEPER
186  // This is pin 32 on J2 FFC40 and pin, goes to the beeper
187  // on Geeetech's version of RepRapDiscount Smart Controller
188  // (e.g. on Rostock 301)
189  #define BEEPER_PIN PE12
190 #else
191  // This is the beeper on the board itself
192  #define BEEPER_PIN PB10
193 #endif
194 
195 /**
196  * The on-board TF_CARD_SOCKET microSD card socket has no SD Detect pin wired.
197  *
198  * The FFC10 (SD_CARD) connector has the same pins as those routed to the FFC40 (J2)
199  * connector, which usually go to the SD Card slot on the Geeetech version of the
200  * RepRapDiscount Smart Controller. Both connectors have the card detect signal.
201  *
202  * The on-board SD card and the external card (on either SD_CARD or J2) are two
203  * separate devices and can work simultaneously. Unfortunately, Marlin only supports
204  * a single SPI Flash device (as of 2019-07-05) so only one is enabled here.
205  */
206 #if ENABLED(GTM32_PRO_VB_USE_EXT_SDCARD)
207  //
208  // SD Card on RepRapDiscount Smart Controller (J2) or on SD_CARD connector
209  //
210  #define SS_PIN PC11
211  #define SCK_PIN PC12
212  #define MOSI_PIN PD2
213  #define MISO_PIN PC8
214  #define SD_DETECT_PIN PC7
215 #else
216  //
217  // Use the on-board card socket labeled TF_CARD_SOCKET
218  //
219  #define SS_PIN PA4
220  #define SCK_PIN PA5
221  #define MOSI_PIN PA7
222  #define MISO_PIN PA6
223  #define SD_DETECT_PIN -1 // Card detect is not connected
224 #endif
225 
226 #define SDSS SS_PIN
227 
228 //
229 // ESP WiFi can be soldered to J9 connector which is wired to USART2.
230 // Must define WIFISUPPORT in Configuration.h for the printer.
231 //
232 #define ESP_WIFI_MODULE_COM 2
233 #define ESP_WIFI_MODULE_BAUDRATE 115200
234 #define ESP_WIFI_MODULE_RESET_PIN -1