Browse Source

Merge pull request #5056 from thinkyhead/rc_lin_adv_opt

LIN_ADVANCE optimizations
pull/1/head
Scott Lahteine 8 years ago
committed by GitHub
parent
commit
627f9d5285
  1. 17
      Marlin/Configuration_adv.h
  2. 17
      Marlin/example_configurations/Cartesio/Configuration_adv.h
  3. 17
      Marlin/example_configurations/Felix/Configuration_adv.h
  4. 17
      Marlin/example_configurations/Hephestos/Configuration_adv.h
  5. 17
      Marlin/example_configurations/Hephestos_2/Configuration_adv.h
  6. 17
      Marlin/example_configurations/K8200/Configuration_adv.h
  7. 17
      Marlin/example_configurations/K8400/Configuration_adv.h
  8. 17
      Marlin/example_configurations/RigidBot/Configuration_adv.h
  9. 17
      Marlin/example_configurations/SCARA/Configuration_adv.h
  10. 17
      Marlin/example_configurations/TAZ4/Configuration_adv.h
  11. 17
      Marlin/example_configurations/WITBOX/Configuration_adv.h
  12. 17
      Marlin/example_configurations/delta/biv2.5/Configuration_adv.h
  13. 17
      Marlin/example_configurations/delta/generic/Configuration_adv.h
  14. 17
      Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h
  15. 17
      Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h
  16. 17
      Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h
  17. 17
      Marlin/example_configurations/makibox/Configuration_adv.h
  18. 17
      Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h
  19. 2
      Marlin/planner.cpp

17
Marlin/Configuration_adv.h

@ -501,9 +501,20 @@
#define D_FILAMENT 2.85 #define D_FILAMENT 2.85
#endif #endif
// Implementation of a linear pressure control /**
// Assumption: advance = k * (delta velocity) * Implementation of linear pressure control
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 *
* 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 //#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE) #if ENABLED(LIN_ADVANCE)

17
Marlin/example_configurations/Cartesio/Configuration_adv.h

@ -501,9 +501,20 @@
#define D_FILAMENT 2.85 #define D_FILAMENT 2.85
#endif #endif
// Implementation of a linear pressure control /**
// Assumption: advance = k * (delta velocity) * Implementation of linear pressure control
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 *
* 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 //#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE) #if ENABLED(LIN_ADVANCE)

17
Marlin/example_configurations/Felix/Configuration_adv.h

@ -501,9 +501,20 @@
#define D_FILAMENT 2.85 #define D_FILAMENT 2.85
#endif #endif
// Implementation of a linear pressure control /**
// Assumption: advance = k * (delta velocity) * Implementation of linear pressure control
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 *
* 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 //#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE) #if ENABLED(LIN_ADVANCE)

17
Marlin/example_configurations/Hephestos/Configuration_adv.h

@ -501,9 +501,20 @@
#define D_FILAMENT 1.75 #define D_FILAMENT 1.75
#endif #endif
// Implementation of a linear pressure control /**
// Assumption: advance = k * (delta velocity) * Implementation of linear pressure control
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 *
* 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 //#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE) #if ENABLED(LIN_ADVANCE)

17
Marlin/example_configurations/Hephestos_2/Configuration_adv.h

@ -501,9 +501,20 @@
#define D_FILAMENT 2.85 #define D_FILAMENT 2.85
#endif #endif
// Implementation of a linear pressure control /**
// Assumption: advance = k * (delta velocity) * Implementation of linear pressure control
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 *
* 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 //#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE) #if ENABLED(LIN_ADVANCE)

17
Marlin/example_configurations/K8200/Configuration_adv.h

@ -507,9 +507,20 @@
#define D_FILAMENT 2.85 #define D_FILAMENT 2.85
#endif #endif
// Implementation of a linear pressure control /**
// Assumption: advance = k * (delta velocity) * Implementation of linear pressure control
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 *
* 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 //#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE) #if ENABLED(LIN_ADVANCE)

17
Marlin/example_configurations/K8400/Configuration_adv.h

@ -501,9 +501,20 @@
#define D_FILAMENT 2.85 #define D_FILAMENT 2.85
#endif #endif
// Implementation of a linear pressure control /**
// Assumption: advance = k * (delta velocity) * Implementation of linear pressure control
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 *
* 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 //#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE) #if ENABLED(LIN_ADVANCE)

17
Marlin/example_configurations/RigidBot/Configuration_adv.h

