Skip to content

Commit 7ab35d2

Browse files
committed
✨ SMOOTH_LIN_ADVANCE
MarlinFirmware/Marlin#27710
1 parent 288e34f commit 7ab35d2

File tree

382 files changed

+6876
-0
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

382 files changed

+6876
-0
lines changed

config/default/Configuration_adv.h

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2356,6 +2356,24 @@
23562356
//#define ADVANCE_K_EXTRA // Add a second linear advance constant, configurable with M900 L.
23572357
//#define LA_DEBUG // Print debug information to serial during operation. Disable for production use.
23582358
//#define EXPERIMENTAL_I2S_LA // Allow I2S_STEPPER_STREAM to be used with LA. Performance degrades as the LA step rate reaches ~20kHz.
2359+
2360+
//#define SMOOTH_LIN_ADVANCE // Remove limits on acceleration by gradual increase of nozzle pressure
2361+
#if ENABLED(SMOOTH_LIN_ADVANCE)
2362+
/**
2363+
* ADVANCE_TAU is also the time ahead that the smoother needs to look
2364+
* into the planner, so the planner needs to have enough blocks loaded.
2365+
* For k=0.04 at 10k acceleration and an "Orbiter 2" extruder it can be as low as 0.0075.
2366+
* Adjust by lowering the value until you observe the extruder skipping, then raise slightly.
2367+
* Higher k and higher XY acceleration may require larger ADVANCE_TAU to avoid skipping steps.
2368+
*/
2369+
#if ENABLED(DISTINCT_E_FACTORS)
2370+
#define ADVANCE_TAU { 0.01 } // (s) Smoothing time to reduce extruder acceleration, per extruder
2371+
#else
2372+
#define ADVANCE_TAU 0.01 // (s) Smoothing time to reduce extruder acceleration
2373+
#endif
2374+
#define SMOOTH_LIN_ADV_HZ 5000 // (Hz) How often to update extruder speed
2375+
#define INPUT_SHAPING_E_SYNC // Synchronize the extruder-shaped XY axes (to increase precision)
2376+
#endif
23592377
#endif
23602378

23612379
/**

config/examples/3DFabXYZ/Migbot/Configuration_adv.h

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2356,6 +2356,24 @@
23562356
//#define ADVANCE_K_EXTRA // Add a second linear advance constant, configurable with M900 L.
23572357
//#define LA_DEBUG // Print debug information to serial during operation. Disable for production use.
23582358
//#define EXPERIMENTAL_I2S_LA // Allow I2S_STEPPER_STREAM to be used with LA. Performance degrades as the LA step rate reaches ~20kHz.
2359+
2360+
//#define SMOOTH_LIN_ADVANCE // Remove limits on acceleration by gradual increase of nozzle pressure
2361+
#if ENABLED(SMOOTH_LIN_ADVANCE)
2362+
/**
2363+
* ADVANCE_TAU is also the time ahead that the smoother needs to look
2364+
* into the planner, so the planner needs to have enough blocks loaded.
2365+
* For k=0.04 at 10k acceleration and an "Orbiter 2" extruder it can be as low as 0.0075.
2366+
* Adjust by lowering the value until you observe the extruder skipping, then raise slightly.
2367+
* Higher k and higher XY acceleration may require larger ADVANCE_TAU to avoid skipping steps.
2368+
*/
2369+
#if ENABLED(DISTINCT_E_FACTORS)
2370+
#define ADVANCE_TAU { 0.01 } // (s) Smoothing time to reduce extruder acceleration, per extruder
2371+
#else
2372+
#define ADVANCE_TAU 0.01 // (s) Smoothing time to reduce extruder acceleration
2373+
#endif
2374+
#define SMOOTH_LIN_ADV_HZ 5000 // (Hz) How often to update extruder speed
2375+
#define INPUT_SHAPING_E_SYNC // Synchronize the extruder-shaped XY axes (to increase precision)
2376+
#endif
23592377
#endif
23602378

