🏗️ Support for up to 6 linear axes (#19112)

Co-authored-by: Scott Lahteine <github@thinkyhead.com>
This commit is contained in:
DerAndere
2021-06-05 09:18:47 +02:00
committed by Scott Lahteine
parent d3c56a76e7
commit c1fca91103
98 changed files with 5040 additions and 2256 deletions

View File

@ -697,13 +697,13 @@ const struct DGUS_VP_Variable ListOfVP[] PROGMEM = {
#endif
#if ENABLED(SENSORLESS_HOMING) // TMC SENSORLESS Setting
#if AXIS_HAS_STEALTHCHOP(X)
#if X_HAS_STEALTHCHOP
VPHELPER(VP_TMC_X_STEP, &tmc_step.x, ScreenHandler.TMC_ChangeConfig, ScreenHandler.DGUSLCD_SendTMCStepValue),
#endif
#if AXIS_HAS_STEALTHCHOP(Y)
#if Y_HAS_STEALTHCHOP
VPHELPER(VP_TMC_Y_STEP, &tmc_step.y, ScreenHandler.TMC_ChangeConfig, ScreenHandler.DGUSLCD_SendTMCStepValue),
#endif
#if AXIS_HAS_STEALTHCHOP(Z)
#if Z_HAS_STEALTHCHOP
VPHELPER(VP_TMC_Z_STEP, &tmc_step.z, ScreenHandler.TMC_ChangeConfig, ScreenHandler.DGUSLCD_SendTMCStepValue),
#endif
#endif

View File

@ -59,19 +59,19 @@ extern xyz_int_t tmc_step;
extern uint16_t lcd_default_light;
#if AXIS_HAS_STEALTHCHOP(X)
#if X_HAS_STEALTHCHOP
extern uint16_t tmc_x_current;
#endif
#if AXIS_HAS_STEALTHCHOP(Y)
#if Y_HAS_STEALTHCHOP
extern uint16_t tmc_y_current;
#endif
#if AXIS_HAS_STEALTHCHOP(Z)
#if Z_HAS_STEALTHCHOP
extern uint16_t tmc_z_current;
#endif
#if AXIS_HAS_STEALTHCHOP(E0)
#if E0_HAS_STEALTHCHOP
extern uint16_t tmc_e0_current;
#endif
#if AXIS_HAS_STEALTHCHOP(E1)
#if E1_HAS_STEALTHCHOP
extern uint16_t tmc_e1_current;
#endif

View File

@ -134,15 +134,15 @@ void DGUSScreenHandler::DGUSLCD_SendStringToDisplay_Language_MKS(DGUS_VP_Variabl
void DGUSScreenHandler::DGUSLCD_SendTMCStepValue(DGUS_VP_Variable &var) {
#if ENABLED(SENSORLESS_HOMING)
#if AXIS_HAS_STEALTHCHOP(X)
#if X_HAS_STEALTHCHOP
tmc_step.x = stepperX.homing_threshold();
dgusdisplay.WriteVariable(var.VP, *(int16_t*)var.memadr);
#endif
#if AXIS_HAS_STEALTHCHOP(Y)
#if Y_HAS_STEALTHCHOP
tmc_step.y = stepperY.homing_threshold();
dgusdisplay.WriteVariable(var.VP, *(int16_t*)var.memadr);
#endif
#if AXIS_HAS_STEALTHCHOP(Z)
#if Z_HAS_STEALTHCHOP
tmc_step.z = stepperZ.homing_threshold();
dgusdisplay.WriteVariable(var.VP, *(int16_t*)var.memadr);
#endif
@ -659,7 +659,7 @@ void DGUSScreenHandler::TMC_ChangeConfig(DGUS_VP_Variable &var, void *val_ptr) {
switch (var.VP) {
case VP_TMC_X_STEP:
#if USE_SENSORLESS
#if AXIS_HAS_STEALTHCHOP(X)
#if X_HAS_STEALTHCHOP
stepperX.homing_threshold(mks_min(tmc_value, 255));
settings.save();
//tmc_step.x = stepperX.homing_threshold();
@ -668,7 +668,7 @@ void DGUSScreenHandler::TMC_ChangeConfig(DGUS_VP_Variable &var, void *val_ptr) {
break;
case VP_TMC_Y_STEP:
#if USE_SENSORLESS
#if AXIS_HAS_STEALTHCHOP(Y)
#if Y_HAS_STEALTHCHOP
stepperY.homing_threshold(mks_min(tmc_value, 255));
settings.save();
//tmc_step.y = stepperY.homing_threshold();
@ -677,7 +677,7 @@ void DGUSScreenHandler::TMC_ChangeConfig(DGUS_VP_Variable &var, void *val_ptr) {
break;
case VP_TMC_Z_STEP:
#if USE_SENSORLESS
#if AXIS_HAS_STEALTHCHOP(Z)
#if Z_HAS_STEALTHCHOP
stepperZ.homing_threshold(mks_min(tmc_value, 255));
settings.save();
//tmc_step.z = stepperZ.homing_threshold();
@ -737,15 +737,9 @@ void DGUSScreenHandler::TMC_ChangeConfig(DGUS_VP_Variable &var, void *val_ptr) {
break;
}
#if USE_SENSORLESS
#if AXIS_HAS_STEALTHCHOP(X)
tmc_step.x = stepperX.homing_threshold();
#endif
#if AXIS_HAS_STEALTHCHOP(Y)
tmc_step.y = stepperY.homing_threshold();
#endif
#if AXIS_HAS_STEALTHCHOP(Z)
tmc_step.z = stepperZ.homing_threshold();
#endif
TERN_(X_HAS_STEALTHCHOP, tmc_step.x = stepperX.homing_threshold());
TERN_(Y_HAS_STEALTHCHOP, tmc_step.y = stepperY.homing_threshold());
TERN_(Z_HAS_STEALTHCHOP, tmc_step.z = stepperZ.homing_threshold());
#endif
}
@ -1419,15 +1413,9 @@ bool DGUSScreenHandler::loop() {
if (!booted && ELAPSED(ms, TERN(USE_MKS_GREEN_UI, 1000, BOOTSCREEN_TIMEOUT))) {
booted = true;
#if USE_SENSORLESS
#if AXIS_HAS_STEALTHCHOP(X)
tmc_step.x = stepperX.homing_threshold();
#endif
#if AXIS_HAS_STEALTHCHOP(Y)
tmc_step.y = stepperY.homing_threshold();
#endif
#if AXIS_HAS_STEALTHCHOP(Z)
tmc_step.z = stepperZ.homing_threshold();
#endif
TERN_(X_HAS_STEALTHCHOP, tmc_step.x = stepperX.homing_threshold());
TERN_(Y_HAS_STEALTHCHOP, tmc_step.y = stepperY.homing_threshold());
TERN_(Z_HAS_STEALTHCHOP, tmc_step.z = stepperZ.homing_threshold());
#endif
#if ENABLED(PREVENT_COLD_EXTRUSION)

View File

@ -60,32 +60,32 @@ void EndstopStatesScreen::onRedraw(draw_mode_t) {
)
.text(BTN_POS(1,1), BTN_SIZE(6,1), GET_TEXT_F(MSG_LCD_ENDSTOPS))
.font(font_tiny);
#if PIN_EXISTS(X_MAX)
#if HAS_X_MAX
PIN_ENABLED (1, 2, PSTR(STR_X_MAX), X_MAX, X_MAX_ENDSTOP_INVERTING)
#else
PIN_DISABLED(1, 2, PSTR(STR_X_MAX), X_MAX)
#endif
#if PIN_EXISTS(Y_MAX)
#if HAS_Y_MAX
PIN_ENABLED (3, 2, PSTR(STR_Y_MAX), Y_MAX, Y_MAX_ENDSTOP_INVERTING)
#else
PIN_DISABLED(3, 2, PSTR(STR_Y_MAX), Y_MAX)
#endif
#if PIN_EXISTS(Z_MAX)
#if HAS_Z_MAX
PIN_ENABLED (5, 2, PSTR(STR_Z_MAX), Z_MAX, Z_MAX_ENDSTOP_INVERTING)
#else
PIN_DISABLED(5, 2, PSTR(STR_Z_MAX), Z_MAX)
#endif
#if PIN_EXISTS(X_MIN)
#if HAS_X_MIN
PIN_ENABLED (1, 3, PSTR(STR_X_MIN), X_MIN, X_MIN_ENDSTOP_INVERTING)
#else
PIN_DISABLED(1, 3, PSTR(STR_X_MIN), X_MIN)
#endif
#if PIN_EXISTS(Y_MIN)
#if HAS_Y_MIN
PIN_ENABLED (3, 3, PSTR(STR_Y_MIN), Y_MIN, Y_MIN_ENDSTOP_INVERTING)
#else
PIN_DISABLED(3, 3, PSTR(STR_Y_MIN), Y_MIN)
#endif
#if PIN_EXISTS(Z_MIN)
#if HAS_Z_MIN
PIN_ENABLED (5, 3, PSTR(STR_Z_MIN), Z_MIN, Z_MIN_ENDSTOP_INVERTING)
#else
PIN_DISABLED(5, 3, PSTR(STR_Z_MIN), Z_MIN)

View File

@ -68,30 +68,20 @@ static void event_handler(lv_obj_t *obj, lv_event_t event) {
draw_return_ui();
break;
#if AXIS_HAS_STEALTHCHOP(X)
case ID_TMC_MODE_X:
toggle_chop(stepperX, buttonXState);
break;
#if X_HAS_STEALTHCHOP
case ID_TMC_MODE_X: toggle_chop(stepperX, buttonXState); break;
#endif
#if AXIS_HAS_STEALTHCHOP(Y)
case ID_TMC_MODE_Y:
toggle_chop(stepperY, buttonYState);
break;
#if Y_HAS_STEALTHCHOP
case ID_TMC_MODE_Y: toggle_chop(stepperY, buttonYState); break;
#endif
#if AXIS_HAS_STEALTHCHOP(Z)
case ID_TMC_MODE_Z:
toggle_chop(stepperZ, buttonZState);
break;
#if Z_HAS_STEALTHCHOP
case ID_TMC_MODE_Z: toggle_chop(stepperZ, buttonZState); break;
#endif
#if AXIS_HAS_STEALTHCHOP(E0)
case ID_TMC_MODE_E0:
toggle_chop(stepperE0, buttonE0State);
break;
#if E0_HAS_STEALTHCHOP
case ID_TMC_MODE_E0: toggle_chop(stepperE0, buttonE0State); break;
#endif
#if AXIS_HAS_STEALTHCHOP(E1)
case ID_TMC_MODE_E1:
toggle_chop(stepperE1, buttonE1State);
break;
#if E1_HAS_STEALTHCHOP
case ID_TMC_MODE_E1: toggle_chop(stepperE1, buttonE1State); break;
#endif
case ID_TMC_MODE_UP:
@ -113,21 +103,11 @@ void lv_draw_tmc_step_mode_settings() {
scr = lv_screen_create(TMC_MODE_UI, machine_menu.TmcStepModeConfTitle);
bool stealth_X = false, stealth_Y = false, stealth_Z = false, stealth_E0 = false, stealth_E1 = false;
#if AXIS_HAS_STEALTHCHOP(X)
stealth_X = stepperX.get_stealthChop();
#endif
#if AXIS_HAS_STEALTHCHOP(Y)
stealth_Y = stepperY.get_stealthChop();
#endif
#if AXIS_HAS_STEALTHCHOP(Z)
stealth_Z = stepperZ.get_stealthChop();
#endif
#if AXIS_HAS_STEALTHCHOP(E0)
stealth_E0 = stepperE0.get_stealthChop();
#endif
#if AXIS_HAS_STEALTHCHOP(E1)
stealth_E1 = stepperE1.get_stealthChop();
#endif
TERN_(X_HAS_STEALTHCHOP, stealth_X = stepperX.get_stealthChop());
TERN_(Y_HAS_STEALTHCHOP, stealth_Y = stepperY.get_stealthChop());
TERN_(Z_HAS_STEALTHCHOP, stealth_Z = stepperZ.get_stealthChop());
TERN_(E0_HAS_STEALTHCHOP, stealth_E0 = stepperE0.get_stealthChop());
TERN_(E1_HAS_STEALTHCHOP, stealth_E1 = stepperE1.get_stealthChop());
if (!uiCfg.para_ui_page) {
buttonXState = lv_screen_menu_item_onoff(scr, machine_menu.X_StepMode, PARA_UI_POS_X, PARA_UI_POS_Y, event_handler, ID_TMC_MODE_X, 0, stealth_X);