Skip to content

Commit b455f4b

Browse files
thinkyheadThe-EG
authored andcommitted
✨ MarlinUI for Ender 3 v2 DWIN LCD (MarlinFirmware#22594)
Co-Authored-By: Taylor Talkington <[email protected]>
1 parent 61f036b commit b455f4b

35 files changed

+56500
-41
lines changed

Marlin/Configuration.h

+6
Original file line numberDiff line numberDiff line change
@@ -2789,6 +2789,12 @@ G1 F200 E3 ;подать в экструдер 5мм филамента.
27892789
//
27902790
//#define DWIN_CREALITY_LCD
27912791

2792+
//
2793+
// MarlinUI for Creality's DWIN display (and others)
2794+
//
2795+
//#define DWIN_MARLINUI_PORTRAIT
2796+
//#define DWIN_MARLINUI_LANDSCAPE
2797+
27922798
//
27932799
// Touch Screen Settings
27942800
//

Marlin/Configuration_adv.h

+13-11
Original file line numberDiff line numberDiff line change
@@ -1302,7 +1302,7 @@
13021302

13031303
// LCD Print Progress options
13041304
#if EITHER(SDSUPPORT, LCD_SET_PROGRESS_MANUALLY)
1305-
#if ANY(HAS_MARLINUI_U8GLIB, EXTENSIBLE_UI, HAS_MARLINUI_HD44780, IS_TFTGLCD_PANEL)
1305+
#if ANY(HAS_MARLINUI_U8GLIB, EXTENSIBLE_UI, HAS_MARLINUI_HD44780, IS_TFTGLCD_PANEL, IS_DWIN_MARLINUI)
13061306
//#define SHOW_REMAINING_TIME // Display estimated time to completion
13071307
#if ENABLED(SHOW_REMAINING_TIME)
13081308
//#define USE_M73_REMAINING_TIME // Use remaining time from M73 command instead of estimation
@@ -1575,16 +1575,10 @@
15751575
* printing performance versus fast display updates.
15761576
*/
15771577
#if HAS_MARLINUI_U8GLIB
1578-
// Show SD percentage next to the progress bar
1579-
//#define SHOW_SD_PERCENT
1580-
15811578
// Save many cycles by drawing a hollow frame or no frame on the Info Screen
15821579
//#define XYZ_NO_FRAME
15831580
#define XYZ_HOLLOW_FRAME
15841581

1585-
// Enable to save many cycles by drawing a hollow frame on Menu Screens
1586-
#define MENU_HOLLOW_FRAME
1587-
15881582
// A bigger font is available for edit items. Costs 3120 bytes of PROGMEM.
15891583
// Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
15901584
//#define USE_BIG_EDIT_FONT
@@ -1593,9 +1587,6 @@
15931587
// Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
15941588
//#define USE_SMALL_INFOFONT
15951589

1596-
// Swap the CW/CCW indicators in the graphics overlay
1597-
//#define OVERLAY_GFX_REVERSE
1598-
15991590
/**
16001591
* ST7920-based LCDs can emulate a 16 x 4 character display using
16011592
* the ST7920 character-generator for very fast screen updates.
@@ -1647,6 +1638,17 @@
16471638

16481639
#endif // HAS_MARLINUI_U8GLIB
16491640

1641+
#if HAS_MARLINUI_U8GLIB || IS_DWIN_MARLINUI
1642+
// Show SD percentage next to the progress bar
1643+
//#define SHOW_SD_PERCENT
1644+
1645+
// Enable to save many cycles by drawing a hollow frame on Menu Screens
1646+
#define MENU_HOLLOW_FRAME
1647+
1648+
// Swap the CW/CCW indicators in the graphics overlay
1649+
//#define OVERLAY_GFX_REVERSE
1650+
#endif
1651+
16501652
//
16511653
// Additional options for DGUS / DWIN displays
16521654
//
@@ -1712,7 +1714,7 @@
17121714
//
17131715
// Specify additional languages for the UI. Default specified by LCD_LANGUAGE.
17141716
//
1715-
#if ANY(DOGLCD, TFT_COLOR_UI, TOUCH_UI_FTDI_EVE)
1717+
#if ANY(DOGLCD, TFT_COLOR_UI, TOUCH_UI_FTDI_EVE, IS_DWIN_MARLINUI)
17161718
//#define LCD_LANGUAGE_2 fr
17171719
//#define LCD_LANGUAGE_3 de
17181720
//#define LCD_LANGUAGE_4 es

Marlin/src/feature/pause.cpp

+2-2
Original file line numberDiff line numberDiff line change
@@ -238,8 +238,8 @@ bool load_filament(const_float_t slow_load_length/*=0*/, const_float_t fast_load
238238

239239
if (show_lcd) ui.pause_show_message(PAUSE_MESSAGE_PURGE);
240240

241-
TERN_(EXTENSIBLE_UI, ExtUI::onUserConfirmRequired_P(PSTR("Filament Purging...")));
242-
TERN_(HOST_PROMPT_SUPPORT, host_prompt_do(PROMPT_USER_CONTINUE, PSTR("Filament Purging..."), CONTINUE_STR));
241+
TERN_(EXTENSIBLE_UI, ExtUI::onUserConfirmRequired_P(GET_TEXT(MSG_FILAMENT_CHANGE_PURGE)));
242+
TERN_(HOST_PROMPT_SUPPORT, host_prompt_do(PROMPT_USER_CONTINUE, GET_TEXT(MSG_FILAMENT_CHANGE_PURGE), CONTINUE_STR));
243243
wait_for_user = true; // A click or M108 breaks the purge_length loop
244244
for (float purge_count = purge_length; purge_count > 0 && wait_for_user; --purge_count)
245245
unscaled_e_move(1, ADVANCED_PAUSE_PURGE_FEEDRATE);

Marlin/src/inc/Conditionals_LCD.h

+5-2
Original file line numberDiff line numberDiff line change
@@ -488,7 +488,10 @@
488488
#define HAS_MARLINUI_U8GLIB 1
489489
#elif IS_TFTGLCD_PANEL
490490
// Neither DOGM nor HD44780. Fully customized interface.
491-
#elif DISABLED(HAS_GRAPHICAL_TFT)
491+
#elif IS_DWIN_MARLINUI
492+
// Since HAS_MARLINUI_U8GLIB refers to U8G displays
493+
// the DWIN display can define its own flags
494+
#elif !HAS_GRAPHICAL_TFT
492495
#define HAS_MARLINUI_HD44780 1
493496
#endif
494497
#endif
@@ -1087,7 +1090,7 @@
10871090
#define HAS_ETHERNET 1
10881091
#endif
10891092

1090-
#if ENABLED(DWIN_CREALITY_LCD)
1093+
#if EITHER(DWIN_CREALITY_LCD, IS_DWIN_MARLINUI)
10911094
#define SERIAL_CATCHALL 0
10921095
#ifndef LCD_SERIAL_PORT
10931096
#if MB(BTT_SKR_MINI_E3_V1_0, BTT_SKR_MINI_E3_V1_2, BTT_SKR_MINI_E3_V2_0, BTT_SKR_E3_TURBO)

Marlin/src/inc/Conditionals_post.h

+5-1
Original file line numberDiff line numberDiff line change
@@ -461,7 +461,7 @@
461461

462462
#endif
463463

464-
#if ANY(HAS_GRAPHICAL_TFT, LCD_USE_DMA_FSMC, HAS_FSMC_GRAPHICAL_TFT, HAS_SPI_GRAPHICAL_TFT) || !PIN_EXISTS(SD_DETECT)
464+
#if ANY(HAS_GRAPHICAL_TFT, LCD_USE_DMA_FSMC, HAS_FSMC_GRAPHICAL_TFT, HAS_SPI_GRAPHICAL_TFT, IS_DWIN_MARLINUI) || !PIN_EXISTS(SD_DETECT)
465465
#define NO_LCD_REINIT 1 // Suppress LCD re-initialization
466466
#endif
467467

@@ -3258,13 +3258,17 @@
32583258
#ifndef LCD_WIDTH
32593259
#if HAS_MARLINUI_U8GLIB
32603260
#define LCD_WIDTH 21
3261+
#elif IS_DWIN_MARLINUI
3262+
// Defined by header
32613263
#else
32623264
#define LCD_WIDTH TERN(IS_ULTIPANEL, 20, 16)
32633265
#endif
32643266
#endif
32653267
#ifndef LCD_HEIGHT
32663268
#if HAS_MARLINUI_U8GLIB
32673269
#define LCD_HEIGHT 5
3270+
#elif IS_DWIN_MARLINUI
3271+
// Defined by header
32683272
#else
32693273
#define LCD_HEIGHT TERN(IS_ULTIPANEL, 4, 2)
32703274
#endif

Marlin/src/inc/SanityCheck.h

+4-3
Original file line numberDiff line numberDiff line change
@@ -798,8 +798,8 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
798798
#error "PROGRESS_MSG_EXPIRE must be greater than or equal to 0."
799799
#endif
800800
#elif ENABLED(LCD_SET_PROGRESS_MANUALLY)
801-
#if NONE(HAS_MARLINUI_U8GLIB, HAS_GRAPHICAL_TFT, HAS_MARLINUI_HD44780, EXTENSIBLE_UI)
802-
#error "LCD_SET_PROGRESS_MANUALLY requires LCD_PROGRESS_BAR, Character LCD, Graphical LCD, TFT, or EXTENSIBLE_UI."
801+
#if NONE(HAS_MARLINUI_U8GLIB, HAS_GRAPHICAL_TFT, HAS_MARLINUI_HD44780, EXTENSIBLE_UI, IS_DWIN_MARLINUI)
802+
#error "LCD_SET_PROGRESS_MANUALLY requires LCD_PROGRESS_BAR, Character LCD, Graphical LCD, TFT, EXTENSIBLE_UI, OR DWIN MarlinUI."
803803
#endif
804804
#endif
805805

@@ -1721,7 +1721,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
17211721
#endif
17221722
#endif
17231723

1724-
#if ENABLED(MESH_EDIT_GFX_OVERLAY) && !BOTH(AUTO_BED_LEVELING_UBL, HAS_MARLINUI_U8GLIB)
1724+
#if ENABLED(MESH_EDIT_GFX_OVERLAY) && !(ENABLED(AUTO_BED_LEVELING_UBL) && EITHER(HAS_MARLINUI_U8GLIB, IS_DWIN_MARLINUI))
17251725
#error "MESH_EDIT_GFX_OVERLAY requires AUTO_BED_LEVELING_UBL and a Graphical LCD."
17261726
#endif
17271727

@@ -2640,6 +2640,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
26402640
+ COUNT_ENABLED(ANYCUBIC_LCD_I3MEGA, ANYCUBIC_LCD_CHIRON, ANYCUBIC_TFT35) \
26412641
+ COUNT_ENABLED(DGUS_LCD_UI_ORIGIN, DGUS_LCD_UI_FYSETC, DGUS_LCD_UI_HIPRECY, DGUS_LCD_UI_MKS) \
26422642
+ COUNT_ENABLED(ENDER2_STOCKDISPLAY, CR10_STOCKDISPLAY, DWIN_CREALITY_LCD) \
2643+
+ COUNT_ENABLED(DWIN_MARLINUI_PORTRAIT, DWIN_MARLINUI_LANDSCAPE) \
26432644
+ COUNT_ENABLED(FYSETC_MINI_12864_X_X, FYSETC_MINI_12864_1_2, FYSETC_MINI_12864_2_0, FYSETC_MINI_12864_2_1, FYSETC_GENERIC_12864_1_1) \
26442645
+ COUNT_ENABLED(LCD_SAINSMART_I2C_1602, LCD_SAINSMART_I2C_2004) \
26452646
+ COUNT_ENABLED(MKS_12864OLED, MKS_12864OLED_SSD1306) \

0 commit comments

Comments
 (0)