23612379
/**

config/examples/3DMatik/XL/Configuration_adv.h

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2356,6 +2356,24 @@
23562356
//#define ADVANCE_K_EXTRA // Add a second linear advance constant, configurable with M900 L.
23572357
//#define LA_DEBUG // Print debug information to serial during operation. Disable for production use.
23582358
//#define EXPERIMENTAL_I2S_LA // Allow I2S_STEPPER_STREAM to be used with LA. Performance degrades as the LA step rate reaches ~20kHz.
2359+
2360+
//#define SMOOTH_LIN_ADVANCE // Remove limits on acceleration by gradual increase of nozzle pressure
2361+
#if ENABLED(SMOOTH_LIN_ADVANCE)
2362+
/**
2363+
* ADVANCE_TAU is also the time ahead that the smoother needs to look
2364+
* into the planner, so the planner needs to have enough blocks loaded.
2365+
* For k=0.04 at 10k acceleration and an "Orbiter 2" extruder it can be as low as 0.0075.
2366+
* Adjust by lowering the value until you observe the extruder skipping, then raise slightly.
2367+
* Higher k and higher XY acceleration may require larger ADVANCE_TAU to avoid skipping steps.
2368+
*/
2369+
#if ENABLED(DISTINCT_E_FACTORS)
2370+
#define ADVANCE_TAU { 0.01 } // (s) Smoothing time to reduce extruder acceleration, per extruder
2371+
#else
2372+
#define ADVANCE_TAU 0.01 // (s) Smoothing time to reduce extruder acceleration
2373+
#endif
2374+
#define SMOOTH_LIN_ADV_HZ 5000 // (Hz) How often to update extruder speed
2375+
#define INPUT_SHAPING_E_SYNC // Synchronize the extruder-shaped XY axes (to increase precision)
2376+
#endif
23592377
#endif
23602378

23612379
/**

config/examples/ADIMLab/Gantry v1/Configuration_adv.h

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2356,6 +2356,24 @@
23562356
//#define ADVANCE_K_EXTRA // Add a second linear advance constant, configurable with M900 L.
23572357
//#define LA_DEBUG // Print debug information to serial during operation. Disable for production use.
23582358
//#define EXPERIMENTAL_I2S_LA // Allow I2S_STEPPER_STREAM to be used with LA. Performance degrades as the LA step rate reaches ~20kHz.
2359+
2360+
//#define SMOOTH_LIN_ADVANCE // Remove limits on acceleration by gradual increase of nozzle pressure
2361+
#if ENABLED(SMOOTH_LIN_ADVANCE)
2362+
/**
2363+
* ADVANCE_TAU is also the time ahead that the smoother needs to look
2364+
* into the planner, so the planner needs to have enough blocks loaded.
2365+
* For k=0.04 at 10k acceleration and an "Orbiter 2" extruder it can be as low as 0.0075.
2366+
* Adjust by lowering the value until you observe the extruder skipping, then raise slightly.
2367+
* Higher k and higher XY acceleration may require larger ADVANCE_TAU to avoid skipping steps.
2368+
*/
2369+
#if ENABLED(DISTINCT_E_FACTORS)
2370+
#define ADVANCE_TAU { 0.01 } // (s) Smoothing time to reduce extruder acceleration, per extruder
2371+
#else
2372+
#define ADVANCE_TAU 0.01 // (s) Smoothing time to reduce extruder acceleration
2373+
#endif
2374+
#define SMOOTH_LIN_ADV_HZ 5000 // (Hz) How often to update extruder speed
2375+
#define INPUT_SHAPING_E_SYNC // Synchronize the extruder-shaped XY axes (to increase precision)
2376+
#endif
23592377
#endif
23602378

23612379
/**

config/examples/ADIMLab/Gantry v2/Configuration_adv.h

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2356,6 +2356,24 @@
23562356
//#define ADVANCE_K_EXTRA // Add a second linear advance constant, configurable with M900 L.
23572357
//#define LA_DEBUG // Print debug information to serial during operation. Disable for production use.
23582358
//#define EXPERIMENTAL_I2S_LA // Allow I2S_STEPPER_STREAM to be used with LA. Performance degrades as the LA step rate reaches ~20kHz.
2359+
2360+
//#define SMOOTH_LIN_ADVANCE // Remove limits on acceleration by gradual increase of nozzle pressure
2361+
#if ENABLED(SMOOTH_LIN_ADVANCE)
2362+
/**
2363+
* ADVANCE_TAU is also the time ahead that the smoother needs to look
2364+
* into the planner, so the planner needs to have enough blocks loaded.
2365+
* For k=0.04 at 10k acceleration and an "Orbiter 2" extruder it can be as low as 0.0075.
2366+
* Adjust by lowering the value until you observe the extruder skipping, then raise slightly.
2367+
* Higher k and higher XY acceleration may require larger ADVANCE_TAU to avoid skipping steps.
2368+
*/
2369+
#if ENABLED(DISTINCT_E_FACTORS)
2370+
#define ADVANCE_TAU { 0.01 } // (s) Smoothing time to reduce extruder acceleration, per extruder
2371+
#else
2372+
#define ADVANCE_TAU 0.01 // (s) Smoothing time to reduce extruder acceleration
2373+
#endif
2374+
#define SMOOTH_LIN_ADV_HZ 5000 // (Hz) How often to update extruder speed
2375+
#define INPUT_SHAPING_E_SYNC // Synchronize the extruder-shaped XY axes (to increase precision)
2376+
#endif
23592377
#endif
23602378

