diff --git a/Marlin/Conditionals.h b/Marlin/Conditionals.h index f31ffcd403..d769b89da6 100644 --- a/Marlin/Conditionals.h +++ b/Marlin/Conditionals.h @@ -75,6 +75,14 @@ #define NEWPANEL #endif + #ifdef MINIPANEL + #define DOGLCD + #define SDSUPPORT + #define ULTIPANEL + #define NEWPANEL + #define DEFAULT_LCD_CONTRAST 17 + #endif + /** * I2C PANELS */ diff --git a/Marlin/Configuration.h b/Marlin/Configuration.h index 7d06e21793..161e2eb64f 100644 --- a/Marlin/Configuration.h +++ b/Marlin/Configuration.h @@ -694,6 +694,10 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic // REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C //#define RA_CONTROL_PANEL +// The MakerLab Mini Panel with graphic controller and SD support +// http://reprap.org/wiki/Mini_panel +// #define MINIPANEL + /** * I2C Panels */ diff --git a/Marlin/boards.h b/Marlin/boards.h index f6eae66c06..f6bbc9d673 100644 --- a/Marlin/boards.h +++ b/Marlin/boards.h @@ -49,6 +49,7 @@ #define BOARD_OMCA 91 // Final OMCA board #define BOARD_RAMBO 301 // Rambo #define BOARD_MINIRAMBO 302 // Mini-Rambo +#define BOARD_MEGACONTROLLER 310 // Mega controller #define BOARD_ELEFU_3 21 // Elefu Ra Board (v3) #define BOARD_5DPRINT 88 // 5DPrint D8 Driver Board #define BOARD_LEAPFROG 999 // Leapfrog diff --git a/Marlin/configurator/config/Configuration.h b/Marlin/configurator/config/Configuration.h index 400d226e00..2d46444175 100644 --- a/Marlin/configurator/config/Configuration.h +++ b/Marlin/configurator/config/Configuration.h @@ -694,6 +694,10 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic // REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C //#define RA_CONTROL_PANEL +// The MakerLab Mini Panel with graphic controller and SD support +// http://reprap.org/wiki/Mini_panel +// #define MINIPANEL + /** * I2C Panels */ diff --git a/Marlin/dogm_lcd_implementation.h b/Marlin/dogm_lcd_implementation.h index 1e58f03f66..3fa9c33b1f 100644 --- a/Marlin/dogm_lcd_implementation.h +++ b/Marlin/dogm_lcd_implementation.h @@ -128,6 +128,9 @@ #elif defined U8GLIB_SSD1306 // Generic support for SSD1306 OLED I2C LCDs U8GLIB_SSD1306_128X64 u8g(U8G_I2C_OPT_NONE); +#elif defined(MINIPANEL) + // The MINIPanel display + U8GLIB_MINI12864 u8g(DOGLCD_CS, DOGLCD_A0); #else // for regular DOGM128 display with HW-SPI U8GLIB_DOGM128 u8g(DOGLCD_CS, DOGLCD_A0); // HW-SPI Com: CS, A0 @@ -201,8 +204,9 @@ static void lcd_implementation_init() { pinMode(LCD_PIN_RESET, OUTPUT); digitalWrite(LCD_PIN_RESET, HIGH); #endif - - u8g.setContrast(lcd_contrast); + #ifndef MINIPANEL//setContrast not working for Mini Panel + u8g.setContrast(lcd_contrast); + #endif // FIXME: remove this workaround // Uncomment this if you have the first generation (V1.10) of STBs board // pinMode(17, OUTPUT); // Enable LCD backlight diff --git a/Marlin/example_configurations/Felix/Configuration.h b/Marlin/example_configurations/Felix/Configuration.h index 8a5f2ee580..9ddd7afc7e 100644 --- a/Marlin/example_configurations/Felix/Configuration.h +++ b/Marlin/example_configurations/Felix/Configuration.h @@ -677,6 +677,10 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic // REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C //#define RA_CONTROL_PANEL +// The MakerLab Mini Panel with graphic controller and SD support +// http://reprap.org/wiki/Mini_panel +// #define MINIPANEL + /** * I2C Panels */ diff --git a/Marlin/example_configurations/Felix/Configuration_DUAL.h b/Marlin/example_configurations/Felix/Configuration_DUAL.h index 27c376f6d8..066cac73e7 100644 --- a/Marlin/example_configurations/Felix/Configuration_DUAL.h +++ b/Marlin/example_configurations/Felix/Configuration_DUAL.h @@ -638,6 +638,10 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic // REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C //#define RA_CONTROL_PANEL +// The MakerLab Mini Panel with graphic controller and SD support +// http://reprap.org/wiki/Mini_panel +// #define MINIPANEL + /** * I2C Panels */ diff --git a/Marlin/example_configurations/Hephestos/Configuration.h b/Marlin/example_configurations/Hephestos/Configuration.h index 6b6fd731a0..764ed6201e 100644 --- a/Marlin/example_configurations/Hephestos/Configuration.h +++ b/Marlin/example_configurations/Hephestos/Configuration.h @@ -686,6 +686,10 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic // REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C //#define RA_CONTROL_PANEL +// The MakerLab Mini Panel with graphic controller and SD support +// http://reprap.org/wiki/Mini_panel +// #define MINIPANEL + /** * I2C Panels */ diff --git a/Marlin/example_configurations/K8200/Configuration.h b/Marlin/example_configurations/K8200/Configuration.h index b503844856..051a54a281 100644 --- a/Marlin/example_configurations/K8200/Configuration.h +++ b/Marlin/example_configurations/K8200/Configuration.h @@ -682,6 +682,10 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic // REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C //#define RA_CONTROL_PANEL +// The MakerLab Mini Panel with graphic controller and SD support +// http://reprap.org/wiki/Mini_panel +// #define MINIPANEL + /** * I2C Panels */ diff --git a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h index aca519997b..868270cb84 100644 --- a/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h +++ b/Marlin/example_configurations/RepRapWorld/Megatronics/Configuration.h @@ -694,6 +694,10 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic // REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C //#define RA_CONTROL_PANEL +// The MakerLab Mini Panel with graphic controller and SD support +// http://reprap.org/wiki/Mini_panel +// #define MINIPANEL + /** * I2C Panels */ diff --git a/Marlin/example_configurations/SCARA/Configuration.h b/Marlin/example_configurations/SCARA/Configuration.h index e0f79a9e4f..2f5aa56e18 100644 --- a/Marlin/example_configurations/SCARA/Configuration.h +++ b/Marlin/example_configurations/SCARA/Configuration.h @@ -702,6 +702,10 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic // REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C //#define RA_CONTROL_PANEL +// The MakerLab Mini Panel with graphic controller and SD support +// http://reprap.org/wiki/Mini_panel +// #define MINIPANEL + /** * I2C Panels */ diff --git a/Marlin/example_configurations/WITBOX/Configuration.h b/Marlin/example_configurations/WITBOX/Configuration.h index b4dfd588ca..a17de0926f 100644 --- a/Marlin/example_configurations/WITBOX/Configuration.h +++ b/Marlin/example_configurations/WITBOX/Configuration.h @@ -686,6 +686,10 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic // REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C //#define RA_CONTROL_PANEL +// The MakerLab Mini Panel with graphic controller and SD support +// http://reprap.org/wiki/Mini_panel +// #define MINIPANEL + /** * I2C Panels */ diff --git a/Marlin/example_configurations/adafruit/ST7565/Configuration.h b/Marlin/example_configurations/adafruit/ST7565/Configuration.h index 19f93e99ae..eb3f61a411 100644 --- a/Marlin/example_configurations/adafruit/ST7565/Configuration.h +++ b/Marlin/example_configurations/adafruit/ST7565/Configuration.h @@ -694,6 +694,10 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic // REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C //#define RA_CONTROL_PANEL +// The MakerLab Mini Panel with graphic controller and SD support +// http://reprap.org/wiki/Mini_panel +// #define MINIPANEL + /** * I2C Panels */ diff --git a/Marlin/example_configurations/delta/generic/Configuration.h b/Marlin/example_configurations/delta/generic/Configuration.h index c9560f15cd..651e6ce9b1 100644 --- a/Marlin/example_configurations/delta/generic/Configuration.h +++ b/Marlin/example_configurations/delta/generic/Configuration.h @@ -821,6 +821,10 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic // in ultralcd.cpp@lcd_delta_calibrate_menu() // #define DELTA_CALIBRATION_MENU +// The MakerLab Mini Panel with graphic controller and SD support +// http://reprap.org/wiki/Mini_panel +// #define MINIPANEL + /** * I2C Panels */ diff --git a/Marlin/example_configurations/makibox/Configuration.h b/Marlin/example_configurations/makibox/Configuration.h index 5e486c01ed..4dc55cb882 100644 --- a/Marlin/example_configurations/makibox/Configuration.h +++ b/Marlin/example_configurations/makibox/Configuration.h @@ -697,6 +697,10 @@ const bool Z_PROBE_ENDSTOP_INVERTING = false; // set to true to invert the logic // REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C //#define RA_CONTROL_PANEL +// The MakerLab Mini Panel with graphic controller and SD support +// http://reprap.org/wiki/Mini_panel +// #define MINIPANEL + /** * I2C Panels */ diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration.h b/Marlin/example_configurations/tvrrug/Round2/Configuration.h index 2278f79b2d..8e1ad6fd5d 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration.h @@ -688,6 +688,10 @@ const bool Z_PROBE_ENDSTOP_INVERTING = true; // set to true to invert the logic // REMEMBER TO INSTALL LiquidCrystal_I2C.h in your ARDUINO library folder: https://github.com/kiyoshigawa/LiquidCrystal_I2C //#define RA_CONTROL_PANEL +// The MakerLab Mini Panel with graphic controller and SD support +// http://reprap.org/wiki/Mini_panel +// #define MINIPANEL + /** * I2C Panels */ diff --git a/Marlin/pins.h b/Marlin/pins.h index 8673842437..2182ba5c94 100644 --- a/Marlin/pins.h +++ b/Marlin/pins.h @@ -118,6 +118,8 @@ #include "pins_MKS_BASE.h" #elif MB(RIGIDBOARD) #include "pins_RIGIDBOARD.h" +#elif MB(MEGACONTROLLER) + #include "pins_MEGACONTROLLER.h" #elif MB(99) #include "pins_99.h" #else diff --git a/Marlin/pins_MEGACONTROLLER.h b/Marlin/pins_MEGACONTROLLER.h new file mode 100644 index 0000000000..ccca4d4769 --- /dev/null +++ b/Marlin/pins_MEGACONTROLLER.h @@ -0,0 +1,112 @@ +/** + * Mega controller pin assignments + */ + +#ifndef __AVR_ATmega2560__ + #error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu. +#endif + +#if EXTRUDERS > 2 + #error Mega Controller supports up to 2 extruders. Comment this line to keep going. +#endif + +#ifdef NUM_SERVOS + #define SERVO0_PIN 30 + #if NUM_SERVOS > 1 + #define SERVO1_PIN 31 + #if NUM_SERVOS > 2 + #define SERVO2_PIN 32 + #if NUM_SERVOS > 3 + #define SERVO3_PIN 33 + #endif + #endif + #endif +#endif // NUM_SERVOS + +#define X_STEP_PIN 62//A8 +#define X_DIR_PIN 63//A9 +#define X_ENABLE_PIN 61//A7 +#define X_MIN_PIN 43 +#define X_MAX_PIN 42 //Max endstops default to disabled "-1", set to commented value to enable. + +#define Y_STEP_PIN 65 // A11 +#define Y_DIR_PIN 66 // A12 +#define Y_ENABLE_PIN 64//A10 +#define Y_MIN_PIN 38 +#define Y_MAX_PIN 41 + +#define Z_STEP_PIN 68 // A14 +#define Z_DIR_PIN 69 // A15 +#define Z_ENABLE_PIN 67 // A13 +#define Z_MIN_PIN 40 +#define Z_MAX_PIN 37 + +#define E0_STEP_PIN 23 +#define E0_DIR_PIN 24 +#define E0_ENABLE_PIN 22 + +#define E1_STEP_PIN 26 +#define E1_DIR_PIN 27 +#define E1_ENABLE_PIN 25 + +#define SDPOWER -1 +#define SDSS 53 +#define LED_PIN 13 + +#define FAN_PIN 39 +#define FAN1_PIN 35 +#define FAN2_PIN 36 +#define FAN_SOFT_PWM +#define CONTROLLERFAN_PIN 36 +#define PS_ON_PIN -1 +#define KILL_PIN -1 + +#define HEATER_0_PIN 29 // EXTRUDER 1 +#define HEATER_1_PIN 34 // EXTRUDER 2 +#define HEATER_2_PIN -1 + +#if TEMP_SENSOR_0 == -1 + #define TEMP_0_PIN 4 // ANALOG NUMBERING +#else + #define TEMP_0_PIN 0 // ANALOG NUMBERING +#endif + + +#if TEMP_SENSOR_1 == -1 + #define TEMP_1_PIN 5 // ANALOG NUMBERING +#else + #define TEMP_1_PIN 2 // ANALOG NUMBERING +#endif + +#define TEMP_2_PIN 3 // ANALOG NUMBERING + +#define HEATER_BED_PIN 28 // BED + +#if TEMP_SENSOR_BED == -1 + #define TEMP_BED_PIN 6 // ANALOG NUMBERING +#else + #define TEMP_BED_PIN 1 // ANALOG NUMBERING +#endif + +#ifdef MINIPANEL + #define BEEPER 46 + // Pins for DOGM SPI LCD Support + #define DOGLCD_A0 47 + #define DOGLCD_CS 45 + #define LCD_PIN_BL 44 // backlight LED on PA3 + + #define KILL_PIN 12 + // GLCD features + //#define LCD_CONTRAST 190 + // Uncomment screen orientation + // #define LCD_SCREEN_ROT_90 + // #define LCD_SCREEN_ROT_180 + // #define LCD_SCREEN_ROT_270 + //The encoder and click button + #define BTN_EN1 48 + #define BTN_EN2 11 + #define BTN_ENC 10 //the click switch + //not connected to a pin + #define SDCARDDETECT 49 +#endif //Minipanel + diff --git a/Marlin/pins_RAMPS_13.h b/Marlin/pins_RAMPS_13.h index e56ebdeada..93dd66d957 100644 --- a/Marlin/pins_RAMPS_13.h +++ b/Marlin/pins_RAMPS_13.h @@ -191,6 +191,27 @@ #define DOGLCD_CS 29 #define DOGLCD_A0 27 #define LCD_PIN_BL 33 + #elif defined(MINIPANEL) + #define BEEPER 42 + // Pins for DOGM SPI LCD Support + #define DOGLCD_A0 44 + #define DOGLCD_CS 66 + #define LCD_PIN_BL 65 // backlight LED on A11/D65 + #define SDSS 53 + + #define KILL_PIN 64 + // GLCD features + //#define LCD_CONTRAST 190 + // Uncomment screen orientation + // #define LCD_SCREEN_ROT_90 + // #define LCD_SCREEN_ROT_180 + // #define LCD_SCREEN_ROT_270 + //The encoder and click button + #define BTN_EN1 40 + #define BTN_EN2 63 + #define BTN_ENC 59 //the click switch + //not connected to a pin + #define SDCARDDETECT 49 #else // arduino pin which triggers an piezzo beeper #define BEEPER 33 // Beeper on AUX-4