Skip to content

Commit 313716e

Browse files
blazewiczthinkyhead
authored andcommitted
✨ JyersUI TMC Settings (MarlinFirmware#25048)
1 parent 7265559 commit 313716e

File tree

2 files changed

+117
-7
lines changed

2 files changed

+117
-7
lines changed

Marlin/src/lcd/e3v2/jyersui/dwin.cpp

Lines changed: 114 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,13 @@
8080
#include "../../../feature/powerloss.h"
8181
#endif
8282

83+
#if HAS_TRINAMIC_CONFIG
84+
#include "../../../module/stepper/trinamic.h"
85+
86+
#define TMC_MIN_CURRENT 400
87+
#define TMC_MAX_CURRENT 1500
88+
#endif
89+
8390
#define MACHINE_SIZE STRINGIFY(X_BED_SIZE) "x" STRINGIFY(Y_BED_SIZE) "x" STRINGIFY(Z_MAX_POS)
8491

8592
#define DWIN_FONT_MENU font8x16
@@ -2295,7 +2302,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
22952302
Draw_Float(planner.flow_percentage[0], row, false, 1);
22962303
}
22972304
else
2298-
Modify_Value(planner.flow_percentage[0], MIN_FLOW_RATE, MAX_FLOW_RATE, 1);
2305+
Modify_Value(planner.flow_percentage[0], MIN_FLOW_RATE, MAX_FLOW_RATE, 1, []{ planner.refresh_e_factor(0); });
22992306
break;
23002307
#endif
23012308
}
@@ -2720,7 +2727,8 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
27202727
#define ADVANCED_BACK 0
27212728
#define ADVANCED_BEEPER (ADVANCED_BACK + ENABLED(SOUND_MENU_ITEM))
27222729
#define ADVANCED_PROBE (ADVANCED_BEEPER + ENABLED(HAS_BED_PROBE))
2723-
#define ADVANCED_CORNER (ADVANCED_PROBE + 1)
2730+
#define ADVANCED_TMC (ADVANCED_PROBE + ENABLED(HAS_TRINAMIC_CONFIG))
2731+
#define ADVANCED_CORNER (ADVANCED_TMC + 1)
27242732
#define ADVANCED_LA (ADVANCED_CORNER + ENABLED(LIN_ADVANCE))
27252733
#define ADVANCED_LOAD (ADVANCED_LA + ENABLED(ADVANCED_PAUSE_FEATURE))
27262734
#define ADVANCED_UNLOAD (ADVANCED_LOAD + ENABLED(ADVANCED_PAUSE_FEATURE))
@@ -2760,6 +2768,15 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
27602768
break;
27612769
#endif
27622770

2771+
#if HAS_TRINAMIC_CONFIG
2772+
case ADVANCED_TMC:
2773+
if (draw)
2774+
Draw_Menu_Item(row, ICON_Motion, F("TMC Drivers"), nullptr, true);
2775+
else
2776+
Draw_Menu(TMCMenu);
2777+
break;
2778+
#endif
2779+
27632780
case ADVANCED_CORNER:
27642781
if (draw) {
27652782
Draw_Menu_Item(row, ICON_MaxAccelerated, F("Bed Screw Inset"));
@@ -2905,7 +2922,93 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
29052922
break;
29062923
}
29072924
break;
2908-
#endif
2925+
#endif // HAS_PROBE_MENU
2926+
2927+
#if HAS_TRINAMIC_CONFIG
2928+
case TMCMenu:
2929+
2930+
#define TMC_BACK 0
2931+
#define TMC_STEPPER_CURRENT_X (TMC_BACK + AXIS_IS_TMC(X))
2932+
#define TMC_STEPPER_CURRENT_Y (TMC_STEPPER_CURRENT_X + AXIS_IS_TMC(Y))
2933+
#define TMC_STEPPER_CURRENT_Z (TMC_STEPPER_CURRENT_Y + AXIS_IS_TMC(Z))
2934+
#define TMC_STEPPER_CURRENT_E (TMC_STEPPER_CURRENT_Z + AXIS_IS_TMC(E0))
2935+
#define TMC_TOTAL TMC_STEPPER_CURRENT_E
2936+
2937+
switch (item) {
2938+
2939+
case TMC_BACK:
2940+
if (draw)
2941+
Draw_Menu_Item(row, ICON_Back, F("Back"));
2942+
else
2943+
Draw_Menu(Advanced, ADVANCED_TMC);
2944+
break;
2945+
2946+
#if AXIS_IS_TMC(X)
2947+
case TMC_STEPPER_CURRENT_X:
2948+
2949+
static float stepper_current_x;
2950+
2951+
if (draw) {
2952+
Draw_Menu_Item(row, ICON_StepX, F("Stepper X current"));
2953+
stepper_current_x = stepperX.getMilliamps();
2954+
Draw_Float(stepper_current_x, row, false, 1);
2955+
}
2956+
else {
2957+
Modify_Value(stepper_current_x, TMC_MIN_CURRENT, TMC_MAX_CURRENT, 1, []{ stepperX.rms_current(stepper_current_x); });
2958+
}
2959+
break;
2960+
#endif
2961+
2962+
#if AXIS_IS_TMC(Y)
2963+
case TMC_STEPPER_CURRENT_Y:
2964+
2965+
static float stepper_current_y;
2966+
2967+
if (draw) {
2968+
Draw_Menu_Item(row, ICON_StepY, F("Stepper Y current"));
2969+
stepper_current_y = stepperY.getMilliamps();
2970+
Draw_Float(stepper_current_y, row, false, 1);
2971+
}
2972+
else {
2973+
Modify_Value(stepper_current_y, TMC_MIN_CURRENT, TMC_MAX_CURRENT, 1, []{ stepperY.rms_current(stepper_current_y); });
2974+
}
2975+
break;
2976+
#endif
2977+
2978+
#if AXIS_IS_TMC(Z)
2979+
case TMC_STEPPER_CURRENT_Z:
2980+
2981+
static float stepper_current_z;
2982+
2983+
if (draw) {
2984+
Draw_Menu_Item(row, ICON_StepZ, F("Stepper Z current"));
2985+
stepper_current_z = stepperZ.getMilliamps();
2986+
Draw_Float(stepper_current_z, row, false, 1);
2987+
}
2988+
else {
2989+
Modify_Value(stepper_current_z, TMC_MIN_CURRENT, TMC_MAX_CURRENT, 1, []{ stepperZ.rms_current(stepper_current_z); });
2990+
}
2991+
break;
2992+
#endif
2993+
2994+
#if AXIS_IS_TMC(E0)
2995+
case TMC_STEPPER_CURRENT_E:
2996+
2997+
static float stepper_current_e;
2998+
2999+
if (draw) {
3000+
Draw_Menu_Item(row, ICON_StepE, F("Stepper E current"));
3001+
stepper_current_e = stepperE0.getMilliamps();
3002+
Draw_Float(stepper_current_e, row, false, 1);
3003+
}
3004+
else {
3005+
Modify_Value(stepper_current_e, TMC_MIN_CURRENT, TMC_MAX_CURRENT, 1, []{ stepperE0.rms_current(stepper_current_e); });
3006+
}
3007+
break;
3008+
#endif
3009+
};
3010+
break;
3011+
#endif // HAS_TRINAMIC_CONFIG
29093012