23612379
/**

config/examples/Alfawise/U20-bltouch/Configuration_adv.h

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2366,6 +2366,24 @@
23662366
//#define ADVANCE_K_EXTRA // Add a second linear advance constant, configurable with M900 L.
23672367
//#define LA_DEBUG // Print debug information to serial during operation. Disable for production use.
23682368
//#define EXPERIMENTAL_I2S_LA // Allow I2S_STEPPER_STREAM to be used with LA. Performance degrades as the LA step rate reaches ~20kHz.
2369+
2370+
//#define SMOOTH_LIN_ADVANCE // Remove limits on acceleration by gradual increase of nozzle pressure
2371+
#if ENABLED(SMOOTH_LIN_ADVANCE)
2372+
/**
2373+
* ADVANCE_TAU is also the time ahead that the smoother needs to look
2374+
* into the planner, so the planner needs to have enough blocks loaded.
2375+
* For k=0.04 at 10k acceleration and an "Orbiter 2" extruder it can be as low as 0.0075.
2376+
* Adjust by lowering the value until you observe the extruder skipping, then raise slightly.
2377+
* Higher k and higher XY acceleration may require larger ADVANCE_TAU to avoid skipping steps.
2378+
*/
2379+
#if ENABLED(DISTINCT_E_FACTORS)
2380+
#define ADVANCE_TAU { 0.01 } // (s) Smoothing time to reduce extruder acceleration, per extruder
2381+
#else
2382+
#define ADVANCE_TAU 0.01 // (s) Smoothing time to reduce extruder acceleration
2383+
#endif
2384+
#define SMOOTH_LIN_ADV_HZ 5000 // (Hz) How often to update extruder speed
2385+
#define INPUT_SHAPING_E_SYNC // Synchronize the extruder-shaped XY axes (to increase precision)
2386+
#endif
23692387
#endif
23702388

23712389
/**

config/examples/Alfawise/U20/Configuration_adv.h

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2357,6 +2357,24 @@
23572357
//#define ADVANCE_K_EXTRA // Add a second linear advance constant, configurable with M900 L.
23582358
//#define LA_DEBUG // Print debug information to serial during operation. Disable for production use.
23592359
//#define EXPERIMENTAL_I2S_LA // Allow I2S_STEPPER_STREAM to be used with LA. Performance degrades as the LA step rate reaches ~20kHz.
2360+
2361+
//#define SMOOTH_LIN_ADVANCE // Remove limits on acceleration by gradual increase of nozzle pressure
2362+
#if ENABLED(SMOOTH_LIN_ADVANCE)
2363+
/**
2364+
* ADVANCE_TAU is also the time ahead that the smoother needs to look
2365+
* into the planner, so the planner needs to have enough blocks loaded.
2366+
* For k=0.04 at 10k acceleration and an "Orbiter 2" extruder it can be as low as 0.0075.
2367+
* Adjust by lowering the value until you observe the extruder skipping, then raise slightly.
2368+
* Higher k and higher XY acceleration may require larger ADVANCE_TAU to avoid skipping steps.
2369+
*/
2370+
#if ENABLED(DISTINCT_E_FACTORS)
2371+
#define ADVANCE_TAU { 0.01 } // (s) Smoothing time to reduce extruder acceleration, per extruder
2372+
#else
2373+
#define ADVANCE_TAU 0.01 // (s) Smoothing time to reduce extruder acceleration
2374+
#endif
2375+
#define SMOOTH_LIN_ADV_HZ 5000 // (Hz) How often to update extruder speed
2376+
#define INPUT_SHAPING_E_SYNC // Synchronize the extruder-shaped XY axes (to increase precision)
2377+
#endif
23602378
#endif
23612379

