Skip to content

Commit 18f0fe6

Browse files
committed
Add TMC stepper stealthchop setting #189
1 parent ee80b3e commit 18f0fe6

File tree

4 files changed

+40
-0
lines changed

4 files changed

+40
-0
lines changed

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

+33
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@ float AxisSettingsHandler::jerk;
3131
feedRate_t AxisSettingsHandler::max_feedrate;
3232

3333
uint16_t AxisSettingsHandler::tmc_current;
34+
bool AxisSettingsHandler::stealthchop;
3435

3536
void AxisSettingsHandler::HandleNavigation(DGUS_VP_Variable &var, void *val_ptr) {
3637
switch (uInt16Value(val_ptr)) {
@@ -68,24 +69,40 @@ void AxisSettingsHandler::HandleNavigation(DGUS_VP_Variable &var, void *val_ptr)
6869
#if AXIS_IS_TMC(X)
6970
case X_AXIS:
7071
tmc_current = stepperX.getMilliamps();
72+
73+
#if AXIS_HAS_STEALTHCHOP(X)
74+
stealthchop = stepperX.get_stored_stealthChop();
75+
#endif
7176
break;
7277
#endif
7378

7479
#if AXIS_IS_TMC(Y)
7580
case Y_AXIS:
7681
tmc_current = stepperY.getMilliamps();
82+
83+
#if AXIS_HAS_STEALTHCHOP(Y)
84+
stealthchop = stepperY.get_stored_stealthChop();
85+
#endif
7786
break;
7887
#endif
7988

8089
#if AXIS_IS_TMC(Z)
8190
case Z_AXIS:
8291
tmc_current = stepperZ.getMilliamps();
92+
93+
#if AXIS_HAS_STEALTHCHOP(Z)
94+
stealthchop = stepperZ.get_stored_stealthChop();
95+
#endif
8396
break;
8497
#endif
8598

8699
#if AXIS_IS_TMC(E0)
87100
case E_AXIS:
88101
tmc_current = stepperE0.getMilliamps();
102+
103+
#if AXIS_HAS_STEALTHCHOP(E0)
104+
stealthchop = stepperE0.get_stored_stealthChop();
105+
#endif
89106
break;
90107
#endif
91108
}
@@ -104,24 +121,40 @@ void AxisSettingsHandler::HandleBackNavigation(DGUS_VP_Variable &var, void *val_
104121
#if AXIS_IS_TMC(X)
105122
case X_AXIS:
106123
stepperX.rms_current(tmc_current);
124+
125+
#if AXIS_HAS_STEALTHCHOP(X)
126+
stepperX.set_stealthChop(stealthchop);
127+
#endif
107128
break;
108129
#endif
109130

110131
#if AXIS_IS_TMC(Y)
111132
case Y_AXIS:
112133
stepperY.rms_current(tmc_current);
134+
135+
#if AXIS_HAS_STEALTHCHOP(Y)
136+
stepperY.set_stealthChop(stealthchop);
137+
#endif
113138
break;
114139
#endif
115140

116141
#if AXIS_IS_TMC(Z)
117142
case Z_AXIS:
118143
stepperZ.rms_current(tmc_current);
144+
145+
#if AXIS_HAS_STEALTHCHOP(Z)
146+
stepperZ.set_stealthChop(stealthchop);
147+
#endif
119148
break;
120149
#endif
121150

122151
#if AXIS_IS_TMC(E0)
123152
case E_AXIS:
124153
stepperE0.rms_current(tmc_current);
154+
155+
#if AXIS_HAS_STEALTHCHOP(E0)
156+
stepperE0.set_stealthChop(stealthchop);
157+
#endif
125158
break;
126159
#endif
127160
}

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

+1
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ class AxisSettingsHandler {
1414
static feedRate_t max_feedrate;
1515

1616
static uint16_t tmc_current;
17+
static bool stealthchop;
1718

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

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

+3
Original file line numberDiff line numberDiff line change
@@ -301,6 +301,7 @@ const uint16_t VPList_AxisSettingsAxis[] PROGMEM = {
301301
VP_AXIS_SETTINGS_AXIS_FEEDRATE,
302302

303303
VP_AXIS_SETTINGS_AXIS_TMCCURRENT,
304+
VP_AXIS_SETTINGS_AXIS_TMCSTEALTHCHOP_ICON,
304305

305306
0x0000
306307
};
@@ -436,6 +437,8 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
436437
VPHELPER(VP_AXIS_SETTINGS_AXIS_FEEDRATE, &AxisSettingsHandler::max_feedrate, ScreenHandler.DGUSLCD_SetFloatAsIntFromDisplay<1>, ScreenHandler.DGUSLCD_SendFloatAsIntValueToDisplay<1>),
437438

438439
VPHELPER(VP_AXIS_SETTINGS_AXIS_TMCCURRENT, &AxisSettingsHandler::tmc_current, ScreenHandler.DGUSLCD_SetValueDirectly<uint16_t>, ScreenHandler.DGUSLCD_SendWordValueToDisplay),
440+
VPHELPER(VP_AXIS_SETTINGS_AXIS_TMCSTEALTHCHOP_BUTTON, &AxisSettingsHandler::stealthchop, ScreenHandler.DGUSLCD_ToggleBoolean, nullptr),
441+
VPHELPER(VP_AXIS_SETTINGS_AXIS_TMCSTEALTHCHOP_ICON, &AxisSettingsHandler::stealthchop, nullptr, (ScreenHandler.DGUSLCD_SendIconValue<ICON_TOGGLE_ON, ICON_TOGGLE_OFF>)),
439442

440443
VPHELPER(VP_AXIS_SETTINGS_NAV_BACKBUTTON, nullptr, AxisSettingsHandler::HandleBackNavigation, nullptr),
441444

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

+3
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,9 @@ constexpr uint16_t VP_AXIS_SETTINGS_AXIS_FEEDRATE = 0x22E7; // 2-byte
315315

316316
constexpr uint16_t VP_AXIS_SETTINGS_AXIS_TMCCURRENT = 0x22E9; // 2-byte
317317

318+
constexpr uint16_t VP_AXIS_SETTINGS_AXIS_TMCSTEALTHCHOP_BUTTON = 0x22EB; // 2-byte
319+
constexpr uint16_t VP_AXIS_SETTINGS_AXIS_TMCSTEALTHCHOP_ICON = 0x22ED; // 2-byte
320+
318321

319322
// Mesh leveling
320323
constexpr uint16_t VP_MESH_SCREEN_MESSAGE_ICON = 0x22cb;

0 commit comments

Comments
 (0)