Browse Source

[2.0.x] Enhancements to FILAMENT_RUNOUT_SENSOR (#12069)

- Added FILAMENT_RUNOUT_DISTANCE_MM option
- Added FILAMENT_MOTION_SENSOR option
Marcio Teixeira 6 years ago
parent
commit
056561df93
84 changed files with 1223 additions and 80 deletions
  1. 12
    0
      Marlin/Configuration.h
  2. 12
    0
      Marlin/src/config/default/Configuration.h
  3. 12
    0
      Marlin/src/config/examples/AlephObjects/TAZ4/Configuration.h
  4. 12
    0
      Marlin/src/config/examples/AliExpress/CL-260/Configuration.h
  5. 12
    0
      Marlin/src/config/examples/Anet/A2/Configuration.h
  6. 12
    0
      Marlin/src/config/examples/Anet/A2plus/Configuration.h
  7. 12
    0
      Marlin/src/config/examples/Anet/A6/Configuration.h
  8. 12
    0
      Marlin/src/config/examples/Anet/A8/Configuration.h
  9. 12
    0
      Marlin/src/config/examples/Azteeg/X5GT/Configuration.h
  10. 12
    0
      Marlin/src/config/examples/BIBO/TouchX/cyclops/Configuration.h
  11. 12
    0
      Marlin/src/config/examples/BIBO/TouchX/default/Configuration.h
  12. 12
    0
      Marlin/src/config/examples/BQ/Hephestos/Configuration.h
  13. 12
    0
      Marlin/src/config/examples/BQ/Hephestos_2/Configuration.h
  14. 12
    0
      Marlin/src/config/examples/BQ/WITBOX/Configuration.h
  15. 12
    0
      Marlin/src/config/examples/Cartesio/Configuration.h
  16. 12
    0
      Marlin/src/config/examples/Creality/CR-10/Configuration.h
  17. 12
    0
      Marlin/src/config/examples/Creality/CR-10S/Configuration.h
  18. 12
    0
      Marlin/src/config/examples/Creality/CR-10mini/Configuration.h
  19. 12
    0
      Marlin/src/config/examples/Creality/CR-8/Configuration.h
  20. 12
    0
      Marlin/src/config/examples/Creality/Ender-2/Configuration.h
  21. 12
    0
      Marlin/src/config/examples/Creality/Ender-3/Configuration.h
  22. 12
    0
      Marlin/src/config/examples/Creality/Ender-4/Configuration.h
  23. 12
    0
      Marlin/src/config/examples/Einstart-S/Configuration.h
  24. 12
    0
      Marlin/src/config/examples/Felix/Configuration.h
  25. 12
    0
      Marlin/src/config/examples/Felix/DUAL/Configuration.h
  26. 12
    0
      Marlin/src/config/examples/FolgerTech/i3-2020/Configuration.h
  27. 12
    0
      Marlin/src/config/examples/Formbot/Raptor/Configuration.h
  28. 12
    0
      Marlin/src/config/examples/Formbot/T_Rex_2+/Configuration.h
  29. 12
    0
      Marlin/src/config/examples/Formbot/T_Rex_3/Configuration.h
  30. 12
    0
      Marlin/src/config/examples/Geeetech/GT2560/Configuration.h
  31. 12
    0
      Marlin/src/config/examples/Geeetech/I3_Pro_X-GT2560/Configuration.h
  32. 12
    0
      Marlin/src/config/examples/Geeetech/MeCreator2/Configuration.h
  33. 12
    0
      Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/bltouch/Configuration.h
  34. 12
    0
      Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/noprobe/Configuration.h
  35. 12
    0
      Marlin/src/config/examples/Geeetech/Prusa i3 Pro C/Configuration.h
  36. 12
    0
      Marlin/src/config/examples/Geeetech/Prusa i3 Pro W/Configuration.h
  37. 12
    0
      Marlin/src/config/examples/Infitary/i3-M508/Configuration.h
  38. 12
    0
      Marlin/src/config/examples/JGAurora/A5/Configuration.h
  39. 12
    0
      Marlin/src/config/examples/MakerParts/Configuration.h
  40. 12
    0
      Marlin/src/config/examples/Malyan/M150/Configuration.h
  41. 12
    0
      Marlin/src/config/examples/Malyan/M200/Configuration.h
  42. 12
    0
      Marlin/src/config/examples/Micromake/C1/basic/Configuration.h
  43. 12
    0
      Marlin/src/config/examples/Micromake/C1/enhanced/Configuration.h
  44. 12
    0
      Marlin/src/config/examples/Mks/Sbase/Configuration.h
  45. 12
    0
      Marlin/src/config/examples/RepRapPro/Huxley/Configuration.h
  46. 12
    0
      Marlin/src/config/examples/RepRapWorld/Megatronics/Configuration.h
  47. 12
    0
      Marlin/src/config/examples/RigidBot/Configuration.h
  48. 12
    0
      Marlin/src/config/examples/SCARA/Configuration.h
  49. 12
    0
      Marlin/src/config/examples/STM32F10/Configuration.h
  50. 12
    0
      Marlin/src/config/examples/STM32F4/Configuration.h
  51. 12
    0
      Marlin/src/config/examples/Sanguinololu/Configuration.h
  52. 12
    0
      Marlin/src/config/examples/TheBorg/Configuration.h
  53. 12
    0
      Marlin/src/config/examples/TinyBoy2/Configuration.h
  54. 12
    0
      Marlin/src/config/examples/Tronxy/X1/Configuration.h
  55. 12
    0
      Marlin/src/config/examples/Tronxy/X3A/Configuration.h
  56. 12
    0
      Marlin/src/config/examples/Tronxy/X5S/Configuration.h
  57. 12
    0
      Marlin/src/config/examples/Tronxy/XY100/Configuration.h
  58. 12
    0
      Marlin/src/config/examples/UltiMachine/Archim2/Configuration.h
  59. 12
    0
      Marlin/src/config/examples/Velleman/K8200/Configuration.h
  60. 12
    0
      Marlin/src/config/examples/Velleman/K8400/Configuration.h
  61. 12
    0
      Marlin/src/config/examples/Velleman/K8400/Dual-head/Configuration.h
  62. 12
    0
      Marlin/src/config/examples/Wanhao/Duplicator 6/Configuration.h
  63. 12
    0
      Marlin/src/config/examples/adafruit/ST7565/Configuration.h
  64. 12
    0
      Marlin/src/config/examples/delta/Anycubic/Kossel/Configuration.h
  65. 12
    0
      Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration.h
  66. 12
    0
      Marlin/src/config/examples/delta/FLSUN/kossel/Configuration.h
  67. 12
    0
      Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration.h
  68. 12
    0
      Marlin/src/config/examples/delta/Hatchbox_Alpha/Configuration.h
  69. 12
    0
      Marlin/src/config/examples/delta/generic/Configuration.h
  70. 12
    0
      Marlin/src/config/examples/delta/kossel_mini/Configuration.h
  71. 12
    0
      Marlin/src/config/examples/delta/kossel_pro/Configuration.h
  72. 12
    0
      Marlin/src/config/examples/delta/kossel_xl/Configuration.h
  73. 12
    0
      Marlin/src/config/examples/gCreate/gMax1.5+/Configuration.h
  74. 12
    0
      Marlin/src/config/examples/makibox/Configuration.h
  75. 12
    0
      Marlin/src/config/examples/stm32f103ret6/Configuration.h
  76. 12
    0
      Marlin/src/config/examples/tvrrug/Round2/Configuration.h
  77. 12
    0
      Marlin/src/config/examples/wt150/Configuration.h
  78. 13
    28
      Marlin/src/feature/runout.cpp
  79. 246
    50
      Marlin/src/feature/runout.h
  80. 19
    0
      Marlin/src/lcd/extensible_ui/ui_api.cpp
  81. 10
    0
      Marlin/src/lcd/extensible_ui/ui_api.h
  82. 3
    1
      Marlin/src/module/planner.h
  83. 7
    0
      Marlin/src/module/stepper.cpp
  84. 1
    1
      buildroot/share/tests/megaatmega2560_tests

+ 12
- 0
Marlin/Configuration.h View File

@@ -986,6 +986,18 @@
986 986
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
987 987
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
988 988
   #define FILAMENT_RUNOUT_SCRIPT "M600"
989
+
990
+  // After a runout is detected, continue printing this length of filament
991
+  // before executing the runout script. Useful for a sensor at the end of
992
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
993
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
994
+
995
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
996
+    // Enable this option to use an encoder disc that toggles the runout pin
997
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
998
+    // large enough to avoid false positives.)
999
+    //#define FILAMENT_MOTION_SENSOR
1000
+  #endif
989 1001
 #endif
990 1002
 
991 1003
 //===========================================================================

+ 12
- 0
Marlin/src/config/default/Configuration.h View File

@@ -986,6 +986,18 @@
986 986
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
987 987
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
988 988
   #define FILAMENT_RUNOUT_SCRIPT "M600"
989
+
990
+  // After a runout is detected, continue printing this length of filament
991
+  // before executing the runout script. Useful for a sensor at the end of
992
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
993
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
994
+
995
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
996
+    // Enable this option to use an encoder disc that toggles the runout pin
997
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
998
+    // large enough to avoid false positives.)
999
+    //#define FILAMENT_MOTION_SENSOR
1000
+  #endif
989 1001
 #endif
990 1002
 
991 1003
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/AlephObjects/TAZ4/Configuration.h View File

@@ -1006,6 +1006,18 @@
1006 1006
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
1007 1007
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
1008 1008
   #define FILAMENT_RUNOUT_SCRIPT "M600"
1009
+
1010
+  // After a runout is detected, continue printing this length of filament
1011
+  // before executing the runout script. Useful for a sensor at the end of
1012
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1013
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1014
+
1015
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1016
+    // Enable this option to use an encoder disc that toggles the runout pin
1017
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1018
+    // large enough to avoid false positives.)
1019
+    //#define FILAMENT_MOTION_SENSOR
1020
+  #endif
1009 1021
 #endif
1010 1022
 
1011 1023
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/AliExpress/CL-260/Configuration.h View File

@@ -986,6 +986,18 @@
986 986
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
987 987
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
988 988
   #define FILAMENT_RUNOUT_SCRIPT "M600"
989
+
990
+  // After a runout is detected, continue printing this length of filament
991
+  // before executing the runout script. Useful for a sensor at the end of
992
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
993
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
994
+
995
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
996
+    // Enable this option to use an encoder disc that toggles the runout pin
997
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
998
+    // large enough to avoid false positives.)
999
+    //#define FILAMENT_MOTION_SENSOR
1000
+  #endif
989 1001
 #endif
990 1002
 
991 1003
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Anet/A2/Configuration.h View File

@@ -986,6 +986,18 @@
986 986
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
987 987
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
988 988
   #define FILAMENT_RUNOUT_SCRIPT "M600"
989
+
990
+  // After a runout is detected, continue printing this length of filament
991
+  // before executing the runout script. Useful for a sensor at the end of
992
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
993
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
994
+
995
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
996
+    // Enable this option to use an encoder disc that toggles the runout pin
997
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
998
+    // large enough to avoid false positives.)
999
+    //#define FILAMENT_MOTION_SENSOR
1000
+  #endif
989 1001
 #endif
990 1002
 
991 1003
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Anet/A2plus/Configuration.h View File

@@ -986,6 +986,18 @@
986 986
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
987 987
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
988 988
   #define FILAMENT_RUNOUT_SCRIPT "M600"
989
+
990
+  // After a runout is detected, continue printing this length of filament
991
+  // before executing the runout script. Useful for a sensor at the end of
992
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
993
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
994
+
995
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
996
+    // Enable this option to use an encoder disc that toggles the runout pin
997
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
998
+    // large enough to avoid false positives.)
999
+    //#define FILAMENT_MOTION_SENSOR
1000
+  #endif
989 1001
 #endif
990 1002
 
991 1003
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Anet/A6/Configuration.h View File

@@ -1101,6 +1101,18 @@
1101 1101
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
1102 1102
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
1103 1103
   #define FILAMENT_RUNOUT_SCRIPT "M600"
1104
+
1105
+  // After a runout is detected, continue printing this length of filament
1106
+  // before executing the runout script. Useful for a sensor at the end of
1107
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1108
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1109
+
1110
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1111
+    // Enable this option to use an encoder disc that toggles the runout pin
1112
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1113
+    // large enough to avoid false positives.)
1114
+    //#define FILAMENT_MOTION_SENSOR
1115
+  #endif
1104 1116
 #endif
1105 1117
 
1106 1118
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Anet/A8/Configuration.h View File

@@ -993,6 +993,18 @@
993 993
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
994 994
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
995 995
   #define FILAMENT_RUNOUT_SCRIPT "M600"
996
+
997
+  // After a runout is detected, continue printing this length of filament
998
+  // before executing the runout script. Useful for a sensor at the end of
999
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1000
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1001
+
1002
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1003
+    // Enable this option to use an encoder disc that toggles the runout pin
1004
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1005
+    // large enough to avoid false positives.)
1006
+    //#define FILAMENT_MOTION_SENSOR
1007
+  #endif
996 1008
 #endif
997 1009
 
998 1010
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Azteeg/X5GT/Configuration.h View File

@@ -986,6 +986,18 @@
986 986
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
987 987
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
988 988
   #define FILAMENT_RUNOUT_SCRIPT "M600"
989
+
990
+  // After a runout is detected, continue printing this length of filament
991
+  // before executing the runout script. Useful for a sensor at the end of
992
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
993
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
994
+
995
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
996
+    // Enable this option to use an encoder disc that toggles the runout pin
997
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
998
+    // large enough to avoid false positives.)
999
+    //#define FILAMENT_MOTION_SENSOR
1000
+  #endif
989 1001
 #endif
990 1002
 
991 1003
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/BIBO/TouchX/cyclops/Configuration.h View File

@@ -986,6 +986,18 @@
986 986
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
987 987
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
988 988
   #define FILAMENT_RUNOUT_SCRIPT "M600"
989
+
990
+  // After a runout is detected, continue printing this length of filament
991
+  // before executing the runout script. Useful for a sensor at the end of
992
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
993
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
994
+
995
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
996
+    // Enable this option to use an encoder disc that toggles the runout pin
997
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
998
+    // large enough to avoid false positives.)
999
+    //#define FILAMENT_MOTION_SENSOR
1000
+  #endif
989 1001
 #endif
990 1002
 
991 1003
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/BIBO/TouchX/default/Configuration.h View File

@@ -986,6 +986,18 @@
986 986
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
987 987
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
988 988
   #define FILAMENT_RUNOUT_SCRIPT "M600"
989
+
990
+  // After a runout is detected, continue printing this length of filament
991
+  // before executing the runout script. Useful for a sensor at the end of
992
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
993
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
994
+
995
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
996
+    // Enable this option to use an encoder disc that toggles the runout pin
997
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
998
+    // large enough to avoid false positives.)
999
+    //#define FILAMENT_MOTION_SENSOR
1000
+  #endif
989 1001
 #endif
990 1002
 
991 1003
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/BQ/Hephestos/Configuration.h View File

@@ -974,6 +974,18 @@
974 974
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
975 975
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
976 976
   #define FILAMENT_RUNOUT_SCRIPT "M600"
977
+
978
+  // After a runout is detected, continue printing this length of filament
979
+  // before executing the runout script. Useful for a sensor at the end of
980
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
981
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
982
+
983
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
984
+    // Enable this option to use an encoder disc that toggles the runout pin
985
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
986
+    // large enough to avoid false positives.)
987
+    //#define FILAMENT_MOTION_SENSOR
988
+  #endif
977 989
 #endif
978 990
 
979 991
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/BQ/Hephestos_2/Configuration.h View File

@@ -986,6 +986,18 @@
986 986
   #define FIL_RUNOUT_INVERTING false // set to true to invert the logic of the sensor.
987 987
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
988 988
   #define FILAMENT_RUNOUT_SCRIPT "M600"
989
+
990
+  // After a runout is detected, continue printing this length of filament
991
+  // before executing the runout script. Useful for a sensor at the end of
992
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
993
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
994
+
995
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
996
+    // Enable this option to use an encoder disc that toggles the runout pin
997
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
998
+    // large enough to avoid false positives.)
999
+    //#define FILAMENT_MOTION_SENSOR
1000
+  #endif
989 1001
 #endif
990 1002
 
991 1003
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/BQ/WITBOX/Configuration.h View File

@@ -974,6 +974,18 @@
974 974
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
975 975
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
976 976
   #define FILAMENT_RUNOUT_SCRIPT "M600"
977
+
978
+  // After a runout is detected, continue printing this length of filament
979
+  // before executing the runout script. Useful for a sensor at the end of
980
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
981
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
982
+
983
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
984
+    // Enable this option to use an encoder disc that toggles the runout pin
985
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
986
+    // large enough to avoid false positives.)
987
+    //#define FILAMENT_MOTION_SENSOR
988
+  #endif
977 989
 #endif
978 990
 
979 991
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Cartesio/Configuration.h View File

@@ -985,6 +985,18 @@
985 985
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
986 986
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
987 987
   #define FILAMENT_RUNOUT_SCRIPT "M600"
988
+
989
+  // After a runout is detected, continue printing this length of filament
990
+  // before executing the runout script. Useful for a sensor at the end of
991
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
992
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
993
+
994
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
995
+    // Enable this option to use an encoder disc that toggles the runout pin
996
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
997
+    // large enough to avoid false positives.)
998
+    //#define FILAMENT_MOTION_SENSOR
999
+  #endif
988 1000
 #endif
989 1001
 
990 1002
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Creality/CR-10/Configuration.h View File

@@ -996,6 +996,18 @@
996 996
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
997 997
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
998 998
   #define FILAMENT_RUNOUT_SCRIPT "M600"
999
+
1000
+  // After a runout is detected, continue printing this length of filament
1001
+  // before executing the runout script. Useful for a sensor at the end of
1002
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1003
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1004
+
1005
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1006
+    // Enable this option to use an encoder disc that toggles the runout pin
1007
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1008
+    // large enough to avoid false positives.)
1009
+    //#define FILAMENT_MOTION_SENSOR
1010
+  #endif
999 1011
 #endif
1000 1012
 
1001 1013
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Creality/CR-10S/Configuration.h View File

@@ -991,6 +991,18 @@
991 991
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
992 992
   #define FILAMENT_RUNOUT_SCRIPT "M600"
993 993
   #define FIL_RUNOUT_PIN 2 // Creality CR10-S stock sensor
994
+
995
+  // After a runout is detected, continue printing this length of filament
996
+  // before executing the runout script. Useful for a sensor at the end of
997
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
998
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
999
+
1000
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1001
+    // Enable this option to use an encoder disc that toggles the runout pin
1002
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1003
+    // large enough to avoid false positives.)
1004
+    //#define FILAMENT_MOTION_SENSOR
1005
+  #endif
994 1006
 #endif
995 1007
 
996 1008
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Creality/CR-10mini/Configuration.h View File

@@ -1005,6 +1005,18 @@
1005 1005
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
1006 1006
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
1007 1007
   #define FILAMENT_RUNOUT_SCRIPT "M600"
1008
+
1009
+  // After a runout is detected, continue printing this length of filament
1010
+  // before executing the runout script. Useful for a sensor at the end of
1011
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1012
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1013
+
1014
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1015
+    // Enable this option to use an encoder disc that toggles the runout pin
1016
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1017
+    // large enough to avoid false positives.)
1018
+    //#define FILAMENT_MOTION_SENSOR
1019
+  #endif
1008 1020
 #endif
1009 1021
 
1010 1022
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Creality/CR-8/Configuration.h View File

@@ -996,6 +996,18 @@
996 996
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
997 997
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
998 998
   #define FILAMENT_RUNOUT_SCRIPT "M600"
999
+
1000
+  // After a runout is detected, continue printing this length of filament
1001
+  // before executing the runout script. Useful for a sensor at the end of
1002
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1003
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1004
+
1005
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1006
+    // Enable this option to use an encoder disc that toggles the runout pin
1007
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1008
+    // large enough to avoid false positives.)
1009
+    //#define FILAMENT_MOTION_SENSOR
1010
+  #endif
999 1011
 #endif
1000 1012
 
1001 1013
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Creality/Ender-2/Configuration.h View File

@@ -990,6 +990,18 @@
990 990
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
991 991
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
992 992
   #define FILAMENT_RUNOUT_SCRIPT "M600"
993
+
994
+  // After a runout is detected, continue printing this length of filament
995
+  // before executing the runout script. Useful for a sensor at the end of
996
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
997
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
998
+
999
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1000
+    // Enable this option to use an encoder disc that toggles the runout pin
1001
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1002
+    // large enough to avoid false positives.)
1003
+    //#define FILAMENT_MOTION_SENSOR
1004
+  #endif
993 1005
 #endif
994 1006
 
995 1007
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Creality/Ender-3/Configuration.h View File

@@ -990,6 +990,18 @@
990 990
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
991 991
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
992 992
   #define FILAMENT_RUNOUT_SCRIPT "M600"
993
+
994
+  // After a runout is detected, continue printing this length of filament
995
+  // before executing the runout script. Useful for a sensor at the end of
996
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
997
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
998
+
999
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1000
+    // Enable this option to use an encoder disc that toggles the runout pin
1001
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1002
+    // large enough to avoid false positives.)
1003
+    //#define FILAMENT_MOTION_SENSOR
1004
+  #endif
993 1005
 #endif
994 1006
 
995 1007
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Creality/Ender-4/Configuration.h View File

@@ -996,6 +996,18 @@
996 996
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
997 997
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
998 998
   #define FILAMENT_RUNOUT_SCRIPT "M600"
999
+
1000
+  // After a runout is detected, continue printing this length of filament
1001
+  // before executing the runout script. Useful for a sensor at the end of
1002
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1003
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1004
+
1005
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1006
+    // Enable this option to use an encoder disc that toggles the runout pin
1007
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1008
+    // large enough to avoid false positives.)
1009
+    //#define FILAMENT_MOTION_SENSOR
1010
+  #endif
999 1011
 #endif
1000 1012
 
1001 1013
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Einstart-S/Configuration.h View File

@@ -996,6 +996,18 @@
996 996
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
997 997
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
998 998
   #define FILAMENT_RUNOUT_SCRIPT "M600"
999
+
1000
+  // After a runout is detected, continue printing this length of filament
1001
+  // before executing the runout script. Useful for a sensor at the end of
1002
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1003
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1004
+
1005
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1006
+    // Enable this option to use an encoder disc that toggles the runout pin
1007
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1008
+    // large enough to avoid false positives.)
1009
+    //#define FILAMENT_MOTION_SENSOR
1010
+  #endif
999 1011
 #endif
1000 1012
 
1001 1013
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Felix/Configuration.h View File

@@ -968,6 +968,18 @@
968 968
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
969 969
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
970 970
   #define FILAMENT_RUNOUT_SCRIPT "M600"
971
+
972
+  // After a runout is detected, continue printing this length of filament
973
+  // before executing the runout script. Useful for a sensor at the end of
974
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
975
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
976
+
977
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
978
+    // Enable this option to use an encoder disc that toggles the runout pin
979
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
980
+    // large enough to avoid false positives.)
981
+    //#define FILAMENT_MOTION_SENSOR
982
+  #endif
971 983
 #endif
972 984
 
973 985
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Felix/DUAL/Configuration.h View File

@@ -968,6 +968,18 @@
968 968
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
969 969
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
970 970
   #define FILAMENT_RUNOUT_SCRIPT "M600"
971
+
972
+  // After a runout is detected, continue printing this length of filament
973
+  // before executing the runout script. Useful for a sensor at the end of
974
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
975
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
976
+
977
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
978
+    // Enable this option to use an encoder disc that toggles the runout pin
979
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
980
+    // large enough to avoid false positives.)
981
+    //#define FILAMENT_MOTION_SENSOR
982
+  #endif
971 983
 #endif
972 984
 
973 985
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/FolgerTech/i3-2020/Configuration.h View File

@@ -992,6 +992,18 @@
992 992
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
993 993
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
994 994
   #define FILAMENT_RUNOUT_SCRIPT "M600"
995
+
996
+  // After a runout is detected, continue printing this length of filament
997
+  // before executing the runout script. Useful for a sensor at the end of
998
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
999
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1000
+
1001
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1002
+    // Enable this option to use an encoder disc that toggles the runout pin
1003
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1004
+    // large enough to avoid false positives.)
1005
+    //#define FILAMENT_MOTION_SENSOR
1006
+  #endif
995 1007
 #endif
996 1008
 
997 1009
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Formbot/Raptor/Configuration.h View File

@@ -1085,6 +1085,18 @@
1085 1085
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
1086 1086
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
1087 1087
   #define FILAMENT_RUNOUT_SCRIPT "M600"
1088
+
1089
+  // After a runout is detected, continue printing this length of filament
1090
+  // before executing the runout script. Useful for a sensor at the end of
1091
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1092
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1093
+
1094
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1095
+    // Enable this option to use an encoder disc that toggles the runout pin
1096
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1097
+    // large enough to avoid false positives.)
1098
+    //#define FILAMENT_MOTION_SENSOR
1099
+  #endif
1088 1100
 #endif
1089 1101
 
1090 1102
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Formbot/T_Rex_2+/Configuration.h View File

@@ -1028,6 +1028,18 @@
1028 1028
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
1029 1029
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
1030 1030
   #define FILAMENT_RUNOUT_SCRIPT "M600"
1031
+
1032
+  // After a runout is detected, continue printing this length of filament
1033
+  // before executing the runout script. Useful for a sensor at the end of
1034
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1035
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1036
+
1037
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1038
+    // Enable this option to use an encoder disc that toggles the runout pin
1039
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1040
+    // large enough to avoid false positives.)
1041
+    //#define FILAMENT_MOTION_SENSOR
1042
+  #endif
1031 1043
 #endif
1032 1044
 
1033 1045
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Formbot/T_Rex_3/Configuration.h View File

@@ -1016,6 +1016,18 @@
1016 1016
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
1017 1017
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
1018 1018
   #define FILAMENT_RUNOUT_SCRIPT "M600"
1019
+
1020
+  // After a runout is detected, continue printing this length of filament
1021
+  // before executing the runout script. Useful for a sensor at the end of
1022
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1023
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1024
+
1025
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1026
+    // Enable this option to use an encoder disc that toggles the runout pin
1027
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1028
+    // large enough to avoid false positives.)
1029
+    //#define FILAMENT_MOTION_SENSOR
1030
+  #endif
1019 1031
 #endif
1020 1032
 
1021 1033
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Geeetech/GT2560/Configuration.h View File

@@ -1001,6 +1001,18 @@
1001 1001
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
1002 1002
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
1003 1003
   #define FILAMENT_RUNOUT_SCRIPT "M600"
1004
+
1005
+  // After a runout is detected, continue printing this length of filament
1006
+  // before executing the runout script. Useful for a sensor at the end of
1007
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1008
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1009
+
1010
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1011
+    // Enable this option to use an encoder disc that toggles the runout pin
1012
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1013
+    // large enough to avoid false positives.)
1014
+    //#define FILAMENT_MOTION_SENSOR
1015
+  #endif
1004 1016
 #endif
1005 1017
 
1006 1018
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Geeetech/I3_Pro_X-GT2560/Configuration.h View File

@@ -986,6 +986,18 @@
986 986
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
987 987
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
988 988
   #define FILAMENT_RUNOUT_SCRIPT "M600"
989
+
990
+  // After a runout is detected, continue printing this length of filament
991
+  // before executing the runout script. Useful for a sensor at the end of
992
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
993
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
994
+
995
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
996
+    // Enable this option to use an encoder disc that toggles the runout pin
997
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
998
+    // large enough to avoid false positives.)
999
+    //#define FILAMENT_MOTION_SENSOR
1000
+  #endif
989 1001
 #endif
990 1002
 
991 1003
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Geeetech/MeCreator2/Configuration.h View File

@@ -993,6 +993,18 @@
993 993
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
994 994
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
995 995
   #define FILAMENT_RUNOUT_SCRIPT "M600"
996
+
997
+  // After a runout is detected, continue printing this length of filament
998
+  // before executing the runout script. Useful for a sensor at the end of
999
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1000
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1001
+
1002
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1003
+    // Enable this option to use an encoder disc that toggles the runout pin
1004
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1005
+    // large enough to avoid false positives.)
1006
+    //#define FILAMENT_MOTION_SENSOR
1007
+  #endif
996 1008
 #endif
997 1009
 
998 1010
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/bltouch/Configuration.h View File

@@ -1002,6 +1002,18 @@
1002 1002
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
1003 1003
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
1004 1004
   #define FILAMENT_RUNOUT_SCRIPT "M600"
1005
+
1006
+  // After a runout is detected, continue printing this length of filament
1007
+  // before executing the runout script. Useful for a sensor at the end of
1008
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1009
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1010
+
1011
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1012
+    // Enable this option to use an encoder disc that toggles the runout pin
1013
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1014
+    // large enough to avoid false positives.)
1015
+    //#define FILAMENT_MOTION_SENSOR
1016
+  #endif
1005 1017
 #endif
1006 1018
 
1007 1019
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Geeetech/Prusa i3 Pro B/noprobe/Configuration.h View File

@@ -1001,6 +1001,18 @@
1001 1001
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
1002 1002
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
1003 1003
   #define FILAMENT_RUNOUT_SCRIPT "M600"
1004
+
1005
+  // After a runout is detected, continue printing this length of filament
1006
+  // before executing the runout script. Useful for a sensor at the end of
1007
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1008
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1009
+
1010
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1011
+    // Enable this option to use an encoder disc that toggles the runout pin
1012
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1013
+    // large enough to avoid false positives.)
1014
+    //#define FILAMENT_MOTION_SENSOR
1015
+  #endif
1004 1016
 #endif
1005 1017
 
1006 1018
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Geeetech/Prusa i3 Pro C/Configuration.h View File

@@ -986,6 +986,18 @@
986 986
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
987 987
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
988 988
   #define FILAMENT_RUNOUT_SCRIPT "M600"
989
+
990
+  // After a runout is detected, continue printing this length of filament
991
+  // before executing the runout script. Useful for a sensor at the end of
992
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
993
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
994
+
995
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
996
+    // Enable this option to use an encoder disc that toggles the runout pin
997
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
998
+    // large enough to avoid false positives.)
999
+    //#define FILAMENT_MOTION_SENSOR
1000
+  #endif
989 1001
 #endif
990 1002
 
991 1003
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Geeetech/Prusa i3 Pro W/Configuration.h View File

@@ -986,6 +986,18 @@
986 986
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
987 987
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
988 988
   #define FILAMENT_RUNOUT_SCRIPT "M600"
989
+
990
+  // After a runout is detected, continue printing this length of filament
991
+  // before executing the runout script. Useful for a sensor at the end of
992
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
993
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
994
+
995
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
996
+    // Enable this option to use an encoder disc that toggles the runout pin
997
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
998
+    // large enough to avoid false positives.)
999
+    //#define FILAMENT_MOTION_SENSOR
1000
+  #endif
989 1001
 #endif
990 1002
 
991 1003
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Infitary/i3-M508/Configuration.h View File

@@ -990,6 +990,18 @@
990 990
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
991 991
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
992 992
   #define FILAMENT_RUNOUT_SCRIPT "M600"
993
+
994
+  // After a runout is detected, continue printing this length of filament
995
+  // before executing the runout script. Useful for a sensor at the end of
996
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
997
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
998
+
999
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1000
+    // Enable this option to use an encoder disc that toggles the runout pin
1001
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1002
+    // large enough to avoid false positives.)
1003
+    //#define FILAMENT_MOTION_SENSOR
1004
+  #endif
993 1005
 #endif
994 1006
 
995 1007
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/JGAurora/A5/Configuration.h View File

@@ -998,6 +998,18 @@
998 998
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
999 999
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
1000 1000
   #define FILAMENT_RUNOUT_SCRIPT "M600"
1001
+
1002
+  // After a runout is detected, continue printing this length of filament
1003
+  // before executing the runout script. Useful for a sensor at the end of
1004
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1005
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1006
+
1007
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1008
+    // Enable this option to use an encoder disc that toggles the runout pin
1009
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1010
+    // large enough to avoid false positives.)
1011
+    //#define FILAMENT_MOTION_SENSOR
1012
+  #endif
1001 1013
 #endif
1002 1014
 
1003 1015
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/MakerParts/Configuration.h View File

@@ -1006,6 +1006,18 @@
1006 1006
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
1007 1007
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
1008 1008
   #define FILAMENT_RUNOUT_SCRIPT "M600"
1009
+
1010
+  // After a runout is detected, continue printing this length of filament
1011
+  // before executing the runout script. Useful for a sensor at the end of
1012
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1013
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1014
+
1015
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1016
+    // Enable this option to use an encoder disc that toggles the runout pin
1017
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1018
+    // large enough to avoid false positives.)
1019
+    //#define FILAMENT_MOTION_SENSOR
1020
+  #endif
1009 1021
 #endif
1010 1022
 
1011 1023
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Malyan/M150/Configuration.h View File

@@ -1010,6 +1010,18 @@
1010 1010
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
1011 1011
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
1012 1012
   #define FILAMENT_RUNOUT_SCRIPT "M600"
1013
+
1014
+  // After a runout is detected, continue printing this length of filament
1015
+  // before executing the runout script. Useful for a sensor at the end of
1016
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1017
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1018
+
1019
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1020
+    // Enable this option to use an encoder disc that toggles the runout pin
1021
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1022
+    // large enough to avoid false positives.)
1023
+    //#define FILAMENT_MOTION_SENSOR
1024
+  #endif
1013 1025
 #endif
1014 1026
 
1015 1027
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Malyan/M200/Configuration.h View File

@@ -985,6 +985,18 @@
985 985
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
986 986
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
987 987
   #define FILAMENT_RUNOUT_SCRIPT "M600"
988
+
989
+  // After a runout is detected, continue printing this length of filament
990
+  // before executing the runout script. Useful for a sensor at the end of
991
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
992
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
993
+
994
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
995
+    // Enable this option to use an encoder disc that toggles the runout pin
996
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
997
+    // large enough to avoid false positives.)
998
+    //#define FILAMENT_MOTION_SENSOR
999
+  #endif
988 1000
 #endif
989 1001
 
990 1002
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Micromake/C1/basic/Configuration.h View File

@@ -990,6 +990,18 @@
990 990
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
991 991
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
992 992
   #define FILAMENT_RUNOUT_SCRIPT "M600"
993
+
994
+  // After a runout is detected, continue printing this length of filament
995
+  // before executing the runout script. Useful for a sensor at the end of
996
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
997
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
998
+
999
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1000
+    // Enable this option to use an encoder disc that toggles the runout pin
1001
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1002
+    // large enough to avoid false positives.)
1003
+    //#define FILAMENT_MOTION_SENSOR
1004
+  #endif
993 1005
 #endif
994 1006
 
995 1007
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Micromake/C1/enhanced/Configuration.h View File

@@ -990,6 +990,18 @@
990 990
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
991 991
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
992 992
   #define FILAMENT_RUNOUT_SCRIPT "M600"
993
+
994
+  // After a runout is detected, continue printing this length of filament
995
+  // before executing the runout script. Useful for a sensor at the end of
996
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
997
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
998
+
999
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1000
+    // Enable this option to use an encoder disc that toggles the runout pin
1001
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1002
+    // large enough to avoid false positives.)
1003
+    //#define FILAMENT_MOTION_SENSOR
1004
+  #endif
993 1005
 #endif
994 1006
 
995 1007
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Mks/Sbase/Configuration.h View File

@@ -986,6 +986,18 @@
986 986
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
987 987
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
988 988
   #define FILAMENT_RUNOUT_SCRIPT "M600"
989
+
990
+  // After a runout is detected, continue printing this length of filament
991
+  // before executing the runout script. Useful for a sensor at the end of
992
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
993
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
994
+
995
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
996
+    // Enable this option to use an encoder disc that toggles the runout pin
997
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
998
+    // large enough to avoid false positives.)
999
+    //#define FILAMENT_MOTION_SENSOR
1000
+  #endif
989 1001
 #endif
990 1002
 
991 1003
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/RepRapPro/Huxley/Configuration.h View File

@@ -1035,6 +1035,18 @@ Black rubber belt(MXL), 18 - tooth aluminium pulley : 87.489 step per mm (Huxley
1035 1035
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
1036 1036
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
1037 1037
   #define FILAMENT_RUNOUT_SCRIPT "M600"
1038
+
1039
+  // After a runout is detected, continue printing this length of filament
1040
+  // before executing the runout script. Useful for a sensor at the end of
1041
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1042
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1043
+
1044
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1045
+    // Enable this option to use an encoder disc that toggles the runout pin
1046
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1047
+    // large enough to avoid false positives.)
1048
+    //#define FILAMENT_MOTION_SENSOR
1049
+  #endif
1038 1050
 #endif
1039 1051
 
1040 1052
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/RepRapWorld/Megatronics/Configuration.h View File

@@ -986,6 +986,18 @@
986 986
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
987 987
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
988 988
   #define FILAMENT_RUNOUT_SCRIPT "M600"
989
+
990
+  // After a runout is detected, continue printing this length of filament
991
+  // before executing the runout script. Useful for a sensor at the end of
992
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
993
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
994
+
995
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
996
+    // Enable this option to use an encoder disc that toggles the runout pin
997
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
998
+    // large enough to avoid false positives.)
999
+    //#define FILAMENT_MOTION_SENSOR
1000
+  #endif
989 1001
 #endif
990 1002
 
991 1003
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/RigidBot/Configuration.h View File

@@ -984,6 +984,18 @@
984 984
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
985 985
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
986 986
   #define FILAMENT_RUNOUT_SCRIPT "M600"
987
+
988
+  // After a runout is detected, continue printing this length of filament
989
+  // before executing the runout script. Useful for a sensor at the end of
990
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
991
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
992
+
993
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
994
+    // Enable this option to use an encoder disc that toggles the runout pin
995
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
996
+    // large enough to avoid false positives.)
997
+    //#define FILAMENT_MOTION_SENSOR
998
+  #endif
987 999
 #endif
988 1000
 
989 1001
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/SCARA/Configuration.h View File

@@ -999,6 +999,18 @@
999 999
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
1000 1000
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
1001 1001
   #define FILAMENT_RUNOUT_SCRIPT "M600"
1002
+
1003
+  // After a runout is detected, continue printing this length of filament
1004
+  // before executing the runout script. Useful for a sensor at the end of
1005
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1006
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1007
+
1008
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1009
+    // Enable this option to use an encoder disc that toggles the runout pin
1010
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1011
+    // large enough to avoid false positives.)
1012
+    //#define FILAMENT_MOTION_SENSOR
1013
+  #endif
1002 1014
 #endif
1003 1015
 
1004 1016
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/STM32F10/Configuration.h View File

@@ -988,6 +988,18 @@
988 988
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
989 989
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
990 990
   #define FILAMENT_RUNOUT_SCRIPT "M600"
991
+
992
+  // After a runout is detected, continue printing this length of filament
993
+  // before executing the runout script. Useful for a sensor at the end of
994
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
995
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
996
+
997
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
998
+    // Enable this option to use an encoder disc that toggles the runout pin
999
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1000
+    // large enough to avoid false positives.)
1001
+    //#define FILAMENT_MOTION_SENSOR
1002
+  #endif
991 1003
 #endif
992 1004
 
993 1005
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/STM32F4/Configuration.h View File

@@ -986,6 +986,18 @@
986 986
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
987 987
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
988 988
   #define FILAMENT_RUNOUT_SCRIPT "M600"
989
+
990
+  // After a runout is detected, continue printing this length of filament
991
+  // before executing the runout script. Useful for a sensor at the end of
992
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
993
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
994
+
995
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
996
+    // Enable this option to use an encoder disc that toggles the runout pin
997
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
998
+    // large enough to avoid false positives.)
999
+    //#define FILAMENT_MOTION_SENSOR
1000
+  #endif
989 1001
 #endif
990 1002
 
991 1003
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Sanguinololu/Configuration.h View File

@@ -1017,6 +1017,18 @@
1017 1017
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
1018 1018
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
1019 1019
   #define FILAMENT_RUNOUT_SCRIPT "M600"
1020
+
1021
+  // After a runout is detected, continue printing this length of filament
1022
+  // before executing the runout script. Useful for a sensor at the end of
1023
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1024
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1025
+
1026
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1027
+    // Enable this option to use an encoder disc that toggles the runout pin
1028
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1029
+    // large enough to avoid false positives.)
1030
+    //#define FILAMENT_MOTION_SENSOR
1031
+  #endif
1020 1032
 #endif
1021 1033
 
1022 1034
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/TheBorg/Configuration.h View File

@@ -986,6 +986,18 @@
986 986
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
987 987
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
988 988
   #define FILAMENT_RUNOUT_SCRIPT "M600"
989
+
990
+  // After a runout is detected, continue printing this length of filament
991
+  // before executing the runout script. Useful for a sensor at the end of
992
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
993
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
994
+
995
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
996
+    // Enable this option to use an encoder disc that toggles the runout pin
997
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
998
+    // large enough to avoid false positives.)
999
+    //#define FILAMENT_MOTION_SENSOR
1000
+  #endif
989 1001
 #endif
990 1002
 
991 1003
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/TinyBoy2/Configuration.h View File

@@ -1042,6 +1042,18 @@
1042 1042
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
1043 1043
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
1044 1044
   #define FILAMENT_RUNOUT_SCRIPT "M600"
1045
+
1046
+  // After a runout is detected, continue printing this length of filament
1047
+  // before executing the runout script. Useful for a sensor at the end of
1048
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1049
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1050
+
1051
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1052
+    // Enable this option to use an encoder disc that toggles the runout pin
1053
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1054
+    // large enough to avoid false positives.)
1055
+    //#define FILAMENT_MOTION_SENSOR
1056
+  #endif
1045 1057
 #endif
1046 1058
 
1047 1059
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Tronxy/X1/Configuration.h View File

@@ -986,6 +986,18 @@
986 986
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
987 987
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
988 988
   #define FILAMENT_RUNOUT_SCRIPT "M600"
989
+
990
+  // After a runout is detected, continue printing this length of filament
991
+  // before executing the runout script. Useful for a sensor at the end of
992
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
993
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
994
+
995
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
996
+    // Enable this option to use an encoder disc that toggles the runout pin
997
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
998
+    // large enough to avoid false positives.)
999
+    //#define FILAMENT_MOTION_SENSOR
1000
+  #endif
989 1001
 #endif
990 1002
 
991 1003
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Tronxy/X3A/Configuration.h View File

@@ -990,6 +990,18 @@
990 990
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
991 991
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
992 992
   #define FILAMENT_RUNOUT_SCRIPT "M600"
993
+
994
+  // After a runout is detected, continue printing this length of filament
995
+  // before executing the runout script. Useful for a sensor at the end of
996
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
997
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
998
+
999
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1000
+    // Enable this option to use an encoder disc that toggles the runout pin
1001
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1002
+    // large enough to avoid false positives.)
1003
+    //#define FILAMENT_MOTION_SENSOR
1004
+  #endif
993 1005
 #endif
994 1006
 
995 1007
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Tronxy/X5S/Configuration.h View File

@@ -986,6 +986,18 @@
986 986
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
987 987
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
988 988
   #define FILAMENT_RUNOUT_SCRIPT "M600"
989
+
990
+  // After a runout is detected, continue printing this length of filament
991
+  // before executing the runout script. Useful for a sensor at the end of
992
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
993
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
994
+
995
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
996
+    // Enable this option to use an encoder disc that toggles the runout pin
997
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
998
+    // large enough to avoid false positives.)
999
+    //#define FILAMENT_MOTION_SENSOR
1000
+  #endif
989 1001
 #endif
990 1002
 
991 1003
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Tronxy/XY100/Configuration.h View File

@@ -997,6 +997,18 @@
997 997
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
998 998
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
999 999
   #define FILAMENT_RUNOUT_SCRIPT "M600"
1000
+
1001
+  // After a runout is detected, continue printing this length of filament
1002
+  // before executing the runout script. Useful for a sensor at the end of
1003
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1004
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1005
+
1006
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1007
+    // Enable this option to use an encoder disc that toggles the runout pin
1008
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1009
+    // large enough to avoid false positives.)
1010
+    //#define FILAMENT_MOTION_SENSOR
1011
+  #endif
1000 1012
 #endif
1001 1013
 
1002 1014
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/UltiMachine/Archim2/Configuration.h View File

@@ -986,6 +986,18 @@
986 986
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
987 987
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
988 988
   #define FILAMENT_RUNOUT_SCRIPT "M600"
989
+
990
+  // After a runout is detected, continue printing this length of filament
991
+  // before executing the runout script. Useful for a sensor at the end of
992
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
993
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
994
+
995
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
996
+    // Enable this option to use an encoder disc that toggles the runout pin
997
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
998
+    // large enough to avoid false positives.)
999
+    //#define FILAMENT_MOTION_SENSOR
1000
+  #endif
989 1001
 #endif
990 1002
 
991 1003
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Velleman/K8200/Configuration.h View File

@@ -1016,6 +1016,18 @@
1016 1016
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
1017 1017
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
1018 1018
   #define FILAMENT_RUNOUT_SCRIPT "M600"
1019
+
1020
+  // After a runout is detected, continue printing this length of filament
1021
+  // before executing the runout script. Useful for a sensor at the end of
1022
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1023
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1024
+
1025
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1026
+    // Enable this option to use an encoder disc that toggles the runout pin
1027
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1028
+    // large enough to avoid false positives.)
1029
+    //#define FILAMENT_MOTION_SENSOR
1030
+  #endif
1019 1031
 #endif
1020 1032
 
1021 1033
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Velleman/K8400/Configuration.h View File

@@ -986,6 +986,18 @@
986 986
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
987 987
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
988 988
   #define FILAMENT_RUNOUT_SCRIPT "M600"
989
+
990
+  // After a runout is detected, continue printing this length of filament
991
+  // before executing the runout script. Useful for a sensor at the end of
992
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
993
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
994
+
995
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
996
+    // Enable this option to use an encoder disc that toggles the runout pin
997
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
998
+    // large enough to avoid false positives.)
999
+    //#define FILAMENT_MOTION_SENSOR
1000
+  #endif
989 1001
 #endif
990 1002
 
991 1003
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Velleman/K8400/Dual-head/Configuration.h View File

@@ -986,6 +986,18 @@
986 986
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
987 987
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
988 988
   #define FILAMENT_RUNOUT_SCRIPT "M600"
989
+
990
+  // After a runout is detected, continue printing this length of filament
991
+  // before executing the runout script. Useful for a sensor at the end of
992
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
993
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
994
+
995
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
996
+    // Enable this option to use an encoder disc that toggles the runout pin
997
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
998
+    // large enough to avoid false positives.)
999
+    //#define FILAMENT_MOTION_SENSOR
1000
+  #endif
989 1001
 #endif
990 1002
 
991 1003
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/Wanhao/Duplicator 6/Configuration.h View File

@@ -996,6 +996,18 @@
996 996
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
997 997
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
998 998
   #define FILAMENT_RUNOUT_SCRIPT "M600"
999
+
1000
+  // After a runout is detected, continue printing this length of filament
1001
+  // before executing the runout script. Useful for a sensor at the end of
1002
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1003
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1004
+
1005
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1006
+    // Enable this option to use an encoder disc that toggles the runout pin
1007
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1008
+    // large enough to avoid false positives.)
1009
+    //#define FILAMENT_MOTION_SENSOR
1010
+  #endif
999 1011
 #endif
1000 1012
 
1001 1013
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/adafruit/ST7565/Configuration.h View File

@@ -986,6 +986,18 @@
986 986
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
987 987
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
988 988
   #define FILAMENT_RUNOUT_SCRIPT "M600"
989
+
990
+  // After a runout is detected, continue printing this length of filament
991
+  // before executing the runout script. Useful for a sensor at the end of
992
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
993
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
994
+
995
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
996
+    // Enable this option to use an encoder disc that toggles the runout pin
997
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
998
+    // large enough to avoid false positives.)
999
+    //#define FILAMENT_MOTION_SENSOR
1000
+  #endif
989 1001
 #endif
990 1002
 
991 1003
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/delta/Anycubic/Kossel/Configuration.h View File

@@ -1177,6 +1177,18 @@
1177 1177
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
1178 1178
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
1179 1179
   #define FILAMENT_RUNOUT_SCRIPT "M600"
1180
+
1181
+  // After a runout is detected, continue printing this length of filament
1182
+  // before executing the runout script. Useful for a sensor at the end of
1183
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1184
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1185
+
1186
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1187
+    // Enable this option to use an encoder disc that toggles the runout pin
1188
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1189
+    // large enough to avoid false positives.)
1190
+    //#define FILAMENT_MOTION_SENSOR
1191
+  #endif
1180 1192
 #endif
1181 1193
 
1182 1194
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/delta/FLSUN/auto_calibrate/Configuration.h View File

@@ -1114,6 +1114,18 @@
1114 1114
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
1115 1115
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
1116 1116
   #define FILAMENT_RUNOUT_SCRIPT "M600"
1117
+
1118
+  // After a runout is detected, continue printing this length of filament
1119
+  // before executing the runout script. Useful for a sensor at the end of
1120
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1121
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1122
+
1123
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1124
+    // Enable this option to use an encoder disc that toggles the runout pin
1125
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1126
+    // large enough to avoid false positives.)
1127
+    //#define FILAMENT_MOTION_SENSOR
1128
+  #endif
1117 1129
 #endif
1118 1130
 
1119 1131
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/delta/FLSUN/kossel/Configuration.h View File

@@ -1113,6 +1113,18 @@
1113 1113
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
1114 1114
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
1115 1115
   #define FILAMENT_RUNOUT_SCRIPT "M600"
1116
+
1117
+  // After a runout is detected, continue printing this length of filament
1118
+  // before executing the runout script. Useful for a sensor at the end of
1119
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1120
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1121
+
1122
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1123
+    // Enable this option to use an encoder disc that toggles the runout pin
1124
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1125
+    // large enough to avoid false positives.)
1126
+    //#define FILAMENT_MOTION_SENSOR
1127
+  #endif
1116 1128
 #endif
1117 1129
 
1118 1130
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/delta/FLSUN/kossel_mini/Configuration.h View File

@@ -1113,6 +1113,18 @@
1113 1113
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
1114 1114
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
1115 1115
   #define FILAMENT_RUNOUT_SCRIPT "M600"
1116
+
1117
+  // After a runout is detected, continue printing this length of filament
1118
+  // before executing the runout script. Useful for a sensor at the end of
1119
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1120
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1121
+
1122
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1123
+    // Enable this option to use an encoder disc that toggles the runout pin
1124
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1125
+    // large enough to avoid false positives.)
1126
+    //#define FILAMENT_MOTION_SENSOR
1127
+  #endif
1116 1128
 #endif
1117 1129
 
1118 1130
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/delta/Hatchbox_Alpha/Configuration.h View File

@@ -1116,6 +1116,18 @@
1116 1116
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
1117 1117
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
1118 1118
   #define FILAMENT_RUNOUT_SCRIPT "M600"
1119
+
1120
+  // After a runout is detected, continue printing this length of filament
1121
+  // before executing the runout script. Useful for a sensor at the end of
1122
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1123
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1124
+
1125
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1126
+    // Enable this option to use an encoder disc that toggles the runout pin
1127
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1128
+    // large enough to avoid false positives.)
1129
+    //#define FILAMENT_MOTION_SENSOR
1130
+  #endif
1119 1131
 #endif
1120 1132
 
1121 1133
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/delta/generic/Configuration.h View File

@@ -1101,6 +1101,18 @@
1101 1101
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
1102 1102
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
1103 1103
   #define FILAMENT_RUNOUT_SCRIPT "M600"
1104
+
1105
+  // After a runout is detected, continue printing this length of filament
1106
+  // before executing the runout script. Useful for a sensor at the end of
1107
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1108
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1109
+
1110
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1111
+    // Enable this option to use an encoder disc that toggles the runout pin
1112
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1113
+    // large enough to avoid false positives.)
1114
+    //#define FILAMENT_MOTION_SENSOR
1115
+  #endif
1104 1116
 #endif
1105 1117
 
1106 1118
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/delta/kossel_mini/Configuration.h View File

@@ -1103,6 +1103,18 @@
1103 1103
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
1104 1104
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
1105 1105
   #define FILAMENT_RUNOUT_SCRIPT "M600"
1106
+
1107
+  // After a runout is detected, continue printing this length of filament
1108
+  // before executing the runout script. Useful for a sensor at the end of
1109
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1110
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1111
+
1112
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1113
+    // Enable this option to use an encoder disc that toggles the runout pin
1114
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1115
+    // large enough to avoid false positives.)
1116
+    //#define FILAMENT_MOTION_SENSOR
1117
+  #endif
1106 1118
 #endif
1107 1119
 
1108 1120
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/delta/kossel_pro/Configuration.h View File

@@ -1104,6 +1104,18 @@
1104 1104
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
1105 1105
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
1106 1106
   #define FILAMENT_RUNOUT_SCRIPT "M600"
1107
+
1108
+  // After a runout is detected, continue printing this length of filament
1109
+  // before executing the runout script. Useful for a sensor at the end of
1110
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1111
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1112
+
1113
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1114
+    // Enable this option to use an encoder disc that toggles the runout pin
1115
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1116
+    // large enough to avoid false positives.)
1117
+    //#define FILAMENT_MOTION_SENSOR
1118
+  #endif
1107 1119
 #endif
1108 1120
 
1109 1121
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/delta/kossel_xl/Configuration.h View File

@@ -1104,6 +1104,18 @@
1104 1104
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
1105 1105
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
1106 1106
   #define FILAMENT_RUNOUT_SCRIPT "M600"
1107
+
1108
+  // After a runout is detected, continue printing this length of filament
1109
+  // before executing the runout script. Useful for a sensor at the end of
1110
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1111
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1112
+
1113
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1114
+    // Enable this option to use an encoder disc that toggles the runout pin
1115
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1116
+    // large enough to avoid false positives.)
1117
+    //#define FILAMENT_MOTION_SENSOR
1118
+  #endif
1107 1119
 #endif
1108 1120
 
1109 1121
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/gCreate/gMax1.5+/Configuration.h View File

@@ -1000,6 +1000,18 @@
1000 1000
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
1001 1001
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
1002 1002
   #define FILAMENT_RUNOUT_SCRIPT "M600"
1003
+
1004
+  // After a runout is detected, continue printing this length of filament
1005
+  // before executing the runout script. Useful for a sensor at the end of
1006
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
1007
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
1008
+
1009
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1010
+    // Enable this option to use an encoder disc that toggles the runout pin
1011
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1012
+    // large enough to avoid false positives.)
1013
+    //#define FILAMENT_MOTION_SENSOR
1014
+  #endif
1003 1015
 #endif
1004 1016
 
1005 1017
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/makibox/Configuration.h View File

@@ -989,6 +989,18 @@
989 989
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
990 990
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
991 991
   #define FILAMENT_RUNOUT_SCRIPT "M600"
992
+
993
+  // After a runout is detected, continue printing this length of filament
994
+  // before executing the runout script. Useful for a sensor at the end of
995
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
996
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
997
+
998
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
999
+    // Enable this option to use an encoder disc that toggles the runout pin
1000
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1001
+    // large enough to avoid false positives.)
1002
+    //#define FILAMENT_MOTION_SENSOR
1003
+  #endif
992 1004
 #endif
993 1005
 
994 1006
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/stm32f103ret6/Configuration.h View File

@@ -988,6 +988,18 @@
988 988
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
989 989
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
990 990
   #define FILAMENT_RUNOUT_SCRIPT "M600"
991
+
992
+  // After a runout is detected, continue printing this length of filament
993
+  // before executing the runout script. Useful for a sensor at the end of
994
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
995
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
996
+
997
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
998
+    // Enable this option to use an encoder disc that toggles the runout pin
999
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1000
+    // large enough to avoid false positives.)
1001
+    //#define FILAMENT_MOTION_SENSOR
1002
+  #endif
991 1003
 #endif
992 1004
 
993 1005
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/tvrrug/Round2/Configuration.h View File

@@ -981,6 +981,18 @@
981 981
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
982 982
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
983 983
   #define FILAMENT_RUNOUT_SCRIPT "M600"
984
+
985
+  // After a runout is detected, continue printing this length of filament
986
+  // before executing the runout script. Useful for a sensor at the end of
987
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
988
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
989
+
990
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
991
+    // Enable this option to use an encoder disc that toggles the runout pin
992
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
993
+    // large enough to avoid false positives.)
994
+    //#define FILAMENT_MOTION_SENSOR
995
+  #endif
984 996
 #endif
985 997
 
986 998
 //===========================================================================

+ 12
- 0
Marlin/src/config/examples/wt150/Configuration.h View File

@@ -991,6 +991,18 @@
991 991
   #define FIL_RUNOUT_PULLUP          // Use internal pullup for filament runout pins.
992 992
   //#define FIL_RUNOUT_PULLDOWN      // Use internal pulldown for filament runout pins.
993 993
   #define FILAMENT_RUNOUT_SCRIPT "M600"
994
+
995
+  // After a runout is detected, continue printing this length of filament
996
+  // before executing the runout script. Useful for a sensor at the end of
997
+  // a feed tube. Requires 4 bytes SRAM per sensor, plus 4 bytes overhead.
998
+  //#define FILAMENT_RUNOUT_DISTANCE_MM 25
999
+
1000
+  #ifdef FILAMENT_RUNOUT_DISTANCE_MM
1001
+    // Enable this option to use an encoder disc that toggles the runout pin
1002
+    // as the filament moves. (Be sure to set FILAMENT_RUNOUT_DISTANCE_MM
1003
+    // large enough to avoid false positives.)
1004
+    //#define FILAMENT_MOTION_SENSOR
1005
+  #endif
994 1006
 #endif
995 1007
 
996 1008
 //===========================================================================

+ 13
- 28
Marlin/src/feature/runout.cpp View File

@@ -32,36 +32,21 @@
32 32
 
33 33
 FilamentRunoutSensor runout;
34 34
 
35
-bool FilamentRunoutSensor::enabled = true,
36
-     FilamentRunoutSensor::filament_ran_out; // = false
37
-uint8_t FilamentRunoutSensor::runout_count; // = 0
35
+bool FilamentSensorBase::enabled = true,
36
+     FilamentSensorBase::filament_ran_out; // = false
38 37
 
39
-void FilamentRunoutSensor::setup() {
38
+void FilamentSensorTypeBase::filament_present(const uint8_t extruder) {
39
+  runout.filament_present(extruder);
40
+}
40 41
 
41
-  #if ENABLED(FIL_RUNOUT_PULLUP)
42
-    #define INIT_RUNOUT_PIN(P) SET_INPUT_PULLUP(P)
43
-  #elif ENABLED(FIL_RUNOUT_PULLDOWN)
44
-    #define INIT_RUNOUT_PIN(P) SET_INPUT_PULLDOWN(P)
45
-  #else
46
-    #define INIT_RUNOUT_PIN(P) SET_INPUT(P)
47
-  #endif
42
+uint8_t FilamentSensorTypeEncoder::motion_detected,
43
+        FilamentSensorTypeEncoder::old_state; // = 0
48 44
 
49
-  INIT_RUNOUT_PIN(FIL_RUNOUT_PIN);
50
-  #if NUM_RUNOUT_SENSORS > 1
51
-    INIT_RUNOUT_PIN(FIL_RUNOUT2_PIN);
52
-    #if NUM_RUNOUT_SENSORS > 2
53
-      INIT_RUNOUT_PIN(FIL_RUNOUT3_PIN);
54
-      #if NUM_RUNOUT_SENSORS > 3
55
-        INIT_RUNOUT_PIN(FIL_RUNOUT4_PIN);
56
-        #if NUM_RUNOUT_SENSORS > 4
57
-          INIT_RUNOUT_PIN(FIL_RUNOUT5_PIN);
58
-          #if NUM_RUNOUT_SENSORS > 5
59
-            INIT_RUNOUT_PIN(FIL_RUNOUT6_PIN);
60
-          #endif
61
-        #endif
62
-      #endif
63
-    #endif
64
-  #endif
65
-}
45
+#if FILAMENT_RUNOUT_DISTANCE_MM > 0
46
+  float RunoutResponseDelayed::runout_distance_mm = FILAMENT_RUNOUT_DISTANCE_MM;
47
+  int32_t RunoutResponseDelayed::steps_since_detection[EXTRUDERS];
48
+#else
49
+  uint8_t RunoutResponseDebounced::runout_count; // = 0
50
+#endif
66 51
 
67 52
 #endif // FILAMENT_RUNOUT_SENSOR

+ 246
- 50
Marlin/src/feature/runout.h View File

@@ -19,14 +19,12 @@
19 19
  * along with this program.  If not, see <http://www.gnu.org/licenses/>.
20 20
  *
21 21
  */
22
+#pragma once
22 23
 
23 24
 /**
24 25
  * feature/runout.h - Runout sensor support
25 26
  */
26 27
 
27
-#ifndef _RUNOUT_H_
28
-#define _RUNOUT_H_
29
-
30 28
 #include "../sd/cardreader.h"
31 29
 #include "../module/printcounter.h"
32 30
 #include "../module/stepper.h"
@@ -38,70 +36,268 @@
38 36
   #include "../lcd/extensible_ui/ui_api.h"
39 37
 #endif
40 38
 
41
-#define FIL_RUNOUT_THRESHOLD 5
39
+//#define FILAMENT_RUNOUT_SENSOR_DEBUG
42 40
 
43
-class FilamentRunoutSensor {
41
+class FilamentSensorBase {
44 42
   public:
45 43
     static bool enabled;
46 44
 
47
-    FilamentRunoutSensor() {}
45
+  protected:
46
+    static bool filament_ran_out;
47
+};
48 48
 
49
-    static void setup();
49
+template<class RESPONSE_T, class SENSOR_T>
50
+class TFilamentSensor : public FilamentSensorBase {
51
+  private:
52
+    typedef RESPONSE_T response_t;
53
+    typedef SENSOR_T   sensor_t;
54
+    static response_t response;
55
+    static sensor_t   sensor;
50 56
 
51
-    FORCE_INLINE static void reset() { runout_count = 0; filament_ran_out = false; }
57
+  public:
58
+    static void setup() {
59
+      sensor.setup();
60
+    }
52 61
 
53
-    FORCE_INLINE static void run() {
54
-      if ((IS_SD_PRINTING || print_job_timer.isRunning()) && check() && !filament_ran_out) {
55
-        filament_ran_out = true;
56
-        #if ENABLED(EXTENSIBLE_UI)
57
-          UI::onFilamentRunout();
58
-        #endif
59
-        enqueue_and_echo_commands_P(PSTR(FILAMENT_RUNOUT_SCRIPT));
60
-        planner.synchronize();
62
+    inline static void reset() {
63
+      filament_ran_out = false;
64
+      response.reset();
65
+    }
66
+
67
+    // The sensor calls this method when filament is present
68
+    inline static void filament_present(const uint8_t extruder) {
69
+      response.filament_present(extruder);
70
+    }
71
+
72
+    inline static void block_complete(const block_t *b) {
73
+      response.block_complete(b);
74
+      sensor.block_complete(b);
75
+    }
76
+
77
+    static void run() {
78
+      if (enabled && !filament_ran_out && (IS_SD_PRINTING || print_job_timer.isRunning())) {
79
+        response.run();
80
+        sensor.run();
81
+        if (response.has_runout()) {
82
+          filament_ran_out = true;
83
+          #if ENABLED(EXTENSIBLE_UI)
84
+            UI::onFilamentRunout();
85
+          #endif
86
+          enqueue_and_echo_commands_P(PSTR(FILAMENT_RUNOUT_SCRIPT));
87
+          planner.synchronize();
88
+        }
61 89
       }
62 90
     }
63
-  private:
64
-    static bool filament_ran_out;
65
-    static uint8_t runout_count;
91
+};
92
+
93
+/*************************** FILAMENT PRESENCE SENSORS ***************************/
66 94
 
67
-    FORCE_INLINE static bool check() {
68
-      if (!enabled) return false;
69
-      #if NUM_RUNOUT_SENSORS < 2
70
-        // A single sensor applying to all extruders
71
-        const bool is_out = READ(FIL_RUNOUT_PIN) == FIL_RUNOUT_INVERTING;
95
+class FilamentSensorTypeBase {
96
+  protected:
97
+    static void filament_present(const uint8_t extruder);
98
+
99
+  public:
100
+    static void setup() {
101
+      #if ENABLED(FIL_RUNOUT_PULLUP)
102
+        #define INIT_RUNOUT_PIN(P) SET_INPUT_PULLUP(P)
103
+      #elif ENABLED(FIL_RUNOUT_PULLDOWN)
104
+        #define INIT_RUNOUT_PIN(P) SET_INPUT_PULLDOWN(P)
105
+      #else
106
+        #define INIT_RUNOUT_PIN(P) SET_INPUT(P)
107
+      #endif
108
+
109
+      INIT_RUNOUT_PIN(FIL_RUNOUT_PIN);
110
+      #if NUM_RUNOUT_SENSORS > 1
111
+        INIT_RUNOUT_PIN(FIL_RUNOUT2_PIN);
112
+        #if NUM_RUNOUT_SENSORS > 2
113
+          INIT_RUNOUT_PIN(FIL_RUNOUT3_PIN);
114
+          #if NUM_RUNOUT_SENSORS > 3
115
+            INIT_RUNOUT_PIN(FIL_RUNOUT4_PIN);
116
+            #if NUM_RUNOUT_SENSORS > 4
117
+              INIT_RUNOUT_PIN(FIL_RUNOUT5_PIN);
118
+              #if NUM_RUNOUT_SENSORS > 5
119
+                INIT_RUNOUT_PIN(FIL_RUNOUT6_PIN);
120
+              #endif
121
+            #endif
122
+          #endif
123
+        #endif
124
+      #endif
125
+    }
126
+
127
+    #if FIL_RUNOUT_INVERTING
128
+      #define FIL_RUNOUT_INVERT_MASK (_BV(NUM_RUNOUT_SENSORS) - 1)
129
+    #else
130
+      #define FIL_RUNOUT_INVERT_MASK 0
131
+    #endif
132
+
133
+    // Return a bitmask of all runout sensor states
134
+    static uint8_t poll_runout_pins() {
135
+      return (
136
+        (READ(FIL_RUNOUT_PIN ) ? _BV(0) : 0)
137
+        #if NUM_RUNOUT_SENSORS > 1
138
+          | (READ(FIL_RUNOUT2_PIN) ? _BV(1) : 0)
139
+          #if NUM_RUNOUT_SENSORS > 2
140
+            | (READ(FIL_RUNOUT3_PIN) ? _BV(2) : 0)
141
+            #if NUM_RUNOUT_SENSORS > 3
142
+              | (READ(FIL_RUNOUT4_PIN) ? _BV(3) : 0)
143
+              #if NUM_RUNOUT_SENSORS > 4
144
+                | (READ(FIL_RUNOUT5_PIN) ? _BV(4) : 0)
145
+                #if NUM_RUNOUT_SENSORS > 5
146
+                  | (READ(FIL_RUNOUT6_PIN) ? _BV(5) : 0)
147
+                #endif
148
+              #endif
149
+            #endif
150
+          #endif
151
+        #endif
152
+      ) ^ FIL_RUNOUT_INVERT_MASK;
153
+    }
154
+};
155
+
156
+/**
157
+ * This sensor is a simple endstop
158
+ * switch in the path of the filament. It detects
159
+ * filament runout, but not stripouts or jams.
160
+ */
161
+
162
+class FilamentSensorTypeSwitch : public FilamentSensorTypeBase {
163
+  private:
164
+    static bool poll_runout_pin(const uint8_t extruder) {
165
+      const uint8_t runout_bits = poll_runout_pins();
166
+      #if NUM_RUNOUT_SENSORS == 1
167
+        return runout_bits;                     // A single sensor applying to all extruders
72 168
       #else
73
-        // Read the sensor for the active extruder
74
-        bool is_out;
75 169
         #if ENABLED(DUAL_X_CARRIAGE)
76
-          const bool out1 = READ(FIL_RUNOUT_PIN ) == FIL_RUNOUT_INVERTING,
77
-                     out2 = READ(FIL_RUNOUT2_PIN) == FIL_RUNOUT_INVERTING;
78 170
           if (extruder_duplication_enabled)
79
-            is_out = out1 || out2;
171
+            return runout_bits;                 // Any extruder
80 172
           else
81
-            is_out = active_extruder ? out2 : out1;
82
-        #else
83
-          switch (active_extruder) {
84
-            case 0: is_out = READ(FIL_RUNOUT_PIN) == FIL_RUNOUT_INVERTING; break;
85
-            case 1: is_out = READ(FIL_RUNOUT2_PIN) == FIL_RUNOUT_INVERTING; break;
86
-            #if NUM_RUNOUT_SENSORS > 2
87
-              case 2: is_out = READ(FIL_RUNOUT3_PIN) == FIL_RUNOUT_INVERTING; break;
88
-              #if NUM_RUNOUT_SENSORS > 3
89
-                case 3: is_out = READ(FIL_RUNOUT4_PIN) == FIL_RUNOUT_INVERTING; break;
90
-                #if NUM_RUNOUT_SENSORS > 4
91
-                  case 4: is_out = READ(FIL_RUNOUT5_PIN) == FIL_RUNOUT_INVERTING; break;
92
-                  #if NUM_RUNOUT_SENSORS > 5
93
-                    case 5: is_out = READ(FIL_RUNOUT6_PIN) == FIL_RUNOUT_INVERTING; break;
94
-                  #endif // > 5
95
-                #endif // > 4
96
-              #endif // > 3
97
-            #endif // > 2
98
-        }
99 173
         #endif
174
+            return TEST(runout_bits, extruder); // Specific extruder
100 175
       #endif
101
-      return (is_out ? ++runout_count : (runout_count = 0)) > FIL_RUNOUT_THRESHOLD;
176
+    }
177
+
178
+  public:
179
+    FORCE_INLINE static void block_complete(const block_t *b) {}
180
+
181
+    FORCE_INLINE static void run() {
182
+      if (!poll_runout_pin(active_extruder))
183
+        filament_present(active_extruder);
102 184
     }
103 185
 };
104 186
 
105
-extern FilamentRunoutSensor runout;
187
+// This filament sensor uses a magnetic encoder disc and a hall
188
+// effect sensor (or a slitted disc and an optical sensor). The state
189
+// will toggle between 0 and 1 with filament movement. It can detect
190
+// filament runout and stripouts or jams.
191
+
192
+class FilamentSensorTypeEncoder : public FilamentSensorTypeBase {
193
+  private:
194
+    static uint8_t motion_detected, old_state;
195
+
196
+    static void poll_motion_sensor() {
197
+      const uint8_t new_state = poll_runout_pins(),
198
+                    change    = old_state ^ new_state;
199
+      old_state = new_state;
200
+
201
+      #ifdef FILAMENT_RUNOUT_SENSOR_DEBUG
202
+        if (change) SERIAL_PROTOCOLLNPAIR("motion detected: ", change);
203
+      #endif
204
+
205
+      motion_detected |= change;
206
+    }
207
+
208
+  public:
209
+    static void block_complete(const block_t *b) {
210
+      // If the just-executed block caused the sensor wheel
211
+      // to turn, reset the runout counter for that extruder.
212
+      if (TEST(motion_detected, b->extruder))
213
+        filament_present(b->extruder);
214
+
215
+      // Clear motion triggers for next block
216
+      motion_detected = 0;
217
+    }
218
+
219
+    FORCE_INLINE static void run() { poll_motion_sensor(); }
220
+};
221
+
222
+/********************************* RESPONSE TYPE *********************************/
223
+
224
+#if FILAMENT_RUNOUT_DISTANCE_MM > 0
225
+
226
+  // The RunoutResponseDelayed will trigger an runout event only after
227
+  // RUNOUT_DISTANCE_MM of filament have been fed after a runout condition.
228
+  class RunoutResponseDelayed {
229
+    private:
230
+      static int32_t steps_since_detection[EXTRUDERS];
231
+
232
+      static float get_mm_since_runout(const uint8_t extruder) {
233
+        return (steps_since_detection[extruder] / planner.settings.axis_steps_per_mm[E_AXIS_N(extruder)]);
234
+      }
235
+
236
+    public:
237
+      static float runout_distance_mm;
238
+
239
+      FORCE_INLINE static bool has_runout() {
240
+        return get_mm_since_runout(active_extruder) > runout_distance_mm;
241
+      }
242
+
243
+      static inline void filament_present(const uint8_t extruder) {
244
+        steps_since_detection[extruder] = 0;
245
+      }
246
+
247
+      static inline void run() {
248
+        #ifdef FILAMENT_RUNOUT_SENSOR_DEBUG
249
+          static uint16_t r = 0;
250
+          if ((r++ % 24000) == 0) {
251
+            SERIAL_PROTOCOLPGM("mm since filament detection: ");
252
+            LOOP_L_N(i, NUM_RUNOUT_SENSORS) {
253
+              if (i > 0) SERIAL_PROTOCOLPGM(", ");
254
+              SERIAL_PROTOCOL(get_mm_since_runout(i));
255
+            }
256
+            SERIAL_EOL();
257
+          }
258
+        #endif
259
+      }
260
+
261
+      static void reset() {
262
+        LOOP_L_N(i, NUM_RUNOUT_SENSORS) steps_since_detection[i] = 0;
263
+      }
264
+
265
+      static inline void block_complete(const block_t *b) {
266
+        steps_since_detection[b->extruder] += TEST(b->direction_bits, E_AXIS) ? -b->steps[E_AXIS] : b->steps[E_AXIS];
267
+      }
268
+  };
269
+
270
+#else // !FILAMENT_RUNOUT_DISTANCE_MM
271
+
272
+  // The RunoutResponseDebounced will trigger an runout event after
273
+  // a runout condition is detected FIL_RUNOUT_THRESHOLD times in a row.
106 274
 
107
-#endif // _RUNOUT_H_
275
+  class RunoutResponseDebounced {
276
+    private:
277
+      static constexpr uint8_t FIL_RUNOUT_THRESHOLD = 5;
278
+      static uint8_t runout_count;
279
+    public:
280
+      FORCE_INLINE static bool has_runout()                             { return runout_count > FIL_RUNOUT_THRESHOLD; }
281
+      FORCE_INLINE static void block_complete(const block_t *b)         {}
282
+      FORCE_INLINE static void filament_present(const uint8_t extruder) { runout_count = 0; UNUSED(extruder); }
283
+      FORCE_INLINE static void run()                                    { runout_count++; }
284
+      FORCE_INLINE static void reset()                                  { runout_count = 0; }
285
+  };
286
+
287
+#endif // !FILAMENT_RUNOUT_DISTANCE_MM
288
+
289
+/********************************* TEMPLATE SPECIALIZATION *********************************/
290
+
291
+typedef TFilamentSensor<
292
+  #if FILAMENT_RUNOUT_DISTANCE_MM > 0
293
+    #if ENABLED(FILAMENT_MOTION_SENSOR)
294
+      RunoutResponseDelayed, FilamentSensorTypeEncoder
295
+    #else
296
+      RunoutResponseDelayed, FilamentSensorTypeSwitch
297
+    #endif
298
+  #else
299
+    RunoutResponseDebounced, FilamentSensorTypeSwitch
300
+  #endif
301
+> FilamentRunoutSensor;
302
+
303
+extern FilamentRunoutSensor runout;

+ 19
- 0
Marlin/src/lcd/extensible_ui/ui_api.cpp View File

@@ -53,6 +53,10 @@
53 53
   #endif
54 54
 #endif
55 55
 
56
+#if ENABLED(FILAMENT_RUNOUT_SENSOR)
57
+  #include "../../feature/runout.h"
58
+#endif
59
+
56 60
 inline float clamp(const float value, const float minimum, const float maximum) {
57 61
   return MAX(MIN(value, maximum), minimum);
58 62
 }
@@ -209,6 +213,21 @@ namespace UI {
209 213
     }
210 214
   }
211 215
 
216
+  #if ENABLED(FILAMENT_RUNOUT_SENSOR)
217
+    bool isFilamentRunoutEnabled()              { return runout.enabled; }
218
+    void toggleFilamentRunout(const bool state) { runout.enabled = state; }
219
+
220
+    #if FILAMENT_RUNOUT_DISTANCE_MM > 0
221
+      float getFilamentRunoutDistance_mm() {
222
+        return RunoutResponseDelayed::runout_distance_mm;
223
+      }
224
+
225
+      void setFilamentRunoutDistance_mm(const float distance) {
226
+        RunoutResponseDelayed::runout_distance_mm = clamp(distance, 0, 999);
227
+      }
228
+    #endif
229
+  #endif
230
+
212 231
   #if ENABLED(LIN_ADVANCE)
213 232
     float getLinearAdvance_mm_mm_s(const uint8_t extruder) {
214 233
       return (extruder < EXTRUDERS) ? planner.extruder_advance_K[extruder] : 0;

+ 10
- 0
Marlin/src/lcd/extensible_ui/ui_api.h View File

@@ -109,6 +109,16 @@ namespace UI {
109 109
     #endif
110 110
   #endif
111 111
 
112
+  #if ENABLED(FILAMENT_RUNOUT_SENSOR)
113
+    bool isFilamentRunoutEnabled();
114
+    void toggleFilamentRunout(const bool state);
115
+
116
+    #if FILAMENT_RUNOUT_DISTANCE_MM > 0
117
+      float getFilamentRunoutDistance_mm();
118
+      void setFilamentRunoutDistance_mm(const float distance);
119
+    #endif
120
+  #endif
121
+
112 122
   void delay_ms(unsigned long ms);
113 123
   void yield(); // Within lengthy loop, call this periodically
114 124
 

+ 3
- 1
Marlin/src/module/planner.h View File

@@ -83,7 +83,7 @@ enum BlockFlag : char {
83 83
  * The "nominal" values are as-specified by gcode, and
84 84
  * may never actually be reached due to acceleration limits.
85 85
  */
86
-typedef struct {
86
+typedef struct block_t {
87 87
 
88 88
   volatile uint8_t flag;                    // Block flags (See BlockFlag enum above) - Modified by ISR and main thread!
89 89
 
@@ -109,6 +109,8 @@ typedef struct {
109 109
 
110 110
   #if EXTRUDERS > 1
111 111
     uint8_t extruder;                       // The extruder to move (if E move)
112
+  #else
113
+    static constexpr uint8_t extruder = 0;
112 114
   #endif
113 115
 
114 116
   #if ENABLED(MIXING_EXTRUDER)

+ 7
- 0
Marlin/src/module/stepper.cpp View File

@@ -109,6 +109,10 @@
109 109
 
110 110
 Stepper stepper; // Singleton
111 111
 
112
+#if FILAMENT_RUNOUT_DISTANCE_MM > 0
113
+  #include "../feature/runout.h"
114
+#endif
115
+
112 116
 // public:
113 117
 
114 118
 #if ENABLED(X_DUAL_ENDSTOPS) || ENABLED(Y_DUAL_ENDSTOPS) || Z_MULTI_ENDSTOPS
@@ -1473,6 +1477,9 @@ uint32_t Stepper::stepper_block_phase_isr() {
1473 1477
 
1474 1478
     // If current block is finished, reset pointer
1475 1479
     if (step_events_completed >= step_event_count) {
1480
+      #if FILAMENT_RUNOUT_DISTANCE_MM > 0
1481
+        runout.block_complete(current_block);
1482
+      #endif
1476 1483
       axis_did_move = 0;
1477 1484
       current_block = NULL;
1478 1485
       planner.discard_current_block();

+ 1
- 1
buildroot/share/tests/megaatmega2560_tests View File

@@ -32,7 +32,7 @@ opt_set GRID_MAX_POINTS_X 16
32 32
 opt_enable PIDTEMPBED FIX_MOUNTED_PROBE Z_SAFE_HOMING \
33 33
            REPRAP_DISCOUNT_SMART_CONTROLLER SDSUPPORT EEPROM_SETTINGS PINS_DEBUGGING \
34 34
            BLINKM PCA9632 RGB_LED NEOPIXEL_LED AUTO_POWER_CONTROL \
35
-           NOZZLE_PARK_FEATURE FILAMENT_RUNOUT_SENSOR \
35
+           NOZZLE_PARK_FEATURE FILAMENT_RUNOUT_SENSOR FILAMENT_RUNOUT_DISTANCE_MM \
36 36
            AUTO_BED_LEVELING_LINEAR Z_MIN_PROBE_REPEATABILITY_TEST DEBUG_LEVELING_FEATURE \
37 37
            SKEW_CORRECTION SKEW_CORRECTION_FOR_Z SKEW_CORRECTION_GCODE
38 38
 opt_enable_adv FWRETRACT ARC_P_CIRCLES ADVANCED_PAUSE_FEATURE CNC_WORKSPACE_PLANES CNC_COORDINATE_SYSTEMS \

Loading…
Cancel
Save