diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 4ec64f8659..64d863ae2d 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -128,7 +128,7 @@ // Choose the name from boards.h that matches your setup #ifndef MOTHERBOARD - #define MOTHERBOARD BOARD_RAMPS_14_EFB + #define MOTHERBOARD BOARD_GMARSH_EBAB #endif // Name displayed in the LCD "Ready" message and Info menu @@ -1840,7 +1840,7 @@ * SD Card support is disabled by default. If your controller has an SD slot, * you must uncomment the following option or it won't work. */ -//#define SDSUPPORT +#define SDSUPPORT /** * SD CARD: ENABLE CRC diff --git a/Marlin/src/core/boards.h b/Marlin/src/core/boards.h index 13a202daed..adf6850897 100644 --- a/Marlin/src/core/boards.h +++ b/Marlin/src/core/boards.h @@ -229,6 +229,7 @@ #define BOARD_BTT_SKR_V1_1 2012 // BigTreeTech SKR v1.1 (Power outputs: Hotend0, Hotend1, Fan, Bed) #define BOARD_BTT_SKR_V1_3 2013 // BigTreeTech SKR v1.3 (Power outputs: Hotend0, Hotend1, Fan, Bed) #define BOARD_BTT_SKR_V1_4 2014 // BigTreeTech SKR v1.4 (Power outputs: Hotend0, Hotend1, Fan, Bed) +#define BOARD_GMARSH_EBAB 2015 // GMARSH EBAB board, revision 1 prototype // // LPC1769 ARM Cortex M3 diff --git a/Marlin/src/pins/lpc1768/pins_GMARSH_EBAB.h b/Marlin/src/pins/lpc1768/pins_GMARSH_EBAB.h new file mode 100644 index 0000000000..57fd9ad807 --- /dev/null +++ b/Marlin/src/pins/lpc1768/pins_GMARSH_EBAB.h @@ -0,0 +1,326 @@ +/** + * Marlin 3D Printer Firmware + * Copyright (c) 2020 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 . + * + */ +#pragma once + +#ifndef MCU_LPC1768 + #error "Oops! Make sure you have the LPC1768 environment selected in your IDE." +#endif + +#define BOARD_INFO_NAME "GMARSH EBAB" + + +#define P0_12 0x0B +#define P0_13 0x0C +#define P0_14 0x0D + +#define P1_02 0x22 +#define P1_03 0x23 +#define P1_05 0x25 +#define P1_06 0x26 +#define P1_07 0x27 +#define P1_11 0x2B +#define P1_12 0x2C +#define P1_13 0x2D + +#define P2_14 0x4E +#define P2_15 0x4F +#define P2_16 0x50 +#define P2_17 0x51 +#define P2_18 0x52 +#define P2_19 0x53 +#define P2_20 0x54 +#define P2_21 0x55 +#define P2_22 0x56 +#define P2_23 0x57 +#define P2_24 0x58 +#define P2_25 0x59 +#define P2_26 0x5A +#define P2_27 0x5B +#define P2_28 0x5C +#define P2_29 0x5D +#define P2_30 0x5E +#define P2_31 0x5F + +#define P3_00 0x60 +#define P3_01 0x61 +#define P3_02 0x62 +#define P3_03 0x63 +#define P3_04 0x64 +#define P3_05 0x65 +#define P3_06 0x66 +#define P3_07 0x67 +#define P3_08 0x68 +#define P3_09 0x69 +#define P3_10 0x6A +#define P3_11 0x6B +#define P3_12 0x6C +#define P3_13 0x6D +#define P3_14 0x6E +#define P3_15 0x6F +#define P3_16 0x70 +#define P3_17 0x71 +#define P3_18 0x72 +#define P3_19 0x73 +#define P3_20 0x74 +#define P3_21 0x75 +#define P3_22 0x76 +#define P3_23 0x77 +#define P3_24 0x78 +#define P3_27 0x7B +#define P3_30 0x7E +#define P3_31 0x7F + +#define P4_00 0x80 +#define P4_01 0x81 +#define P4_02 0x82 +#define P4_03 0x83 +#define P4_04 0x84 +#define P4_05 0x85 +#define P4_06 0x86 +#define P4_07 0x87 +#define P4_08 0x88 +#define P4_09 0x89 +#define P4_10 0x8A +#define P4_11 0x8B +#define P4_12 0x8C +#define P4_13 0x8D +#define P4_14 0x8E +#define P4_15 0x8F +#define P4_16 0x90 +#define P4_17 0x91 +#define P4_18 0x92 +#define P4_19 0x93 +#define P4_20 0x94 +#define P4_21 0x95 +#define P4_22 0x96 +#define P4_23 0x97 +#define P4_24 0x98 +#define P4_25 0x99 +#define P4_26 0x9A +#define P4_27 0x9B + +#define P4_30 0x9E +#define P4_31 0x9F + +#define P5_00 0xA0 +#define P5_01 0xA1 +#define P5_02 0xA2 +#define P5_03 0xA3 +#define P5_04 0xA4 + +// Ignore temp readings during develpment. +//#define BOGUS_TEMPERATURE_GRACE_PERIOD 2000 + +// +// Enable 12MHz clock output on P1.27 pin to sync TMC2208 chip clocks +// +//#define LPC1768_ENABLE_CLKOUT_12M + +// +// Servos +// +#define SERVO0_PIN P2_05 // PWM1[6] +#define SERVO1_PIN P2_04 // PWM1[1] +#define SERVO2_PIN P2_03 // PWM1[1] +#define SERVO3_PIN P2_02 // PWM1[1] + +// +// Limit Switches +// +#define X_MIN_PIN P0_19 +#define X_MAX_PIN P0_18 +#define Y_MIN_PIN P0_20 +#define Y_MAX_PIN P0_17 +#define Z_MIN_PIN P0_21 +#define Z_MAX_PIN P0_15 + +// +// Steppers +// + +#define X_STEP_PIN P1_10 +#define X_DIR_PIN P4_03 +#define X_ENABLE_PIN P0_01 +#define X_CS_PIN P0_00 + +#define Y_STEP_PIN P1_29 +#define Y_DIR_PIN P2_14 +#define Y_ENABLE_PIN P1_28 +#define Y_CS_PIN P2_22 + +#define Z_STEP_PIN P4_02 +#define Z_DIR_PIN P1_26 +#define Z_ENABLE_PIN P1_25 +#define Z_CS_PIN P4_01 + +#define E0_STEP_PIN P1_19 +#define E0_DIR_PIN P0_14 +#define E0_ENABLE_PIN P1_22 +#define E0_CS_PIN P4_00 + +#define E1_STEP_PIN P2_23 +#define E1_DIR_PIN P2_18 +#define E1_ENABLE_PIN P3_23 +#define E1_CS_PIN P1_18 + +#define E2_STEP_PIN P3_25 +#define E2_DIR_PIN P2_25 +#define E2_ENABLE_PIN P3_26 +#define E2_CS_PIN P3_24 + +#define E3_STEP_PIN P4_19 +#define E3_DIR_PIN P4_20 +#define E3_ENABLE_PIN P4_26 +#define E3_CS_PIN P4_21 + +#define E4_STEP_PIN P4_17 +#define E4_DIR_PIN P4_18 +#define E4_ENABLE_PIN P4_05 +#define E4_CS_PIN P2_12 + +#define E5_STEP_PIN P0_11 +#define E5_DIR_PIN P2_15 +#define E5_ENABLE_PIN P4_04 +#define E5_CS_PIN P4_16 + +#define E6_STEP_PIN P2_28 +#define E6_DIR_PIN P0_28 +#define E6_ENABLE_PIN P4_05 +#define E6_CS_PIN P0_27 + +#define E7_STEP_PIN P1_30 +#define E7_DIR_PIN P0_12 +#define E7_ENABLE_PIN P0_13 +#define E7_CS_PIN P2_29 + +#define E8_STEP_PIN P3_15 +#define E8_DIR_PIN P3_07 +#define E8_ENABLE_PIN P2_30 +#define E8_CS_PIN P5_01 + +// +// TMC2208 UART pins +// +#if HAS_TMC_UART + #define X_SERIAL_TX_PIN P2_17 + #define X_SERIAL_RX_PIN P2_17 + #define Y_SERIAL_TX_PIN P2_16 + #define Y_SERIAL_RX_PIN P2_16 + #define Z_SERIAL_TX_PIN P2_21 + #define Z_SERIAL_RX_PIN P2_21 + #define E0_SERIAL_TX_PIN P2_20 + #define E0_SERIAL_RX_PIN P2_20 + #define E1_SERIAL_TX_PIN P2_19 + #define E1_SERIAL_RX_PIN P2_19 + #define E2_SERIAL_TX_PIN P2_26 + #define E2_SERIAL_RX_PIN P2_26 + #define E3_SERIAL_TX_PIN P0_22 + #define E3_SERIAL_RX_PIN P0_22 + #define E4_SERIAL_TX_PIN P2_11 + #define E4_SERIAL_RX_PIN P2_11 + #define E5_SERIAL_TX_PIN P2_13 + #define E5_SERIAL_RX_PIN P2_13 + #define E6_SERIAL_TX_PIN P2_24 + #define E6_SERIAL_RX_PIN P2_24 + #define E7_SERIAL_TX_PIN P2_27 + #define E7_SERIAL_RX_PIN P2_27 + #define E8_SERIAL_TX_PIN P2_31 + #define E8_SERIAL_RX_PIN P2_31 + + // Reduce baud rate to improve software serial reliability + #define TMC_BAUD_RATE 19200 +#else + //#error "TMC2208 UART configuration is required for GMarsh EBAB +#endif + +// +// Temperature Sensors +// 3.3V max when defined as an analog input +// +#define TEMP_0_PIN P0_23_A0 // AD0[0] on P0_23 +#define TEMP_1_PIN P0_24_A1 // AD0[0] on P0_23 +#define TEMP_2_PIN P0_25_A2 // AD0[0] on P0_23 +#define TEMP_3_PIN P0_26_A3 // AD0[0] on P0_23 +#define TEMP_BED_PIN P1_31_A5 // AD0[1] on P0_24 + +// +// Heaters / Fans +// +#define HEATER_BED_PIN P4_23 // Not a PWM pin, software PWM required +#define HEATER_0_PIN P1_02 // PWM1[3] +#define HEATER_1_PIN P1_10 // PWM1[3] +#define HEATER_2_PIN P4_30 // PWM1[3] +#define HEATER_3_PIN P1_09 // PWM1[3] +#define FAN_PIN P3_08 // Part cooling fan - connected to PWM1[2] +#define E0_AUTO_FAN_PIN P1_08 // Extruder cooling fan +#define FAN1_PIN P3_00 // Part cooling fan - connected to PWM1[2] +#define E1_AUTO_FAN_PIN P4_31 // Extruder cooling fan +#define FAN2_PIN P3_27 // Part cooling fan - connected to PWM1[2] +#define E2_AUTO_FAN_PIN P3_01 // Extruder cooling fan +#define FAN3_PIN P5_04 // Part cooling fan - connected to PWM1[2] +#define E3_AUTO_FAN_PIN P3_10 // Extruder cooling fan + +// +// Misc. Functions +// +//#define LED_PIN P1_31 + +// +// LCD +// +#if ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER) + #define BEEPER_PIN P3_31 + #define BTN_EN1 P3_11 + #define BTN_EN2 P3_12 + #define BTN_ENC P3_28 + #define LCD_PINS_RS P3_06 + #define LCD_PINS_ENABLE P3_14 + #define LCD_PINS_D4 P3_30 + #define LCD_PINS_D5 P3_05 + #define LCD_PINS_D6 P3_29 + #define LCD_PINS_D7 P5_00 +#endif + +// +// SD Support +// + +#ifndef SDCARD_CONNECTION + #define SDCARD_CONNECTION LCD +#endif + +#define ONBOARD_SD_CS_PIN P0_06 // Chip select for "System" SD card + +#if SD_CONNECTION_IS(LCD) + #define SCK_PIN P1_00 + #define MISO_PIN P1_01 + #define MOSI_PIN P1_04 + #define SS_PIN P3_02 + #define SD_DETECT_PIN P3_27 +#elif SD_CONNECTION_IS(ONBOARD) + #undef SD_DETECT_PIN + //#define SD_DETECT_PIN P0_27 + #define SCK_PIN P0_07 + #define MISO_PIN P0_08 + #define MOSI_PIN P0_09 + #define SS_PIN ONBOARD_SD_CS_PIN +#endif diff --git a/Marlin/src/pins/pins.h b/Marlin/src/pins/pins.h index c0995e8826..11ca1ac80f 100644 --- a/Marlin/src/pins/pins.h +++ b/Marlin/src/pins/pins.h @@ -369,6 +369,8 @@ #include "lpc1768/pins_BIQU_B300_V1.0.h" // LPC1768 env:LPC1768 #elif MB(GMARSH_X6_REV1) #include "lpc1768/pins_GMARSH_X6_REV1.h" // LPC1768 env:LPC1768 +#elif MB(GMARSH_EBAB) + #include "lpc1768/pins_GMARSH_EBAB.h" // LPC1768 env:LPC1778 #elif MB(BTT_SKR_V1_1) #include "lpc1768/pins_BTT_SKR_V1_1.h" // LPC1768 env:LPC1768 #elif MB(BTT_SKR_V1_3)