TFT Refactoring (#19192)
* split tft folder in two: tft for color ui; tft_io for shared tft code * after the files got moved, now the code was moved to the right place * classic ui using TFT IO init lcd codes * feature to compile tft_io when enabled * compiling fix * lvgl spi tft working with tft io init codes * there is no need for separeted fsmc and spi class in lvgl anymore, as tft io handle everything * remove debug * base for TFT rotation and mirroring API, and ILI9488 support * ST7796S rotate and mirror support * ST7789V rotate and mirror support * ST7735 rotate and mirror support * ILI9341 rotate and mirror support * ILI9328 rotate and mirror support * R61505 rotate and mirror support * MKS TFT definitions * more configs for mks tfts * update config * naming typo * to configure the user interface * ANYCUBIC_TFT35 * tft configs * support for SSD1963 * tft display types * updated conditionals lcd; first board fully working with the new code - all 3 ui! * compatiblity * changed name * move classic ui file name * rename TURN -> ROTATE * GRAPHICAL_TFT_ROTATE_180 deprecated * first fsmc board fully working - chitu v5 * mks robin nano v1.2 + tft 35 ok! * right pin name * anycubic tft tested in a TRIGORILLA_PRO * chitu v6 * nano 32 tft orientation * mks tft43 * mks tft43 rotation * fixed LONGER LK tft setup * GRAPHICAL_TFT_UPSCALE defined by the display type * better offsets defaults * Update Configuration.h * Update tft_fsmc.cpp * Update Conditionals_LCD.h * Tweak comments * update nano tests * Revert "update nano tests" This reverts commit a071ebbfad30e28855a4a5695ec8a726542a1a65. * default tft * outdated comments * to not break non-vscode builds * upscale tft 35 * support tft 180 rotation for color ui * Each TFT Driver is responsible for its default color mode. * use auto detect in mks displays, because some of them could be shipped with diferent drivers * extra s * unused code * wrong -1 * missing mirror options * Smaller regex pattern * Comment updates * Clean up old defines * Apply pins formatting * GRAPHICAL_TFT_ROTATE_180 => TFT_ROTATE_180 * MKS_ROBIN_TFT_V1_1R * merge fix * correct resolution * auto is default, dont need be there, and it will allow the user to configure it even for named displays * to not use rotation with MKS_ROBIN_TFT_V1_1R * i like () in macros * avoid sleepy commits * default for st7789 is rgb * nano follow up * to allow ili9328 rotation * default is rgb * boards merge follow up * to match bootloader orientation * HAS_TOUCH_XPT2046 is not hal specific anymore * lets not forget LPC * 180 rotation for ili9328 and R61505 * Clean up whitespace Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com> Co-authored-by: Scott Lahteine <github@thinkyhead.com>
This commit is contained in:
@ -129,8 +129,6 @@
|
||||
#define TOUCH_MISO_PIN PA6 // SPI1_MISO
|
||||
#define TOUCH_MOSI_PIN PA7 // SPI1_MOSI
|
||||
|
||||
#define LCD_RESET_PIN PF11
|
||||
#define LCD_BACKLIGHT_PIN PD13
|
||||
#define TFT_RESET_PIN PF11
|
||||
#define TFT_BACKLIGHT_PIN PD13
|
||||
|
||||
@ -140,14 +138,9 @@
|
||||
#define FSMC_DMA_DEV DMA2
|
||||
#define FSMC_DMA_CHANNEL DMA_CH5
|
||||
|
||||
#define TFT_WIDTH 480
|
||||
#define TFT_HEIGHT 320
|
||||
#define TFT_PIXEL_OFFSET_X 48
|
||||
#define TFT_PIXEL_OFFSET_Y 32
|
||||
|
||||
#endif
|
||||
|
||||
#if HAS_TFT_LVGL_UI
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
// LVGL
|
||||
#define HAS_SPI_FLASH_FONT 1
|
||||
#define HAS_GCODE_PREVIEW 1
|
||||
@ -155,16 +148,17 @@
|
||||
#define HAS_LANG_SELECT_SCREEN 1
|
||||
#define HAS_BAK_VIEW_IN_FLASH 0
|
||||
#define HAS_LOGO_IN_FLASH 0
|
||||
#elif ENABLED(TFT_480x320)
|
||||
#elif ENABLED(TFT_COLOR_UI)
|
||||
// Color UI
|
||||
#define TFT_DRIVER ILI9488
|
||||
#define TFT_BUFFER_SIZE 14400
|
||||
#elif ENABLED(FSMC_GRAPHICAL_TFT)
|
||||
#elif ENABLED(TFT_CLASSIC_UI)
|
||||
// Emulated DOGM
|
||||
#define GRAPHICAL_TFT_UPSCALE 3
|
||||
#endif
|
||||
|
||||
#if EITHER(HAS_TFT_LVGL_UI, TFT_480x320)
|
||||
// XPT2046 Touch Screen calibration
|
||||
#if EITHER(TFT_LVGL_UI, TFT_COLOR_UI)
|
||||
#ifndef XPT2046_X_CALIBRATION
|
||||
#define XPT2046_X_CALIBRATION -17181
|
||||
#endif
|
||||
@ -177,7 +171,7 @@
|
||||
#ifndef XPT2046_Y_OFFSET
|
||||
#define XPT2046_Y_OFFSET -9
|
||||
#endif
|
||||
#elif ENABLED(FSMC_GRAPHICAL_TFT)
|
||||
#elif ENABLED(TFT_CLASSIC_UI)
|
||||
#ifndef XPT2046_X_CALIBRATION
|
||||
#define XPT2046_X_CALIBRATION -12316
|
||||
#endif
|
||||
|
@ -135,15 +135,15 @@
|
||||
// TronXY TFT Support
|
||||
//
|
||||
|
||||
// Shared FSMC Configs
|
||||
#if HAS_FSMC_TFT
|
||||
|
||||
// Shared FSMC
|
||||
|
||||
#define TOUCH_CS_PIN PB7 // SPI1_NSS
|
||||
#define TOUCH_SCK_PIN PA5 // SPI1_SCK
|
||||
#define TOUCH_MISO_PIN PA6 // SPI1_MISO
|
||||
#define TOUCH_MOSI_PIN PA7 // SPI1_MOSI
|
||||
|
||||
#define LCD_RESET_PIN PF11
|
||||
#define LCD_BACKLIGHT_PIN PD13
|
||||
#define TFT_RESET_PIN PF11
|
||||
#define TFT_BACKLIGHT_PIN PD13
|
||||
|
||||
@ -153,14 +153,9 @@
|
||||
#define FSMC_DMA_DEV DMA2
|
||||
#define FSMC_DMA_CHANNEL DMA_CH5
|
||||
|
||||
#define TFT_WIDTH 480
|
||||
#define TFT_HEIGHT 320
|
||||
#define TFT_PIXEL_OFFSET_X 48
|
||||
#define TFT_PIXEL_OFFSET_Y 32
|
||||
|
||||
#endif
|
||||
|
||||
#if HAS_TFT_LVGL_UI
|
||||
#if ENABLED(TFT_LVGL_UI)
|
||||
// LVGL
|
||||
#define HAS_SPI_FLASH_FONT 1
|
||||
#define HAS_GCODE_PREVIEW 1
|
||||
@ -168,16 +163,17 @@
|
||||
#define HAS_LANG_SELECT_SCREEN 1
|
||||
#define HAS_BAK_VIEW_IN_FLASH 0
|
||||
#define HAS_LOGO_IN_FLASH 0
|
||||
#elif ENABLED(TFT_480x320)
|
||||
#elif ENABLED(TFT_COLOR_UI)
|
||||
// Color UI
|
||||
#define TFT_DRIVER ILI9488
|
||||
#define TFT_BUFFER_SIZE 14400
|
||||
#elif ENABLED(FSMC_GRAPHICAL_TFT)
|
||||
#elif ENABLED(TFT_CLASSIC_UI)
|
||||
// Emulated DOGM
|
||||
#define GRAPHICAL_TFT_UPSCALE 3
|
||||
#endif
|
||||
|
||||
#if EITHER(HAS_TFT_LVGL_UI, TFT_480x320)
|
||||
// XPT2046 Touch Screen calibration
|
||||
#if EITHER(TFT_LVGL_UI, TFT_COLOR_UI)
|
||||
#ifndef XPT2046_X_CALIBRATION
|
||||
#define XPT2046_X_CALIBRATION -17181
|
||||
#endif
|
||||
@ -190,7 +186,7 @@
|
||||
#ifndef XPT2046_Y_OFFSET
|
||||
#define XPT2046_Y_OFFSET -9
|
||||
#endif
|
||||
#elif ENABLED(FSMC_GRAPHICAL_TFT)
|
||||
#elif ENABLED(TFT_CLASSIC_UI)
|
||||
#ifndef XPT2046_X_CALIBRATION
|
||||
#define XPT2046_X_CALIBRATION -12316
|
||||
#endif
|
||||
|
@ -39,7 +39,7 @@
|
||||
#define STM32_XL_DENSITY
|
||||
#endif
|
||||
|
||||
// #define MCU_STM32F103ZE // not yet required
|
||||
//#define MCU_STM32F103ZE // not yet required
|
||||
// Enable EEPROM Emulation for this board, so that we don't overwrite factory data
|
||||
|
||||
//#define I2C_EEPROM // AT24C64
|
||||
|
@ -118,7 +118,6 @@
|
||||
* because Marlin uses the reset as a failsafe to revive a glitchy LCD.
|
||||
*/
|
||||
|
||||
#define LCD_RESET_PIN PC4 // pin 33
|
||||
#define TFT_RESET_PIN PC4 // pin 33
|
||||
#define TFT_BACKLIGHT_PIN PD12 // pin 59
|
||||
#define FSMC_CS_PIN PD7 // pin 88 = FSMC_NE1
|
||||
@ -131,13 +130,11 @@
|
||||
#define DOGLCD_MOSI -1 // Prevent auto-define by Conditionals_post.h
|
||||
#define DOGLCD_SCK -1
|
||||
|
||||
#define GRAPHICAL_TFT_UPSCALE 2
|
||||
#define TFT_WIDTH 320
|
||||
#define TFT_HEIGHT 240
|
||||
#define TFT_PIXEL_OFFSET_X 32
|
||||
#define TFT_PIXEL_OFFSET_Y 32
|
||||
// Longer/Alfawise TFT
|
||||
#define LONGER_LK_TFT28
|
||||
|
||||
//#define TFT_DRIVER ILI9341
|
||||
// Buffer for Color UI
|
||||
#define TFT_BUFFER_SIZE 3200
|
||||
|
||||
/**
|
||||
* Note: Alfawise U20/U30 boards DON'T use SPI2, as the hardware designer
|
||||
|
@ -143,8 +143,8 @@
|
||||
#define LCD_BACKLIGHT_PIN PG11
|
||||
#define FSMC_CS_PIN PG12 // NE4
|
||||
#define FSMC_RS_PIN PF0 // A0
|
||||
#define TFT_CS_PIN FSMC_CS_PIN
|
||||
#define TFT_RS_PIN FSMC_RS_PIN
|
||||
#define TFT_CS_PIN FSMC_CS_PIN
|
||||
#define TFT_RS_PIN FSMC_RS_PIN
|
||||
|
||||
#define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
|
||||
#define FSMC_DMA_DEV DMA2
|
||||
|
@ -290,6 +290,7 @@
|
||||
#define TFT_BUFFER_SIZE 14400
|
||||
#endif
|
||||
|
||||
// XPT2046 Touch Screen calibration
|
||||
#if EITHER(HAS_TFT_LVGL_UI, TFT_480x320_SPI)
|
||||
#ifndef XPT2046_X_CALIBRATION
|
||||
#define XPT2046_X_CALIBRATION -17253
|
||||
|
@ -171,6 +171,9 @@
|
||||
|
||||
// Shared FSMC Configs
|
||||
#if HAS_FSMC_TFT
|
||||
#define DOGLCD_MOSI -1 // prevent redefine Conditionals_post.h
|
||||
#define DOGLCD_SCK -1
|
||||
|
||||
#define FSMC_CS_PIN PD7 // NE4
|
||||
#define FSMC_RS_PIN PD11 // A0
|
||||
|
||||
@ -179,9 +182,6 @@
|
||||
#define TOUCH_MISO_PIN PB14 // SPI2_MISO
|
||||
#define TOUCH_MOSI_PIN PB15 // SPI2_MOSI
|
||||
|
||||
#define LCD_RESET_PIN PC6 // FSMC_RST
|
||||
#define LCD_BACKLIGHT_PIN PD13
|
||||
|
||||
#define TFT_RESET_PIN PC6 // FSMC_RST
|
||||
#define TFT_BACKLIGHT_PIN PD13
|
||||
|
||||
@ -193,60 +193,11 @@
|
||||
|
||||
#define TOUCH_BUTTONS_HW_SPI
|
||||
#define TOUCH_BUTTONS_HW_SPI_DEVICE 2
|
||||
|
||||
#define TFT_BUFFER_SIZE 14400
|
||||
#endif
|
||||
|
||||
#if ENABLED(FSMC_GRAPHICAL_TFT)
|
||||
// Emulated DOGM
|
||||
#define DOGLCD_MOSI -1 // prevent redefine Conditionals_post.h
|
||||
#define DOGLCD_SCK -1
|
||||
|
||||
#ifndef GRAPHICAL_TFT_UPSCALE
|
||||
#define GRAPHICAL_TFT_UPSCALE 3
|
||||
#endif
|
||||
#ifndef TFT_WIDTH
|
||||
#define TFT_WIDTH 480
|
||||
#endif
|
||||
#ifndef TFT_PIXEL_OFFSET_X
|
||||
#define TFT_PIXEL_OFFSET_X 48
|
||||
#endif
|
||||
#ifndef TFT_HEIGHT
|
||||
#define TFT_HEIGHT 320
|
||||
#endif
|
||||
#ifndef TFT_PIXEL_OFFSET_Y
|
||||
#define TFT_PIXEL_OFFSET_Y 32
|
||||
#endif
|
||||
|
||||
#elif ENABLED(TFT_320x240) // TFT32/28
|
||||
#define TFT_RESET_PIN PC6
|
||||
#define TFT_BACKLIGHT_PIN PD13
|
||||
|
||||
#define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
|
||||
#define FSMC_CS_PIN PD7
|
||||
#define FSMC_RS_PIN PD11
|
||||
#define FSMC_DMA_DEV DMA2
|
||||
#define FSMC_DMA_CHANNEL DMA_CH5
|
||||
|
||||
#define TOUCH_CS_PIN PA7 // SPI2_NSS
|
||||
#define TOUCH_SCK_PIN PB13 // SPI2_SCK
|
||||
#define TOUCH_MISO_PIN PB14 // SPI2_MISO
|
||||
#define TOUCH_MOSI_PIN PB15 // SPI2_MOSI
|
||||
|
||||
#define TFT_DRIVER ILI9341
|
||||
#define TFT_BUFFER_SIZE 14400
|
||||
|
||||
// YV for normal screen mounting
|
||||
//#define ILI9341_ORIENTATION ILI9341_MADCTL_MY | ILI9341_MADCTL_MV
|
||||
// XV for 180° rotated screen mounting
|
||||
#define ILI9341_ORIENTATION ILI9341_MADCTL_MX | ILI9341_MADCTL_MV
|
||||
|
||||
#define ILI9341_COLOR_RGB
|
||||
|
||||
#elif ENABLED(TFT_480x320)
|
||||
#define TFT_DRIVER ILI9488
|
||||
#define TFT_BUFFER_SIZE 14400
|
||||
#define ILI9488_ORIENTATION ILI9488_MADCTL_MX | ILI9488_MADCTL_MV
|
||||
#endif
|
||||
|
||||
// XPT2046 Touch Screen calibration
|
||||
#if EITHER(TFT_LVGL_UI_FSMC, TFT_480x320)
|
||||
#ifndef XPT2046_X_CALIBRATION
|
||||
#define XPT2046_X_CALIBRATION 17880
|
||||
@ -260,7 +211,7 @@
|
||||
#ifndef XPT2046_Y_OFFSET
|
||||
#define XPT2046_Y_OFFSET 349
|
||||
#endif
|
||||
#elif ENABLED(FSMC_GRAPHICAL_TFT)
|
||||
#elif ENABLED(TFT_CLASSIC_UI)
|
||||
#ifndef XPT2046_X_CALIBRATION
|
||||
#define XPT2046_X_CALIBRATION 12149
|
||||
#endif
|
||||
@ -273,7 +224,7 @@
|
||||
#ifndef XPT2046_Y_OFFSET
|
||||
#define XPT2046_Y_OFFSET 256
|
||||
#endif
|
||||
#elif ENABLED(TFT_320x240) // TFT32/28
|
||||
#elif ENABLED(TFT_320x240)
|
||||
#ifndef XPT2046_X_CALIBRATION
|
||||
#define XPT2046_X_CALIBRATION -12246
|
||||
#endif
|
||||
|
@ -269,19 +269,11 @@
|
||||
#define TOUCH_BUTTONS_HW_SPI
|
||||
#define TOUCH_BUTTONS_HW_SPI_DEVICE 1
|
||||
|
||||
#ifndef TFT_WIDTH
|
||||
#define TFT_WIDTH 480
|
||||
#endif
|
||||
#ifndef TFT_HEIGHT
|
||||
#define TFT_HEIGHT 320
|
||||
#endif
|
||||
|
||||
#define LCD_READ_ID 0xD3
|
||||
#define LCD_USE_DMA_SPI
|
||||
|
||||
#endif
|
||||
|
||||
#if ENABLED(SPI_GRAPHICAL_TFT)
|
||||
#if ENABLED(TFT_CLASSIC_UI)
|
||||
// Emulated DOGM SPI
|
||||
#ifndef GRAPHICAL_TFT_UPSCALE
|
||||
#define GRAPHICAL_TFT_UPSCALE 3
|
||||
@ -297,12 +289,12 @@
|
||||
#define LCD_PINS_ENABLE PD13
|
||||
#define LCD_PINS_RS PC6
|
||||
|
||||
#elif ENABLED(TFT_480x320_SPI)
|
||||
#define TFT_DRIVER ST7796
|
||||
#elif ENABLED(TFT_COLOR_UI)
|
||||
#define TFT_BUFFER_SIZE 14400
|
||||
#endif
|
||||
|
||||
#if EITHER(TFT_LVGL_UI_SPI, TFT_480x320_SPI)
|
||||
// XPT2046 Touch Screen calibration
|
||||
#if EITHER(TFT_LVGL_UI, TFT_COLOR_UI)
|
||||
#ifndef XPT2046_X_CALIBRATION
|
||||
#define XPT2046_X_CALIBRATION -17253
|
||||
#endif
|
||||
@ -315,7 +307,7 @@
|
||||
#ifndef XPT2046_Y_OFFSET
|
||||
#define XPT2046_Y_OFFSET -24
|
||||
#endif
|
||||
#elif ENABLED(SPI_GRAPHICAL_TFT)
|
||||
#elif ENABLED(TFT_CLASSIC_UI)
|
||||
#ifndef XPT2046_X_CALIBRATION
|
||||
#define XPT2046_X_CALIBRATION -11386
|
||||
#endif
|
||||
|
@ -120,14 +120,50 @@
|
||||
* Setting an 'LCD_RESET_PIN' may cause a flicker when entering the LCD menu
|
||||
* because Marlin uses the reset as a failsafe to revive a glitchy LCD.
|
||||
*/
|
||||
#define LCD_RESET_PIN PF11
|
||||
#define LCD_BACKLIGHT_PIN PD13
|
||||
#define FSMC_CS_PIN PD7 // NE4
|
||||
#define FSMC_RS_PIN PD11 // A0
|
||||
#if HAS_FSMC_TFT
|
||||
#define TFT_RESET_PIN PF11
|
||||
#define TFT_BACKLIGHT_PIN PD13
|
||||
#define FSMC_CS_PIN PD7 // NE4
|
||||
#define FSMC_RS_PIN PD11 // A0
|
||||
|
||||
#define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
|
||||
#define FSMC_DMA_DEV DMA2
|
||||
#define FSMC_DMA_CHANNEL DMA_CH5
|
||||
#define LCD_USE_DMA_FSMC // Use DMA transfers to send data to the TFT
|
||||
#define FSMC_DMA_DEV DMA2
|
||||
#define FSMC_DMA_CHANNEL DMA_CH5
|
||||
|
||||
#define ANYCUBIC_TFT35
|
||||
#else
|
||||
#define LCD_RESET_PIN PF11
|
||||
#define LCD_BACKLIGHT_PIN PD13
|
||||
#endif
|
||||
|
||||
// XPT2046 Touch Screen calibration
|
||||
#if ENABLED(TFT_COLOR_UI) || ENABLED(TFT_LVGL_UI)
|
||||
#ifndef XPT2046_X_CALIBRATION
|
||||
#define XPT2046_X_CALIBRATION -17181
|
||||
#endif
|
||||
#ifndef XPT2046_Y_CALIBRATION
|
||||
#define XPT2046_Y_CALIBRATION 11434
|
||||
#endif
|
||||
#ifndef XPT2046_X_OFFSET
|
||||
#define XPT2046_X_OFFSET 501
|
||||
#endif
|
||||
#ifndef XPT2046_Y_OFFSET
|
||||
#define XPT2046_Y_OFFSET -9
|
||||
#endif
|
||||
#elif ENABLED(TFT_CLASSIC_UI)
|
||||
#ifndef XPT2046_X_CALIBRATION
|
||||
#define XPT2046_X_CALIBRATION -12316
|
||||
#endif
|
||||
#ifndef XPT2046_Y_CALIBRATION
|
||||
#define XPT2046_Y_CALIBRATION 8981
|
||||
#endif
|
||||
#ifndef XPT2046_X_OFFSET
|
||||
#define XPT2046_X_OFFSET 340
|
||||
#endif
|
||||
#ifndef XPT2046_Y_OFFSET
|
||||
#define XPT2046_Y_OFFSET -20
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if NEED_TOUCH_PINS
|
||||
#define TOUCH_CS_PIN PB7 // SPI2_NSS
|
||||
|
Reference in New Issue
Block a user