diff --git a/.github/workflows/test-builds.yml b/.github/workflows/test-builds.yml index dea1a4e176161..7ebbcd0066982 100644 --- a/.github/workflows/test-builds.yml +++ b/.github/workflows/test-builds.yml @@ -105,6 +105,7 @@ jobs: - FYSETC_S6 - LERDGEK - LERDGEX + - mks_robin_pro2 - Opulo_Lumen_REV3 - rumba32 - STM32F401RC_creality diff --git a/Marlin/src/inc/SanityCheck.h b/Marlin/src/inc/SanityCheck.h index f77bf7afeb7b8..78630051b67d9 100644 --- a/Marlin/src/inc/SanityCheck.h +++ b/Marlin/src/inc/SanityCheck.h @@ -2629,10 +2629,8 @@ static_assert(COUNT(arm) == LOGICAL_AXES, "AXIS_RELATIVE_MODES must contain " _L #if ENABLED(TFT_GENERIC) && NONE(TFT_INTERFACE_FSMC, TFT_INTERFACE_SPI) #error "TFT_GENERIC requires either TFT_INTERFACE_FSMC or TFT_INTERFACE_SPI interface." -#endif - -#if BOTH(TFT_INTERFACE_FSMC, TFT_INTERFACE_SPI) - #error "Please enable only one of TFT_INTERFACE_SPI or TFT_INTERFACE_SPI." +#elif BOTH(TFT_INTERFACE_FSMC, TFT_INTERFACE_SPI) + #error "Please enable only one of TFT_INTERFACE_FSMC or TFT_INTERFACE_SPI." #endif #if defined(LCD_SCREEN_ROTATE) && LCD_SCREEN_ROTATE != 0 && LCD_SCREEN_ROTATE != 90 && LCD_SCREEN_ROTATE != 180 && LCD_SCREEN_ROTATE != 270 diff --git a/Marlin/src/lcd/extui/mks_ui/tft_lvgl_configuration.cpp b/Marlin/src/lcd/extui/mks_ui/tft_lvgl_configuration.cpp index 94c3517e3a92b..be4682f68f1b3 100644 --- a/Marlin/src/lcd/extui/mks_ui/tft_lvgl_configuration.cpp +++ b/Marlin/src/lcd/extui/mks_ui/tft_lvgl_configuration.cpp @@ -138,7 +138,10 @@ void tft_lvgl_init() { uint16_t usb_flash_loop = 1000; #if ENABLED(MULTI_VOLUME) && !HAS_SD_HOST_DRIVE SET_INPUT_PULLUP(SD_DETECT_PIN); - card.changeMedia(IS_SD_INSERTED() ? &card.media_driver_sdcard : &card.media_driver_usbFlash); + if (IS_SD_INSERTED()) + card.changeMedia(&card.media_driver_sdcard); + else + card.changeMedia(&card.media_driver_usbFlash); #endif do { card.media_driver_usbFlash.idle(); diff --git a/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_NANO_V3_common.h b/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_NANO_V3_common.h index 01f2b00b585a9..45065e223cab7 100644 --- a/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_NANO_V3_common.h +++ b/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_NANO_V3_common.h @@ -227,7 +227,6 @@ #define SPI_FLASH #if ENABLED(SPI_FLASH) - #define SPI_FLASH #define SPI_DEVICE 2 #define SPI_FLASH_SIZE 0x1000000 #define SPI_FLASH_CS_PIN PB12 diff --git a/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_PRO_V2.h b/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_PRO_V2.h index 952a8e1ec070f..f734f56b23268 100644 --- a/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_PRO_V2.h +++ b/Marlin/src/pins/stm32f4/pins_MKS_ROBIN_PRO_V2.h @@ -274,7 +274,6 @@ // // LCD / Controller #define SPI_FLASH -#define SPI_FLASH #define SPI_DEVICE 2 #define SPI_FLASH_SIZE 0x1000000 #if ENABLED(SPI_FLASH) diff --git a/buildroot/share/PlatformIO/scripts/download_mks_assets.py b/buildroot/share/PlatformIO/scripts/download_mks_assets.py index 661fb2e438e41..0186f59896ea4 100644 --- a/buildroot/share/PlatformIO/scripts/download_mks_assets.py +++ b/buildroot/share/PlatformIO/scripts/download_mks_assets.py @@ -14,7 +14,7 @@ assets_path = Path(env.Dictionary("PROJECT_BUILD_DIR"), env.Dictionary("PIOENV"), "assets") def download_mks_assets(): - print("Downloading MKS Assets") + print("Downloading MKS Assets for TFT_LVGL_UI") r = requests.get(url, stream=True) # the user may have a very clean workspace, # so create the PROJECT_LIBDEPS_DIR directory if not exits @@ -25,7 +25,7 @@ def download_mks_assets(): fd.write(chunk) def copy_mks_assets(): - print("Copying MKS Assets") + print("Copying MKS Assets for TFT_LVGL_UI") output_path = Path(tempfile.mkdtemp()) zip_obj = zipfile.ZipFile(zip_path, 'r') zip_obj.extractall(output_path) diff --git a/buildroot/tests/mks_robin_pro2 b/buildroot/tests/mks_robin_pro2 new file mode 100755 index 0000000000000..391943743378b --- /dev/null +++ b/buildroot/tests/mks_robin_pro2 @@ -0,0 +1,20 @@ +#!/usr/bin/env bash +# +# Build tests for mks_robin_pro2 (STM32F407VE) +# + +# exit on first failure +set -e + +# +# Robin Pro v2 with LVGL TFT +# +restore_configs +opt_set MOTHERBOARD BOARD_MKS_ROBIN_PRO_V2 SERIAL_PORT 1 +opt_enable SDSUPPORT USB_FLASH_DRIVE_SUPPORT USE_OTG_USB_HOST MULTI_VOLUME \ + TFT_GENERIC TFT_INTERFACE_SPI TFT_RES_480x320 TFT_LVGL_UI TOUCH_SCREEN \ + BLTOUCH Z_SAFE_HOMING LCD_BED_TRAMMING BED_TRAMMING_USE_PROBE +exec_test $1 $2 "MKS Robin Pro v2 | TFT_LVGL_UI | SD/FD Multi-Volume" "$3" + +# cleanup +restore_configs