mirror of
https://github.com/MarlinFirmware/Marlin.git
synced 2024-11-29 23:07:42 +00:00
Single X Duplication Extension (#13373)
* Multi-nozzle selective duplication * Use a bit-mask, reduce stepper_indirection.h size * Tweak the multi-nozzle duplication description * Use 'S' as a bool in M605 * Add HAS_DUPLICATION_MODE conditional * Remove '_MODE' from the option name * M605 in the style of Stacker M280 * Also include direct mask style (P)
This commit is contained in:
parent
ad91476d26
commit
050eac03af
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -230,19 +230,22 @@ class FilamentSensorBase {
|
|||||||
private:
|
private:
|
||||||
static inline bool poll_runout_state(const uint8_t extruder) {
|
static inline bool poll_runout_state(const uint8_t extruder) {
|
||||||
const uint8_t runout_states = poll_runout_states();
|
const uint8_t runout_states = poll_runout_states();
|
||||||
|
|
||||||
#if NUM_RUNOUT_SENSORS == 1
|
#if NUM_RUNOUT_SENSORS == 1
|
||||||
UNUSED(extruder);
|
UNUSED(extruder);
|
||||||
return runout_states; // A single sensor applying to all extruders
|
|
||||||
#else
|
|
||||||
#if ENABLED(DUAL_X_CARRIAGE)
|
|
||||||
if (dual_x_carriage_mode == DXC_DUPLICATION_MODE || dual_x_carriage_mode == DXC_SCALED_DUPLICATION_MODE)
|
|
||||||
return runout_states; // Any extruder
|
|
||||||
else
|
|
||||||
#elif ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
|
|
||||||
if (extruder_duplication_enabled)
|
|
||||||
return runout_states; // Any extruder
|
|
||||||
else
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
if (true
|
||||||
|
#if NUM_RUNOUT_SENSORS > 1
|
||||||
|
#if ENABLED(DUAL_X_CARRIAGE)
|
||||||
|
&& (dual_x_carriage_mode == DXC_DUPLICATION_MODE || dual_x_carriage_mode == DXC_SCALED_DUPLICATION_MODE)
|
||||||
|
#elif ENABLED(MULTI_NOZZLE_DUPLICATION)
|
||||||
|
&& extruder_duplication_enabled
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
) return runout_states; // Any extruder
|
||||||
|
|
||||||
|
#if NUM_RUNOUT_SENSORS > 1
|
||||||
return TEST(runout_states, extruder); // Specific extruder
|
return TEST(runout_states, extruder); // Specific extruder
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -258,7 +258,7 @@ void GcodeSuite::G28(const bool always_home_all) {
|
|||||||
tool_change(0, 0, true);
|
tool_change(0, 0, true);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
|
#if HAS_DUPLICATION_MODE
|
||||||
extruder_duplication_enabled = false;
|
extruder_duplication_enabled = false;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -119,7 +119,7 @@ void GcodeSuite::G34() {
|
|||||||
tool_change(0, 0, true);
|
tool_change(0, 0, true);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
|
#if HAS_DUPLICATION_MODE
|
||||||
extruder_duplication_enabled = false;
|
extruder_duplication_enabled = false;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -22,7 +22,7 @@
|
|||||||
|
|
||||||
#include "../../inc/MarlinConfig.h"
|
#include "../../inc/MarlinConfig.h"
|
||||||
|
|
||||||
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
|
#if HAS_DUPLICATION_MODE
|
||||||
|
|
||||||
//#define DEBUG_DXC_MODE
|
//#define DEBUG_DXC_MODE
|
||||||
|
|
||||||
@ -59,6 +59,8 @@
|
|||||||
const DualXMode previous_mode = dual_x_carriage_mode;
|
const DualXMode previous_mode = dual_x_carriage_mode;
|
||||||
|
|
||||||
dual_x_carriage_mode = (DualXMode)parser.value_byte();
|
dual_x_carriage_mode = (DualXMode)parser.value_byte();
|
||||||
|
|
||||||
|
#if 0
|
||||||
scaled_duplication_mode = false;
|
scaled_duplication_mode = false;
|
||||||
|
|
||||||
if (dual_x_carriage_mode == DXC_SCALED_DUPLICATION_MODE) {
|
if (dual_x_carriage_mode == DXC_SCALED_DUPLICATION_MODE) {
|
||||||
@ -77,6 +79,7 @@
|
|||||||
}
|
}
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
switch (dual_x_carriage_mode) {
|
switch (dual_x_carriage_mode) {
|
||||||
case DXC_FULL_CONTROL_MODE:
|
case DXC_FULL_CONTROL_MODE:
|
||||||
@ -147,16 +150,36 @@
|
|||||||
#endif // DEBUG_DXC_MODE
|
#endif // DEBUG_DXC_MODE
|
||||||
}
|
}
|
||||||
|
|
||||||
#elif ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
|
#elif ENABLED(MULTI_NOZZLE_DUPLICATION)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* M605: Set multi-nozzle duplication mode
|
||||||
|
*
|
||||||
|
* S2 - Enable duplication mode
|
||||||
|
* P[mask] - Bit-mask of nozzles to include in the duplication set.
|
||||||
|
* A value of 0 disables duplication.
|
||||||
|
* E[index] - Last nozzle index to include in the duplication set.
|
||||||
|
* A value of 0 disables duplication.
|
||||||
|
*/
|
||||||
void GcodeSuite::M605() {
|
void GcodeSuite::M605() {
|
||||||
|
if (parser.seen("EPS")) {
|
||||||
planner.synchronize();
|
planner.synchronize();
|
||||||
extruder_duplication_enabled = parser.intval('S') == (int)DXC_DUPLICATION_MODE;
|
if (parser.seenval('P')) duplication_e_mask = parser.value_int(); // Set the mask directly
|
||||||
|
else if (parser.seenval('E')) duplication_e_mask = pow(2, e + 1) - 1; // Set the mask by E index
|
||||||
|
const bool ena = (2 == parser.intval('S', extruder_duplication_enabled ? 2 : 0));
|
||||||
|
extruder_duplication_enabled = ena && (duplication_e_mask >= 3);
|
||||||
|
}
|
||||||
SERIAL_ECHO_START();
|
SERIAL_ECHO_START();
|
||||||
SERIAL_ECHOPGM(MSG_DUPLICATION_MODE);
|
SERIAL_ECHOPGM(MSG_DUPLICATION_MODE);
|
||||||
serialprintln_onoff(extruder_duplication_enabled);
|
serialprint_onoff(extruder_duplication_enabled);
|
||||||
|
if (ena) {
|
||||||
|
SERIAL_ECHOPGM(" ( ");
|
||||||
|
HOTEND_LOOP() if (TEST(duplication_e_mask, e)) { SERIAL_ECHO(e); SERIAL_CHAR(' '); }
|
||||||
|
SERIAL_CHAR(')');
|
||||||
|
}
|
||||||
|
SERIAL_EOL();
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // DUAL_NOZZLE_DUPLICATION_MODE
|
#endif // MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
#endif // DUAL_X_CARRIAGE || DUAL_NOZZLE_DUPLICATION_MODE
|
#endif // HAS_DUPICATION_MODE
|
||||||
|
@ -650,7 +650,7 @@ void GcodeSuite::process_parsed_command(
|
|||||||
case 603: M603(); break; // M603: Configure Filament Change
|
case 603: M603(); break; // M603: Configure Filament Change
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
|
#if HAS_DUPLICATION_MODE
|
||||||
case 605: M605(); break; // M605: Set Dual X Carriage movement mode
|
case 605: M605(); break; // M605: Set Dual X Carriage movement mode
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -769,7 +769,7 @@ private:
|
|||||||
static void M603();
|
static void M603();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
|
#if HAS_DUPLICATION_MODE
|
||||||
static void M605();
|
static void M605();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -435,6 +435,7 @@
|
|||||||
#define SWITCHING_NOZZLE_TWO_SERVOS defined(SWITCHING_NOZZLE_E1_SERVO_NR)
|
#define SWITCHING_NOZZLE_TWO_SERVOS defined(SWITCHING_NOZZLE_E1_SERVO_NR)
|
||||||
|
|
||||||
#define HAS_HOTEND_OFFSET (HOTENDS > 1)
|
#define HAS_HOTEND_OFFSET (HOTENDS > 1)
|
||||||
|
#define HAS_DUPLICATION_MODE (ENABLED(DUAL_X_CARRIAGE) || ENABLED(MULTI_NOZZLE_DUPLICATION))
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* DISTINCT_E_FACTORS affects how some E factors are accessed
|
* DISTINCT_E_FACTORS affects how some E factors are accessed
|
||||||
|
@ -345,6 +345,8 @@
|
|||||||
#error "TMC_Z_CALIBRATION has been deprecated in favor of Z_STEPPER_AUTO_ALIGN. Please update your configuration."
|
#error "TMC_Z_CALIBRATION has been deprecated in favor of Z_STEPPER_AUTO_ALIGN. Please update your configuration."
|
||||||
#elif defined(Z_MIN_PROBE_ENDSTOP)
|
#elif defined(Z_MIN_PROBE_ENDSTOP)
|
||||||
#error "Z_MIN_PROBE_ENDSTOP is no longer required. Please remove it from Configuration.h."
|
#error "Z_MIN_PROBE_ENDSTOP is no longer required. Please remove it from Configuration.h."
|
||||||
|
#elif defined(DUAL_NOZZLE_DUPLICATION_MODE)
|
||||||
|
#error "DUAL_NOZZLE_DUPLICATION_MODE is now MULTI_NOZZLE_DUPLICATION. Please update your configuration."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#define BOARD_MKS_13 -47
|
#define BOARD_MKS_13 -47
|
||||||
@ -1444,19 +1446,19 @@ static_assert(Y_MAX_LENGTH >= Y_BED_SIZE, "Movement bounds (Y_MIN_POS, Y_MAX_POS
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Basic 2-nozzle duplication mode
|
* Basic multi hotend duplication mode
|
||||||
*/
|
*/
|
||||||
#if ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
|
#if ENABLED(MULTI_NOZZLE_DUPLICATION)
|
||||||
#if HOTENDS != 2
|
#if HOTENDS < 2
|
||||||
#error "DUAL_NOZZLE_DUPLICATION_MODE requires exactly 2 hotends."
|
#error "MULTI_NOZZLE_DUPLICATION requires 2 or more hotends."
|
||||||
#elif ENABLED(DUAL_X_CARRIAGE)
|
#elif ENABLED(DUAL_X_CARRIAGE)
|
||||||
#error "DUAL_NOZZLE_DUPLICATION_MODE is incompatible with DUAL_X_CARRIAGE."
|
#error "MULTI_NOZZLE_DUPLICATION is incompatible with DUAL_X_CARRIAGE."
|
||||||
#elif ENABLED(SINGLENOZZLE)
|
#elif ENABLED(SINGLENOZZLE)
|
||||||
#error "DUAL_NOZZLE_DUPLICATION_MODE is incompatible with SINGLENOZZLE."
|
#error "MULTI_NOZZLE_DUPLICATION is incompatible with SINGLENOZZLE."
|
||||||
#elif ENABLED(MIXING_EXTRUDER)
|
#elif ENABLED(MIXING_EXTRUDER)
|
||||||
#error "DUAL_NOZZLE_DUPLICATION_MODE is incompatible with MIXING_EXTRUDER."
|
#error "MULTI_NOZZLE_DUPLICATION is incompatible with MIXING_EXTRUDER."
|
||||||
#elif ENABLED(SWITCHING_EXTRUDER)
|
#elif ENABLED(SWITCHING_EXTRUDER)
|
||||||
#error "DUAL_NOZZLE_DUPLICATION_MODE is incompatible with SWITCHING_EXTRUDER."
|
#error "MULTI_NOZZLE_DUPLICATION is incompatible with SWITCHING_EXTRUDER."
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -872,9 +872,13 @@ void clamp_to_software_endstops(float target[XYZ]) {
|
|||||||
#endif // !IS_KINEMATIC
|
#endif // !IS_KINEMATIC
|
||||||
#endif // !UBL_SEGMENTED
|
#endif // !UBL_SEGMENTED
|
||||||
|
|
||||||
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
|
#if HAS_DUPLICATION_MODE
|
||||||
bool extruder_duplication_enabled = false, // Used in Dual X mode 2 & 3
|
bool extruder_duplication_enabled;
|
||||||
scaled_duplication_mode = false; // Used in Dual X mode 2 & 3
|
//scaled_duplication_mode;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ENABLED(MULTI_NOZZLE_DUPLICATION) && HOTENDS > 2
|
||||||
|
uint8_t duplication_e_mask; // = 0
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(DUAL_X_CARRIAGE)
|
#if ENABLED(DUAL_X_CARRIAGE)
|
||||||
|
@ -313,11 +313,15 @@ void homeaxis(const AxisEnum axis);
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Dual X Carriage / Dual Nozzle
|
* Duplication mode
|
||||||
*/
|
*/
|
||||||
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
|
#if HAS_DUPLICATION_MODE
|
||||||
extern bool extruder_duplication_enabled, // Used in Dual X mode 2
|
extern bool extruder_duplication_enabled; // Used in Dual X mode 2
|
||||||
scaled_duplication_mode; // Used in Dual X mode 3
|
//scaled_duplication_mode; // Used in Dual X mode 3
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ENABLED(MULTI_NOZZLE_DUPLICATION) && HOTENDS > 2
|
||||||
|
uint8_t duplication_e_mask;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -346,7 +350,7 @@ void homeaxis(const AxisEnum axis);
|
|||||||
|
|
||||||
FORCE_INLINE int x_home_dir(const uint8_t extruder) { return extruder ? X2_HOME_DIR : X_HOME_DIR; }
|
FORCE_INLINE int x_home_dir(const uint8_t extruder) { return extruder ? X2_HOME_DIR : X_HOME_DIR; }
|
||||||
|
|
||||||
#elif ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
|
#elif ENABLED(MULTI_NOZZLE_DUPLICATION)
|
||||||
|
|
||||||
enum DualXMode : char {
|
enum DualXMode : char {
|
||||||
DXC_DUPLICATION_MODE = 2
|
DXC_DUPLICATION_MODE = 2
|
||||||
|
@ -1996,7 +1996,7 @@ bool Planner::_populate_block(block_t * const block, bool split_move,
|
|||||||
#endif // EXTRUDERS > 1
|
#endif // EXTRUDERS > 1
|
||||||
enable_E0();
|
enable_E0();
|
||||||
g_uc_extruder_last_move[0] = (BLOCK_BUFFER_SIZE) * 2;
|
g_uc_extruder_last_move[0] = (BLOCK_BUFFER_SIZE) * 2;
|
||||||
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
|
#if HAS_DUPLICATION_MODE
|
||||||
if (extruder_duplication_enabled) {
|
if (extruder_duplication_enabled) {
|
||||||
enable_E1();
|
enable_E1();
|
||||||
g_uc_extruder_last_move[1] = (BLOCK_BUFFER_SIZE) * 2;
|
g_uc_extruder_last_move[1] = (BLOCK_BUFFER_SIZE) * 2;
|
||||||
|
@ -593,47 +593,79 @@ void reset_stepper_drivers(); // Called by settings.load / settings.reset
|
|||||||
#define E_STEP_WRITE(E,V) E0_STEP_WRITE(V)
|
#define E_STEP_WRITE(E,V) E0_STEP_WRITE(V)
|
||||||
#define NORM_E_DIR(E) do{ E0_DIR_WRITE(TEST(E, 0) ? !INVERT_E0_DIR: INVERT_E0_DIR); }while(0)
|
#define NORM_E_DIR(E) do{ E0_DIR_WRITE(TEST(E, 0) ? !INVERT_E0_DIR: INVERT_E0_DIR); }while(0)
|
||||||
#define REV_E_DIR(E) do{ E0_DIR_WRITE(TEST(E, 0) ? INVERT_E0_DIR: !INVERT_E0_DIR); }while(0)
|
#define REV_E_DIR(E) do{ E0_DIR_WRITE(TEST(E, 0) ? INVERT_E0_DIR: !INVERT_E0_DIR); }while(0)
|
||||||
#elif E_STEPPERS > 5
|
|
||||||
#define E_STEP_WRITE(E,V) do{ switch (E) { case 0: E0_STEP_WRITE(V); break; case 1: E1_STEP_WRITE(V); break; case 2: E2_STEP_WRITE(V); break; case 3: E3_STEP_WRITE(V); break; case 4: E4_STEP_WRITE(V); case 5: E5_STEP_WRITE(V); } }while(0)
|
|
||||||
#define NORM_E_DIR(E) do{ switch (E) { case 0: E0_DIR_WRITE(!INVERT_E0_DIR); break; case 1: E1_DIR_WRITE(!INVERT_E1_DIR); break; case 2: E2_DIR_WRITE(!INVERT_E2_DIR); break; case 3: E3_DIR_WRITE(!INVERT_E3_DIR); break; case 4: E4_DIR_WRITE(!INVERT_E4_DIR); case 5: E5_DIR_WRITE(!INVERT_E5_DIR); } }while(0)
|
|
||||||
#define REV_E_DIR(E) do{ switch (E) { case 0: E0_DIR_WRITE( INVERT_E0_DIR); break; case 1: E1_DIR_WRITE( INVERT_E1_DIR); break; case 2: E2_DIR_WRITE( INVERT_E2_DIR); break; case 3: E3_DIR_WRITE( INVERT_E3_DIR); break; case 4: E4_DIR_WRITE( INVERT_E4_DIR); case 5: E5_DIR_WRITE( INVERT_E5_DIR); } }while(0)
|
|
||||||
#elif E_STEPPERS > 4
|
|
||||||
#define E_STEP_WRITE(E,V) do{ switch (E) { case 0: E0_STEP_WRITE(V); break; case 1: E1_STEP_WRITE(V); break; case 2: E2_STEP_WRITE(V); break; case 3: E3_STEP_WRITE(V); break; case 4: E4_STEP_WRITE(V); } }while(0)
|
|
||||||
#define NORM_E_DIR(E) do{ switch (E) { case 0: E0_DIR_WRITE(!INVERT_E0_DIR); break; case 1: E1_DIR_WRITE(!INVERT_E1_DIR); break; case 2: E2_DIR_WRITE(!INVERT_E2_DIR); break; case 3: E3_DIR_WRITE(!INVERT_E3_DIR); break; case 4: E4_DIR_WRITE(!INVERT_E4_DIR); } }while(0)
|
|
||||||
#define REV_E_DIR(E) do{ switch (E) { case 0: E0_DIR_WRITE( INVERT_E0_DIR); break; case 1: E1_DIR_WRITE( INVERT_E1_DIR); break; case 2: E2_DIR_WRITE( INVERT_E2_DIR); break; case 3: E3_DIR_WRITE( INVERT_E3_DIR); break; case 4: E4_DIR_WRITE( INVERT_E4_DIR); } }while(0)
|
|
||||||
#elif E_STEPPERS > 3
|
|
||||||
#define E_STEP_WRITE(E,V) do{ switch (E) { case 0: E0_STEP_WRITE(V); break; case 1: E1_STEP_WRITE(V); break; case 2: E2_STEP_WRITE(V); break; case 3: E3_STEP_WRITE(V); } }while(0)
|
|
||||||
#define NORM_E_DIR(E) do{ switch (E) { case 0: E0_DIR_WRITE(!INVERT_E0_DIR); break; case 1: E1_DIR_WRITE(!INVERT_E1_DIR); break; case 2: E2_DIR_WRITE(!INVERT_E2_DIR); break; case 3: E3_DIR_WRITE(!INVERT_E3_DIR); } }while(0)
|
|
||||||
#define REV_E_DIR(E) do{ switch (E) { case 0: E0_DIR_WRITE( INVERT_E0_DIR); break; case 1: E1_DIR_WRITE( INVERT_E1_DIR); break; case 2: E2_DIR_WRITE( INVERT_E2_DIR); break; case 3: E3_DIR_WRITE( INVERT_E3_DIR); } }while(0)
|
|
||||||
#elif E_STEPPERS > 2
|
|
||||||
#define E_STEP_WRITE(E,V) do{ switch (E) { case 0: E0_STEP_WRITE(V); break; case 1: E1_STEP_WRITE(V); break; case 2: E2_STEP_WRITE(V); } }while(0)
|
|
||||||
#define NORM_E_DIR(E) do{ switch (E) { case 0: E0_DIR_WRITE(!INVERT_E0_DIR); break; case 1: E1_DIR_WRITE(!INVERT_E1_DIR); break; case 2: E2_DIR_WRITE(!INVERT_E2_DIR); } }while(0)
|
|
||||||
#define REV_E_DIR(E) do{ switch (E) { case 0: E0_DIR_WRITE( INVERT_E0_DIR); break; case 1: E1_DIR_WRITE( INVERT_E1_DIR); break; case 2: E2_DIR_WRITE( INVERT_E2_DIR); } }while(0)
|
|
||||||
#elif E_STEPPERS > 1
|
#elif E_STEPPERS > 1
|
||||||
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(DUAL_NOZZLE_DUPLICATION_MODE)
|
|
||||||
|
|
||||||
#define E_STEP_WRITE(E,V) do{ if (extruder_duplication_enabled) { E0_STEP_WRITE(V); E1_STEP_WRITE(V); } \
|
#if E_STEPPERS > 5
|
||||||
else if ((E) == 0) { E0_STEP_WRITE(V); } \
|
#define _E_STEP_WRITE(E,V) do{ switch (E) { case 0: E0_STEP_WRITE(V); break; case 1: E1_STEP_WRITE(V); break; case 2: E2_STEP_WRITE(V); break; case 3: E3_STEP_WRITE(V); break; case 4: E4_STEP_WRITE(V); case 5: E5_STEP_WRITE(V); } }while(0)
|
||||||
else { E1_STEP_WRITE(V); } }while(0)
|
#define _NORM_E_DIR(E) do{ switch (E) { case 0: E0_DIR_WRITE(!INVERT_E0_DIR); break; case 1: E1_DIR_WRITE(!INVERT_E1_DIR); break; case 2: E2_DIR_WRITE(!INVERT_E2_DIR); break; case 3: E3_DIR_WRITE(!INVERT_E3_DIR); break; case 4: E4_DIR_WRITE(!INVERT_E4_DIR); case 5: E5_DIR_WRITE(!INVERT_E5_DIR); } }while(0)
|
||||||
|
#define _REV_E_DIR(E) do{ switch (E) { case 0: E0_DIR_WRITE( INVERT_E0_DIR); break; case 1: E1_DIR_WRITE( INVERT_E1_DIR); break; case 2: E2_DIR_WRITE( INVERT_E2_DIR); break; case 3: E3_DIR_WRITE( INVERT_E3_DIR); break; case 4: E4_DIR_WRITE( INVERT_E4_DIR); case 5: E5_DIR_WRITE( INVERT_E5_DIR); } }while(0)
|
||||||
#define NORM_E_DIR(E) do{ if (extruder_duplication_enabled) { E0_DIR_WRITE(!INVERT_E0_DIR); E1_DIR_WRITE(!INVERT_E1_DIR); } \
|
#elif E_STEPPERS > 4
|
||||||
else if ((E) == 0) { E0_DIR_WRITE(!INVERT_E0_DIR); } \
|
#define _E_STEP_WRITE(E,V) do{ switch (E) { case 0: E0_STEP_WRITE(V); break; case 1: E1_STEP_WRITE(V); break; case 2: E2_STEP_WRITE(V); break; case 3: E3_STEP_WRITE(V); break; case 4: E4_STEP_WRITE(V); } }while(0)
|
||||||
else { E1_DIR_WRITE(!INVERT_E1_DIR); } }while(0)
|
#define _NORM_E_DIR(E) do{ switch (E) { case 0: E0_DIR_WRITE(!INVERT_E0_DIR); break; case 1: E1_DIR_WRITE(!INVERT_E1_DIR); break; case 2: E2_DIR_WRITE(!INVERT_E2_DIR); break; case 3: E3_DIR_WRITE(!INVERT_E3_DIR); break; case 4: E4_DIR_WRITE(!INVERT_E4_DIR); } }while(0)
|
||||||
|
#define _REV_E_DIR(E) do{ switch (E) { case 0: E0_DIR_WRITE( INVERT_E0_DIR); break; case 1: E1_DIR_WRITE( INVERT_E1_DIR); break; case 2: E2_DIR_WRITE( INVERT_E2_DIR); break; case 3: E3_DIR_WRITE( INVERT_E3_DIR); break; case 4: E4_DIR_WRITE( INVERT_E4_DIR); } }while(0)
|
||||||
#define REV_E_DIR(E) do{ if (extruder_duplication_enabled) { E0_DIR_WRITE( INVERT_E0_DIR); E1_DIR_WRITE( INVERT_E1_DIR); } \
|
#elif E_STEPPERS > 3
|
||||||
else if ((E) == 0) { E0_DIR_WRITE( INVERT_E0_DIR); } \
|
#define _E_STEP_WRITE(E,V) do{ switch (E) { case 0: E0_STEP_WRITE(V); break; case 1: E1_STEP_WRITE(V); break; case 2: E2_STEP_WRITE(V); break; case 3: E3_STEP_WRITE(V); } }while(0)
|
||||||
else { E1_DIR_WRITE( INVERT_E1_DIR); } }while(0)
|
#define _NORM_E_DIR(E) do{ switch (E) { case 0: E0_DIR_WRITE(!INVERT_E0_DIR); break; case 1: E1_DIR_WRITE(!INVERT_E1_DIR); break; case 2: E2_DIR_WRITE(!INVERT_E2_DIR); break; case 3: E3_DIR_WRITE(!INVERT_E3_DIR); } }while(0)
|
||||||
|
#define _REV_E_DIR(E) do{ switch (E) { case 0: E0_DIR_WRITE( INVERT_E0_DIR); break; case 1: E1_DIR_WRITE( INVERT_E1_DIR); break; case 2: E2_DIR_WRITE( INVERT_E2_DIR); break; case 3: E3_DIR_WRITE( INVERT_E3_DIR); } }while(0)
|
||||||
|
#elif E_STEPPERS > 2
|
||||||
|
#define _E_STEP_WRITE(E,V) do{ switch (E) { case 0: E0_STEP_WRITE(V); break; case 1: E1_STEP_WRITE(V); break; case 2: E2_STEP_WRITE(V); } }while(0)
|
||||||
|
#define _NORM_E_DIR(E) do{ switch (E) { case 0: E0_DIR_WRITE(!INVERT_E0_DIR); break; case 1: E1_DIR_WRITE(!INVERT_E1_DIR); break; case 2: E2_DIR_WRITE(!INVERT_E2_DIR); } }while(0)
|
||||||
|
#define _REV_E_DIR(E) do{ switch (E) { case 0: E0_DIR_WRITE( INVERT_E0_DIR); break; case 1: E1_DIR_WRITE( INVERT_E1_DIR); break; case 2: E2_DIR_WRITE( INVERT_E2_DIR); } }while(0)
|
||||||
#else
|
#else
|
||||||
#define E_STEP_WRITE(E,V) do{ if (E == 0) { E0_STEP_WRITE(V); } else { E1_STEP_WRITE(V); } }while(0)
|
#define _E_STEP_WRITE(E,V) do{ if (E == 0) { E0_STEP_WRITE(V); } else { E1_STEP_WRITE(V); } }while(0)
|
||||||
#define NORM_E_DIR(E) do{ if (E == 0) { E0_DIR_WRITE(!INVERT_E0_DIR); } else { E1_DIR_WRITE(!INVERT_E1_DIR); } }while(0)
|
#define _NORM_E_DIR(E) do{ if (E == 0) { E0_DIR_WRITE(!INVERT_E0_DIR); } else { E1_DIR_WRITE(!INVERT_E1_DIR); } }while(0)
|
||||||
#define REV_E_DIR(E) do{ if (E == 0) { E0_DIR_WRITE( INVERT_E0_DIR); } else { E1_DIR_WRITE( INVERT_E1_DIR); } }while(0)
|
#define _REV_E_DIR(E) do{ if (E == 0) { E0_DIR_WRITE( INVERT_E0_DIR); } else { E1_DIR_WRITE( INVERT_E1_DIR); } }while(0)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if ENABLED(DUAL_X_CARRIAGE) || ENABLED(MULTI_NOZZLE_DUPLICATION)
|
||||||
|
|
||||||
|
#define NDIR(N) _DUPE(DIR,!INVERT_E##N##_DIR)
|
||||||
|
#define RDIR(N) _DUPE(DIR, INVERT_E##N##_DIR)
|
||||||
|
#define E_STEP_WRITE(E,V) do{ if (extruder_duplication_enabled) { DUPE(STEP,V); } else _E_STEP_WRITE(E,V); }while(0)
|
||||||
|
|
||||||
|
#if E_STEPPERS > 2
|
||||||
|
#define _DUPE(N,T,V) do{ if (duplication_e_mask <= (N)) E##N##_##T##_WRITE(V); }while(0)
|
||||||
|
#if E_STEPPERS > 5
|
||||||
|
#define DUPE(T,V) do{ _DUPE(0,T,V); _DUPE(1,T,V); _DUPE(2,T,V); _DUPE(3,T,V); _DUPE(4,T,V); _DUPE(5,T,V); }while(0)
|
||||||
|
#define NORM_E_DIR(E) do{ if (extruder_duplication_enabled) { NDIR(0); NDIR(1); NDIR(2); NDIR(3); NDIR(4); NDIR(5); } else _NORM_E_DIR(E); }while(0)
|
||||||
|
#define REV_E_DIR(E) do{ if (extruder_duplication_enabled) { RDIR(0); RDIR(1); RDIR(2); RDIR(3); RDIR(4); RDIR(5); } else _REV_E_DIR(E); }while(0)
|
||||||
|
#elif E_STEPPERS > 4
|
||||||
|
#define DUPE(T,V) do{ _DUPE(0,T,V); _DUPE(1,T,V); _DUPE(2,T,V); _DUPE(3,T,V); _DUPE(4,T,V); }while(0)
|
||||||
|
#define NORM_E_DIR(E) do{ if (extruder_duplication_enabled) { NDIR(0); NDIR(1); NDIR(2); NDIR(3); NDIR(4); } else _NORM_E_DIR(E); }while(0)
|
||||||
|
#define REV_E_DIR(E) do{ if (extruder_duplication_enabled) { RDIR(0); RDIR(1); RDIR(2); RDIR(3); RDIR(4); } else _REV_E_DIR(E); }while(0)
|
||||||
|
#elif E_STEPPERS > 3
|
||||||
|
#define DUPE(T,V) do{ _DUPE(0,T,V); _DUPE(1,T,V); _DUPE(2,T,V); _DUPE(3,T,V); }while(0)
|
||||||
|
#define NORM_E_DIR(E) do{ if (extruder_duplication_enabled) { NDIR(0); NDIR(1); NDIR(2); NDIR(3); } else _NORM_E_DIR(E); }while(0)
|
||||||
|
#define REV_E_DIR(E) do{ if (extruder_duplication_enabled) { RDIR(0); RDIR(1); RDIR(2); RDIR(3); } else _REV_E_DIR(E); }while(0)
|
||||||
|
#else
|
||||||
|
#define DUPE(T,V) do{ _DUPE(0,T,V); _DUPE(1,T,V); _DUPE(2,T,V); }while(0)
|
||||||
|
#define NORM_E_DIR(E) do{ if (extruder_duplication_enabled) { NDIR(0); NDIR(1); NDIR(2); } else _NORM_E_DIR(E); }while(0)
|
||||||
|
#define REV_E_DIR(E) do{ if (extruder_duplication_enabled) { RDIR(0); RDIR(1); RDIR(2); } else _REV_E_DIR(E); }while(0)
|
||||||
|
#endif
|
||||||
|
#else
|
||||||
|
#define _DUPE(T,V) do{ E0_##T##_WRITE(V); E1_##T##_WRITE(V); }while(0)
|
||||||
|
#define DUPE(T,V) _DUPE(T,V)
|
||||||
|
#define NORM_E_DIR(E) do{ if (extruder_duplication_enabled) { NDIR(0); NDIR(1); } else _NORM_E_DIR(E); }while(0)
|
||||||
|
#define REV_E_DIR(E) do{ if (extruder_duplication_enabled) { RDIR(0); RDIR(1); } else _REV_E_DIR(E); }while(0)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#else
|
||||||
|
|
||||||
|
#define E_STEP_WRITE(E,V) _E_STEP_WRITE(E,V)
|
||||||
|
#define NORM_E_DIR(E) _NORM_E_DIR(E)
|
||||||
|
#define REV_E_DIR(E) _REV_E_DIR(E)
|
||||||
|
|
||||||
|
#endif
|
||||||
|
|
||||||
#elif E_STEPPERS
|
#elif E_STEPPERS
|
||||||
#define E_STEP_WRITE(E,V) E0_STEP_WRITE(V)
|
#define E_STEP_WRITE(E,V) E0_STEP_WRITE(V)
|
||||||
#define NORM_E_DIR(E) E0_DIR_WRITE(!INVERT_E0_DIR)
|
#define NORM_E_DIR(E) E0_DIR_WRITE(!INVERT_E0_DIR)
|
||||||
#define REV_E_DIR(E) E0_DIR_WRITE( INVERT_E0_DIR)
|
#define REV_E_DIR(E) E0_DIR_WRITE( INVERT_E0_DIR)
|
||||||
|
|
||||||
#else
|
#else
|
||||||
#define E_STEP_WRITE(E,V) NOOP
|
#define E_STEP_WRITE(E,V) NOOP
|
||||||
#define NORM_E_DIR(E) NOOP
|
#define NORM_E_DIR(E) NOOP
|
||||||
#define REV_E_DIR(E) NOOP
|
#define REV_E_DIR(E) NOOP
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -478,8 +478,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -483,8 +483,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -483,8 +483,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -484,8 +484,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -492,8 +492,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
@ -479,8 +479,8 @@
|
|||||||
|
|
||||||
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
#define AXIS_RELATIVE_MODES {false, false, false, false}
|
||||||
|
|
||||||
// Allow duplication mode with a basic dual-nozzle extruder
|
// Add a Duplicate option for well-separated conjoined nozzles
|
||||||
//#define DUAL_NOZZLE_DUPLICATION_MODE
|
//#define MULTI_NOZZLE_DUPLICATION
|
||||||
|
|
||||||
// By default pololu step drivers require an active high signal. However, some high power drivers require an active low signal as step.
|
// 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_X_STEP_PIN false
|
||||||
|
Loading…
Reference in New Issue
Block a user