Prusa MINI Firmware overview
pins_TEENSYLU.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 
23 /**
24  * Rev C 2 JUN 2017
25  *
26  * Converted to Arduino pin numbering
27  */
28 
29 /**
30  * There are two Arduino IDE extensions that are compatible with this board
31  * and with the mainstream Marlin software. All have been used with Arduino 1.6.12
32  *
33  * Teensyduino - http://www.pjrc.com/teensy/teensyduino.html
34  * Select Teensy++ 2.0 in Arduino IDE from the 'Tools > Board' menu
35  *
36  * Installation instructions are at the above URL. Don't bother loading the
37  * libraries - they are not used with the Marlin software.
38  *
39  * Printrboard - https://github.com/scwimbush/Printrboard-HID-Arduino-IDE-Support
40  * This is basically Teensyduino but with a bootloader that can handle image sizes
41  * larger than 64K.
42  *
43  * Installation:
44  *
45  * 1. Go to the above URL, click on the "Clone or Download" button and then
46  * click on "Download ZIP" button.
47  * 2. Unzip the file, find the "printrboard" directory and then copy it to the
48  * hardware directory in Arduino. The Arduino hardware directory will probably
49  * be located in a path similar to this: C:\Program Files (x86)\Arduino\hardware.
50  * 3. Restart Arduino.
51  * 4. Select "Printrboard" from the 'Tools > Board' menu.
52  *
53  * Teensyduino is the most popular option. Printrboard is used if your board doesn't have
54  * the Teensyduino bootloader on it.
55  */
56 
57 /**
58  * To burn the bootloader that comes with Printrboard:
59  *
60  * 1. Connect your programmer to the board.
61  * 2. In the Arduino IDE select "Printrboard" and then select the programmer.
62  * 3. In the Arduino IDE click on "burn bootloader". Don't worry about the "verify failed at 1F000" error message.
63  * 4. The programmer is no longer needed. Remove it.
64  */
65 
66  /**
67  * SILKSCREEN ERROR
68  *
69  * The silkscreen for the endstops do NOT match the schematic. The silkscreen SHOULD
70  * read (from left to right) X-STOP, Y-STOP, Z-STOP & E-STOP. The silkscreen actually
71  * reads E-STOP, X-STOP, Y-STOP & Z-STOP.
72  *
73  * The pin assignments in this file match the silkscreen.
74  */
75 
76 #if !defined(__AVR_AT90USB1286__) && !defined(__AVR_AT90USB1286P__)
77  #error "Oops! Select 'Teensy++ 2.0' or 'Printrboard' in 'Tools > Board.'"
78 #endif
79 
80 #define BOARD_INFO_NAME "Teensylu"
81 
82 //
83 // Limit Switch definitions that match the SCHEMATIC
84 //
85 //#define X_STOP_PIN 25 // B5
86 //#define Y_STOP_PIN 26 // B6
87 //#define Z_STOP_PIN 27 // B7
88 //#define E_STOP_PIN 36 // E4
89 
90 
91 //
92 // Limit Switch definitions that match the SILKSCREEN
93 //
94 #define X_STOP_PIN 26 // B6
95 #define Y_STOP_PIN 27 // B7
96 #define Z_STOP_PIN 36 // E4
97 //#define E_STOP_PIN 25 // B5
98 
99 //
100 // Steppers
101 //
102 #define X_STEP_PIN 28 // A0
103 #define X_DIR_PIN 29 // A1
104 #define X_ENABLE_PIN 19 // E7
105 
106 #define Y_STEP_PIN 30 // A2
107 #define Y_DIR_PIN 31 // A3
108 #define Y_ENABLE_PIN 18 // E6
109 
110 #define Z_STEP_PIN 32 // A4
111 #define Z_DIR_PIN 33 // A5
112 #define Z_ENABLE_PIN 17 // C7
113 
114 #define E0_STEP_PIN 34 // A6
115 #define E0_DIR_PIN 35 // A7
116 #define E0_ENABLE_PIN 13 // C3
117 
118 //
119 // Temperature Sensors
120 //
121 #define TEMP_0_PIN 7 // Analog Input (Extruder)
122 #define TEMP_BED_PIN 6 // Analog Input (Bed)
123 
124 //
125 // Heaters / Fans
126 //
127 #define HEATER_0_PIN 15 // C5 PWM3B - Extruder
128 #define HEATER_BED_PIN 14 // C4 PWM3C
129 
130 #ifndef FAN_PIN
131  #define FAN_PIN 16 // C6 PWM3A
132 #endif
133 
134 //
135 // Misc. Functions
136 //
137 #define SDSS 20 // B0 JP31-6
138 #define CASE_LIGHT_PIN 0 // D0 IO-14 PWM0B
139 
140 //
141 // LCD / Controller
142 //
143 #if BOTH(ULTRA_LCD, NEWPANEL)
144 
145  #define BEEPER_PIN -1
146 
147  #if ENABLED(LCD_I2C_PANELOLU2)
148  #define BTN_EN1 3 // D3 IO-8
149  #define BTN_EN2 2 // D2 IO-10
150  #define BTN_ENC 41 // F3 IO-7
151  #define SDSS 38 // F0 IO-13 use SD card on Panelolu2
152  #endif
153 
154  #define SD_DETECT_PIN -1
155 
156 #endif // HAS_SPI_LCD && NEWPANEL
157 
158 //
159 // M3/M4/M5 - Spindle/Laser Control
160 //
161 #define SPINDLE_LASER_PWM_PIN 24 // B4 IO-3 PWM2A - MUST BE HARDWARE PWM
162 #define SPINDLE_LASER_ENA_PIN 39 // F1 IO-11 - Pin should have a pullup!
163 #define SPINDLE_DIR_PIN 40 // F2 IO-9