diff --git a/TFT/src/User/API/Language/Language.inc b/TFT/src/User/API/Language/Language.inc index 5696168192..b15b911d0a 100644 --- a/TFT/src/User/API/Language/Language.inc +++ b/TFT/src/User/API/Language/Language.inc @@ -267,3 +267,4 @@ X_WORD (TUNE_EXT_OLD_ESTEP) X_WORD (TUNE_EXT_NEW_ESTEP) X_WORD (CONNECTION_SETTINGS) X_WORD (OFFSET_TOOL) +X_WORD (HYBRID_THRESHOLD) diff --git a/TFT/src/User/API/Language/language_am.h b/TFT/src/User/API/Language/language_am.h index 9deeb2be01..77a74c33e6 100644 --- a/TFT/src/User/API/Language/language_am.h +++ b/TFT/src/User/API/Language/language_am.h @@ -262,5 +262,6 @@ #define AM_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" #define AM_CONNECTION_SETTINGS "Connection" #define AM_OFFSET_TOOL "Offset 2nd Nozzle" + #define AM_HYBRID_THRESHOLD "TMC HybridThreshold" #endif diff --git a/TFT/src/User/API/Language/language_ca.h b/TFT/src/User/API/Language/language_ca.h index 14026fc799..1f7a843583 100644 --- a/TFT/src/User/API/Language/language_ca.h +++ b/TFT/src/User/API/Language/language_ca.h @@ -262,5 +262,6 @@ #define CA_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" #define CA_CONNECTION_SETTINGS "Connection" #define CA_OFFSET_TOOL "Offset 2nd Nozzle" - + #define CA_HYBRID_THRESHOLD "TMC HybridThreshold" + #endif diff --git a/TFT/src/User/API/Language/language_cn.h b/TFT/src/User/API/Language/language_cn.h index 3bca07cc0a..c5c811f9e1 100644 --- a/TFT/src/User/API/Language/language_cn.h +++ b/TFT/src/User/API/Language/language_cn.h @@ -262,5 +262,6 @@ #define CN_TUNE_EXT_NEW_ESTEP "新的E-Steps: %0.2f" #define CN_CONNECTION_SETTINGS "连接" #define CN_OFFSET_TOOL "Offset 2nd Nozzle" + #define CN_HYBRID_THRESHOLD "TMC HybridThreshold" #endif diff --git a/TFT/src/User/API/Language/language_cz.h b/TFT/src/User/API/Language/language_cz.h index 50d15e85c2..f8b0f7a65c 100644 --- a/TFT/src/User/API/Language/language_cz.h +++ b/TFT/src/User/API/Language/language_cz.h @@ -262,5 +262,6 @@ #define CZ_TUNE_EXT_NEW_ESTEP "Nový E-kroky: %0.2f" #define CZ_CONNECTION_SETTINGS "Připojení" #define CZ_OFFSET_TOOL "Offset 2.trysky" - + #define CZ_HYBRID_THRESHOLD "TMC Hybridní práh" + #endif diff --git a/TFT/src/User/API/Language/language_de.h b/TFT/src/User/API/Language/language_de.h index d5823e5413..095cbb33d8 100644 --- a/TFT/src/User/API/Language/language_de.h +++ b/TFT/src/User/API/Language/language_de.h @@ -262,5 +262,6 @@ #define DE_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" #define DE_CONNECTION_SETTINGS "Connection" #define DE_OFFSET_TOOL "Offset 2nd Nozzle" + #define DE_HYBRID_THRESHOLD "TMC HybridThreshold" #endif diff --git a/TFT/src/User/API/Language/language_du.h b/TFT/src/User/API/Language/language_du.h index 8f4f4d7b8f..486be1d5a4 100644 --- a/TFT/src/User/API/Language/language_du.h +++ b/TFT/src/User/API/Language/language_du.h @@ -262,5 +262,6 @@ #define DU_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" #define DU_CONNECTION_SETTINGS "Connecties" #define DU_OFFSET_TOOL "Offset 2nd Nozzle" + #define DU_HYBRID_THRESHOLD "TMC HybridThreshold" #endif diff --git a/TFT/src/User/API/Language/language_en.h b/TFT/src/User/API/Language/language_en.h index 5f26d569f9..f2d5aa2cc6 100644 --- a/TFT/src/User/API/Language/language_en.h +++ b/TFT/src/User/API/Language/language_en.h @@ -262,5 +262,6 @@ #define EN_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" #define EN_CONNECTION_SETTINGS "Connection" #define EN_OFFSET_TOOL "Offset 2nd Nozzle" + #define EN_HYBRID_THRESHOLD "TMC HybridThreshold" #endif diff --git a/TFT/src/User/API/Language/language_es.h b/TFT/src/User/API/Language/language_es.h index 721f07b92f..ca5f2dd162 100644 --- a/TFT/src/User/API/Language/language_es.h +++ b/TFT/src/User/API/Language/language_es.h @@ -262,5 +262,6 @@ #define ES_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" #define ES_CONNECTION_SETTINGS "Connection" #define ES_OFFSET_TOOL "Offset 2nd Nozzle" - + #define ES_HYBRID_THRESHOLD "TMC HybridThreshold" + #endif diff --git a/TFT/src/User/API/Language/language_fr.h b/TFT/src/User/API/Language/language_fr.h index 0d86071993..50aec7fc01 100644 --- a/TFT/src/User/API/Language/language_fr.h +++ b/TFT/src/User/API/Language/language_fr.h @@ -262,5 +262,6 @@ #define FR_TUNE_EXT_NEW_ESTEP "Nouveau : %0.2f" #define FR_CONNECTION_SETTINGS "Connexion" #define FR_OFFSET_TOOL "Offset 2nd Nozzle" + #define FR_HYBRID_THRESHOLD "TMC HybridThreshold" #endif diff --git a/TFT/src/User/API/Language/language_gr.h b/TFT/src/User/API/Language/language_gr.h index 6193e7cc94..6fa5f6ff86 100644 --- a/TFT/src/User/API/Language/language_gr.h +++ b/TFT/src/User/API/Language/language_gr.h @@ -262,5 +262,6 @@ #define GR_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" #define GR_CONNECTION_SETTINGS "Connection" #define GR_OFFSET_TOOL "Offset 2nd Nozzle" + #define GR_HYBRID_THRESHOLD "TMC HybridThreshold" #endif diff --git a/TFT/src/User/API/Language/language_hu.h b/TFT/src/User/API/Language/language_hu.h index a97706b766..873165fd90 100644 --- a/TFT/src/User/API/Language/language_hu.h +++ b/TFT/src/User/API/Language/language_hu.h @@ -261,6 +261,8 @@ #define HU_TUNE_EXT_OLD_ESTEP "Régi e-lépés: %0.2f" #define HU_TUNE_EXT_NEW_ESTEP "Új e-lépés: %0.2f" #define HU_CONNECTION_SETTINGS "Kapcsolat" + #define HU_OFFSET_TOOL "Offset 2nd Nozzle" #define HU_OFFSET_TOOL "Második fej eltolása" + #define HU_HYBRID_THRESHOLD "TMC HybridThreshold" #endif diff --git a/TFT/src/User/API/Language/language_it.h b/TFT/src/User/API/Language/language_it.h index 91a7ea8fc4..97fcae75bc 100644 --- a/TFT/src/User/API/Language/language_it.h +++ b/TFT/src/User/API/Language/language_it.h @@ -262,5 +262,6 @@ #define IT_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" #define IT_CONNECTION_SETTINGS "Connection" #define IT_OFFSET_TOOL "Offset 2nd Nozzle" + #define IT_HYBRID_THRESHOLD "TMC HybridThreshold" #endif diff --git a/TFT/src/User/API/Language/language_jp.h b/TFT/src/User/API/Language/language_jp.h index 851b5a805f..fba5a99177 100644 --- a/TFT/src/User/API/Language/language_jp.h +++ b/TFT/src/User/API/Language/language_jp.h @@ -262,5 +262,6 @@ #define JP_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" #define JP_CONNECTION_SETTINGS "Connection" #define JP_OFFSET_TOOL "Offset 2nd Nozzle" + #define JP_HYBRID_THRESHOLD "TMC HybridThreshold" #endif diff --git a/TFT/src/User/API/Language/language_pl.h b/TFT/src/User/API/Language/language_pl.h index a775db088e..987d4690d2 100644 --- a/TFT/src/User/API/Language/language_pl.h +++ b/TFT/src/User/API/Language/language_pl.h @@ -262,5 +262,6 @@ #define PL_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" #define PL_CONNECTION_SETTINGS "Connection" #define PL_OFFSET_TOOL "Offset 2nd Nozzle" + #define PL_HYBRID_THRESHOLD "TMC HybridThreshold" #endif diff --git a/TFT/src/User/API/Language/language_pt.h b/TFT/src/User/API/Language/language_pt.h index 12a0a5ef9a..f34325d346 100644 --- a/TFT/src/User/API/Language/language_pt.h +++ b/TFT/src/User/API/Language/language_pt.h @@ -262,5 +262,6 @@ #define PT_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" #define PT_CONNECTION_SETTINGS "Connection" #define PT_OFFSET_TOOL "Offset 2nd Nozzle" + #define PT_HYBRID_THRESHOLD "TMC HybridThreshold" #endif diff --git a/TFT/src/User/API/Language/language_ru.h b/TFT/src/User/API/Language/language_ru.h index afd26d1d3e..1373df5c6d 100644 --- a/TFT/src/User/API/Language/language_ru.h +++ b/TFT/src/User/API/Language/language_ru.h @@ -261,6 +261,7 @@ #define RU_TUNE_EXT_OLD_ESTEP "Старые E-шаги: %0.2f" #define RU_TUNE_EXT_NEW_ESTEP "Новые E-шаги: %0.2f" #define RU_CONNECTION_SETTINGS "Соединение" - #define RU_OFFSET_TOOL "Смещение 2-го сопла" + #define RU_OFFSET_TOOL "Offset 2nd Nozzle" + #define RU_HYBRID_THRESHOLD "TMC HybridThreshold" #endif diff --git a/TFT/src/User/API/Language/language_sk.h b/TFT/src/User/API/Language/language_sk.h index 79496298cb..61ee90a375 100644 --- a/TFT/src/User/API/Language/language_sk.h +++ b/TFT/src/User/API/Language/language_sk.h @@ -262,5 +262,6 @@ #define SK_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" #define SK_CONNECTION_SETTINGS "Connection" #define SK_OFFSET_TOOL "Offset 2nd Nozzle" + #define SK_HYBRID_THRESHOLD "TMC HybridThreshold" #endif diff --git a/TFT/src/User/API/Language/language_sl.h b/TFT/src/User/API/Language/language_sl.h index ee6ed0dfdd..3811c7169d 100644 --- a/TFT/src/User/API/Language/language_sl.h +++ b/TFT/src/User/API/Language/language_sl.h @@ -262,5 +262,6 @@ #define SL_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" #define SL_CONNECTION_SETTINGS "Connection" #define SL_OFFSET_TOOL "Offset 2nd Nozzle" + #define SL_HYBRID_THRESHOLD "TMC HybridThreshold" #endif diff --git a/TFT/src/User/API/Language/language_tc.h b/TFT/src/User/API/Language/language_tc.h index 12350267de..0d30919728 100644 --- a/TFT/src/User/API/Language/language_tc.h +++ b/TFT/src/User/API/Language/language_tc.h @@ -262,5 +262,6 @@ #define TC_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" #define TC_CONNECTION_SETTINGS "连接" #define TC_OFFSET_TOOL "Offset 2nd Nozzle" + #define TC_HYBRID_THRESHOLD "TMC HybridThreshold" #endif diff --git a/TFT/src/User/API/Language/language_tr.h b/TFT/src/User/API/Language/language_tr.h index 087e955ff3..666e3f45ba 100644 --- a/TFT/src/User/API/Language/language_tr.h +++ b/TFT/src/User/API/Language/language_tr.h @@ -262,5 +262,6 @@ #define TR_TUNE_EXT_NEW_ESTEP "New e-steps: %0.2f" #define TR_CONNECTION_SETTINGS "Connection" #define TR_OFFSET_TOOL "Offset 2nd Nozzle" + #define TR_HYBRID_THRESHOLD "TMC HybridThreshold" #endif diff --git a/TFT/src/User/API/MachineParameters.c b/TFT/src/User/API/MachineParameters.c index e707a180fe..7b2f2feef7 100644 --- a/TFT/src/User/API/MachineParameters.c +++ b/TFT/src/User/API/MachineParameters.c @@ -3,7 +3,7 @@ PARAMETERS infoParameters; -const u8 parameter_element_count[PARAMETERS_COUNT] = {5, 5, 5, 5, 3, 3, 3, 4, 4, 1, 2, 2, 3}; +const u8 parameter_element_count[PARAMETERS_COUNT] = {5, 5, 5, 5, 3, 3, 3, 4, 4, 1, 2, 2, 3, 5}; const char *const parameter_Cmd[PARAMETERS_COUNT][STEPPER_COUNT] = { {"M92 X%.2f\n", "M92 Y%.2f\n", "M92 Z%.2f\n", "M92 T0 E%.2f\n", "M92 T1 E%.2f\nM503 S0\n"}, //Steps/mm @@ -19,6 +19,7 @@ const char *const parameter_Cmd[PARAMETERS_COUNT][STEPPER_COUNT] = { {"M900 T0 K%.2f\n", "M900 T1 K%.2f\nM503 S0\n", NULL, NULL, NULL}, //Linear Advance {"M420 S%.0f\n", "M420 Z%.2f\n", NULL, NULL, NULL}, //ABL State + Z Fade {"M218 T1 X%.2f\nM503 S0\n", "M218 T1 Y%.2f\nM503 S0\n", "M218 T1 Z%.2f\nM503 S0\n", NULL, NULL}, //Offset Tools + {"M913 X%.0f\n", "M913 Y%.0f\n", "M913 Z%.0f\n", "M913 E%.0f\n", "M913 T1 E%.0f\nM503 S0\n"}, //TMC Hybrid Threshold Speed }; const VAL_TYPE parameter_val_type[PARAMETERS_COUNT][STEPPER_COUNT] = { @@ -32,15 +33,17 @@ const VAL_TYPE parameter_val_type[PARAMETERS_COUNT][STEPPER_COUNT] = { {VAL_TYPE_FLOAT, VAL_TYPE_FLOAT, VAL_TYPE_INT, VAL_TYPE_FLOAT}, //FW retract {VAL_TYPE_FLOAT, VAL_TYPE_FLOAT, VAL_TYPE_INT, VAL_TYPE_INT}, //FW retract recover {VAL_TYPE_INT}, //Set auto FW retract - {VAL_TYPE_FLOAT, VAL_TYPE_FLOAT}, //Linear Advance //Linear Advance + {VAL_TYPE_FLOAT, VAL_TYPE_FLOAT}, //Linear Advance {VAL_TYPE_INT, VAL_TYPE_FLOAT}, //ABL State + Z Fade - {VAL_TYPE_NEG_FLOAT, VAL_TYPE_NEG_FLOAT, VAL_TYPE_NEG_FLOAT}, //Offset Tools //Set auto FW retract + {VAL_TYPE_NEG_FLOAT, VAL_TYPE_NEG_FLOAT, VAL_TYPE_NEG_FLOAT}, //Offset Tools + {VAL_TYPE_INT, VAL_TYPE_INT, VAL_TYPE_INT, VAL_TYPE_INT, VAL_TYPE_INT}, //TMC Hybrid Threshold Speed }; //Extra teppers current gcode command -const char *const dualStepperParameter_cmd[2][AXIS_NUM] = { +const char *const dualStepperParameter_cmd[3][AXIS_NUM] = { {"M906 I1 X%.0f\n", "M906 I1 Y%.0f\n", "M906 I1 Z%.0f\n"}, //Current - {"M914 I1 X%.0f\n", "M914 I1 Y%.0f\n", "M914 I1 Z%.0f\n"} //bump Sensitivity + {"M914 I1 X%.0f\n", "M914 I1 Y%.0f\n", "M914 I1 Z%.0f\n"}, //bump Sensitivity + {"M913 I1 X%.0f\n", "M913 I1 Y%.0f\n", "M913 I1 Z%.0f\n"}, //TMC Hybrid Threshold Speed }; @@ -85,6 +88,8 @@ float getParameter(PARAMETER_NAME name, u8 index) return infoParameters.ABLState[index]; case P_OFFSET_TOOL: return infoParameters.OffsetTool[index]; + case P_HYBRID_THRESHOLD: + return infoParameters.HybridThreshold[index]; default: return 0.0f; } @@ -134,6 +139,9 @@ void setParameter(PARAMETER_NAME name, u8 index, float val) case P_OFFSET_TOOL: infoParameters.OffsetTool[index] = val; break; + case P_HYBRID_THRESHOLD: + infoParameters.HybridThreshold[index] = val; + break; default: break; } @@ -168,6 +176,8 @@ void sendParameterCmd(PARAMETER_NAME para, u8 stepper_index, float Value) storeCmd(dualStepperParameter_cmd[0][stepper_index], Value); if(para == P_BUMPSENSITIVITY) storeCmd(dualStepperParameter_cmd[1][stepper_index], Value); + if(para == P_HYBRID_THRESHOLD) + storeCmd(dualStepperParameter_cmd[2][stepper_index], Value); } } diff --git a/TFT/src/User/API/MachineParameters.h b/TFT/src/User/API/MachineParameters.h index 19b5831ab3..ef67ed571e 100644 --- a/TFT/src/User/API/MachineParameters.h +++ b/TFT/src/User/API/MachineParameters.h @@ -18,6 +18,7 @@ P_AUTO_RETRACT, P_LIN_ADV, P_ABL_STATE, P_OFFSET_TOOL, +P_HYBRID_THRESHOLD, // Keep below items always at the end P_SAVE_SETTINGS, P_RESTORE_SETTINGS, @@ -60,6 +61,7 @@ float AutoRetract[1]; float LinAdvance[2]; float ABLState[2]; float OffsetTool[3]; +float HybridThreshold[STEPPER_COUNT]; }PARAMETERS; extern PARAMETERS infoParameters; diff --git a/TFT/src/User/API/interfaceCmd.c b/TFT/src/User/API/interfaceCmd.c index b0828f5baf..bdf8b9dc3d 100644 --- a/TFT/src/User/API/interfaceCmd.c +++ b/TFT/src/User/API/interfaceCmd.c @@ -775,6 +775,12 @@ void sendQueueCmd(void) if(cmd_seen('Y')) setParameter(P_BUMPSENSITIVITY, Y_STEPPER, cmd_float()); if(cmd_seen('Z')) setParameter(P_BUMPSENSITIVITY, Z_STEPPER, cmd_float()); break; + case 913: //M913 Hybrid Threshold Speed + if(cmd_seen('X')) setParameter(P_HYBRID_THRESHOLD, X_STEPPER, cmd_value()); + if(cmd_seen('Y')) setParameter(P_HYBRID_THRESHOLD, Y_STEPPER, cmd_value()); + if(cmd_seen('Z')) setParameter(P_HYBRID_THRESHOLD, Z_STEPPER, cmd_value()); + if(cmd_seen('E')) setParameter(P_HYBRID_THRESHOLD, E_STEPPER, cmd_value()); + break; } break; //end parsing M-codes diff --git a/TFT/src/User/API/parseACK.c b/TFT/src/User/API/parseACK.c index 65c997ee86..42c634d8e0 100644 --- a/TFT/src/User/API/parseACK.c +++ b/TFT/src/User/API/parseACK.c @@ -507,12 +507,6 @@ void parseACK(void) if(ack_seen("Y")) setParameter(P_CURRENT, Y_STEPPER, ack_value()); if(ack_seen("Z")) setParameter(P_CURRENT, Z_STEPPER, ack_value()); } - //parse and store TMC Bump sensitivity values - else if(ack_seen("M914 X")){ - setParameter(P_BUMPSENSITIVITY, X_STEPPER, ack_value()); - if(ack_seen("Y")) setParameter(P_BUMPSENSITIVITY, Y_STEPPER, ack_value()); - if(ack_seen("Z")) setParameter(P_BUMPSENSITIVITY, Z_STEPPER, ack_value()); - } else if(ack_seen("M906 I1")){ if(ack_seen("X")) setDualStepperStatus(X_STEPPER, true); if(ack_seen("Y")) setDualStepperStatus(Y_STEPPER, true); @@ -525,6 +519,26 @@ void parseACK(void) setParameter(P_CURRENT, E2_STEPPER, ack_value()); setDualStepperStatus(E_STEPPER, true); } + //parse and store TMC Bump sensitivity values + else if(ack_seen("M914 X")){ + setParameter(P_BUMPSENSITIVITY, X_STEPPER, ack_value()); + if(ack_seen("Y")) setParameter(P_BUMPSENSITIVITY, Y_STEPPER, ack_value()); + if(ack_seen("Z")) setParameter(P_BUMPSENSITIVITY, Z_STEPPER, ack_value()); + } + // parse and store TMC Hybrid Threshold Speed + else if(ack_seen("M913 X")){ + setParameter(P_HYBRID_THRESHOLD, X_STEPPER, ack_value()); + if(ack_seen("Y")) setParameter(P_HYBRID_THRESHOLD, Y_STEPPER, ack_value()); + if(ack_seen("Z")) setParameter(P_HYBRID_THRESHOLD, Z_STEPPER, ack_value()); + if(ack_seen("E")) setParameter(P_HYBRID_THRESHOLD, E_STEPPER, ack_value()); + } + else if(ack_seen("M913 T0 E")){ + setParameter(P_HYBRID_THRESHOLD, E_STEPPER, ack_value()); + } + else if(ack_seen("M913 T1 E")){ + setParameter(P_HYBRID_THRESHOLD, E2_STEPPER, ack_value()); + setDualStepperStatus(E_STEPPER, true); + } // Parse and store ABL type else if(ack_seen("echo:; Unified Bed Leveling")){ if(ENABLE_UBL_VALUE==2) infoMachineSettings.enableubl = ENABLED; diff --git a/TFT/src/User/Menu/Parametersetting.c b/TFT/src/User/Menu/Parametersetting.c index 2e396191d1..5b6a58be21 100644 --- a/TFT/src/User/Menu/Parametersetting.c +++ b/TFT/src/User/Menu/Parametersetting.c @@ -22,6 +22,7 @@ const LISTITEM parametertypes[P_ITEMSCOUNT] = { {ICONCHAR_SETTING1, LIST_MOREBUTTON, LABEL_LIN_ADVANCE, LABEL_BACKGROUND}, {ICONCHAR_SETTING1, LIST_MOREBUTTON, LABEL_ABL, LABEL_BACKGROUND}, {ICONCHAR_SETTING1, LIST_MOREBUTTON, LABEL_OFFSET_TOOL, LABEL_BACKGROUND}, + {ICONCHAR_SETTING1, LIST_MOREBUTTON, LABEL_HYBRID_THRESHOLD, LABEL_BACKGROUND}, //Keep below items always at the end {ICONCHAR_SAVE, LIST_LABEL, LABEL_SETTING_SAVE, LABEL_BACKGROUND}, {ICONCHAR_UNDO, LIST_LABEL, LABEL_SETTING_RESTORE, LABEL_BACKGROUND}, @@ -96,6 +97,7 @@ void menuShowParameter(void){ setDynamicLabel(0, "X"); setDynamicLabel(1, "Y"); setDynamicLabel(2, "Z"); + break; default: if (getDualstepperStatus(E_STEPPER) && i == E2_STEPPER) {