Prusa MINI Firmware overview
pins_BLACK_STM32F407VE.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  * STM32F407VET6 with RAMPS-like shield
26  * 'Black' STM32F407VET6 board - http://wiki.stm32duino.com/index.php?title=STM32F407
27  * Shield - https://github.com/jmz52/Hardware
28  */
29 
30 #if !defined(STM32F4) && !defined(STM32F4xx)
31  #error "Oops! Select an STM32F4 board in 'Tools > Board.'"
32 #elif HOTENDS > 2 || E_STEPPERS > 2
33  #error "Black STM32F4VET6 supports up to 2 hotends / E-steppers."
34 #endif
35 
36 #ifndef BOARD_INFO_NAME
37  #define BOARD_INFO_NAME "Black STM32F4VET6"
38 #endif
39 
40 #define DEFAULT_MACHINE_NAME "STM32F407VET6"
41 
42 //#define I2C_EEPROM
43 //#define E2END 0x1FFF // 8KB
44 #define SRAM_EEPROM_EMULATION
45 
46 //
47 // Servos
48 //
49 #define SERVO0_PIN PC6
50 #define SERVO1_PIN PC7
51 
52 //
53 // Limit Switches
54 //
55 #define X_MIN_PIN PC13
56 #define X_MAX_PIN PA15
57 #define Y_MIN_PIN PA5
58 #define Y_MAX_PIN PD12
59 #define Z_MIN_PIN PD14
60 #define Z_MAX_PIN PD15
61 
62 //
63 // Steppers
64 //
65 #define X_STEP_PIN PC4
66 #define X_DIR_PIN PA4
67 #define X_ENABLE_PIN PE7
68 
69 #define Y_STEP_PIN PE5
70 #define Y_DIR_PIN PE2
71 #define Y_ENABLE_PIN PE6
72 
73 #define Z_STEP_PIN PD5
74 #define Z_DIR_PIN PD3
75 #define Z_ENABLE_PIN PD6
76 
77 #define E0_STEP_PIN PD7
78 #define E0_DIR_PIN PD0
79 #define E0_ENABLE_PIN PB9
80 
81 #define E1_STEP_PIN PE0
82 #define E1_DIR_PIN PE1
83 #define E1_ENABLE_PIN PB8
84 
85 //
86 // Temperature Sensors
87 //
88 #define TEMP_0_PIN PC0 // T0
89 #define TEMP_1_PIN PC1 // T1
90 #define TEMP_BED_PIN PC2 // TB
91 
92 #ifndef TEMP_CHAMBER_PIN
93  #define TEMP_CHAMBER_PIN PC3 // TC
94 #endif
95 
96 //
97 // Heaters / Fans
98 //
99 #define HEATER_0_PIN PA2 // Heater0
100 #define HEATER_1_PIN PA3 // Heater1
101 #define HEATER_BED_PIN PA1 // Hotbed
102 
103 #define FAN_PIN PE9 // Fan0
104 #define FAN1_PIN PE11 // Fan1
105 #define FAN2_PIN PE13 // Fan2
106 #define FAN3_PIN PE14 // Fan3
107 
108 //
109 // Misc. Functions
110 //
111 #define SDSS PB12
112 #define LED_PIN PA6
113 //#define LED_PIN PA7
114 #define KILL_PIN PB1
115 
116 //
117 // LCD / Controller
118 //
119 #define SD_DETECT_PIN PC5
120 //#define SD_DETECT_PIN PA8 // SDIO SD_DETECT_PIN, external SDIO card reader only
121 
122 #define BEEPER_PIN PD10
123 #define LCD_PINS_RS PE15
124 #define LCD_PINS_ENABLE PD8
125 #define LCD_PINS_D4 PE10
126 #define LCD_PINS_D5 PE12
127 #define LCD_PINS_D6 PD1
128 #define LCD_PINS_D7 PE8
129 #define BTN_ENC PD9
130 #define BTN_EN1 PD4
131 #define BTN_EN2 PD13
132 
133 #define DOGLCD_CS LCD_PINS_D5
134 #define DOGLCD_A0 LCD_PINS_D6