diff --git a/Marlin/src/inc/Conditionals_LCD.h b/Marlin/src/inc/Conditionals_LCD.h index f43ea40d5f..17cd6cfbc1 100644 --- a/Marlin/src/inc/Conditionals_LCD.h +++ b/Marlin/src/inc/Conditionals_LCD.h @@ -29,22 +29,18 @@ #if ENABLED(CARTESIO_UI) #define DOGLCD - #define ULTIPANEL + #define IS_ULTIPANEL #define DEFAULT_LCD_CONTRAST 90 #define LCD_CONTRAST_MIN 60 #define LCD_CONTRAST_MAX 140 -#elif ENABLED(MAKRPANEL) - - #define U8GLIB_ST7565_64128N - #elif ENABLED(ZONESTAR_LCD) #define ADC_KEYPAD - #define REPRAPWORLD_KEYPAD + #define IS_RRW_KEYPAD #define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 #define ADC_KEY_NUM 8 - #define ULTIPANEL + #define IS_ULTIPANEL // This helps to implement ADC_KEYPAD menus #define REVERSE_MENU_DIRECTION @@ -53,22 +49,18 @@ #define ENCODER_FEEDRATE_DEADZONE 2 #elif ENABLED(RADDS_DISPLAY) - #define ULTIPANEL + #define IS_ULTIPANEL #define ENCODER_PULSES_PER_STEP 2 -#elif ENABLED(ANET_FULL_GRAPHICS_LCD) +#elif EITHER(ANET_FULL_GRAPHICS_LCD, BQ_LCD_SMART_CONTROLLER) - #define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER - -#elif ENABLED(BQ_LCD_SMART_CONTROLLER) - - #define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER + #define IS_RRD_FG_SC #elif ANY(miniVIKI, VIKI2, ELB_FULL_GRAPHIC_CONTROLLER, AZSMZ_12864) - #define ULTRA_LCD + #define IS_ULTRA_LCD #define DOGLCD - #define ULTIMAKERCONTROLLER + #define IS_ULTIPANEL #if ENABLED(miniVIKI) #define LCD_CONTRAST_MIN 75 @@ -95,24 +87,24 @@ #elif ENABLED(OLED_PANEL_TINYBOY2) - #define U8GLIB_SSD1306 - #define ULTIPANEL + #define IS_U8GLIB_SSD1306 + #define IS_ULTIPANEL #elif ENABLED(RA_CONTROL_PANEL) #define LCD_I2C_TYPE_PCA8574 #define LCD_I2C_ADDRESS 0x27 // I2C Address of the port expander - #define ULTIPANEL + #define IS_ULTIPANEL #elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD) #define DOGLCD #define U8GLIB_ST7920 - #define ULTIPANEL + #define IS_ULTIPANEL #elif ENABLED(CR10_STOCKDISPLAY) - #define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER + #define IS_RRD_FG_SC #ifndef ST7920_DELAY_1 #define ST7920_DELAY_1 DELAY_NS(125) #endif @@ -125,13 +117,13 @@ #elif ENABLED(MKS_12864OLED) - #define REPRAP_DISCOUNT_SMART_CONTROLLER + #define IS_RRD_SC #define U8GLIB_SH1106 #elif ENABLED(MKS_12864OLED_SSD1306) - #define REPRAP_DISCOUNT_SMART_CONTROLLER - #define U8GLIB_SSD1306 + #define IS_RRD_SC + #define IS_U8GLIB_SSD1306 #elif ENABLED(MKS_MINI_12864) @@ -143,12 +135,12 @@ #define FYSETC_MINI_12864 #define DOGLCD - #define ULTIPANEL + #define IS_ULTIPANEL #define LCD_CONTRAST_MIN 0 #define LCD_CONTRAST_MAX 255 #define DEFAULT_LCD_CONTRAST 220 #define LED_COLORS_REDUCE_GREEN - #if (HAS_POWER_SWITCH && EITHER(FYSETC_MINI_12864_2_0, FYSETC_MINI_12864_2_1)) + #if HAS_POWER_SWITCH && EITHER(FYSETC_MINI_12864_2_0, FYSETC_MINI_12864_2_1) #define LED_BACKLIGHT_TIMEOUT 10000 #endif @@ -167,60 +159,62 @@ #define NEOPIXEL_STARTUP_TEST #endif +#elif ENABLED(ULTI_CONTROLLER) + + #define U8GLIB_SSD1309 + #define LCD_RESET_PIN LCD_PINS_D6 // This controller need a reset pin + #define LCD_CONTRAST_MIN 0 + #define LCD_CONTRAST_MAX 254 + #define DEFAULT_LCD_CONTRAST 127 + #define ENCODER_PULSES_PER_STEP 2 + #define ENCODER_STEPS_PER_MENU_ITEM 2 + +#elif ENABLED(MAKEBOARD_MINI_2_LINE_DISPLAY_1602) + + #define IS_RRD_SC + #define LCD_WIDTH 16 + #define LCD_HEIGHT 2 + +#endif + +#if ENABLED(IS_RRD_FG_SC) + #define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER #endif #if EITHER(MAKRPANEL, MINIPANEL) + #define IS_ULTIPANEL #define DOGLCD - #define ULTIPANEL + #if ENABLED(MAKRPANEL) + #define U8GLIB_ST7565_64128N + #endif #ifndef DEFAULT_LCD_CONTRAST #define DEFAULT_LCD_CONTRAST 17 #endif #endif -#if ENABLED(ULTI_CONTROLLER) - #define U8GLIB_SSD1309 - #define LCD_RESET_PIN LCD_PINS_D6 // This controller need a reset pin - #define LCD_CONTRAST_MIN 0 - #define LCD_CONTRAST_MAX 254 - #define DEFAULT_LCD_CONTRAST 127 - #define ENCODER_PULSES_PER_STEP 2 - #define ENCODER_STEPS_PER_MENU_ITEM 2 +#if ENABLED(IS_U8GLIB_SSD1306) + #define U8GLIB_SSD1306 #endif // 128x64 I2C OLED LCDs - SSD1306/SSD1309/SH1106 #define HAS_SSD1306_OLED_I2C ANY(U8GLIB_SSD1306, U8GLIB_SSD1309, U8GLIB_SH1106) #if HAS_SSD1306_OLED_I2C - #define ULTRA_LCD + #define IS_ULTRA_LCD #define DOGLCD #endif -#if EITHER(PANEL_ONE, U8GLIB_SH1106) - - #define ULTIMAKERCONTROLLER - -#elif ENABLED(MAKEBOARD_MINI_2_LINE_DISPLAY_1602) - - #define REPRAP_DISCOUNT_SMART_CONTROLLER - #define LCD_WIDTH 16 - #define LCD_HEIGHT 2 - -#endif - #if ANY(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER, LCD_FOR_MELZI, SILVER_GATE_GLCD_CONTROLLER) #define DOGLCD #define U8GLIB_ST7920 - #define REPRAP_DISCOUNT_SMART_CONTROLLER + #define IS_RRD_SC #endif -#if ANY(ULTIMAKERCONTROLLER, REPRAP_DISCOUNT_SMART_CONTROLLER, G3D_PANEL, RIGIDBOT_PANEL, ULTI_CONTROLLER) - #define ULTIPANEL +#if ENABLED(IS_RRD_SC) + #define REPRAP_DISCOUNT_SMART_CONTROLLER #endif -#if ENABLED(REPRAPWORLD_KEYPAD) - #define NEWPANEL - #if ENABLED(ULTIPANEL) && !defined(REPRAPWORLD_KEYPAD_MOVE_STEP) - #define REPRAPWORLD_KEYPAD_MOVE_STEP 1.0 - #endif +#if ANY(ULTIMAKERCONTROLLER, REPRAP_DISCOUNT_SMART_CONTROLLER, G3D_PANEL, RIGIDBOT_PANEL, ULTI_CONTROLLER, PANEL_ONE, U8GLIB_SH1106) + #define IS_ULTIPANEL #endif /** @@ -230,7 +224,7 @@ // Einstart OLED has Cardinal nav via pins defined in pins_EINSTART-S.h #if ENABLED(U8GLIB_SH1106_EINSTART) #define DOGLCD - #define ULTIPANEL + #define IS_ULTIPANEL #endif /** @@ -238,7 +232,7 @@ */ #if ENABLED(MKS_ROBIN_TFT) #define DOGLCD - #define ULTIPANEL + #define IS_ULTIPANEL #endif /** @@ -262,7 +256,7 @@ #define LCD_I2C_TYPE_MCP23017 #define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander #define LCD_USE_I2C_BUZZER // Enable buzzer on LCD (optional) - #define ULTIPANEL + #define IS_ULTIPANEL #elif ENABLED(LCD_I2C_VIKI) @@ -277,7 +271,7 @@ #define LCD_I2C_TYPE_MCP23017 #define LCD_I2C_ADDRESS 0x20 // I2C Address of the port expander #define LCD_USE_I2C_BUZZER // Enable buzzer on LCD (requires LiquidTWI2 v1.2.3 or later) - #define ULTIPANEL + #define IS_ULTIPANEL #define ENCODER_FEEDRATE_DEADZONE 4 @@ -289,7 +283,7 @@ #define STD_ENCODER_PULSES_PER_STEP 2 #define STD_ENCODER_STEPS_PER_MENU_ITEM 1 -#elif ANY(miniVIKI, VIKI2, ELB_FULL_GRAPHIC_CONTROLLER, AZSMZ_12864, OLED_PANEL_TINYBOY2, BQ_LCD_SMART_CONTROLLER, LCD_I2C_PANELOLU2, REPRAP_DISCOUNT_SMART_CONTROLLER) +#elif ANY(REPRAP_DISCOUNT_SMART_CONTROLLER, miniVIKI, VIKI2, ELB_FULL_GRAPHIC_CONTROLLER, AZSMZ_12864, OLED_PANEL_TINYBOY2, BQ_LCD_SMART_CONTROLLER, LCD_I2C_PANELOLU2) #define STD_ENCODER_PULSES_PER_STEP 4 #define STD_ENCODER_STEPS_PER_MENU_ITEM 1 @@ -318,21 +312,41 @@ // https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/schematics#!shiftregister-connection #if ENABLED(FF_INTERFACEBOARD) #define SR_LCD_3W_NL // Non latching 3 wire shift register - #define ULTIPANEL + #define IS_ULTIPANEL +#elif ENABLED(SAV_3DLCD) + #define SR_LCD_2W_NL // Non latching 2 wire shift register + #define IS_ULTIPANEL #endif -#if ENABLED(SAV_3DLCD) - #define SR_LCD_2W_NL // Non latching 2 wire shift register +#if ENABLED(IS_ULTIPANEL) #define ULTIPANEL #endif - #if ENABLED(ULTIPANEL) - #define NEWPANEL // Disable if there's actually no click-encoder panel + #define IS_ULTRA_LCD + #ifndef NEWPANEL + #define NEWPANEL + #endif +#endif + +#if ENABLED(IS_ULTRA_LCD) #define ULTRA_LCD #endif +#if ENABLED(IS_RRW_KEYPAD) + #define REPRAPWORLD_KEYPAD +#endif + +// Keypad needs a move step +#if ENABLED(REPRAPWORLD_KEYPAD) + #define NEWPANEL + #ifndef REPRAPWORLD_KEYPAD_MOVE_STEP + #define REPRAPWORLD_KEYPAD_MOVE_STEP 1.0 + #endif +#endif + // Extensible UI serial touch screens. (See src/lcd/extensible_ui) -#if EITHER(DGUS_LCD, MALYAN_LCD) +#if EITHER(MALYAN_LCD, DGUS_LCD) + #define IS_EXTUI #define EXTENSIBLE_UI #endif @@ -342,8 +356,7 @@ #define HAS_GRAPHICAL_LCD ENABLED(DOGLCD) #define HAS_CHARACTER_LCD (HAS_SPI_LCD && !HAS_GRAPHICAL_LCD) #define HAS_LCD_MENU (ENABLED(ULTIPANEL) && DISABLED(NO_LCD_MENUS)) - -#define HAS_ADC_BUTTONS ENABLED(ADC_KEYPAD) +#define HAS_ADC_BUTTONS ENABLED(ADC_KEYPAD) /** * Default LCD contrast for Graphical LCD displays diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index 9b970ff0ed..b0f5df911e 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -1832,76 +1832,68 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS /** * Make sure only one display is enabled - * - * Note: BQ_LCD_SMART_CONTROLLER => REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER - * REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER => REPRAP_DISCOUNT_SMART_CONTROLLER - * SAV_3DGLCD => U8GLIB_SH1106 => ULTIMAKERCONTROLLER - * MKS_12864OLED => U8GLIB_SH1106 => ULTIMAKERCONTROLLER - * MKS_12864OLED_SSD1306 => U8GLIB_SSD1306 => ULTIMAKERCONTROLLER - * MKS_MINI_12864 => MINIPANEL - * miniVIKI => ULTIMAKERCONTROLLER - * VIKI2 => ULTIMAKERCONTROLLER - * ELB_FULL_GRAPHIC_CONTROLLER => ULTIMAKERCONTROLLER - * AZSMZ_12864 => ULTIMAKERCONTROLLER - * PANEL_ONE => ULTIMAKERCONTROLLER */ #if 1 < 0 \ - + ( ENABLED(ULTIMAKERCONTROLLER) \ - && DISABLED(SAV_3DGLCD) \ - && DISABLED(miniVIKI) \ - && DISABLED(VIKI2) \ - && DISABLED(ELB_FULL_GRAPHIC_CONTROLLER) \ - && DISABLED(AZSMZ_12864) \ - && DISABLED(PANEL_ONE) \ - && DISABLED(MKS_12864OLED) \ - && DISABLED(MKS_12864OLED_SSD1306) ) \ - + ( ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER) \ - && DISABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) \ - && DISABLED(LCD_FOR_MELZI) \ - && DISABLED(MAKEBOARD_MINI_2_LINE_DISPLAY_1602) \ - && DISABLED(MKS_12864OLED) \ - && DISABLED(MKS_12864OLED_SSD1306) ) \ - + (ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) && DISABLED(BQ_LCD_SMART_CONTROLLER)) \ - + ENABLED(LCD_FOR_MELZI) \ - + ENABLED(MKS_12864OLED) \ - + ENABLED(MKS_12864OLED_SSD1306) \ - + ENABLED(MAKEBOARD_MINI_2_LINE_DISPLAY_1602) \ - + ENABLED(CARTESIO_UI) \ + + (ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER) && DISABLED(IS_RRD_SC)) \ + + (ENABLED(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) && DISABLED(IS_RRD_FG_SC)) \ + + (ENABLED(ULTRA_LCD) && DISABLED(IS_ULTRA_LCD)) \ + + (ENABLED(U8GLIB_SSD1306) && DISABLED(IS_U8GLIB_SSD1306)) \ + + (ENABLED(MINIPANEL) && DISABLED(MKS_MINI_12864)) \ + + (ENABLED(REPRAPWORLD_KEYPAD) && DISABLED(IS_RRW_KEYPAD)) \ + + (ENABLED(EXTENSIBLE_UI) && DISABLED(IS_EXTUI)) + + (ENABLED(ULTIPANEL) && DISABLED(IS_ULTIPANEL)) \ + + ENABLED(RADDS_DISPLAY) \ + + ENABLED(ULTIMAKERCONTROLLER) \ + ENABLED(PANEL_ONE) \ - + ENABLED(MAKRPANEL) \ - + ENABLED(REPRAPWORLD_GRAPHICAL_LCD) \ - + ENABLED(VIKI2) \ - + ENABLED(miniVIKI) \ - + ENABLED(ELB_FULL_GRAPHIC_CONTROLLER) \ - + ENABLED(AZSMZ_12864) \ + ENABLED(G3D_PANEL) \ - + (ENABLED(MINIPANEL) && DISABLED(MKS_MINI_12864)) \ - + ENABLED(MKS_MINI_12864) \ - + ENABLED(FYSETC_MINI_12864_X_X) \ - + ENABLED(FYSETC_MINI_12864_1_2) \ - + ENABLED(FYSETC_MINI_12864_2_0) \ - + ENABLED(FYSETC_MINI_12864_2_1) \ - + (ENABLED(REPRAPWORLD_KEYPAD) && NONE(CARTESIO_UI, ZONESTAR_LCD)) \ + ENABLED(RIGIDBOT_PANEL) \ + + ENABLED(MAKEBOARD_MINI_2_LINE_DISPLAY_1602) \ + + ENABLED(ZONESTAR_LCD) \ + ENABLED(RA_CONTROL_PANEL) \ + ENABLED(LCD_SAINSMART_I2C_1602) \ + ENABLED(LCD_SAINSMART_I2C_2004) \ + ENABLED(LCM1602) \ + ENABLED(LCD_I2C_PANELOLU2) \ + ENABLED(LCD_I2C_VIKI) \ - + (ENABLED(U8GLIB_SSD1306) && NONE(OLED_PANEL_TINYBOY2, MKS_12864OLED_SSD1306)) \ + ENABLED(SAV_3DLCD) \ + + ENABLED(FF_INTERFACEBOARD) \ + + ENABLED(REPRAPWORLD_GRAPHICAL_LCD) \ + + ENABLED(VIKI2) \ + + ENABLED(miniVIKI) \ + + ENABLED(MAKRPANEL) \ + + ENABLED(ELB_FULL_GRAPHIC_CONTROLLER) \ + ENABLED(BQ_LCD_SMART_CONTROLLER) \ + + ENABLED(CARTESIO_UI) \ + + ENABLED(LCD_FOR_MELZI) \ + + ENABLED(ULTI_CONTROLLER) \ + + ENABLED(MKS_MINI_12864) \ + + ENABLED(FYSETC_MINI_12864_X_X) \ + + ENABLED(FYSETC_MINI_12864_1_2) \ + + ENABLED(FYSETC_MINI_12864_2_0) \ + + ENABLED(FYSETC_MINI_12864_2_1) \ + + ENABLED(CR10_STOCKDISPLAY) \ + + ENABLED(ANET_FULL_GRAPHICS_LCD) \ + + ENABLED(AZSMZ_12864) \ + + ENABLED(SILVER_GATE_GLCD_CONTROLLER) \ + ENABLED(SAV_3DGLCD) \ + ENABLED(OLED_PANEL_TINYBOY2) \ - + ENABLED(ZONESTAR_LCD) \ - + ENABLED(ULTI_CONTROLLER) \ - + ENABLED(MALYAN_LCD) \ + + ENABLED(MKS_12864OLED) \ + + ENABLED(MKS_12864OLED_SSD1306) \ + + ENABLED(U8GLIB_SH1106_EINSTART) \ + ENABLED(DGUS_LCD) \ - + (ENABLED(EXTENSIBLE_UI) && NONE(MALYAN_LCD, DGUS_LCD)) + + ENABLED(MALYAN_LCD) \ + + ENABLED(MKS_ROBIN_TFT) #error "Please select no more than one LCD controller option." #endif +#undef IS_RRD_SC +#undef IS_RRD_FG_SC +#undef IS_ULTRA_LCD +#undef IS_U8GLIB_SSD1306 +#undef IS_RRW_KEYPAD +#undef IS_EXTUI +#undef IS_ULTIPANEL + /** * FYSETC Mini 12864 RGB backlighting required */