Prusa MINI Firmware overview
pins_BRAINWAVE.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  * Brainwave 1.0 pin assignments (AT90USB646)
26  *
27  * Requires hardware bundle for Arduino:
28  * https://github.com/unrepentantgeek/brainwave-arduino
29  */
30 
31 /**
32  * Rev B 16 JAN 2017
33  *
34  * Added pointer to a currently available Arduino IDE extension that will
35  * allow this board to use the latest Marlin software
36  */
37 
38 /**
39  * Rev C 2 JUN 2017
40  *
41  * Converted to Arduino pin numbering
42  */
43 
44 /**
45  * Marlin_AT90USB - https://github.com/Bob-the-Kuhn/Marlin_AT90USB
46  * This is the only known IDE extension that is compatible with the pin definitions
47  * in this file, Adrduino 1.6.12 and the latest mainstream Marlin software.
48  *
49  * "Marlin_AT90USB" makes PWM0A available rather than the usual PWM1C. These PWMs share
50  * the same physical pin. Marlin uses TIMER1 to generate interrupts and sets it up such
51  * that PWM1A, PWM1B & PWM1C can't be used.
52  *
53  * Installation:
54  *
55  * 1. In the Arduino IDE, under Files -> Preferences paste the following URL
56  * https://rawgit.com/Bob-the-Kuhn/Marlin_AT90USB/master/package_MARLIN_AT90USB_index.json
57  * 2. Under Tools > Board -> Boards manager, scroll to the bottom, click on MARLIN_AT90USB
58  * and then click on "Install"
59  * 3. Select "AT90USB646_TEENSYPP" from the 'Tools > Board' menu.
60  */
61 
62 /**
63  * To burn the bootloader that comes with Marlin_AT90USB:
64  *
65  * 1. Connect your programmer to the board.
66  * 2. In Arduino IDE select "AT90USB646_TEENSYPP" and then select the programmer.
67  * 3. In Arduino IDE click on "burn bootloader". Don't worry about the "verify failed at 1F000" error message.
68  * 4. The programmer is no longer needed. Remove it.
69  */
70 
71 #ifndef __AVR_AT90USB646__
72  #error "Oops! Select 'AT90USB646_TEENSYPP' in 'Tools > Board.'"
73 #endif
74 
75 #define BOARD_INFO_NAME "Brainwave"
76 
77 //
78 // Limit Switches
79 //
80 #define X_STOP_PIN 35 // A7
81 #define Y_STOP_PIN 34 // A6
82 #define Z_STOP_PIN 33 // A5
83 
84 //
85 // Steppers
86 //
87 #define X_STEP_PIN 3 // D3
88 #define X_DIR_PIN 5 // D5
89 #define X_ENABLE_PIN 4 // D4
90 #define X_ATT_PIN 2 // D2
91 
92 #define Y_STEP_PIN 7 // D7
93 #define Y_DIR_PIN 9 // E1
94 #define Y_ENABLE_PIN 8 // E0
95 #define Y_ATT_PIN 6 // D6
96 
97 #define Z_STEP_PIN 11 // C1
98 #define Z_DIR_PIN 13 // C3
99 #define Z_ENABLE_PIN 12 // C2
100 #define Z_ATT_PIN 10 // C0
101 
102 #define E0_STEP_PIN 15 // C5
103 #define E0_DIR_PIN 17 // C7
104 #define E0_ENABLE_PIN 16 // C6
105 #define E0_ATT_PIN 14 // C4
106 
107 //
108 // Temperature Sensors
109 //
110 #define TEMP_0_PIN 7 // F7 Analog Input
111 #define TEMP_BED_PIN 6 // F6 Analog Input
112 
113 //
114 // Heaters / Fans
115 //
116 #define HEATER_0_PIN 32 // A4 Extruder
117 #define HEATER_BED_PIN 18 // E6 Bed
118 
119 #ifndef FAN_PIN
120  #define FAN_PIN 31 // A3 Fan
121 #endif
122 
123 //
124 // Misc. Functions
125 //
126 #define LED_PIN 19 // E7