Prusa MINI Firmware overview
pins_ELEFU_3.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  * Elefu RA Board 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 BOARD_INFO_NAME "Elefu Ra v3"
33 
34 //
35 // Limit Switches
36 //
37 #define X_MIN_PIN 35
38 #define X_MAX_PIN 34
39 #define Y_MIN_PIN 33
40 #define Y_MAX_PIN 32
41 #define Z_MIN_PIN 31
42 #define Z_MAX_PIN 30
43 
44 //
45 // Z Probe (when not Z_MIN_PIN)
46 //
47 #ifndef Z_MIN_PROBE_PIN
48  #define Z_MIN_PROBE_PIN 30
49 #endif
50 
51 //
52 // Steppers
53 //
54 #define X_STEP_PIN 49
55 #define X_DIR_PIN 13
56 #define X_ENABLE_PIN 48
57 
58 #define Y_STEP_PIN 11
59 #define Y_DIR_PIN 9
60 #define Y_ENABLE_PIN 12
61 
62 #define Z_STEP_PIN 7
63 #define Z_DIR_PIN 6
64 #define Z_ENABLE_PIN 8
65 
66 #define E0_STEP_PIN 40
67 #define E0_DIR_PIN 41
68 #define E0_ENABLE_PIN 37
69 
70 #define E1_STEP_PIN 18
71 #define E1_DIR_PIN 19
72 #define E1_ENABLE_PIN 38
73 
74 #define E2_STEP_PIN 43
75 #define E2_DIR_PIN 47
76 #define E2_ENABLE_PIN 42
77 
78 //
79 // Temperature Sensors
80 //
81 #define TEMP_0_PIN 3 // Analog Input
82 #define TEMP_1_PIN 2 // Analog Input
83 #define TEMP_2_PIN 1 // Analog Input
84 #define TEMP_BED_PIN 0 // Analog Input
85 
86 //
87 // Heaters / Fans
88 //
89 #define HEATER_0_PIN 45 // 12V PWM1
90 #define HEATER_1_PIN 46 // 12V PWM2
91 #define HEATER_2_PIN 17 // 12V PWM3
92 #define HEATER_BED_PIN 44 // DOUBLE 12V PWM
93 
94 #ifndef FAN_PIN
95  #define FAN_PIN 16 // 5V PWM
96 #endif
97 
98 //
99 // Misc. Functions
100 //
101 #define PS_ON_PIN 10 // Set to -1 if using a manual switch on the PWRSW Connector
102 #define SLEEP_WAKE_PIN 26 // This feature still needs work
103 #define PHOTOGRAPH_PIN 29
104 
105 //
106 // LCD / Controller
107 //
108 #define BEEPER_PIN 36
109 
110 #if ENABLED(RA_CONTROL_PANEL)
111 
112  #define SDSS 53
113  #define SD_DETECT_PIN 28
114 
115  #define BTN_EN1 14
116  #define BTN_EN2 39
117  #define BTN_ENC 15
118 
119 #endif // RA_CONTROL_PANEL
120 
121 #if ENABLED(RA_DISCO)
122  // variables for which pins the TLC5947 is using
123  #define TLC_CLOCK_PIN 25
124  #define TLC_BLANK_PIN 23
125  #define TLC_XLAT_PIN 22
126  #define TLC_DATA_PIN 24
127 
128  // We also need to define pin to port number mapping for the 2560 to match the pins listed above.
129  // If you change the TLC pins, update this as well per the 2560 datasheet! This currently only works with the RA Board.
130  #define TLC_CLOCK_BIT 3
131  #define TLC_CLOCK_PORT &PORTA
132 
133  #define TLC_BLANK_BIT 1
134  #define TLC_BLANK_PORT &PORTA
135 
136  #define TLC_DATA_BIT 2
137  #define TLC_DATA_PORT &PORTA
138 
139  #define TLC_XLAT_BIT 0
140  #define TLC_XLAT_PORT &PORTA
141 
142  // Change this to match your situation. Lots of TLCs takes up the arduino SRAM very quickly, so be careful
143  // Leave it at at least 1 if you have enabled RA_LIGHTING
144  // The number of TLC5947 boards chained together for use with the animation, additional ones will repeat the animation on them, but are not individually addressable and mimic those before them. You can leave the default at 2 even if you only have 1 TLC5947 module.
145  #define NUM_TLCS 2
146 
147  // These TRANS_ARRAY values let you change the order the LEDs on the lighting modules will animate for chase functions.
148  // Modify them according to your specific situation.
149  // NOTE: the array should be 8 long for every TLC you have. These defaults assume (2) TLCs.
150  #define TRANS_ARRAY { 0, 1, 2, 3, 4, 5, 6, 7, 15, 14, 13, 12, 11, 10, 9, 8 } // forward
151  //#define TRANS_ARRAY { 7, 6, 5, 4, 3, 2, 1, 0, 8, 9, 10, 11, 12, 13, 14, 15 } // backward
152 #endif // RA_DISCO