Merge pull request #7909 from thinkyhead/bf2_goodbye_legacy_advance
[2.0.x] Remove legacy ADVANCE feature
This commit is contained in:
commit
b30b55307c
@ -615,20 +615,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 2.85
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -615,20 +615,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 2.85
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -614,20 +614,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 2.85
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -614,20 +614,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 2.85
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -614,20 +614,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 2.85
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -614,20 +614,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 1.75
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -614,20 +614,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 2.85
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -614,20 +614,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 1.75
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -614,20 +614,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 2.85
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -614,20 +614,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 2.85
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -614,20 +614,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 2.85
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -614,20 +614,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 2.85
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -614,20 +614,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 2.85
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -614,20 +614,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 2.85
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -614,20 +614,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 1.75
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -614,20 +614,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 1.75
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -603,20 +603,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 2.85
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -614,20 +614,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 2.85
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -627,20 +627,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 2.85
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -614,20 +614,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 2.85
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -616,20 +616,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 2.85
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -616,20 +616,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 2.85
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -616,20 +616,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 2.85
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -616,20 +616,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 2.85
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -621,20 +621,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 2.85
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -616,20 +616,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 2.85
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -614,20 +614,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 2.85
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -614,20 +614,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 2.85
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -614,20 +614,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 2.85
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -614,20 +614,6 @@
|
|||||||
|
|
||||||
// @section extruder
|
// @section extruder
|
||||||
|
|
||||||
// extruder advance constant (s2/mm3)
|
|
||||||
//
|
|
||||||
// advance (steps) = STEPS_PER_CUBIC_MM_E * EXTRUDER_ADVANCE_K * cubic mm per second ^ 2
|
|
||||||
//
|
|
||||||
// Hooke's law says: force = k * distance
|
|
||||||
// Bernoulli's principle says: v ^ 2 / 2 + g . h + pressure / density = constant
|
|
||||||
// so: v ^ 2 is proportional to number of steps we advance the extruder
|
|
||||||
//#define ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUDER_ADVANCE_K .0
|
|
||||||
#define D_FILAMENT 2.85
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Implementation of linear pressure control
|
* Implementation of linear pressure control
|
||||||
*
|
*
|
||||||
|
@ -209,7 +209,7 @@
|
|||||||
*/
|
*/
|
||||||
// Double stepping starts at STEP_DOUBLER_FREQUENCY + 1, quad stepping starts at STEP_DOUBLER_FREQUENCY * 2 + 1
|
// Double stepping starts at STEP_DOUBLER_FREQUENCY + 1, quad stepping starts at STEP_DOUBLER_FREQUENCY * 2 + 1
|
||||||
#ifndef STEP_DOUBLER_FREQUENCY
|
#ifndef STEP_DOUBLER_FREQUENCY
|
||||||
#if ENABLED(ADVANCE) || ENABLED(LIN_ADVANCE)
|
#if ENABLED(LIN_ADVANCE)
|
||||||
#define STEP_DOUBLER_FREQUENCY 60000 // Hz
|
#define STEP_DOUBLER_FREQUENCY 60000 // Hz
|
||||||
#else
|
#else
|
||||||
#define STEP_DOUBLER_FREQUENCY 80000 // Hz
|
#define STEP_DOUBLER_FREQUENCY 80000 // Hz
|
||||||
@ -260,13 +260,8 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Advance calculated values
|
* Override here because this is set in Configuration_adv.h
|
||||||
*/
|
*/
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
#define EXTRUSION_AREA CIRCLE_CIRC(0.5 * D_FILAMENT)
|
|
||||||
#define STEPS_PER_CUBIC_MM_E (axis_steps_per_mm[E_AXIS_N] / (EXTRUSION_AREA))
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#if ENABLED(ULTIPANEL) && DISABLED(ELB_FULL_GRAPHIC_CONTROLLER)
|
#if ENABLED(ULTIPANEL) && DISABLED(ELB_FULL_GRAPHIC_CONTROLLER)
|
||||||
#undef SD_DETECT_INVERTED
|
#undef SD_DETECT_INVERTED
|
||||||
#endif
|
#endif
|
||||||
|
@ -208,6 +208,8 @@
|
|||||||
#error "CONTROLLERFAN_PIN is now CONTROLLER_FAN_PIN, enabled with USE_CONTROLLER_FAN. Please update your Configuration_adv.h."
|
#error "CONTROLLERFAN_PIN is now CONTROLLER_FAN_PIN, enabled with USE_CONTROLLER_FAN. Please update your Configuration_adv.h."
|
||||||
#elif defined(MIN_RETRACT)
|
#elif defined(MIN_RETRACT)
|
||||||
#error "MIN_RETRACT is now MIN_AUTORETRACT and MAX_AUTORETRACT. Please update your Configuration_adv.h."
|
#error "MIN_RETRACT is now MIN_AUTORETRACT and MAX_AUTORETRACT. Please update your Configuration_adv.h."
|
||||||
|
#elif defined(ADVANCE)
|
||||||
|
#error "ADVANCE was removed in Marlin 1.1.6. Please use LIN_ADVANCE."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -811,13 +813,6 @@ static_assert(1 >= 0
|
|||||||
#endif
|
#endif
|
||||||
#endif // DISABLE_[XYZ]
|
#endif // DISABLE_[XYZ]
|
||||||
|
|
||||||
/**
|
|
||||||
* Advance Extrusion
|
|
||||||
*/
|
|
||||||
#if ENABLED(ADVANCE) && ENABLED(LIN_ADVANCE)
|
|
||||||
#error "You can enable ADVANCE or LIN_ADVANCE, but not both."
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Filament Width Sensor
|
* Filament Width Sensor
|
||||||
*/
|
*/
|
||||||
|
@ -228,10 +228,6 @@ void Planner::calculate_trapezoid_for_block(block_t* const block, const float &e
|
|||||||
block->decelerate_after = accelerate_steps + plateau_steps;
|
block->decelerate_after = accelerate_steps + plateau_steps;
|
||||||
block->initial_rate = initial_rate;
|
block->initial_rate = initial_rate;
|
||||||
block->final_rate = final_rate;
|
block->final_rate = final_rate;
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
block->initial_advance = block->advance * sq(entry_factor);
|
|
||||||
block->final_advance = block->advance * sq(exit_factor);
|
|
||||||
#endif
|
|
||||||
}
|
}
|
||||||
CRITICAL_SECTION_END;
|
CRITICAL_SECTION_END;
|
||||||
}
|
}
|
||||||
@ -1432,27 +1428,7 @@ void Planner::_buffer_line(const float &a, const float &b, const float &c, const
|
|||||||
* axis_steps_per_mm[E_AXIS_N] * 256.0
|
* axis_steps_per_mm[E_AXIS_N] * 256.0
|
||||||
);
|
);
|
||||||
|
|
||||||
#elif ENABLED(ADVANCE)
|
#endif // LIN_ADVANCE
|
||||||
|
|
||||||
// Calculate advance rate
|
|
||||||
if (esteps && (block->steps[X_AXIS] || block->steps[Y_AXIS] || block->steps[Z_AXIS])) {
|
|
||||||
const long acc_dist = estimate_acceleration_distance(0, block->nominal_rate, block->acceleration_steps_per_s2);
|
|
||||||
const float advance = ((STEPS_PER_CUBIC_MM_E) * (EXTRUDER_ADVANCE_K)) * HYPOT(current_speed[E_AXIS], EXTRUSION_AREA) * 256;
|
|
||||||
block->advance = advance;
|
|
||||||
block->advance_rate = acc_dist ? advance / (float)acc_dist : 0;
|
|
||||||
}
|
|
||||||
else
|
|
||||||
block->advance_rate = block->advance = 0;
|
|
||||||
|
|
||||||
/**
|
|
||||||
SERIAL_ECHO_START();
|
|
||||||
SERIAL_ECHOPGM("advance :");
|
|
||||||
SERIAL_ECHO(block->advance/256.0);
|
|
||||||
SERIAL_ECHOPGM("advance rate :");
|
|
||||||
SERIAL_ECHOLN(block->advance_rate/256.0);
|
|
||||||
*/
|
|
||||||
|
|
||||||
#endif // ADVANCE or LIN_ADVANCE
|
|
||||||
|
|
||||||
calculate_trapezoid_for_block(block, block->entry_speed / block->nominal_speed, safe_speed / block->nominal_speed);
|
calculate_trapezoid_for_block(block, block->entry_speed / block->nominal_speed, safe_speed / block->nominal_speed);
|
||||||
|
|
||||||
|
@ -100,11 +100,6 @@ typedef struct {
|
|||||||
#if ENABLED(LIN_ADVANCE)
|
#if ENABLED(LIN_ADVANCE)
|
||||||
bool use_advance_lead;
|
bool use_advance_lead;
|
||||||
uint32_t abs_adv_steps_multiplier8; // Factorised by 2^8 to avoid float
|
uint32_t abs_adv_steps_multiplier8; // Factorised by 2^8 to avoid float
|
||||||
#elif ENABLED(ADVANCE)
|
|
||||||
int32_t advance_rate;
|
|
||||||
volatile int32_t initial_advance;
|
|
||||||
volatile int32_t final_advance;
|
|
||||||
float advance;
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Fields used by the motion planner to manage acceleration
|
// Fields used by the motion planner to manage acceleration
|
||||||
|
@ -108,7 +108,7 @@ long Stepper::counter_X = 0,
|
|||||||
|
|
||||||
volatile uint32_t Stepper::step_events_completed = 0; // The number of step events executed in the current block
|
volatile uint32_t Stepper::step_events_completed = 0; // The number of step events executed in the current block
|
||||||
|
|
||||||
#if ENABLED(ADVANCE) || ENABLED(LIN_ADVANCE)
|
#if ENABLED(LIN_ADVANCE)
|
||||||
|
|
||||||
constexpr HAL_TIMER_TYPE ADV_NEVER = HAL_TIMER_TYPE_MAX;
|
constexpr HAL_TIMER_TYPE ADV_NEVER = HAL_TIMER_TYPE_MAX;
|
||||||
|
|
||||||
@ -116,18 +116,10 @@ volatile uint32_t Stepper::step_events_completed = 0; // The number of step even
|
|||||||
Stepper::nextAdvanceISR = ADV_NEVER,
|
Stepper::nextAdvanceISR = ADV_NEVER,
|
||||||
Stepper::eISR_Rate = ADV_NEVER;
|
Stepper::eISR_Rate = ADV_NEVER;
|
||||||
|
|
||||||
#if ENABLED(LIN_ADVANCE)
|
|
||||||
volatile int Stepper::e_steps[E_STEPPERS];
|
volatile int Stepper::e_steps[E_STEPPERS];
|
||||||
int Stepper::final_estep_rate,
|
int Stepper::final_estep_rate,
|
||||||
Stepper::current_estep_rate[E_STEPPERS],
|
Stepper::current_estep_rate[E_STEPPERS],
|
||||||
Stepper::current_adv_steps[E_STEPPERS];
|
Stepper::current_adv_steps[E_STEPPERS];
|
||||||
#else
|
|
||||||
long Stepper::e_steps[E_STEPPERS],
|
|
||||||
Stepper::final_advance = 0,
|
|
||||||
Stepper::old_advance = 0,
|
|
||||||
Stepper::advance_rate,
|
|
||||||
Stepper::advance;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* See https://github.com/MarlinFirmware/Marlin/issues/5699#issuecomment-309264382
|
* See https://github.com/MarlinFirmware/Marlin/issues/5699#issuecomment-309264382
|
||||||
@ -144,7 +136,7 @@ volatile uint32_t Stepper::step_events_completed = 0; // The number of step even
|
|||||||
return ADV_NEVER;
|
return ADV_NEVER;
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // ADVANCE || LIN_ADVANCE
|
#endif // LIN_ADVANCE
|
||||||
|
|
||||||
long Stepper::acceleration_time, Stepper::deceleration_time;
|
long Stepper::acceleration_time, Stepper::deceleration_time;
|
||||||
|
|
||||||
@ -277,7 +269,7 @@ void Stepper::set_directions() {
|
|||||||
SET_STEP_DIR(Z); // C
|
SET_STEP_DIR(Z); // C
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if DISABLED(ADVANCE) && DISABLED(LIN_ADVANCE)
|
#if DISABLED(LIN_ADVANCE)
|
||||||
if (motor_direction(E_AXIS)) {
|
if (motor_direction(E_AXIS)) {
|
||||||
REV_E_DIR();
|
REV_E_DIR();
|
||||||
count_direction[E_AXIS] = -1;
|
count_direction[E_AXIS] = -1;
|
||||||
@ -286,7 +278,7 @@ void Stepper::set_directions() {
|
|||||||
NORM_E_DIR();
|
NORM_E_DIR();
|
||||||
count_direction[E_AXIS] = 1;
|
count_direction[E_AXIS] = 1;
|
||||||
}
|
}
|
||||||
#endif // !ADVANCE && !LIN_ADVANCE
|
#endif // !LIN_ADVANCE
|
||||||
}
|
}
|
||||||
|
|
||||||
#if ENABLED(ENDSTOP_INTERRUPTS_FEATURE)
|
#if ENABLED(ENDSTOP_INTERRUPTS_FEATURE)
|
||||||
@ -312,7 +304,7 @@ void Stepper::set_directions() {
|
|||||||
|
|
||||||
HAL_STEP_TIMER_ISR {
|
HAL_STEP_TIMER_ISR {
|
||||||
HAL_timer_isr_prologue(STEP_TIMER_NUM);
|
HAL_timer_isr_prologue(STEP_TIMER_NUM);
|
||||||
#if ENABLED(ADVANCE) || ENABLED(LIN_ADVANCE)
|
#if ENABLED(LIN_ADVANCE)
|
||||||
Stepper::advance_isr_scheduler();
|
Stepper::advance_isr_scheduler();
|
||||||
#else
|
#else
|
||||||
Stepper::isr();
|
Stepper::isr();
|
||||||
@ -326,7 +318,7 @@ void Stepper::isr() {
|
|||||||
#define ENDSTOP_NOMINAL_OCR_VAL 1500 * HAL_TICKS_PER_US // check endstops every 1.5ms to guarantee two stepper ISRs within 5ms for BLTouch
|
#define ENDSTOP_NOMINAL_OCR_VAL 1500 * HAL_TICKS_PER_US // check endstops every 1.5ms to guarantee two stepper ISRs within 5ms for BLTouch
|
||||||
#define OCR_VAL_TOLERANCE 500 * HAL_TICKS_PER_US // First max delay is 2.0ms, last min delay is 0.5ms, all others 1.5ms
|
#define OCR_VAL_TOLERANCE 500 * HAL_TICKS_PER_US // First max delay is 2.0ms, last min delay is 0.5ms, all others 1.5ms
|
||||||
|
|
||||||
#if DISABLED(ADVANCE) && DISABLED(LIN_ADVANCE)
|
#if DISABLED(LIN_ADVANCE)
|
||||||
// Disable Timer0 ISRs and enable global ISR again to capture UART events (incoming chars)
|
// Disable Timer0 ISRs and enable global ISR again to capture UART events (incoming chars)
|
||||||
DISABLE_TEMPERATURE_INTERRUPT(); // Temperature ISR
|
DISABLE_TEMPERATURE_INTERRUPT(); // Temperature ISR
|
||||||
DISABLE_STEPPER_DRIVER_INTERRUPT();
|
DISABLE_STEPPER_DRIVER_INTERRUPT();
|
||||||
@ -361,7 +353,7 @@ void Stepper::isr() {
|
|||||||
|
|
||||||
_NEXT_ISR(ocr_val);
|
_NEXT_ISR(ocr_val);
|
||||||
|
|
||||||
#if DISABLED(ADVANCE) && DISABLED(LIN_ADVANCE)
|
#if DISABLED(LIN_ADVANCE)
|
||||||
#ifdef CPU_32_BIT
|
#ifdef CPU_32_BIT
|
||||||
HAL_timer_set_count(STEP_TIMER_NUM, ocr_val);
|
HAL_timer_set_count(STEP_TIMER_NUM, ocr_val);
|
||||||
#else
|
#else
|
||||||
@ -416,10 +408,6 @@ void Stepper::isr() {
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// #if ENABLED(ADVANCE)
|
|
||||||
// e_steps[TOOL_E_INDEX] = 0;
|
|
||||||
// #endif
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
_NEXT_ISR(HAL_STEPPER_TIMER_RATE / 1000); // Run at slow speed - 1 KHz
|
_NEXT_ISR(HAL_STEPPER_TIMER_RATE / 1000); // Run at slow speed - 1 KHz
|
||||||
@ -465,33 +453,7 @@ void Stepper::isr() {
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#elif ENABLED(ADVANCE)
|
#endif // LIN_ADVANCE
|
||||||
|
|
||||||
// Always count the unified E axis
|
|
||||||
counter_E += current_block->steps[E_AXIS];
|
|
||||||
if (counter_E > 0) {
|
|
||||||
counter_E -= current_block->step_event_count;
|
|
||||||
#if DISABLED(MIXING_EXTRUDER)
|
|
||||||
// Don't step E here for mixing extruder
|
|
||||||
motor_direction(E_AXIS) ? --e_steps[TOOL_E_INDEX] : ++e_steps[TOOL_E_INDEX];
|
|
||||||
#endif
|
|
||||||
}
|
|
||||||
|
|
||||||
#if ENABLED(MIXING_EXTRUDER)
|
|
||||||
|
|
||||||
// Step mixing steppers proportionally
|
|
||||||
const bool dir = motor_direction(E_AXIS);
|
|
||||||
MIXING_STEPPERS_LOOP(j) {
|
|
||||||
counter_m[j] += current_block->steps[E_AXIS];
|
|
||||||
if (counter_m[j] > 0) {
|
|
||||||
counter_m[j] -= current_block->mix_event_count[j];
|
|
||||||
dir ? --e_steps[j] : ++e_steps[j];
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
#endif // MIXING_EXTRUDER
|
|
||||||
|
|
||||||
#endif // ADVANCE or LIN_ADVANCE
|
|
||||||
|
|
||||||
#define _COUNTER(AXIS) counter_## AXIS
|
#define _COUNTER(AXIS) counter_## AXIS
|
||||||
#define _APPLY_STEP(AXIS) AXIS ##_APPLY_STEP
|
#define _APPLY_STEP(AXIS) AXIS ##_APPLY_STEP
|
||||||
@ -552,7 +514,7 @@ void Stepper::isr() {
|
|||||||
#else
|
#else
|
||||||
#define _CYCLE_APPROX_6 _CYCLE_APPROX_5
|
#define _CYCLE_APPROX_6 _CYCLE_APPROX_5
|
||||||
#endif
|
#endif
|
||||||
#if DISABLED(ADVANCE) && DISABLED(LIN_ADVANCE)
|
#if DISABLED(LIN_ADVANCE)
|
||||||
#if ENABLED(MIXING_EXTRUDER)
|
#if ENABLED(MIXING_EXTRUDER)
|
||||||
#define _CYCLE_APPROX_7 _CYCLE_APPROX_6 + (MIXING_STEPPERS) * 6
|
#define _CYCLE_APPROX_7 _CYCLE_APPROX_6 + (MIXING_STEPPERS) * 6
|
||||||
#else
|
#else
|
||||||
@ -588,7 +550,7 @@ void Stepper::isr() {
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
// For non-advance use linear interpolation for E also
|
// For non-advance use linear interpolation for E also
|
||||||
#if DISABLED(ADVANCE) && DISABLED(LIN_ADVANCE)
|
#if DISABLED(LIN_ADVANCE)
|
||||||
#if ENABLED(MIXING_EXTRUDER)
|
#if ENABLED(MIXING_EXTRUDER)
|
||||||
// Keep updating the single E axis
|
// Keep updating the single E axis
|
||||||
counter_E += current_block->steps[E_AXIS];
|
counter_E += current_block->steps[E_AXIS];
|
||||||
@ -602,7 +564,7 @@ void Stepper::isr() {
|
|||||||
#else // !MIXING_EXTRUDER
|
#else // !MIXING_EXTRUDER
|
||||||
PULSE_START(E);
|
PULSE_START(E);
|
||||||
#endif
|
#endif
|
||||||
#endif // !ADVANCE && !LIN_ADVANCE
|
#endif // !LIN_ADVANCE
|
||||||
|
|
||||||
// For minimum pulse time wait before stopping pulses
|
// For minimum pulse time wait before stopping pulses
|
||||||
#if EXTRA_CYCLES_XYZE > 20
|
#if EXTRA_CYCLES_XYZE > 20
|
||||||
@ -622,7 +584,7 @@ void Stepper::isr() {
|
|||||||
PULSE_STOP(Z);
|
PULSE_STOP(Z);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if DISABLED(ADVANCE) && DISABLED(LIN_ADVANCE)
|
#if DISABLED(LIN_ADVANCE)
|
||||||
#if ENABLED(MIXING_EXTRUDER)
|
#if ENABLED(MIXING_EXTRUDER)
|
||||||
// Always step the single E axis
|
// Always step the single E axis
|
||||||
if (counter_E > 0) {
|
if (counter_E > 0) {
|
||||||
@ -638,7 +600,7 @@ void Stepper::isr() {
|
|||||||
#else // !MIXING_EXTRUDER
|
#else // !MIXING_EXTRUDER
|
||||||
PULSE_STOP(E);
|
PULSE_STOP(E);
|
||||||
#endif
|
#endif
|
||||||
#endif // !ADVANCE && !LIN_ADVANCE
|
#endif // !LIN_ADVANCE
|
||||||
|
|
||||||
if (++step_events_completed >= current_block->step_event_count) {
|
if (++step_events_completed >= current_block->step_event_count) {
|
||||||
all_steps_done = true;
|
all_steps_done = true;
|
||||||
@ -655,6 +617,7 @@ void Stepper::isr() {
|
|||||||
} // steps_loop
|
} // steps_loop
|
||||||
|
|
||||||
#if ENABLED(LIN_ADVANCE)
|
#if ENABLED(LIN_ADVANCE)
|
||||||
|
|
||||||
if (current_block->use_advance_lead) {
|
if (current_block->use_advance_lead) {
|
||||||
const int delta_adv_steps = current_estep_rate[TOOL_E_INDEX] - current_adv_steps[TOOL_E_INDEX];
|
const int delta_adv_steps = current_estep_rate[TOOL_E_INDEX] - current_adv_steps[TOOL_E_INDEX];
|
||||||
current_adv_steps[TOOL_E_INDEX] += delta_adv_steps;
|
current_adv_steps[TOOL_E_INDEX] += delta_adv_steps;
|
||||||
@ -667,12 +630,10 @@ void Stepper::isr() {
|
|||||||
e_steps[TOOL_E_INDEX] += delta_adv_steps;
|
e_steps[TOOL_E_INDEX] += delta_adv_steps;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE) || ENABLED(LIN_ADVANCE)
|
|
||||||
// If we have esteps to execute, fire the next advance_isr "now"
|
// If we have esteps to execute, fire the next advance_isr "now"
|
||||||
if (e_steps[TOOL_E_INDEX]) nextAdvanceISR = 0;
|
if (e_steps[TOOL_E_INDEX]) nextAdvanceISR = 0;
|
||||||
#endif
|
|
||||||
|
#endif // LIN_ADVANCE
|
||||||
|
|
||||||
// Calculate new timer value
|
// Calculate new timer value
|
||||||
if (step_events_completed <= (uint32_t)current_block->accelerate_until) {
|
if (step_events_completed <= (uint32_t)current_block->accelerate_until) {
|
||||||
@ -705,33 +666,9 @@ void Stepper::isr() {
|
|||||||
current_estep_rate[TOOL_E_INDEX] = ((uint32_t)acc_step_rate * current_block->abs_adv_steps_multiplier8) >> 17;
|
current_estep_rate[TOOL_E_INDEX] = ((uint32_t)acc_step_rate * current_block->abs_adv_steps_multiplier8) >> 17;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif ENABLED(ADVANCE)
|
|
||||||
|
|
||||||
advance += advance_rate * step_loops;
|
|
||||||
//NOLESS(advance, current_block->advance);
|
|
||||||
|
|
||||||
const long advance_whole = advance >> 8,
|
|
||||||
advance_factor = advance_whole - old_advance;
|
|
||||||
|
|
||||||
// Do E steps + advance steps
|
|
||||||
#if ENABLED(MIXING_EXTRUDER)
|
|
||||||
// ...for mixing steppers proportionally
|
|
||||||
MIXING_STEPPERS_LOOP(j)
|
|
||||||
e_steps[j] += advance_factor * current_block->step_event_count / current_block->mix_event_count[j];
|
|
||||||
#else
|
|
||||||
// ...for the active extruder
|
|
||||||
e_steps[TOOL_E_INDEX] += advance_factor;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
old_advance = advance_whole;
|
|
||||||
|
|
||||||
#endif // ADVANCE or LIN_ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE) || ENABLED(LIN_ADVANCE)
|
|
||||||
// TODO: HAL
|
|
||||||
eISR_Rate = adv_rate(e_steps[TOOL_E_INDEX], timer, step_loops);
|
eISR_Rate = adv_rate(e_steps[TOOL_E_INDEX], timer, step_loops);
|
||||||
#endif
|
|
||||||
|
#endif // LIN_ADVANCE
|
||||||
}
|
}
|
||||||
else if (step_events_completed > (uint32_t)current_block->decelerate_after) {
|
else if (step_events_completed > (uint32_t)current_block->decelerate_after) {
|
||||||
HAL_TIMER_TYPE step_rate;
|
HAL_TIMER_TYPE step_rate;
|
||||||
@ -765,30 +702,9 @@ void Stepper::isr() {
|
|||||||
current_estep_rate[TOOL_E_INDEX] = ((uint32_t)step_rate * current_block->abs_adv_steps_multiplier8) >> 17;
|
current_estep_rate[TOOL_E_INDEX] = ((uint32_t)step_rate * current_block->abs_adv_steps_multiplier8) >> 17;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif ENABLED(ADVANCE)
|
|
||||||
|
|
||||||
advance -= advance_rate * step_loops;
|
|
||||||
NOLESS(advance, final_advance);
|
|
||||||
|
|
||||||
// Do E steps + advance steps
|
|
||||||
const long advance_whole = advance >> 8,
|
|
||||||
advance_factor = advance_whole - old_advance;
|
|
||||||
|
|
||||||
#if ENABLED(MIXING_EXTRUDER)
|
|
||||||
MIXING_STEPPERS_LOOP(j)
|
|
||||||
e_steps[j] += advance_factor * current_block->step_event_count / current_block->mix_event_count[j];
|
|
||||||
#else
|
|
||||||
e_steps[TOOL_E_INDEX] += advance_factor;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
old_advance = advance_whole;
|
|
||||||
|
|
||||||
#endif // ADVANCE or LIN_ADVANCE
|
|
||||||
|
|
||||||
#if ENABLED(ADVANCE) || ENABLED(LIN_ADVANCE)
|
|
||||||
eISR_Rate = adv_rate(e_steps[TOOL_E_INDEX], timer, step_loops);
|
eISR_Rate = adv_rate(e_steps[TOOL_E_INDEX], timer, step_loops);
|
||||||
#endif
|
|
||||||
|
#endif // LIN_ADVANCE
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
|
|
||||||
@ -807,7 +723,7 @@ void Stepper::isr() {
|
|||||||
step_loops = step_loops_nominal;
|
step_loops = step_loops_nominal;
|
||||||
}
|
}
|
||||||
|
|
||||||
#if DISABLED(ADVANCE) && DISABLED(LIN_ADVANCE)
|
#if DISABLED(LIN_ADVANCE)
|
||||||
#ifdef CPU_32_BIT
|
#ifdef CPU_32_BIT
|
||||||
// Make sure stepper interrupt does not monopolise CPU by adjusting count to give about 8 us room
|
// Make sure stepper interrupt does not monopolise CPU by adjusting count to give about 8 us room
|
||||||
HAL_TIMER_TYPE stepper_timer_count = HAL_timer_get_count(STEP_TIMER_NUM),
|
HAL_TIMER_TYPE stepper_timer_count = HAL_timer_get_count(STEP_TIMER_NUM),
|
||||||
@ -823,12 +739,12 @@ void Stepper::isr() {
|
|||||||
current_block = NULL;
|
current_block = NULL;
|
||||||
planner.discard_current_block();
|
planner.discard_current_block();
|
||||||
}
|
}
|
||||||
#if DISABLED(ADVANCE) && DISABLED(LIN_ADVANCE)
|
#if DISABLED(LIN_ADVANCE)
|
||||||
HAL_ENABLE_ISRs(); // re-enable ISRs
|
HAL_ENABLE_ISRs(); // re-enable ISRs
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#if ENABLED(ADVANCE) || ENABLED(LIN_ADVANCE)
|
#if ENABLED(LIN_ADVANCE)
|
||||||
|
|
||||||
#define CYCLES_EATEN_E (E_STEPPERS * 5)
|
#define CYCLES_EATEN_E (E_STEPPERS * 5)
|
||||||
#define EXTRA_CYCLES_E (STEP_PULSE_CYCLES - (CYCLES_EATEN_E))
|
#define EXTRA_CYCLES_E (STEP_PULSE_CYCLES - (CYCLES_EATEN_E))
|
||||||
@ -968,7 +884,7 @@ void Stepper::isr() {
|
|||||||
HAL_ENABLE_ISRs();
|
HAL_ENABLE_ISRs();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // ADVANCE or LIN_ADVANCE
|
#endif // LIN_ADVANCE
|
||||||
|
|
||||||
void Stepper::init() {
|
void Stepper::init() {
|
||||||
|
|
||||||
@ -1166,12 +1082,10 @@ void Stepper::init() {
|
|||||||
|
|
||||||
ENABLE_STEPPER_DRIVER_INTERRUPT();
|
ENABLE_STEPPER_DRIVER_INTERRUPT();
|
||||||
|
|
||||||
#if ENABLED(ADVANCE) || ENABLED(LIN_ADVANCE)
|
|
||||||
for (uint8_t i = 0; i < COUNT(e_steps); i++) e_steps[i] = 0;
|
|
||||||
#if ENABLED(LIN_ADVANCE)
|
#if ENABLED(LIN_ADVANCE)
|
||||||
|
for (uint8_t i = 0; i < COUNT(e_steps); i++) e_steps[i] = 0;
|
||||||
ZERO(current_adv_steps);
|
ZERO(current_adv_steps);
|
||||||
#endif
|
#endif
|
||||||
#endif // ADVANCE || LIN_ADVANCE
|
|
||||||
|
|
||||||
endstops.enable(true); // Start with endstops active. After homing they can be disabled
|
endstops.enable(true); // Start with endstops active. After homing they can be disabled
|
||||||
sei();
|
sei();
|
||||||
|
@ -90,25 +90,19 @@ class Stepper {
|
|||||||
static long counter_X, counter_Y, counter_Z, counter_E;
|
static long counter_X, counter_Y, counter_Z, counter_E;
|
||||||
static volatile uint32_t step_events_completed; // The number of step events executed in the current block
|
static volatile uint32_t step_events_completed; // The number of step events executed in the current block
|
||||||
|
|
||||||
#if ENABLED(ADVANCE) || ENABLED(LIN_ADVANCE)
|
#if ENABLED(LIN_ADVANCE)
|
||||||
static HAL_TIMER_TYPE nextMainISR, nextAdvanceISR, eISR_Rate;
|
static HAL_TIMER_TYPE nextMainISR, nextAdvanceISR, eISR_Rate;
|
||||||
#define _NEXT_ISR(T) nextMainISR = T
|
#define _NEXT_ISR(T) nextMainISR = T
|
||||||
|
|
||||||
#if ENABLED(LIN_ADVANCE)
|
|
||||||
static volatile int e_steps[E_STEPPERS];
|
static volatile int e_steps[E_STEPPERS];
|
||||||
static int final_estep_rate;
|
static int final_estep_rate;
|
||||||
static int current_estep_rate[E_STEPPERS]; // Actual extruder speed [steps/s]
|
static int current_estep_rate[E_STEPPERS]; // Actual extruder speed [steps/s]
|
||||||
static int current_adv_steps[E_STEPPERS]; // The amount of current added esteps due to advance.
|
static int current_adv_steps[E_STEPPERS]; // The amount of current added esteps due to advance.
|
||||||
// i.e., the current amount of pressure applied
|
// i.e., the current amount of pressure applied
|
||||||
// to the spring (=filament).
|
// to the spring (=filament).
|
||||||
#else
|
|
||||||
static long e_steps[E_STEPPERS];
|
|
||||||
static long advance_rate, advance, final_advance;
|
|
||||||
static long old_advance;
|
|
||||||
#endif
|
|
||||||
#else
|
#else
|
||||||
#define _NEXT_ISR(T) HAL_timer_set_count(STEP_TIMER_NUM, T);
|
#define _NEXT_ISR(T) HAL_timer_set_count(STEP_TIMER_NUM, T);
|
||||||
#endif // ADVANCE or LIN_ADVANCE
|
#endif // LIN_ADVANCE
|
||||||
|
|
||||||
static long acceleration_time, deceleration_time;
|
static long acceleration_time, deceleration_time;
|
||||||
//unsigned long accelerate_until, decelerate_after, acceleration_rate, initial_rate, final_rate, nominal_rate;
|
//unsigned long accelerate_until, decelerate_after, acceleration_rate, initial_rate, final_rate, nominal_rate;
|
||||||
@ -157,7 +151,7 @@ class Stepper {
|
|||||||
|
|
||||||
static void isr();
|
static void isr();
|
||||||
|
|
||||||
#if ENABLED(ADVANCE) || ENABLED(LIN_ADVANCE)
|
#if ENABLED(LIN_ADVANCE)
|
||||||
static void advance_isr();
|
static void advance_isr();
|
||||||
static void advance_isr_scheduler();
|
static void advance_isr_scheduler();
|
||||||
#endif
|
#endif
|
||||||
@ -344,26 +338,6 @@ class Stepper {
|
|||||||
set_directions();
|
set_directions();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if ENABLED(ADVANCE)
|
|
||||||
|
|
||||||
advance = current_block->initial_advance;
|
|
||||||
final_advance = current_block->final_advance;
|
|
||||||
|
|
||||||
// Do E steps + advance steps
|
|
||||||
#if ENABLED(MIXING_EXTRUDER)
|
|
||||||
long advance_factor = (advance >> 8) - old_advance;
|
|
||||||
// ...for mixing steppers proportionally
|
|
||||||
MIXING_STEPPERS_LOOP(j)
|
|
||||||
e_steps[j] += advance_factor * current_block->step_event_count / current_block->mix_event_count[j];
|
|
||||||
#else
|
|
||||||
// ...for the active extruder
|
|
||||||
e_steps[TOOL_E_INDEX] += ((advance >> 8) - old_advance);
|
|
||||||
#endif
|
|
||||||
|
|
||||||
old_advance = advance >> 8;
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
deceleration_time = 0;
|
deceleration_time = 0;
|
||||||
// step_rate to timer interval
|
// step_rate to timer interval
|
||||||
OCR1A_nominal = calc_timer(current_block->nominal_rate);
|
OCR1A_nominal = calc_timer(current_block->nominal_rate);
|
||||||
|
Loading…
Reference in New Issue
Block a user