Prusa MINI Firmware overview
pins_GEN7_12.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  * Gen7 v1.1, v1.2, v1.3 pin assignments
26  */
27 
28  /**
29  * Rev B 26 DEC 2016
30  *
31  * 1) added pointer to a current Arduino IDE extension
32  * 2) added support for M3, M4 & M5 spindle control commands
33  * 3) added case light pin definition
34  *
35  */
36 
37 /**
38  * A useable Arduino IDE extension (board manager) can be found at
39  * https://github.com/Lauszus/Sanguino
40  *
41  * This extension has been tested on Arduino 1.6.12 & 1.8.0
42  *
43  * Here's the JSON path:
44  * https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json
45  *
46  * When installing select 1.0.2
47  *
48  * Installation instructions can be found at https://learn.sparkfun.com/pages/CustomBoardsArduino
49  * Just use the above JSON URL instead of Sparkfun's JSON.
50  *
51  * Once installed select the Sanguino board and then select the CPU.
52  *
53  */
54 
55 #if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__)
56  #error "Oops! Select 'Sanguino' in 'Tools > Boards' and 'ATmega644', 'ATmega644P', or 'ATmega1284P' in 'Tools > Processor.'"
57 #endif
58 
59 #ifndef BOARD_INFO_NAME
60  #define BOARD_INFO_NAME "Gen7 v1.1 / 1.2"
61 #endif
62 
63 #ifndef GEN7_VERSION
64  #define GEN7_VERSION 12 // v1.x
65 #endif
66 
67 //
68 // Limit Switches
69 //
70 #define X_MIN_PIN 7
71 #define Y_MIN_PIN 5
72 #define Z_MIN_PIN 1
73 #define Z_MAX_PIN 0
74 #define Y_MAX_PIN 2
75 #define X_MAX_PIN 6
76 
77 
78 //
79 // Z Probe (when not Z_MIN_PIN)
80 //
81 #ifndef Z_MIN_PROBE_PIN
82  #define Z_MIN_PROBE_PIN 0
83 #endif
84 
85 //
86 // Steppers
87 //
88 #define X_STEP_PIN 19
89 #define X_DIR_PIN 18
90 #define X_ENABLE_PIN 24
91 
92 #define Y_STEP_PIN 23
93 #define Y_DIR_PIN 22
94 #define Y_ENABLE_PIN 24
95 
96 #define Z_STEP_PIN 26
97 #define Z_DIR_PIN 25
98 #define Z_ENABLE_PIN 24
99 
100 #define E0_STEP_PIN 28
101 #define E0_DIR_PIN 27
102 #define E0_ENABLE_PIN 24
103 
104 //
105 // Temperature Sensors
106 //
107 #define TEMP_0_PIN 1 // Analog Input
108 #define TEMP_BED_PIN 2 // Analog Input
109 
110 //
111 // Heaters / Fans
112 //
113 #define HEATER_0_PIN 4
114 #define HEATER_BED_PIN 3
115 
116 #if !defined(FAN_PIN) && GEN7_VERSION < 13 // Gen7 v1.3 removed the fan pin
117  #define FAN_PIN 31
118 #endif
119 
120 //
121 // Misc. Functions
122 //
123 #define PS_ON_PIN 15
124 
125 #if GEN7_VERSION < 13
126  #define CASE_LIGHT_PIN 16 // Hardware PWM
127 #else // Gen7 v1.3 removed the I2C connector & signals so need to get PWM off the PC power supply header
128  #define CASE_LIGHT_PIN 15 // Hardware PWM
129 #endif
130 
131 // All these generations of Gen7 supply thermistor power
132 // via PS_ON, so ignore bad thermistor readings
133 //#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000
134 
135 #define DEBUG_PIN 0
136 
137 // RS485 pins
138 #define TX_ENABLE_PIN 12
139 #define RX_ENABLE_PIN 13
140 
141 //
142 // M3/M4/M5 - Spindle/Laser Control
143 //
144 #define SPINDLE_LASER_ENA_PIN 10 // Pullup or pulldown!
145 #define SPINDLE_DIR_PIN 11
146 #if GEN7_VERSION < 13
147  #define SPINDLE_LASER_PWM_PIN 16 // Hardware PWM
148 #else // Gen7 v1.3 removed the I2C connector & signals so need to get PWM off the PC power supply header
149  #define SPINDLE_LASER_PWM_PIN 15 // Hardware PWM
150 #endif