Skip to content

Commit 4d7eefc

Browse files
Jyersmh-dm
authored andcommitted
✨ Ender-3 V2 with Jyers UI (MarlinFirmware#22422)
1 parent 56f03e0 commit 4d7eefc

29 files changed

+6575
-40
lines changed

Marlin/Configuration.h

+5
Original file line numberDiff line numberDiff line change
@@ -2756,6 +2756,11 @@
27562756
//
27572757
//#define DWIN_CREALITY_LCD
27582758

2759+
//
2760+
// Ender-3 v2 OEM display with enhancements by Jacob Myers
2761+
//
2762+
//#define DWIN_CREALITY_LCD_JYERSUI
2763+
27592764
//
27602765
// MarlinUI for Creality's DWIN display (and others)
27612766
//

Marlin/Configuration_adv.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -1196,7 +1196,7 @@
11961196

11971197
// @section lcd
11981198

1199-
#if EITHER(IS_ULTIPANEL, EXTENSIBLE_UI)
1199+
#if ANY(HAS_LCD_MENU, EXTENSIBLE_UI, HAS_DWIN_E3V2)
12001200
#define MANUAL_FEEDRATE { 50*60, 50*60, 4*60, 2*60 } // (mm/min) Feedrates for manual moves along X, Y, Z, E from panel
12011201
#define FINE_MANUAL_MOVE 0.025 // (mm) Smallest manual move (< 0.1mm) applying to Z on most machines
12021202
#if IS_ULTIPANEL

Marlin/src/MarlinCore.cpp

+3
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,9 @@
7777
#if ENABLED(DWIN_CREALITY_LCD)
7878
#include "lcd/e3v2/creality/dwin.h"
7979
#include "lcd/e3v2/creality/rotary_encoder.h"
80+
#elif ENABLED(DWIN_CREALITY_LCD_JYERSUI)
81+
#include "lcd/e3v2/jyersui/dwin.h"
82+
#include "lcd/e3v2/jyersui/rotary_encoder.h"
8083
#endif
8184

8285
#if ENABLED(EXTENSIBLE_UI)

Marlin/src/gcode/feature/powerloss/M1000.cpp

+4
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,8 @@
3030
#include "../../../lcd/marlinui.h"
3131
#if ENABLED(EXTENSIBLE_UI)
3232
#include "../../../lcd/extui/ui_api.h"
33+
#elif ENABLED(DWIN_CREALITY_LCD_JYERSUI)
34+
#include "../../../lcd/e3v2/jyersui/dwin.h" // Temporary fix until it can be better implemented
3335
#endif
3436

3537
#define DEBUG_OUT ENABLED(DEBUG_POWER_LOSS_RECOVERY)
@@ -64,6 +66,8 @@ void GcodeSuite::M1000() {
6466
ui.goto_screen(menu_job_recovery);
6567
#elif ENABLED(DWIN_CREALITY_LCD)
6668
recovery.dwin_flag = true;
69+
#elif ENABLED(DWIN_CREALITY_LCD_JYERSUI) // Temporary fix until it can be better implemented
70+
CrealityDWIN.Popup_Handler(Resume);
6771
#elif ENABLED(EXTENSIBLE_UI)
6872
ExtUI::onPowerLossResume();
6973
#else

Marlin/src/inc/Conditionals_LCD.h

+7-3
Original file line numberDiff line numberDiff line change
@@ -493,6 +493,10 @@
493493
#endif
494494

495495
// Aliases for LCD features
496+
#if ANY(DWIN_CREALITY_LCD, DWIN_CREALITY_LCD_JYERSUI)
497+
#define HAS_DWIN_E3V2 1
498+
#endif
499+
496500
#if IS_ULTRA_LCD
497501
#define HAS_WIRED_LCD 1
498502
#if ENABLED(DOGLCD)
@@ -507,11 +511,11 @@
507511
#endif
508512
#endif
509513

510-
#if EITHER(HAS_WIRED_LCD, EXTENSIBLE_UI)
514+
#if ANY(HAS_WIRED_LCD, EXTENSIBLE_UI, DWIN_CREALITY_LCD_JYERSUI)
511515
#define HAS_DISPLAY 1
512516
#endif
513517

514-
#if ANY(HAS_DISPLAY, DWIN_CREALITY_LCD, GLOBAL_STATUS_MESSAGE)
518+
#if ANY(HAS_DISPLAY, HAS_DWIN_E3V2, GLOBAL_STATUS_MESSAGE)
515519
#define HAS_STATUS_MESSAGE 1
516520
#endif
517521

@@ -1101,7 +1105,7 @@
11011105
#define HAS_ETHERNET 1
11021106
#endif
11031107

1104-
#if EITHER(DWIN_CREALITY_LCD, IS_DWIN_MARLINUI)
1108+
#if EITHER(HAS_DWIN_E3V2, IS_DWIN_MARLINUI)
11051109
#define SERIAL_CATCHALL 0
11061110
#ifndef LCD_SERIAL_PORT
11071111
#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_adv.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -594,7 +594,7 @@
594594
#if EITHER(MIN_SOFTWARE_ENDSTOPS, MAX_SOFTWARE_ENDSTOPS)
595595
#define HAS_SOFTWARE_ENDSTOPS 1
596596
#endif
597-
#if ANY(EXTENSIBLE_UI, IS_NEWPANEL, EMERGENCY_PARSER, HAS_ADC_BUTTONS, DWIN_CREALITY_LCD)
597+
#if ANY(EXTENSIBLE_UI, IS_NEWPANEL, EMERGENCY_PARSER, HAS_ADC_BUTTONS, HAS_DWIN_E3V2)
598598
#define HAS_RESUME_CONTINUE 1
599599
#endif
600600

Marlin/src/inc/Conditionals_post.h

+7-3
Original file line numberDiff line numberDiff line change
@@ -421,6 +421,10 @@
421421
#endif
422422
#endif
423423

424+
#if ENABLED(DWIN_CREALITY_LCD_JYERSUI)
425+
#define HAS_LCD_BRIGHTNESS 1
426+
#endif
427+
424428
/**
425429
* Override the SD_DETECT_STATE set in Configuration_adv.h
426430
* and enable sharing of onboard SD host drives (all platforms but AGCM4)
@@ -2828,7 +2832,7 @@
28282832
#define HAS_TEMPERATURE 1
28292833
#endif
28302834

2831-
#if HAS_TEMPERATURE && EITHER(HAS_LCD_MENU, DWIN_CREALITY_LCD)
2835+
#if HAS_TEMPERATURE && EITHER(HAS_LCD_MENU, HAS_DWIN_E3V2)
28322836
#ifdef PREHEAT_6_LABEL
28332837
#define PREHEAT_COUNT 6
28342838
#elif defined(PREHEAT_5_LABEL)
@@ -2949,7 +2953,7 @@
29492953
* Advanced Pause - Filament Change
29502954
*/
29512955
#if ENABLED(ADVANCED_PAUSE_FEATURE)
2952-
#if EITHER(HAS_LCD_MENU, EXTENSIBLE_UI) || BOTH(EMERGENCY_PARSER, HOST_PROMPT_SUPPORT)
2956+
#if ANY(HAS_LCD_MENU, EXTENSIBLE_UI, DWIN_CREALITY_LCD_JYERSUI) || BOTH(EMERGENCY_PARSER, HOST_PROMPT_SUPPORT)
29532957
#define M600_PURGE_MORE_RESUMABLE 1
29542958
#endif
29552959
#ifndef FILAMENT_CHANGE_SLOW_LOAD_LENGTH
@@ -3205,7 +3209,7 @@
32053209
#endif
32063210

32073211
// Number of VFAT entries used. Each entry has 13 UTF-16 characters
3208-
#if EITHER(SCROLL_LONG_FILENAMES, DWIN_CREALITY_LCD)
3212+
#if EITHER(SCROLL_LONG_FILENAMES, HAS_DWIN_E3V2)
32093213
#define MAX_VFAT_ENTRIES (5)
32103214
#else
32113215
#define MAX_VFAT_ENTRIES (2)

Marlin/src/inc/SanityCheck.h

+3-5
Original file line numberDiff line numberDiff line change
@@ -807,10 +807,8 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
807807
#elif PROGRESS_MSG_EXPIRE < 0
808808
#error "PROGRESS_MSG_EXPIRE must be greater than or equal to 0."
809809
#endif
810-
#elif ENABLED(LCD_SET_PROGRESS_MANUALLY)
811-
#if NONE(HAS_MARLINUI_U8GLIB, HAS_GRAPHICAL_TFT, HAS_MARLINUI_HD44780, EXTENSIBLE_UI, IS_DWIN_MARLINUI)
812-
#error "LCD_SET_PROGRESS_MANUALLY requires LCD_PROGRESS_BAR, Character LCD, Graphical LCD, TFT, EXTENSIBLE_UI, OR DWIN MarlinUI."
813-
#endif
810+
#elif ENABLED(LCD_SET_PROGRESS_MANUALLY) && NONE(HAS_MARLINUI_U8GLIB, HAS_GRAPHICAL_TFT, HAS_MARLINUI_HD44780, EXTENSIBLE_UI, HAS_DWIN_E3V2, IS_DWIN_MARLINUI)
811+
#error "LCD_SET_PROGRESS_MANUALLY requires LCD_PROGRESS_BAR, Character LCD, Graphical LCD, TFT, DWIN_CREALITY_LCD, DWIN_CREALITY_LCD_JYERSUI, DWIN_MARLINUI_*, or EXTENSIBLE_UI."
814812
#endif
815813

816814
#if ENABLED(USE_M73_REMAINING_TIME) && DISABLED(LCD_SET_PROGRESS_MANUALLY)
@@ -2657,7 +2655,7 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
26572655
+ COUNT_ENABLED(ANYCUBIC_LCD_I3MEGA, ANYCUBIC_LCD_CHIRON, ANYCUBIC_TFT35) \
26582656
+ COUNT_ENABLED(DGUS_LCD_UI_ORIGIN, DGUS_LCD_UI_FYSETC, DGUS_LCD_UI_HIPRECY, DGUS_LCD_UI_MKS, DGUS_LCD_UI_RELOADED) \
26592657
+ COUNT_ENABLED(ENDER2_STOCKDISPLAY, CR10_STOCKDISPLAY) \
2660-
+ COUNT_ENABLED(DWIN_CREALITY_LCD, DWIN_MARLINUI_PORTRAIT, DWIN_MARLINUI_LANDSCAPE) \
2658+
+ COUNT_ENABLED(DWIN_CREALITY_LCD, DWIN_CREALITY_LCD_JYERSUI, DWIN_MARLINUI_PORTRAIT, DWIN_MARLINUI_LANDSCAPE) \
26612659
+ 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) \
26622660
+ COUNT_ENABLED(LCD_SAINSMART_I2C_1602, LCD_SAINSMART_I2C_2004) \
26632661
+ COUNT_ENABLED(MKS_12864OLED, MKS_12864OLED_SSD1306) \

Marlin/src/lcd/buttons.h

+1-1
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@
7575
#endif
7676
#endif
7777

78-
#if EITHER(HAS_DIGITAL_BUTTONS, DWIN_CREALITY_LCD)
78+
#if EITHER(HAS_DIGITAL_BUTTONS, HAS_DWIN_E3V2)
7979
// Wheel spin pins where BA is 00, 10, 11, 01 (1 bit always changes)
8080
#define BLEN_A 0
8181
#define BLEN_B 1

Marlin/src/lcd/e3v2/creality/rotary_encoder.cpp

+7-2
Original file line numberDiff line numberDiff line change
@@ -122,8 +122,13 @@ ENCODER_DiffState Encoder_ReceiveAnalyze() {
122122
}
123123

124124
if (ABS(temp_diff) >= ENCODER_PULSES_PER_STEP) {
125-
if (temp_diff > 0) temp_diffState = ENCODER_DIFF_CW;
126-
else temp_diffState = ENCODER_DIFF_CCW;
125+
#if ENABLED(REVERSE_ENCODER_DIRECTION)
126+
if (temp_diff > 0) temp_diffState = ENCODER_DIFF_CCW;
127+
else temp_diffState = ENCODER_DIFF_CW;
128+
#else
129+
if (temp_diff > 0) temp_diffState = ENCODER_DIFF_CW;
130+
else temp_diffState = ENCODER_DIFF_CCW;
131+
#endif
127132

128133
#if ENABLED(ENCODER_RATE_MULTIPLIER)
129134

Marlin/src/lcd/e3v2/jyersui/README.md

+7
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
# DWIN for Creality Ender 3 v2
2+
3+
Marlin's Ender 3 v2 support requires the `DWIN_SET` included with the Ender 3 V2 [example configuration](https://github.com/MarlinFirmware/Configurations/tree/bugfix-2.0.x/config/examples/Creality/Ender-3%20V2).
4+
5+
## Easy Install
6+
7+
Copy the `DWIN_SET` folder onto a Micro-SD card and insert the card into the slot on the DWIN screen. Cycle the machine and wait for the screen to go from blue to orange. Turn the machine off and remove the SD card. When you turn on the machine the screen will display a "Creality" loading screen.

0 commit comments

Comments
 (0)