@ -501,9 +501,20 @@
#define D_FILAMENT 1.75 #define D_FILAMENT 1.75
#endif #endif
// Implementation of a linear pressure control /**
// Assumption: advance = k * (delta velocity) * Implementation of linear pressure control
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 *
* 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 //#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE) #if ENABLED(LIN_ADVANCE)

17
Marlin/example_configurations/SCARA/Configuration_adv.h

@ -501,9 +501,20 @@
#define D_FILAMENT 1.75 #define D_FILAMENT 1.75
#endif #endif
// Implementation of a linear pressure control /**
// Assumption: advance = k * (delta velocity) * Implementation of linear pressure control
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 *
* 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 //#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE) #if ENABLED(LIN_ADVANCE)

17
Marlin/example_configurations/TAZ4/Configuration_adv.h

@ -509,9 +509,20 @@
#define D_FILAMENT 2.85 #define D_FILAMENT 2.85
#endif #endif
// Implementation of a linear pressure control /**
// Assumption: advance = k * (delta velocity) * Implementation of linear pressure control
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 *
* 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 //#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE) #if ENABLED(LIN_ADVANCE)

17
Marlin/example_configurations/WITBOX/Configuration_adv.h

@ -501,9 +501,20 @@
#define D_FILAMENT 1.75 #define D_FILAMENT 1.75
#endif #endif
// Implementation of a linear pressure control /**
// Assumption: advance = k * (delta velocity) * Implementation of linear pressure control
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 *
* 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 //#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE) #if ENABLED(LIN_ADVANCE)

17
Marlin/example_configurations/delta/biv2.5/Configuration_adv.h

@ -503,9 +503,20 @@
#define D_FILAMENT 2.85 #define D_FILAMENT 2.85
#endif #endif
// Implementation of a linear pressure control /**
// Assumption: advance = k * (delta velocity) * Implementation of linear pressure control
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 *
* 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 //#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE) #if ENABLED(LIN_ADVANCE)

17
Marlin/example_configurations/delta/generic/Configuration_adv.h

@ -503,9 +503,20 @@
#define D_FILAMENT 2.85 #define D_FILAMENT 2.85
#endif #endif
// Implementation of a linear pressure control /**
// Assumption: advance = k * (delta velocity) * Implementation of linear pressure control
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 *
* 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 //#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE) #if ENABLED(LIN_ADVANCE)

17
Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h

@ -503,9 +503,20 @@
#define D_FILAMENT 2.85 #define D_FILAMENT 2.85
#endif #endif
// Implementation of a linear pressure control /**
// Assumption: advance = k * (delta velocity) * Implementation of linear pressure control
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 *
* 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 //#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE) #if ENABLED(LIN_ADVANCE)

17
Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h

@ -508,9 +508,20 @@
#define D_FILAMENT 2.85 #define D_FILAMENT 2.85
#endif #endif
// Implementation of a linear pressure control /**
// Assumption: advance = k * (delta velocity) * Implementation of linear pressure control
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 *
* 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 //#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE) #if ENABLED(LIN_ADVANCE)

17
Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h

@ -503,9 +503,20 @@
#define D_FILAMENT 2.85 #define D_FILAMENT 2.85
#endif #endif
// Implementation of a linear pressure control /**
// Assumption: advance = k * (delta velocity) * Implementation of linear pressure control
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 *
* 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 //#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE) #if ENABLED(LIN_ADVANCE)

17
Marlin/example_configurations/makibox/Configuration_adv.h

@ -501,9 +501,20 @@
#define D_FILAMENT 2.85 #define D_FILAMENT 2.85
#endif #endif
// Implementation of a linear pressure control /**
// Assumption: advance = k * (delta velocity) * Implementation of linear pressure control
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 *
* 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 //#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE) #if ENABLED(LIN_ADVANCE)

17
Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h

@ -501,9 +501,20 @@
#define D_FILAMENT 2.85 #define D_FILAMENT 2.85
#endif #endif
// Implementation of a linear pressure control /**
// Assumption: advance = k * (delta velocity) * Implementation of linear pressure control
// K=0 means advance disabled. A good value for a gregs wade extruder will be around K=75 *
* 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 //#define LIN_ADVANCE
#if ENABLED(LIN_ADVANCE) #if ENABLED(LIN_ADVANCE)

2
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. // 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! // The math is correct, but you don't want a retract move done with advance!
// So this situation is filtered out here. // 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; block->use_advance_lead = false;
} }
else { else {

Loading…
Cancel
Save