mirror of
https://github.com/MarlinFirmware/Configurations.git
synced 2025-07-07 06:57:39 -06:00
parent
aeac179db2
commit
b0509c9167
354 changed files with 17700 additions and 10620 deletions
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1130,42 +1130,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1126,42 +1126,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1122,42 +1122,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1122,42 +1122,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1120,42 +1120,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1123,42 +1123,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -1121,42 +1121,62 @@
|
||||||
#if ENABLED(FT_MOTION)
|
#if ENABLED(FT_MOTION)
|
||||||
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
#define FTM_DEFAULT_MODE ftMotionMode_DISABLED // Default mode of fixed time control. (Enums in ft_types.h)
|
||||||
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
#define FTM_DEFAULT_DYNFREQ_MODE dynFreqMode_DISABLED // Default mode of dynamic frequency calculation. (Enums in ft_types.h)
|
||||||
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_X_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers.
|
#define FTM_SHAPING_DEFAULT_Y_FREQ 37.0f // (Hz) Default peak frequency used by input shapers
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false).
|
#define FTM_LINEAR_ADV_DEFAULT_ENA false // Default linear advance enable (true) or disable (false)
|
||||||
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain.
|
#define FTM_LINEAR_ADV_DEFAULT_K 0.0f // Default linear advance gain
|
||||||
#define FTM_SHAPING_ZETA 0.1f // Zeta used by input shapers.
|
#define FTM_SHAPING_ZETA_X 0.1f // Zeta used by input shapers for X axis
|
||||||
#define FTM_SHAPING_V_TOL 0.05f // Vibration tolerance used by EI input shapers.
|
#define FTM_SHAPING_ZETA_Y 0.1f // Zeta used by input shapers for Y axis
|
||||||
|
|
||||||
|
#define FTM_SHAPING_V_TOL_X 0.05f // Vibration tolerance used by EI input shapers for X axis
|
||||||
|
#define FTM_SHAPING_V_TOL_Y 0.05f // Vibration tolerance used by EI input shapers for Y axis
|
||||||
|
|
||||||
|
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advanced configuration
|
* Advanced configuration
|
||||||
*/
|
*/
|
||||||
#define FTM_BATCH_SIZE 100 // Batch size for trajectory generation;
|
#define FTM_UNIFIED_BWS // DON'T DISABLE unless you use Ulendo FBS (not implemented)
|
||||||
#define FTM_WINDOW_SIZE 200 // Window size for trajectory generation.
|
#if ENABLED(FTM_UNIFIED_BWS)
|
||||||
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (1 / FTM_TS)
|
#define FTM_BW_SIZE 100 // Unified Window and Batch size with a ratio of 2
|
||||||
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (1 / FTM_FS)
|
#else
|
||||||
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update.
|
#define FTM_WINDOW_SIZE 200 // Custom Window size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps.
|
#define FTM_BATCH_SIZE 100 // Custom Batch size for trajectory generation needed by Ulendo FBS
|
||||||
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency.
|
#endif
|
||||||
#define FTM_ZMAX 100 // Maximum delays for shaping functions (even numbers only!).
|
|
||||||
|
#define FTM_FS 1000 // (Hz) Frequency for trajectory generation. (Reciprocal of FTM_TS)
|
||||||
|
#define FTM_TS 0.001f // (s) Time step for trajectory generation. (Reciprocal of FTM_FS)
|
||||||
|
|
||||||
|
// These values may be configured to adjust the duration of loop().
|
||||||
|
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop()
|
||||||
|
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop()
|
||||||
|
|
||||||
|
#if DISABLED(COREXY)
|
||||||
|
#define FTM_STEPPER_FS 20000 // (Hz) Frequency for stepper I/O update
|
||||||
|
|
||||||
|
// Use this to adjust the time required to consume the command buffer.
|
||||||
|
// Try increasing this value if stepper motion is choppy.
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 3000 // Size of the stepper command buffers
|
||||||
|
// (FTM_STEPS_PER_LOOP * FTM_POINTS_PER_LOOP) is a good start
|
||||||
|
// If you run out of memory, fall back to 3000 and increase progressively
|
||||||
|
#else
|
||||||
|
// CoreXY motion needs a larger buffer size. These values are based on our testing.
|
||||||
|
#define FTM_STEPPER_FS 30000
|
||||||
|
#define FTM_STEPPERCMD_BUFF_SIZE 6000
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#define FTM_STEPS_PER_UNIT_TIME (FTM_STEPPER_FS / FTM_FS) // Interpolated stepper commands per unit time
|
||||||
|
#define FTM_CTS_COMPARE_VAL (FTM_STEPS_PER_UNIT_TIME / 2) // Comparison value used in interpolation algorithm
|
||||||
|
#define FTM_MIN_TICKS ((STEPPER_TIMER_RATE) / (FTM_STEPPER_FS)) // Minimum stepper ticks between steps
|
||||||
|
|
||||||
|
#define FTM_MIN_SHAPE_FREQ 10 // Minimum shaping frequency
|
||||||
|
#define FTM_RATIO (FTM_FS / FTM_MIN_SHAPE_FREQ) // Factor for use in FTM_ZMAX. DON'T CHANGE.
|
||||||
|
#define FTM_ZMAX (FTM_RATIO * 2) // Maximum delays for shaping functions (even numbers only!)
|
||||||
// Calculate as:
|
// Calculate as:
|
||||||
// 1/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZV.
|
// ZV : FTM_RATIO / 2
|
||||||
// (FTM_FS / FTM_MIN_SHAPE_FREQ) for ZVD, MZV.
|
// ZVD, MZV : FTM_RATIO
|
||||||
// 3/2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 2HEI.
|
// 2HEI : FTM_RATIO * 3 / 2
|
||||||
// 2 * (FTM_FS / FTM_MIN_SHAPE_FREQ) for 3HEI.
|
// 3HEI : FTM_RATIO * 2
|
||||||
#define FTM_STEPS_PER_UNIT_TIME 20 // Interpolated stepper commands per unit time.
|
|
||||||
// Calculate as (FTM_STEPPER_FS / FTM_FS).
|
|
||||||
#define FTM_CTS_COMPARE_VAL 10 // Comparison value used in interpolation algorithm.
|
|
||||||
// Calculate as (FTM_STEPS_PER_UNIT_TIME / 2).
|
|
||||||
// These values may be configured to adjust duration of loop().
|
|
||||||
#define FTM_STEPS_PER_LOOP 60 // Number of stepper commands to generate each loop().
|
|
||||||
#define FTM_POINTS_PER_LOOP 100 // Number of trajectory points to generate each loop().
|
|
||||||
|
|
||||||
// This value may be configured to adjust duration to consume the command buffer.
|
|
||||||
// Try increasing this value if stepper motion is not smooth.
|
|
||||||
#define FTM_STEPPERCMD_BUFF_SIZE 1000 // Size of the stepper command buffers.
|
|
||||||
|
|
||||||
//#define FT_MOTION_MENU // Provide a MarlinUI menu to set M493 parameters.
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
Some files were not shown because too many files have changed in this diff Show more
Loading…
Add table
Add a link
Reference in a new issue