From 91777dd76c34ac742ba29c60fdfa774d17ea06ac Mon Sep 17 00:00:00 2001 From: Scott Lahteine Date: Wed, 20 Jul 2016 10:25:06 -0700 Subject: [PATCH] Add DUAL_NOZZLE_DUPLICATION_MODE option --- Marlin/Configuration_adv.h | 5 ++++- Marlin/SanityCheck.h | 17 +++++++++++++++++ .../Cartesio/Configuration_adv.h | 5 ++++- .../Felix/Configuration_adv.h | 5 ++++- .../Hephestos/Configuration_adv.h | 5 ++++- .../Hephestos_2/Configuration_adv.h | 5 ++++- .../K8200/Configuration_adv.h | 5 ++++- .../K8400/Configuration_adv.h | 5 ++++- .../RigidBot/Configuration_adv.h | 5 ++++- .../SCARA/Configuration_adv.h | 5 ++++- .../TAZ4/Configuration_adv.h | 5 ++++- .../WITBOX/Configuration_adv.h | 5 ++++- .../delta/biv2.5/Configuration_adv.h | 5 ++++- .../delta/generic/Configuration_adv.h | 5 ++++- .../delta/kossel_mini/Configuration_adv.h | 5 ++++- .../delta/kossel_pro/Configuration_adv.h | 5 ++++- .../delta/kossel_xl/Configuration_adv.h | 5 ++++- .../makibox/Configuration_adv.h | 5 ++++- .../tvrrug/Round2/Configuration_adv.h | 5 ++++- 19 files changed, 89 insertions(+), 18 deletions(-) diff --git a/Marlin/Configuration_adv.h b/Marlin/Configuration_adv.h index 930e931d32..c8d6577392 100644 --- a/Marlin/Configuration_adv.h +++ b/Marlin/Configuration_adv.h @@ -329,7 +329,10 @@ #define AXIS_RELATIVE_MODES {false, false, false, false} -//By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. +// Allow duplication mode with a basic dual-nozzle extruder +//#define DUAL_NOZZLE_DUPLICATION_MODE + +// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. #define INVERT_X_STEP_PIN false #define INVERT_Y_STEP_PIN false #define INVERT_Z_STEP_PIN false diff --git a/Marlin/SanityCheck.h b/Marlin/SanityCheck.h index b183d0bf74..5eea066a6f 100644 --- a/Marlin/SanityCheck.h +++ b/Marlin/SanityCheck.h @@ -572,6 +572,23 @@ #error "TEMP_SENSOR_1 is required with TEMP_SENSOR_1_AS_REDUNDANT." #endif +/** + * Basic 2-nozzle duplication mode + */ +#if ENABLED(DUAL_NOZZLE_DUPLICATION_MODE) + #if HOTENDS != 2 + #error "DUAL_NOZZLE_DUPLICATION_MODE requires exactly 2 hotends." + #elif ENABLED(DUAL_X_CARRIAGE) + #error "DUAL_NOZZLE_DUPLICATION_MODE is incompatible with DUAL_X_CARRIAGE." + #elif ENABLED(SINGLENOZZLE) + #error "DUAL_NOZZLE_DUPLICATION_MODE is incompatible with SINGLENOZZLE." + #elif ENABLED(MIXING_EXTRUDER) + #error "DUAL_NOZZLE_DUPLICATION_MODE is incompatible with MIXING_EXTRUDER." + #elif ENABLED(SWITCHING_EXTRUDER) + #error "DUAL_NOZZLE_DUPLICATION_MODE is incompatible with SWITCHING_EXTRUDER." + #endif +#endif + /** * Test Extruder Pins */ diff --git a/Marlin/example_configurations/Cartesio/Configuration_adv.h b/Marlin/example_configurations/Cartesio/Configuration_adv.h index 9207b5703a..86a14793ca 100644 --- a/Marlin/example_configurations/Cartesio/Configuration_adv.h +++ b/Marlin/example_configurations/Cartesio/Configuration_adv.h @@ -329,7 +329,10 @@ #define AXIS_RELATIVE_MODES {false, false, false, false} -//By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. +// Allow duplication mode with a basic dual-nozzle extruder +//#define DUAL_NOZZLE_DUPLICATION_MODE + +// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. #define INVERT_X_STEP_PIN false #define INVERT_Y_STEP_PIN false #define INVERT_Z_STEP_PIN false diff --git a/Marlin/example_configurations/Felix/Configuration_adv.h b/Marlin/example_configurations/Felix/Configuration_adv.h index 3f0729b6c9..d4eed80f3a 100644 --- a/Marlin/example_configurations/Felix/Configuration_adv.h +++ b/Marlin/example_configurations/Felix/Configuration_adv.h @@ -329,7 +329,10 @@ #define AXIS_RELATIVE_MODES {false, false, false, false} -//By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. +// Allow duplication mode with a basic dual-nozzle extruder +//#define DUAL_NOZZLE_DUPLICATION_MODE + +// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. #define INVERT_X_STEP_PIN false #define INVERT_Y_STEP_PIN false #define INVERT_Z_STEP_PIN false diff --git a/Marlin/example_configurations/Hephestos/Configuration_adv.h b/Marlin/example_configurations/Hephestos/Configuration_adv.h index af6bce8053..6dc51d6b14 100644 --- a/Marlin/example_configurations/Hephestos/Configuration_adv.h +++ b/Marlin/example_configurations/Hephestos/Configuration_adv.h @@ -329,7 +329,10 @@ #define AXIS_RELATIVE_MODES {false, false, false, false} -//By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. +// Allow duplication mode with a basic dual-nozzle extruder +//#define DUAL_NOZZLE_DUPLICATION_MODE + +// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. #define INVERT_X_STEP_PIN false #define INVERT_Y_STEP_PIN false #define INVERT_Z_STEP_PIN false diff --git a/Marlin/example_configurations/Hephestos_2/Configuration_adv.h b/Marlin/example_configurations/Hephestos_2/Configuration_adv.h index bfb6b16c71..501541bd9a 100644 --- a/Marlin/example_configurations/Hephestos_2/Configuration_adv.h +++ b/Marlin/example_configurations/Hephestos_2/Configuration_adv.h @@ -329,7 +329,10 @@ #define AXIS_RELATIVE_MODES {false, false, false, false} -//By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. +// Allow duplication mode with a basic dual-nozzle extruder +//#define DUAL_NOZZLE_DUPLICATION_MODE + +// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. #define INVERT_X_STEP_PIN false #define INVERT_Y_STEP_PIN false #define INVERT_Z_STEP_PIN false diff --git a/Marlin/example_configurations/K8200/Configuration_adv.h b/Marlin/example_configurations/K8200/Configuration_adv.h index 3703ce1ccc..a822c9bf50 100644 --- a/Marlin/example_configurations/K8200/Configuration_adv.h +++ b/Marlin/example_configurations/K8200/Configuration_adv.h @@ -335,7 +335,10 @@ #define AXIS_RELATIVE_MODES {false, false, false, false} -//By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. +// Allow duplication mode with a basic dual-nozzle extruder +//#define DUAL_NOZZLE_DUPLICATION_MODE + +// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. #define INVERT_X_STEP_PIN false #define INVERT_Y_STEP_PIN false #define INVERT_Z_STEP_PIN false diff --git a/Marlin/example_configurations/K8400/Configuration_adv.h b/Marlin/example_configurations/K8400/Configuration_adv.h index 11fdbdb3c2..8b0fd6d385 100644 --- a/Marlin/example_configurations/K8400/Configuration_adv.h +++ b/Marlin/example_configurations/K8400/Configuration_adv.h @@ -329,7 +329,10 @@ #define AXIS_RELATIVE_MODES {false, false, false, false} -//By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. +// Allow duplication mode with a basic dual-nozzle extruder +//#define DUAL_NOZZLE_DUPLICATION_MODE + +// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. #define INVERT_X_STEP_PIN false #define INVERT_Y_STEP_PIN false #define INVERT_Z_STEP_PIN false diff --git a/Marlin/example_configurations/RigidBot/Configuration_adv.h b/Marlin/example_configurations/RigidBot/Configuration_adv.h index 3c09682603..c2fcf92688 100644 --- a/Marlin/example_configurations/RigidBot/Configuration_adv.h +++ b/Marlin/example_configurations/RigidBot/Configuration_adv.h @@ -329,7 +329,10 @@ #define AXIS_RELATIVE_MODES {false, false, false, false} -//By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. +// Allow duplication mode with a basic dual-nozzle extruder +//#define DUAL_NOZZLE_DUPLICATION_MODE + +// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. #define INVERT_X_STEP_PIN false #define INVERT_Y_STEP_PIN false #define INVERT_Z_STEP_PIN false diff --git a/Marlin/example_configurations/SCARA/Configuration_adv.h b/Marlin/example_configurations/SCARA/Configuration_adv.h index 6a0dea8021..42045d7b8e 100644 --- a/Marlin/example_configurations/SCARA/Configuration_adv.h +++ b/Marlin/example_configurations/SCARA/Configuration_adv.h @@ -329,7 +329,10 @@ #define AXIS_RELATIVE_MODES {false, false, false, false} -//By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. +// Allow duplication mode with a basic dual-nozzle extruder +//#define DUAL_NOZZLE_DUPLICATION_MODE + +// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. #define INVERT_X_STEP_PIN false #define INVERT_Y_STEP_PIN false #define INVERT_Z_STEP_PIN false diff --git a/Marlin/example_configurations/TAZ4/Configuration_adv.h b/Marlin/example_configurations/TAZ4/Configuration_adv.h index fe9b6ba36f..9a7dcf6021 100644 --- a/Marlin/example_configurations/TAZ4/Configuration_adv.h +++ b/Marlin/example_configurations/TAZ4/Configuration_adv.h @@ -337,7 +337,10 @@ #define AXIS_RELATIVE_MODES {false, false, false, false} -//By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. +// Allow duplication mode with a basic dual-nozzle extruder +//#define DUAL_NOZZLE_DUPLICATION_MODE + +// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. #define INVERT_X_STEP_PIN false #define INVERT_Y_STEP_PIN false #define INVERT_Z_STEP_PIN false diff --git a/Marlin/example_configurations/WITBOX/Configuration_adv.h b/Marlin/example_configurations/WITBOX/Configuration_adv.h index af6bce8053..6dc51d6b14 100644 --- a/Marlin/example_configurations/WITBOX/Configuration_adv.h +++ b/Marlin/example_configurations/WITBOX/Configuration_adv.h @@ -329,7 +329,10 @@ #define AXIS_RELATIVE_MODES {false, false, false, false} -//By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. +// Allow duplication mode with a basic dual-nozzle extruder +//#define DUAL_NOZZLE_DUPLICATION_MODE + +// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. #define INVERT_X_STEP_PIN false #define INVERT_Y_STEP_PIN false #define INVERT_Z_STEP_PIN false diff --git a/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h b/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h index 173cacf4d0..9dc856be7c 100644 --- a/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h +++ b/Marlin/example_configurations/delta/biv2.5/Configuration_adv.h @@ -329,7 +329,10 @@ #define AXIS_RELATIVE_MODES {false, false, false, false} -//By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. +// Allow duplication mode with a basic dual-nozzle extruder +//#define DUAL_NOZZLE_DUPLICATION_MODE + +// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. #define INVERT_X_STEP_PIN false #define INVERT_Y_STEP_PIN false #define INVERT_Z_STEP_PIN false diff --git a/Marlin/example_configurations/delta/generic/Configuration_adv.h b/Marlin/example_configurations/delta/generic/Configuration_adv.h index 51a2d2b0b1..66877a67ec 100644 --- a/Marlin/example_configurations/delta/generic/Configuration_adv.h +++ b/Marlin/example_configurations/delta/generic/Configuration_adv.h @@ -329,7 +329,10 @@ #define AXIS_RELATIVE_MODES {false, false, false, false} -//By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. +// Allow duplication mode with a basic dual-nozzle extruder +//#define DUAL_NOZZLE_DUPLICATION_MODE + +// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. #define INVERT_X_STEP_PIN false #define INVERT_Y_STEP_PIN false #define INVERT_Z_STEP_PIN false diff --git a/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h index 90b3c68f0d..24cf11fab0 100644 --- a/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_mini/Configuration_adv.h @@ -329,7 +329,10 @@ #define AXIS_RELATIVE_MODES {false, false, false, false} -//By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. +// Allow duplication mode with a basic dual-nozzle extruder +//#define DUAL_NOZZLE_DUPLICATION_MODE + +// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. #define INVERT_X_STEP_PIN false #define INVERT_Y_STEP_PIN false #define INVERT_Z_STEP_PIN false diff --git a/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h index b8b94f8d4d..6ee22d84a7 100644 --- a/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_pro/Configuration_adv.h @@ -334,7 +334,10 @@ #define AXIS_RELATIVE_MODES {false, false, false, false} -//By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. +// Allow duplication mode with a basic dual-nozzle extruder +//#define DUAL_NOZZLE_DUPLICATION_MODE + +// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. #define INVERT_X_STEP_PIN false #define INVERT_Y_STEP_PIN false #define INVERT_Z_STEP_PIN false diff --git a/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h b/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h index 74bb7c5dc2..bd55770785 100644 --- a/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h +++ b/Marlin/example_configurations/delta/kossel_xl/Configuration_adv.h @@ -329,7 +329,10 @@ #define AXIS_RELATIVE_MODES {false, false, false, false} -//By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. +// Allow duplication mode with a basic dual-nozzle extruder +//#define DUAL_NOZZLE_DUPLICATION_MODE + +// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. #define INVERT_X_STEP_PIN false #define INVERT_Y_STEP_PIN false #define INVERT_Z_STEP_PIN false diff --git a/Marlin/example_configurations/makibox/Configuration_adv.h b/Marlin/example_configurations/makibox/Configuration_adv.h index 6e8c6e6713..9413d9b0cf 100644 --- a/Marlin/example_configurations/makibox/Configuration_adv.h +++ b/Marlin/example_configurations/makibox/Configuration_adv.h @@ -329,7 +329,10 @@ #define AXIS_RELATIVE_MODES {false, false, false, false} -//By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. +// Allow duplication mode with a basic dual-nozzle extruder +//#define DUAL_NOZZLE_DUPLICATION_MODE + +// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. #define INVERT_X_STEP_PIN false #define INVERT_Y_STEP_PIN false #define INVERT_Z_STEP_PIN false diff --git a/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h b/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h index f72daabc80..752c24f698 100644 --- a/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h +++ b/Marlin/example_configurations/tvrrug/Round2/Configuration_adv.h @@ -329,7 +329,10 @@ #define AXIS_RELATIVE_MODES {false, false, false, false} -//By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. +// Allow duplication mode with a basic dual-nozzle extruder +//#define DUAL_NOZZLE_DUPLICATION_MODE + +// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step. #define INVERT_X_STEP_PIN false #define INVERT_Y_STEP_PIN false #define INVERT_Z_STEP_PIN false