Prusa MINI Firmware overview
pins_MKS_ROBIN_LITE.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 __STM32F1__
25  #error "Oops! Select an STM32F1 board in 'Tools > Board.'"
26 #endif
27 
28 #if HOTENDS > 1 || E_STEPPERS > 1
29  #error "MKS Robin Lite supports up to 1 hotends / E-steppers. Comment out this line to continue."
30 #endif
31 
32 #ifndef BOARD_INFO_NAME
33  #define BOARD_INFO_NAME "MKS Robin Lite"
34 #endif
35 #define BOARD_WEBSITE_URL "github.com/makerbase-mks"
36 
37 //#define DISABLE_DEBUG
38 #define DISABLE_JTAG
39 #define ENABLE_SPI2
40 
41 //
42 // Limit Switches
43 //
44 #define X_STOP_PIN PC13
45 #define Y_STOP_PIN PC0
46 #define Z_MIN_PIN PC12
47 #define Z_MAX_PIN PB9
48 
49 //
50 // Steppers
51 //
52 #define X_STEP_PIN PC6
53 #define X_DIR_PIN PB12
54 #define X_ENABLE_PIN PB10
55 
56 #define Y_STEP_PIN PB11
57 #define Y_DIR_PIN PB2
58 #define Y_ENABLE_PIN PB10
59 
60 #define Z_STEP_PIN PB1
61 #define Z_DIR_PIN PC5
62 #define Z_ENABLE_PIN PB10
63 
64 #define E0_STEP_PIN PC4
65 #define E0_DIR_PIN PA5
66 #define E0_ENABLE_PIN PA4
67 
68 //
69 // Heaters / Fans
70 //
71 #define HEATER_0_PIN PC9
72 #define FAN_PIN PA8
73 #define HEATER_BED_PIN PC8
74 
75 //
76 // Temperature Sensors
77 //
78 #define TEMP_BED_PIN PA1
79 #define TEMP_0_PIN PA0
80 
81 #define FIL_RUNOUT_PIN PB8 // MT_DET
82 
83 //
84 // LCD Pins
85 //
86 #if HAS_SPI_LCD
87  #define BEEPER_PIN PD2
88  #define BTN_ENC PB3
89  #define LCD_PINS_RS PC3
90 
91  #define BTN_EN1 PB5
92  #define BTN_EN2 PB4
93 
94  #define LCD_PINS_ENABLE PC2
95 
96  #if ENABLED(MKS_MINI_12864)
97 
98  #define LCD_BACKLIGHT_PIN -1
99  #define LCD_RESET_PIN -1
100  #define DOGLCD_A0 PC1
101  #define DOGLCD_CS PC2
102  #define DOGLCD_SCK PB13
103  #define DOGLCD_MOSI PB15
104 
105  #else // !MKS_MINI_12864
106 
107  #define LCD_PINS_D4 PC1
108  #if ENABLED(ULTIPANEL)
109  #define LCD_PINS_D5 -1
110  #define LCD_PINS_D6 -1
111  #define LCD_PINS_D7 -1
112  #endif
113 
114  #endif // !MKS_MINI_12864
115 
116 #endif // HAS_SPI_LCD
117 
118 // Motor current PWM pins
119 #define MOTOR_CURRENT_PWM_XY_PIN PB0
120 #define MOTOR_CURRENT_PWM_Z_PIN PA7
121 #define MOTOR_CURRENT_PWM_E_PIN PA6
122 #define MOTOR_CURRENT_PWM_RANGE (65535/10/3.3) // (255 * (1000mA / 65535)) * 257 = 1000 is equal 1.6v Vref in turn equal 1Amp
123 #define DEFAULT_PWM_MOTOR_CURRENT { 1000, 1000, 1000 } // 1.05Amp per driver, here is XY, Z and E. This values determined empirically.
124 
125 //
126 // SD Card
127 //
128 #define ENABLE_SPI2
129 #define SD_DETECT_PIN PC10
130 #define SCK_PIN PB13
131 #define MISO_PIN P1B4
132 #define MOSI_PIN P1B5
133 #define SS_PIN PA15
134 
135 #ifndef ST7920_DELAY_1
136  #define ST7920_DELAY_1 DELAY_NS(125)
137 #endif
138 #ifndef ST7920_DELAY_2
139  #define ST7920_DELAY_2 DELAY_NS(125)
140 #endif
141 #ifndef ST7920_DELAY_3
142  #define ST7920_DELAY_3 DELAY_NS(125)
143 #endif