29103013
case InfoMain:
29113014
case Info:
@@ -3637,7 +3740,7 @@ void CrealityDWINClass::Menu_Item_Handler(uint8_t menu, uint8_t item, bool draw/
36373740
Draw_Float(planner.flow_percentage[0], row, false, 1);
36383741
}
36393742
else
3640-
Modify_Value(planner.flow_percentage[0], MIN_FLOW_RATE, MAX_FLOW_RATE, 1);
3743+
Modify_Value(planner.flow_percentage[0], MIN_FLOW_RATE, MAX_FLOW_RATE, 1, []{ planner.refresh_e_factor(0); });
36413744
break;
36423745
case TUNE_HOTEND:
36433746
if (draw) {
@@ -3879,7 +3982,10 @@ FSTR_P CrealityDWINClass::Get_Menu_Title(uint8_t menu) {
38793982
case Visual: return F("Visual Settings");
38803983
case Advanced: return F("Advanced Settings");
38813984
#if HAS_BED_PROBE
3882-
case ProbeMenu: return F("Probe Menu");
3985+
case ProbeMenu: return F("Bed Probe");
3986+
#endif
3987+
#if HAS_TRINAMIC_CONFIG
3988+
case TMCMenu: return F("TMC Drivers");
38833989
#endif
38843990
case ColorSettings: return F("UI Color Settings");
38853991
case Info: return F("Info");
@@ -3949,6 +4055,9 @@ uint8_t CrealityDWINClass::Get_Menu_Size(uint8_t menu) {
39494055
#if HAS_BED_PROBE
39504056
case ProbeMenu: return PROBE_TOTAL;
39514057
#endif
4058+
#if HAS_TRINAMIC_CONFIG
4059+
case TMCMenu: return TMC_TOTAL;
4060+
#endif
39524061
case Info: return INFO_TOTAL;
39534062
case InfoMain: return INFO_TOTAL;
39544063
#if ENABLED(AUTO_BED_LEVELING_UBL) && !HAS_BED_PROBE
@@ -4117,8 +4226,6 @@ void CrealityDWINClass::Value_Control() {
41174226
case LevelManual: mesh_conf.manual_mesh_move(selection == LEVELING_M_OFFSET); break;
41184227
#endif
41194228
}
4120-
if (valuepointer == &planner.flow_percentage[0])
4121-
planner.refresh_e_factor(0);
41224229
if (funcpointer) funcpointer();
41234230
return;
41244231
}

Marlin/src/lcd/e3v2/jyersui/dwin.h

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,9 @@ enum menuID : uint8_t {
7575
ColorSettings,
7676
Advanced,
7777
ProbeMenu,
78+
#if HAS_TRINAMIC_CONFIG
79+
TMCMenu,
80+
#endif
7881
Info,
7982
Leveling,
8083
LevelManual,

0 commit comments

Comments
 (0)