Prusa MINI Firmware overview
pins_ANET_10.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  * Anet V1.0 board pin assignments
26  */
27 
28 /**
29  * Rev B 16 JUN 2017
30  *
31  * 1) no longer uses Sanguino files to define some of the pins
32  * 2) added pointers to useable Arduino IDE extensions
33  *
34  */
35 
36 /**
37  * The standard Arduino IDE extension (board manager) for this board
38  * is located at https://github.com/SkyNet3D/anet-board.
39  *
40  * Installation instructions are on that page.
41  *
42  * After copying the files to the appropriate location, restart Arduino and
43  * you'll see "Anet V1.0" and "Anet V1.0 (Optiboot)" in the boards list.
44  *
45  * "Anet V1.0" uses the bootloader that was installed on the board when
46  * it shipped from the factory.
47  *
48  * "Anet V1.0 (Optiboot)" frees up another 3K of FLASH. You'll need to burn
49  * a new bootloader to the board to be able to automatically download a
50  * compiled image.
51  *
52  */
53 
54 /**
55  * Another usable Arduino IDE extension (board manager) can be found at
56  * https://github.com/Lauszus/Sanguino
57  *
58  * This extension has been tested on Arduino 1.6.12 & 1.8.0
59  *
60  * Here's the JSON path:
61  * https://raw.githubusercontent.com/Lauszus/Sanguino/master/package_lauszus_sanguino_index.json
62  *
63  * When installing select 1.0.2
64  *
65  * Installation instructions can be found at https://learn.sparkfun.com/pages/CustomBoardsArduino
66  * Just use the above JSON URL instead of Sparkfun's JSON.
67  *
68  * Once installed select the Sanguino board and then select the CPU.
69  *
70  */
71 
72 /**
73  * To burn a new bootloader:
74  *
75  * 1. Connect your programmer to the board.
76  * 2. In the Arduino IDE select the board and then select the programmer.
77  * 3. In the Arduino IDE click on "burn bootloader". Don't worry about the "verify failed at 1F000" error message.
78  * 4. The programmer is no longer needed. Remove it.
79  */
80 
81 /**
82  * Additional info:
83  *
84  * Anet Schematics - https://github.com/ralf-e/ANET-3D-Board-V1.0
85  * Wiring RRDFG Smart Controller - http://www.thingiverse.com/thing:2103748
86  * SkyNet3D Anet software development - https://github.com/SkyNet3D/Marlin/
87  * Anet Users / Skynet SW on Facebook - https://www.facebook.com/skynet3ddevelopment/
88  *
89  * Many thanks to Hans Raaf (@oderwat) for developing the Anet-specific software and supporting the Anet community.
90  */
91 
92 #ifndef __AVR_ATmega1284P__
93  #error "Oops! Select 'Sanguino' in 'Tools > Board' and 'ATmega1284P' in 'Tools > Processor.' (For PlatformIO, use 'melzi' or 'melzi_optiboot.')"
94 #endif
95 
96 #define BOARD_INFO_NAME "Anet 1.0"
97 
98 //
99 // Limit Switches
100 //
101 #define X_STOP_PIN 18
102 #define Y_STOP_PIN 19
103 #define Z_STOP_PIN 20
104 
105 //
106 // Steppers
107 //
108 #define X_STEP_PIN 15
109 #define X_DIR_PIN 21
110 #define X_ENABLE_PIN 14
111 
112 #define Y_STEP_PIN 22
113 #define Y_DIR_PIN 23
114 #define Y_ENABLE_PIN 14
115 
116 #define Z_STEP_PIN 3
117 #define Z_DIR_PIN 2
118 #define Z_ENABLE_PIN 26
119 
120 #define E0_STEP_PIN 1
121 #define E0_DIR_PIN 0
122 #define E0_ENABLE_PIN 14
123 
124 //
125 // Temperature Sensors
126 //
127 #define TEMP_0_PIN 7 // Analog Input (pin 33 extruder)
128 #define TEMP_BED_PIN 6 // Analog Input (pin 34 bed)
129 
130 //
131 // Heaters / Fans
132 //
133 #define HEATER_0_PIN 13 // (extruder)
134 #define HEATER_BED_PIN 12 // (bed)
135 
136 #ifndef FAN_PIN
137  #define FAN_PIN 4
138 #endif
139 
140 //
141 // Misc. Functions
142 //
143 #define SDSS 31
144 #define LED_PIN -1
145 
146 /**
147  * LCD / Controller
148  *
149  * Only the following displays are supported:
150  * ZONESTAR_LCD
151  * ANET_FULL_GRAPHICS_LCD
152  * REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
153  */
154 
155 #if HAS_SPI_LCD
156  #define LCD_SDSS 28
157  #if ENABLED(ADC_KEYPAD)
158  #define SERVO0_PIN 27 // free for BLTouch/3D-Touch
159  #define LCD_PINS_RS 28
160  #define LCD_PINS_ENABLE 29
161  #define LCD_PINS_D4 10
162  #define LCD_PINS_D5 11
163  #define LCD_PINS_D6 16
164  #define LCD_PINS_D7 17
165  #define ADC_KEYPAD_PIN 1
166  #elif EITHER(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER, ANET_FULL_GRAPHICS_LCD)
167  // Pin definitions for the Anet A6 Full Graphics display and the RepRapDiscount Full Graphics
168  // display using an adapter board // https://go.aisler.net/benlye/anet-lcd-adapter/pcb
169  // See below for alternative pin definitions for use with https://www.thingiverse.com/thing:2103748
170  #define SERVO0_PIN 29 // free for BLTouch/3D-Touch
171  #define BEEPER_PIN 17
172  #define LCD_PINS_RS 27
173  #define LCD_PINS_ENABLE 28
174  #define LCD_PINS_D4 30
175  #define BTN_EN1 11
176  #define BTN_EN2 10
177  #define BTN_ENC 16
178  #ifndef ST7920_DELAY_1
179  #define ST7920_DELAY_1 DELAY_NS(0)
180  #endif
181  #ifndef ST7920_DELAY_2
182  #define ST7920_DELAY_2 DELAY_NS(63)
183  #endif
184  #ifndef ST7920_DELAY_3
185  #define ST7920_DELAY_3 DELAY_NS(125)
186  #endif
187  #define STD_ENCODER_PULSES_PER_STEP 4
188  #define STD_ENCODER_STEPS_PER_MENU_ITEM 1
189  #endif
190 #else
191  #define SERVO0_PIN 27
192 #endif
193 
194 /**
195  * ====================================================================
196  * =============== Alternative RepRapDiscount Wiring ==================
197  * ====================================================================
198  *
199  * An alternative wiring scheme for the RepRapDiscount Full Graphics Display is
200  * published by oderwat on Thingiverse at https://www.thingiverse.com/thing:2103748.
201  *
202  * Using that adapter requires changing the pin definition as follows:
203  * #define SERVO0_PIN 27 // free for BLTouch/3D-Touch
204  * #define BEEPER_PIN 28
205  * #define LCD_PINS_RS 30
206  * #define LCD_PINS_ENABLE 29
207  * #define LCD_PINS_D4 17
208  *
209  * The BLTouch pin becomes LCD:3
210  */
211 
212 /**
213  * ====================================================================
214  * ===================== LCD PINOUTS ==================================
215  * ====================================================================
216  *
217  * Anet V1.0 controller | ZONESTAR_LCD | ANET_FULL_ | RepRapDiscount Full | Thingiverse RepRap wiring
218  * physical logical alt | | GRAPHICS_LCD | Graphics Display Wiring | http://www.thingiverse
219  * pin pin functions | | | | .com/thing:2103748
220  *------------------------------------------------------------------------------------------------------------------------
221  * ANET-J3.1 8 *** | N/A | J3_TX *** | |
222  * ANET-J3.2 9 *** | N/A | J3_RX *** | |
223  * ANET-J3.3 6 MISO | N/A | MISO *** | EXP2.1 MISO | EXP2.1 MISO
224  * ANET-J3.4 +5V | N/A | +5V | |
225  * ANET-J3.5 7 SCK | N/A | SCK *** | EXP2.2 SCK | EXP2.2 SCK
226  * ANET-J3.6 5 MOSI | N/A | MOSI *** | EXP2.6 MOSI | EXP2.6 MOSI
227  * ANET-J3.7 !RESET | N/A | button | EXP2.8 panel button | EXP2.8 panel button
228  * ANET-J3.8 GND | N/A | GND | EXP2.9 GND | EXP2.9 GND
229  * ANET-J3.9 4 Don't use | N/A | N/C | |
230  * ANET-J3.10 +3.3V | N/A | +3.3V *** | |
231  * | | | |
232  * | | | |
233  * ANET-LCD.1 GND | GND | GND | EXP1.9 GND | EXP1.9 GND
234  * ANET-LCD.2 +5V | +5V | +5V | EXP1.10 +5V | EXP1.10 +5V
235  * ANET-LCD.3 27 A4 | N/C * | LCD_PINS_RS | EXP1.4 LCD_PINS_RS | EXP2.4 SDSS or N/C *
236  * ANET-LCD.4 10 | LCD_PINS_D4 | BTN_EN2 | EXP2.3 BTN_EN2 | EXP2.3 BTN_EN2
237  * ANET-LCD.5 28 A3 | LCD_PINS_RS | LCD_PINS_ENABLE | EXP1.3 LCD_PINS_ENABLE | EXP1.1 BEEPER_PIN
238  * ANET-LCD.6 11 | LCD_PINS_D5 | BTN_EN1 | EXP2.5 BTN_EN1 | EXP2.5 BTN_EN1
239  * ANET-LCD.7 29 A2 | LCD_PINS_ENABLE | N/C * | EXP2.4 SDSS or N/C * | EXP1.3 LCD_PINS_ENABLE
240  * ANET-LCD.8 16 SCL | LCD_PINS_D6 | BTN_ENC | EXP1.2 BTN_ENC | EXP1.2 BTN_ENC
241  * ANET-LCD.9 30 A1 | ADC_KEYPAD_PIN ** | LCD_PINS_D4 | EXP1.5 LCD_PINS_D4 | EXP1.4 LCD_PINS_RS
242  * ANET-LCD.10 17 SDA | LCD_PINS_D7 | BEEPER_PIN | EXP1.1 BEEPER_PIN | EXP1.5 LCD_PINS_D4
243  *
244  * N/C * - if not connected to the LCD can be used for BLTouch servo input
245  * ** - analog pin -WITHOUT a pullup
246  * *** - only connected to something if the Bluetooth module is populated
247  */
248 
249 /**
250  * REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
251  * physical pin function
252  * EXP1.1 BEEPER
253  * EXP1.2 BTN_ENC
254  * EXP1.3 LCD_PINS_ENABLE
255  * EXP1.4 LCD_PINS_RS
256  * EXP1.5 LCD_PINS_D4
257  * EXP1.6 LCD_PINS_D5 (not used)
258  * EXP1.7 LCD_PINS_D6 (not used)
259  * EXP1.8 LCD_PINS_D7 (not used)
260  * EXP1.9 GND
261  * EXP1.10 VCC
262  *
263  *
264  * EXP2.1 MISO
265  * EXP2.2 SCK
266  * EXP2.3 BTN_EN2
267  * EXP2.4 SDSS
268  * EXP2.5 BTN_EN1
269  * EXP2.6 MOSI
270  * EXP2.7 SD_DETECT_PIN
271  * EXP2.8 button
272  * EXP2.9 GND
273  * EXP2.10 NC
274  */