diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 97bd9803f..a0a65f9c2 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -501,9 +501,20 @@ #define D_FILAMENT 2.85 #endif -// Implementation of a linear pressure control -// Assumption: advance = k * (delta velocity) -// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 +/** + * Implementation of linear pressure control + * + * Assumption: advance = k * (delta velocity) + * K=0 means advance disabled. + * To get a rough start value for calibration, measure your "free filament length" + * between the hobbed bolt and the nozzle (in cm). Use the formula below that fits + * your setup, where L is the "free filament length": + * + * Filament diameter | 1.75mm | 3.0mm | + * ----------------------------|-----------|------------| + * Stiff filament (PLA) | K=47*L/10 | K=139*L/10 | + * Softer filament (ABS, nGen) | K=88*L/10 | K=260*L/10 | + */ //#define LIN_ADVANCE #if ENABLED(LIN_ADVANCE) diff --git a/Marlin/example_configurations/Cartesio/Configuration_adv.h b/Marlin/example_configurations/Cartesio/Configuration_adv.h index 951d5df8b..98e491221 100644 --- a/Marlin/example_configurations/Cartesio/Configuration_adv.h +++ b/Marlin/example_configurations/Cartesio/Configuration_adv.h @@ -501,9 +501,20 @@ #define D_FILAMENT 2.85 #endif -// Implementation of a linear pressure control -// Assumption: advance = k * (delta velocity) -// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 +/** + * Implementation of linear pressure control + * + * Assumption: advance = k * (delta velocity) + * K=0 means advance disabled. + * To get a rough start value for calibration, measure your "free filament length" + * between the hobbed bolt and the nozzle (in cm). Use the formula below that fits + * your setup, where L is the "free filament length": + * + * Filament diameter | 1.75mm | 3.0mm | + * ----------------------------|-----------|------------| + * Stiff filament (PLA) | K=47*L/10 | K=139*L/10 | + * Softer filament (ABS, nGen) | K=88*L/10 | K=260*L/10 | + */ //#define LIN_ADVANCE #if ENABLED(LIN_ADVANCE) diff --git a/Marlin/example_configurations/Felix/Configuration_adv.h b/Marlin/example_configurations/Felix/Configuration_adv.h index dfcabe6b1..4138656e2 100644 --- a/Marlin/example_configurations/Felix/Configuration_adv.h +++ b/Marlin/example_configurations/Felix/Configuration_adv.h @@ -501,9 +501,20 @@ #define D_FILAMENT 2.85 #endif -// Implementation of a linear pressure control -// Assumption: advance = k * (delta velocity) -// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 +/** + * Implementation of linear pressure control + * + * Assumption: advance = k * (delta velocity) + * K=0 means advance disabled. + * To get a rough start value for calibration, measure your "free filament length" + * between the hobbed bolt and the nozzle (in cm). Use the formula below that fits + * your setup, where L is the "free filament length": + * + * Filament diameter | 1.75mm | 3.0mm | + * ----------------------------|-----------|------------| + * Stiff filament (PLA) | K=47*L/10 | K=139*L/10 | + * Softer filament (ABS, nGen) | K=88*L/10 | K=260*L/10 | + */ //#define LIN_ADVANCE #if ENABLED(LIN_ADVANCE) diff --git a/Marlin/example_configurations/Hephestos/Configuration_adv.h b/Marlin/example_configurations/Hephestos/Configuration_adv.h index 6e8d66f8d..fb337fc77 100644 --- a/Marlin/example_configurations/Hephestos/Configuration_adv.h +++ b/Marlin/example_configurations/Hephestos/Configuration_adv.h @@ -501,9 +501,20 @@ #define D_FILAMENT 1.75 #endif -// Implementation of a linear pressure control -// Assumption: advance = k * (delta velocity) -// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 +/** + * Implementation of linear pressure control + * + * Assumption: advance = k * (delta velocity) + * K=0 means advance disabled. + * To get a rough start value for calibration, measure your "free filament length" + * between the hobbed bolt and the nozzle (in cm). Use the formula below that fits + * your setup, where L is the "free filament length": + * + * Filament diameter | 1.75mm | 3.0mm | + * ----------------------------|-----------|------------| + * Stiff filament (PLA) | K=47*L/10 | K=139*L/10 | + * Softer filament (ABS, nGen) | K=88*L/10 | K=260*L/10 | + */ //#define LIN_ADVANCE #if ENABLED(LIN_ADVANCE) diff --git a/Marlin/example_configurations/Hephestos_2/Configuration_adv.h b/Marlin/example_configurations/Hephestos_2/Configuration_adv.h index e15be7234..e5c46ae26 100644 --- a/Marlin/example_configurations/Hephestos_2/Configuration_adv.h +++ b/Marlin/example_configurations/Hephestos_2/Configuration_adv.h @@ -501,9 +501,20 @@ #define D_FILAMENT 2.85 #endif -// Implementation of a linear pressure control -// Assumption: advance = k * (delta velocity) -// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 +/** + * Implementation of linear pressure control + * + * Assumption: advance = k * (delta velocity) + * K=0 means advance disabled. + * To get a rough start value for calibration, measure your "free filament length" + * between the hobbed bolt and the nozzle (in cm). Use the formula below that fits + * your setup, where L is the "free filament length": + * + * Filament diameter | 1.75mm | 3.0mm | + * ----------------------------|-----------|------------| + * Stiff filament (PLA) | K=47*L/10 | K=139*L/10 | + * Softer filament (ABS, nGen) | K=88*L/10 | K=260*L/10 | + */ //#define LIN_ADVANCE #if ENABLED(LIN_ADVANCE) diff --git a/Marlin/example_configurations/K8200/Configuration_adv.h b/Marlin/example_configurations/K8200/Configuration_adv.h index b2c6fd483..0985448e1 100644 --- a/Marlin/example_configurations/K8200/Configuration_adv.h +++ b/Marlin/example_configurations/K8200/Configuration_adv.h @@ -507,9 +507,20 @@ #define D_FILAMENT 2.85 #endif -// Implementation of a linear pressure control -// Assumption: advance = k * (delta velocity) -// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 +/** + * Implementation of linear pressure control + * + * Assumption: advance = k * (delta velocity) + * K=0 means advance disabled. + * To get a rough start value for calibration, measure your "free filament length" + * between the hobbed bolt and the nozzle (in cm). Use the formula below that fits + * your setup, where L is the "free filament length": + * + * Filament diameter | 1.75mm | 3.0mm | + * ----------------------------|-----------|------------| + * Stiff filament (PLA) | K=47*L/10 | K=139*L/10 | + * Softer filament (ABS, nGen) | K=88*L/10 | K=260*L/10 | + */ //#define LIN_ADVANCE #if ENABLED(LIN_ADVANCE) diff --git a/Marlin/example_configurations/K8400/Configuration_adv.h b/Marlin/example_configurations/K8400/Configuration_adv.h index 50fd0e0c7..ebb9e8371 100644 --- a/Marlin/example_configurations/K8400/Configuration_adv.h +++ b/Marlin/example_configurations/K8400/Configuration_adv.h @@ -501,9 +501,20 @@ #define D_FILAMENT 2.85 #endif -// Implementation of a linear pressure control -// Assumption: advance = k * (delta velocity) -// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 +/** + * Implementation of linear pressure control + * + * Assumption: advance = k * (delta velocity) + * K=0 means advance disabled. + * To get a rough start value for calibration, measure your "free filament length" + * between the hobbed bolt and the nozzle (in cm). Use the formula below that fits + * your setup, where L is the "free filament length": + * + * Filament diameter | 1.75mm | 3.0mm | + * ----------------------------|-----------|------------| + * Stiff filament (PLA) | K=47*L/10 | K=139*L/10 | + * Softer filament (ABS, nGen) | K=88*L/10 | K=260*L/10 | + */ //#define LIN_ADVANCE #if ENABLED(LIN_ADVANCE) diff --git a/Marlin/example_configurations/RigidBot/Configuration_adv.h b/Marlin/example_configurations/RigidBot/Configuration_adv.h index 8dbc685dd..ad70111aa 100644 --- a/Marlin/example_configurations/RigidBot/Configuration_adv.h +++ b/Marlin/example_configurations/RigidBot/Configuration_adv.h @@ -501,9 +501,20 @@ #define D_FILAMENT 1.75 #endif -// Implementation of a linear pressure control -// Assumption: advance = k * (delta velocity) -// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 +/** + * Implementation of linear pressure control + * + * Assumption: advance = k * (delta velocity) + * K=0 means advance disabled. + * To get a rough start value for calibration, measure your "free filament length" + * between the hobbed bolt and the nozzle (in cm). Use the formula below that fits + * your setup, where L is the "free filament length": + * + * Filament diameter | 1.75mm | 3.0mm | + * ----------------------------|-----------|------------| + * Stiff filament (PLA) | K=47*L/10 | K=139*L/10 | + * Softer filament (ABS, nGen) | K=88*L/10 | K=260*L/10 | + */ //#define LIN_ADVANCE #if ENABLED(LIN_ADVANCE) diff --git a/Marlin/example_configurations/SCARA/Configuration_adv.h b/Marlin/example_configurations/SCARA/Configuration_adv.h index 51f6cb512..331234018 100644 --- a/Marlin/example_configurations/SCARA/Configuration_adv.h +++ b/Marlin/example_configurations/SCARA/Configuration_adv.h @@ -501,9 +501,20 @@ #define D_FILAMENT 1.75 #endif -// Implementation of a linear pressure control -// Assumption: advance = k * (delta velocity) -// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 +/** + * Implementation of linear pressure control + * + * Assumption: advance = k * (delta velocity) + * K=0 means advance disabled. + * To get a rough start value for calibration, measure your "free filament length" + * between the hobbed bolt and the nozzle (in cm). Use the formula below that fits + * your setup, where L is the "free filament length": + * + * Filament diameter | 1.75mm | 3.0mm | + * ----------------------------|-----------|------------| + * Stiff filament (PLA) | K=47*L/10 | K=139*L/10 | + * Softer filament (ABS, nGen) | K=88*L/10 | K=260*L/10 | + */ //#define LIN_ADVANCE #if ENABLED(LIN_ADVANCE) diff --git a/Marlin/example_configurations/TAZ4/Configuration_adv.h b/Marlin/example_configurations/TAZ4/Configuration_adv.h index 096d97edc..28eab90c7 100644 --- a/Marlin/example_configurations/TAZ4/Configuration_adv.h +++ b/Marlin/example_configurations/TAZ4/Configuration_adv.h @@ -509,9 +509,20 @@ #define D_FILAMENT 2.85 #endif -// Implementation of a linear pressure control -// Assumption: advance = k * (delta velocity) -// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 +/** + * Implementation of linear pressure control + * + * Assumption: advance = k * (delta velocity) + * K=0 means advance disabled. + * To get a rough start value for calibration, measure your "free filament length" + * between the hobbed bolt and the nozzle (in cm). Use the formula below that fits + * your setup, where L is the "free filament length": + * + * Filament diameter | 1.75mm | 3.0mm | + * ----------------------------|-----------|------------| + * Stiff filament (PLA) | K=47*L/10 | K=139*L/10 | + * Softer filament (ABS, nGen) | K=88*L/10 | K=260*L/10 | + */ //#define LIN_ADVANCE #if ENABLED(LIN_ADVANCE) diff --git a/Marlin/example_configurations/WITBOX/Configuration_adv.h b/Marlin/example_configurations/WITBOX/Configuration_adv.h index 6e8d66f8d..fb337fc77 100644 --- a/Marlin/example_configurations/WITBOX/Configuration_adv.h +++ b/Marlin/example_configurations/WITBOX/Configuration_adv.h @@ -501,9 +501,20 @@ #define D_FILAMENT 1.75 #endif -// Implementation of a linear pressure control -// Assumption: advance = k * (delta velocity) -// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 +/** + * Implementation of linear pressure control + * + * Assumption: advance = k * (delta velocity) + * K=0 means advance disabled. + * To get a rough start value for calibration, measure your "free filament length" + * between the hobbed bolt and the nozzle (in cm). Use the formula below that fits + * your setup, where L is the "free filament length": + * + * Filament diameter | 1.75mm | 3.0mm | + * ----------------------------|-----------|------------| + * Stiff filament (PLA) | K=47*L/10 | K=139*L/10 | + * Softer filament (ABS, nGen) | K=88*L/10 | K=260*L/10 | + */ //#define LIN_ADVANCE #if ENABLED(LIN_ADVANCE) diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h b/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h index c5b8101a5..e22c36ce7 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h @@ -503,9 +503,20 @@ #define D_FILAMENT 2.85 #endif -// Implementation of a linear pressure control -// Assumption: advance = k * (delta velocity) -// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 +/** + * Implementation of linear pressure control + * + * Assumption: advance = k * (delta velocity) + * K=0 means advance disabled. + * To get a rough start value for calibration, measure your "free filament length" + * between the hobbed bolt and the nozzle (in cm). Use the formula below that fits + * your setup, where L is the "free filament length": + * + * Filament diameter | 1.75mm | 3.0mm | + * ----------------------------|-----------|------------| + * Stiff filament (PLA) | K=47*L/10 | K=139*L/10 | + * Softer filament (ABS, nGen) | K=88*L/10 | K=260*L/10 | + */ //#define LIN_ADVANCE #if ENABLED(LIN_ADVANCE) diff --git a/Marlin/example_configurations/delta/generic/Configuration_adv.h b/Marlin/example_configurations/delta/generic/Configuration_adv.h index 870c67c7e..d8da99e48 100644 --- a/Marlin/example_configurations/delta/generic/Configuration_adv.h +++ b/Marlin/example_configurations/delta/generic/Configuration_adv.h @@ -503,9 +503,20 @@ #define D_FILAMENT 2.85 #endif -// Implementation of a linear pressure control -// Assumption: advance = k * (delta velocity) -// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 +/** + * Implementation of linear pressure control + * + * Assumption: advance = k * (delta velocity) + * K=0 means advance disabled. + * To get a rough start value for calibration, measure your "free filament length" + * between the hobbed bolt and the nozzle (in cm). Use the formula below that fits + * your setup, where L is the "free filament length": + * + * Filament diameter | 1.75mm | 3.0mm | + * ----------------------------|-----------|------------| + * Stiff filament (PLA) | K=47*L/10 | K=139*L/10 | + * Softer filament (ABS, nGen) | K=88*L/10 | K=260*L/10 | + */ //#define LIN_ADVANCE #if ENABLED(LIN_ADVANCE) diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h index 870c67c7e..d8da99e48 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h @@ -503,9 +503,20 @@ #define D_FILAMENT 2.85 #endif -// Implementation of a linear pressure control -// Assumption: advance = k * (delta velocity) -// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 +/** + * Implementation of linear pressure control + * + * Assumption: advance = k * (delta velocity) + * K=0 means advance disabled. + * To get a rough start value for calibration, measure your "free filament length" + * between the hobbed bolt and the nozzle (in cm). Use the formula below that fits + * your setup, where L is the "free filament length": + * + * Filament diameter | 1.75mm | 3.0mm | + * ----------------------------|-----------|------------| + * Stiff filament (PLA) | K=47*L/10 | K=139*L/10 | + * Softer filament (ABS, nGen) | K=88*L/10 | K=260*L/10 | + */ //#define LIN_ADVANCE #if ENABLED(LIN_ADVANCE) diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h index 5c68f33de..8f80d130c 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h @@ -508,9 +508,20 @@ #define D_FILAMENT 2.85 #endif -// Implementation of a linear pressure control -// Assumption: advance = k * (delta velocity) -// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 +/** + * Implementation of linear pressure control + * + * Assumption: advance = k * (delta velocity) + * K=0 means advance disabled. + * To get a rough start value for calibration, measure your "free filament length" + * between the hobbed bolt and the nozzle (in cm). Use the formula below that fits + * your setup, where L is the "free filament length": + * + * Filament diameter | 1.75mm | 3.0mm | + * ----------------------------|-----------|------------| + * Stiff filament (PLA) | K=47*L/10 | K=139*L/10 | + * Softer filament (ABS, nGen) | K=88*L/10 | K=260*L/10 | + */ //#define LIN_ADVANCE #if ENABLED(LIN_ADVANCE) diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h index 0a12114ff..698f9270b 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h @@ -503,9 +503,20 @@ #define D_FILAMENT 2.85 #endif -// Implementation of a linear pressure control -// Assumption: advance = k * (delta velocity) -// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 +/** + * Implementation of linear pressure control + * + * Assumption: advance = k * (delta velocity) + * K=0 means advance disabled. + * To get a rough start value for calibration, measure your "free filament length" + * between the hobbed bolt and the nozzle (in cm). Use the formula below that fits + * your setup, where L is the "free filament length": + * + * Filament diameter | 1.75mm | 3.0mm | + * ----------------------------|-----------|------------| + * Stiff filament (PLA) | K=47*L/10 | K=139*L/10 | + * Softer filament (ABS, nGen) | K=88*L/10 | K=260*L/10 | + */ //#define LIN_ADVANCE #if ENABLED(LIN_ADVANCE) diff --git a/Marlin/example_configurations/makibox/Configuration_adv.h b/Marlin/example_configurations/makibox/Configuration_adv.h index dc08d5b1e..d1a0f66fa 100644 --- a/Marlin/example_configurations/makibox/Configuration_adv.h +++ b/Marlin/example_configurations/makibox/Configuration_adv.h @@ -501,9 +501,20 @@ #define D_FILAMENT 2.85 #endif -// Implementation of a linear pressure control -// Assumption: advance = k * (delta velocity) -// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 +/** + * Implementation of linear pressure control + * + * Assumption: advance = k * (delta velocity) + * K=0 means advance disabled. + * To get a rough start value for calibration, measure your "free filament length" + * between the hobbed bolt and the nozzle (in cm). Use the formula below that fits + * your setup, where L is the "free filament length": + * + * Filament diameter | 1.75mm | 3.0mm | + * ----------------------------|-----------|------------| + * Stiff filament (PLA) | K=47*L/10 | K=139*L/10 | + * Softer filament (ABS, nGen) | K=88*L/10 | K=260*L/10 | + */ //#define LIN_ADVANCE #if ENABLED(LIN_ADVANCE) diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h b/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h index dc57f5212..f68070341 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h @@ -501,9 +501,20 @@ #define D_FILAMENT 2.85 #endif -// Implementation of a linear pressure control -// Assumption: advance = k * (delta velocity) -// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 +/** + * Implementation of linear pressure control + * + * Assumption: advance = k * (delta velocity) + * K=0 means advance disabled. + * To get a rough start value for calibration, measure your "free filament length" + * between the hobbed bolt and the nozzle (in cm). Use the formula below that fits + * your setup, where L is the "free filament length": + * + * Filament diameter | 1.75mm | 3.0mm | + * ----------------------------|-----------|------------| + * Stiff filament (PLA) | K=47*L/10 | K=139*L/10 | + * Softer filament (ABS, nGen) | K=88*L/10 | K=260*L/10 | + */ //#define LIN_ADVANCE #if ENABLED(LIN_ADVANCE) diff --git a/Marlin/planner.cpp b/Marlin/planner.cpp index ffacf76db..cfc23dfd3 100644 --- a/Marlin/planner.cpp +++ b/Marlin/planner.cpp @@ -1206,7 +1206,7 @@ void Planner::_buffer_line(const float &a, const float &b, const float &c, const // This leads to an enormous number of advance steps due to a huge e_acceleration. // The math is correct, but you don't want a retract move done with advance! // So this situation is filtered out here. - if (!block->steps[E_AXIS] || (!block->steps[X_AXIS] && !block->steps[Y_AXIS] && !block->steps[Z_AXIS]) || stepper.get_advance_k() == 0 || (uint32_t) block->steps[E_AXIS] == block->step_event_count) { + if (!block->steps[E_AXIS] || (!block->steps[X_AXIS] && !block->steps[Y_AXIS]) || stepper.get_advance_k() == 0 || (uint32_t) block->steps[E_AXIS] == block->step_event_count) { block->use_advance_lead = false; } else {