Prusa MINI Firmware overview
pins_GMARSH_X6_REV1.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_LPC1768
25  #error "Oops! Make sure you have the LPC1768 environment selected in your IDE."
26 #endif
27 
28 #define BOARD_INFO_NAME "GMARSH X6 REV1"
29 
30 // Ignore temp readings during develpment.
31 //#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
32 
33 //
34 // Enable 12MHz clock output on P1.27 pin to sync TMC2208 chip clocks
35 //
36 #define LPC1768_ENABLE_CLKOUT_12M
37 
38 //
39 // Servos
40 //
41 #define SERVO0_PIN P1_26 // PWM1[6]
42 #define SERVO1_PIN P1_18 // PWM1[1]
43 
44 //
45 // Limit Switches
46 //
47 #define X_MIN_PIN P0_00
48 #define X_MAX_PIN P0_01
49 #define Y_MIN_PIN P0_10
50 #define Y_MAX_PIN P0_21
51 #define Z_MIN_PIN P2_13
52 #define Z_MAX_PIN P2_22
53 
54 //
55 // Steppers
56 //
57 
58 #define X_STEP_PIN P1_01
59 #define X_DIR_PIN P1_04
60 #define X_ENABLE_PIN P0_26
61 
62 #define Y_STEP_PIN P1_10
63 #define Y_DIR_PIN P1_14
64 #define Y_ENABLE_PIN P1_08
65 
66 #define Z_STEP_PIN P1_17
67 #define Z_DIR_PIN P4_29
68 #define Z_ENABLE_PIN P1_15
69 
70 #define E0_STEP_PIN P0_05
71 #define E0_DIR_PIN P2_00
72 #define E0_ENABLE_PIN P4_28
73 
74 #define E1_STEP_PIN P2_03
75 #define E1_DIR_PIN P2_04
76 #define E1_ENABLE_PIN P2_01
77 
78 #define E2_STEP_PIN P2_07
79 #define E2_DIR_PIN P2_08
80 #define E2_ENABLE_PIN P2_05
81 
82 //
83 // TMC2208 UART pins
84 //
85 #if HAS_DRIVER(TMC2208)
86  #define X_SERIAL_TX_PIN P1_00
87  #define X_SERIAL_RX_PIN P1_00
88  #define Y_SERIAL_TX_PIN P1_09
89  #define Y_SERIAL_RX_PIN P1_09
90  #define Z_SERIAL_TX_PIN P1_16
91  #define Z_SERIAL_RX_PIN P1_16
92  #define E0_SERIAL_TX_PIN P0_04
93  #define E0_SERIAL_RX_PIN P0_04
94  #define E1_SERIAL_TX_PIN P2_02
95  #define E1_SERIAL_RX_PIN P2_02
96  #define E2_SERIAL_TX_PIN P2_06
97  #define E2_SERIAL_RX_PIN P2_06
98 #else
99  #error "TMC2208 UART configuration is required for GMarsh X6."
100 #endif
101 
102 //
103 // Temperature Sensors
104 // 3.3V max when defined as an analog input
105 //
106 #define TEMP_0_PIN 1 // AD0[0] on P0_23
107 #define TEMP_BED_PIN 0 // AD0[1] on P0_24
108 
109 //
110 // Heaters / Fans
111 //
112 #define HEATER_BED_PIN P1_19 // Not a PWM pin, software PWM required
113 #define HEATER_0_PIN P3_26 // PWM1[3]
114 #define FAN_PIN P3_25 // Part cooling fan - connected to PWM1[2]
115 #define E0_AUTO_FAN_PIN P0_27 // Extruder cooling fan
116 
117 //
118 // Misc. Functions
119 //
120 #define LED_PIN P1_31
121 
122 //
123 // LCD
124 //
125 #if ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER)
126  #define BEEPER_PIN P0_19
127  #define BTN_EN1 P1_23
128  #define BTN_EN2 P1_24
129  #define BTN_ENC P1_25
130  #define LCD_PINS_RS P0_20
131  #define LCD_PINS_ENABLE P0_21
132  #define LCD_PINS_D4 P2_11
133  #define LCD_PINS_D5 P0_22
134  #define LCD_PINS_D6 P1_29
135  #define LCD_PINS_D7 P1_28
136 #endif
137 
138 //
139 // SD Support
140 //
141 
142 #ifndef SDCARD_CONNECTION
143  #define SDCARD_CONNECTION LCD
144 #endif
145 
146 #define ONBOARD_SD_CS_PIN P0_06 // Chip select for "System" SD card
147 
148 #if SD_CONNECTION_IS(LCD)
149  #define SCK_PIN P0_15
150  #define MISO_PIN P0_17
151  #define MOSI_PIN P0_18
152  #define SS_PIN P0_16
153 #elif SD_CONNECTION_IS(ONBOARD)
154  #undef SD_DETECT_PIN
155  #define SD_DETECT_PIN P0_27
156  #define SCK_PIN P0_07
157  #define MISO_PIN P0_08
158  #define MOSI_PIN P0_09
159  #define SS_PIN ONBOARD_SD_CS_PIN
160 #endif