mirror of
https://github.com/MarlinFirmware/Marlin.git
synced 2025-03-13 09:49:56 +00:00
556 lines
18 KiB
C
556 lines
18 KiB
C
/**
|
|
* Marlin 3D Printer Firmware
|
|
* Copyright (c) 2022 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
|
*
|
|
* Based on Sprinter and grbl.
|
|
* Copyright (c) 2011 Camiel Gubbels / Erik van der Zalm
|
|
*
|
|
* This program is free software: you can redistribute it and/or modify
|
|
* it under the terms of the GNU General Public License as published by
|
|
* the Free Software Foundation, either version 3 of the License, or
|
|
* (at your option) any later version.
|
|
*
|
|
* This program is distributed in the hope that it will be useful,
|
|
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
|
* GNU General Public License for more details.
|
|
*
|
|
* You should have received a copy of the GNU General Public License
|
|
* along with this program. If not, see <https://www.gnu.org/licenses/>.
|
|
*
|
|
*/
|
|
#pragma once
|
|
|
|
/**
|
|
* ReprapWorld's Minitronics v2.0
|
|
*/
|
|
|
|
#if NOT_TARGET(__SAMD21__)
|
|
#error "Oops! Select 'Minitronics v2.0' in 'Tools > Board.'"
|
|
#endif
|
|
|
|
#ifndef BOARD_INFO_NAME
|
|
#define BOARD_INFO_NAME "Minitronics V2.0"
|
|
#endif
|
|
|
|
/**
|
|
* NOTE: We need the Serial port on the -1 to make it work!!. Remember to change it on configuration.h #define SERIAL_PORT -1
|
|
*/
|
|
|
|
/**
|
|
* EEPROM EMULATION: Works with some bugs already, but the board needs an I2C EEPROM memory soldered on.
|
|
*/
|
|
//#define FLASH_EEPROM_EMULATION
|
|
//#define I2C_EEPROM // EEPROM on I2C-0
|
|
#define MARLIN_EEPROM_SIZE 500 // 4000 bytes
|
|
|
|
//This its another option to emulate an EEPROM, but its more efficient to dont loose the data the first One.
|
|
//#define SDCARD_EEPROM_EMULATION
|
|
|
|
//
|
|
// BLTouch
|
|
//
|
|
#define SERVO0_PIN 33 // BLTouch PWM
|
|
|
|
//
|
|
// Limit Switches
|
|
//
|
|
#define X_STOP_PIN 54
|
|
#define Y_STOP_PIN 55
|
|
#define Z_STOP_PIN 4
|
|
|
|
/**
|
|
* NOTE: Useful if extra TMC2209 are to be used as independent axes.
|
|
* We need to configure the new digital PIN, for this we could configure on the board the extra pin of this stepper, for example as a MIN_PIN/MAX_PIN. This pin is the D14.
|
|
*/
|
|
//#define Z2_STOP_PIN 14
|
|
//#define X2_STOP_PIN 14
|
|
//#define Y2_STOP_PIN 14
|
|
|
|
//
|
|
// Z Probe (when not Z_MIN_PIN)
|
|
//
|
|
#ifndef Z_MIN_PROBE_PIN
|
|
#define Z_MIN_PROBE_PIN 12
|
|
#endif
|
|
|
|
//
|
|
// Steppers
|
|
//
|
|
#define X_STEP_PIN 1
|
|
#define X_DIR_PIN 3
|
|
#define X_ENABLE_PIN 0
|
|
|
|
#define Y_STEP_PIN 29
|
|
#define Y_DIR_PIN 28
|
|
#define Y_ENABLE_PIN 0
|
|
|
|
#define Z_STEP_PIN 16
|
|
#define Z_DIR_PIN 17
|
|
#define Z_ENABLE_PIN 0
|
|
|
|
#define E0_STEP_PIN 14
|
|
#define E0_DIR_PIN 15
|
|
#define E0_ENABLE_PIN 0
|
|
|
|
#define E1_STEP_PIN 20
|
|
#define E1_DIR_PIN 13
|
|
#define E1_ENABLE_PIN 21
|
|
|
|
// Filament runout. You may choose to use this pin for some other purpose. It's a normal GPIO that can be configured as I/O.
|
|
// For example, a switch to detect any kind of behavior, Power supply pin .... etc.
|
|
#ifndef FIL_RUNOUT_PIN
|
|
#define FIL_RUNOUT_PIN 44
|
|
#endif
|
|
|
|
// This board have the option to use an extra TMC2209 stepper, one of the use could be as a second extruder.
|
|
#if EXTRUDERS < 2
|
|
// TODO: Corregir aquí que cuando tenemos dos extrusores o lo que sea, utiliza los endstop que le sobran, osea los max, no hay Z2_endstop
|
|
#if NUM_Z_STEPPERS > 1
|
|
#define Z2_STOP_PIN 14
|
|
#endif
|
|
#else
|
|
// If we want to configure the extra stepper as a Extruder, we should have undef all of the extra motors.
|
|
#undef X2_DRIVER_TYPE
|
|
#undef Y2_DRIVER_TYPE
|
|
#undef Z2_DRIVER_TYPE
|
|
#undef Z3_DRIVER_TYPE
|
|
#undef Z4_DRIVER_TYPE
|
|
|
|
// Si tenemos más de un extrusor lo que hacemos es definir el nuevo extrusor así como sus pines
|
|
// Acordarse de definir el #define TEMP_SENSOR_1, ya que este contiene el tipo de sonda del extrusor E1
|
|
|
|
#define FIL_RUNOUT2_PIN 14
|
|
|
|
#endif
|
|
|
|
//
|
|
// Extruder / Bed
|
|
//
|
|
|
|
// Temperature Sensors
|
|
#define TEMP_0_PIN 4 // T1
|
|
|
|
// You could use one of the ADC for a temp chamber if you don't use the second extruder, for example.
|
|
#if TEMP_SENSOR_CHAMBER > 0
|
|
#define TEMP_CHAMBER_PIN 3
|
|
#else
|
|
#define TEMP_1_PIN 2 // T3
|
|
#endif
|
|
|
|
#define TEMP_BED_PIN 3 // T2
|
|
|
|
//
|
|
// Heaters / Fans
|
|
//
|
|
#define HEATER_0_PIN 10
|
|
#define HEATER_1_PIN 11
|
|
#define HEATER_BED_PIN 6
|
|
#define SPINDLE_LASER_PWM_PIN 6
|
|
|
|
// The board has 4 PWM fans, use and configure as desired
|
|
#define FAN_PIN 24
|
|
|
|
//
|
|
// LCD / Controller
|
|
//
|
|
|
|
#if ENABLED(CR10_STOCKDISPLAY)
|
|
#define EXP3_01_PIN EXP1_01_PIN
|
|
#define EXP3_02_PIN EXP1_02_PIN
|
|
#define EXP3_03_PIN EXP1_03_PIN
|
|
#define EXP3_04_PIN EXP1_04_PIN
|
|
#define EXP3_05_PIN EXP1_05_PIN
|
|
#define EXP3_06_PIN EXP1_06_PIN
|
|
#define EXP3_07_PIN EXP1_07_PIN
|
|
#define EXP3_08_PIN EXP1_08_PIN
|
|
#endif
|
|
|
|
/************************************/
|
|
/***** Configurations Section ******/
|
|
/************************************/
|
|
|
|
/**
|
|
* This sections starts with the pins_RAMPS_144.h as example, after if you need any new
|
|
* display, you could use normal duponts and connect it with with the scheme showed before.
|
|
* Tested:
|
|
* - Ender 3 Old display (Character LCD)
|
|
* - Ender 3 New Serial DWING Display
|
|
* - Reprap Display
|
|
* - Ender 5 New Serial Display
|
|
* - Any Reprap character display like
|
|
*/
|
|
|
|
#if HAS_WIRED_LCD
|
|
|
|
//
|
|
// LCD Display output pins
|
|
//
|
|
|
|
#if ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
|
|
|
|
#define LCD_PINS_RS 18 // CS chip select /SS chip slave select
|
|
#define LCD_PINS_ENABLE MOSI // SID (MOSI)
|
|
#define LCD_PINS_D4 SCK // SCK (CLK) clock
|
|
|
|
#define BTN_ENC 23
|
|
#define BTN_EN1 27
|
|
#define BTN_EN2 33
|
|
|
|
#elif BOTH(IS_NEWPANEL, PANEL_ONE)
|
|
|
|
// TO TEST
|
|
//#define LCD_PINS_RS EXP1_02_PIN
|
|
//#define LCD_PINS_ENABLE EXP2_05_PIN
|
|
//#define LCD_PINS_D4 57 // Mega/Due:65 - AGCM4:57
|
|
//#define LCD_PINS_D5 58 // Mega/Due:66 - AGCM4:58
|
|
//#define LCD_PINS_D6 EXP2_07_PIN
|
|
//#define LCD_PINS_D7 56 // Mega/Due:64 - AGCM4:56
|
|
|
|
#else
|
|
|
|
#if ENABLED(CR10_STOCKDISPLAY)
|
|
|
|
// TO TEST
|
|
//#define LCD_PINS_RS EXP3_04_PIN
|
|
//#define LCD_PINS_ENABLE EXP3_03_PIN
|
|
//#define LCD_PINS_D4 EXP3_05_PIN
|
|
|
|
#if !IS_NEWPANEL
|
|
// TO TEST
|
|
//#define BEEPER_PIN EXP3_05_PIN
|
|
#endif
|
|
|
|
#elif ENABLED(ZONESTAR_LCD)
|
|
|
|
// TO TEST
|
|
//#define LCD_PINS_RS 56 // Mega/Due:64 - AGCM4:56
|
|
//#define LCD_PINS_ENABLE EXP2_07_PIN
|
|
//#define LCD_PINS_D4 55 // Mega/Due:63 - AGCM4:55
|
|
//#define LCD_PINS_D5 EXP1_02_PIN
|
|
//#define LCD_PINS_D6 EXP2_05_PIN
|
|
//#define LCD_PINS_D7 57 // Mega/Due:65 - AGCM4:57
|
|
|
|
#else
|
|
|
|
#if EITHER(MKS_12864OLED, MKS_12864OLED_SSD1306)
|
|
// TO TEST
|
|
//#define LCD_PINS_DC 25 // Set as output on init
|
|
//#define LCD_PINS_RS 27 // Pull low for 1s to init
|
|
// DOGM SPI LCD Support
|
|
//#define DOGLCD_CS 16
|
|
//#define DOGLCD_MOSI 17
|
|
//#define DOGLCD_SCK 23
|
|
//#define DOGLCD_A0 LCD_PINS_DC
|
|
|
|
#else
|
|
// Definitions for any standard Display
|
|
#define LCD_PINS_RS EXP1_04_PIN
|
|
#define LCD_PINS_ENABLE EXP1_03_PIN
|
|
#define LCD_PINS_D4 EXP1_05_PIN
|
|
#define LCD_PINS_D5 EXP1_06_PIN
|
|
#define LCD_PINS_D6 EXP1_07_PIN
|
|
#endif
|
|
|
|
#define LCD_PINS_D7 EXP1_08_PIN
|
|
|
|
#if !IS_NEWPANEL
|
|
#define BEEPER_PIN EXP1_01_PIN
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#if !IS_NEWPANEL
|
|
// Buttons attached to a shift register
|
|
// Not wired yet
|
|
//#define SHIFT_CLK_PIN EXP1_07_PIN
|
|
//#define SHIFT_LD_PIN EXP2_05_PIN
|
|
//#define SHIFT_OUT_PIN EXP1_02_PIN
|
|
//#define SHIFT_EN_PIN 17
|
|
#endif
|
|
|
|
#endif
|
|
|
|
//
|
|
// LCD Display input pins
|
|
//
|
|
#if IS_NEWPANEL
|
|
|
|
#if IS_RRD_SC
|
|
|
|
//#define BEEPER_PIN EXP1_01_PIN
|
|
|
|
#if ENABLED(CR10_STOCKDISPLAY)
|
|
// TO TEST
|
|
#define BTN_EN1 EXP1_03_PIN
|
|
#define BTN_EN2 EXP1_05_PIN
|
|
#else
|
|
// Definitions fpr any standard Display
|
|
#define BTN_EN1 EXP2_05_PIN
|
|
#define BTN_EN2 EXP2_03_PIN
|
|
#if ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER)
|
|
#define BTN_ENC_EN LCD_PINS_D7 // Detect the presence of the encoder
|
|
#endif
|
|
#endif
|
|
|
|
#define BTN_ENC EXP1_02_PIN
|
|
#ifndef SD_DETECT_PIN
|
|
#define SD_DETECT_PIN EXP2_07_PIN
|
|
#endif
|
|
//#define KILL_PIN EXP2_10_PIN
|
|
|
|
#if ENABLED(BQ_LCD_SMART_CONTROLLER)
|
|
//#define LCD_BACKLIGHT_PIN EXP1_08_PIN // TO TEST
|
|
#endif
|
|
|
|
#elif ENABLED(LCD_I2C_PANELOLU2)
|
|
|
|
// TO TEST
|
|
//#define BTN_EN1 47
|
|
//#define BTN_EN2 EXP2_03_PIN
|
|
//#define BTN_ENC 32
|
|
//#define LCD_SDSS SDSS
|
|
//#define KILL_PIN EXP1_01_PIN
|
|
|
|
#elif ENABLED(LCD_I2C_VIKI)
|
|
|
|
// TO TEST
|
|
//#define BTN_EN1 EXP1_02_PIN // https://files.panucatt.com/datasheets/viki_wiring_diagram.pdf explains 40/42.
|
|
//#define BTN_EN2 EXP2_05_PIN
|
|
//#define BTN_ENC -1
|
|
|
|
//#define LCD_SDSS SDSS
|
|
//#define SD_DETECT_PIN EXP2_10_PIN
|
|
|
|
#elif EITHER(VIKI2, miniVIKI)
|
|
|
|
// TO TEST
|
|
//#define DOGLCD_CS 45
|
|
//#define DOGLCD_A0 EXP2_07_PIN
|
|
//#define LCD_SCREEN_ROT_180
|
|
|
|
//#define BEEPER_PIN 33
|
|
//#define STAT_LED_RED_PIN 32
|
|
//#define STAT_LED_BLUE_PIN EXP1_03_PIN
|
|
|
|
//#define BTN_EN1 22
|
|
//#define BTN_EN2 7
|
|
//#define BTN_ENC EXP1_08_PIN
|
|
|
|
//#define SD_DETECT_PIN -1 // Pin 49 for display SD interface, 72 for easy adapter board
|
|
//#define KILL_PIN 31
|
|
|
|
#elif ENABLED(ELB_FULL_GRAPHIC_CONTROLLER)
|
|
|
|
// TO TEST
|
|
//#define DOGLCD_CS 29
|
|
//#define DOGLCD_A0 27
|
|
|
|
//#define BEEPER_PIN 23
|
|
//#define LCD_BACKLIGHT_PIN 33
|
|
|
|
//#define BTN_EN1 EXP1_03_PIN
|
|
//#define BTN_EN2 EXP1_06_PIN
|
|
//#define BTN_ENC 31
|
|
|
|
//#define LCD_SDSS SDSS
|
|
//#define SD_DETECT_PIN EXP2_10_PIN
|
|
//#define KILL_PIN EXP1_01_PIN
|
|
|
|
#elif EITHER(MKS_MINI_12864, FYSETC_MINI_12864)
|
|
|
|
// TO TEST
|
|
//#define BEEPER_PIN EXP1_06_PIN
|
|
//#define BTN_ENC EXP1_03_PIN
|
|
//#define SD_DETECT_PIN EXP2_10_PIN
|
|
|
|
//#ifndef KILL_PIN
|
|
// #define KILL_PIN EXP1_01_PIN
|
|
//#endif
|
|
|
|
#if ENABLED(MKS_MINI_12864)
|
|
|
|
// TO TEST
|
|
//#define DOGLCD_A0 27
|
|
//#define DOGLCD_CS 25
|
|
|
|
// GLCD features
|
|
// Uncomment screen orientation
|
|
//#define LCD_SCREEN_ROT_90
|
|
//#define LCD_SCREEN_ROT_180
|
|
//#define LCD_SCREEN_ROT_270
|
|
|
|
// not connected to a pin
|
|
//#define LCD_BACKLIGHT_PIN 57 // backlight LED on A11/D? (Mega/Due:65 - AGCM4:57)
|
|
|
|
//#define BTN_EN1 31
|
|
//#define BTN_EN2 33
|
|
|
|
#elif ENABLED(FYSETC_MINI_12864)
|
|
|
|
// From https://wiki.fysetc.com/Mini12864_Panel/
|
|
|
|
// TO TEST
|
|
//#define DOGLCD_A0 16
|
|
//#define DOGLCD_CS 17
|
|
|
|
//#define BTN_EN1 33
|
|
//#define BTN_EN2 31
|
|
|
|
//#define FORCE_SOFT_SPI // Use this if default of hardware SPI causes display problems
|
|
// results in LCD soft SPI mode 3, SD soft SPI mode 0
|
|
|
|
//#define LCD_RESET_PIN 23 // Must be high or open for LCD to operate normally.
|
|
|
|
#if EITHER(FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0)
|
|
#ifndef RGB_LED_R_PIN
|
|
// TO TEST
|
|
//#define RGB_LED_R_PIN 25
|
|
#endif
|
|
#ifndef RGB_LED_G_PIN
|
|
// TO TEST
|
|
//#define RGB_LED_G_PIN 27
|
|
#endif
|
|
#ifndef RGB_LED_B_PIN
|
|
// TO TEST
|
|
//#define RGB_LED_B_PIN 29
|
|
#endif
|
|
#elif ENABLED(FYSETC_MINI_12864_2_1)
|
|
// TO TEST
|
|
//#define NEOPIXEL_PIN 25
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#elif ENABLED(MINIPANEL)
|
|
|
|
// TO TEST
|
|
//#define BEEPER_PIN EXP2_05_PIN
|
|
// not connected to a pin
|
|
//#define LCD_BACKLIGHT_PIN 57 // backlight LED on A11/D? (Mega/Due:65 - AGCM4:57)
|
|
|
|
//#define DOGLCD_A0 EXP2_07_PIN
|
|
//#define DOGLCD_CS 58 // Mega/Due:66 - AGCM4:58
|
|
|
|
// GLCD features
|
|
// Uncomment screen orientation
|
|
//#define LCD_SCREEN_ROT_90
|
|
//#define LCD_SCREEN_ROT_180
|
|
//#define LCD_SCREEN_ROT_270
|
|
|
|
//#define BTN_EN1 EXP1_02_PIN
|
|
//#define BTN_EN2 55 // Mega/Due:63 - AGCM4:55
|
|
//#define BTN_ENC 72 // Mega/Due:59 - AGCM4:72
|
|
|
|
//#define SD_DETECT_PIN EXP2_10_PIN
|
|
//#define KILL_PIN 56 // Mega/Due:64 - AGCM4:56
|
|
|
|
#elif ENABLED(ZONESTAR_LCD)
|
|
|
|
// TO TEST
|
|
//#define ADC_KEYPAD_PIN 12
|
|
|
|
#elif ENABLED(AZSMZ_12864)
|
|
|
|
// TO TEST
|
|
|
|
#else
|
|
|
|
// Beeper on AUX-4
|
|
//#define BEEPER_PIN 33
|
|
|
|
// Buttons are directly attached to AUX-2
|
|
#if IS_RRW_KEYPAD
|
|
// TO TEST
|
|
//#define SHIFT_OUT_PIN EXP1_02_PIN
|
|
//#define SHIFT_CLK_PIN EXP2_07_PIN
|
|
//#define SHIFT_LD_PIN EXP2_05_PIN
|
|
//#define BTN_EN1 56 // Mega/Due:64 - AGCM4:56
|
|
//#define BTN_EN2 72 // Mega/Due:59 - AGCM4:72
|
|
//#define BTN_ENC 55 // Mega/Due:63 - AGCM4:55
|
|
#elif ENABLED(PANEL_ONE)
|
|
// TO TEST
|
|
//#define BTN_EN1 72 // AUX2 PIN 3 (Mega/Due:59 - AGCM4:72)
|
|
//#define BTN_EN2 55 // AUX2 PIN 4 (Mega/Due:63 - AGCM4:55)
|
|
//#define BTN_ENC EXP2_10_PIN // AUX3 PIN 7
|
|
#else
|
|
// TO TEST
|
|
//#define BTN_EN1 EXP1_06_PIN
|
|
//#define BTN_EN2 EXP1_03_PIN
|
|
//#define BTN_ENC 31
|
|
#endif
|
|
|
|
#if ENABLED(G3D_PANEL)
|
|
// TO TEST
|
|
//#define SD_DETECT_PIN EXP2_10_PIN
|
|
//#define KILL_PIN EXP1_01_PIN
|
|
#endif
|
|
|
|
#endif
|
|
#endif // IS_NEWPANEL
|
|
|
|
#endif // HAS_WIRED_LCD
|
|
|
|
//
|
|
// SD Support
|
|
//
|
|
|
|
#define SDSS 2
|
|
#undef SD_DETECT_PIN
|
|
#define SD_DETECT_PIN 22
|
|
|
|
#if HAS_TMC_UART
|
|
|
|
/**
|
|
* Address for the UART Configuration of the TMC2209. Override in Configuration files.
|
|
* To test TMC2209 Steppers enable TMC_DEBUG in Configuration_adv.h and test the M122 command with voltage on the steppers.
|
|
*/
|
|
#ifndef X_SLAVE_ADDRESS
|
|
#define X_SLAVE_ADDRESS 0b00
|
|
#endif
|
|
#ifndef Y_SLAVE_ADDRESS
|
|
#define Y_SLAVE_ADDRESS 0b01
|
|
#endif
|
|
#ifndef Z_SLAVE_ADDRESS
|
|
#define Z_SLAVE_ADDRESS 0b10
|
|
#endif
|
|
#ifndef E0_SLAVE_ADDRESS
|
|
#define E0_SLAVE_ADDRESS 0b11
|
|
#endif
|
|
#ifndef E1_SLAVE_ADDRESS
|
|
#define E1_SLAVE_ADDRESS 0b00
|
|
#endif
|
|
|
|
/**
|
|
* TMC2208/TMC2209 stepper drivers
|
|
* It seems to work perfectly fine on Software Serial, if an advanced user wants to test, you could use the SAMD51 Serial1 and Serial 2. Be careful with the Sercom configurations.
|
|
* Steppers 1,2,3,4 (X,Y,Z,E0) are on the Serial1, Sercom (RX = 0, TX = 1), extra stepper 5 (E1 or any axis you want) is on Serial2, Sercom (RX = 17, TX = 16)
|
|
*/
|
|
|
|
//#define X_HARDWARE_SERIAL Serial1
|
|
//#define Y_HARDWARE_SERIAL Serial1
|
|
//#define Z_HARDWARE_SERIAL Serial1
|
|
//#define E0_HARDWARE_SERIAL Serial1
|
|
//#define E1_HARDWARE_SERIAL Serial2
|
|
|
|
#define TMC_BAUD_RATE 250000
|
|
|
|
//
|
|
// Software serial
|
|
//
|
|
#define X_SERIAL_TX_PIN 0
|
|
#define X_SERIAL_RX_PIN 1
|
|
|
|
#define Y_SERIAL_TX_PIN X_SERIAL_TX_PIN
|
|
#define Y_SERIAL_RX_PIN X_SERIAL_RX_PIN
|
|
|
|
#define Z_SERIAL_TX_PIN X_SERIAL_TX_PIN
|
|
#define Z_SERIAL_RX_PIN X_SERIAL_RX_PIN
|
|
|
|
#define E0_SERIAL_TX_PIN X_SERIAL_TX_PIN
|
|
#define E0_SERIAL_RX_PIN X_SERIAL_RX_PIN
|
|
|
|
#define E1_SERIAL_TX_PIN 17
|
|
#define E1_SERIAL_RX_PIN 16
|
|
|
|
#endif
|