diff --git a/Marlin/pins.h b/Marlin/pins.h index b632f62bed..0d38d877de 100644 --- a/Marlin/pins.h +++ b/Marlin/pins.h @@ -1,1849 +1,1899 @@ -#ifndef PINS_H -#define PINS_H - -#define X_MS1_PIN -1 -#define X_MS2_PIN -1 -#define Y_MS1_PIN -1 -#define Y_MS2_PIN -1 -#define Z_MS1_PIN -1 -#define Z_MS2_PIN -1 -#define E0_MS1_PIN -1 -#define E0_MS2_PIN -1 -#define E1_MS1_PIN -1 -#define E1_MS2_PIN -1 -#define DIGIPOTSS_PIN -1 - -#if MOTHERBOARD == 99 -#define KNOWN_BOARD 1 - -#define X_STEP_PIN 2 -#define X_DIR_PIN 3 -#define X_ENABLE_PIN -1 -#define X_STOP_PIN 16 - -#define Y_STEP_PIN 5 -#define Y_DIR_PIN 6 -#define Y_ENABLE_PIN -1 -#define Y_STOP_PIN 67 - -#define Z_STEP_PIN 62 -#define Z_DIR_PIN 63 -#define Z_ENABLE_PIN -1 -#define Z_STOP_PIN 59 - -#define E0_STEP_PIN 65 -#define E0_DIR_PIN 66 -#define E0_ENABLE_PIN -1 - -#define SDPOWER -1 -#define SDSS 53 -#define LED_PIN -1 -#define FAN_PIN -1 -#define PS_ON_PIN 9 -#define KILL_PIN -1 - -#define HEATER_0_PIN 13 -#define HEATER_1_PIN -1 -#define HEATER_2_PIN -1 -#define TEMP_0_PIN 6 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! -#define TEMP_1_PIN -1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! -#define TEMP_2_PIN -1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! -#define HEATER_BED_PIN 4 -#define TEMP_BED_PIN 10 - -#endif /* 99 */ - -/**************************************************************************************** -* Gen7 v1.1, v1.2, v1.3 pin assignment -* -****************************************************************************************/ - - -#if MOTHERBOARD == 12 -#define MOTHERBOARD 11 -#define GEN7_VERSION 13 // v1.3 -#endif - -#if MOTHERBOARD == 11 -#define KNOWN_BOARD - -#if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__) -#error Oops! Make sure you have 'Gen7' selected from the 'Tools -> Boards' menu. - -#endif - -#ifndef GEN7_VERSION -#define GEN7_VERSION 12 // v1.x -#endif - -//x axis pins -#define X_STEP_PIN 19 -#define X_DIR_PIN 18 -#define X_ENABLE_PIN 24 -#define X_STOP_PIN 7 - -//y axis pins -#define Y_STEP_PIN 23 -#define Y_DIR_PIN 22 -#define Y_ENABLE_PIN 24 -#define Y_STOP_PIN 5 - -//z axis pins -#define Z_STEP_PIN 26 -#define Z_DIR_PIN 25 -#define Z_ENABLE_PIN 24 -#define Z_MIN_PIN 1 -#define Z_MAX_PIN 0 - -//extruder pins -#define E0_STEP_PIN 28 -#define E0_DIR_PIN 27 -#define E0_ENABLE_PIN 24 - -#define TEMP_0_PIN 1 -#define TEMP_1_PIN -1 -#define TEMP_2_PIN -1 -#define TEMP_BED_PIN 2 - -#define HEATER_0_PIN 4 -#define HEATER_1_PIN -1 -#define HEATER_2_PIN -1 -#define HEATER_BED_PIN 3 - -#define KILL_PIN -1 - -#define SDPOWER -1 -#define SDSS -1 // SCL pin of I2C header -#define LED_PIN -1 - -#if (GEN7_VERSION >= 13) -// Gen7 v1.3 removed the fan pin -#define FAN_PIN -1 -#else -#define FAN_PIN 31 -#endif -#define PS_ON_PIN 15 - -//All these generations of Gen7 supply thermistor power -//via PS_ON, so ignore bad thermistor readings -#define BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE - -//our pin for debugging. -#define DEBUG_PIN 0 - -//our RS485 pins -#define TX_ENABLE_PIN 12 -#define RX_ENABLE_PIN 13 - -#endif - -/**************************************************************************************** -* Gen7 v1.4 pin assignment -* -****************************************************************************************/ - -#if MOTHERBOARD == 13 -#define GEN7_VERSION 14 // v1.4 -#endif - -#if MOTHERBOARD == 13 -#define KNOWN_BOARD - -#if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__) -#error Oops! Make sure you have 'Gen7' selected from the 'Tools -> Boards' menu. - -#endif - -#ifndef GEN7_VERSION -#define GEN7_VERSION 14 // v1.x -#endif - -//x axis pins -#define X_STEP_PIN 29 -#define X_DIR_PIN 28 -#define X_ENABLE_PIN 25 -#define X_STOP_PIN 0 - -//y axis pins -#define Y_STEP_PIN 27 -#define Y_DIR_PIN 26 -#define Y_ENABLE_PIN 25 -#define Y_STOP_PIN 1 - -//z axis pins -#define Z_STEP_PIN 23 -#define Z_DIR_PIN 22 -#define Z_ENABLE_PIN 25 -#define Z_STOP_PIN 2 - -//extruder pins -#define E0_STEP_PIN 19 -#define E0_DIR_PIN 18 -#define E0_ENABLE_PIN 25 - -#define TEMP_0_PIN 1 -#define TEMP_1_PIN -1 -#define TEMP_2_PIN -1 -#define TEMP_BED_PIN 0 - -#define HEATER_0_PIN 4 -#define HEATER_1_PIN -1 -#define HEATER_2_PIN -1 -#define HEATER_BED_PIN 3 - -#define KILL_PIN -1 - -#define SDPOWER -1 -#define SDSS -1 // SCL pin of I2C header -#define LED_PIN -1 - -#define FAN_PIN -1 - -#define PS_ON_PIN 15 - -//our pin for debugging. -#define DEBUG_PIN 0 - -//our RS485 pins -#define TX_ENABLE_PIN 12 -#define RX_ENABLE_PIN 13 - -#endif - -/******************************************************************************* -********* -* Gen7 Alfons3 pin assignment -* -******************************************************************************** -********/ -/* These Pins are assigned for the modified GEN7 Board from Alfons3 Please review the pins and adjust it for your needs*/ - -#if MOTHERBOARD == 10 -#define KNOWN_BOARD - -#if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__) - #error Oops! Make sure you have 'Gen7' selected from the 'Tools -> Boards' menu. - -#endif - -//x axis pins - #define X_STEP_PIN 21 //different from stanard GEN7 - #define X_DIR_PIN 20 //different from stanard GEN7 - #define X_ENABLE_PIN 24 - #define X_STOP_PIN 0 - - //y axis pins - #define Y_STEP_PIN 23 - #define Y_DIR_PIN 22 - #define Y_ENABLE_PIN 24 - #define Y_STOP_PIN 1 - - //z axis pins - #define Z_STEP_PIN 26 - #define Z_DIR_PIN 25 - #define Z_ENABLE_PIN 24 - #define Z_STOP_PIN 2 - - //extruder pins - #define E0_STEP_PIN 28 - #define E0_DIR_PIN 27 - #define E0_ENABLE_PIN 24 - - #define TEMP_0_PIN 2 - #define TEMP_1_PIN -1 - #define TEMP_2_PIN -1 - #define TEMP_BED_PIN 1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 34 bed) - - #define HEATER_0_PIN 4 - #define HEATER_1_PIN -1 - #define HEATER_2_PIN -1 - #define HEATER_BED_PIN 3 // (bed) - - #define SDPOWER -1 - #define SDSS 31 // SCL pin of I2C header || CS Pin for SD Card support - #define LED_PIN -1 - - #define FAN_PIN -1 - #define PS_ON_PIN 19 - //our pin for debugging. - - #define DEBUG_PIN -1 - - //our RS485 pins - //#define TX_ENABLE_PIN 12 - //#define RX_ENABLE_PIN 13 - - #define BEEPER -1 - #define SDCARDDETECT -1 - #define SUICIDE_PIN -1 //has to be defined; otherwise Power_off doesn't work - - #define KILL_PIN -1 - //Pins for 4bit LCD Support - #define LCD_PINS_RS 18 - #define LCD_PINS_ENABLE 17 - #define LCD_PINS_D4 16 - #define LCD_PINS_D5 15 - #define LCD_PINS_D6 13 - #define LCD_PINS_D7 14 - - //buttons are directly attached - #define BTN_EN1 11 - #define BTN_EN2 10 - #define BTN_ENC 12 //the click - -#endif - -/**************************************************************************************** -* Arduino Mega pin assignment -* -****************************************************************************************/ -#if MOTHERBOARD == 3 || MOTHERBOARD == 33 || MOTHERBOARD == 34 -#define KNOWN_BOARD 1 - -//////////////////FIX THIS////////////// -#ifndef __AVR_ATmega1280__ - #ifndef __AVR_ATmega2560__ - #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. - #endif -#endif - -// uncomment one of the following lines for RAMPS v1.3 or v1.0, comment both for v1.2 or 1.1 -// #define RAMPS_V_1_3 -// #define RAMPS_V_1_0 - -#if MOTHERBOARD == 33 || MOTHERBOARD == 34 - - #define LARGE_FLASH true - - #define X_STEP_PIN 54 - #define X_DIR_PIN 55 - #define X_ENABLE_PIN 38 - #define X_MIN_PIN 3 - #define X_MAX_PIN 2 - - #define Y_STEP_PIN 60 - #define Y_DIR_PIN 61 - #define Y_ENABLE_PIN 56 - #define Y_MIN_PIN 14 - #define Y_MAX_PIN 15 - - #define Z_STEP_PIN 46 - #define Z_DIR_PIN 48 - #define Z_ENABLE_PIN 62 - #define Z_MIN_PIN 18 - #define Z_MAX_PIN 19 - - #define Z2_STEP_PIN 36 - #define Z2_DIR_PIN 34 - #define Z2_ENABLE_PIN 30 - - #define E0_STEP_PIN 26 - #define E0_DIR_PIN 28 - #define E0_ENABLE_PIN 24 - - #define E1_STEP_PIN 36 - #define E1_DIR_PIN 34 - #define E1_ENABLE_PIN 30 - - #define SDPOWER -1 - #define SDSS 53 - #define LED_PIN 13 - - #if MOTHERBOARD == 33 - #define FAN_PIN 9 // (Sprinter config) - #else - #define FAN_PIN 4 // IO pin. Buffer needed - #endif - - #define PS_ON_PIN 12 - - #if defined(REPRAP_DISCOUNT_SMART_CONTROLLER) || defined(G3D_PANEL) - #define KILL_PIN 41 - #else - #define KILL_PIN -1 - #endif - - #define HEATER_0_PIN 10 // EXTRUDER 1 - - #if MOTHERBOARD == 33 - #define HEATER_1_PIN -1 - #else - #define HEATER_1_PIN 9 // EXTRUDER 2 (FAN On Sprinter) - #endif - - #define HEATER_2_PIN -1 - #define TEMP_0_PIN 13 // ANALOG NUMBERING - #define TEMP_1_PIN 15 // ANALOG NUMBERING - #define TEMP_2_PIN -1 // ANALOG NUMBERING - #define HEATER_BED_PIN 8 // BED - #define TEMP_BED_PIN 14 // ANALOG NUMBERING - - - - #ifdef NUM_SERVOS - #define SERVO0_PIN 11 - - #if NUM_SERVOS > 1 - #define SERVO1_PIN 6 - #endif - - #if NUM_SERVOS > 2 - #define SERVO2_PIN 5 - #endif - - #if NUM_SERVOS > 2 - #define SERVO3_PIN 4 - #endif - #endif - - #ifdef ULTRA_LCD - - #ifdef NEWPANEL - #define LCD_PINS_RS 16 - #define LCD_PINS_ENABLE 17 - #define LCD_PINS_D4 23 - #define LCD_PINS_D5 25 - #define LCD_PINS_D6 27 - #define LCD_PINS_D7 29 - - #ifdef REPRAP_DISCOUNT_SMART_CONTROLLER - #define BEEPER 37 - - #define BTN_EN1 31 - #define BTN_EN2 33 - #define BTN_ENC 35 - - #define SDCARDDETECT 49 - #else - //arduino pin which triggers an piezzo beeper - #define BEEPER 33 // Beeper on AUX-4 - - //buttons are directly attached using AUX-2 - #ifdef REPRAPWORLD_KEYPAD - #define BTN_EN1 64 // encoder - #define BTN_EN2 59 // encoder - #define BTN_ENC 63 // enter button - #define SHIFT_OUT 40 // shift register - #define SHIFT_CLK 44 // shift register - #define SHIFT_LD 42 // shift register - #else - #define BTN_EN1 37 - #define BTN_EN2 35 - #define BTN_ENC 31 //the click - #endif - - #ifdef G3D_PANEL - #define SDCARDDETECT 49 - #else - #define SDCARDDETECT -1 // Ramps does not use this port - #endif - - #endif - - #else //old style panel with shift register - //arduino pin witch triggers an piezzo beeper - #define BEEPER 33 // No Beeper added - - //buttons are attached to a shift register - // Not wired this yet - //#define SHIFT_CLK 38 - //#define SHIFT_LD 42 - //#define SHIFT_OUT 40 - //#define SHIFT_EN 17 - - #define LCD_PINS_RS 16 - #define LCD_PINS_ENABLE 17 - #define LCD_PINS_D4 23 - #define LCD_PINS_D5 25 - #define LCD_PINS_D6 27 - #define LCD_PINS_D7 29 - #endif - #endif //ULTRA_LCD - -#else // RAMPS_V_1_1 or RAMPS_V_1_2 as default (MOTHERBOARD == 3) - - #define X_STEP_PIN 26 - #define X_DIR_PIN 28 - #define X_ENABLE_PIN 24 - #define X_MIN_PIN 3 - #define X_MAX_PIN -1 //2 - - #define Y_STEP_PIN 38 - #define Y_DIR_PIN 40 - #define Y_ENABLE_PIN 36 - #define Y_MIN_PIN 16 - #define Y_MAX_PIN -1 //17 - - #define Z_STEP_PIN 44 - #define Z_DIR_PIN 46 - #define Z_ENABLE_PIN 42 - #define Z_MIN_PIN 18 - #define Z_MAX_PIN -1 //19 - - #define E0_STEP_PIN 32 - #define E0_DIR_PIN 34 - #define E0_ENABLE_PIN 30 - - #define SDPOWER 48 - #define SDSS 53 - #define LED_PIN 13 - #define PS_ON_PIN -1 - #define KILL_PIN -1 - - #ifdef RAMPS_V_1_0 // RAMPS_V_1_0 - #define HEATER_0_PIN 12 // RAMPS 1.0 - #define HEATER_BED_PIN -1 // RAMPS 1.0 - #define FAN_PIN 11 // RAMPS 1.0 - #else // RAMPS_V_1_1 or RAMPS_V_1_2 - #define HEATER_0_PIN 10 // RAMPS 1.1 - #define HEATER_BED_PIN 8 // RAMPS 1.1 - #define FAN_PIN 9 // RAMPS 1.1 - #endif - - #define HEATER_1_PIN -1 - #define HEATER_2_PIN -1 - #define TEMP_0_PIN 2 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! - #define TEMP_1_PIN -1 - #define TEMP_2_PIN -1 - #define TEMP_BED_PIN 1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! - -#endif// MOTHERBOARD == 33 || MOTHERBOARD == 34 - -// SPI for Max6675 Thermocouple - -#ifndef SDSUPPORT -// these pins are defined in the SD library if building with SD support - #define MAX_SCK_PIN 52 - #define MAX_MISO_PIN 50 - #define MAX_MOSI_PIN 51 - #define MAX6675_SS 53 -#else - #define MAX6675_SS 49 -#endif - -#endif//MOTHERBOARD == 3 || MOTHERBOARD == 33 || MOTHERBOARD == 34 - -/**************************************************************************************** -* Duemilanove w/ ATMega328P pin assignment -* -****************************************************************************************/ -#if MOTHERBOARD == 4 -#define KNOWN_BOARD 1 - -#ifndef __AVR_ATmega328P__ -#error Oops! Make sure you have 'Arduino Duemilanove w/ ATMega328' selected from the 'Tools -> Boards' menu. -#endif - -#define X_STEP_PIN 19 -#define X_DIR_PIN 18 -#define X_ENABLE_PIN -1 -#define X_STOP_PIN 17 - -#define Y_STEP_PIN 10 -#define Y_DIR_PIN 7 -#define Y_ENABLE_PIN -1 -#define Y_STOP_PIN 8 - -#define Z_STEP_PIN 13 -#define Z_DIR_PIN 3 -#define Z_ENABLE_PIN 2 -#define Z_STOP_PIN 4 - -#define E0_STEP_PIN 11 -#define E0_DIR_PIN 12 -#define E0_ENABLE_PIN -1 - -#define SDPOWER -1 -#define SDSS -1 -#define LED_PIN -1 -#define FAN_PIN 5 -#define PS_ON_PIN -1 -#define KILL_PIN -1 - -#define HEATER_0_PIN 6 -#define HEATER_1_PIN -1 -#define HEATER_2_PIN -1 -#define TEMP_0_PIN 0 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! -#define TEMP_1_PIN -1 -#define TEMP_2_PIN -1 -#define HEATER_BED_PIN -1 -#define TEMP_BED_PIN -1 - -#endif - -/**************************************************************************************** -* Gen6 pin assignment -* -****************************************************************************************/ -#if MOTHERBOARD == 5 || MOTHERBOARD == 51 -#define KNOWN_BOARD 1 - -#ifndef __AVR_ATmega644P__ -#ifndef __AVR_ATmega1284P__ -#error Oops! Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu. -#endif -#endif - -//x axis pins - #define X_STEP_PIN 15 - #define X_DIR_PIN 18 - #define X_ENABLE_PIN 19 - #define X_STOP_PIN 20 - - //y axis pins - #define Y_STEP_PIN 23 - #define Y_DIR_PIN 22 - #define Y_ENABLE_PIN 24 - #define Y_STOP_PIN 25 - - //z axis pins - #define Z_STEP_PIN 27 - #define Z_DIR_PIN 28 - #define Z_ENABLE_PIN 29 - #define Z_STOP_PIN 30 - - //extruder pins - #define E0_STEP_PIN 4 //Edited @ EJE Electronics 20100715 - #define E0_DIR_PIN 2 //Edited @ EJE Electronics 20100715 - #define E0_ENABLE_PIN 3 //Added @ EJE Electronics 20100715 - #define TEMP_0_PIN 5 //changed @ rkoeppl 20110410 - #define TEMP_1_PIN -1 //changed @ rkoeppl 20110410 - - - #define TEMP_2_PIN -1 //changed @ rkoeppl 20110410 - #define HEATER_0_PIN 14 //changed @ rkoeppl 20110410 - #define HEATER_1_PIN -1 - #define HEATER_2_PIN -1 - #if MOTHERBOARD == 5 - #define HEATER_BED_PIN -1 //changed @ rkoeppl 20110410 - #define TEMP_BED_PIN -1 //changed @ rkoeppl 20110410 - #else - #define HEATER_BED_PIN 1 //changed @ rkoeppl 20110410 - #define TEMP_BED_PIN 0 //changed @ rkoeppl 20110410 - #endif - #define SDPOWER -1 - #define SDSS 17 - #define LED_PIN -1 //changed @ rkoeppl 20110410 - #define FAN_PIN -1 //changed @ rkoeppl 20110410 - #define PS_ON_PIN -1 //changed @ rkoeppl 20110410 - #define KILL_PIN -1 //changed @ drakelive 20120830 - //our pin for debugging. - - #define DEBUG_PIN 0 - - //our RS485 pins - #define TX_ENABLE_PIN 12 - #define RX_ENABLE_PIN 13 - - -#endif - -/**************************************************************************************** -* Sanguinololu pin assignment -* -****************************************************************************************/ -#if MOTHERBOARD == 64 -#define STB -#endif -#if MOTHERBOARD == 63 -#define MELZI -#endif -#if MOTHERBOARD == 62 || MOTHERBOARD == 63 || MOTHERBOARD == 64 -#undef MOTHERBOARD -#define MOTHERBOARD 6 -#define SANGUINOLOLU_V_1_2 -#endif -#if MOTHERBOARD == 6 -#define KNOWN_BOARD 1 -#ifndef __AVR_ATmega644P__ -#ifndef __AVR_ATmega1284P__ -#error Oops! Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu. -#endif -#endif - -#define X_STEP_PIN 15 -#define X_DIR_PIN 21 -#define X_STOP_PIN 18 - -#define Y_STEP_PIN 22 -#define Y_DIR_PIN 23 -#define Y_STOP_PIN 19 - -#define Z_STEP_PIN 3 -#define Z_DIR_PIN 2 -#define Z_STOP_PIN 20 - -#define E0_STEP_PIN 1 -#define E0_DIR_PIN 0 - -#define LED_PIN -1 - -#define FAN_PIN -1 -#if FAN_PIN == 12 || FAN_PIN ==13 -#define FAN_SOFT_PWM -#endif - -#ifdef MELZI -#define LED_PIN 27 /* On some broken versions of the Sanguino libraries the pin definitions are wrong, which then needs LED_PIN as pin 28. But you better upgrade your Sanguino libraries! See #368. */ -#define FAN_PIN 4 -#endif - -#ifdef STB -#define FAN_PIN 4 -#endif - -#define PS_ON_PIN -1 -#define KILL_PIN -1 - -#define HEATER_0_PIN 13 // (extruder) -#define HEATER_1_PIN -1 -#define HEATER_2_PIN -1 - -#ifdef SANGUINOLOLU_V_1_2 - -#define HEATER_BED_PIN 12 // (bed) -#define X_ENABLE_PIN 14 -#define Y_ENABLE_PIN 14 -#define Z_ENABLE_PIN 26 -#define E0_ENABLE_PIN 14 - -#else - -#define HEATER_BED_PIN 14 // (bed) -#define X_ENABLE_PIN -1 -#define Y_ENABLE_PIN -1 -#define Z_ENABLE_PIN -1 -#define E0_ENABLE_PIN -1 - -#endif - -#define TEMP_0_PIN 7 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 33 extruder) -#define TEMP_1_PIN -1 -#define TEMP_2_PIN -1 -#define TEMP_BED_PIN 6 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 34 bed) -#define SDPOWER -1 -#define SDSS 31 - -/* On some broken versions of the Sanguino libraries the pin definitions are wrong, which then needs SDSS as pin 24. But you better upgrade your Sanguino libraries! See #368. */ -//#define SDSS 24 - - #ifdef ULTRA_LCD - #ifdef NEWPANEL - //we have no buzzer installed - #define BEEPER -1 - //LCD Pins - #ifdef DOGLCD - // Pins for DOGM SPI LCD Support - #define DOGLCD_A0 30 - #define DOGLCD_CS 29 - // GLCD features - #define LCD_CONTRAST 1 - // Uncomment screen orientation - // #define LCD_SCREEN_ROT_0 - // #define LCD_SCREEN_ROT_90 - #define LCD_SCREEN_ROT_180 - // #define LCD_SCREEN_ROT_270 - #else // standard Hitachi LCD controller - #define LCD_PINS_RS 4 - #define LCD_PINS_ENABLE 17 - #define LCD_PINS_D4 30 - #define LCD_PINS_D5 29 - #define LCD_PINS_D6 28 - #define LCD_PINS_D7 27 - #endif - //The encoder and click button - #define BTN_EN1 11 - #define BTN_EN2 10 - #ifdef LCD_I2C_PANELOLU2 - #ifdef MELZI - #define BTN_ENC 29 //the click switch - #define SDSS 30 //to use the SD card reader on the Panelolu2 rather than the melzi board - #else - #define BTN_ENC 30 //the click switch - #endif - #else - #define BTN_ENC 16 //the click switch - #endif //Panelolu2 - //not connected to a pin - #define SDCARDDETECT -1 - - #endif //Newpanel - #endif //Ultipanel - -#endif - - -#if MOTHERBOARD == 7 -#define KNOWN_BOARD -/***************************************************************** -* Ultimaker pin assignment -******************************************************************/ - -#ifndef __AVR_ATmega1280__ - #ifndef __AVR_ATmega2560__ - #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. - #endif -#endif - -#define LARGE_FLASH true - -#define X_STEP_PIN 25 -#define X_DIR_PIN 23 -#define X_MIN_PIN 22 -#define X_MAX_PIN 24 -#define X_ENABLE_PIN 27 - -#define Y_STEP_PIN 31 -#define Y_DIR_PIN 33 -#define Y_MIN_PIN 26 -#define Y_MAX_PIN 28 -#define Y_ENABLE_PIN 29 - -#define Z_STEP_PIN 37 -#define Z_DIR_PIN 39 -#define Z_MIN_PIN 30 -#define Z_MAX_PIN 32 -#define Z_ENABLE_PIN 35 - -#define HEATER_BED_PIN 4 -#define TEMP_BED_PIN 10 - -#define HEATER_0_PIN 2 -#define TEMP_0_PIN 8 - -#define HEATER_1_PIN 3 -#define TEMP_1_PIN 9 - -#define HEATER_2_PIN -1 -#define TEMP_2_PIN -1 - -#define E0_STEP_PIN 43 -#define E0_DIR_PIN 45 -#define E0_ENABLE_PIN 41 - -#define E1_STEP_PIN 49 -#define E1_DIR_PIN 47 -#define E1_ENABLE_PIN 48 - -#define SDPOWER -1 -#define SDSS 53 -#define LED_PIN 13 -#define FAN_PIN 7 -#define PS_ON_PIN 12 -#define KILL_PIN -1 -#define SUICIDE_PIN 54 //PIN that has to be turned on right after start, to keep power flowing. - -#ifdef ULTRA_LCD - - #ifdef NEWPANEL - //arduino pin witch triggers an piezzo beeper - #define BEEPER 18 - - #define LCD_PINS_RS 20 - #define LCD_PINS_ENABLE 17 - #define LCD_PINS_D4 16 - #define LCD_PINS_D5 21 - #define LCD_PINS_D6 5 - #define LCD_PINS_D7 6 - - //buttons are directly attached - #define BTN_EN1 40 - #define BTN_EN2 42 - #define BTN_ENC 19 //the click - - #define SDCARDDETECT 38 - - #else //old style panel with shift register - //arduino pin witch triggers an piezzo beeper - #define BEEPER 18 - - //buttons are attached to a shift register - #define SHIFT_CLK 38 - #define SHIFT_LD 42 - #define SHIFT_OUT 40 - #define SHIFT_EN 17 - - #define LCD_PINS_RS 16 - #define LCD_PINS_ENABLE 5 - #define LCD_PINS_D4 6 - #define LCD_PINS_D5 21 - #define LCD_PINS_D6 20 - #define LCD_PINS_D7 19 - - #define SDCARDDETECT -1 - #endif -#endif //ULTRA_LCD - -#endif - -#if MOTHERBOARD == 71 -#define KNOWN_BOARD -/***************************************************************** -* Ultimaker pin assignment (Old electronics) -******************************************************************/ - -#ifndef __AVR_ATmega1280__ - #ifndef __AVR_ATmega2560__ - #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. - #endif -#endif - -#define LARGE_FLASH true - -#define X_STEP_PIN 25 -#define X_DIR_PIN 23 -#define X_MIN_PIN 15 -#define X_MAX_PIN 14 -#define X_ENABLE_PIN 27 - -#define Y_STEP_PIN 31 -#define Y_DIR_PIN 33 -#define Y_MIN_PIN 17 -#define Y_MAX_PIN 16 -#define Y_ENABLE_PIN 29 - -#define Z_STEP_PIN 37 -#define Z_DIR_PIN 39 -#define Z_MIN_PIN 19 -#define Z_MAX_PIN 18 -#define Z_ENABLE_PIN 35 - -#define HEATER_BED_PIN -1 -#define TEMP_BED_PIN -1 - -#define HEATER_0_PIN 2 -#define TEMP_0_PIN 8 - -#define HEATER_1_PIN 1 -#define TEMP_1_PIN 1 - -#define HEATER_2_PIN -1 -#define TEMP_2_PIN -1 - -#define E0_STEP_PIN 43 -#define E0_DIR_PIN 45 -#define E0_ENABLE_PIN 41 - -#define E1_STEP_PIN -1 -#define E1_DIR_PIN -1 -#define E1_ENABLE_PIN -1 - -#define SDPOWER -1 -#define SDSS -1 -#define LED_PIN -1 -#define FAN_PIN -1 -#define PS_ON_PIN -1 -#define KILL_PIN -1 -#define SUICIDE_PIN -1 //PIN that has to be turned on right after start, to keep power flowing. - -#define LCD_PINS_RS 24 -#define LCD_PINS_ENABLE 22 -#define LCD_PINS_D4 36 -#define LCD_PINS_D5 34 -#define LCD_PINS_D6 32 -#define LCD_PINS_D7 30 - -#endif - - -/**************************************************************************************** -* RUMBA pin assignment -* -****************************************************************************************/ -#if MOTHERBOARD == 80 -#define KNOWN_BOARD 1 - -#ifndef __AVR_ATmega2560__ - #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. -#endif - -#define X_STEP_PIN 17 -#define X_DIR_PIN 16 -#define X_ENABLE_PIN 48 -#define X_MIN_PIN 37 -#define X_MAX_PIN 36 - -#define Y_STEP_PIN 54 -#define Y_DIR_PIN 47 -#define Y_ENABLE_PIN 55 -#define Y_MIN_PIN 35 -#define Y_MAX_PIN 34 - -#define Z_STEP_PIN 57 -#define Z_DIR_PIN 56 -#define Z_ENABLE_PIN 62 -#define Z_MIN_PIN 33 -#define Z_MAX_PIN 32 - -#define E0_STEP_PIN 23 -#define E0_DIR_PIN 22 -#define E0_ENABLE_PIN 24 - -#define E1_STEP_PIN 26 -#define E1_DIR_PIN 25 -#define E1_ENABLE_PIN 27 - -#define E2_STEP_PIN 29 -#define E2_DIR_PIN 28 -#define E2_ENABLE_PIN 39 - -#define LED_PIN 13 - -#define FAN_PIN 7 -//additional FAN1 PIN (e.g. useful for electronics fan or light on/off) on PIN 8 - -#define PS_ON_PIN 45 -#define KILL_PIN 46 - -#if (TEMP_SENSOR_0==0) - #define TEMP_0_PIN -1 - #define HEATER_0_PIN -1 -#else - #define HEATER_0_PIN 2 // EXTRUDER 1 - #if (TEMP_SENSOR_0==-1) - #define TEMP_0_PIN 6 // ANALOG NUMBERING - connector *K1* on RUMBA thermocouple ADD ON is used - #else - #define TEMP_0_PIN 15 // ANALOG NUMBERING - default connector for thermistor *T0* on rumba board is used - #endif -#endif - -#if (TEMP_SENSOR_1==0) - #define TEMP_1_PIN -1 - #define HEATER_1_PIN -1 -#else - #define HEATER_1_PIN 3 // EXTRUDER 2 - #if (TEMP_SENSOR_1==-1) - #define TEMP_1_PIN 5 // ANALOG NUMBERING - connector *K2* on RUMBA thermocouple ADD ON is used - #else - #define TEMP_1_PIN 14 // ANALOG NUMBERING - default connector for thermistor *T1* on rumba board is used - #endif -#endif - -#if (TEMP_SENSOR_2==0) - #define TEMP_2_PIN -1 - #define HEATER_2_PIN -1 -#else - #define HEATER_2_PIN 6 // EXTRUDER 3 - #if (TEMP_SENSOR_2==-1) - #define TEMP_2_PIN 7 // ANALOG NUMBERING - connector *K3* on RUMBA thermocouple ADD ON is used <-- this can not be used when TEMP_SENSOR_BED is defined as thermocouple - #else - #define TEMP_2_PIN 13 // ANALOG NUMBERING - default connector for thermistor *T2* on rumba board is used - #endif -#endif - -//optional for extruder 4 or chamber: #define TEMP_X_PIN 12 // ANALOG NUMBERING - default connector for thermistor *T3* on rumba board is used -//optional FAN1 can be used as 4th heater output: #define HEATER_3_PIN 8 // EXTRUDER 4 - -#if (TEMP_SENSOR_BED==0) - #define TEMP_BED_PIN -1 - #define HEATER_BED_PIN -1 -#else - #define HEATER_BED_PIN 9 // BED - #if (TEMP_SENSOR_BED==-1) - #define TEMP_BED_PIN 7 // ANALOG NUMBERING - connector *K3* on RUMBA thermocouple ADD ON is used <-- this can not be used when TEMP_SENSOR_2 is defined as thermocouple - #else - #define TEMP_BED_PIN 11 // ANALOG NUMBERING - default connector for thermistor *THB* on rumba board is used - #endif -#endif - -#define SDPOWER -1 -#define SDSS 53 -#define SDCARDDETECT 49 -#define BEEPER 44 -#define LCD_PINS_RS 19 -#define LCD_PINS_ENABLE 42 -#define LCD_PINS_D4 18 -#define LCD_PINS_D5 38 -#define LCD_PINS_D6 41 -#define LCD_PINS_D7 40 -#define BTN_EN1 11 -#define BTN_EN2 12 -#define BTN_ENC 43 - -#endif //MOTHERBOARD==80 - - -/**************************************************************************************** -* Teensylu 0.7 / Printrboard pin assignments (AT90USB1286) -* Requires the Teensyduino software with Teensy++ 2.0 selected in Arduino IDE! - http://www.pjrc.com/teensy/teensyduino.html -* See http://reprap.org/wiki/Printrboard for more info -****************************************************************************************/ -#if MOTHERBOARD == 8 || MOTHERBOARD == 81 -#define KNOWN_BOARD 1 -#define AT90USB 1286 // Disable MarlinSerial etc. - -#ifndef __AVR_AT90USB1286__ -#error Oops! Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu. -#endif - -#define LARGE_FLASH true - -#define X_STEP_PIN 0 -#define X_DIR_PIN 1 -#define X_ENABLE_PIN 39 - -#define Y_STEP_PIN 2 -#define Y_DIR_PIN 3 -#define Y_ENABLE_PIN 38 - -#define Z_STEP_PIN 4 -#define Z_DIR_PIN 5 -#define Z_ENABLE_PIN 23 - -#define E0_STEP_PIN 6 -#define E0_DIR_PIN 7 -#define E0_ENABLE_PIN 19 - -#define HEATER_0_PIN 21 // Extruder -#define HEATER_1_PIN -1 -#define HEATER_2_PIN -1 -#define HEATER_BED_PIN 20 // Bed -#define FAN_PIN 22 // Fan -// You may need to change FAN_PIN to 16 because Marlin isn't using fastio.h -// for the fan and Teensyduino uses a different pin mapping. - -#if MOTHERBOARD == 8 // Teensylu - #define X_STOP_PIN 13 - #define Y_STOP_PIN 14 - #define Z_STOP_PIN 15 - #define TEMP_0_PIN 7 // Extruder / Analog pin numbering - #define TEMP_BED_PIN 6 // Bed / Analog pin numbering -#else // Printrboard - #define X_STOP_PIN 35 - #define Y_STOP_PIN 8 - #define Z_STOP_PIN 36 - #define TEMP_0_PIN 1 // Extruder / Analog pin numbering - #define TEMP_BED_PIN 0 // Bed / Analog pin numbering -#endif - -#define TEMP_1_PIN -1 -#define TEMP_2_PIN -1 - -#define SDPOWER -1 -#define SDSS 8 -#define LED_PIN -1 -#define PS_ON_PIN -1 -#define KILL_PIN -1 -#define ALARM_PIN -1 - -#ifndef SDSUPPORT -// these pins are defined in the SD library if building with SD support - #define SCK_PIN 9 - #define MISO_PIN 11 - #define MOSI_PIN 10 -#endif - -#endif // MOTHERBOARD == 8 (Teensylu) or 81 (Printrboard) - -/**************************************************************************************** - * Brainwave 1.0 pin assignments (AT90USB646) - * Requires hardware bundle for Arduino: - https://github.com/unrepentantgeek/brainwave-arduino - ****************************************************************************************/ -#if MOTHERBOARD == 82 -#define KNOWN_BOARD 1 -#define AT90USB 646 // Disable MarlinSerial etc. - -#ifndef __AVR_AT90USB646__ -#error Oops! Make sure you have 'Brainwave' selected from the 'Tools -> Boards' menu. -#endif - -#define X_STEP_PIN 27 -#define X_DIR_PIN 29 -#define X_ENABLE_PIN 28 -#define X_STOP_PIN 7 -#define X_ATT_PIN 26 - -#define Y_STEP_PIN 31 -#define Y_DIR_PIN 33 -#define Y_ENABLE_PIN 32 -#define Y_STOP_PIN 6 -#define Y_ATT_PIN 30 - -#define Z_STEP_PIN 17 -#define Z_DIR_PIN 19 -#define Z_ENABLE_PIN 18 -#define Z_STOP_PIN 5 -#define Z_ATT_PIN 16 - -#define E0_STEP_PIN 21 -#define E0_DIR_PIN 23 -#define E0_ENABLE_PIN 22 -#define E0_ATT_PIN 20 - -#define HEATER_0_PIN 4 // Extruder -#define HEATER_1_PIN -1 -#define HEATER_2_PIN -1 -#define HEATER_BED_PIN 38 // Bed -#define FAN_PIN 3 // Fan - -#define TEMP_0_PIN 7 // Extruder / Analog pin numbering -#define TEMP_1_PIN -1 -#define TEMP_2_PIN -1 -#define TEMP_BED_PIN 6 // Bed / Analog pin numbering - -#define SDPOWER -1 -#define SDSS -1 -#define LED_PIN 39 -#define PS_ON_PIN -1 -#define KILL_PIN -1 -#define ALARM_PIN -1 - -#ifndef SDSUPPORT -// these pins are defined in the SD library if building with SD support - #define SCK_PIN 9 - #define MISO_PIN 11 - #define MOSI_PIN 10 -#endif - -#endif // MOTHERBOARD == 82 (Brainwave) - -/**************************************************************************************** -* Gen3+ pin assignment -* -****************************************************************************************/ -#if MOTHERBOARD == 9 -#define MOTHERBOARD 6 /*TODO: Figure out, Why is this done?*/ -#define KNOWN_BOARD 1 -#ifndef __AVR_ATmega644P__ -#ifndef __AVR_ATmega1284P__ -#error Oops! Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu. -#endif -#endif - -#define X_STEP_PIN 15 -#define X_DIR_PIN 18 -#define X_STOP_PIN 20 - -#define Y_STEP_PIN 23 -#define Y_DIR_PIN 22 -#define Y_STOP_PIN 25 - -#define Z_STEP_PIN 27 -#define Z_DIR_PIN 28 -#define Z_STOP_PIN 30 - -#define E_STEP_PIN 17 -#define E_DIR_PIN 21 - -#define LED_PIN -1 - -#define FAN_PIN -1 - -#define PS_ON_PIN 14 -#define KILL_PIN -1 - -#define HEATER_0_PIN 12 // (extruder) - -#define HEATER_1_PIN 16 // (bed) -#define X_ENABLE_PIN 19 -#define Y_ENABLE_PIN 24 -#define Z_ENABLE_PIN 29 -#define E_ENABLE_PIN 13 - -#define TEMP_0_PIN 0 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 33 extruder) -#define TEMP_1_PIN 5 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 34 bed) -#define TEMP_2_PIN -1 -#define SDPOWER -1 -#define SDSS 4 -#define HEATER_2_PIN -1 - -#endif - - - -/**************************************************************************************** -* Open Motion controller with enable based extruders -* -* ATMega644 -* -* +---\/---+ -* (D 0) PB0 1| |40 PA0 (AI 0 / D31) -* (D 1) PB1 2| |39 PA1 (AI 1 / D30) -* INT2 (D 2) PB2 3| |38 PA2 (AI 2 / D29) -* PWM (D 3) PB3 4| |37 PA3 (AI 3 / D28) -* PWM (D 4) PB4 5| |36 PA4 (AI 4 / D27) -* MOSI (D 5) PB5 6| |35 PA5 (AI 5 / D26) -* MISO (D 6) PB6 7| |34 PA6 (AI 6 / D25) -* SCK (D 7) PB7 8| |33 PA7 (AI 7 / D24) -* RST 9| |32 AREF -* VCC 10| |31 GND -* GND 11| |30 AVCC -* XTAL2 12| |29 PC7 (D 23) -* XTAL1 13| |28 PC6 (D 22) -* RX0 (D 8) PD0 14| |27 PC5 (D 21) TDI -* TX0 (D 9) PD1 15| |26 PC4 (D 20) TDO -* INT0 RX1 (D 10) PD2 16| |25 PC3 (D 19) TMS -* INT1 TX1 (D 11) PD3 17| |24 PC2 (D 18) TCK -* PWM (D 12) PD4 18| |23 PC1 (D 17) SDA -* PWM (D 13) PD5 19| |22 PC0 (D 16) SCL -* PWM (D 14) PD6 20| |21 PD7 (D 15) PWM -* +--------+ -* -****************************************************************************************/ -#if MOTHERBOARD == 90 //Alpha OMCA board -#define KNOWN_BOARD 1 - -#ifndef __AVR_ATmega644__ -#error Oops! Make sure you have 'SanguinoA' selected from the 'Tools -> Boards' menu. -#endif - -#define X_STEP_PIN 21 -#define X_DIR_PIN 20 -#define X_ENABLE_PIN 24 -#define X_STOP_PIN 0 - -#define Y_STEP_PIN 23 -#define Y_DIR_PIN 22 -#define Y_ENABLE_PIN 24 -#define Y_STOP_PIN 1 - -#define Z_STEP_PIN 26 -#define Z_DIR_PIN 25 -#define Z_ENABLE_PIN 24 -#define Z_STOP_PIN 2 - -#define E0_STEP_PIN 28 -#define E0_DIR_PIN 27 -#define E0_ENABLE_PIN 24 - -#define E1_STEP_PIN -1 // 19 -#define E1_DIR_PIN -1 // 18 -#define E1_ENABLE_PIN 24 - -#define E2_STEP_PIN -1 // 17 -#define E2_DIR_PIN -1 // 16 -#define E2_ENABLE_PIN 24 - -#define SDPOWER -1 -#define SDSS 11 -#define SDCARDDETECT -1 // 10 optional also used as mode pin -#define LED_PIN -1 -#define FAN_PIN 3 -#define PS_ON_PIN -1 -#define KILL_PIN -1 - -#define HEATER_0_PIN 4 -#define HEATER_1_PIN -1 // 12 -#define HEATER_2_PIN -1 // 13 -#define TEMP_0_PIN 0 //D27 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! -#define TEMP_1_PIN -1 // 1 -#define TEMP_2_PIN -1 // 2 -#define HEATER_BED_PIN -1 // 14/15 -#define TEMP_BED_PIN -1 // 1,2 or I2C -/* Unused (1) (2) (3) 4 5 6 7 8 9 10 11 12 13 (14) (15) (16) 17 (18) (19) (20) (21) (22) (23) 24 (25) (26) (27) 28 (29) (30) (31) */ - -#endif - -#if MOTHERBOARD == 91 // Final OMCA board -- REF http://sanguino.cc/hardware -#define KNOWN_BOARD 1 - -#if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) -#error Oops! Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu. (Final OMCA board) -#endif - -#define X_STEP_PIN 26 -#define X_DIR_PIN 25 -#define X_ENABLE_PIN 10 -#define X_STOP_PIN 0 - -#define Y_STEP_PIN 28 -#define Y_DIR_PIN 27 -#define Y_ENABLE_PIN 10 -#define Y_STOP_PIN 1 - -#define Z_STEP_PIN 23 -#define Z_DIR_PIN 22 -#define Z_ENABLE_PIN 10 -#define Z_STOP_PIN 2 - -#define E0_STEP_PIN 24 -#define E0_DIR_PIN 21 -#define E0_ENABLE_PIN 10 - -/* future proofing */ -#define __FS 20 -#define __FD 19 -#define __GS 18 -#define __GD 13 - -#define UNUSED_PWM 14 /* PWM on LEFT connector */ - -#define E1_STEP_PIN -1 // 21 -#define E1_DIR_PIN -1 // 20 -#define E1_ENABLE_PIN -1 // 19 - -#define E2_STEP_PIN -1 // 21 -#define E2_DIR_PIN -1 // 20 -#define E2_ENABLE_PIN -1 // 18 - -#define SDPOWER -1 -#define SDSS 11 -#define SDCARDDETECT -1 // 10 optional also used as mode pin -#define LED_PIN -1 -#define FAN_PIN 14 /* PWM on MIDDLE connector */ -#define PS_ON_PIN -1 -#define KILL_PIN -1 - -#define HEATER_0_PIN 3 /*DONE PWM on RIGHT connector */ -#define HEATER_1_PIN -1 -#define HEATER_2_PIN -1 -#define HEATER_1_PIN -1 -#define HEATER_2_PIN -1 -#define TEMP_0_PIN 0 // ANALOG INPUT NUMBERING -#define TEMP_1_PIN 1 // ANALOG -#define TEMP_2_PIN -1 // 2 -#define HEATER_BED_PIN 4 -#define TEMP_BED_PIN 2 // 1,2 or I2C - -#define I2C_SCL 16 -#define I2C_SDA 17 - -#endif - -#if MOTHERBOARD == 301 -#define KNOWN_BOARD -/***************************************************************** -* Rambo Pin Assignments -******************************************************************/ - -#ifndef __AVR_ATmega2560__ -#error Oops! Make sure you have 'Arduino Mega 2560' selected from the 'Tools -> Boards' menu. -#endif - -#define LARGE_FLASH true - -#define X_STEP_PIN 37 -#define X_DIR_PIN 48 -#define X_MIN_PIN 12 -#define X_MAX_PIN 24 -#define X_ENABLE_PIN 29 -#define X_MS1_PIN 40 -#define X_MS2_PIN 41 - -#define Y_STEP_PIN 36 -#define Y_DIR_PIN 49 -#define Y_MIN_PIN 11 -#define Y_MAX_PIN 23 -#define Y_ENABLE_PIN 28 -#define Y_MS1_PIN 69 -#define Y_MS2_PIN 39 - -#define Z_STEP_PIN 35 -#define Z_DIR_PIN 47 -#define Z_MIN_PIN 10 -#define Z_MAX_PIN 30 -#define Z_ENABLE_PIN 27 -#define Z_MS1_PIN 68 -#define Z_MS2_PIN 67 - -#define HEATER_BED_PIN 3 -#define TEMP_BED_PIN 2 - -#define HEATER_0_PIN 9 -#define TEMP_0_PIN 0 - -#define HEATER_1_PIN 7 -#define TEMP_1_PIN 1 - -#ifdef BARICUDA -#define HEATER_2_PIN 6 -#else -#define HEATER_2_PIN -1 -#endif -#define TEMP_2_PIN -1 - -#define E0_STEP_PIN 34 -#define E0_DIR_PIN 43 -#define E0_ENABLE_PIN 26 -#define E0_MS1_PIN 65 -#define E0_MS2_PIN 66 - -#define E1_STEP_PIN 33 -#define E1_DIR_PIN 42 -#define E1_ENABLE_PIN 25 -#define E1_MS1_PIN 63 -#define E1_MS2_PIN 64 - -#define DIGIPOTSS_PIN 38 -#define DIGIPOT_CHANNELS {4,5,3,0,1} // X Y Z E0 E1 digipot channels to stepper driver mapping - -#define SDPOWER -1 -#define SDSS 53 -#define LED_PIN 13 -#define FAN_PIN 8 -#define PS_ON_PIN 4 -#define KILL_PIN -1 -#define SUICIDE_PIN -1 //PIN that has to be turned on right after start, to keep power flowing. - -#endif - -/**************************************************************************************** -* MegaTronics -* -****************************************************************************************/ -#if MOTHERBOARD == 70 -#define KNOWN_BOARD 1 - - - #ifndef __AVR_ATmega2560__ - #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. - #endif - - -#define LARGE_FLASH true - -#define X_STEP_PIN 26 -#define X_DIR_PIN 28 -#define X_ENABLE_PIN 24 -#define X_MIN_PIN 41 -#define X_MAX_PIN 37 - -#define Y_STEP_PIN 60 // A6 -#define Y_DIR_PIN 61 // A7 -#define Y_ENABLE_PIN 22 -#define Y_MIN_PIN 14 -#define Y_MAX_PIN 15 - -#define Z_STEP_PIN 54 // A0 -#define Z_DIR_PIN 55 // A1 -#define Z_ENABLE_PIN 56 // A2 -#define Z_MIN_PIN 18 -#define Z_MAX_PIN 19 - -#define E0_STEP_PIN 31 -#define E0_DIR_PIN 32 -#define E0_ENABLE_PIN 38 - -#define E1_STEP_PIN 34 -#define E1_DIR_PIN 36 -#define E1_ENABLE_PIN 30 - -#define SDPOWER -1 -#define SDSS 53 -#define LED_PIN 13 - - -#define FAN_PIN 7 // IO pin. Buffer needed -#define PS_ON_PIN 12 -#define KILL_PIN -1 - -#define HEATER_0_PIN 9 // EXTRUDER 1 -#define HEATER_1_PIN 8 // EXTRUDER 2 (FAN On Sprinter) -#define HEATER_2_PIN -1 - -#if TEMP_SENSOR_0 == -1 -#define TEMP_0_PIN 8 // ANALOG NUMBERING -#else -#define TEMP_0_PIN 13 // ANALOG NUMBERING - -#endif - -#define TEMP_1_PIN 15 // ANALOG NUMBERING -#define TEMP_2_PIN -1 // ANALOG NUMBERING -#define HEATER_BED_PIN 10 // BED -#define TEMP_BED_PIN 14 // ANALOG NUMBERING - -#define BEEPER 33 // Beeper on AUX-4 - - -#ifdef ULTRA_LCD - - #ifdef NEWPANEL - //arduino pin which triggers an piezzo beeper - - #define LCD_PINS_RS 16 - #define LCD_PINS_ENABLE 17 - #define LCD_PINS_D4 23 - #define LCD_PINS_D5 25 - #define LCD_PINS_D6 27 - #define LCD_PINS_D7 29 - - //buttons are directly attached using AUX-2 - #define BTN_EN1 59 - #define BTN_EN2 64 - #define BTN_ENC 43 //the click - - #define BLEN_C 2 - #define BLEN_B 1 - #define BLEN_A 0 - - #define SDCARDDETECT -1 // Ramps does not use this port - - //encoder rotation values - #define encrot0 0 - #define encrot1 2 - #define encrot2 3 - #define encrot3 1 -#endif -#endif //ULTRA_LCD - -#endif - -/**************************************************************************************** -* MegaTronics v2.0 -* -****************************************************************************************/ -#if MOTHERBOARD == 701 - #define KNOWN_BOARD 1 - - - #ifndef __AVR_ATmega2560__ - #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. - #endif - - #define LARGE_FLASH true - - #define X_STEP_PIN 26 - #define X_DIR_PIN 27 - #define X_ENABLE_PIN 25 - #define X_MIN_PIN 37 - #define X_MAX_PIN 40 //2 //Max endstops default to disabled "-1", set to commented value to enable. - - #define Y_STEP_PIN 4 // A6 - #define Y_DIR_PIN 54 // A0 - #define Y_ENABLE_PIN 5 - #define Y_MIN_PIN 41 - #define Y_MAX_PIN 38 //15 - - #define Z_STEP_PIN 56 // A2 - #define Z_DIR_PIN 60 // A6 - #define Z_ENABLE_PIN 55 // A1 - #define Z_MIN_PIN 18 - #define Z_MAX_PIN 19 - - #define E0_STEP_PIN 35 - #define E0_DIR_PIN 36 - #define E0_ENABLE_PIN 34 - - #define E1_STEP_PIN 29 - #define E1_DIR_PIN 39 - #define E1_ENABLE_PIN 28 - - #define E2_STEP_PIN 23 - #define E2_DIR_PIN 24 - #define E2_ENABLE_PIN 22 - - #define SDPOWER -1 - #define SDSS 53 - #define LED_PIN 13 - - #define FAN_PIN 7 - #define FAN2_PIN 6 - #define PS_ON_PIN 12 - #define KILL_PIN -1 - - #define HEATER_0_PIN 9 // EXTRUDER 1 - #define HEATER_1_PIN 8 // EXTRUDER 2 - #define HEATER_2_PIN -1 - - #if TEMP_SENSOR_0 == -1 - #define TEMP_0_PIN 4 // ANALOG NUMBERING - #else - #define TEMP_0_PIN 13 // ANALOG NUMBERING - #endif - - - #if TEMP_SENSOR_1 == -1 - #define TEMP_1_PIN 8 // ANALOG NUMBERING - #else - #define TEMP_1_PIN 15 // ANALOG NUMBERING - #endif - - #define TEMP_2_PIN -1 // ANALOG NUMBERING - - #define HEATER_BED_PIN 10 // BED - - #if TEMP_SENSOR_BED == -1 - #define TEMP_BED_PIN 8 // ANALOG NUMBERING - #else - #define TEMP_BED_PIN 14 // ANALOG NUMBERING - #endif - - #define BEEPER 64 - - - #define LCD_PINS_RS 14 - #define LCD_PINS_ENABLE 15 - #define LCD_PINS_D4 30 - #define LCD_PINS_D5 31 - #define LCD_PINS_D6 32 - #define LCD_PINS_D7 33 - - - //buttons are directly attached using keypad - #define BTN_EN1 61 - #define BTN_EN2 59 - #define BTN_ENC 43 //the click - - #define BLEN_C 2 - #define BLEN_B 1 - #define BLEN_A 0 - - #define SDCARDDETECT -1 // Megatronics does not use this port - - //encoder rotation values - #define encrot0 0 - #define encrot1 2 - #define encrot2 3 - #define encrot3 1 - -#endif - - -/**************************************************************************************** -* Minitronics v1.0 -* -****************************************************************************************/ -#if MOTHERBOARD == 702 - #define KNOWN_BOARD 1 - - - #ifndef __AVR_ATmega1281__ - #error Oops! Make sure you have 'Minitronics ' selected from the 'Tools -> Boards' menu. - #endif - - #define LARGE_FLASH true - - #define X_STEP_PIN 48 - #define X_DIR_PIN 47 - #define X_ENABLE_PIN 49 - #define X_MIN_PIN 5 - #define X_MAX_PIN -1 //2 //Max endstops default to disabled "-1", set to commented value to enable. - - #define Y_STEP_PIN 39 // A6 - #define Y_DIR_PIN 40 // A0 - #define Y_ENABLE_PIN 38 - #define Y_MIN_PIN 2 - #define Y_MAX_PIN -1 //15 - - #define Z_STEP_PIN 42 // A2 - #define Z_DIR_PIN 43 // A6 - #define Z_ENABLE_PIN 41 // A1 - #define Z_MIN_PIN 6 - #define Z_MAX_PIN -1 - - #define E0_STEP_PIN 45 - #define E0_DIR_PIN 44 - #define E0_ENABLE_PIN 27 - - #define E1_STEP_PIN 36 - #define E1_DIR_PIN 35 - #define E1_ENABLE_PIN 37 - - #define E2_STEP_PIN -1 - #define E2_DIR_PIN -1 - #define E2_ENABLE_PIN -1 - - #define SDPOWER -1 - #define SDSS 16 - #define LED_PIN 46 - - #define FAN_PIN 9 - #define FAN2_PIN -1 - #define PS_ON_PIN -1 - #define KILL_PIN -1 - - #define HEATER_0_PIN 7 // EXTRUDER 1 - #define HEATER_1_PIN 8 // EXTRUDER 2 - #define HEATER_2_PIN -1 - - - #define TEMP_0_PIN 7 // ANALOG NUMBERING - #define TEMP_1_PIN 6 // ANALOG NUMBERING - #define TEMP_2_PIN -1 // ANALOG NUMBERING - - #define HEATER_BED_PIN 3 // BED - #define TEMP_BED_PIN 6 // ANALOG NUMBERING - - #define BEEPER -1 - - - #define LCD_PINS_RS -1 - #define LCD_PINS_ENABLE -1 - #define LCD_PINS_D4 -1 - #define LCD_PINS_D5 -1 - #define LCD_PINS_D6 -1 - #define LCD_PINS_D7 -1 - - - //buttons are directly attached using keypad - #define BTN_EN1 -1 - #define BTN_EN2 -1 - #define BTN_ENC -1 //the click - - #define BLEN_C 2 - #define BLEN_B 1 - #define BLEN_A 0 - - #define SDCARDDETECT -1 // Megatronics does not use this port - - //encoder rotation values - #define encrot0 0 - #define encrot1 2 - #define encrot2 3 - #define encrot3 1 - -#endif - - - -#ifndef KNOWN_BOARD -#error Unknown MOTHERBOARD value in configuration.h -#endif - -//List of pins which to ignore when asked to change by gcode, 0 and 1 are RX and TX, do not mess with those! -#define _E0_PINS E0_STEP_PIN, E0_DIR_PIN, E0_ENABLE_PIN, HEATER_0_PIN, -#if EXTRUDERS > 1 - #define _E1_PINS E1_STEP_PIN, E1_DIR_PIN, E1_ENABLE_PIN, HEATER_1_PIN, -#else - #define _E1_PINS -#endif -#if EXTRUDERS > 2 - #define _E2_PINS E2_STEP_PIN, E2_DIR_PIN, E2_ENABLE_PIN, HEATER_2_PIN, -#else - #define _E2_PINS -#endif - -#ifdef X_STOP_PIN - #if X_HOME_DIR < 0 - #define X_MIN_PIN X_STOP_PIN - #define X_MAX_PIN -1 - #else - #define X_MIN_PIN -1 - #define X_MAX_PIN X_STOP_PIN - #endif -#endif - -#ifdef Y_STOP_PIN - #if Y_HOME_DIR < 0 - #define Y_MIN_PIN Y_STOP_PIN - #define Y_MAX_PIN -1 - #else - #define Y_MIN_PIN -1 - #define Y_MAX_PIN Y_STOP_PIN - #endif -#endif - -#ifdef Z_STOP_PIN - #if Z_HOME_DIR < 0 - #define Z_MIN_PIN Z_STOP_PIN - #define Z_MAX_PIN -1 - #else - #define Z_MIN_PIN -1 - #define Z_MAX_PIN Z_STOP_PIN - #endif -#endif - -#ifdef DISABLE_MAX_ENDSTOPS -#define X_MAX_PIN -1 -#define Y_MAX_PIN -1 -#define Z_MAX_PIN -1 -#endif - -#define SENSITIVE_PINS {0, 1, X_STEP_PIN, X_DIR_PIN, X_ENABLE_PIN, X_MIN_PIN, X_MAX_PIN, Y_STEP_PIN, Y_DIR_PIN, Y_ENABLE_PIN, Y_MIN_PIN, Y_MAX_PIN, Z_STEP_PIN, Z_DIR_PIN, Z_ENABLE_PIN, Z_MIN_PIN, Z_MAX_PIN, PS_ON_PIN, \ - HEATER_BED_PIN, FAN_PIN, \ - _E0_PINS _E1_PINS _E2_PINS \ - analogInputToDigitalPin(TEMP_0_PIN), analogInputToDigitalPin(TEMP_1_PIN), analogInputToDigitalPin(TEMP_2_PIN), analogInputToDigitalPin(TEMP_BED_PIN) } +#ifndef PINS_H +#define PINS_H + +#define X_MS1_PIN -1 +#define X_MS2_PIN -1 +#define Y_MS1_PIN -1 +#define Y_MS2_PIN -1 +#define Z_MS1_PIN -1 +#define Z_MS2_PIN -1 +#define E0_MS1_PIN -1 +#define E0_MS2_PIN -1 +#define E1_MS1_PIN -1 +#define E1_MS2_PIN -1 +#define DIGIPOTSS_PIN -1 + +#if MOTHERBOARD == 99 +#define KNOWN_BOARD 1 + +#define X_STEP_PIN 2 +#define X_DIR_PIN 3 +#define X_ENABLE_PIN -1 +#define X_STOP_PIN 16 + +#define Y_STEP_PIN 5 +#define Y_DIR_PIN 6 +#define Y_ENABLE_PIN -1 +#define Y_STOP_PIN 67 + +#define Z_STEP_PIN 62 +#define Z_DIR_PIN 63 +#define Z_ENABLE_PIN -1 +#define Z_STOP_PIN 59 + +#define E0_STEP_PIN 65 +#define E0_DIR_PIN 66 +#define E0_ENABLE_PIN -1 + +#define SDPOWER -1 +#define SDSS 53 +#define LED_PIN -1 +#define FAN_PIN -1 +#define PS_ON_PIN 9 +#define KILL_PIN -1 + +#define HEATER_0_PIN 13 +#define HEATER_1_PIN -1 +#define HEATER_2_PIN -1 +#define TEMP_0_PIN 6 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! +#define TEMP_1_PIN -1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! +#define TEMP_2_PIN -1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! +#define HEATER_BED_PIN 4 +#define TEMP_BED_PIN 10 + +#endif /* 99 */ + +/**************************************************************************************** +* Gen7 v1.1, v1.2, v1.3 pin assignment +* +****************************************************************************************/ + + +#if MOTHERBOARD == 12 +#define MOTHERBOARD 11 +#define GEN7_VERSION 13 // v1.3 #endif + +#if MOTHERBOARD == 11 +#define KNOWN_BOARD + +#if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__) +#error Oops! Make sure you have 'Gen7' selected from the 'Tools -> Boards' menu. + +#endif + +#ifndef GEN7_VERSION +#define GEN7_VERSION 12 // v1.x +#endif + +//x axis pins +#define X_STEP_PIN 19 +#define X_DIR_PIN 18 +#define X_ENABLE_PIN 24 +#define X_STOP_PIN 7 + +//y axis pins +#define Y_STEP_PIN 23 +#define Y_DIR_PIN 22 +#define Y_ENABLE_PIN 24 +#define Y_STOP_PIN 5 + +//z axis pins +#define Z_STEP_PIN 26 +#define Z_DIR_PIN 25 +#define Z_ENABLE_PIN 24 +#define Z_MIN_PIN 1 +#define Z_MAX_PIN 0 + +//extruder pins +#define E0_STEP_PIN 28 +#define E0_DIR_PIN 27 +#define E0_ENABLE_PIN 24 + +#define TEMP_0_PIN 1 +#define TEMP_1_PIN -1 +#define TEMP_2_PIN -1 +#define TEMP_BED_PIN 2 + +#define HEATER_0_PIN 4 +#define HEATER_1_PIN -1 +#define HEATER_2_PIN -1 +#define HEATER_BED_PIN 3 + +#define KILL_PIN -1 + +#define SDPOWER -1 +#define SDSS -1 // SCL pin of I2C header +#define LED_PIN -1 + +#if (GEN7_VERSION >= 13) +// Gen7 v1.3 removed the fan pin +#define FAN_PIN -1 +#else +#define FAN_PIN 31 +#endif +#define PS_ON_PIN 15 + +//All these generations of Gen7 supply thermistor power +//via PS_ON, so ignore bad thermistor readings +#define BOGUS_TEMPERATURE_FAILSAFE_OVERRIDE + +//our pin for debugging. +#define DEBUG_PIN 0 + +//our RS485 pins +#define TX_ENABLE_PIN 12 +#define RX_ENABLE_PIN 13 + +#endif + +/**************************************************************************************** +* Gen7 v1.4 pin assignment +* +****************************************************************************************/ + +#if MOTHERBOARD == 13 +#define GEN7_VERSION 14 // v1.4 +#endif + +#if MOTHERBOARD == 13 +#define KNOWN_BOARD + +#if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__) +#error Oops! Make sure you have 'Gen7' selected from the 'Tools -> Boards' menu. + +#endif + +#ifndef GEN7_VERSION +#define GEN7_VERSION 14 // v1.x +#endif + +//x axis pins +#define X_STEP_PIN 29 +#define X_DIR_PIN 28 +#define X_ENABLE_PIN 25 +#define X_STOP_PIN 0 + +//y axis pins +#define Y_STEP_PIN 27 +#define Y_DIR_PIN 26 +#define Y_ENABLE_PIN 25 +#define Y_STOP_PIN 1 + +//z axis pins +#define Z_STEP_PIN 23 +#define Z_DIR_PIN 22 +#define Z_ENABLE_PIN 25 +#define Z_STOP_PIN 2 + +//extruder pins +#define E0_STEP_PIN 19 +#define E0_DIR_PIN 18 +#define E0_ENABLE_PIN 25 + +#define TEMP_0_PIN 1 +#define TEMP_1_PIN -1 +#define TEMP_2_PIN -1 +#define TEMP_BED_PIN 0 + +#define HEATER_0_PIN 4 +#define HEATER_1_PIN -1 +#define HEATER_2_PIN -1 +#define HEATER_BED_PIN 3 + +#define KILL_PIN -1 + +#define SDPOWER -1 +#define SDSS -1 // SCL pin of I2C header +#define LED_PIN -1 + +#define FAN_PIN -1 + +#define PS_ON_PIN 15 + +//our pin for debugging. +#define DEBUG_PIN 0 + +//our RS485 pins +#define TX_ENABLE_PIN 12 +#define RX_ENABLE_PIN 13 + +#endif + +/******************************************************************************* +********* +* Gen7 Alfons3 pin assignment +* +******************************************************************************** +********/ +/* These Pins are assigned for the modified GEN7 Board from Alfons3 Please review the pins and adjust it for your needs*/ + +#if MOTHERBOARD == 10 +#define KNOWN_BOARD + +#if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) && !defined(__AVR_ATmega1284P__) + #error Oops! Make sure you have 'Gen7' selected from the 'Tools -> Boards' menu. + +#endif + +//x axis pins + #define X_STEP_PIN 21 //different from stanard GEN7 + #define X_DIR_PIN 20 //different from stanard GEN7 + #define X_ENABLE_PIN 24 + #define X_STOP_PIN 0 + + //y axis pins + #define Y_STEP_PIN 23 + #define Y_DIR_PIN 22 + #define Y_ENABLE_PIN 24 + #define Y_STOP_PIN 1 + + //z axis pins + #define Z_STEP_PIN 26 + #define Z_DIR_PIN 25 + #define Z_ENABLE_PIN 24 + #define Z_STOP_PIN 2 + + //extruder pins + #define E0_STEP_PIN 28 + #define E0_DIR_PIN 27 + #define E0_ENABLE_PIN 24 + + #define TEMP_0_PIN 2 + #define TEMP_1_PIN -1 + #define TEMP_2_PIN -1 + #define TEMP_BED_PIN 1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 34 bed) + + #define HEATER_0_PIN 4 + #define HEATER_1_PIN -1 + #define HEATER_2_PIN -1 + #define HEATER_BED_PIN 3 // (bed) + + #define SDPOWER -1 + #define SDSS 31 // SCL pin of I2C header || CS Pin for SD Card support + #define LED_PIN -1 + + #define FAN_PIN -1 + #define PS_ON_PIN 19 + //our pin for debugging. + + #define DEBUG_PIN -1 + + //our RS485 pins + //#define TX_ENABLE_PIN 12 + //#define RX_ENABLE_PIN 13 + + #define BEEPER -1 + #define SDCARDDETECT -1 + #define SUICIDE_PIN -1 //has to be defined; otherwise Power_off doesn't work + + #define KILL_PIN -1 + //Pins for 4bit LCD Support + #define LCD_PINS_RS 18 + #define LCD_PINS_ENABLE 17 + #define LCD_PINS_D4 16 + #define LCD_PINS_D5 15 + #define LCD_PINS_D6 13 + #define LCD_PINS_D7 14 + + //buttons are directly attached + #define BTN_EN1 11 + #define BTN_EN2 10 + #define BTN_ENC 12 //the click + +#endif + +/**************************************************************************************** +* Arduino Mega pin assignment +* +****************************************************************************************/ +#if MOTHERBOARD == 3 || MOTHERBOARD == 33 || MOTHERBOARD == 34 || MOTHERBOARD == 77 +#define KNOWN_BOARD 1 + +//////////////////FIX THIS////////////// +#ifndef __AVR_ATmega1280__ + #ifndef __AVR_ATmega2560__ + #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. + #endif +#endif + + +// uncomment one of the following lines for RAMPS v1.3 or v1.0, comment both for v1.2 or 1.1 +// #define RAMPS_V_1_3 +// #define RAMPS_V_1_0 + + +#if MOTHERBOARD == 33 || MOTHERBOARD == 34 || MOTHERBOARD == 77 + + #if MOTHERBOARD == 77 + #define X_STEP_PIN 54 + #define X_DIR_PIN 55 + #define X_ENABLE_PIN 38 + #define X_MIN_PIN 3 + #define X_MAX_PIN -1 //2 //Max endstops default to disabled "-1", set to commented value to enable. + + #define Y_STEP_PIN 60 + #define Y_DIR_PIN 61 + #define Y_ENABLE_PIN 56 + #define Y_MIN_PIN 14 + #define Y_MAX_PIN -1 //15 + + #define Z_STEP_PIN 46 + #define Z_DIR_PIN 48 + #define Z_ENABLE_PIN 63 + #define Z_MIN_PIN 18 + #define Z_MAX_PIN -1 + + #define Z2_STEP_PIN 36 + #define Z2_DIR_PIN 34 + #define Z2_ENABLE_PIN 30 + + #define E0_STEP_PIN 26 + #define E0_DIR_PIN 28 + #define E0_ENABLE_PIN 24 + + #define E1_STEP_PIN 36 + #define E1_DIR_PIN 34 + #define E1_ENABLE_PIN 30 + + #define SDPOWER -1 + #define SDSS 25//53 + #define LED_PIN 13 + + #define BEEPER 33 + + #else + + #define X_STEP_PIN 54 + #define X_DIR_PIN 55 + #define X_ENABLE_PIN 38 + #define X_MIN_PIN 3 + #define X_MAX_PIN 2 //2 //Max endstops default to disabled "-1", set to commented value to enable. + + #define Y_STEP_PIN 60 + #define Y_DIR_PIN 61 + #define Y_ENABLE_PIN 56 + #define Y_MIN_PIN 14 + #define Y_MAX_PIN 15 //15 + + #define Z_STEP_PIN 46 + #define Z_DIR_PIN 48 + #define Z_ENABLE_PIN 62 + #define Z_MIN_PIN 18 + #define Z_MAX_PIN 19 + + #define Z2_STEP_PIN 36 + #define Z2_DIR_PIN 34 + #define Z2_ENABLE_PIN 30 + + #define E0_STEP_PIN 26 + #define E0_DIR_PIN 28 + #define E0_ENABLE_PIN 24 + + #define E1_STEP_PIN 36 + #define E1_DIR_PIN 34 + #define E1_ENABLE_PIN 30 + + #define SDPOWER -1 + #define SDSS 53 + #define LED_PIN 13 + #endif + + #if MOTHERBOARD == 33 + #define FAN_PIN 9 // (Sprinter config) + #else + #define FAN_PIN 4 // IO pin. Buffer needed + #endif + + #if MOTHERBOARD == 77 + #define FAN_PIN 8 + #endif + + #define PS_ON_PIN 12 + #define KILL_PIN -1 + + #define HEATER_0_PIN 10 // EXTRUDER 1 + #if MOTHERBOARD == 33 + #define HEATER_1_PIN -1 + #else + #define HEATER_1_PIN 9 // EXTRUDER 2 (FAN On Sprinter) + #endif + #define HEATER_2_PIN -1 + + #if MOTHERBOARD == 77 + #define HEATER_0_PIN 10 + #define HEATER_1_PIN 12 + #define HEATER_2_PIN 6 + #endif + + #define TEMP_0_PIN 13 // ANALOG NUMBERING + #define TEMP_1_PIN 15 // ANALOG NUMBERING + #define TEMP_2_PIN -1 // ANALOG NUMBERING + #define HEATER_BED_PIN 9 // BED + #define TEMP_BED_PIN 14 // ANALOG NUMBERING + + #ifdef ULTRA_LCD + + #ifdef NEWPANEL + //arduino pin which triggers an piezzo beeper + #define BEEPER 33 // Beeper on AUX-4 + + #define LCD_PINS_RS 16 + #define LCD_PINS_ENABLE 17 + #define LCD_PINS_D4 23 + #define LCD_PINS_D5 25 + #define LCD_PINS_D6 27 + #define LCD_PINS_D7 29 + + //buttons are directly attached using AUX-2 + #define BTN_EN1 37 + #define BTN_EN2 35 + #define BTN_ENC 31 //the click + + #define BLEN_C 2 + #define BLEN_B 1 + #define BLEN_A 0 + + #define SDCARDDETECT -1 // Ramps does not use this port + + //encoder rotation values + #define encrot0 0 + #define encrot1 2 + #define encrot2 3 + #define encrot3 1 + + #if MOTHERBOARD == 77 + #define BEEPER -1 // Beeper on AUX-4 + + #define LCD_PINS_RS 27 + #define LCD_PINS_ENABLE 29 + #define LCD_PINS_D4 37 + #define LCD_PINS_D5 35 + #define LCD_PINS_D6 33 + #define LCD_PINS_D7 31 + + //buttons are directly attached using AUX-2 + #define BTN_EN1 16 + #define BTN_EN2 17 + #define BTN_ENC 23 //the click + + + #endif + + + #else //old style panel with shift register + //arduino pin witch triggers an piezzo beeper + #define BEEPER 33 No Beeper added + + //buttons are attached to a shift register + // Not wired this yet + //#define SHIFT_CLK 38 + //#define SHIFT_LD 42 + //#define SHIFT_OUT 40 + //#define SHIFT_EN 17 + + #define LCD_PINS_RS 16 + #define LCD_PINS_ENABLE 17 + #define LCD_PINS_D4 23 + #define LCD_PINS_D5 25 + #define LCD_PINS_D6 27 + #define LCD_PINS_D7 29 + + //encoder rotation values + #define encrot0 0 + #define encrot1 2 + #define encrot2 3 + #define encrot3 1 + + + //bits in the shift register that carry the buttons for: + // left up center down right red + #define BL_LE 7 + #define BL_UP 6 + #define BL_MI 5 + #define BL_DW 4 + #define BL_RI 3 + #define BL_ST 2 + + #define BLEN_B 1 + #define BLEN_A 0 + #endif + #endif //ULTRA_LCD + +#else // RAMPS_V_1_1 or RAMPS_V_1_2 as default + +#define X_STEP_PIN 26 +#define X_DIR_PIN 28 +#define X_ENABLE_PIN 24 +#define X_MIN_PIN 3 +#define X_MAX_PIN -1 //2 + +#define Y_STEP_PIN 38 +#define Y_DIR_PIN 40 +#define Y_ENABLE_PIN 36 +#define Y_MIN_PIN 16 +#define Y_MAX_PIN -1 //17 + +#define Z_STEP_PIN 44 +#define Z_DIR_PIN 46 +#define Z_ENABLE_PIN 42 +#define Z_MIN_PIN 18 +#define Z_MAX_PIN -1 //19 + +#define E0_STEP_PIN 32 +#define E0_DIR_PIN 34 +#define E0_ENABLE_PIN 30 + +#define SDPOWER 48 +#define SDSS 53 +#define LED_PIN 13 +#define PS_ON_PIN -1 +#define KILL_PIN -1 + +#ifdef RAMPS_V_1_0 // RAMPS_V_1_0 + #define HEATER_0_PIN 12 // RAMPS 1.0 + #define HEATER_BED_PIN -1 // RAMPS 1.0 + #define FAN_PIN 11 // RAMPS 1.0 +#else // RAMPS_V_1_1 or RAMPS_V_1_2 + #define HEATER_0_PIN 10 // RAMPS 1.1 + #define HEATER_BED_PIN 8 // RAMPS 1.1 + #define FAN_PIN 9 // RAMPS 1.1 +#endif +#define HEATER_1_PIN -1 +#define HEATER_2_PIN -1 +#define TEMP_0_PIN 2 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! +#define TEMP_1_PIN -1 +#define TEMP_2_PIN -1 +#define TEMP_BED_PIN 1 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! +#endif + +// SPI for Max6675 Thermocouple + +#ifndef SDSUPPORT +// these pins are defined in the SD library if building with SD support + #define MAX_SCK_PIN 52 + #define MAX_MISO_PIN 50 + #define MAX_MOSI_PIN 51 + #define MAX6675_SS 53 +#else + #define MAX6675_SS 49 +#endif + +#endif + + + +/**************************************************************************************** +* Duemilanove w/ ATMega328P pin assignment +* +****************************************************************************************/ +#if MOTHERBOARD == 4 +#define KNOWN_BOARD 1 + +#ifndef __AVR_ATmega328P__ +#error Oops! Make sure you have 'Arduino Duemilanove w/ ATMega328' selected from the 'Tools -> Boards' menu. +#endif + +#define X_STEP_PIN 19 +#define X_DIR_PIN 18 +#define X_ENABLE_PIN -1 +#define X_STOP_PIN 17 + +#define Y_STEP_PIN 10 +#define Y_DIR_PIN 7 +#define Y_ENABLE_PIN -1 +#define Y_STOP_PIN 8 + +#define Z_STEP_PIN 13 +#define Z_DIR_PIN 3 +#define Z_ENABLE_PIN 2 +#define Z_STOP_PIN 4 + +#define E0_STEP_PIN 11 +#define E0_DIR_PIN 12 +#define E0_ENABLE_PIN -1 + +#define SDPOWER -1 +#define SDSS -1 +#define LED_PIN -1 +#define FAN_PIN 5 +#define PS_ON_PIN -1 +#define KILL_PIN -1 + +#define HEATER_0_PIN 6 +#define HEATER_1_PIN -1 +#define HEATER_2_PIN -1 +#define TEMP_0_PIN 0 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! +#define TEMP_1_PIN -1 +#define TEMP_2_PIN -1 +#define HEATER_BED_PIN -1 +#define TEMP_BED_PIN -1 + +#endif + +/**************************************************************************************** +* Gen6 pin assignment +* +****************************************************************************************/ +#if MOTHERBOARD == 5 || MOTHERBOARD == 51 +#define KNOWN_BOARD 1 + +#ifndef __AVR_ATmega644P__ +#ifndef __AVR_ATmega1284P__ +#error Oops! Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu. +#endif +#endif + +//x axis pins + #define X_STEP_PIN 15 + #define X_DIR_PIN 18 + #define X_ENABLE_PIN 19 + #define X_STOP_PIN 20 + + //y axis pins + #define Y_STEP_PIN 23 + #define Y_DIR_PIN 22 + #define Y_ENABLE_PIN 24 + #define Y_STOP_PIN 25 + + //z axis pins + #define Z_STEP_PIN 27 + #define Z_DIR_PIN 28 + #define Z_ENABLE_PIN 29 + #define Z_STOP_PIN 30 + + //extruder pins + #define E0_STEP_PIN 4 //Edited @ EJE Electronics 20100715 + #define E0_DIR_PIN 2 //Edited @ EJE Electronics 20100715 + #define E0_ENABLE_PIN 3 //Added @ EJE Electronics 20100715 + #define TEMP_0_PIN 5 //changed @ rkoeppl 20110410 + #define TEMP_1_PIN -1 //changed @ rkoeppl 20110410 + + + #define TEMP_2_PIN -1 //changed @ rkoeppl 20110410 + #define HEATER_0_PIN 14 //changed @ rkoeppl 20110410 + #define HEATER_1_PIN -1 + #define HEATER_2_PIN -1 + #if MOTHERBOARD == 5 + #define HEATER_BED_PIN -1 //changed @ rkoeppl 20110410 + #define TEMP_BED_PIN -1 //changed @ rkoeppl 20110410 + #else + #define HEATER_BED_PIN 1 //changed @ rkoeppl 20110410 + #define TEMP_BED_PIN 0 //changed @ rkoeppl 20110410 + #endif + #define SDPOWER -1 + #define SDSS 17 + #define LED_PIN -1 //changed @ rkoeppl 20110410 + #define FAN_PIN -1 //changed @ rkoeppl 20110410 + #define PS_ON_PIN -1 //changed @ rkoeppl 20110410 + #define KILL_PIN -1 //changed @ drakelive 20120830 + //our pin for debugging. + + #define DEBUG_PIN 0 + + //our RS485 pins + #define TX_ENABLE_PIN 12 + #define RX_ENABLE_PIN 13 + + +#endif + +/**************************************************************************************** +* Sanguinololu pin assignment +* +****************************************************************************************/ +#if MOTHERBOARD == 64 +#define STB +#endif +#if MOTHERBOARD == 63 +#define MELZI +#endif +#if MOTHERBOARD == 62 || MOTHERBOARD == 63 || MOTHERBOARD == 64 +#undef MOTHERBOARD +#define MOTHERBOARD 6 +#define SANGUINOLOLU_V_1_2 +#endif +#if MOTHERBOARD == 6 +#define KNOWN_BOARD 1 +#ifndef __AVR_ATmega644P__ +#ifndef __AVR_ATmega1284P__ +#error Oops! Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu. +#endif +#endif + +#define X_STEP_PIN 15 +#define X_DIR_PIN 21 +#define X_STOP_PIN 18 + +#define Y_STEP_PIN 22 +#define Y_DIR_PIN 23 +#define Y_STOP_PIN 19 + +#define Z_STEP_PIN 3 +#define Z_DIR_PIN 2 +#define Z_STOP_PIN 20 + +#define E0_STEP_PIN 1 +#define E0_DIR_PIN 0 + +#define LED_PIN -1 + +#define FAN_PIN -1 +#if FAN_PIN == 12 || FAN_PIN ==13 +#define FAN_SOFT_PWM +#endif + +#ifdef MELZI +#define LED_PIN 27 /* On some broken versions of the Sanguino libraries the pin definitions are wrong, which then needs LED_PIN as pin 28. But you better upgrade your Sanguino libraries! See #368. */ +#define FAN_PIN 4 +#endif + +#ifdef STB +#define FAN_PIN 4 +#endif + +#define PS_ON_PIN -1 +#define KILL_PIN -1 + +#define HEATER_0_PIN 13 // (extruder) +#define HEATER_1_PIN -1 +#define HEATER_2_PIN -1 + +#ifdef SANGUINOLOLU_V_1_2 + +#define HEATER_BED_PIN 12 // (bed) +#define X_ENABLE_PIN 14 +#define Y_ENABLE_PIN 14 +#define Z_ENABLE_PIN 26 +#define E0_ENABLE_PIN 14 + +#else + +#define HEATER_BED_PIN 14 // (bed) +#define X_ENABLE_PIN -1 +#define Y_ENABLE_PIN -1 +#define Z_ENABLE_PIN -1 +#define E0_ENABLE_PIN -1 + +#endif + +#define TEMP_0_PIN 7 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 33 extruder) +#define TEMP_1_PIN -1 +#define TEMP_2_PIN -1 +#define TEMP_BED_PIN 6 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 34 bed) +#define SDPOWER -1 +#define SDSS 31 + +/* On some broken versions of the Sanguino libraries the pin definitions are wrong, which then needs SDSS as pin 24. But you better upgrade your Sanguino libraries! See #368. */ +//#define SDSS 24 + + #ifdef ULTRA_LCD + #ifdef NEWPANEL + //we have no buzzer installed + #define BEEPER -1 + //LCD Pins + #ifdef DOGLCD + // Pins for DOGM SPI LCD Support + #define DOGLCD_A0 30 + #define DOGLCD_CS 29 + // GLCD features + #define LCD_CONTRAST 1 + // Uncomment screen orientation + // #define LCD_SCREEN_ROT_0 + // #define LCD_SCREEN_ROT_90 + #define LCD_SCREEN_ROT_180 + // #define LCD_SCREEN_ROT_270 + #else // standard Hitachi LCD controller + #define LCD_PINS_RS 4 + #define LCD_PINS_ENABLE 17 + #define LCD_PINS_D4 30 + #define LCD_PINS_D5 29 + #define LCD_PINS_D6 28 + #define LCD_PINS_D7 27 + #endif + //The encoder and click button + #define BTN_EN1 11 + #define BTN_EN2 10 + #ifdef LCD_I2C_PANELOLU2 + #ifdef MELZI + #define BTN_ENC 29 //the click switch + #define SDSS 30 //to use the SD card reader on the Panelolu2 rather than the melzi board + #else + #define BTN_ENC 30 //the click switch + #endif + #else + #define BTN_ENC 16 //the click switch + #endif //Panelolu2 + //not connected to a pin + #define SDCARDDETECT -1 + + #endif //Newpanel + #endif //Ultipanel + +#endif + + +#if MOTHERBOARD == 7 +#define KNOWN_BOARD +/***************************************************************** +* Ultimaker pin assignment +******************************************************************/ + +#ifndef __AVR_ATmega1280__ + #ifndef __AVR_ATmega2560__ + #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. + #endif +#endif + +#define LARGE_FLASH true + +#define X_STEP_PIN 25 +#define X_DIR_PIN 23 +#define X_MIN_PIN 22 +#define X_MAX_PIN 24 +#define X_ENABLE_PIN 27 + +#define Y_STEP_PIN 31 +#define Y_DIR_PIN 33 +#define Y_MIN_PIN 26 +#define Y_MAX_PIN 28 +#define Y_ENABLE_PIN 29 + +#define Z_STEP_PIN 37 +#define Z_DIR_PIN 39 +#define Z_MIN_PIN 30 +#define Z_MAX_PIN 32 +#define Z_ENABLE_PIN 35 + +#define HEATER_BED_PIN 4 +#define TEMP_BED_PIN 10 + +#define HEATER_0_PIN 2 +#define TEMP_0_PIN 8 + +#define HEATER_1_PIN 3 +#define TEMP_1_PIN 9 + +#define HEATER_2_PIN -1 +#define TEMP_2_PIN -1 + +#define E0_STEP_PIN 43 +#define E0_DIR_PIN 45 +#define E0_ENABLE_PIN 41 + +#define E1_STEP_PIN 49 +#define E1_DIR_PIN 47 +#define E1_ENABLE_PIN 48 + +#define SDPOWER -1 +#define SDSS 53 +#define LED_PIN 13 +#define FAN_PIN 7 +#define PS_ON_PIN 12 +#define KILL_PIN -1 +#define SUICIDE_PIN 54 //PIN that has to be turned on right after start, to keep power flowing. + +#ifdef ULTRA_LCD + + #ifdef NEWPANEL + //arduino pin witch triggers an piezzo beeper + #define BEEPER 18 + + #define LCD_PINS_RS 20 + #define LCD_PINS_ENABLE 17 + #define LCD_PINS_D4 16 + #define LCD_PINS_D5 21 + #define LCD_PINS_D6 5 + #define LCD_PINS_D7 6 + + //buttons are directly attached + #define BTN_EN1 40 + #define BTN_EN2 42 + #define BTN_ENC 19 //the click + + #define SDCARDDETECT 38 + + #else //old style panel with shift register + //arduino pin witch triggers an piezzo beeper + #define BEEPER 18 + + //buttons are attached to a shift register + #define SHIFT_CLK 38 + #define SHIFT_LD 42 + #define SHIFT_OUT 40 + #define SHIFT_EN 17 + + #define LCD_PINS_RS 16 + #define LCD_PINS_ENABLE 5 + #define LCD_PINS_D4 6 + #define LCD_PINS_D5 21 + #define LCD_PINS_D6 20 + #define LCD_PINS_D7 19 + + #define SDCARDDETECT -1 + #endif +#endif //ULTRA_LCD + +#endif + +#if MOTHERBOARD == 71 +#define KNOWN_BOARD +/***************************************************************** +* Ultimaker pin assignment (Old electronics) +******************************************************************/ + +#ifndef __AVR_ATmega1280__ + #ifndef __AVR_ATmega2560__ + #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. + #endif +#endif + +#define LARGE_FLASH true + +#define X_STEP_PIN 25 +#define X_DIR_PIN 23 +#define X_MIN_PIN 15 +#define X_MAX_PIN 14 +#define X_ENABLE_PIN 27 + +#define Y_STEP_PIN 31 +#define Y_DIR_PIN 33 +#define Y_MIN_PIN 17 +#define Y_MAX_PIN 16 +#define Y_ENABLE_PIN 29 + +#define Z_STEP_PIN 37 +#define Z_DIR_PIN 39 +#define Z_MIN_PIN 19 +#define Z_MAX_PIN 18 +#define Z_ENABLE_PIN 35 + +#define HEATER_BED_PIN -1 +#define TEMP_BED_PIN -1 + +#define HEATER_0_PIN 2 +#define TEMP_0_PIN 8 + +#define HEATER_1_PIN 1 +#define TEMP_1_PIN 1 + +#define HEATER_2_PIN -1 +#define TEMP_2_PIN -1 + +#define E0_STEP_PIN 43 +#define E0_DIR_PIN 45 +#define E0_ENABLE_PIN 41 + +#define E1_STEP_PIN -1 +#define E1_DIR_PIN -1 +#define E1_ENABLE_PIN -1 + +#define SDPOWER -1 +#define SDSS -1 +#define LED_PIN -1 +#define FAN_PIN -1 +#define PS_ON_PIN -1 +#define KILL_PIN -1 +#define SUICIDE_PIN -1 //PIN that has to be turned on right after start, to keep power flowing. + +#define LCD_PINS_RS 24 +#define LCD_PINS_ENABLE 22 +#define LCD_PINS_D4 36 +#define LCD_PINS_D5 34 +#define LCD_PINS_D6 32 +#define LCD_PINS_D7 30 + +#endif + + +/**************************************************************************************** +* RUMBA pin assignment +* +****************************************************************************************/ +#if MOTHERBOARD == 80 +#define KNOWN_BOARD 1 + +#ifndef __AVR_ATmega2560__ + #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. +#endif + +#define X_STEP_PIN 17 +#define X_DIR_PIN 16 +#define X_ENABLE_PIN 48 +#define X_MIN_PIN 37 +#define X_MAX_PIN 36 + +#define Y_STEP_PIN 54 +#define Y_DIR_PIN 47 +#define Y_ENABLE_PIN 55 +#define Y_MIN_PIN 35 +#define Y_MAX_PIN 34 + +#define Z_STEP_PIN 57 +#define Z_DIR_PIN 56 +#define Z_ENABLE_PIN 62 +#define Z_MIN_PIN 33 +#define Z_MAX_PIN 32 + +#define E0_STEP_PIN 23 +#define E0_DIR_PIN 22 +#define E0_ENABLE_PIN 24 + +#define E1_STEP_PIN 26 +#define E1_DIR_PIN 25 +#define E1_ENABLE_PIN 27 + +#define E2_STEP_PIN 29 +#define E2_DIR_PIN 28 +#define E2_ENABLE_PIN 39 + +#define LED_PIN 13 + +#define FAN_PIN 7 +//additional FAN1 PIN (e.g. useful for electronics fan or light on/off) on PIN 8 + +#define PS_ON_PIN 45 +#define KILL_PIN 46 + +#if (TEMP_SENSOR_0==0) + #define TEMP_0_PIN -1 + #define HEATER_0_PIN -1 +#else + #define HEATER_0_PIN 2 // EXTRUDER 1 + #if (TEMP_SENSOR_0==-1) + #define TEMP_0_PIN 6 // ANALOG NUMBERING - connector *K1* on RUMBA thermocouple ADD ON is used + #else + #define TEMP_0_PIN 15 // ANALOG NUMBERING - default connector for thermistor *T0* on rumba board is used + #endif +#endif + +#if (TEMP_SENSOR_1==0) + #define TEMP_1_PIN -1 + #define HEATER_1_PIN -1 +#else + #define HEATER_1_PIN 3 // EXTRUDER 2 + #if (TEMP_SENSOR_1==-1) + #define TEMP_1_PIN 5 // ANALOG NUMBERING - connector *K2* on RUMBA thermocouple ADD ON is used + #else + #define TEMP_1_PIN 14 // ANALOG NUMBERING - default connector for thermistor *T1* on rumba board is used + #endif +#endif + +#if (TEMP_SENSOR_2==0) + #define TEMP_2_PIN -1 + #define HEATER_2_PIN -1 +#else + #define HEATER_2_PIN 6 // EXTRUDER 3 + #if (TEMP_SENSOR_2==-1) + #define TEMP_2_PIN 7 // ANALOG NUMBERING - connector *K3* on RUMBA thermocouple ADD ON is used <-- this can not be used when TEMP_SENSOR_BED is defined as thermocouple + #else + #define TEMP_2_PIN 13 // ANALOG NUMBERING - default connector for thermistor *T2* on rumba board is used + #endif +#endif + +//optional for extruder 4 or chamber: #define TEMP_X_PIN 12 // ANALOG NUMBERING - default connector for thermistor *T3* on rumba board is used +//optional FAN1 can be used as 4th heater output: #define HEATER_3_PIN 8 // EXTRUDER 4 + +#if (TEMP_SENSOR_BED==0) + #define TEMP_BED_PIN -1 + #define HEATER_BED_PIN -1 +#else + #define HEATER_BED_PIN 9 // BED + #if (TEMP_SENSOR_BED==-1) + #define TEMP_BED_PIN 7 // ANALOG NUMBERING - connector *K3* on RUMBA thermocouple ADD ON is used <-- this can not be used when TEMP_SENSOR_2 is defined as thermocouple + #else + #define TEMP_BED_PIN 11 // ANALOG NUMBERING - default connector for thermistor *THB* on rumba board is used + #endif +#endif + +#define SDPOWER -1 +#define SDSS 53 +#define SDCARDDETECT 49 +#define BEEPER 44 +#define LCD_PINS_RS 19 +#define LCD_PINS_ENABLE 42 +#define LCD_PINS_D4 18 +#define LCD_PINS_D5 38 +#define LCD_PINS_D6 41 +#define LCD_PINS_D7 40 +#define BTN_EN1 11 +#define BTN_EN2 12 +#define BTN_ENC 43 + +#endif //MOTHERBOARD==80 + + +/**************************************************************************************** +* Teensylu 0.7 / Printrboard pin assignments (AT90USB1286) +* Requires the Teensyduino software with Teensy++ 2.0 selected in Arduino IDE! + http://www.pjrc.com/teensy/teensyduino.html +* See http://reprap.org/wiki/Printrboard for more info +****************************************************************************************/ +#if MOTHERBOARD == 8 || MOTHERBOARD == 81 +#define KNOWN_BOARD 1 +#define AT90USB 1286 // Disable MarlinSerial etc. + +#ifndef __AVR_AT90USB1286__ +#error Oops! Make sure you have 'Teensy++ 2.0' selected from the 'Tools -> Boards' menu. +#endif + +#define LARGE_FLASH true + +#define X_STEP_PIN 0 +#define X_DIR_PIN 1 +#define X_ENABLE_PIN 39 + +#define Y_STEP_PIN 2 +#define Y_DIR_PIN 3 +#define Y_ENABLE_PIN 38 + +#define Z_STEP_PIN 4 +#define Z_DIR_PIN 5 +#define Z_ENABLE_PIN 23 + +#define E0_STEP_PIN 6 +#define E0_DIR_PIN 7 +#define E0_ENABLE_PIN 19 + +#define HEATER_0_PIN 21 // Extruder +#define HEATER_1_PIN -1 +#define HEATER_2_PIN -1 +#define HEATER_BED_PIN 20 // Bed +#define FAN_PIN 22 // Fan +// You may need to change FAN_PIN to 16 because Marlin isn't using fastio.h +// for the fan and Teensyduino uses a different pin mapping. + +#if MOTHERBOARD == 8 // Teensylu + #define X_STOP_PIN 13 + #define Y_STOP_PIN 14 + #define Z_STOP_PIN 15 + #define TEMP_0_PIN 7 // Extruder / Analog pin numbering + #define TEMP_BED_PIN 6 // Bed / Analog pin numbering +#else // Printrboard + #define X_STOP_PIN 35 + #define Y_STOP_PIN 8 + #define Z_STOP_PIN 36 + #define TEMP_0_PIN 1 // Extruder / Analog pin numbering + #define TEMP_BED_PIN 0 // Bed / Analog pin numbering +#endif + +#define TEMP_1_PIN -1 +#define TEMP_2_PIN -1 + +#define SDPOWER -1 +#define SDSS 8 +#define LED_PIN -1 +#define PS_ON_PIN -1 +#define KILL_PIN -1 +#define ALARM_PIN -1 + +#ifndef SDSUPPORT +// these pins are defined in the SD library if building with SD support + #define SCK_PIN 9 + #define MISO_PIN 11 + #define MOSI_PIN 10 +#endif + +#endif // MOTHERBOARD == 8 (Teensylu) or 81 (Printrboard) + +/**************************************************************************************** + * Brainwave 1.0 pin assignments (AT90USB646) + * Requires hardware bundle for Arduino: + https://github.com/unrepentantgeek/brainwave-arduino + ****************************************************************************************/ +#if MOTHERBOARD == 82 +#define KNOWN_BOARD 1 +#define AT90USB 646 // Disable MarlinSerial etc. + +#ifndef __AVR_AT90USB646__ +#error Oops! Make sure you have 'Brainwave' selected from the 'Tools -> Boards' menu. +#endif + +#define X_STEP_PIN 27 +#define X_DIR_PIN 29 +#define X_ENABLE_PIN 28 +#define X_STOP_PIN 7 +#define X_ATT_PIN 26 + +#define Y_STEP_PIN 31 +#define Y_DIR_PIN 33 +#define Y_ENABLE_PIN 32 +#define Y_STOP_PIN 6 +#define Y_ATT_PIN 30 + +#define Z_STEP_PIN 17 +#define Z_DIR_PIN 19 +#define Z_ENABLE_PIN 18 +#define Z_STOP_PIN 5 +#define Z_ATT_PIN 16 + +#define E0_STEP_PIN 21 +#define E0_DIR_PIN 23 +#define E0_ENABLE_PIN 22 +#define E0_ATT_PIN 20 + +#define HEATER_0_PIN 4 // Extruder +#define HEATER_1_PIN -1 +#define HEATER_2_PIN -1 +#define HEATER_BED_PIN 38 // Bed +#define FAN_PIN 3 // Fan + +#define TEMP_0_PIN 7 // Extruder / Analog pin numbering +#define TEMP_1_PIN -1 +#define TEMP_2_PIN -1 +#define TEMP_BED_PIN 6 // Bed / Analog pin numbering + +#define SDPOWER -1 +#define SDSS -1 +#define LED_PIN 39 +#define PS_ON_PIN -1 +#define KILL_PIN -1 +#define ALARM_PIN -1 + +#ifndef SDSUPPORT +// these pins are defined in the SD library if building with SD support + #define SCK_PIN 9 + #define MISO_PIN 11 + #define MOSI_PIN 10 +#endif + +#endif // MOTHERBOARD == 82 (Brainwave) + +/**************************************************************************************** +* Gen3+ pin assignment +* +****************************************************************************************/ +#if MOTHERBOARD == 9 +#define MOTHERBOARD 6 /*TODO: Figure out, Why is this done?*/ +#define KNOWN_BOARD 1 +#ifndef __AVR_ATmega644P__ +#ifndef __AVR_ATmega1284P__ +#error Oops! Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu. +#endif +#endif + +#define X_STEP_PIN 15 +#define X_DIR_PIN 18 +#define X_STOP_PIN 20 + +#define Y_STEP_PIN 23 +#define Y_DIR_PIN 22 +#define Y_STOP_PIN 25 + +#define Z_STEP_PIN 27 +#define Z_DIR_PIN 28 +#define Z_STOP_PIN 30 + +#define E_STEP_PIN 17 +#define E_DIR_PIN 21 + +#define LED_PIN -1 + +#define FAN_PIN -1 + +#define PS_ON_PIN 14 +#define KILL_PIN -1 + +#define HEATER_0_PIN 12 // (extruder) + +#define HEATER_1_PIN 16 // (bed) +#define X_ENABLE_PIN 19 +#define Y_ENABLE_PIN 24 +#define Z_ENABLE_PIN 29 +#define E_ENABLE_PIN 13 + +#define TEMP_0_PIN 0 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 33 extruder) +#define TEMP_1_PIN 5 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! (pin 34 bed) +#define TEMP_2_PIN -1 +#define SDPOWER -1 +#define SDSS 4 +#define HEATER_2_PIN -1 + +#endif + + + +/**************************************************************************************** +* Open Motion controller with enable based extruders +* +* ATMega644 +* +* +---\/---+ +* (D 0) PB0 1| |40 PA0 (AI 0 / D31) +* (D 1) PB1 2| |39 PA1 (AI 1 / D30) +* INT2 (D 2) PB2 3| |38 PA2 (AI 2 / D29) +* PWM (D 3) PB3 4| |37 PA3 (AI 3 / D28) +* PWM (D 4) PB4 5| |36 PA4 (AI 4 / D27) +* MOSI (D 5) PB5 6| |35 PA5 (AI 5 / D26) +* MISO (D 6) PB6 7| |34 PA6 (AI 6 / D25) +* SCK (D 7) PB7 8| |33 PA7 (AI 7 / D24) +* RST 9| |32 AREF +* VCC 10| |31 GND +* GND 11| |30 AVCC +* XTAL2 12| |29 PC7 (D 23) +* XTAL1 13| |28 PC6 (D 22) +* RX0 (D 8) PD0 14| |27 PC5 (D 21) TDI +* TX0 (D 9) PD1 15| |26 PC4 (D 20) TDO +* INT0 RX1 (D 10) PD2 16| |25 PC3 (D 19) TMS +* INT1 TX1 (D 11) PD3 17| |24 PC2 (D 18) TCK +* PWM (D 12) PD4 18| |23 PC1 (D 17) SDA +* PWM (D 13) PD5 19| |22 PC0 (D 16) SCL +* PWM (D 14) PD6 20| |21 PD7 (D 15) PWM +* +--------+ +* +****************************************************************************************/ +#if MOTHERBOARD == 90 //Alpha OMCA board +#define KNOWN_BOARD 1 + +#ifndef __AVR_ATmega644__ +#error Oops! Make sure you have 'SanguinoA' selected from the 'Tools -> Boards' menu. +#endif + +#define X_STEP_PIN 21 +#define X_DIR_PIN 20 +#define X_ENABLE_PIN 24 +#define X_STOP_PIN 0 + +#define Y_STEP_PIN 23 +#define Y_DIR_PIN 22 +#define Y_ENABLE_PIN 24 +#define Y_STOP_PIN 1 + +#define Z_STEP_PIN 26 +#define Z_DIR_PIN 25 +#define Z_ENABLE_PIN 24 +#define Z_STOP_PIN 2 + +#define E0_STEP_PIN 28 +#define E0_DIR_PIN 27 +#define E0_ENABLE_PIN 24 + +#define E1_STEP_PIN -1 // 19 +#define E1_DIR_PIN -1 // 18 +#define E1_ENABLE_PIN 24 + +#define E2_STEP_PIN -1 // 17 +#define E2_DIR_PIN -1 // 16 +#define E2_ENABLE_PIN 24 + +#define SDPOWER -1 +#define SDSS 11 +#define SDCARDDETECT -1 // 10 optional also used as mode pin +#define LED_PIN -1 +#define FAN_PIN 3 +#define PS_ON_PIN -1 +#define KILL_PIN -1 + +#define HEATER_0_PIN 4 +#define HEATER_1_PIN -1 // 12 +#define HEATER_2_PIN -1 // 13 +#define TEMP_0_PIN 0 //D27 // MUST USE ANALOG INPUT NUMBERING NOT DIGITAL OUTPUT NUMBERING!!!!!!!!! +#define TEMP_1_PIN -1 // 1 +#define TEMP_2_PIN -1 // 2 +#define HEATER_BED_PIN -1 // 14/15 +#define TEMP_BED_PIN -1 // 1,2 or I2C +/* Unused (1) (2) (3) 4 5 6 7 8 9 10 11 12 13 (14) (15) (16) 17 (18) (19) (20) (21) (22) (23) 24 (25) (26) (27) 28 (29) (30) (31) */ + +#endif + +#if MOTHERBOARD == 91 // Final OMCA board -- REF http://sanguino.cc/hardware +#define KNOWN_BOARD 1 + +#if !defined(__AVR_ATmega644P__) && !defined(__AVR_ATmega644__) +#error Oops! Make sure you have 'Sanguino' selected from the 'Tools -> Boards' menu. (Final OMCA board) +#endif + +#define X_STEP_PIN 26 +#define X_DIR_PIN 25 +#define X_ENABLE_PIN 10 +#define X_STOP_PIN 0 + +#define Y_STEP_PIN 28 +#define Y_DIR_PIN 27 +#define Y_ENABLE_PIN 10 +#define Y_STOP_PIN 1 + +#define Z_STEP_PIN 23 +#define Z_DIR_PIN 22 +#define Z_ENABLE_PIN 10 +#define Z_STOP_PIN 2 + +#define E0_STEP_PIN 24 +#define E0_DIR_PIN 21 +#define E0_ENABLE_PIN 10 + +/* future proofing */ +#define __FS 20 +#define __FD 19 +#define __GS 18 +#define __GD 13 + +#define UNUSED_PWM 14 /* PWM on LEFT connector */ + +#define E1_STEP_PIN -1 // 21 +#define E1_DIR_PIN -1 // 20 +#define E1_ENABLE_PIN -1 // 19 + +#define E2_STEP_PIN -1 // 21 +#define E2_DIR_PIN -1 // 20 +#define E2_ENABLE_PIN -1 // 18 + +#define SDPOWER -1 +#define SDSS 11 +#define SDCARDDETECT -1 // 10 optional also used as mode pin +#define LED_PIN -1 +#define FAN_PIN 14 /* PWM on MIDDLE connector */ +#define PS_ON_PIN -1 +#define KILL_PIN -1 + +#define HEATER_0_PIN 3 /*DONE PWM on RIGHT connector */ +#define HEATER_1_PIN -1 +#define HEATER_2_PIN -1 +#define HEATER_1_PIN -1 +#define HEATER_2_PIN -1 +#define TEMP_0_PIN 0 // ANALOG INPUT NUMBERING +#define TEMP_1_PIN 1 // ANALOG +#define TEMP_2_PIN -1 // 2 +#define HEATER_BED_PIN 4 +#define TEMP_BED_PIN 2 // 1,2 or I2C + +#define I2C_SCL 16 +#define I2C_SDA 17 + +#endif + +#if MOTHERBOARD == 301 +#define KNOWN_BOARD +/***************************************************************** +* Rambo Pin Assignments +******************************************************************/ + +#ifndef __AVR_ATmega2560__ +#error Oops! Make sure you have 'Arduino Mega 2560' selected from the 'Tools -> Boards' menu. +#endif + +#define LARGE_FLASH true + +#define X_STEP_PIN 37 +#define X_DIR_PIN 48 +#define X_MIN_PIN 12 +#define X_MAX_PIN 24 +#define X_ENABLE_PIN 29 +#define X_MS1_PIN 40 +#define X_MS2_PIN 41 + +#define Y_STEP_PIN 36 +#define Y_DIR_PIN 49 +#define Y_MIN_PIN 11 +#define Y_MAX_PIN 23 +#define Y_ENABLE_PIN 28 +#define Y_MS1_PIN 69 +#define Y_MS2_PIN 39 + +#define Z_STEP_PIN 35 +#define Z_DIR_PIN 47 +#define Z_MIN_PIN 10 +#define Z_MAX_PIN 30 +#define Z_ENABLE_PIN 27 +#define Z_MS1_PIN 68 +#define Z_MS2_PIN 67 + +#define HEATER_BED_PIN 3 +#define TEMP_BED_PIN 2 + +#define HEATER_0_PIN 9 +#define TEMP_0_PIN 0 + +#define HEATER_1_PIN 7 +#define TEMP_1_PIN 1 + +#ifdef BARICUDA +#define HEATER_2_PIN 6 +#else +#define HEATER_2_PIN -1 +#endif +#define TEMP_2_PIN -1 + +#define E0_STEP_PIN 34 +#define E0_DIR_PIN 43 +#define E0_ENABLE_PIN 26 +#define E0_MS1_PIN 65 +#define E0_MS2_PIN 66 + +#define E1_STEP_PIN 33 +#define E1_DIR_PIN 42 +#define E1_ENABLE_PIN 25 +#define E1_MS1_PIN 63 +#define E1_MS2_PIN 64 + +#define DIGIPOTSS_PIN 38 +#define DIGIPOT_CHANNELS {4,5,3,0,1} // X Y Z E0 E1 digipot channels to stepper driver mapping + +#define SDPOWER -1 +#define SDSS 53 +#define LED_PIN 13 +#define FAN_PIN 8 +#define PS_ON_PIN 4 +#define KILL_PIN -1 +#define SUICIDE_PIN -1 //PIN that has to be turned on right after start, to keep power flowing. + +#endif + +/**************************************************************************************** +* MegaTronics +* +****************************************************************************************/ +#if MOTHERBOARD == 70 +#define KNOWN_BOARD 1 + + + #ifndef __AVR_ATmega2560__ + #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. + #endif + + +#define LARGE_FLASH true + +#define X_STEP_PIN 26 +#define X_DIR_PIN 28 +#define X_ENABLE_PIN 24 +#define X_MIN_PIN 41 +#define X_MAX_PIN 37 + +#define Y_STEP_PIN 60 // A6 +#define Y_DIR_PIN 61 // A7 +#define Y_ENABLE_PIN 22 +#define Y_MIN_PIN 14 +#define Y_MAX_PIN 15 + +#define Z_STEP_PIN 54 // A0 +#define Z_DIR_PIN 55 // A1 +#define Z_ENABLE_PIN 56 // A2 +#define Z_MIN_PIN 18 +#define Z_MAX_PIN 19 + +#define E0_STEP_PIN 31 +#define E0_DIR_PIN 32 +#define E0_ENABLE_PIN 38 + +#define E1_STEP_PIN 34 +#define E1_DIR_PIN 36 +#define E1_ENABLE_PIN 30 + +#define SDPOWER -1 +#define SDSS 53 +#define LED_PIN 13 + + +#define FAN_PIN 7 // IO pin. Buffer needed +#define PS_ON_PIN 12 +#define KILL_PIN -1 + +#define HEATER_0_PIN 9 // EXTRUDER 1 +#define HEATER_1_PIN 8 // EXTRUDER 2 (FAN On Sprinter) +#define HEATER_2_PIN -1 + +#if TEMP_SENSOR_0 == -1 +#define TEMP_0_PIN 8 // ANALOG NUMBERING +#else +#define TEMP_0_PIN 13 // ANALOG NUMBERING + +#endif + +#define TEMP_1_PIN 15 // ANALOG NUMBERING +#define TEMP_2_PIN -1 // ANALOG NUMBERING +#define HEATER_BED_PIN 10 // BED +#define TEMP_BED_PIN 14 // ANALOG NUMBERING + +#define BEEPER 33 // Beeper on AUX-4 + + +#ifdef ULTRA_LCD + + #ifdef NEWPANEL + //arduino pin which triggers an piezzo beeper + + #define LCD_PINS_RS 16 + #define LCD_PINS_ENABLE 17 + #define LCD_PINS_D4 23 + #define LCD_PINS_D5 25 + #define LCD_PINS_D6 27 + #define LCD_PINS_D7 29 + + //buttons are directly attached using AUX-2 + #define BTN_EN1 59 + #define BTN_EN2 64 + #define BTN_ENC 43 //the click + + #define BLEN_C 2 + #define BLEN_B 1 + #define BLEN_A 0 + + #define SDCARDDETECT -1 // Ramps does not use this port + + //encoder rotation values + #define encrot0 0 + #define encrot1 2 + #define encrot2 3 + #define encrot3 1 +#endif +#endif //ULTRA_LCD + +#endif + +/**************************************************************************************** +* MegaTronics v2.0 +* +****************************************************************************************/ +#if MOTHERBOARD == 701 + #define KNOWN_BOARD 1 + + + #ifndef __AVR_ATmega2560__ + #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. + #endif + + #define LARGE_FLASH true + + #define X_STEP_PIN 26 + #define X_DIR_PIN 27 + #define X_ENABLE_PIN 25 + #define X_MIN_PIN 37 + #define X_MAX_PIN 40 //2 //Max endstops default to disabled "-1", set to commented value to enable. + + #define Y_STEP_PIN 4 // A6 + #define Y_DIR_PIN 54 // A0 + #define Y_ENABLE_PIN 5 + #define Y_MIN_PIN 41 + #define Y_MAX_PIN 38 //15 + + #define Z_STEP_PIN 56 // A2 + #define Z_DIR_PIN 60 // A6 + #define Z_ENABLE_PIN 55 // A1 + #define Z_MIN_PIN 18 + #define Z_MAX_PIN 19 + + #define E0_STEP_PIN 35 + #define E0_DIR_PIN 36 + #define E0_ENABLE_PIN 34 + + #define E1_STEP_PIN 29 + #define E1_DIR_PIN 39 + #define E1_ENABLE_PIN 28 + + #define E2_STEP_PIN 23 + #define E2_DIR_PIN 24 + #define E2_ENABLE_PIN 22 + + #define SDPOWER -1 + #define SDSS 53 + #define LED_PIN 13 + + #define FAN_PIN 7 + #define FAN2_PIN 6 + #define PS_ON_PIN 12 + #define KILL_PIN -1 + + #define HEATER_0_PIN 9 // EXTRUDER 1 + #define HEATER_1_PIN 8 // EXTRUDER 2 + #define HEATER_2_PIN -1 + + #if TEMP_SENSOR_0 == -1 + #define TEMP_0_PIN 4 // ANALOG NUMBERING + #else + #define TEMP_0_PIN 13 // ANALOG NUMBERING + #endif + + + #if TEMP_SENSOR_1 == -1 + #define TEMP_1_PIN 8 // ANALOG NUMBERING + #else + #define TEMP_1_PIN 15 // ANALOG NUMBERING + #endif + + #define TEMP_2_PIN -1 // ANALOG NUMBERING + + #define HEATER_BED_PIN 10 // BED + + #if TEMP_SENSOR_BED == -1 + #define TEMP_BED_PIN 8 // ANALOG NUMBERING + #else + #define TEMP_BED_PIN 14 // ANALOG NUMBERING + #endif + + #define BEEPER 64 + + + #define LCD_PINS_RS 14 + #define LCD_PINS_ENABLE 15 + #define LCD_PINS_D4 30 + #define LCD_PINS_D5 31 + #define LCD_PINS_D6 32 + #define LCD_PINS_D7 33 + + + //buttons are directly attached using keypad + #define BTN_EN1 61 + #define BTN_EN2 59 + #define BTN_ENC 43 //the click + + #define BLEN_C 2 + #define BLEN_B 1 + #define BLEN_A 0 + + #define SDCARDDETECT -1 // Megatronics does not use this port + + //encoder rotation values + #define encrot0 0 + #define encrot1 2 + #define encrot2 3 + #define encrot3 1 + +#endif + + +/**************************************************************************************** +* Minitronics v1.0 +* +****************************************************************************************/ +#if MOTHERBOARD == 702 + #define KNOWN_BOARD 1 + + + #ifndef __AVR_ATmega1281__ + #error Oops! Make sure you have 'Minitronics ' selected from the 'Tools -> Boards' menu. + #endif + + #define LARGE_FLASH true + + #define X_STEP_PIN 48 + #define X_DIR_PIN 47 + #define X_ENABLE_PIN 49 + #define X_MIN_PIN 5 + #define X_MAX_PIN -1 //2 //Max endstops default to disabled "-1", set to commented value to enable. + + #define Y_STEP_PIN 39 // A6 + #define Y_DIR_PIN 40 // A0 + #define Y_ENABLE_PIN 38 + #define Y_MIN_PIN 2 + #define Y_MAX_PIN -1 //15 + + #define Z_STEP_PIN 42 // A2 + #define Z_DIR_PIN 43 // A6 + #define Z_ENABLE_PIN 41 // A1 + #define Z_MIN_PIN 6 + #define Z_MAX_PIN -1 + + #define E0_STEP_PIN 45 + #define E0_DIR_PIN 44 + #define E0_ENABLE_PIN 27 + + #define E1_STEP_PIN 36 + #define E1_DIR_PIN 35 + #define E1_ENABLE_PIN 37 + + #define E2_STEP_PIN -1 + #define E2_DIR_PIN -1 + #define E2_ENABLE_PIN -1 + + #define SDPOWER -1 + #define SDSS 16 + #define LED_PIN 46 + + #define FAN_PIN 9 + #define FAN2_PIN -1 + #define PS_ON_PIN -1 + #define KILL_PIN -1 + + #define HEATER_0_PIN 7 // EXTRUDER 1 + #define HEATER_1_PIN 8 // EXTRUDER 2 + #define HEATER_2_PIN -1 + + + #define TEMP_0_PIN 7 // ANALOG NUMBERING + #define TEMP_1_PIN 6 // ANALOG NUMBERING + #define TEMP_2_PIN -1 // ANALOG NUMBERING + + #define HEATER_BED_PIN 3 // BED + #define TEMP_BED_PIN 6 // ANALOG NUMBERING + + #define BEEPER -1 + + + #define LCD_PINS_RS -1 + #define LCD_PINS_ENABLE -1 + #define LCD_PINS_D4 -1 + #define LCD_PINS_D5 -1 + #define LCD_PINS_D6 -1 + #define LCD_PINS_D7 -1 + + + //buttons are directly attached using keypad + #define BTN_EN1 -1 + #define BTN_EN2 -1 + #define BTN_ENC -1 //the click + + #define BLEN_C 2 + #define BLEN_B 1 + #define BLEN_A 0 + + #define SDCARDDETECT -1 // Megatronics does not use this port + + //encoder rotation values + #define encrot0 0 + #define encrot1 2 + #define encrot2 3 + #define encrot3 1 + +#endif + + + +#ifndef KNOWN_BOARD +#error Unknown MOTHERBOARD value in configuration.h +#endif + +//List of pins which to ignore when asked to change by gcode, 0 and 1 are RX and TX, do not mess with those! +#define _E0_PINS E0_STEP_PIN, E0_DIR_PIN, E0_ENABLE_PIN, HEATER_0_PIN, +#if EXTRUDERS > 1 + #define _E1_PINS E1_STEP_PIN, E1_DIR_PIN, E1_ENABLE_PIN, HEATER_1_PIN, +#else + #define _E1_PINS +#endif +#if EXTRUDERS > 2 + #define _E2_PINS E2_STEP_PIN, E2_DIR_PIN, E2_ENABLE_PIN, HEATER_2_PIN, +#else + #define _E2_PINS +#endif + +#ifdef X_STOP_PIN + #if X_HOME_DIR < 0 + #define X_MIN_PIN X_STOP_PIN + #define X_MAX_PIN -1 + #else + #define X_MIN_PIN -1 + #define X_MAX_PIN X_STOP_PIN + #endif +#endif + +#ifdef Y_STOP_PIN + #if Y_HOME_DIR < 0 + #define Y_MIN_PIN Y_STOP_PIN + #define Y_MAX_PIN -1 + #else + #define Y_MIN_PIN -1 + #define Y_MAX_PIN Y_STOP_PIN + #endif +#endif + +#ifdef Z_STOP_PIN + #if Z_HOME_DIR < 0 + #define Z_MIN_PIN Z_STOP_PIN + #define Z_MAX_PIN -1 + #else + #define Z_MIN_PIN -1 + #define Z_MAX_PIN Z_STOP_PIN + #endif +#endif + +#ifdef DISABLE_MAX_ENDSTOPS +#define X_MAX_PIN -1 +#define Y_MAX_PIN -1 +#define Z_MAX_PIN -1 +#endif + +#define SENSITIVE_PINS {0, 1, X_STEP_PIN, X_DIR_PIN, X_ENABLE_PIN, X_MIN_PIN, X_MAX_PIN, Y_STEP_PIN, Y_DIR_PIN, Y_ENABLE_PIN, Y_MIN_PIN, Y_MAX_PIN, Z_STEP_PIN, Z_DIR_PIN, Z_ENABLE_PIN, Z_MIN_PIN, Z_MAX_PIN, PS_ON_PIN, \ + HEATER_BED_PIN, FAN_PIN, \ + _E0_PINS _E1_PINS _E2_PINS \ + analogInputToDigitalPin(TEMP_0_PIN), analogInputToDigitalPin(TEMP_1_PIN), analogInputToDigitalPin(TEMP_2_PIN), analogInputToDigitalPin(TEMP_BED_PIN) } +#endif