Skip to content

Commit 2a36922

Browse files
committed
Add hybrid threshold and TMC icon hide for stock board #189
1 parent 18f0fe6 commit 2a36922

File tree

6 files changed

+70
-0
lines changed

6 files changed

+70
-0
lines changed

Marlin/src/lcd/extui/lib/dgus_creality/DGUSScreenHandler.cpp

+11
Original file line numberDiff line numberDiff line change
@@ -69,6 +69,7 @@ uint8_t DGUSScreenHandler::MeshLevelIndex = -1;
6969
uint8_t DGUSScreenHandler::MeshLevelIconIndex = -1;
7070
float DGUSScreenHandler::feed_amount = 100;
7171
bool DGUSScreenHandler::fwretract_available = TERN(FWRETRACT, true, false);
72+
bool DGUSScreenHandler::hide_section = false;
7273

7374
static_assert(GRID_MAX_POINTS_X == GRID_MAX_POINTS_Y, "Assuming bed leveling points is square");
7475

@@ -331,6 +332,14 @@ void DGUSScreenHandler::DGUSLCD_SendStringToDisplayPGM(DGUS_VP_Variable &var) {
331332
dgusdisplay.WriteVariablePGM(var.VP, tmp, var.size, true);
332333
}
333334

335+
void DGUSScreenHandler::HideSection() {
336+
hide_section = true;
337+
}
338+
339+
void DGUSScreenHandler::ResetHideSection() {
340+
hide_section = false;
341+
}
342+
334343
#if HAS_PID_HEATING
335344
void DGUSScreenHandler::DGUSLCD_SendTemperaturePID(DGUS_VP_Variable &var) {
336345
float value = *(float *)var.memadr;
@@ -1439,6 +1448,8 @@ void DGUSScreenHandler::UpdateNewScreen(DGUSLCD_Screens newscreen, bool save_cur
14391448
void DGUSScreenHandler::PopToOldScreen() {
14401449
DEBUG_ECHOLNPAIR("PopToOldScreen s=", past_screens[0]);
14411450

1451+
ResetHideSection();
1452+
14421453
if(past_screens[0] != 0) {
14431454
GotoScreen(past_screens[0], false);
14441455
memmove(&past_screens[0], &past_screens[1], sizeof(past_screens) - 1);

Marlin/src/lcd/extui/lib/dgus_creality/DGUSScreenHandler.h

+4
Original file line numberDiff line numberDiff line change
@@ -351,8 +351,12 @@ class DGUSScreenHandler {
351351
static void SetSynchronousOperationFinish();
352352
static void SendBusyState(DGUS_VP_Variable &var);
353353

354+
static void HideSection();
355+
static void ResetHideSection();
356+
354357
static float feed_amount;
355358
static bool fwretract_available;
359+
static bool hide_section;
356360

357361
private:
358362
static void HandleScreenVersionMismatchLEDFlash();

Marlin/src/lcd/extui/lib/dgus_creality/creality_touch/AxisSettingsHandler.cpp

+41
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,7 @@ feedRate_t AxisSettingsHandler::max_feedrate;
3232

3333
uint16_t AxisSettingsHandler::tmc_current;
3434
bool AxisSettingsHandler::stealthchop;
35+
uint32_t AxisSettingsHandler::hybrid_threshold;
3536

3637
void AxisSettingsHandler::HandleNavigation(DGUS_VP_Variable &var, void *val_ptr) {
3738
switch (uInt16Value(val_ptr)) {
@@ -72,6 +73,10 @@ void AxisSettingsHandler::HandleNavigation(DGUS_VP_Variable &var, void *val_ptr)
7273

7374
#if AXIS_HAS_STEALTHCHOP(X)
7475
stealthchop = stepperX.get_stored_stealthChop();
76+
77+
#if ENABLED(HYBRID_THRESHOLD)
78+
hybrid_threshold = stepperX.get_pwm_thrs();
79+
#endif
7580
#endif
7681
break;
7782
#endif
@@ -82,6 +87,10 @@ void AxisSettingsHandler::HandleNavigation(DGUS_VP_Variable &var, void *val_ptr)
8287

8388
#if AXIS_HAS_STEALTHCHOP(Y)
8489
stealthchop = stepperY.get_stored_stealthChop();
90+
91+
#if ENABLED(HYBRID_THRESHOLD)
92+
hybrid_threshold = stepperY.get_pwm_thrs();
93+
#endif
8594
#endif
8695
break;
8796
#endif
@@ -92,6 +101,10 @@ void AxisSettingsHandler::HandleNavigation(DGUS_VP_Variable &var, void *val_ptr)
92101

93102
#if AXIS_HAS_STEALTHCHOP(Z)
94103
stealthchop = stepperZ.get_stored_stealthChop();
104+
105+
#if ENABLED(HYBRID_THRESHOLD)
106+
hybrid_threshold = stepperZ.get_pwm_thrs();
107+
#endif
95108
#endif
96109
break;
97110
#endif
@@ -102,11 +115,23 @@ void AxisSettingsHandler::HandleNavigation(DGUS_VP_Variable &var, void *val_ptr)
102115

103116
#if AXIS_HAS_STEALTHCHOP(E0)
104117
stealthchop = stepperE0.get_stored_stealthChop();
118+
119+
#if ENABLED(HYBRID_THRESHOLD)
120+
hybrid_threshold = stepperE0.get_pwm_thrs();
121+
#endif
105122
#endif
106123
break;
107124
#endif
108125
}
109126
#endif
127+
128+
// Hide TMC settings if not supported
129+
#ifndef HAS_TRINAMIC_CONFIG
130+
ScreenHandler.HideSection();
131+
#endif
132+
133+
// Nav
134+
ScreenHandler.GotoScreen(DGUSLCD_SCREEN_AXIS_SETTINGS_NAV);
110135
}
111136

112137
void AxisSettingsHandler::HandleBackNavigation(DGUS_VP_Variable &var, void *val_ptr) {
@@ -124,6 +149,10 @@ void AxisSettingsHandler::HandleBackNavigation(DGUS_VP_Variable &var, void *val_
124149

125150
#if AXIS_HAS_STEALTHCHOP(X)
126151
stepperX.set_stealthChop(stealthchop);
152+
153+
#if ENABLED(HYBRID_THRESHOLD)
154+
stepperX.set_pwm_thrs(hybrid_threshold);
155+
#endif
127156
#endif
128157
break;
129158
#endif
@@ -134,6 +163,10 @@ void AxisSettingsHandler::HandleBackNavigation(DGUS_VP_Variable &var, void *val_
134163

135164
#if AXIS_HAS_STEALTHCHOP(Y)
136165
stepperY.set_stealthChop(stealthchop);
166+
167+
#if ENABLED(HYBRID_THRESHOLD)
168+
stepperY.set_pwm_thrs(hybrid_threshold);
169+
#endif
137170
#endif
138171
break;
139172
#endif
@@ -144,6 +177,10 @@ void AxisSettingsHandler::HandleBackNavigation(DGUS_VP_Variable &var, void *val_
144177

145178
#if AXIS_HAS_STEALTHCHOP(Z)
146179
stepperZ.set_stealthChop(stealthchop);
180+
181+
#if ENABLED(HYBRID_THRESHOLD)
182+
stepperZ.set_pwm_thrs(hybrid_threshold);
183+
#endif
147184
#endif
148185
break;
149186
#endif
@@ -154,6 +191,10 @@ void AxisSettingsHandler::HandleBackNavigation(DGUS_VP_Variable &var, void *val_
154191

155192
#if AXIS_HAS_STEALTHCHOP(E0)
156193
stepperE0.set_stealthChop(stealthchop);
194+
195+
#if ENABLED(HYBRID_THRESHOLD)
196+
stepperE0.set_pwm_thrs(hybrid_threshold);
197+
#endif
157198
#endif
158199
break;
159200
#endif

Marlin/src/lcd/extui/lib/dgus_creality/creality_touch/AxisSettingsHandler.h

+1
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ class AxisSettingsHandler {
1515

1616
static uint16_t tmc_current;
1717
static bool stealthchop;
18+
static uint32_t hybrid_threshold;
1819

1920
public:
2021
static void HandleNavigation(DGUS_VP_Variable &var, void *val_ptr);

Marlin/src/lcd/extui/lib/dgus_creality/creality_touch/DGUSDisplayDef.cpp

+6
Original file line numberDiff line numberDiff line change
@@ -302,6 +302,9 @@ const uint16_t VPList_AxisSettingsAxis[] PROGMEM = {
302302

303303
VP_AXIS_SETTINGS_AXIS_TMCCURRENT,
304304
VP_AXIS_SETTINGS_AXIS_TMCSTEALTHCHOP_ICON,
305+
VP_AXIS_SETTINGS_AXIS_TMCHYBRIDTHRESHOLD,
306+
307+
VP_HIDE_ICON,
305308

306309
0x0000
307310
};
@@ -439,6 +442,9 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
439442
VPHELPER(VP_AXIS_SETTINGS_AXIS_TMCCURRENT, &AxisSettingsHandler::tmc_current, ScreenHandler.DGUSLCD_SetValueDirectly<uint16_t>, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
440443
VPHELPER(VP_AXIS_SETTINGS_AXIS_TMCSTEALTHCHOP_BUTTON, &AxisSettingsHandler::stealthchop, ScreenHandler.DGUSLCD_ToggleBoolean, nullptr),
441444
VPHELPER(VP_AXIS_SETTINGS_AXIS_TMCSTEALTHCHOP_ICON, &AxisSettingsHandler::stealthchop, nullptr, (ScreenHandler.DGUSLCD_SendIconValue<ICON_TOGGLE_ON, ICON_TOGGLE_OFF>)),
445+
VPHELPER(VP_AXIS_SETTINGS_AXIS_TMCHYBRIDTHRESHOLD, &AxisSettingsHandler::hybrid_threshold, ScreenHandler.DGUSLCD_ReceiveUint32LongFromDisplay, ScreenHandler.DGUSLCD_SendUint32LongToDisplay),
446+
447+
VPHELPER(VP_HIDE_ICON, &ScreenHandler.hide_section, nullptr, (ScreenHandler.DGUSLCD_SendIconValue<HIDE_ICON_HIDING, HIDE_ICON_SHOWING>)),
442448

443449
VPHELPER(VP_AXIS_SETTINGS_NAV_BACKBUTTON, nullptr, AxisSettingsHandler::HandleBackNavigation, nullptr),
444450

Marlin/src/lcd/extui/lib/dgus_creality/creality_touch/DGUSDisplayDef.h

+7
Original file line numberDiff line numberDiff line change
@@ -317,6 +317,13 @@ constexpr uint16_t VP_AXIS_SETTINGS_AXIS_TMCCURRENT = 0x22E9; // 2-byte
317317

318318
constexpr uint16_t VP_AXIS_SETTINGS_AXIS_TMCSTEALTHCHOP_BUTTON = 0x22EB; // 2-byte
319319
constexpr uint16_t VP_AXIS_SETTINGS_AXIS_TMCSTEALTHCHOP_ICON = 0x22ED; // 2-byte
320+
constexpr uint16_t VP_AXIS_SETTINGS_AXIS_TMCHYBRIDTHRESHOLD = 0x22EF; // 4-byte (!)
321+
322+
// Generic "hide" icon shared across screens
323+
constexpr uint16_t VP_HIDE_ICON = 0x22F3; // 2-byte (!)
324+
325+
constexpr uint16_t HIDE_ICON_SHOWING = 10;
326+
constexpr uint16_t HIDE_ICON_HIDING = 11;
320327

321328

322329
// Mesh leveling

0 commit comments

Comments
 (0)