TFT Presets, Generic options, Sanity checks (#19723)

This commit is contained in:
Scott Lahteine
2020-10-15 03:00:27 -05:00
committed by GitHub
parent 04c27573d6
commit f6ffbe548c
116 changed files with 593 additions and 599 deletions

View File

@ -46,7 +46,7 @@
*
* DOGLCD : Run a Graphical LCD through U8GLib (with MarlinUI)
* IS_ULTIPANEL : Define LCD_PINS_D5/6/7 for direct-connected "Ultipanel" LCDs
* IS_ULTRA_LCD : Ultra LCD, not necessarily Ultipanel. Used most often with NEWPANEL.
* IS_ULTRA_LCD : Ultra LCD, not necessarily Ultipanel.
* IS_RRD_SC : Common RRD Smart Controller digital interface pins
* IS_RRD_FG_SC : Common RRD Full Graphical Smart Controller digital interface pins
* U8GLIB_ST7920 : Most common DOGM display SPI interface, supporting a "lightweight" display mode.
@ -63,22 +63,21 @@
#elif ENABLED(CARTESIO_UI)
#define DOGLCD
#define IS_ULTIPANEL
#define IS_ULTIPANEL 1
#elif EITHER(DWIN_MARLINUI_PORTRAIT, DWIN_MARLINUI_LANDSCAPE)
#define IS_DWIN_MARLINUI 1
#define IS_ULTIPANEL
#define IS_ULTIPANEL 1
#elif ENABLED(ZONESTAR_LCD)
#define ADC_KEYPAD
#define IS_RRW_KEYPAD
#define HAS_ADC_BUTTONS 1
#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0
#define ADC_KEY_NUM 8
#define IS_ULTIPANEL
#define IS_ULTIPANEL 1
// This helps to implement ADC_KEYPAD menus
// This helps to implement HAS_ADC_BUTTONS menus
#define REVERSE_MENU_DIRECTION
#define ENCODER_PULSES_PER_STEP 1
#define ENCODER_STEPS_PER_MENU_ITEM 1
@ -86,29 +85,25 @@
#elif ENABLED(ZONESTAR_12864LCD)
#define DOGLCD
#define IS_RRD_SC
#define IS_RRD_SC 1
#define U8GLIB_ST7920
#elif ENABLED(ZONESTAR_12864OLED)
#define IS_RRD_SC
#define IS_RRD_SC 1
#define U8GLIB_SH1106
#elif ENABLED(ZONESTAR_12864OLED_SSD1306)
#define IS_RRD_SC
#define IS_RRD_SC 1
#define IS_U8GLIB_SSD1306
#elif ENABLED(RADDS_DISPLAY)
#define IS_ULTIPANEL
#define IS_ULTIPANEL 1
#define ENCODER_PULSES_PER_STEP 2
#elif EITHER(ANET_FULL_GRAPHICS_LCD, BQ_LCD_SMART_CONTROLLER)
#define IS_RRD_FG_SC
#elif ANY(miniVIKI, VIKI2, ELB_FULL_GRAPHIC_CONTROLLER, AZSMZ_12864)
#define DOGLCD
#define IS_ULTIPANEL
#define IS_ULTIPANEL 1
#if ENABLED(miniVIKI)
#define U8GLIB_ST7565_64128N
@ -123,40 +118,33 @@
#elif ENABLED(OLED_PANEL_TINYBOY2)
#define IS_U8GLIB_SSD1306
#define IS_ULTIPANEL
#define IS_ULTIPANEL 1
#elif ENABLED(RA_CONTROL_PANEL)
#define LCD_I2C_TYPE_PCA8574
#define LCD_I2C_ADDRESS 0x27 // I2C Address of the port expander
#define IS_ULTIPANEL
#define IS_ULTIPANEL 1
#elif ENABLED(REPRAPWORLD_GRAPHICAL_LCD)
#define DOGLCD
#define U8GLIB_ST7920
#define IS_ULTIPANEL
#elif ENABLED(CR10_STOCKDISPLAY)
#define IS_RRD_FG_SC
#define BOARD_ST7920_DELAY_1 DELAY_NS(125)
#define BOARD_ST7920_DELAY_2 DELAY_NS(125)
#define BOARD_ST7920_DELAY_3 DELAY_NS(125)
#define IS_ULTIPANEL 1
#elif ENABLED(MKS_12864OLED)
#define IS_RRD_SC
#define IS_RRD_SC 1
#define U8GLIB_SH1106
#elif ENABLED(MKS_12864OLED_SSD1306)
#define IS_RRD_SC
#define IS_RRD_SC 1
#define IS_U8GLIB_SSD1306
#elif ENABLED(FYSETC_242_OLED_12864)
#define IS_RRD_SC
#define IS_RRD_SC 1
#define U8GLIB_SH1106
#define LED_CONTROL_MENU
@ -179,7 +167,7 @@
#define FYSETC_MINI_12864
#define DOGLCD
#define IS_ULTIPANEL
#define IS_ULTIPANEL 1
#define LED_COLORS_REDUCE_GREEN
#if ENABLED(PSU_CONTROL) && EITHER(FYSETC_MINI_12864_2_0, FYSETC_MINI_12864_2_1)
#define LED_BACKLIGHT_TIMEOUT 10000
@ -205,7 +193,7 @@
#elif ENABLED(ULTI_CONTROLLER)
#define IS_ULTIPANEL
#define IS_ULTIPANEL 1
#define U8GLIB_SSD1309
#define LCD_RESET_PIN LCD_PINS_D6 // This controller need a reset pin
#define ENCODER_PULSES_PER_STEP 2
@ -213,14 +201,14 @@
#elif ENABLED(MAKEBOARD_MINI_2_LINE_DISPLAY_1602)
#define IS_RRD_SC
#define IS_RRD_SC 1
#define LCD_WIDTH 16
#define LCD_HEIGHT 2
#elif EITHER(TFTGLCD_PANEL_SPI, TFTGLCD_PANEL_I2C)
#define IS_TFTGLCD_PANEL 1
#define IS_ULTIPANEL // Note that IS_ULTIPANEL leads to HAS_WIRED_LCD
#define IS_ULTIPANEL 1 // Note that IS_ULTIPANEL leads to HAS_WIRED_LCD
#if ENABLED(SDSUPPORT) && DISABLED(LCD_PROGRESS_BAR)
#define LCD_PROGRESS_BAR
@ -239,14 +227,35 @@
#define CONVERT_TO_EXT_ASCII // Use extended 128-255 symbols from ASCII table.
// At this time present conversion only for cyrillic - bg, ru and uk languages.
// First 7 ASCII symbols in panel font must be replaced with Marlin's special symbols.
#elif ENABLED(CR10_STOCKDISPLAY)
#define IS_RRD_FG_SC 1
#define BOARD_ST7920_DELAY_1 DELAY_NS(125)
#define BOARD_ST7920_DELAY_2 DELAY_NS(125)
#define BOARD_ST7920_DELAY_3 DELAY_NS(125)
#elif ANY(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER, ANET_FULL_GRAPHICS_LCD, BQ_LCD_SMART_CONTROLLER)
#define IS_RRD_FG_SC 1
#elif ENABLED(REPRAP_DISCOUNT_SMART_CONTROLLER)
// RepRapDiscount LCD or Graphical LCD with rotary click encoder
#define IS_RRD_SC 1
#endif
#if ENABLED(IS_RRD_FG_SC)
#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
// ST7920-based graphical displays
#if ANY(IS_RRD_FG_SC, LCD_FOR_MELZI, SILVER_GATE_GLCD_CONTROLLER)
#define DOGLCD
#define U8GLIB_ST7920
#define IS_RRD_SC 1
#endif
// ST7565 / 64128N graphical displays
#if EITHER(MAKRPANEL, MINIPANEL)
#define IS_ULTIPANEL
#define IS_ULTIPANEL 1
#define DOGLCD
#if ENABLED(MAKRPANEL)
#define U8GLIB_ST7565_64128N
@ -258,7 +267,7 @@
#endif
#if ENABLED(OVERLORD_OLED)
#define IS_ULTIPANEL
#define IS_ULTIPANEL 1
#define U8GLIB_SH1106
/**
* PCA9632 for buzzer and LEDs via i2c
@ -278,64 +287,44 @@
// 128x64 I2C OLED LCDs - SSD1306/SSD1309/SH1106
#if ANY(U8GLIB_SSD1306, U8GLIB_SSD1309, U8GLIB_SH1106)
#define HAS_U8GLIB_I2C_OLED 1
#endif
#if HAS_U8GLIB_I2C_OLED
#define IS_ULTRA_LCD
#define IS_ULTRA_LCD 1
#define DOGLCD
#endif
// ST7920-based graphical displays
#if ANY(REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER, LCD_FOR_MELZI, SILVER_GATE_GLCD_CONTROLLER)
#define DOGLCD
#define U8GLIB_ST7920
#define IS_RRD_SC
#endif
// RepRapDiscount LCD or Graphical LCD with rotary click encoder
#if ENABLED(IS_RRD_SC)
#define REPRAP_DISCOUNT_SMART_CONTROLLER
#endif
/**
* SPI Ultipanels
*/
// Basic Ultipanel-like displays
#if ANY(ULTIMAKERCONTROLLER, REPRAP_DISCOUNT_SMART_CONTROLLER, G3D_PANEL, RIGIDBOT_PANEL, PANEL_ONE, U8GLIB_SH1106)
#define IS_ULTIPANEL
#if ANY(ULTIMAKERCONTROLLER, IS_RRD_SC, G3D_PANEL, RIGIDBOT_PANEL, PANEL_ONE, U8GLIB_SH1106)
#define IS_ULTIPANEL 1
#endif
// Einstart OLED has Cardinal nav via pins defined in pins_EINSTART-S.h
#if ENABLED(U8GLIB_SH1106_EINSTART)
#define DOGLCD
#define IS_ULTIPANEL
#define IS_ULTIPANEL 1
#endif
// Compatibility
#if ENABLED(FSMC_GRAPHICAL_TFT)
// TFT Compatibility
#if ANY(FSMC_GRAPHICAL_TFT, SPI_GRAPHICAL_TFT, TFT_320x240, TFT_480x320, TFT_320x240_SPI, TFT_480x320_SPI, TFT_LVGL_UI_FSMC, TFT_LVGL_UI_SPI)
#define IS_LEGACY_TFT 1
#define TFT_GENERIC
#warning "Don't forget to update your TFT settings in Configuration.h."
#endif
#if ANY(FSMC_GRAPHICAL_TFT, TFT_320x240, TFT_480x320, TFT_LVGL_UI_FSMC)
#define TFT_INTERFACE_FSMC
#elif ANY(SPI_GRAPHICAL_TFT, TFT_320x240_SPI, TFT_480x320_SPI, TFT_LVGL_UI_SPI)
#define TFT_INTERFACE_SPI
#endif
#if EITHER(FSMC_GRAPHICAL_TFT, SPI_GRAPHICAL_TFT)
#define TFT_CLASSIC_UI
#define TFT_INTERFACE_FSMC
#define TFT_GENERIC
#elif ENABLED(SPI_GRAPHICAL_TFT)
#define TFT_CLASSIC_UI
#define TFT_INTERFACE_SPI
#define TFT_GENERIC
#elif EITHER(TFT_320x240, TFT_480x320)
#elif ANY(TFT_320x240, TFT_480x320, TFT_320x240_SPI, TFT_480x320_SPI)
#define TFT_COLOR_UI
#define TFT_INTERFACE_FSMC
#define TFT_GENERIC
#elif EITHER(TFT_320x240_SPI, TFT_480x320_SPI)
#define TFT_COLOR_UI
#define TFT_INTERFACE_SPI
#define TFT_GENERIC
#elif ENABLED(TFT_LVGL_UI_FSMC)
#elif EITHER(TFT_LVGL_UI_FSMC, TFT_LVGL_UI_SPI)
#define TFT_LVGL_UI
#define TFT_INTERFACE_FSMC
#define TFT_GENERIC
#elif ENABLED(TFT_LVGL_UI_SPI)
#define TFT_LVGL_UI
#define TFT_INTERFACE_SPI
#define TFT_GENERIC
#endif
// FSMC/SPI TFT Panels (LVGL)
@ -350,7 +339,7 @@
#if TFT_SCALED_DOGLCD
#define DOGLCD
#define IS_ULTIPANEL
#define IS_ULTIPANEL 1
#define DELAYED_BACKLIGHT_INIT
#elif ENABLED(TFT_LVGL_UI)
#define DELAYED_BACKLIGHT_INIT
@ -359,7 +348,7 @@
// Color UI
#if ENABLED(TFT_COLOR_UI)
#define HAS_GRAPHICAL_TFT 1
#define IS_ULTIPANEL
#define IS_ULTIPANEL 1
#endif
/**
@ -383,7 +372,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 IS_ULTIPANEL
#define IS_ULTIPANEL 1
#elif ENABLED(LCD_I2C_VIKI)
@ -398,7 +387,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 IS_ULTIPANEL
#define IS_ULTIPANEL 1
#define ENCODER_FEEDRATE_DEADZONE 4
@ -410,7 +399,7 @@
#define STD_ENCODER_PULSES_PER_STEP 2
#define STD_ENCODER_STEPS_PER_MENU_ITEM 1
#elif ANY(REPRAP_DISCOUNT_SMART_CONTROLLER, miniVIKI, VIKI2, ELB_FULL_GRAPHIC_CONTROLLER, AZSMZ_12864, OLED_PANEL_TINYBOY2, BQ_LCD_SMART_CONTROLLER, LCD_I2C_PANELOLU2)
#elif ANY(IS_RRD_SC, 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
@ -443,30 +432,24 @@
// 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 IS_ULTIPANEL
#define IS_ULTIPANEL 1
#elif ENABLED(SAV_3DLCD)
#define SR_LCD_2W_NL // Non latching 2 wire shift register
#define IS_ULTIPANEL
#define IS_ULTIPANEL 1
#elif ENABLED(ULTIPANEL)
#define IS_ULTIPANEL 1
#endif
#if ENABLED(IS_ULTIPANEL)
#define ULTIPANEL
#endif
#if ENABLED(ULTIPANEL)
#define IS_ULTRA_LCD
#define NEWPANEL
#endif
#if ENABLED(IS_ULTRA_LCD)
#define ULTRA_LCD
#if EITHER(IS_ULTIPANEL, ULTRA_LCD)
#define IS_ULTRA_LCD 1
#endif
#if ENABLED(IS_RRW_KEYPAD)
#define REPRAPWORLD_KEYPAD
#if EITHER(IS_ULTIPANEL, REPRAPWORLD_KEYPAD)
#define IS_NEWPANEL 1
#endif
// Keypad needs a move step
#if ENABLED(REPRAPWORLD_KEYPAD)
#define NEWPANEL
#if EITHER(ZONESTAR_LCD, REPRAPWORLD_KEYPAD)
#define IS_RRW_KEYPAD 1
#ifndef REPRAPWORLD_KEYPAD_MOVE_STEP
#define REPRAPWORLD_KEYPAD_MOVE_STEP 1.0
#endif
@ -479,16 +462,16 @@
// Extensible UI serial touch screens. (See src/lcd/extui)
#if ANY(HAS_DGUS_LCD, MALYAN_LCD, TOUCH_UI_FTDI_EVE, ANYCUBIC_LCD_I3MEGA, ANYCUBIC_LCD_CHIRON)
#define IS_EXTUI
#define IS_EXTUI 1
#define EXTENSIBLE_UI
#endif
// Aliases for LCD features
#if EITHER(ULTRA_LCD, EXTENSIBLE_UI)
#if EITHER(IS_ULTRA_LCD, EXTENSIBLE_UI)
#define HAS_DISPLAY 1
#endif
#if ENABLED(ULTRA_LCD)
#if IS_ULTRA_LCD
#define HAS_WIRED_LCD 1
#if ENABLED(DOGLCD)
#define HAS_MARLINUI_U8GLIB 1
@ -499,12 +482,9 @@
#endif
#endif
#if ENABLED(ULTIPANEL) && DISABLED(NO_LCD_MENUS)
#if IS_ULTIPANEL && DISABLED(NO_LCD_MENUS)
#define HAS_LCD_MENU 1
#endif
#if ENABLED(ADC_KEYPAD)
#define HAS_ADC_BUTTONS 1
#endif
#if HAS_MARLINUI_U8GLIB
#ifndef LCD_PIXEL_WIDTH
@ -837,83 +817,85 @@
#if ENABLED(MKS_TS35_V2_0)
// Most common: ST7796
#define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY)
#define TFT_WIDTH 480
#define TFT_HEIGHT 320
#define TFT_RES_480x320
#define TFT_INTERFACE_SPI
#define GRAPHICAL_TFT_UPSCALE 3
#elif ENABLED(MKS_ROBIN_TFT24)
// Most common: ST7789
#define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY | TFT_INVERT_Y)
#define TFT_WIDTH 320
#define TFT_HEIGHT 240
#define TFT_RES_320x240
#define TFT_INTERFACE_FSMC
#define GRAPHICAL_TFT_UPSCALE 2
#elif ENABLED(MKS_ROBIN_TFT28)
// Most common: ST7789
#define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY | TFT_INVERT_Y)
#define TFT_WIDTH 320
#define TFT_HEIGHT 240
#define TFT_RES_320x240
#define TFT_INTERFACE_FSMC
#define GRAPHICAL_TFT_UPSCALE 2
#elif ENABLED(MKS_ROBIN_TFT32)
// Most common: ST7789
#define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY | TFT_INVERT_Y)
#define TFT_WIDTH 320
#define TFT_HEIGHT 240
#define TFT_RES_320x240
#define TFT_INTERFACE_FSMC
#define GRAPHICAL_TFT_UPSCALE 2
#elif ENABLED(MKS_ROBIN_TFT35)
// Most common: ILI9488
#define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY | TFT_INVERT_X | TFT_INVERT_Y)
#define TFT_WIDTH 480
#define TFT_HEIGHT 320
#define TFT_RES_480x320
#define TFT_INTERFACE_FSMC
#define GRAPHICAL_TFT_UPSCALE 3
#elif ENABLED(MKS_ROBIN_TFT43)
#define TFT_DEFAULT_ORIENTATION 0
#define TFT_DRIVER SSD1963
#define TFT_WIDTH 480
#define TFT_HEIGHT 272
#define TFT_RES_480x272
#define TFT_INTERFACE_FSMC
#define GRAPHICAL_TFT_UPSCALE 2
#elif ENABLED(MKS_ROBIN_TFT_V1_1R)
// ILI9328 or R61505
#define TFT_DEFAULT_ORIENTATION (TFT_INVERT_X | TFT_INVERT_Y | TFT_EXCHANGE_XY)
#define TFT_WIDTH 320
#define TFT_HEIGHT 240
#define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY | TFT_INVERT_X | TFT_INVERT_Y)
#define TFT_RES_320x240
#define TFT_INTERFACE_FSMC
#define GRAPHICAL_TFT_UPSCALE 2
#elif EITHER(TFT_TRONXY_X5SA, ANYCUBIC_TFT35)
#define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY | TFT_INVERT_X | TFT_INVERT_Y)
#define TFT_DRIVER ILI9488
#define TFT_WIDTH 480
#define TFT_HEIGHT 320
#define TFT_RES_480x320
#define TFT_INTERFACE_FSMC
#define GRAPHICAL_TFT_UPSCALE 3
#elif ENABLED(LONGER_LK_TFT28)
#define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY | TFT_INVERT_X | TFT_INVERT_Y)
#define TFT_WIDTH 320
#define TFT_HEIGHT 240
#define TFT_RES_320x240
#define TFT_INTERFACE_FSMC
#define GRAPHICAL_TFT_UPSCALE 2
#elif ENABLED(TFT_GENERIC)
#define TFT_DEFAULT_ORIENTATION (TFT_EXCHANGE_XY | TFT_INVERT_X | TFT_INVERT_Y)
#if NONE(TFT_RES_320x240, TFT_RES_480x272, TFT_RES_480x320)
#define TFT_RES_320x240
#endif
#if NONE(TFT_INTERFACE_FSMC, TFT_INTERFACE_SPI)
#define TFT_INTERFACE_SPI
#endif
#endif
#if ENABLED(TFT_RES_320x240)
#define TFT_WIDTH 320
#define TFT_HEIGHT 240
#define GRAPHICAL_TFT_UPSCALE 2
#elif ENABLED(TFT_RES_480x272)
#define TFT_WIDTH 480
#define TFT_HEIGHT 272
#define GRAPHICAL_TFT_UPSCALE 2
#elif ENABLED(TFT_RES_480x320)
#define TFT_WIDTH 480
#define TFT_HEIGHT 320
#define GRAPHICAL_TFT_UPSCALE 3
#endif
// FSMC/SPI TFT Panels using standard HAL/tft/tft_(fsmc|spi).h
#if ENABLED(TFT_INTERFACE_FSMC)
#define HAS_FSMC_TFT 1
#if ENABLED(TFT_CLASSIC_UI)
#define FSMC_GRAPHICAL_TFT
#define HAS_FSMC_GRAPHICAL_TFT 1
#elif ENABLED(TFT_LVGL_UI)
#define TFT_LVGL_UI_FSMC
#define HAS_TFT_LVGL_UI_FSMC 1
#endif
#elif ENABLED(TFT_INTERFACE_SPI)
#define HAS_SPI_TFT 1
#if ENABLED(TFT_CLASSIC_UI)
#define SPI_GRAPHICAL_TFT
#define HAS_SPI_GRAPHICAL_TFT 1
#elif ENABLED(TFT_LVGL_UI)
#define TFT_LVGL_UI_SPI
#define HAS_TFT_LVGL_UI_SPI 1
#endif
#endif