Skip to content

Commit 9a5f1d2

Browse files
🚸 FT Motion: Linear Advance adjustments (#26785)
Co-authored-by: Scott Lahteine <[email protected]>
1 parent 170df90 commit 9a5f1d2

File tree

3 files changed

+8
-5
lines changed

3 files changed

+8
-5
lines changed

Marlin/Configuration_adv.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1129,7 +1129,7 @@
11291129
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
11301130
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
11311131
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
1132-
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
1132+
#define FTM_LINEAR_ADV_DEFAULT_K 0 // Default linear advance gain, integer value. (Acceleration-based scaling factor.)
11331133
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
11341134
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
11351135

Marlin/src/lcd/menu/menu_motion.cpp

Lines changed: 6 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -481,15 +481,18 @@ void menu_move() {
481481

482482
ftm_menu_get_msg_strings();
483483

484+
ft_config_t &c = ftMotion.cfg;
485+
484486
START_MENU();
485-
SUBMENU(MSG_FTM_MODE, menu_ftm_mode);
486-
MENU_ITEM_ADDON_START_RJ(ftmode.length()); lcd_put_u8str(ftmode); MENU_ITEM_ADDON_END();
487+
SUBMENU(MSG_FTM_MODE, menu_ftm_mode);
488+
MENU_ITEM_ADDON_START_RJ(ftmode.length()); lcd_put_u8str(ftmode); MENU_ITEM_ADDON_END();
487489
#if HAS_DYNAMIC_FREQ
488490
SUBMENU(MSG_FTM_DYN_MODE, menu_ftm_dyn_mode);
489491
MENU_ITEM_ADDON_START_RJ(dmode.length()); lcd_put_u8str(dmode); MENU_ITEM_ADDON_END();
490492
#endif
491493
#if HAS_EXTRUDERS
492-
EDIT_ITEM(bool, MSG_LINEAR_ADVANCE, &ftMotion.cfg.linearAdvEna);
494+
EDIT_ITEM(bool, MSG_LINEAR_ADVANCE, &c.linearAdvEna);
495+
if (c.linearAdvEna) EDIT_ITEM(float62, MSG_ADVANCE_K, &c.linearAdvK, 0.0f, 1000.0f);
493496
#endif
494497

495498
END_MENU();

Marlin/src/module/ft_motion.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -579,7 +579,7 @@ void FTMotion::makeVector() {
579579
#if HAS_EXTRUDERS
580580
if (cfg.linearAdvEna) {
581581
float dedt_adj = (traj.e[makeVector_batchIdx] - e_raw_z1) * (FTM_FS);
582-
if (ratio.e > 0.0f) dedt_adj += accel_k * cfg.linearAdvK;
582+
if (ratio.e > 0.0f) dedt_adj += accel_k * cfg.linearAdvK * 0.0001f;
583583

584584
e_raw_z1 = traj.e[makeVector_batchIdx];
585585
e_advanced_z1 += dedt_adj * (FTM_TS);

0 commit comments

Comments
 (0)