Merge pull request #5973 from thinkyhead/rc_circle_pattern
Add circle pattern to nozzle clean
This commit is contained in:
commit
33f8a8a344
@ -96,7 +96,7 @@
|
||||
//
|
||||
// Marlin now allow you to have a vendor boot image to be displayed on machine
|
||||
// start. When SHOW_CUSTOM_BOOTSCREEN is defined Marlin will first show your
|
||||
// custom boot image and them the default Marlin boot image is shown.
|
||||
// custom boot image and then the default Marlin boot image is shown.
|
||||
//
|
||||
// We suggest for you to take advantage of this new feature and keep the Marlin
|
||||
// boot image unmodified. For an example have a look at the bq Hephestos 2
|
||||
@ -1000,6 +1000,9 @@
|
||||
// |________|_________|_________|
|
||||
// T1 T2 T3
|
||||
//
|
||||
// P2: This starts a circular pattern with circle with middle in
|
||||
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S.
|
||||
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT.
|
||||
//
|
||||
// Caveats: End point Z should use the same value as Start point Z.
|
||||
//
|
||||
@ -1019,6 +1022,13 @@
|
||||
#define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1)}
|
||||
#define NOZZLE_CLEAN_END_POINT {100, 60, (Z_MIN_POS + 1)}
|
||||
|
||||
// Circular pattern radius
|
||||
#define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
|
||||
// Circular pattern circle fragments number
|
||||
#define NOZZLE_CLEAN_CIRCLE_FN 10
|
||||
// Middle point of circle
|
||||
#define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT
|
||||
|
||||
// Moves the nozzle to the initial position
|
||||
#define NOZZLE_CLEAN_GOBACK
|
||||
#endif
|
||||
|
@ -3164,8 +3164,9 @@ inline void gcode_G4() {
|
||||
const uint8_t pattern = code_seen('P') ? code_value_ushort() : 0,
|
||||
strokes = code_seen('S') ? code_value_ushort() : NOZZLE_CLEAN_STROKES,
|
||||
objects = code_seen('T') ? code_value_ushort() : NOZZLE_CLEAN_TRIANGLES;
|
||||
const float radius = code_seen('R') ? code_value_float() : NOZZLE_CLEAN_CIRCLE_RADIUS;
|
||||
|
||||
Nozzle::clean(pattern, strokes, objects);
|
||||
Nozzle::clean(pattern, strokes, radius, objects);
|
||||
}
|
||||
#endif
|
||||
|
||||
|
@ -96,7 +96,7 @@
|
||||
//
|
||||
// Marlin now allow you to have a vendor boot image to be displayed on machine
|
||||
// start. When SHOW_CUSTOM_BOOTSCREEN is defined Marlin will first show your
|
||||
// custom boot image and them the default Marlin boot image is shown.
|
||||
// custom boot image and then the default Marlin boot image is shown.
|
||||
//
|
||||
// We suggest for you to take advantage of this new feature and keep the Marlin
|
||||
// boot image unmodified. For an example have a look at the bq Hephestos 2
|
||||
@ -1000,6 +1000,10 @@
|
||||
// |________|_________|_________|
|
||||
// T1 T2 T3
|
||||
//
|
||||
// P2: This starts a circular pattern with circle with middle in
|
||||
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S.
|
||||
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT.
|
||||
//
|
||||
// Caveats: End point Z should use the same value as Start point Z.
|
||||
//
|
||||
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments
|
||||
@ -1018,6 +1022,13 @@
|
||||
#define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1)}
|
||||
#define NOZZLE_CLEAN_END_POINT {100, 60, (Z_MIN_POS + 1)}
|
||||
|
||||
// Circular pattern radius
|
||||
#define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
|
||||
// Circular pattern circle fragments number
|
||||
#define NOZZLE_CLEAN_CIRCLE_FN 10
|
||||
// Middle point of circle
|
||||
#define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT
|
||||
|
||||
// Moves the nozzle to the initial position
|
||||
#define NOZZLE_CLEAN_GOBACK
|
||||
#endif
|
||||
|
@ -96,7 +96,7 @@
|
||||
//
|
||||
// Marlin now allow you to have a vendor boot image to be displayed on machine
|
||||
// start. When SHOW_CUSTOM_BOOTSCREEN is defined Marlin will first show your
|
||||
// custom boot image and them the default Marlin boot image is shown.
|
||||
// custom boot image and then the default Marlin boot image is shown.
|
||||
//
|
||||
// We suggest for you to take advantage of this new feature and keep the Marlin
|
||||
// boot image unmodified. For an example have a look at the bq Hephestos 2
|
||||
@ -983,6 +983,10 @@
|
||||
// |________|_________|_________|
|
||||
// T1 T2 T3
|
||||
//
|
||||
// P2: This starts a circular pattern with circle with middle in
|
||||
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S.
|
||||
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT.
|
||||
//
|
||||
// Caveats: End point Z should use the same value as Start point Z.
|
||||
//
|
||||
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments
|
||||
@ -1001,6 +1005,13 @@
|
||||
#define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1)}
|
||||
#define NOZZLE_CLEAN_END_POINT {100, 60, (Z_MIN_POS + 1)}
|
||||
|
||||
// Circular pattern radius
|
||||
#define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
|
||||
// Circular pattern circle fragments number
|
||||
#define NOZZLE_CLEAN_CIRCLE_FN 10
|
||||
// Middle point of circle
|
||||
#define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT
|
||||
|
||||
// Moves the nozzle to the initial position
|
||||
#define NOZZLE_CLEAN_GOBACK
|
||||
#endif
|
||||
|
@ -96,7 +96,7 @@
|
||||
//
|
||||
// Marlin now allow you to have a vendor boot image to be displayed on machine
|
||||
// start. When SHOW_CUSTOM_BOOTSCREEN is defined Marlin will first show your
|
||||
// custom boot image and them the default Marlin boot image is shown.
|
||||
// custom boot image and then the default Marlin boot image is shown.
|
||||
//
|
||||
// We suggest for you to take advantage of this new feature and keep the Marlin
|
||||
// boot image unmodified. For an example have a look at the bq Hephestos 2
|
||||
@ -983,6 +983,10 @@
|
||||
// |________|_________|_________|
|
||||
// T1 T2 T3
|
||||
//
|
||||
// P2: This starts a circular pattern with circle with middle in
|
||||
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S.
|
||||
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT.
|
||||
//
|
||||
// Caveats: End point Z should use the same value as Start point Z.
|
||||
//
|
||||
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments
|
||||
@ -1001,6 +1005,13 @@
|
||||
#define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1)}
|
||||
#define NOZZLE_CLEAN_END_POINT {100, 60, (Z_MIN_POS + 1)}
|
||||
|
||||
// Circular pattern radius
|
||||
#define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
|
||||
// Circular pattern circle fragments number
|
||||
#define NOZZLE_CLEAN_CIRCLE_FN 10
|
||||
// Middle point of circle
|
||||
#define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT
|
||||
|
||||
// Moves the nozzle to the initial position
|
||||
#define NOZZLE_CLEAN_GOBACK
|
||||
#endif
|
||||
|
@ -96,7 +96,7 @@
|
||||
//
|
||||
// Marlin now allow you to have a vendor boot image to be displayed on machine
|
||||
// start. When SHOW_CUSTOM_BOOTSCREEN is defined Marlin will first show your
|
||||
// custom boot image and them the default Marlin boot image is shown.
|
||||
// custom boot image and then the default Marlin boot image is shown.
|
||||
//
|
||||
// We suggest for you to take advantage of this new feature and keep the Marlin
|
||||
// boot image unmodified. For an example have a look at the bq Hephestos 2
|
||||
@ -992,6 +992,10 @@
|
||||
// |________|_________|_________|
|
||||
// T1 T2 T3
|
||||
//
|
||||
// P2: This starts a circular pattern with circle with middle in
|
||||
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S.
|
||||
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT.
|
||||
//
|
||||
// Caveats: End point Z should use the same value as Start point Z.
|
||||
//
|
||||
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments
|
||||
@ -1010,6 +1014,13 @@
|
||||
#define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1)}
|
||||
#define NOZZLE_CLEAN_END_POINT {100, 60, (Z_MIN_POS + 1)}
|
||||
|
||||
// Circular pattern radius
|
||||
#define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
|
||||
// Circular pattern circle fragments number
|
||||
#define NOZZLE_CLEAN_CIRCLE_FN 10
|
||||
// Middle point of circle
|
||||
#define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT
|
||||
|
||||
// Moves the nozzle to the initial position
|
||||
#define NOZZLE_CLEAN_GOBACK
|
||||
#endif
|
||||
|
@ -96,7 +96,7 @@
|
||||
//
|
||||
// Marlin now allow you to have a vendor boot image to be displayed on machine
|
||||
// start. When SHOW_CUSTOM_BOOTSCREEN is defined Marlin will first show your
|
||||
// custom boot image and them the default Marlin boot image is shown.
|
||||
// custom boot image and then the default Marlin boot image is shown.
|
||||
//
|
||||
// We suggest for you to take advantage of this new feature and keep the Marlin
|
||||
// boot image unmodified. For an example have a look at the bq Hephestos 2
|
||||
@ -994,6 +994,10 @@
|
||||
// |________|_________|_________|
|
||||
// T1 T2 T3
|
||||
//
|
||||
// P2: This starts a circular pattern with circle with middle in
|
||||
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S.
|
||||
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT.
|
||||
//
|
||||
// Caveats: End point Z should use the same value as Start point Z.
|
||||
//
|
||||
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments
|
||||
@ -1012,6 +1016,13 @@
|
||||
#define NOZZLE_CLEAN_START_POINT { X_MIN_POS + 10, Y_MAX_POS - 9, (Z_MIN_POS + 0.5)}
|
||||
#define NOZZLE_CLEAN_END_POINT { X_MIN_POS + 90, Y_MAX_POS - 0, (Z_MIN_POS + 0.5)}
|
||||
|
||||
// Circular pattern radius
|
||||
#define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
|
||||
// Circular pattern circle fragments number
|
||||
#define NOZZLE_CLEAN_CIRCLE_FN 10
|
||||
// Middle point of circle
|
||||
#define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT
|
||||
|
||||
// Moves the nozzle to the initial position
|
||||
//#define NOZZLE_CLEAN_GOBACK
|
||||
#endif
|
||||
|
@ -112,7 +112,7 @@
|
||||
//
|
||||
// Marlin now allow you to have a vendor boot image to be displayed on machine
|
||||
// start. When SHOW_CUSTOM_BOOTSCREEN is defined Marlin will first show your
|
||||
// custom boot image and them the default Marlin boot image is shown.
|
||||
// custom boot image and then the default Marlin boot image is shown.
|
||||
//
|
||||
// We suggest for you to take advantage of this new feature and keep the Marlin
|
||||
// boot image unmodified. For an example have a look at the bq Hephestos 2
|
||||
@ -1029,6 +1029,10 @@
|
||||
// |________|_________|_________|
|
||||
// T1 T2 T3
|
||||
//
|
||||
// P2: This starts a circular pattern with circle with middle in
|
||||
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S.
|
||||
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT.
|
||||
//
|
||||
// Caveats: End point Z should use the same value as Start point Z.
|
||||
//
|
||||
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments
|
||||
@ -1047,6 +1051,13 @@
|
||||
#define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1)}
|
||||
#define NOZZLE_CLEAN_END_POINT {100, 60, (Z_MIN_POS + 1)}
|
||||
|
||||
// Circular pattern radius
|
||||
#define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
|
||||
// Circular pattern circle fragments number
|
||||
#define NOZZLE_CLEAN_CIRCLE_FN 10
|
||||
// Middle point of circle
|
||||
#define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT
|
||||
|
||||
// Moves the nozzle to the initial position
|
||||
#define NOZZLE_CLEAN_GOBACK
|
||||
#endif
|
||||
|
@ -96,7 +96,7 @@
|
||||
//
|
||||
// Marlin now allow you to have a vendor boot image to be displayed on machine
|
||||
// start. When SHOW_CUSTOM_BOOTSCREEN is defined Marlin will first show your
|
||||
// custom boot image and them the default Marlin boot image is shown.
|
||||
// custom boot image and then the default Marlin boot image is shown.
|
||||
//
|
||||
// We suggest for you to take advantage of this new feature and keep the Marlin
|
||||
// boot image unmodified. For an example have a look at the bq Hephestos 2
|
||||
@ -1000,6 +1000,10 @@
|
||||
// |________|_________|_________|
|
||||
// T1 T2 T3
|
||||
//
|
||||
// P2: This starts a circular pattern with circle with middle in
|
||||
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S.
|
||||
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT.
|
||||
//
|
||||
// Caveats: End point Z should use the same value as Start point Z.
|
||||
//
|
||||
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments
|
||||
@ -1018,6 +1022,13 @@
|
||||
#define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1)}
|
||||
#define NOZZLE_CLEAN_END_POINT {100, 60, (Z_MIN_POS + 1)}
|
||||
|
||||
// Circular pattern radius
|
||||
#define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
|
||||
// Circular pattern circle fragments number
|
||||
#define NOZZLE_CLEAN_CIRCLE_FN 10
|
||||
// Middle point of circle
|
||||
#define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT
|
||||
|
||||
// Moves the nozzle to the initial position
|
||||
#define NOZZLE_CLEAN_GOBACK
|
||||
#endif
|
||||
|
@ -96,7 +96,7 @@
|
||||
//
|
||||
// Marlin now allow you to have a vendor boot image to be displayed on machine
|
||||
// start. When SHOW_CUSTOM_BOOTSCREEN is defined Marlin will first show your
|
||||
// custom boot image and them the default Marlin boot image is shown.
|
||||
// custom boot image and then the default Marlin boot image is shown.
|
||||
//
|
||||
// We suggest for you to take advantage of this new feature and keep the Marlin
|
||||
// boot image unmodified. For an example have a look at the bq Hephestos 2
|
||||
@ -1000,6 +1000,10 @@
|
||||
// |________|_________|_________|
|
||||
// T1 T2 T3
|
||||
//
|
||||
// P2: This starts a circular pattern with circle with middle in
|
||||
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S.
|
||||
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT.
|
||||
//
|
||||
// Caveats: End point Z should use the same value as Start point Z.
|
||||
//
|
||||
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments
|
||||
@ -1018,6 +1022,13 @@
|
||||
#define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1)}
|
||||
#define NOZZLE_CLEAN_END_POINT {100, 60, (Z_MIN_POS + 1)}
|
||||
|
||||
// Circular pattern radius
|
||||
#define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
|
||||
// Circular pattern circle fragments number
|
||||
#define NOZZLE_CLEAN_CIRCLE_FN 10
|
||||
// Middle point of circle
|
||||
#define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT
|
||||
|
||||
// Moves the nozzle to the initial position
|
||||
#define NOZZLE_CLEAN_GOBACK
|
||||
#endif
|
||||
|
@ -96,7 +96,7 @@
|
||||
//
|
||||
// Marlin now allow you to have a vendor boot image to be displayed on machine
|
||||
// start. When SHOW_CUSTOM_BOOTSCREEN is defined Marlin will first show your
|
||||
// custom boot image and them the default Marlin boot image is shown.
|
||||
// custom boot image and then the default Marlin boot image is shown.
|
||||
//
|
||||
// We suggest for you to take advantage of this new feature and keep the Marlin
|
||||
// boot image unmodified. For an example have a look at the bq Hephestos 2
|
||||
@ -1000,6 +1000,10 @@
|
||||
// |________|_________|_________|
|
||||
// T1 T2 T3
|
||||
//
|
||||
// P2: This starts a circular pattern with circle with middle in
|
||||
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S.
|
||||
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT.
|
||||
//
|
||||
// Caveats: End point Z should use the same value as Start point Z.
|
||||
//
|
||||
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments
|
||||
@ -1018,6 +1022,13 @@
|
||||
#define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1)}
|
||||
#define NOZZLE_CLEAN_END_POINT {100, 60, (Z_MIN_POS + 1)}
|
||||
|
||||
// Circular pattern radius
|
||||
#define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
|
||||
// Circular pattern circle fragments number
|
||||
#define NOZZLE_CLEAN_CIRCLE_FN 10
|
||||
// Middle point of circle
|
||||
#define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT
|
||||
|
||||
// Moves the nozzle to the initial position
|
||||
#define NOZZLE_CLEAN_GOBACK
|
||||
#endif
|
||||
|
@ -96,7 +96,7 @@
|
||||
//
|
||||
// Marlin now allow you to have a vendor boot image to be displayed on machine
|
||||
// start. When SHOW_CUSTOM_BOOTSCREEN is defined Marlin will first show your
|
||||
// custom boot image and them the default Marlin boot image is shown.
|
||||
// custom boot image and then the default Marlin boot image is shown.
|
||||
//
|
||||
// We suggest for you to take advantage of this new feature and keep the Marlin
|
||||
// boot image unmodified. For an example have a look at the bq Hephestos 2
|
||||
@ -999,6 +999,10 @@
|
||||
// |________|_________|_________|
|
||||
// T1 T2 T3
|
||||
//
|
||||
// P2: This starts a circular pattern with circle with middle in
|
||||
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S.
|
||||
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT.
|
||||
//
|
||||
// Caveats: End point Z should use the same value as Start point Z.
|
||||
//
|
||||
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments
|
||||
@ -1017,6 +1021,13 @@
|
||||
#define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1)}
|
||||
#define NOZZLE_CLEAN_END_POINT {100, 60, (Z_MIN_POS + 1)}
|
||||
|
||||
// Circular pattern radius
|
||||
#define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
|
||||
// Circular pattern circle fragments number
|
||||
#define NOZZLE_CLEAN_CIRCLE_FN 10
|
||||
// Middle point of circle
|
||||
#define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT
|
||||
|
||||
// Moves the nozzle to the initial position
|
||||
#define NOZZLE_CLEAN_GOBACK
|
||||
#endif
|
||||
|
@ -128,7 +128,7 @@
|
||||
//
|
||||
// Marlin now allow you to have a vendor boot image to be displayed on machine
|
||||
// start. When SHOW_CUSTOM_BOOTSCREEN is defined Marlin will first show your
|
||||
// custom boot image and them the default Marlin boot image is shown.
|
||||
// custom boot image and then the default Marlin boot image is shown.
|
||||
//
|
||||
// We suggest for you to take advantage of this new feature and keep the Marlin
|
||||
// boot image unmodified. For an example have a look at the bq Hephestos 2
|
||||
@ -1015,6 +1015,10 @@
|
||||
// |________|_________|_________|
|
||||
// T1 T2 T3
|
||||
//
|
||||
// P2: This starts a circular pattern with circle with middle in
|
||||
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S.
|
||||
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT.
|
||||
//
|
||||
// Caveats: End point Z should use the same value as Start point Z.
|
||||
//
|
||||
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments
|
||||
@ -1033,6 +1037,13 @@
|
||||
#define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1)}
|
||||
#define NOZZLE_CLEAN_END_POINT {100, 60, (Z_MIN_POS + 1)}
|
||||
|
||||
// Circular pattern radius
|
||||
#define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
|
||||
// Circular pattern circle fragments number
|
||||
#define NOZZLE_CLEAN_CIRCLE_FN 10
|
||||
// Middle point of circle
|
||||
#define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT
|
||||
|
||||
// Moves the nozzle to the initial position
|
||||
#define NOZZLE_CLEAN_GOBACK
|
||||
#endif
|
||||
|
@ -96,7 +96,7 @@
|
||||
//
|
||||
// Marlin now allow you to have a vendor boot image to be displayed on machine
|
||||
// start. When SHOW_CUSTOM_BOOTSCREEN is defined Marlin will first show your
|
||||
// custom boot image and them the default Marlin boot image is shown.
|
||||
// custom boot image and then the default Marlin boot image is shown.
|
||||
//
|
||||
// We suggest for you to take advantage of this new feature and keep the Marlin
|
||||
// boot image unmodified. For an example have a look at the bq Hephestos 2
|
||||
@ -1021,6 +1021,10 @@
|
||||
// |________|_________|_________|
|
||||
// T1 T2 T3
|
||||
//
|
||||
// P2: This starts a circular pattern with circle with middle in
|
||||
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S.
|
||||
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT.
|
||||
//
|
||||
// Caveats: End point Z should use the same value as Start point Z.
|
||||
//
|
||||
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments
|
||||
@ -1039,6 +1043,13 @@
|
||||
#define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1)}
|
||||
#define NOZZLE_CLEAN_END_POINT {100, 60, (Z_MIN_POS + 1)}
|
||||
|
||||
// Circular pattern radius
|
||||
#define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
|
||||
// Circular pattern circle fragments number
|
||||
#define NOZZLE_CLEAN_CIRCLE_FN 10
|
||||
// Middle point of circle
|
||||
#define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT
|
||||
|
||||
// Moves the nozzle to the initial position
|
||||
#define NOZZLE_CLEAN_GOBACK
|
||||
#endif
|
||||
|
@ -96,7 +96,7 @@
|
||||
//
|
||||
// Marlin now allow you to have a vendor boot image to be displayed on machine
|
||||
// start. When SHOW_CUSTOM_BOOTSCREEN is defined Marlin will first show your
|
||||
// custom boot image and them the default Marlin boot image is shown.
|
||||
// custom boot image and then the default Marlin boot image is shown.
|
||||
//
|
||||
// We suggest for you to take advantage of this new feature and keep the Marlin
|
||||
// boot image unmodified. For an example have a look at the bq Hephestos 2
|
||||
@ -992,6 +992,10 @@
|
||||
// |________|_________|_________|
|
||||
// T1 T2 T3
|
||||
//
|
||||
// P2: This starts a circular pattern with circle with middle in
|
||||
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S.
|
||||
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT.
|
||||
//
|
||||
// Caveats: End point Z should use the same value as Start point Z.
|
||||
//
|
||||
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments
|
||||
@ -1010,6 +1014,13 @@
|
||||
#define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1)}
|
||||
#define NOZZLE_CLEAN_END_POINT {100, 60, (Z_MIN_POS + 1)}
|
||||
|
||||
// Circular pattern radius
|
||||
#define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
|
||||
// Circular pattern circle fragments number
|
||||
#define NOZZLE_CLEAN_CIRCLE_FN 10
|
||||
// Middle point of circle
|
||||
#define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT
|
||||
|
||||
// Moves the nozzle to the initial position
|
||||
#define NOZZLE_CLEAN_GOBACK
|
||||
#endif
|
||||
|
@ -96,7 +96,7 @@
|
||||
//
|
||||
// Marlin now allow you to have a vendor boot image to be displayed on machine
|
||||
// start. When SHOW_CUSTOM_BOOTSCREEN is defined Marlin will first show your
|
||||
// custom boot image and them the default Marlin boot image is shown.
|
||||
// custom boot image and then the default Marlin boot image is shown.
|
||||
//
|
||||
// We suggest for you to take advantage of this new feature and keep the Marlin
|
||||
// boot image unmodified. For an example have a look at the bq Hephestos 2
|
||||
@ -1000,6 +1000,10 @@
|
||||
// |________|_________|_________|
|
||||
// T1 T2 T3
|
||||
//
|
||||
// P2: This starts a circular pattern with circle with middle in
|
||||
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S.
|
||||
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT.
|
||||
//
|
||||
// Caveats: End point Z should use the same value as Start point Z.
|
||||
//
|
||||
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments
|
||||
@ -1018,6 +1022,13 @@
|
||||
#define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1)}
|
||||
#define NOZZLE_CLEAN_END_POINT {100, 60, (Z_MIN_POS + 1)}
|
||||
|
||||
// Circular pattern radius
|
||||
#define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
|
||||
// Circular pattern circle fragments number
|
||||
#define NOZZLE_CLEAN_CIRCLE_FN 10
|
||||
// Middle point of circle
|
||||
#define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT
|
||||
|
||||
// Moves the nozzle to the initial position
|
||||
#define NOZZLE_CLEAN_GOBACK
|
||||
#endif
|
||||
|
@ -1,53 +1,53 @@
|
||||
/**
|
||||
Marlin 3D Printer Firmware
|
||||
Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
|
||||
Based on Sprinter and grbl.
|
||||
Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
|
||||
This program is free software: you can redistribute it and/or modify
|
||||
it under the terms of the GNU General Public License as published by
|
||||
the Free Software Foundation, either version 3 of the License, or
|
||||
(at your option) any later version.
|
||||
|
||||
This program is distributed in the hope that it will be useful,
|
||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
GNU General Public License for more details.
|
||||
|
||||
You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
* Marlin 3D Printer Firmware
|
||||
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
|
||||
*
|
||||
* Based on Sprinter and grbl.
|
||||
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
|
||||
*
|
||||
* This program is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* This program is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
*
|
||||
*/
|
||||
|
||||
/**
|
||||
Configuration.h
|
||||
|
||||
Basic settings such as:
|
||||
|
||||
- Type of electronics
|
||||
- Type of temperature sensor
|
||||
- Printer geometry
|
||||
- Endstop configuration
|
||||
- LCD controller
|
||||
- Extra features
|
||||
|
||||
Advanced settings can be found in Configuration_adv.h
|
||||
|
||||
* Configuration.h
|
||||
*
|
||||
* Basic settings such as:
|
||||
*
|
||||
* - Type of electronics
|
||||
* - Type of temperature sensor
|
||||
* - Printer geometry
|
||||
* - Endstop configuration
|
||||
* - LCD controller
|
||||
* - Extra features
|
||||
*
|
||||
* Advanced settings can be found in Configuration_adv.h
|
||||
*
|
||||
*/
|
||||
#ifndef CONFIGURATION_H
|
||||
#define CONFIGURATION_H
|
||||
|
||||
/**
|
||||
|
||||
*
|
||||
* ***********************************
|
||||
* ** ATTENTION TO ALL DEVELOPERS **
|
||||
* ***********************************
|
||||
|
||||
You must increment this version number for every significant change such as,
|
||||
but not limited to: ADD, DELETE RENAME OR REPURPOSE any directive/option.
|
||||
|
||||
Note: Update also Version.h !
|
||||
*
|
||||
* You must increment this version number for every significant change such as,
|
||||
* but not limited to: ADD, DELETE RENAME OR REPURPOSE any directive/option.
|
||||
*
|
||||
* Note: Update also Version.h !
|
||||
*/
|
||||
#define CONFIGURATION_H_VERSION 010100
|
||||
|
||||
@ -56,15 +56,15 @@
|
||||
//===========================================================================
|
||||
|
||||
/**
|
||||
Here are some standard links for getting your machine calibrated:
|
||||
|
||||
http://reprap.org/wiki/Calibration
|
||||
http://youtu.be/wAL9d7FgInk
|
||||
http://calculator.josefprusa.cz
|
||||
http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide
|
||||
http://www.thingiverse.com/thing:5573
|
||||
https://sites.google.com/site/repraplogphase/calibration-of-your-reprap
|
||||
http://www.thingiverse.com/thing:298812
|
||||
* Here are some standard links for getting your machine calibrated:
|
||||
*
|
||||
* http://reprap.org/wiki/Calibration
|
||||
* http://youtu.be/wAL9d7FgInk
|
||||
* http://calculator.josefprusa.cz
|
||||
* http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide
|
||||
* http://www.thingiverse.com/thing:5573
|
||||
* https://sites.google.com/site/repraplogphase/calibration-of-your-reprap
|
||||
* http://www.thingiverse.com/thing:298812
|
||||
*/
|
||||
|
||||
//===========================================================================
|
||||
@ -106,21 +106,21 @@
|
||||
// @section machine
|
||||
|
||||
/**
|
||||
Select which serial port on the board will be used for communication with the host.
|
||||
This allows the connection of wireless adapters (for instance) to non-default port pins.
|
||||
Serial port 0 is always used by the Arduino bootloader regardless of this setting.
|
||||
|
||||
:[0, 1, 2, 3, 4, 5, 6, 7]
|
||||
* Select which serial port on the board will be used for communication with the host.
|
||||
* This allows the connection of wireless adapters (for instance) to non-default port pins.
|
||||
* Serial port 0 is always used by the Arduino bootloader regardless of this setting.
|
||||
*
|
||||
* :[0, 1, 2, 3, 4, 5, 6, 7]
|
||||
*/
|
||||
#define SERIAL_PORT 0
|
||||
|
||||
/**
|
||||
This setting determines the communication speed of the printer.
|
||||
|
||||
250000 works in most cases, but you might try a lower speed if
|
||||
you commonly experience drop-outs during host printing.
|
||||
|
||||
:[2400, 9600, 19200, 38400, 57600, 115200, 250000]
|
||||
* This setting determines the communication speed of the printer.
|
||||
*
|
||||
* 250000 works in most cases, but you might try a lower speed if
|
||||
* you commonly experience drop-outs during host printing.
|
||||
*
|
||||
* :[2400, 9600, 19200, 38400, 57600, 115200, 250000]
|
||||
*/
|
||||
#define BAUDRATE 250000
|
||||
|
||||
@ -161,12 +161,12 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
"Mixing Extruder"
|
||||
- Adds a new code, M165, to set the current mix factors.
|
||||
- Extends the stepping routines to move multiple steppers in proportion to the mix.
|
||||
- Optional support for Repetier Host M163, M164, and virtual extruder.
|
||||
- This implementation supports only a single extruder.
|
||||
- Enable DIRECT_MIXING_IN_G1 for Pia Taubert's reference implementation
|
||||
* "Mixing Extruder"
|
||||
* - Adds a new code, M165, to set the current mix factors.
|
||||
* - Extends the stepping routines to move multiple steppers in proportion to the mix.
|
||||
* - Optional support for Repetier Host M163, M164, and virtual extruder.
|
||||
* - This implementation supports only a single extruder.
|
||||
* - Enable DIRECT_MIXING_IN_G1 for Pia Taubert's reference implementation
|
||||
*/
|
||||
//#define MIXING_EXTRUDER
|
||||
#if ENABLED(MIXING_EXTRUDER)
|
||||
@ -182,13 +182,13 @@
|
||||
//#define HOTEND_OFFSET_Y {0.0, 5.00} // (in mm) for each extruder, offset of the hotend on the Y axis
|
||||
|
||||
/**
|
||||
Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
|
||||
0 = No Power Switch
|
||||
1 = ATX
|
||||
2 = X-Box 360 203Watts (the blue wire connected to PS_ON and the red wire to VCC)
|
||||
|
||||
:{ 0:'No power switch', 1:'ATX', 2:'X-Box 360' }
|
||||
* Select your power supply here. Use 0 if you haven't connected the PS_ON_PIN
|
||||
*
|
||||
* 0 = No Power Switch
|
||||
* 1 = ATX
|
||||
* 2 = X-Box 360 203Watts (the blue wire connected to PS_ON and the red wire to VCC)
|
||||
*
|
||||
* :{ 0:'No power switch', 1:'ATX', 2:'X-Box 360' }
|
||||
*/
|
||||
#define POWER_SUPPLY 0
|
||||
|
||||
@ -205,49 +205,49 @@
|
||||
//===========================================================================
|
||||
|
||||
/**
|
||||
--NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table
|
||||
|
||||
Temperature sensors available:
|
||||
|
||||
-3 : thermocouple with MAX31855 (only for sensor 0)
|
||||
-2 : thermocouple with MAX6675 (only for sensor 0)
|
||||
-1 : thermocouple with AD595
|
||||
0 : not used
|
||||
1 : 100k thermistor - best choice for EPCOS 100k (4.7k pullup)
|
||||
2 : 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup)
|
||||
3 : Mendel-parts thermistor (4.7k pullup)
|
||||
4 : 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !!
|
||||
5 : 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup)
|
||||
6 : 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup)
|
||||
7 : 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup)
|
||||
71 : 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup)
|
||||
8 : 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
|
||||
9 : 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)
|
||||
10 : 100k RS thermistor 198-961 (4.7k pullup)
|
||||
11 : 100k beta 3950 1% thermistor (4.7k pullup)
|
||||
12 : 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed)
|
||||
13 : 100k Hisens 3950 1% up to 300°C for hotend "Simple ONE " & "Hotend "All In ONE"
|
||||
20 : the PT100 circuit found in the Ultimainboard V2.x
|
||||
60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||
66 : 4.7M High Temperature thermistor from Dyze Design
|
||||
70 : the 100K thermistor found in the bq Hephestos 2
|
||||
|
||||
1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
|
||||
(but gives greater accuracy and more stable PID)
|
||||
51 : 100k thermistor - EPCOS (1k pullup)
|
||||
52 : 200k thermistor - ATC Semitec 204GT-2 (1k pullup)
|
||||
55 : 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (1k pullup)
|
||||
|
||||
1047 : Pt1000 with 4k7 pullup
|
||||
1010 : Pt1000 with 1k pullup (non standard)
|
||||
147 : Pt100 with 4k7 pullup
|
||||
110 : Pt100 with 1k pullup (non standard)
|
||||
|
||||
Use these for Testing or Development purposes. NEVER for production machine.
|
||||
998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below.
|
||||
999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below.
|
||||
|
||||
:{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
* --NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table
|
||||
*
|
||||
* Temperature sensors available:
|
||||
*
|
||||
* -3 : thermocouple with MAX31855 (only for sensor 0)
|
||||
* -2 : thermocouple with MAX6675 (only for sensor 0)
|
||||
* -1 : thermocouple with AD595
|
||||
* 0 : not used
|
||||
* 1 : 100k thermistor - best choice for EPCOS 100k (4.7k pullup)
|
||||
* 2 : 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup)
|
||||
* 3 : Mendel-parts thermistor (4.7k pullup)
|
||||
* 4 : 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !!
|
||||
* 5 : 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup)
|
||||
* 6 : 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup)
|
||||
* 7 : 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup)
|
||||
* 71 : 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup)
|
||||
* 8 : 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
|
||||
* 9 : 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)
|
||||
* 10 : 100k RS thermistor 198-961 (4.7k pullup)
|
||||
* 11 : 100k beta 3950 1% thermistor (4.7k pullup)
|
||||
* 12 : 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed)
|
||||
* 13 : 100k Hisens 3950 1% up to 300°C for hotend "Simple ONE " & "Hotend "All In ONE"
|
||||
* 20 : the PT100 circuit found in the Ultimainboard V2.x
|
||||
* 60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
|
||||
* 66 : 4.7M High Temperature thermistor from Dyze Design
|
||||
* 70 : the 100K thermistor found in the bq Hephestos 2
|
||||
*
|
||||
* 1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
|
||||
* (but gives greater accuracy and more stable PID)
|
||||
* 51 : 100k thermistor - EPCOS (1k pullup)
|
||||
* 52 : 200k thermistor - ATC Semitec 204GT-2 (1k pullup)
|
||||
* 55 : 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (1k pullup)
|
||||
*
|
||||
* 1047 : Pt1000 with 4k7 pullup
|
||||
* 1010 : Pt1000 with 1k pullup (non standard)
|
||||
* 147 : Pt100 with 4k7 pullup
|
||||
* 110 : Pt100 with 1k pullup (non standard)
|
||||
*
|
||||
* Use these for Testing or Development purposes. NEVER for production machine.
|
||||
* 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below.
|
||||
* 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below.
|
||||
*
|
||||
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
|
||||
*/
|
||||
#define TEMP_SENSOR_0 1
|
||||
#define TEMP_SENSOR_1 0
|
||||
@ -400,15 +400,15 @@
|
||||
//===========================================================================
|
||||
|
||||
/**
|
||||
Thermal Protection protects your printer from damage and fire if a
|
||||
thermistor falls out or temperature sensors fail in any way.
|
||||
|
||||
The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
|
||||
If you get "Thermal Runaway" or "Heating failed" errors the
|
||||
details can be tuned in Configuration_adv.h
|
||||
* Thermal Protection protects your printer from damage and fire if a
|
||||
* thermistor falls out or temperature sensors fail in any way.
|
||||
*
|
||||
* The issue: If a thermistor falls out or a temperature sensor fails,
|
||||
* Marlin can no longer sense the actual temperature. Since a disconnected
|
||||
* thermistor reads as a low temperature, the firmware will keep the heater on.
|
||||
*
|
||||
* If you get "Thermal Runaway" or "Heating failed" errors the
|
||||
* details can be tuned in Configuration_adv.h
|
||||
*/
|
||||
|
||||
#define THERMAL_PROTECTION_HOTENDS // Enable thermal protection for all extruders
|
||||
@ -516,7 +516,7 @@
|
||||
#define X_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
|
||||
#define Y_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
|
||||
#define Z_MAX_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
|
||||
#define Z_MIN_PROBE_ENDSTOP_INVERTING false // set to true to invert the logic of the endstop.
|
||||
#define Z_MIN_PROBE_ENDSTOP_INVERTING false // set to true to invert the logic of the probe.
|
||||
|
||||
// Enable this feature if all enabled endstop pins are interrupt-capable.
|
||||
// This will remove the need to poll the interrupt pins, saving many CPU cycles.
|
||||
@ -529,56 +529,57 @@
|
||||
|
||||
// delta speeds must be the same on xyz
|
||||
/**
|
||||
Default Settings
|
||||
|
||||
These settings can be reset by M502
|
||||
|
||||
You can set distinct factors for each E stepper, if needed.
|
||||
If fewer factors are given, the last will apply to the rest.
|
||||
|
||||
Note that if EEPROM is enabled, saved values will override these.
|
||||
* Default Settings
|
||||
*
|
||||
* These settings can be reset by M502
|
||||
*
|
||||
* You can set distinct factors for each E stepper, if needed.
|
||||
* If fewer factors are given, the last will apply to the rest.
|
||||
*
|
||||
* Note that if EEPROM is enabled, saved values will override these.
|
||||
*/
|
||||
|
||||
/**
|
||||
Default Axis Steps Per Unit (steps/mm)
|
||||
Override with M92
|
||||
X, Y, Z, E0 [, E1[, E2[, E3]]]
|
||||
* Default Axis Steps Per Unit (steps/mm)
|
||||
* Override with M92
|
||||
* X, Y, Z, E0 [, E1[, E2[, E3]]]
|
||||
*/
|
||||
#define DEFAULT_AXIS_STEPS_PER_UNIT { 100, 100, 100, 90 } // default steps per unit for Kossel (GT2, 20 tooth)
|
||||
|
||||
/**
|
||||
Default Max Feed Rate (mm/s)
|
||||
Override with M203
|
||||
X, Y, Z, E0 [, E1[, E2[, E3]]]
|
||||
* Default Max Feed Rate (mm/s)
|
||||
* Override with M203
|
||||
* X, Y, Z, E0 [, E1[, E2[, E3]]]
|
||||
*/
|
||||
#define DEFAULT_MAX_FEEDRATE { 200, 200, 200, 200 }
|
||||
|
||||
/**
|
||||
Default Max Acceleration (change/s) change = mm/s
|
||||
(Maximum start speed for accelerated moves)
|
||||
Override with M201
|
||||
X, Y, Z, E0 [, E1[, E2[, E3]]]
|
||||
* Default Max Acceleration (change/s) change = mm/s
|
||||
* (Maximum start speed for accelerated moves)
|
||||
* Override with M201
|
||||
* X, Y, Z, E0 [, E1[, E2[, E3]]]
|
||||
*/
|
||||
#define DEFAULT_MAX_ACCELERATION { 4000, 4000, 4000, 4000 }
|
||||
|
||||
/**
|
||||
Default Acceleration (change/s) change = mm/s
|
||||
Override with M204
|
||||
|
||||
M204 P Acceleration
|
||||
M204 R Retract Acceleration
|
||||
M204 T Travel Acceleration
|
||||
* Default Acceleration (change/s) change = mm/s
|
||||
* Override with M204
|
||||
*
|
||||
* M204 P Acceleration
|
||||
* M204 R Retract Acceleration
|
||||
* M204 T Travel Acceleration
|
||||
*/
|
||||
#define DEFAULT_ACCELERATION 2500 // X, Y, Z and E acceleration for printing moves
|
||||
#define DEFAULT_RETRACT_ACCELERATION 3000 // E acceleration for retracts
|
||||
#define DEFAULT_TRAVEL_ACCELERATION 3000 // X, Y, Z acceleration for travel (non printing) moves
|
||||
|
||||
/**
|
||||
Default Jerk (mm/s)
|
||||
|
||||
"Jerk" specifies the minimum speed change that requires acceleration.
|
||||
When changing speed and direction, if the difference is less than the
|
||||
value set here, it may happen instantaneously.
|
||||
* Default Jerk (mm/s)
|
||||
* Override with M205 X Y Z E
|
||||
*
|
||||
* "Jerk" specifies the minimum speed change that requires acceleration.
|
||||
* When changing speed and direction, if the difference is less than the
|
||||
* value set here, it may happen instantaneously.
|
||||
*/
|
||||
#define DEFAULT_XJERK 20.0
|
||||
#define DEFAULT_YJERK DEFAULT_XJERK
|
||||
@ -744,18 +745,18 @@
|
||||
#define Z_MIN_PROBE_REPEATABILITY_TEST
|
||||
|
||||
/**
|
||||
Z probes require clearance when deploying, stowing, and moving between
|
||||
probe points to avoid hitting the bed and other hardware.
|
||||
Servo-mounted probes require extra space for the arm to rotate.
|
||||
Inductive probes need space to keep from triggering early.
|
||||
|
||||
Use these settings to specify the distance (mm) to raise the probe (or
|
||||
lower the bed). The values set here apply over and above any (negative)
|
||||
probe Z Offset set with Z_PROBE_OFFSET_FROM_EXTRUDER, M851, or the LCD.
|
||||
Only integer values >= 1 are valid here.
|
||||
|
||||
Example: `M851 Z-5` with a CLEARANCE of 4 => 9mm from bed to nozzle.
|
||||
But: `M851 Z+1` with a CLEARANCE of 2 => 2mm from bed to nozzle.
|
||||
* Z probes require clearance when deploying, stowing, and moving between
|
||||
* probe points to avoid hitting the bed and other hardware.
|
||||
* Servo-mounted probes require extra space for the arm to rotate.
|
||||
* Inductive probes need space to keep from triggering early.
|
||||
*
|
||||
* Use these settings to specify the distance (mm) to raise the probe (or
|
||||
* lower the bed). The values set here apply over and above any (negative)
|
||||
* probe Z Offset set with Z_PROBE_OFFSET_FROM_EXTRUDER, M851, or the LCD.
|
||||
* Only integer values >= 1 are valid here.
|
||||
*
|
||||
* Example: `M851 Z-5` with a CLEARANCE of 4 => 9mm from bed to nozzle.
|
||||
* But: `M851 Z+1` with a CLEARANCE of 2 => 2mm from bed to nozzle.
|
||||
*/
|
||||
#define Z_CLEARANCE_DEPLOY_PROBE 50 // Z Clearance for Deploy/Stow
|
||||
#define Z_CLEARANCE_BETWEEN_PROBES 5 // Z Clearance between probe points
|
||||
@ -826,13 +827,15 @@
|
||||
#define Y_MAX_POS DELTA_PRINTABLE_RADIUS
|
||||
#define Z_MAX_POS MANUAL_Z_HOME_POS
|
||||
|
||||
//===========================================================================
|
||||
//========================= Filament Runout Sensor ==========================
|
||||
//===========================================================================
|
||||
//#define FILAMENT_RUNOUT_SENSOR // Uncomment for defining a filament runout sensor such as a mechanical or opto endstop to check the existence of filament
|
||||
// RAMPS-based boards use SERVO3_PIN. For other boards you may need to define FIL_RUNOUT_PIN.
|
||||
// It is assumed that when logic high = filament available
|
||||
// when logic low = filament ran out
|
||||
/**
|
||||
* Filament Runout Sensor
|
||||
* A mechanical or opto endstop is used to check for the presence of filament.
|
||||
*
|
||||
* RAMPS-based boards use SERVO3_PIN.
|
||||
* For other boards you may need to define FIL_RUNOUT_PIN.
|
||||
* By default the firmware assumes HIGH = has filament, LOW = ran out
|
||||
*/
|
||||
//#define FILAMENT_RUNOUT_SENSOR
|
||||
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
|
||||
#define FIL_RUNOUT_INVERTING false // set to true to invert the logic of the sensor.
|
||||
#define ENDSTOPPULLUP_FIL_RUNOUT // Uncomment to use internal pullup for filament runout pins if the sensor is defined.
|
||||
@ -852,9 +855,9 @@
|
||||
#define MESH_NUM_Y_POINTS 3
|
||||
#define MESH_HOME_SEARCH_Z 4 // Z after Home, bed somewhere below but above 0.0.
|
||||
|
||||
#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
|
||||
//#define MESH_G28_REST_ORIGIN // After homing all axes ('G28' or 'G28 XYZ') rest at origin [0,0,0]
|
||||
|
||||
#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
||||
//#define MANUAL_BED_LEVELING // Add display menu option for bed leveling.
|
||||
|
||||
#if ENABLED(MANUAL_BED_LEVELING)
|
||||
#define MBL_Z_STEP 0.025 // Step size while manually probing Z axis.
|
||||
@ -873,41 +876,40 @@
|
||||
// @section bedlevel
|
||||
|
||||
/**
|
||||
Select one form of Auto Bed Leveling below.
|
||||
|
||||
If you're also using the Probe for Z Homing, it's
|
||||
highly recommended to enable Z_SAFE_HOMING also!
|
||||
|
||||
- 3POINT
|
||||
Probe 3 arbitrary points on the bed (that aren't collinear)
|
||||
You specify the XY coordinates of all 3 points.
|
||||
The result is a single tilted plane. Best for a flat bed.
|
||||
|
||||
- LINEAR
|
||||
Probe several points in a grid.
|
||||
You specify the rectangle and the density of sample points.
|
||||
The result is a single tilted plane. Best for a flat bed.
|
||||
|
||||
- BILINEAR
|
||||
Probe several points in a grid.
|
||||
You specify the rectangle and the density of sample points.
|
||||
The result is a mesh, best for large or uneven beds.
|
||||
* Select one form of Auto Bed Leveling below.
|
||||
*
|
||||
* If you're also using the Probe for Z Homing, it's
|
||||
* highly recommended to enable Z_SAFE_HOMING also!
|
||||
*
|
||||
* - 3POINT
|
||||
* Probe 3 arbitrary points on the bed (that aren't collinear)
|
||||
* You specify the XY coordinates of all 3 points.
|
||||
* The result is a single tilted plane. Best for a flat bed.
|
||||
*
|
||||
* - LINEAR
|
||||
* Probe several points in a grid.
|
||||
* You specify the rectangle and the density of sample points.
|
||||
* The result is a single tilted plane. Best for a flat bed.
|
||||
*
|
||||
* - BILINEAR
|
||||
* Probe several points in a grid.
|
||||
* You specify the rectangle and the density of sample points.
|
||||
* The result is a mesh, best for large or uneven beds.
|
||||
*/
|
||||
//#define AUTO_BED_LEVELING_3POINT // Only AUTO_BED_LEVELING_BILINEAR is supported for DELTA bed leveling.
|
||||
//#define AUTO_BED_LEVELING_LINEAR // Only AUTO_BED_LEVELING_BILINEAR is supported for DELTA bed leveling.
|
||||
#define AUTO_BED_LEVELING_BILINEAR // Only AUTO_BED_LEVELING_BILINEAR is supported for DELTA bed leveling.
|
||||
|
||||
/**
|
||||
Enable detailed logging of G28, G29, M48, etc.
|
||||
Turn on with the command 'M111 S32'.
|
||||
NOTE: Requires a lot of PROGMEM!
|
||||
* Enable detailed logging of G28, G29, M48, etc.
|
||||
* Turn on with the command 'M111 S32'.
|
||||
* NOTE: Requires a lot of PROGMEM!
|
||||
*/
|
||||
//#define DEBUG_LEVELING_FEATURE
|
||||
|
||||
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
|
||||
|
||||
// Set the number of grid points per dimension.
|
||||
// Works best with 5 or more points in each dimension.
|
||||
#define ABL_GRID_MAX_POINTS_X 9
|
||||
#define ABL_GRID_MAX_POINTS_Y ABL_GRID_MAX_POINTS_X
|
||||
|
||||
@ -957,8 +959,8 @@
|
||||
#endif
|
||||
|
||||
/**
|
||||
Commands to execute at the end of G29 probing.
|
||||
Useful to retract or move the Z probe out of the way.
|
||||
* Commands to execute at the end of G29 probing.
|
||||
* Useful to retract or move the Z probe out of the way.
|
||||
*/
|
||||
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
|
||||
|
||||
@ -982,7 +984,7 @@
|
||||
// - If stepper drivers time out, it will need X and Y homing again before Z homing.
|
||||
// - Move the Z probe (or nozzle) to a defined XY point before Z Homing when homing all axes (G28).
|
||||
// - Prevent Z homing when the Z probe is outside bed area.
|
||||
//#define Z_SAFE_HOMING // To continue using the Z-min-endstop for homing, be sure to disable Z_SAFE_HOMING.
|
||||
//#define Z_SAFE_HOMING
|
||||
|
||||
#if ENABLED(Z_SAFE_HOMING)
|
||||
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28).
|
||||
@ -1082,13 +1084,13 @@
|
||||
//
|
||||
// Available list of patterns:
|
||||
// P0: This is the default pattern, this process requires a sponge type
|
||||
// material at a fixed bed location, the cleaning process is based on
|
||||
// "strokes" i.e. back-and-forth movements between the starting and end
|
||||
// points.
|
||||
// material at a fixed bed location. S defines "strokes" i.e.
|
||||
// back-and-forth movements between the starting and end points.
|
||||
//
|
||||
// P1: This starts a zig-zag pattern between (X0, Y0) and (X1, Y1), "T"
|
||||
// defines the number of zig-zag triangles to be done. "S" defines the
|
||||
// number of strokes aka one back-and-forth movement. As an example
|
||||
// number of strokes aka one back-and-forth movement. Zig-zags will
|
||||
// be performed in whichever dimension is smallest. As an example,
|
||||
// sending "G12 P1 S1 T3" will execute:
|
||||
//
|
||||
// --
|
||||
@ -1101,6 +1103,10 @@
|
||||
// |________|_________|_________|
|
||||
// T1 T2 T3
|
||||
//
|
||||
// P2: This starts a circular pattern with circle with middle in
|
||||
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S.
|
||||
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT.
|
||||
//
|
||||
// Caveats: End point Z should use the same value as Start point Z.
|
||||
//
|
||||
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments
|
||||
@ -1109,13 +1115,23 @@
|
||||
//#define NOZZLE_CLEAN_FEATURE
|
||||
|
||||
#if ENABLED(NOZZLE_CLEAN_FEATURE)
|
||||
// Number of pattern repetitions
|
||||
// Default number of pattern repetitions
|
||||
#define NOZZLE_CLEAN_STROKES 12
|
||||
|
||||
// Default number of triangles
|
||||
#define NOZZLE_CLEAN_TRIANGLES 3
|
||||
|
||||
// Specify positions as { X, Y, Z }
|
||||
#define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1)}
|
||||
#define NOZZLE_CLEAN_END_POINT {100, 60, (Z_MIN_POS + 1)}
|
||||
|
||||
// Circular pattern radius
|
||||
#define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
|
||||
// Circular pattern circle fragments number
|
||||
#define NOZZLE_CLEAN_CIRCLE_FN 10
|
||||
// Middle point of circle
|
||||
#define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT
|
||||
|
||||
// Moves the nozzle to the initial position
|
||||
#define NOZZLE_CLEAN_GOBACK
|
||||
#endif
|
||||
@ -1201,7 +1217,7 @@
|
||||
// IMPORTANT NOTE: The U8glib library is required for Full Graphic Display!
|
||||
// https://github.com/olikraus/U8glib_Arduino
|
||||
//
|
||||
#define ULTRA_LCD // Character based
|
||||
//#define ULTRA_LCD // Character based
|
||||
//#define DOGLCD // Full graphics display
|
||||
|
||||
//
|
||||
@ -1244,13 +1260,13 @@
|
||||
//#define ENCODER_STEPS_PER_MENU_ITEM 5
|
||||
|
||||
/**
|
||||
Encoder Direction Options
|
||||
|
||||
Test your encoder's behavior first with both options disabled.
|
||||
|
||||
Reversed Value Edit and Menu Nav? Enable REVERSE_ENCODER_DIRECTION.
|
||||
Reversed Menu Navigation only? Enable REVERSE_MENU_DIRECTION.
|
||||
Reversed Value Editing only? Enable BOTH options.
|
||||
* Encoder Direction Options
|
||||
*
|
||||
* Test your encoder's behavior first with both options disabled.
|
||||
*
|
||||
* Reversed Value Edit and Menu Nav? Enable REVERSE_ENCODER_DIRECTION.
|
||||
* Reversed Menu Navigation only? Enable REVERSE_MENU_DIRECTION.
|
||||
* Reversed Value Editing only? Enable BOTH options.
|
||||
*/
|
||||
|
||||
//
|
||||
@ -1509,8 +1525,8 @@
|
||||
#endif
|
||||
|
||||
/*********************************************************************\
|
||||
R/C SERVO support
|
||||
Sponsored by TrinityLabs, Reworked by codexmas
|
||||
* R/C SERVO support
|
||||
* Sponsored by TrinityLabs, Reworked by codexmas
|
||||
**********************************************************************/
|
||||
|
||||
// Number of servos
|
||||
@ -1522,7 +1538,7 @@
|
||||
//
|
||||
//#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command
|
||||
|
||||
// Delay (in microseconds) before the next move will start, to give the servo time to reach its target angle.
|
||||
// Delay (in milliseconds) before the next move will start, to give the servo time to reach its target angle.
|
||||
// 300ms is a good value but you can try less delay.
|
||||
// If the servo can't reach the requested position, increase it.
|
||||
#define SERVO_DELAY 300
|
||||
@ -1533,15 +1549,15 @@
|
||||
//#define DEACTIVATE_SERVOS_AFTER_MOVE
|
||||
|
||||
/**********************************************************************\
|
||||
Support for a filament diameter sensor
|
||||
Also allows adjustment of diameter at print time (vs at slicing)
|
||||
Single extruder only at this point (extruder 0)
|
||||
|
||||
Motherboards
|
||||
34 - RAMPS1.4 - uses Analog input 5 on the AUX2 connector
|
||||
81 - Printrboard - Uses Analog input 2 on the Exp1 connector (version B,C,D,E)
|
||||
301 - Rambo - uses Analog input 3
|
||||
Note may require analog pins to be defined for different motherboards
|
||||
* Support for a filament diameter sensor
|
||||
* Also allows adjustment of diameter at print time (vs at slicing)
|
||||
* Single extruder only at this point (extruder 0)
|
||||
*
|
||||
* Motherboards
|
||||
* 34 - RAMPS1.4 - uses Analog input 5 on the AUX2 connector
|
||||
* 81 - Printrboard - Uses Analog input 2 on the Exp1 connector (version B,C,D,E)
|
||||
* 301 - Rambo - uses Analog input 3
|
||||
* Note may require analog pins to be defined for different motherboards
|
||||
**********************************************************************/
|
||||
// Uncomment below to enable
|
||||
//#define FILAMENT_WIDTH_SENSOR
|
||||
|
@ -217,13 +217,12 @@
|
||||
* Multiple extruders can be assigned to the same pin in which case
|
||||
* the fan will turn on when any selected extruder is above the threshold.
|
||||
*/
|
||||
|
||||
#define E0_AUTO_FAN_PIN -1
|
||||
#define E1_AUTO_FAN_PIN -1
|
||||
#define E2_AUTO_FAN_PIN -1
|
||||
#define E3_AUTO_FAN_PIN -1
|
||||
#define EXTRUDER_AUTO_FAN_TEMPERATURE 50
|
||||
#define EXTRUDER_AUTO_FAN_SPEED 255 // 255 == full speed
|
||||
#define EXTRUDER_AUTO_FAN_SPEED 255 // == full speed
|
||||
|
||||
// Define a pin to turn case light on/off
|
||||
//#define CASE_LIGHT_PIN 4
|
||||
@ -309,11 +308,11 @@
|
||||
// Remember: you should set the second extruder x-offset to 0 in your slicer.
|
||||
|
||||
// There are a few selectable movement modes for dual x-carriages using M605 S<mode>
|
||||
// Mode 0: Full control. The slicer has full control over both x-carriages and can achieve optimal travel results
|
||||
// Mode 0 (DXC_FULL_CONTROL_MODE): Full control. The slicer has full control over both x-carriages and can achieve optimal travel results
|
||||
// as long as it supports dual x-carriages. (M605 S0)
|
||||
// Mode 1: Auto-park mode. The firmware will automatically park and unpark the x-carriages on tool changes so
|
||||
// Mode 1 (DXC_AUTO_PARK_MODE) : Auto-park mode. The firmware will automatically park and unpark the x-carriages on tool changes so
|
||||
// that additional slicer support is not required. (M605 S1)
|
||||
// Mode 2: Duplication mode. The firmware will transparently make the second x-carriage and extruder copy all
|
||||
// Mode 2 (DXC_DUPLICATION_MODE) : Duplication mode. The firmware will transparently make the second x-carriage and extruder copy all
|
||||
// actions of the first x-carriage. This allows the printer to print 2 arbitrary items at
|
||||
// once. (2nd extruder x offset and temp offset are set using: M605 S2 [Xnnn] [Rmmm])
|
||||
|
||||
@ -428,6 +427,9 @@
|
||||
// On the Info Screen, display XY with one decimal place when possible
|
||||
//#define LCD_DECIMAL_SMALL_XY
|
||||
|
||||
// The timeout (in ms) to return to the status screen from sub-menus
|
||||
//#define LCD_TIMEOUT_TO_STATUS 15000
|
||||
|
||||
#if ENABLED(SDSUPPORT)
|
||||
|
||||
// Some RAMPS and other boards don't detect when an SD card is inserted. You can work
|
||||
@ -445,6 +447,42 @@
|
||||
// using:
|
||||
//#define MENU_ADDAUTOSTART
|
||||
|
||||
/**
|
||||
* Sort SD file listings in alphabetical order.
|
||||
*
|
||||
* With this option enabled, items on SD cards will be sorted
|
||||
* by name for easier navigation.
|
||||
*
|
||||
* By default...
|
||||
*
|
||||
* - Use the slowest -but safest- method for sorting.
|
||||
* - Folders are sorted to the top.
|
||||
* - The sort key is statically allocated.
|
||||
* - No added G-code (M34) support.
|
||||
* - 40 item sorting limit. (Items after the first 40 are unsorted.)
|
||||
*
|
||||
* SD sorting uses static allocation (as set by SDSORT_LIMIT), allowing the
|
||||
* compiler to calculate the worst-case usage and throw an error if the SRAM
|
||||
* limit is exceeded.
|
||||
*
|
||||
* - SDSORT_USES_RAM provides faster sorting via a static directory buffer.
|
||||
* - SDSORT_USES_STACK does the same, but uses a local stack-based buffer.
|
||||
* - SDSORT_CACHE_NAMES will retain the sorted file listing in RAM. (Expensive!)
|
||||
* - SDSORT_DYNAMIC_RAM only uses RAM when the SD menu is visible. (Use with caution!)
|
||||
*/
|
||||
//#define SDCARD_SORT_ALPHA
|
||||
|
||||
// SD Card Sorting options
|
||||
#if ENABLED(SDCARD_SORT_ALPHA)
|
||||
#define SDSORT_LIMIT 40 // Maximum number of sorted items (10-256).
|
||||
#define FOLDER_SORTING -1 // -1=above 0=none 1=below
|
||||
#define SDSORT_GCODE false // Allow turning sorting on/off with LCD and M34 g-code.
|
||||
#define SDSORT_USES_RAM false // Pre-allocate a static array for faster pre-sorting.
|
||||
#define SDSORT_USES_STACK false // Prefer the stack for pre-sorting to give back some SRAM. (Negated by next 2 options.)
|
||||
#define SDSORT_CACHE_NAMES false // Keep sorted items in RAM longer for speedy performance. Most expensive option.
|
||||
#define SDSORT_DYNAMIC_RAM false // Use dynamic allocation (within SD menus). Least expensive option. Set SDSORT_LIMIT before use!
|
||||
#endif
|
||||
|
||||
// Show a progress bar on HD44780 LCDs for SD printing
|
||||
//#define LCD_PROGRESS_BAR
|
||||
|
||||
@ -457,6 +495,8 @@
|
||||
#define PROGRESS_MSG_EXPIRE 0
|
||||
// Enable this to show messages for MSG_TIME then hide them
|
||||
//#define PROGRESS_MSG_ONCE
|
||||
// Add a menu item to test the progress bar:
|
||||
//#define LCD_PROGRESS_BAR_TEST
|
||||
#endif
|
||||
|
||||
// This allows hosts to request long names for files and folders with M33
|
||||
@ -469,8 +509,25 @@
|
||||
|
||||
#endif // SDSUPPORT
|
||||
|
||||
// Some additional options are available for graphical displays:
|
||||
/**
|
||||
* Additional options for Graphical Displays
|
||||
*
|
||||
* Use the optimizations here to improve printing performance,
|
||||
* which can be adversely affected by graphical display drawing,
|
||||
* especially when doing several short moves, and when printing
|
||||
* on DELTA and SCARA machines.
|
||||
*
|
||||
* Some of these options may result in the display lagging behind
|
||||
* controller events, as there is a trade-off between reliable
|
||||
* printing performance versus fast display updates.
|
||||
*/
|
||||
#if ENABLED(DOGLCD)
|
||||
// Enable to save many cycles by drawing a hollow frame on the Info Screen
|
||||
#define XYZ_HOLLOW_FRAME
|
||||
|
||||
// Enable to save many cycles by drawing a hollow frame on Menu Screens
|
||||
#define MENU_HOLLOW_FRAME
|
||||
|
||||
// A bigger font is available for edit items. Costs 3120 bytes of PROGMEM.
|
||||
// Western only. Not available for Cyrillic, Kana, Turkish, Greek, or Chinese.
|
||||
//#define USE_BIG_EDIT_FONT
|
||||
@ -510,36 +567,6 @@
|
||||
#define BABYSTEP_MULTIPLICATOR 1 //faster movements
|
||||
#endif
|
||||
|
||||
//
|
||||
// Ensure Smooth Moves
|
||||
//
|
||||
// Enable this option to prevent the machine from stuttering when printing multiple short segments.
|
||||
// This feature uses two strategies to eliminate stuttering:
|
||||
//
|
||||
// 1. During short segments a Graphical LCD update may take so much time that the planner buffer gets
|
||||
// completely drained. When this happens pauses are introduced between short segments, and print moves
|
||||
// will become jerky until a longer segment provides enough time for the buffer to be filled again.
|
||||
// This jerkiness negatively affects print quality. The ENSURE_SMOOTH_MOVES option addresses the issue
|
||||
// by pausing the LCD until there's enough time to safely update.
|
||||
//
|
||||
// NOTE: This will cause the Info Screen to lag and controller buttons may become unresponsive.
|
||||
// Enable ALWAYS_ALLOW_MENU to keep the controller responsive.
|
||||
//
|
||||
// 2. No block is allowed to take less time than MIN_BLOCK_TIME. That's the time it takes in the main
|
||||
// loop to add a new block to the buffer, check temperatures, etc., including all blocked time due to
|
||||
// interrupts (without LCD update). By enforcing a minimum time-per-move, the buffer is prevented from
|
||||
// draining.
|
||||
//
|
||||
#define ENSURE_SMOOTH_MOVES
|
||||
#if ENABLED(ENSURE_SMOOTH_MOVES)
|
||||
//#define ALWAYS_ALLOW_MENU // If enabled, the menu will always be responsive.
|
||||
// WARNING: Menu navigation during short moves may cause stuttering!
|
||||
#define LCD_UPDATE_THRESHOLD 135 // (ms) Minimum duration for the current segment to allow an LCD update.
|
||||
// Default value is good for graphical LCDs (e.g., REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER).
|
||||
// You may try to lower this value until you printer starts stuttering again as if ENSURE_SMOOTH_MOVES is disabled.
|
||||
#define MIN_BLOCK_TIME 6 // (ms) Minimum duration of a single block. You shouldn't need to modify this.
|
||||
#endif
|
||||
|
||||
// @section extruder
|
||||
|
||||
// extruder advance constant (s2/mm3)
|
||||
@ -561,19 +588,37 @@
|
||||
*
|
||||
* 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 |
|
||||
* See Marlin documentation for calibration instructions.
|
||||
*/
|
||||
//#define LIN_ADVANCE
|
||||
|
||||
#if ENABLED(LIN_ADVANCE)
|
||||
#define LIN_ADVANCE_K 75
|
||||
|
||||
/**
|
||||
* Some Slicers produce Gcode with randomly jumping extrusion widths occasionally.
|
||||
* For example within a 0.4mm perimeter it may produce a single segment of 0.05mm width.
|
||||
* While this is harmless for normal printing (the fluid nature of the filament will
|
||||
* close this very, very tiny gap), it throws off the LIN_ADVANCE pressure adaption.
|
||||
*
|
||||
* For this case LIN_ADVANCE_E_D_RATIO can be used to set the extrusion:distance ratio
|
||||
* to a fixed value. Note that using a fixed ratio will lead to wrong nozzle pressures
|
||||
* if the slicer is using variable widths or layer heights within one print!
|
||||
*
|
||||
* This option sets the default E:D ratio at startup. Use `M905` to override this value.
|
||||
*
|
||||
* Example: `M905 W0.4 H0.2 D1.75`, where:
|
||||
* - W is the extrusion width in mm
|
||||
* - H is the layer height in mm
|
||||
* - D is the filament diameter in mm
|
||||
*
|
||||
* Set to 0 to auto-detect the ratio based on given Gcode G1 print moves.
|
||||
*
|
||||
* Slic3r (including Prusa Slic3r) produces Gcode compatible with the automatic mode.
|
||||
* Cura (as of this writing) may produce Gcode incompatible with the automatic mode.
|
||||
*/
|
||||
#define LIN_ADVANCE_E_D_RATIO 0 // The calculated ratio (or 0) according to the formula W * H / ((D / 2) ^ 2 * PI)
|
||||
// Example: 0.4 * 0.2 / ((1.75 / 2) ^ 2 * PI) = 0.033260135
|
||||
#endif
|
||||
|
||||
// @section leveling
|
||||
@ -680,33 +725,42 @@
|
||||
#define RETRACT_RECOVER_FEEDRATE 8 //default feedrate for recovering from retraction (mm/s)
|
||||
#endif
|
||||
|
||||
// Add support for experimental filament exchange support M600; requires display
|
||||
#if ENABLED(ULTIPANEL)
|
||||
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
|
||||
/**
|
||||
* Filament Change
|
||||
* Experimental filament change support.
|
||||
* Adds the GCode M600 for initiating filament change.
|
||||
*
|
||||
* Requires an LCD display.
|
||||
* This feature is required for the default FILAMENT_RUNOUT_SCRIPT.
|
||||
*/
|
||||
//#define FILAMENT_CHANGE_FEATURE
|
||||
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||
// Longer length for bowden printers to unload filament from whole bowden tube,
|
||||
// shorter lenght for printers without bowden to unload filament from extruder only,
|
||||
// shorter length for printers without bowden to unload filament from extruder only,
|
||||
// 0 to disable unloading for manual unloading
|
||||
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||
#define FILAMENT_CHANGE_LOAD_FEEDRATE 6 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
|
||||
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||
// Short or zero length for printers without bowden where loading is not used
|
||||
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
|
||||
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
|
||||
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is loaded over the hotend,
|
||||
// 0 to disable for manual extrusion
|
||||
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||
// or until outcoming filament color is not clear for filament color change
|
||||
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||
#endif
|
||||
#define FILAMENT_CHANGE_NOZZLE_TIMEOUT 45L // Turn off nozzle if user doesn't change filament within this time limit in seconds
|
||||
#define FILAMENT_CHANGE_NUMBER_OF_ALERT_BEEPS 5L // Number of alert beeps before printer goes quiet
|
||||
#define FILAMENT_CHANGE_NO_STEPPER_TIMEOUT // Enable to have stepper motors hold position during filament change
|
||||
// even if it takes longer than DEFAULT_STEPPER_DEACTIVE_TIME.
|
||||
#endif
|
||||
|
||||
/******************************************************************************\
|
||||
@ -1101,4 +1155,29 @@
|
||||
*/
|
||||
//#define EXTENDED_CAPABILITIES_REPORT
|
||||
|
||||
/**
|
||||
* Double-click the Encoder button on the Status Screen for Z Babystepping.
|
||||
*/
|
||||
//#define DOUBLECLICK_FOR_Z_BABYSTEPPING
|
||||
#define DOUBLECLICK_MAX_INTERVAL 1250 // Maximum interval between clicks, in milliseconds.
|
||||
// Note: You may need to add extra time to mitigate controller latency.
|
||||
|
||||
/**
|
||||
* Volumetric extrusion default state
|
||||
* Activate to make volumetric extrusion the default method,
|
||||
* with DEFAULT_NOMINAL_FILAMENT_DIA as the default diameter.
|
||||
*
|
||||
* M200 D0 to disable, M200 Dn to set a new diameter.
|
||||
*/
|
||||
//#define VOLUMETRIC_DEFAULT_ON
|
||||
|
||||
/**
|
||||
* Enable this option for a leaner build of Marlin that removes all
|
||||
* workspace offsets, simplifying coordinate transformations, leveling, etc.
|
||||
*
|
||||
* - M206 and M428 are disabled.
|
||||
* - G92 will revert to its behavior from Marlin 1.0.
|
||||
*/
|
||||
//#define NO_WORKSPACE_OFFSETS
|
||||
|
||||
#endif // CONFIGURATION_ADV_H
|
||||
|
@ -96,7 +96,7 @@
|
||||
//
|
||||
// Marlin now allow you to have a vendor boot image to be displayed on machine
|
||||
// start. When SHOW_CUSTOM_BOOTSCREEN is defined Marlin will first show your
|
||||
// custom boot image and them the default Marlin boot image is shown.
|
||||
// custom boot image and then the default Marlin boot image is shown.
|
||||
//
|
||||
// We suggest for you to take advantage of this new feature and keep the Marlin
|
||||
// boot image unmodified. For an example have a look at the bq Hephestos 2
|
||||
@ -1087,6 +1087,10 @@
|
||||
// |________|_________|_________|
|
||||
// T1 T2 T3
|
||||
//
|
||||
// P2: This starts a circular pattern with circle with middle in
|
||||
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S.
|
||||
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT.
|
||||
//
|
||||
// Caveats: End point Z should use the same value as Start point Z.
|
||||
//
|
||||
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments
|
||||
@ -1105,6 +1109,13 @@
|
||||
#define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1)}
|
||||
#define NOZZLE_CLEAN_END_POINT {100, 60, (Z_MIN_POS + 1)}
|
||||
|
||||
// Circular pattern radius
|
||||
#define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
|
||||
// Circular pattern circle fragments number
|
||||
#define NOZZLE_CLEAN_CIRCLE_FN 10
|
||||
// Middle point of circle
|
||||
#define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT
|
||||
|
||||
// Moves the nozzle to the initial position
|
||||
#define NOZZLE_CLEAN_GOBACK
|
||||
#endif
|
||||
|
@ -96,7 +96,7 @@
|
||||
//
|
||||
// Marlin now allow you to have a vendor boot image to be displayed on machine
|
||||
// start. When SHOW_CUSTOM_BOOTSCREEN is defined Marlin will first show your
|
||||
// custom boot image and them the default Marlin boot image is shown.
|
||||
// custom boot image and then the default Marlin boot image is shown.
|
||||
//
|
||||
// We suggest for you to take advantage of this new feature and keep the Marlin
|
||||
// boot image unmodified. For an example have a look at the bq Hephestos 2
|
||||
@ -1090,6 +1090,10 @@
|
||||
// |________|_________|_________|
|
||||
// T1 T2 T3
|
||||
//
|
||||
// P2: This starts a circular pattern with circle with middle in
|
||||
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S.
|
||||
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT.
|
||||
//
|
||||
// Caveats: End point Z should use the same value as Start point Z.
|
||||
//
|
||||
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments
|
||||
@ -1108,6 +1112,13 @@
|
||||
#define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1)}
|
||||
#define NOZZLE_CLEAN_END_POINT {100, 60, (Z_MIN_POS + 1)}
|
||||
|
||||
// Circular pattern radius
|
||||
#define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
|
||||
// Circular pattern circle fragments number
|
||||
#define NOZZLE_CLEAN_CIRCLE_FN 10
|
||||
// Middle point of circle
|
||||
#define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT
|
||||
|
||||
// Moves the nozzle to the initial position
|
||||
#define NOZZLE_CLEAN_GOBACK
|
||||
#endif
|
||||
|
@ -100,7 +100,7 @@
|
||||
//
|
||||
// Marlin now allow you to have a vendor boot image to be displayed on machine
|
||||
// start. When SHOW_CUSTOM_BOOTSCREEN is defined Marlin will first show your
|
||||
// custom boot image and them the default Marlin boot image is shown.
|
||||
// custom boot image and then the default Marlin boot image is shown.
|
||||
//
|
||||
// We suggest for you to take advantage of this new feature and keep the Marlin
|
||||
// boot image unmodified. For an example have a look at the bq Hephestos 2
|
||||
@ -1089,6 +1089,10 @@
|
||||
// |________|_________|_________|
|
||||
// T1 T2 T3
|
||||
//
|
||||
// P2: This starts a circular pattern with circle with middle in
|
||||
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S.
|
||||
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT.
|
||||
//
|
||||
// Caveats: End point Z should use the same value as Start point Z.
|
||||
//
|
||||
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments
|
||||
@ -1107,6 +1111,13 @@
|
||||
#define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1)}
|
||||
#define NOZZLE_CLEAN_END_POINT {100, 60, (Z_MIN_POS + 1)}
|
||||
|
||||
// Circular pattern radius
|
||||
#define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
|
||||
// Circular pattern circle fragments number
|
||||
#define NOZZLE_CLEAN_CIRCLE_FN 10
|
||||
// Middle point of circle
|
||||
#define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT
|
||||
|
||||
// Moves the nozzle to the initial position
|
||||
#define NOZZLE_CLEAN_GOBACK
|
||||
#endif
|
||||
|
@ -89,7 +89,7 @@
|
||||
//
|
||||
// Marlin now allow you to have a vendor boot image to be displayed on machine
|
||||
// start. When SHOW_CUSTOM_BOOTSCREEN is defined Marlin will first show your
|
||||
// custom boot image and them the default Marlin boot image is shown.
|
||||
// custom boot image and then the default Marlin boot image is shown.
|
||||
//
|
||||
// We suggest for you to take advantage of this new feature and keep the Marlin
|
||||
// boot image unmodified. For an example have a look at the bq Hephestos 2
|
||||
@ -1093,6 +1093,10 @@
|
||||
// |________|_________|_________|
|
||||
// T1 T2 T3
|
||||
//
|
||||
// P2: This starts a circular pattern with circle with middle in
|
||||
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S.
|
||||
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT.
|
||||
//
|
||||
// Caveats: End point Z should use the same value as Start point Z.
|
||||
//
|
||||
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments
|
||||
@ -1111,6 +1115,13 @@
|
||||
#define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1)}
|
||||
#define NOZZLE_CLEAN_END_POINT {100, 60, (Z_MIN_POS + 1)}
|
||||
|
||||
// Circular pattern radius
|
||||
#define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
|
||||
// Circular pattern circle fragments number
|
||||
#define NOZZLE_CLEAN_CIRCLE_FN 10
|
||||
// Middle point of circle
|
||||
#define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT
|
||||
|
||||
// Moves the nozzle to the initial position
|
||||
#define NOZZLE_CLEAN_GOBACK
|
||||
#endif
|
||||
|
@ -96,7 +96,7 @@
|
||||
//
|
||||
// Marlin now allow you to have a vendor boot image to be displayed on machine
|
||||
// start. When SHOW_CUSTOM_BOOTSCREEN is defined Marlin will first show your
|
||||
// custom boot image and them the default Marlin boot image is shown.
|
||||
// custom boot image and then the default Marlin boot image is shown.
|
||||
//
|
||||
// We suggest for you to take advantage of this new feature and keep the Marlin
|
||||
// boot image unmodified. For an example have a look at the bq Hephestos 2
|
||||
@ -1003,6 +1003,10 @@
|
||||
// |________|_________|_________|
|
||||
// T1 T2 T3
|
||||
//
|
||||
// P2: This starts a circular pattern with circle with middle in
|
||||
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S.
|
||||
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT.
|
||||
//
|
||||
// Caveats: End point Z should use the same value as Start point Z.
|
||||
//
|
||||
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments
|
||||
@ -1021,6 +1025,13 @@
|
||||
#define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1)}
|
||||
#define NOZZLE_CLEAN_END_POINT {100, 60, (Z_MIN_POS + 1)}
|
||||
|
||||
// Circular pattern radius
|
||||
#define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
|
||||
// Circular pattern circle fragments number
|
||||
#define NOZZLE_CLEAN_CIRCLE_FN 10
|
||||
// Middle point of circle
|
||||
#define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT
|
||||
|
||||
// Moves the nozzle to the initial position
|
||||
#define NOZZLE_CLEAN_GOBACK
|
||||
#endif
|
||||
|
@ -96,7 +96,7 @@
|
||||
//
|
||||
// Marlin now allow you to have a vendor boot image to be displayed on machine
|
||||
// start. When SHOW_CUSTOM_BOOTSCREEN is defined Marlin will first show your
|
||||
// custom boot image and them the default Marlin boot image is shown.
|
||||
// custom boot image and then the default Marlin boot image is shown.
|
||||
//
|
||||
// We suggest for you to take advantage of this new feature and keep the Marlin
|
||||
// boot image unmodified. For an example have a look at the bq Hephestos 2
|
||||
@ -996,6 +996,10 @@
|
||||
// |________|_________|_________|
|
||||
// T1 T2 T3
|
||||
//
|
||||
// P2: This starts a circular pattern with circle with middle in
|
||||
// NOZZLE_CLEAN_CIRCLE_MIDDLE radius of R and stroke count of S.
|
||||
// Before starting the circle nozzle goes to NOZZLE_CLEAN_START_POINT.
|
||||
//
|
||||
// Caveats: End point Z should use the same value as Start point Z.
|
||||
//
|
||||
// Attention: This is an EXPERIMENTAL feature, in the future the G-code arguments
|
||||
@ -1014,6 +1018,13 @@
|
||||
#define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1)}
|
||||
#define NOZZLE_CLEAN_END_POINT {100, 60, (Z_MIN_POS + 1)}
|
||||
|
||||
// Circular pattern radius
|
||||
#define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
|
||||
// Circular pattern circle fragments number
|
||||
#define NOZZLE_CLEAN_CIRCLE_FN 10
|
||||
// Middle point of circle
|
||||
#define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT
|
||||
|
||||
// Moves the nozzle to the initial position
|
||||
#define NOZZLE_CLEAN_GOBACK
|
||||
#endif
|
||||
|
236
Marlin/nozzle.cpp
Normal file
236
Marlin/nozzle.cpp
Normal file
@ -0,0 +1,236 @@
|
||||
#include "nozzle.h"
|
||||
|
||||
#include "Marlin.h"
|
||||
#include "point_t.h"
|
||||
|
||||
/**
|
||||
* @brief Stroke clean pattern
|
||||
* @details Wipes the nozzle back and forth in a linear movement
|
||||
*
|
||||
* @param start point_t defining the starting point
|
||||
* @param end point_t defining the ending point
|
||||
* @param strokes number of strokes to execute
|
||||
*/
|
||||
void Nozzle::stroke(
|
||||
__attribute__((unused)) point_t const &start,
|
||||
__attribute__((unused)) point_t const &end,
|
||||
__attribute__((unused)) uint8_t const &strokes
|
||||
) {
|
||||
#if ENABLED(NOZZLE_CLEAN_FEATURE)
|
||||
|
||||
#if ENABLED(NOZZLE_CLEAN_GOBACK)
|
||||
// Store the current coords
|
||||
point_t const initial = {
|
||||
current_position[X_AXIS],
|
||||
current_position[Y_AXIS],
|
||||
current_position[Z_AXIS],
|
||||
current_position[E_AXIS]
|
||||
};
|
||||
#endif // NOZZLE_CLEAN_GOBACK
|
||||
|
||||
// Move to the starting point
|
||||
do_blocking_move_to_xy(start.x, start.y);
|
||||
do_blocking_move_to_z(start.z);
|
||||
|
||||
// Start the stroke pattern
|
||||
for (uint8_t i = 0; i < (strokes >>1); i++) {
|
||||
do_blocking_move_to_xy(end.x, end.y);
|
||||
do_blocking_move_to_xy(start.x, start.y);
|
||||
}
|
||||
|
||||
#if ENABLED(NOZZLE_CLEAN_GOBACK)
|
||||
// Move the nozzle to the initial point
|
||||
do_blocking_move_to(initial.x, initial.y, initial.z);
|
||||
#endif // NOZZLE_CLEAN_GOBACK
|
||||
|
||||
#endif // NOZZLE_CLEAN_FEATURE
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Zig-zag clean pattern
|
||||
* @details Apply a zig-zag cleanning pattern
|
||||
*
|
||||
* @param start point_t defining the starting point
|
||||
* @param end point_t defining the ending point
|
||||
* @param strokes number of strokes to execute
|
||||
* @param objects number of objects to create
|
||||
*/
|
||||
void Nozzle::zigzag(
|
||||
__attribute__((unused)) point_t const &start,
|
||||
__attribute__((unused)) point_t const &end,
|
||||
__attribute__((unused)) uint8_t const &strokes,
|
||||
__attribute__((unused)) uint8_t const &objects
|
||||
) {
|
||||
#if ENABLED(NOZZLE_CLEAN_FEATURE)
|
||||
const float A = nozzle_clean_horizontal ? nozzle_clean_height : nozzle_clean_length, // [twice the] Amplitude
|
||||
P = (nozzle_clean_horizontal ? nozzle_clean_length : nozzle_clean_height) / (objects << 1); // Period
|
||||
|
||||
// Don't allow impossible triangles
|
||||
if (A <= 0.0f || P <= 0.0f ) return;
|
||||
|
||||
#if ENABLED(NOZZLE_CLEAN_GOBACK)
|
||||
// Store the current coords
|
||||
point_t const initial = {
|
||||
current_position[X_AXIS],
|
||||
current_position[Y_AXIS],
|
||||
current_position[Z_AXIS],
|
||||
current_position[E_AXIS]
|
||||
};
|
||||
#endif // NOZZLE_CLEAN_GOBACK
|
||||
|
||||
for (uint8_t j = 0; j < strokes; j++) {
|
||||
for (uint8_t i = 0; i < (objects << 1); i++) {
|
||||
float const x = start.x + ( nozzle_clean_horizontal ? i * P : (A/P) * (P - fabs(fmod((i*P), (2*P)) - P)) );
|
||||
float const y = start.y + (!nozzle_clean_horizontal ? i * P : (A/P) * (P - fabs(fmod((i*P), (2*P)) - P)) );
|
||||
|
||||
do_blocking_move_to_xy(x, y);
|
||||
if (i == 0) do_blocking_move_to_z(start.z);
|
||||
}
|
||||
|
||||
for (int i = (objects << 1); i > -1; i--) {
|
||||
float const x = start.x + ( nozzle_clean_horizontal ? i * P : (A/P) * (P - fabs(fmod((i*P), (2*P)) - P)) );
|
||||
float const y = start.y + (!nozzle_clean_horizontal ? i * P : (A/P) * (P - fabs(fmod((i*P), (2*P)) - P)) );
|
||||
|
||||
do_blocking_move_to_xy(x, y);
|
||||
}
|
||||
}
|
||||
|
||||
#if ENABLED(NOZZLE_CLEAN_GOBACK)
|
||||
// Move the nozzle to the initial point
|
||||
do_blocking_move_to_z(initial.z);
|
||||
do_blocking_move_to_xy(initial.x, initial.y);
|
||||
#endif // NOZZLE_CLEAN_GOBACK
|
||||
|
||||
#endif // NOZZLE_CLEAN_FEATURE
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* @brief Circular clean pattern
|
||||
* @details Apply a circular cleaning pattern
|
||||
*
|
||||
* @param start point_t defining the middle of circle
|
||||
* @param strokes number of strokes to execute
|
||||
* @param radius radius of circle
|
||||
*/
|
||||
void Nozzle::circle(
|
||||
__attribute__((unused)) point_t const &start,
|
||||
__attribute__((unused)) point_t const &middle,
|
||||
__attribute__((unused)) uint8_t const &strokes,
|
||||
__attribute__((unused)) float const &radius
|
||||
) {
|
||||
#if ENABLED(NOZZLE_CLEAN_FEATURE)
|
||||
if (strokes == 0) return;
|
||||
|
||||
#if ENABLED(NOZZLE_CLEAN_GOBACK)
|
||||
// Store the current coords
|
||||
point_t const initial = {
|
||||
current_position[X_AXIS],
|
||||
current_position[Y_AXIS],
|
||||
current_position[Z_AXIS],
|
||||
current_position[E_AXIS]
|
||||
};
|
||||
#endif // NOZZLE_CLEAN_GOBACK
|
||||
|
||||
if (start.z <= current_position[Z_AXIS]) {
|
||||
// Order of movement is pretty darn important here
|
||||
do_blocking_move_to_xy(start.x, start.y);
|
||||
do_blocking_move_to_z(start.z);
|
||||
} else {
|
||||
do_blocking_move_to_z(start.z);
|
||||
do_blocking_move_to_xy(start.x, start.y);
|
||||
}
|
||||
|
||||
float x, y;
|
||||
for (uint8_t s = 0; s < strokes; s++) {
|
||||
for (uint8_t i = 0; i < NOZZLE_CLEAN_CIRCLE_FN; i++) {
|
||||
x = middle.x + sin((M_2_PI / NOZZLE_CLEAN_CIRCLE_FN) * i) * radius;
|
||||
y = middle.y + cos((M_2_PI / NOZZLE_CLEAN_CIRCLE_FN) * i) * radius;
|
||||
|
||||
do_blocking_move_to_xy(x, y);
|
||||
}
|
||||
}
|
||||
|
||||
// Let's be safe
|
||||
do_blocking_move_to_xy(start.x, start.y);
|
||||
|
||||
#if ENABLED(NOZZLE_CLEAN_GOBACK)
|
||||
// Move the nozzle to the initial point
|
||||
if (start.z <= initial.z) {
|
||||
// As above order is important
|
||||
do_blocking_move_to_z(initial.z);
|
||||
do_blocking_move_to_xy(initial.x, initial.y);
|
||||
} else {
|
||||
do_blocking_move_to_xy(initial.x, initial.y);
|
||||
do_blocking_move_to_z(initial.z);
|
||||
}
|
||||
#endif // NOZZLE_CLEAN_GOBACK
|
||||
|
||||
#endif // NOZZLE_CLEAN_FEATURE
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Clean the nozzle
|
||||
* @details Starts the selected clean procedure pattern
|
||||
*
|
||||
* @param pattern one of the available patterns
|
||||
* @param argument depends on the cleaning pattern
|
||||
*/
|
||||
void Nozzle::clean(
|
||||
__attribute__((unused)) uint8_t const &pattern,
|
||||
__attribute__((unused)) uint8_t const &strokes,
|
||||
__attribute__((unused)) float const &radius,
|
||||
__attribute__((unused)) uint8_t const &objects
|
||||
) {
|
||||
#if ENABLED(NOZZLE_CLEAN_FEATURE)
|
||||
#if ENABLED(DELTA)
|
||||
if (current_position[Z_AXIS] > delta_clip_start_height)
|
||||
do_blocking_move_to_z(delta_clip_start_height);
|
||||
#endif
|
||||
switch (pattern) {
|
||||
case 1:
|
||||
Nozzle::zigzag(
|
||||
NOZZLE_CLEAN_START_POINT,
|
||||
NOZZLE_CLEAN_END_POINT, strokes, objects);
|
||||
break;
|
||||
|
||||
case 2:
|
||||
Nozzle::circle(
|
||||
NOZZLE_CLEAN_START_POINT,
|
||||
NOZZLE_CLEAN_CIRCLE_MIDDLE, strokes, radius);
|
||||
break;
|
||||
|
||||
default:
|
||||
Nozzle::stroke(
|
||||
NOZZLE_CLEAN_START_POINT,
|
||||
NOZZLE_CLEAN_END_POINT, strokes);
|
||||
}
|
||||
#endif // NOZZLE_CLEAN_FEATURE
|
||||
}
|
||||
|
||||
void Nozzle::park(
|
||||
__attribute__((unused)) uint8_t const &z_action
|
||||
) {
|
||||
#if ENABLED(NOZZLE_PARK_FEATURE)
|
||||
float const z = current_position[Z_AXIS];
|
||||
point_t const park = NOZZLE_PARK_POINT;
|
||||
|
||||
switch(z_action) {
|
||||
case 1: // force Z-park height
|
||||
do_blocking_move_to_z(park.z);
|
||||
break;
|
||||
|
||||
case 2: // Raise by Z-park height
|
||||
do_blocking_move_to_z(
|
||||
(z + park.z > Z_MAX_POS) ? Z_MAX_POS : z + park.z);
|
||||
break;
|
||||
|
||||
default: // Raise to Z-park height if lower
|
||||
if (current_position[Z_AXIS] < park.z)
|
||||
do_blocking_move_to_z(park.z);
|
||||
}
|
||||
|
||||
do_blocking_move_to_xy(park.x, park.y);
|
||||
|
||||
#endif // NOZZLE_PARK_FEATURE
|
||||
}
|
137
Marlin/nozzle.h
137
Marlin/nozzle.h
@ -53,40 +53,11 @@ class Nozzle {
|
||||
__attribute__((unused)) point_t const &start,
|
||||
__attribute__((unused)) point_t const &end,
|
||||
__attribute__((unused)) uint8_t const &strokes
|
||||
) __attribute__((optimize ("Os"))) {
|
||||
#if ENABLED(NOZZLE_CLEAN_FEATURE)
|
||||
|
||||
#if ENABLED(NOZZLE_CLEAN_GOBACK)
|
||||
// Store the current coords
|
||||
point_t const initial = {
|
||||
current_position[X_AXIS],
|
||||
current_position[Y_AXIS],
|
||||
current_position[Z_AXIS],
|
||||
current_position[E_AXIS]
|
||||
};
|
||||
#endif // NOZZLE_CLEAN_GOBACK
|
||||
|
||||
// Move to the starting point
|
||||
do_blocking_move_to_xy(start.x, start.y);
|
||||
do_blocking_move_to_z(start.z);
|
||||
|
||||
// Start the stroke pattern
|
||||
for (uint8_t i = 0; i < (strokes >>1); i++) {
|
||||
do_blocking_move_to_xy(end.x, end.y);
|
||||
do_blocking_move_to_xy(start.x, start.y);
|
||||
}
|
||||
|
||||
#if ENABLED(NOZZLE_CLEAN_GOBACK)
|
||||
// Move the nozzle to the initial point
|
||||
do_blocking_move_to(initial.x, initial.y, initial.z);
|
||||
#endif // NOZZLE_CLEAN_GOBACK
|
||||
|
||||
#endif // NOZZLE_CLEAN_FEATURE
|
||||
}
|
||||
) __attribute__((optimize ("Os")));
|
||||
|
||||
/**
|
||||
* @brief Zig-zag clean pattern
|
||||
* @details Apply a zig-zag cleanning pattern
|
||||
* @details Apply a zig-zag cleaning pattern
|
||||
*
|
||||
* @param start point_t defining the starting point
|
||||
* @param end point_t defining the ending point
|
||||
@ -98,49 +69,22 @@ class Nozzle {
|
||||
__attribute__((unused)) point_t const &end,
|
||||
__attribute__((unused)) uint8_t const &strokes,
|
||||
__attribute__((unused)) uint8_t const &objects
|
||||
) __attribute__((optimize ("Os"))) {
|
||||
#if ENABLED(NOZZLE_CLEAN_FEATURE)
|
||||
float A = nozzle_clean_horizontal ? nozzle_clean_height : nozzle_clean_length; // [twice the] Amplitude
|
||||
float P = ( nozzle_clean_horizontal ? nozzle_clean_length : nozzle_clean_height ) / (objects << 1); // Period
|
||||
) __attribute__((optimize ("Os")));
|
||||
|
||||
// Don't allow impossible triangles
|
||||
if (A <= 0.0f || P <= 0.0f ) return;
|
||||
|
||||
#if ENABLED(NOZZLE_CLEAN_GOBACK)
|
||||
// Store the current coords
|
||||
point_t const initial = {
|
||||
current_position[X_AXIS],
|
||||
current_position[Y_AXIS],
|
||||
current_position[Z_AXIS],
|
||||
current_position[E_AXIS]
|
||||
};
|
||||
#endif // NOZZLE_CLEAN_GOBACK
|
||||
|
||||
for (uint8_t j = 0; j < strokes; j++) {
|
||||
for (uint8_t i = 0; i < (objects << 1); i++) {
|
||||
float const x = start.x + ( nozzle_clean_horizontal ? i * P : (A/P) * (P - fabs(fmod((i*P), (2*P)) - P)) );
|
||||
float const y = start.y + (!nozzle_clean_horizontal ? i * P : (A/P) * (P - fabs(fmod((i*P), (2*P)) - P)) );
|
||||
|
||||
do_blocking_move_to_xy(x, y);
|
||||
if (i == 0) do_blocking_move_to_z(start.z);
|
||||
}
|
||||
|
||||
for (int i = (objects << 1); i > -1; i--) {
|
||||
float const x = start.x + ( nozzle_clean_horizontal ? i * P : (A/P) * (P - fabs(fmod((i*P), (2*P)) - P)) );
|
||||
float const y = start.y + (!nozzle_clean_horizontal ? i * P : (A/P) * (P - fabs(fmod((i*P), (2*P)) - P)) );
|
||||
|
||||
do_blocking_move_to_xy(x, y);
|
||||
}
|
||||
}
|
||||
|
||||
#if ENABLED(NOZZLE_CLEAN_GOBACK)
|
||||
// Move the nozzle to the initial point
|
||||
do_blocking_move_to_z(initial.z);
|
||||
do_blocking_move_to_xy(initial.x, initial.y);
|
||||
#endif // NOZZLE_CLEAN_GOBACK
|
||||
|
||||
#endif // NOZZLE_CLEAN_FEATURE
|
||||
}
|
||||
/**
|
||||
* @brief Circular clean pattern
|
||||
* @details Apply a circular cleaning pattern
|
||||
*
|
||||
* @param start point_t defining the middle of circle
|
||||
* @param strokes number of strokes to execute
|
||||
* @param radius radius of circle
|
||||
*/
|
||||
static void circle(
|
||||
__attribute__((unused)) point_t const &start,
|
||||
__attribute__((unused)) point_t const &middle,
|
||||
__attribute__((unused)) uint8_t const &strokes,
|
||||
__attribute__((unused)) float const &radius
|
||||
) __attribute__((optimize ("Os")));
|
||||
|
||||
public:
|
||||
/**
|
||||
@ -153,54 +97,13 @@ class Nozzle {
|
||||
static void clean(
|
||||
__attribute__((unused)) uint8_t const &pattern,
|
||||
__attribute__((unused)) uint8_t const &strokes,
|
||||
__attribute__((unused)) float const &radius,
|
||||
__attribute__((unused)) uint8_t const &objects = 0
|
||||
) __attribute__((optimize ("Os"))) {
|
||||
#if ENABLED(NOZZLE_CLEAN_FEATURE)
|
||||
#if ENABLED(DELTA)
|
||||
if (current_position[Z_AXIS] > delta_clip_start_height)
|
||||
do_blocking_move_to_z(delta_clip_start_height);
|
||||
#endif
|
||||
switch (pattern) {
|
||||
case 1:
|
||||
Nozzle::zigzag(
|
||||
NOZZLE_CLEAN_START_POINT,
|
||||
NOZZLE_CLEAN_END_POINT, strokes, objects);
|
||||
break;
|
||||
|
||||
default:
|
||||
Nozzle::stroke(
|
||||
NOZZLE_CLEAN_START_POINT,
|
||||
NOZZLE_CLEAN_END_POINT, strokes);
|
||||
}
|
||||
#endif // NOZZLE_CLEAN_FEATURE
|
||||
}
|
||||
) __attribute__((optimize ("Os")));
|
||||
|
||||
static void park(
|
||||
__attribute__((unused)) uint8_t const &z_action
|
||||
) __attribute__((optimize ("Os"))) {
|
||||
#if ENABLED(NOZZLE_PARK_FEATURE)
|
||||
float const z = current_position[Z_AXIS];
|
||||
point_t const park = NOZZLE_PARK_POINT;
|
||||
|
||||
switch(z_action) {
|
||||
case 1: // force Z-park height
|
||||
do_blocking_move_to_z(park.z);
|
||||
break;
|
||||
|
||||
case 2: // Raise by Z-park height
|
||||
do_blocking_move_to_z(
|
||||
(z + park.z > Z_MAX_POS) ? Z_MAX_POS : z + park.z);
|
||||
break;
|
||||
|
||||
default: // Raise to Z-park height if lower
|
||||
if (current_position[Z_AXIS] < park.z)
|
||||
do_blocking_move_to_z(park.z);
|
||||
}
|
||||
|
||||
do_blocking_move_to_xy(park.x, park.y);
|
||||
|
||||
#endif // NOZZLE_PARK_FEATURE
|
||||
}
|
||||
) __attribute__((optimize ("Os")));
|
||||
};
|
||||
|
||||
#endif
|
||||
|
Loading…
Reference in New Issue
Block a user