23622380
/**

config/examples/AliExpress/CL-260/Configuration_adv.h

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2356,6 +2356,24 @@
23562356
//#define ADVANCE_K_EXTRA // Add a second linear advance constant, configurable with M900 L.
23572357
//#define LA_DEBUG // Print debug information to serial during operation. Disable for production use.
23582358
//#define EXPERIMENTAL_I2S_LA // Allow I2S_STEPPER_STREAM to be used with LA. Performance degrades as the LA step rate reaches ~20kHz.
2359+
2360+
//#define SMOOTH_LIN_ADVANCE // Remove limits on acceleration by gradual increase of nozzle pressure
2361+
#if ENABLED(SMOOTH_LIN_ADVANCE)
2362+
/**
2363+
* ADVANCE_TAU is also the time ahead that the smoother needs to look
2364+
* into the planner, so the planner needs to have enough blocks loaded.
2365+
* For k=0.04 at 10k acceleration and an "Orbiter 2" extruder it can be as low as 0.0075.
2366+
* Adjust by lowering the value until you observe the extruder skipping, then raise slightly.
2367+
* Higher k and higher XY acceleration may require larger ADVANCE_TAU to avoid skipping steps.
2368+
*/
2369+
#if ENABLED(DISTINCT_E_FACTORS)
2370+
#define ADVANCE_TAU { 0.01 } // (s) Smoothing time to reduce extruder acceleration, per extruder
2371+
#else
2372+
#define ADVANCE_TAU 0.01 // (s) Smoothing time to reduce extruder acceleration
2373+
#endif
2374+
#define SMOOTH_LIN_ADV_HZ 5000 // (Hz) How often to update extruder speed
2375+
#define INPUT_SHAPING_E_SYNC // Synchronize the extruder-shaped XY axes (to increase precision)
2376+
#endif
23592377
#endif
23602378

23612379
/**

config/examples/AliExpress/UM2pExt/Configuration_adv.h

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2356,6 +2356,24 @@
23562356
//#define ADVANCE_K_EXTRA // Add a second linear advance constant, configurable with M900 L.
23572357
//#define LA_DEBUG // Print debug information to serial during operation. Disable for production use.
23582358
//#define EXPERIMENTAL_I2S_LA // Allow I2S_STEPPER_STREAM to be used with LA. Performance degrades as the LA step rate reaches ~20kHz.
2359+
2360+
//#define SMOOTH_LIN_ADVANCE // Remove limits on acceleration by gradual increase of nozzle pressure
2361+
#if ENABLED(SMOOTH_LIN_ADVANCE)
2362+
/**
2363+
* ADVANCE_TAU is also the time ahead that the smoother needs to look
2364+
* into the planner, so the planner needs to have enough blocks loaded.
2365+
* For k=0.04 at 10k acceleration and an "Orbiter 2" extruder it can be as low as 0.0075.
2366+
* Adjust by lowering the value until you observe the extruder skipping, then raise slightly.
2367+
* Higher k and higher XY acceleration may require larger ADVANCE_TAU to avoid skipping steps.
2368+
*/
2369+
#if ENABLED(DISTINCT_E_FACTORS)
2370+
#define ADVANCE_TAU { 0.01 } // (s) Smoothing time to reduce extruder acceleration, per extruder
2371+
#else
2372+
#define ADVANCE_TAU 0.01 // (s) Smoothing time to reduce extruder acceleration
2373+
#endif
2374+
#define SMOOTH_LIN_ADV_HZ 5000 // (Hz) How often to update extruder speed
2375+
#define INPUT_SHAPING_E_SYNC // Synchronize the extruder-shaped XY axes (to increase precision)
2376+
#endif
23592377
#endif
23602378

23612379
/**

config/examples/Anet/A2/Configuration_adv.h

Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2356,6 +2356,24 @@
23562356
//#define ADVANCE_K_EXTRA // Add a second linear advance constant, configurable with M900 L.
23572357
//#define LA_DEBUG // Print debug information to serial during operation. Disable for production use.
23582358
//#define EXPERIMENTAL_I2S_LA // Allow I2S_STEPPER_STREAM to be used with LA. Performance degrades as the LA step rate reaches ~20kHz.
2359+
2360+
//#define SMOOTH_LIN_ADVANCE // Remove limits on acceleration by gradual increase of nozzle pressure
2361+
#if ENABLED(SMOOTH_LIN_ADVANCE)
2362+
/**
2363+
* ADVANCE_TAU is also the time ahead that the smoother needs to look
2364+
* into the planner, so the planner needs to have enough blocks loaded.
2365+
* For k=0.04 at 10k acceleration and an "Orbiter 2" extruder it can be as low as 0.0075.
2366+
* Adjust by lowering the value until you observe the extruder skipping, then raise slightly.
2367+
* Higher k and higher XY acceleration may require larger ADVANCE_TAU to avoid skipping steps.
2368+
*/
2369+
#if ENABLED(DISTINCT_E_FACTORS)
2370+
#define ADVANCE_TAU { 0.01 } // (s) Smoothing time to reduce extruder acceleration, per extruder
2371+
#else
2372+
#define ADVANCE_TAU 0.01 // (s) Smoothing time to reduce extruder acceleration
2373+
#endif
2374+
#define SMOOTH_LIN_ADV_HZ 5000 // (Hz) How often to update extruder speed
2375+
#define INPUT_SHAPING_E_SYNC // Synchronize the extruder-shaped XY axes (to increase precision)
2376+
#endif
23592377
#endif
23602378

23612379
/**

0 commit comments

Comments
 (0)