Separate SWITCHING_NOZZLE and SWITCHING_EXTRUDER
This commit is contained in:
parent
455a24f6ff
commit
c2321b1cdd
33 changed files with 280 additions and 93 deletions
|
@ -291,36 +291,34 @@
|
|||
* TOOL_E_INDEX - Index to use when getting/setting the tool state
|
||||
*
|
||||
*/
|
||||
#if ENABLED(SINGLENOZZLE) // One hotend, multi-extruder
|
||||
#define HOTENDS 1
|
||||
#define E_STEPPERS EXTRUDERS
|
||||
#define E_MANUAL EXTRUDERS
|
||||
#define TOOL_E_INDEX current_block->active_extruder
|
||||
#if ENABLED(SINGLENOZZLE) || ENABLED(MIXING_EXTRUDER) // One hotend, one thermistor, no XY offset
|
||||
#define HOTENDS 1
|
||||
#undef TEMP_SENSOR_1_AS_REDUNDANT
|
||||
#undef HOTEND_OFFSET_X
|
||||
#undef HOTEND_OFFSET_Y
|
||||
#elif ENABLED(SWITCHING_EXTRUDER) // One E stepper, unified E axis, two hotends
|
||||
#define HOTENDS EXTRUDERS
|
||||
#define E_STEPPERS 1
|
||||
#define E_MANUAL 1
|
||||
#define TOOL_E_INDEX 0
|
||||
#ifndef HOTEND_OFFSET_Z
|
||||
#else // Two hotends
|
||||
#define HOTENDS EXTRUDERS
|
||||
#if ENABLED(SWITCHING_NOZZLE) && !defined(HOTEND_OFFSET_Z)
|
||||
#define HOTEND_OFFSET_Z { 0 }
|
||||
#endif
|
||||
#elif ENABLED(MIXING_EXTRUDER) // Multi-stepper, unified E axis, one hotend
|
||||
#define HOTENDS 1
|
||||
#define E_STEPPERS MIXING_STEPPERS
|
||||
#define E_MANUAL 1
|
||||
#define TOOL_E_INDEX 0
|
||||
#else // One stepper, E axis, and hotend per tool
|
||||
#define HOTENDS EXTRUDERS
|
||||
#define E_STEPPERS EXTRUDERS
|
||||
#define E_MANUAL EXTRUDERS
|
||||
#define TOOL_E_INDEX current_block->active_extruder
|
||||
#endif
|
||||
|
||||
#if ENABLED(SWITCHING_EXTRUDER) || ENABLED(MIXING_EXTRUDER) // Unified E axis
|
||||
#if ENABLED(MIXING_EXTRUDER)
|
||||
#define E_STEPPERS MIXING_STEPPERS
|
||||
#else
|
||||
#define E_STEPPERS 1 // One E stepper
|
||||
#endif
|
||||
#define E_MANUAL 1
|
||||
#define TOOL_E_INDEX 0
|
||||
#else
|
||||
#define E_STEPPERS EXTRUDERS
|
||||
#define E_MANUAL EXTRUDERS
|
||||
#define TOOL_E_INDEX current_block->active_extruder
|
||||
#endif
|
||||
|
||||
/**
|
||||
* Distinct E Factors – Disable by commenting out DISTINCT_E_FACTORS
|
||||
* DISTINCT_E_FACTORS affects how some E factors are accessed
|
||||
*/
|
||||
#if ENABLED(DISTINCT_E_FACTORS) && E_STEPPERS > 1
|
||||
#define XYZE_N (XYZ + E_STEPPERS)
|
||||
|
|
|
@ -326,7 +326,7 @@
|
|||
#ifndef HOTEND_OFFSET_Y
|
||||
#define HOTEND_OFFSET_Y { 0 } // Y offsets for each extruder
|
||||
#endif
|
||||
#if !defined(HOTEND_OFFSET_Z) && (ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_EXTRUDER))
|
||||
#if !defined(HOTEND_OFFSET_Z) && (ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_NOZZLE))
|
||||
#define HOTEND_OFFSET_Z { 0 }
|
||||
#endif
|
||||
#endif
|
||||
|
|
|
@ -137,12 +137,18 @@
|
|||
//#define SINGLENOZZLE
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -7762,7 +7762,7 @@ inline void gcode_M211() {
|
|||
* T<tool>
|
||||
* X<xoffset>
|
||||
* Y<yoffset>
|
||||
* Z<zoffset> - Available with DUAL_X_CARRIAGE and SWITCHING_EXTRUDER
|
||||
* Z<zoffset> - Available with DUAL_X_CARRIAGE and SWITCHING_NOZZLE
|
||||
*/
|
||||
inline void gcode_M218() {
|
||||
if (get_target_extruder_from_command(218) || target_extruder == 0) return;
|
||||
|
@ -7770,7 +7770,7 @@ inline void gcode_M211() {
|
|||
if (code_seen('X')) hotend_offset[X_AXIS][target_extruder] = code_value_linear_units();
|
||||
if (code_seen('Y')) hotend_offset[Y_AXIS][target_extruder] = code_value_linear_units();
|
||||
|
||||
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_EXTRUDER)
|
||||
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_NOZZLE)
|
||||
if (code_seen('Z')) hotend_offset[Z_AXIS][target_extruder] = code_value_linear_units();
|
||||
#endif
|
||||
|
||||
|
@ -7781,7 +7781,7 @@ inline void gcode_M211() {
|
|||
SERIAL_ECHO(hotend_offset[X_AXIS][e]);
|
||||
SERIAL_CHAR(',');
|
||||
SERIAL_ECHO(hotend_offset[Y_AXIS][e]);
|
||||
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_EXTRUDER)
|
||||
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_NOZZLE)
|
||||
SERIAL_CHAR(',');
|
||||
SERIAL_ECHO(hotend_offset[Z_AXIS][e]);
|
||||
#endif
|
||||
|
@ -9364,6 +9364,14 @@ inline void gcode_M999() {
|
|||
}
|
||||
#endif
|
||||
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
inline void move_nozzle_servo(uint8_t e) {
|
||||
const int angles[2] = SWITCHING_NOZZLE_SERVO_ANGLES;
|
||||
MOVE_SERVO(SWITCHING_NOZZLE_SERVO_NR, angles[e]);
|
||||
safe_delay(500);
|
||||
}
|
||||
#endif
|
||||
|
||||
inline void invalid_extruder_error(const uint8_t &e) {
|
||||
SERIAL_ECHO_START;
|
||||
SERIAL_CHAR('T');
|
||||
|
@ -9511,7 +9519,7 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
|
|||
// No extra case for HAS_ABL in DUAL_X_CARRIAGE. Does that mean they don't work together?
|
||||
#else // !DUAL_X_CARRIAGE
|
||||
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
// <0 if the new nozzle is higher, >0 if lower. A bigger raise when lower.
|
||||
const float z_diff = hotend_offset[Z_AXIS][active_extruder] - hotend_offset[Z_AXIS][tmp_extruder],
|
||||
z_raise = 0.3 + (z_diff > 0.0 ? z_diff : 0.0);
|
||||
|
@ -9521,7 +9529,14 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
|
|||
planner.buffer_line_kinematic(current_position, planner.max_feedrate_mm_s[Z_AXIS], active_extruder);
|
||||
stepper.synchronize();
|
||||
|
||||
move_extruder_servo(active_extruder);
|
||||
move_nozzle_servo(active_extruder);
|
||||
#endif
|
||||
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#if !(ENABLED(SWITCHING_NOZZLE) && (SWITCHING_EXTRUDER_SERVO_NR == SWITCHING_NOZZLE_SERVO_NR))
|
||||
stepper.synchronize();
|
||||
move_extruder_servo(active_extruder);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
@ -9644,7 +9659,7 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
|
|||
prepare_move_to_destination();
|
||||
}
|
||||
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
// Move back down, if needed. (Including when the new tool is higher.)
|
||||
if (z_raise != z_diff) {
|
||||
destination[Z_AXIS] += z_diff;
|
||||
|
@ -9672,6 +9687,11 @@ void tool_change(const uint8_t tmp_extruder, const float fr_mm_s/*=0.0*/, bool n
|
|||
UNUSED(fr_mm_s);
|
||||
UNUSED(no_move);
|
||||
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
stepper.synchronize();
|
||||
move_extruder_servo(active_extruder);
|
||||
#endif
|
||||
|
||||
#endif // HOTENDS <= 1
|
||||
|
||||
SERIAL_ECHO_START;
|
||||
|
|
|
@ -329,11 +329,16 @@
|
|||
#endif
|
||||
|
||||
/**
|
||||
* Only one type of extruder allowed
|
||||
* A dual nozzle x-carriage with switching servo
|
||||
*/
|
||||
#if (ENABLED(SWITCHING_EXTRUDER) && (ENABLED(SINGLENOZZLE) || ENABLED(MIXING_EXTRUDER))) \
|
||||
|| (ENABLED(SINGLENOZZLE) && ENABLED(MIXING_EXTRUDER))
|
||||
#error "Please define only one type of extruder: SINGLENOZZLE, SWITCHING_EXTRUDER, or MIXING_EXTRUDER."
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#if ENABLED(SINGLENOZZLE)
|
||||
#error "SWITCHING_NOZZLE and SINGLENOZZLE are incompatible."
|
||||
#elif EXTRUDERS < 2
|
||||
#error "SWITCHING_NOZZLE requires exactly 2 EXTRUDERS."
|
||||
#elif NUM_SERVOS < 1
|
||||
#error "SWITCHING_NOZZLE requires NUM_SERVOS >= 1."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
@ -355,12 +360,14 @@
|
|||
#if ENABLED(MIXING_EXTRUDER)
|
||||
#if EXTRUDERS > 1
|
||||
#error "MIXING_EXTRUDER currently only supports one extruder."
|
||||
#endif
|
||||
#if MIXING_STEPPERS < 2
|
||||
#elif MIXING_STEPPERS < 2
|
||||
#error "You must set MIXING_STEPPERS >= 2 for a mixing extruder."
|
||||
#endif
|
||||
#if ENABLED(FILAMENT_SENSOR)
|
||||
#elif ENABLED(FILAMENT_SENSOR)
|
||||
#error "MIXING_EXTRUDER is incompatible with FILAMENT_SENSOR. Comment out this line to use it anyway."
|
||||
#elif ENABLED(SWITCHING_EXTRUDER)
|
||||
#error "Please select either MIXING_EXTRUDER or SWITCHING_EXTRUDER, not both."
|
||||
#elif ENABLED(SINGLENOZZLE)
|
||||
#error "MIXING_EXTRUDER is incompatible with SINGLENOZZLE."
|
||||
#endif
|
||||
#endif
|
||||
|
||||
|
|
|
@ -1415,7 +1415,7 @@ void MarlinSettings::reset() {
|
|||
SERIAL_ECHOPAIR(" M218 T", (int)e);
|
||||
SERIAL_ECHOPAIR(" X", LINEAR_UNIT(hotend_offset[X_AXIS][e]));
|
||||
SERIAL_ECHOPAIR(" Y", LINEAR_UNIT(hotend_offset[Y_AXIS][e]));
|
||||
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_EXTRUDER)
|
||||
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(SWITCHING_NOZZLE)
|
||||
SERIAL_ECHOPAIR(" Z", LINEAR_UNIT(hotend_offset[Z_AXIS][e]));
|
||||
#endif
|
||||
SERIAL_EOL;
|
||||
|
|
|
@ -138,12 +138,18 @@
|
|||
//#define SINGLENOZZLE
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -137,12 +137,18 @@
|
|||
//#define SINGLENOZZLE
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -137,12 +137,18 @@
|
|||
//#define SINGLENOZZLE
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -137,12 +137,18 @@
|
|||
//#define SINGLENOZZLE
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -140,12 +140,18 @@
|
|||
//#define SINGLENOZZLE
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -137,12 +137,18 @@
|
|||
//#define SINGLENOZZLE
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -157,12 +157,18 @@
|
|||
//#define SINGLENOZZLE
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -137,12 +137,18 @@
|
|||
//#define SINGLENOZZLE
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -137,12 +137,18 @@
|
|||
//#define SINGLENOZZLE
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -137,12 +137,18 @@
|
|||
//#define SINGLENOZZLE
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -140,12 +140,18 @@
|
|||
//#define SINGLENOZZLE
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -170,12 +170,18 @@
|
|||
//#define SINGLENOZZLE
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -137,12 +137,18 @@
|
|||
//#define SINGLENOZZLE
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -159,12 +159,18 @@
|
|||
//#define SINGLENOZZLE
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -140,12 +140,18 @@
|
|||
//#define SINGLENOZZLE
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -137,12 +137,18 @@
|
|||
//#define SINGLENOZZLE
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -137,12 +137,18 @@
|
|||
//#define SINGLENOZZLE
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -137,12 +137,18 @@
|
|||
//#define SINGLENOZZLE
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -137,12 +137,18 @@
|
|||
//#define SINGLENOZZLE
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -137,12 +137,18 @@
|
|||
//#define SINGLENOZZLE
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -141,12 +141,18 @@
|
|||
//#define SINGLENOZZLE
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -137,12 +137,18 @@
|
|||
//#define SINGLENOZZLE
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -142,12 +142,18 @@
|
|||
//#define SINGLENOZZLE
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -137,12 +137,18 @@
|
|||
//#define SINGLENOZZLE
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -137,12 +137,18 @@
|
|||
//#define SINGLENOZZLE
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -137,12 +137,18 @@
|
|||
//#define SINGLENOZZLE
|
||||
|
||||
// A dual extruder that uses a single stepper motor
|
||||
// Don't forget to set SSDE_SERVO_ANGLES and HOTEND_OFFSET_X/Y/Z
|
||||
//#define SWITCHING_EXTRUDER
|
||||
#if ENABLED(SWITCHING_EXTRUDER)
|
||||
#define SWITCHING_EXTRUDER_SERVO_NR 0
|
||||
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z {0.0, 0.0}
|
||||
#endif
|
||||
|
||||
// A dual-nozzle that uses a servomotor to raise/lower one of the nozzles
|
||||
//#define SWITCHING_NOZZLE
|
||||
#if ENABLED(SWITCHING_NOZZLE)
|
||||
#define SWITCHING_NOZZLE_SERVO_NR 0
|
||||
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
|
||||
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
|
||||
#endif
|
||||
|
||||
/**
|
||||
|
|
|
@ -62,7 +62,7 @@ Download earlier versions of Marlin on the [Releases page](https://github.com/Ma
|
|||
- Improve thermal management, add `WATCH_BED_TEMP_PERIOD`
|
||||
- Better handling of toolchange, multiple tools
|
||||
- Add support for two X steppers `X_DUAL_STEPPER_DRIVERS`
|
||||
- Add support for `SINGLENOZZLE`, `MIXING_EXTRUDER`, and `SWITCHING_EXTRUDER`
|
||||
- Add support for `SINGLENOZZLE`, `MIXING_EXTRUDER`, `SWITCHING_NOZZLE`, and `SWITCHING_EXTRUDER`
|
||||
- Simplified probe configuration, allow usage without bed leveling
|
||||
- And much more… See the [1.1.0-RC7 Change Log](https://github.com/MarlinFirmware/Marlin/releases/tag/1.1.0-RC7) for the complete list of changes.
|
||||
|
||||
|
|
Loading…
Reference in a new issue