Prusa MINI Firmware overview
pins_HJC2560C_REV2.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  * HJC2560-C Rev2.x pin assignments
26  */
27 
28 #ifndef __AVR_ATmega2560__
29  #error "Oops! Select 'Arduino/Genuino Mega or Mega 2560' in 'Tools > Board.'"
30 #endif
31 
32 #define DEFAULT_MACHINE_NAME "ADIMLab Gantry v2"
33 #define BOARD_INFO_NAME "HJC2560-C"
34 
35 //
36 // Servos
37 //
38 //#ifndef SERVO0_PIN
39 // #define SERVO0_PIN 11
40 //#endif
41 
42 //
43 // Limit Switches
44 //
45 #define X_STOP_PIN 22
46 #define Y_STOP_PIN 26
47 #define Z_STOP_PIN 29
48 //#define EXP_STOP_PIN 28
49 
50 //
51 // Steppers
52 //
53 #define X_STEP_PIN 25
54 #define X_DIR_PIN 23
55 #define X_ENABLE_PIN 27
56 
57 #define Y_STEP_PIN 32
58 #define Y_DIR_PIN 33
59 #define Y_ENABLE_PIN 31
60 
61 #define Z_STEP_PIN 35
62 #define Z_DIR_PIN 36
63 #define Z_ENABLE_PIN 34
64 
65 #define E0_STEP_PIN 42
66 #define E0_DIR_PIN 43
67 #define E0_ENABLE_PIN 37
68 
69 #define E1_STEP_PIN 49
70 #define E1_DIR_PIN 47
71 #define E1_ENABLE_PIN 48
72 
73 #define MOTOR_CURRENT_PWM_XY_PIN 44
74 #define MOTOR_CURRENT_PWM_Z_PIN 45
75 #define MOTOR_CURRENT_PWM_E_PIN 46
76 // Motor current PWM conversion, PWM value = MotorCurrentSetting * 255 / range
77 #ifndef MOTOR_CURRENT_PWM_RANGE
78  #define MOTOR_CURRENT_PWM_RANGE 2000
79 #endif
80 #define DEFAULT_PWM_MOTOR_CURRENT { 1300, 1300, 1250 }
81 
82 //
83 // Temperature Sensors
84 //
85 #define TEMP_0_PIN 8 // Analog Input
86 #define TEMP_1_PIN 9 // Analog Input
87 #define TEMP_BED_PIN 10 // Analog Input
88 
89 //
90 // Heaters / Fans
91 //
92 #define HEATER_0_PIN 2
93 #define HEATER_1_PIN 3
94 #define HEATER_BED_PIN 4
95 
96 #ifndef FAN_PIN
97  #define FAN_PIN 7 //默认不使用PWM_FAN冷却喷嘴,如果需要,则取消注释
98 #endif
99 
100 //
101 // Misc. Functions
102 //
103 #define SDSS 53
104 #define SD_DETECT_PIN 39
105 //#define LED_PIN 8
106 #define CASE_LIGHT_PIN 8 // 8 默认挤出机风扇作为Case LED,如果需要PWM FAN,则需要将FAN_PIN置为7,LED_PIN置为8
107 
108 //#define SAFETY_TRIGGERED_PIN 28 // PIN to detect the safety circuit has triggered
109 //#define MAIN_VOLTAGE_MEASURE_PIN 14 // ANALOG PIN to measure the main voltage, with a 100k - 4k7 resitor divider.
110 
111 //
112 // M3/M4/M5 - Spindle/Laser Control
113 //
114 #if ENABLED(SPINDLE_LASER_ENABLE)
115  #define SPINDLE_DIR_PIN 16
116  #define SPINDLE_LASER_ENABLE_PIN 17 // Pin should have a pullup!
117  #define SPINDLE_LASER_PWM_PIN 9 // Hardware PWM
118 #endif
119 
120 //
121 // LCD / Controller
122 //
123 #if HAS_SPI_LCD
124 
125  #define BEEPER_PIN 18
126 
127  #if ENABLED(NEWPANEL)
128 
129  #define LCD_PINS_RS 20 // LCD_CS
130  #define LCD_PINS_ENABLE 15 // LCD_SDA
131  #define LCD_PINS_D4 14 // LCD_SCK
132 
133  #if ENABLED(HJC_LCD_SMART_CONTROLLER)
134  #define LCD_BACKLIGHT_PIN 5 // LCD_Backlight
135  //#ifndef LCD_CONTRAST_PIN
136  // #define LCD_CONTRAST_PIN 5 // LCD_Contrast
137  //#endif
138  #ifndef FIL_RUNOUT_PIN
139  #define FIL_RUNOUT_PIN 24 // Filament runout
140  #endif
141  #else
142  #define LCD_PINS_D5 21
143  #define LCD_PINS_D6 5
144  #define LCD_PINS_D7 6
145  #endif
146 
147  #define BTN_EN1 41
148  #define BTN_EN2 40
149  #define BTN_ENC 19
150 
151  #define SD_DETECT_PIN 39
152 
153  #else
154 
155  // Buttons attached to a shift register
156  #define SHIFT_CLK 38
157  #define SHIFT_LD 42
158  #define SHIFT_OUT 40
159  #define SHIFT_EN 17
160 
161  #define LCD_PINS_RS 16
162  #define LCD_PINS_ENABLE 5
163  #define LCD_PINS_D4 6
164  #define LCD_PINS_D5 21
165  #define LCD_PINS_D6 20
166  #define LCD_PINS_D7 19
167 
168  #endif // !NEWPANEL
169 
170 #endif // HAS_SPI_LCD