More updates for 8 extruders, REPEAT
This commit is contained in:
parent
793939a365
commit
f312ddfa4f
14 changed files with 207 additions and 22 deletions
|
@ -57,6 +57,7 @@
|
||||||
#define AXIS_DRIVER_TYPE_X(T) _AXIS_DRIVER_TYPE(X,T)
|
#define AXIS_DRIVER_TYPE_X(T) _AXIS_DRIVER_TYPE(X,T)
|
||||||
#define AXIS_DRIVER_TYPE_Y(T) _AXIS_DRIVER_TYPE(Y,T)
|
#define AXIS_DRIVER_TYPE_Y(T) _AXIS_DRIVER_TYPE(Y,T)
|
||||||
#define AXIS_DRIVER_TYPE_Z(T) _AXIS_DRIVER_TYPE(Z,T)
|
#define AXIS_DRIVER_TYPE_Z(T) _AXIS_DRIVER_TYPE(Z,T)
|
||||||
|
|
||||||
#if EITHER(X_DUAL_STEPPER_DRIVERS, DUAL_X_CARRIAGE)
|
#if EITHER(X_DUAL_STEPPER_DRIVERS, DUAL_X_CARRIAGE)
|
||||||
#define AXIS_DRIVER_TYPE_X2(T) _AXIS_DRIVER_TYPE(X2,T)
|
#define AXIS_DRIVER_TYPE_X2(T) _AXIS_DRIVER_TYPE(X2,T)
|
||||||
#else
|
#else
|
||||||
|
@ -66,21 +67,21 @@
|
||||||
#define AXIS_DRIVER_TYPE_Z2(T) (NUM_Z_STEPPER_DRIVERS >= 2 && _AXIS_DRIVER_TYPE(Z2,T))
|
#define AXIS_DRIVER_TYPE_Z2(T) (NUM_Z_STEPPER_DRIVERS >= 2 && _AXIS_DRIVER_TYPE(Z2,T))
|
||||||
#define AXIS_DRIVER_TYPE_Z3(T) (NUM_Z_STEPPER_DRIVERS >= 3 && _AXIS_DRIVER_TYPE(Z3,T))
|
#define AXIS_DRIVER_TYPE_Z3(T) (NUM_Z_STEPPER_DRIVERS >= 3 && _AXIS_DRIVER_TYPE(Z3,T))
|
||||||
#define AXIS_DRIVER_TYPE_Z4(T) (NUM_Z_STEPPER_DRIVERS >= 4 && _AXIS_DRIVER_TYPE(Z4,T))
|
#define AXIS_DRIVER_TYPE_Z4(T) (NUM_Z_STEPPER_DRIVERS >= 4 && _AXIS_DRIVER_TYPE(Z4,T))
|
||||||
#define AXIS_DRIVER_TYPE_E0(T) (E_STEPPERS > 0 && _AXIS_DRIVER_TYPE(E0,T))
|
|
||||||
#define AXIS_DRIVER_TYPE_E1(T) (E_STEPPERS > 1 && _AXIS_DRIVER_TYPE(E1,T))
|
#define AXIS_DRIVER_TYPE_E(N,T) (E_STEPPERS > N && _AXIS_DRIVER_TYPE(E##N,T))
|
||||||
#define AXIS_DRIVER_TYPE_E2(T) (E_STEPPERS > 2 && _AXIS_DRIVER_TYPE(E2,T))
|
#define AXIS_DRIVER_TYPE_E0(T) AXIS_DRIVER_TYPE_E(0,T)
|
||||||
#define AXIS_DRIVER_TYPE_E3(T) (E_STEPPERS > 3 && _AXIS_DRIVER_TYPE(E3,T))
|
#define AXIS_DRIVER_TYPE_E1(T) AXIS_DRIVER_TYPE_E(1,T)
|
||||||
#define AXIS_DRIVER_TYPE_E4(T) (E_STEPPERS > 4 && _AXIS_DRIVER_TYPE(E4,T))
|
#define AXIS_DRIVER_TYPE_E2(T) AXIS_DRIVER_TYPE_E(2,T)
|
||||||
#define AXIS_DRIVER_TYPE_E5(T) (E_STEPPERS > 5 && _AXIS_DRIVER_TYPE(E5,T))
|
#define AXIS_DRIVER_TYPE_E3(T) AXIS_DRIVER_TYPE_E(3,T)
|
||||||
#define AXIS_DRIVER_TYPE_E6(T) (E_STEPPERS > 6 && _AXIS_DRIVER_TYPE(E6,T))
|
#define AXIS_DRIVER_TYPE_E4(T) AXIS_DRIVER_TYPE_E(4,T)
|
||||||
#define AXIS_DRIVER_TYPE_E7(T) (E_STEPPERS > 7 && _AXIS_DRIVER_TYPE(E7,T))
|
#define AXIS_DRIVER_TYPE_E5(T) AXIS_DRIVER_TYPE_E(5,T)
|
||||||
|
#define AXIS_DRIVER_TYPE_E6(T) AXIS_DRIVER_TYPE_E(6,T)
|
||||||
|
#define AXIS_DRIVER_TYPE_E7(T) AXIS_DRIVER_TYPE_E(7,T)
|
||||||
|
|
||||||
#define AXIS_DRIVER_TYPE(A,T) AXIS_DRIVER_TYPE_##A(T)
|
#define AXIS_DRIVER_TYPE(A,T) AXIS_DRIVER_TYPE_##A(T)
|
||||||
|
|
||||||
#define HAS_E_DRIVER(T) ( AXIS_DRIVER_TYPE_E0(T) || AXIS_DRIVER_TYPE_E1(T) \
|
#define _OR_ADTE(N,T) || AXIS_DRIVER_TYPE_E(N,T)
|
||||||
|| AXIS_DRIVER_TYPE_E2(T) || AXIS_DRIVER_TYPE_E3(T) \
|
#define HAS_E_DRIVER(T) (0 RREPEAT2(E_STEPPERS, _OR_ADTE, T))
|
||||||
|| AXIS_DRIVER_TYPE_E4(T) || AXIS_DRIVER_TYPE_E5(T) \
|
|
||||||
|| AXIS_DRIVER_TYPE_E6(T) || AXIS_DRIVER_TYPE_E7(T) )
|
|
||||||
|
|
||||||
#define HAS_DRIVER(T) ( AXIS_DRIVER_TYPE_X(T) || AXIS_DRIVER_TYPE_X2(T) \
|
#define HAS_DRIVER(T) ( AXIS_DRIVER_TYPE_X(T) || AXIS_DRIVER_TYPE_X2(T) \
|
||||||
|| AXIS_DRIVER_TYPE_Y(T) || AXIS_DRIVER_TYPE_Y2(T) \
|
|| AXIS_DRIVER_TYPE_Y(T) || AXIS_DRIVER_TYPE_Y2(T) \
|
||||||
|
|
|
@ -439,6 +439,12 @@
|
||||||
#if AXIS_IS_TMC(E5)
|
#if AXIS_IS_TMC(E5)
|
||||||
(void)monitor_tmc_driver(stepperE5, need_update_error_counters, need_debug_reporting);
|
(void)monitor_tmc_driver(stepperE5, need_update_error_counters, need_debug_reporting);
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_IS_TMC(E6)
|
||||||
|
(void)monitor_tmc_driver(stepperE6, need_update_error_counters, need_debug_reporting);
|
||||||
|
#endif
|
||||||
|
#if AXIS_IS_TMC(E7)
|
||||||
|
(void)monitor_tmc_driver(stepperE7, need_update_error_counters, need_debug_reporting);
|
||||||
|
#endif
|
||||||
|
|
||||||
#if ENABLED(TMC_DEBUG)
|
#if ENABLED(TMC_DEBUG)
|
||||||
if (need_debug_reporting) SERIAL_EOL();
|
if (need_debug_reporting) SERIAL_EOL();
|
||||||
|
@ -782,6 +788,12 @@
|
||||||
#if AXIS_IS_TMC(E5)
|
#if AXIS_IS_TMC(E5)
|
||||||
tmc_status(stepperE5, i);
|
tmc_status(stepperE5, i);
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_IS_TMC(E6)
|
||||||
|
tmc_status(stepperE6, i);
|
||||||
|
#endif
|
||||||
|
#if AXIS_IS_TMC(E7)
|
||||||
|
tmc_status(stepperE7, i);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
SERIAL_EOL();
|
SERIAL_EOL();
|
||||||
|
@ -840,6 +852,12 @@
|
||||||
#if AXIS_IS_TMC(E5)
|
#if AXIS_IS_TMC(E5)
|
||||||
tmc_parse_drv_status(stepperE5, i);
|
tmc_parse_drv_status(stepperE5, i);
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_IS_TMC(E6)
|
||||||
|
tmc_parse_drv_status(stepperE6, i);
|
||||||
|
#endif
|
||||||
|
#if AXIS_IS_TMC(E7)
|
||||||
|
tmc_parse_drv_status(stepperE7, i);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
SERIAL_EOL();
|
SERIAL_EOL();
|
||||||
|
@ -1018,6 +1036,12 @@
|
||||||
#if AXIS_IS_TMC(E5)
|
#if AXIS_IS_TMC(E5)
|
||||||
tmc_get_registers(stepperE5, i);
|
tmc_get_registers(stepperE5, i);
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_IS_TMC(E6)
|
||||||
|
tmc_get_registers(stepperE6, i);
|
||||||
|
#endif
|
||||||
|
#if AXIS_IS_TMC(E7)
|
||||||
|
tmc_get_registers(stepperE7, i);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
SERIAL_EOL();
|
SERIAL_EOL();
|
||||||
|
@ -1124,6 +1148,12 @@
|
||||||
#if AXIS_HAS_SPI(E5)
|
#if AXIS_HAS_SPI(E5)
|
||||||
SET_CS_PIN(E5);
|
SET_CS_PIN(E5);
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_HAS_SPI(E6)
|
||||||
|
SET_CS_PIN(E6);
|
||||||
|
#endif
|
||||||
|
#if AXIS_HAS_SPI(E7)
|
||||||
|
SET_CS_PIN(E7);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#endif // TMC_HAS_SPI
|
#endif // TMC_HAS_SPI
|
||||||
|
|
||||||
|
@ -1204,6 +1234,12 @@ void test_tmc_connection(const bool test_x, const bool test_y, const bool test_z
|
||||||
#if AXIS_IS_TMC(E5)
|
#if AXIS_IS_TMC(E5)
|
||||||
axis_connection += test_connection(stepperE5);
|
axis_connection += test_connection(stepperE5);
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_IS_TMC(E6)
|
||||||
|
axis_connection += test_connection(stepperE6);
|
||||||
|
#endif
|
||||||
|
#if AXIS_IS_TMC(E7)
|
||||||
|
axis_connection += test_connection(stepperE7);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
if (axis_connection) ui.set_status_P(GET_TEXT(MSG_ERROR_TMC));
|
if (axis_connection) ui.set_status_P(GET_TEXT(MSG_ERROR_TMC));
|
||||||
|
|
|
@ -136,6 +136,12 @@ void GcodeSuite::M122() {
|
||||||
#if AXIS_IS_L64XX(E5)
|
#if AXIS_IS_L64XX(E5)
|
||||||
L6470_say_status(E5);
|
L6470_say_status(E5);
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_IS_L64XX(E6)
|
||||||
|
L6470_say_status(E6);
|
||||||
|
#endif
|
||||||
|
#if AXIS_IS_L64XX(E7)
|
||||||
|
L6470_say_status(E7);
|
||||||
|
#endif
|
||||||
|
|
||||||
L64xxManager.spi_active = false; // done with all SPI transfers - clear handshake flags
|
L64xxManager.spi_active = false; // done with all SPI transfers - clear handshake flags
|
||||||
L64xxManager.spi_abort = false;
|
L64xxManager.spi_abort = false;
|
||||||
|
|
|
@ -298,6 +298,12 @@ void GcodeSuite::M906() {
|
||||||
#if AXIS_IS_L64XX(E5)
|
#if AXIS_IS_L64XX(E5)
|
||||||
case 5: L6470_SET_KVAL_HOLD(E5); break;
|
case 5: L6470_SET_KVAL_HOLD(E5); break;
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_IS_L64XX(E6)
|
||||||
|
case 6: L6470_SET_KVAL_HOLD(E6); break;
|
||||||
|
#endif
|
||||||
|
#if AXIS_IS_L64XX(E7)
|
||||||
|
case 7: L6470_SET_KVAL_HOLD(E7); break;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
}
|
}
|
||||||
|
@ -350,6 +356,12 @@ void GcodeSuite::M906() {
|
||||||
#if AXIS_IS_L64XX(E5)
|
#if AXIS_IS_L64XX(E5)
|
||||||
L64XX_REPORT_CURRENT(E5);
|
L64XX_REPORT_CURRENT(E5);
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_IS_L64XX(E6)
|
||||||
|
L64XX_REPORT_CURRENT(E6);
|
||||||
|
#endif
|
||||||
|
#if AXIS_IS_L64XX(E7)
|
||||||
|
L64XX_REPORT_CURRENT(E7);
|
||||||
|
#endif
|
||||||
|
|
||||||
L64xxManager.spi_active = false; // done with all SPI transfers - clear handshake flags
|
L64xxManager.spi_active = false; // done with all SPI transfers - clear handshake flags
|
||||||
L64xxManager.spi_abort = false;
|
L64xxManager.spi_abort = false;
|
||||||
|
|
|
@ -104,6 +104,12 @@ static void set_stealth_status(const bool enable, const int8_t target_extruder)
|
||||||
#if AXIS_HAS_STEALTHCHOP(E5)
|
#if AXIS_HAS_STEALTHCHOP(E5)
|
||||||
case 5: TMC_SET_STEALTH(E5); break;
|
case 5: TMC_SET_STEALTH(E5); break;
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_HAS_STEALTHCHOP(E6)
|
||||||
|
case 6: TMC_SET_STEALTH(E6); break;
|
||||||
|
#endif
|
||||||
|
#if AXIS_HAS_STEALTHCHOP(E7)
|
||||||
|
case 7: TMC_SET_STEALTH(E7); break;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
}
|
}
|
||||||
|
@ -155,6 +161,12 @@ static void say_stealth_status() {
|
||||||
#if AXIS_HAS_STEALTHCHOP(E5)
|
#if AXIS_HAS_STEALTHCHOP(E5)
|
||||||
TMC_SAY_STEALTH_STATUS(E5);
|
TMC_SAY_STEALTH_STATUS(E5);
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_HAS_STEALTHCHOP(E6)
|
||||||
|
TMC_SAY_STEALTH_STATUS(E6);
|
||||||
|
#endif
|
||||||
|
#if AXIS_HAS_STEALTHCHOP(E7)
|
||||||
|
TMC_SAY_STEALTH_STATUS(E7);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|
|
@ -107,6 +107,12 @@ void GcodeSuite::M906() {
|
||||||
#if AXIS_IS_TMC(E5)
|
#if AXIS_IS_TMC(E5)
|
||||||
case 5: TMC_SET_CURRENT(E5); break;
|
case 5: TMC_SET_CURRENT(E5); break;
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_IS_TMC(E6)
|
||||||
|
case 6: TMC_SET_CURRENT(E6); break;
|
||||||
|
#endif
|
||||||
|
#if AXIS_IS_TMC(E7)
|
||||||
|
case 7: TMC_SET_CURRENT(E7); break;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
} break;
|
} break;
|
||||||
}
|
}
|
||||||
|
@ -155,6 +161,12 @@ void GcodeSuite::M906() {
|
||||||
#if AXIS_IS_TMC(E5)
|
#if AXIS_IS_TMC(E5)
|
||||||
TMC_SAY_CURRENT(E5);
|
TMC_SAY_CURRENT(E5);
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_IS_TMC(E6)
|
||||||
|
TMC_SAY_CURRENT(E6);
|
||||||
|
#endif
|
||||||
|
#if AXIS_IS_TMC(E7)
|
||||||
|
TMC_SAY_CURRENT(E7);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -142,6 +142,12 @@
|
||||||
#if AXIS_IS_L64XX(E5)
|
#if AXIS_IS_L64XX(E5)
|
||||||
REPORT_ABSOLUTE_POS(E5);
|
REPORT_ABSOLUTE_POS(E5);
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_IS_L64XX(E6)
|
||||||
|
REPORT_ABSOLUTE_POS(E6);
|
||||||
|
#endif
|
||||||
|
#if AXIS_IS_L64XX(E7)
|
||||||
|
REPORT_ABSOLUTE_POS(E7);
|
||||||
|
#endif
|
||||||
SERIAL_EOL();
|
SERIAL_EOL();
|
||||||
#endif // HAS_L64XX
|
#endif // HAS_L64XX
|
||||||
|
|
||||||
|
|
|
@ -481,6 +481,12 @@ namespace ExtUI {
|
||||||
#if AXIS_IS_TMC(E5)
|
#if AXIS_IS_TMC(E5)
|
||||||
case E5: return stepperE5.getMilliamps();
|
case E5: return stepperE5.getMilliamps();
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_IS_TMC(E6)
|
||||||
|
case E6: return stepperE6.getMilliamps();
|
||||||
|
#endif
|
||||||
|
#if AXIS_IS_TMC(E7)
|
||||||
|
case E7: return stepperE7.getMilliamps();
|
||||||
|
#endif
|
||||||
default: return NAN;
|
default: return NAN;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
@ -520,6 +526,12 @@ namespace ExtUI {
|
||||||
#if AXIS_IS_TMC(E5)
|
#if AXIS_IS_TMC(E5)
|
||||||
case E5: stepperE5.rms_current(constrain(mA, 500, 1500)); break;
|
case E5: stepperE5.rms_current(constrain(mA, 500, 1500)); break;
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_IS_TMC(E6)
|
||||||
|
case E6: stepperE6.rms_current(constrain(mA, 500, 1500)); break;
|
||||||
|
#endif
|
||||||
|
#if AXIS_IS_TMC(E7)
|
||||||
|
case E7: stepperE7.rms_current(constrain(mA, 500, 1500)); break;
|
||||||
|
#endif
|
||||||
default: break;
|
default: break;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
|
@ -53,7 +53,7 @@ namespace ExtUI {
|
||||||
static constexpr size_t eeprom_data_size = 48;
|
static constexpr size_t eeprom_data_size = 48;
|
||||||
|
|
||||||
enum axis_t : uint8_t { X, Y, Z };
|
enum axis_t : uint8_t { X, Y, Z };
|
||||||
enum extruder_t : uint8_t { E0, E1, E2, E3, E4, E5 };
|
enum extruder_t : uint8_t { E0, E1, E2, E3, E4, E5, E6, E7 };
|
||||||
enum heater_t : uint8_t { H0, H1, H2, H3, H4, H5, BED, CHAMBER };
|
enum heater_t : uint8_t { H0, H1, H2, H3, H4, H5, BED, CHAMBER };
|
||||||
enum fan_t : uint8_t { FAN0, FAN1, FAN2, FAN3, FAN4, FAN5, FAN6, FAN7 };
|
enum fan_t : uint8_t { FAN0, FAN1, FAN2, FAN3, FAN4, FAN5, FAN6, FAN7 };
|
||||||
enum result_t : uint8_t { PID_BAD_EXTRUDER_NUM, PID_TEMP_TOO_HIGH, PID_TUNING_TIMEOUT, PID_DONE };
|
enum result_t : uint8_t { PID_BAD_EXTRUDER_NUM, PID_TEMP_TOO_HIGH, PID_TUNING_TIMEOUT, PID_DONE };
|
||||||
|
|
|
@ -127,6 +127,12 @@ void L6470_populate_chain_array() {
|
||||||
#if AXIS_IS_L64XX(E5)
|
#if AXIS_IS_L64XX(E5)
|
||||||
_L6470_INIT_SPI(E5);
|
_L6470_INIT_SPI(E5);
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_IS_L64XX(E6)
|
||||||
|
_L6470_INIT_SPI(E6);
|
||||||
|
#endif
|
||||||
|
#if AXIS_IS_L64XX(E7)
|
||||||
|
_L6470_INIT_SPI(E7);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -240,6 +246,12 @@ uint16_t L64XX_Marlin::get_status(const L64XX_axis_t axis) {
|
||||||
#if AXIS_IS_L64XX(E5)
|
#if AXIS_IS_L64XX(E5)
|
||||||
case E5: return STATUS_L6470(E5);
|
case E5: return STATUS_L6470(E5);
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_IS_L64XX(E6)
|
||||||
|
case E6: return STATUS_L6470(E6);
|
||||||
|
#endif
|
||||||
|
#if AXIS_IS_L64XX(E7)
|
||||||
|
case E7: return STATUS_L6470(E7);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0; // Not needed but kills a compiler warning
|
return 0; // Not needed but kills a compiler warning
|
||||||
|
@ -293,6 +305,12 @@ uint32_t L64XX_Marlin::get_param(const L64XX_axis_t axis, const uint8_t param) {
|
||||||
#if AXIS_IS_L64XX(E5)
|
#if AXIS_IS_L64XX(E5)
|
||||||
case E5: return GET_L6470_PARAM(E5);
|
case E5: return GET_L6470_PARAM(E5);
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_IS_L64XX(E6)
|
||||||
|
case E6: return GET_L6470_PARAM(E6);
|
||||||
|
#endif
|
||||||
|
#if AXIS_IS_L64XX(E7)
|
||||||
|
case E7: return GET_L6470_PARAM(E7);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0; // not needed but kills a compiler warning
|
return 0; // not needed but kills a compiler warning
|
||||||
|
@ -346,6 +364,12 @@ void L64XX_Marlin::set_param(const L64XX_axis_t axis, const uint8_t param, const
|
||||||
#if AXIS_IS_L64XX(E5)
|
#if AXIS_IS_L64XX(E5)
|
||||||
case E5: SET_L6470_PARAM(E5); break;
|
case E5: SET_L6470_PARAM(E5); break;
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_IS_L64XX(E6)
|
||||||
|
case E6: SET_L6470_PARAM(E6); break;
|
||||||
|
#endif
|
||||||
|
#if AXIS_IS_L64XX(E7)
|
||||||
|
case E7: SET_L6470_PARAM(E7); break;
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -694,25 +718,31 @@ void L64XX_Marlin::say_axis(const L64XX_axis_t axis, const uint8_t label/*=true*
|
||||||
{ 6, 0, 0, 0, 0, 0, 0 },
|
{ 6, 0, 0, 0, 0, 0, 0 },
|
||||||
#endif
|
#endif
|
||||||
#if AXIS_IS_L64XX(Z4)
|
#if AXIS_IS_L64XX(Z4)
|
||||||
{ 6, 0, 0, 0, 0, 0, 0 },
|
|
||||||
#endif
|
|
||||||
#if AXIS_IS_L64XX(E0)
|
|
||||||
{ 7, 0, 0, 0, 0, 0, 0 },
|
{ 7, 0, 0, 0, 0, 0, 0 },
|
||||||
#endif
|
#endif
|
||||||
#if AXIS_IS_L64XX(E1)
|
#if AXIS_IS_L64XX(E0)
|
||||||
{ 8, 0, 0, 0, 0, 0, 0 },
|
{ 8, 0, 0, 0, 0, 0, 0 },
|
||||||
#endif
|
#endif
|
||||||
#if AXIS_IS_L64XX(E2)
|
#if AXIS_IS_L64XX(E1)
|
||||||
{ 9, 0, 0, 0, 0, 0, 0 },
|
{ 9, 0, 0, 0, 0, 0, 0 },
|
||||||
#endif
|
#endif
|
||||||
#if AXIS_IS_L64XX(E3)
|
#if AXIS_IS_L64XX(E2)
|
||||||
{ 10, 0, 0, 0, 0, 0, 0 },
|
{ 10, 0, 0, 0, 0, 0, 0 },
|
||||||
#endif
|
#endif
|
||||||
#if AXIS_IS_L64XX(E4)
|
#if AXIS_IS_L64XX(E3)
|
||||||
{ 11, 0, 0, 0, 0, 0, 0 },
|
{ 11, 0, 0, 0, 0, 0, 0 },
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_IS_L64XX(E4)
|
||||||
|
{ 12, 0, 0, 0, 0, 0, 0 },
|
||||||
|
#endif
|
||||||
#if AXIS_IS_L64XX(E5)
|
#if AXIS_IS_L64XX(E5)
|
||||||
{ 12, 0, 0, 0, 0, 0, 0 }
|
{ 13, 0, 0, 0, 0, 0, 0 }
|
||||||
|
#endif
|
||||||
|
#if AXIS_IS_L64XX(E6)
|
||||||
|
{ 14, 0, 0, 0, 0, 0, 0 }
|
||||||
|
#endif
|
||||||
|
#if AXIS_IS_L64XX(E7)
|
||||||
|
{ 16, 0, 0, 0, 0, 0, 0 }
|
||||||
#endif
|
#endif
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
@ -33,7 +33,7 @@
|
||||||
#define dSPIN_STEP_CLOCK 0x58
|
#define dSPIN_STEP_CLOCK 0x58
|
||||||
#define dSPIN_STEP_CLOCK_FWD dSPIN_STEP_CLOCK
|
#define dSPIN_STEP_CLOCK_FWD dSPIN_STEP_CLOCK
|
||||||
#define dSPIN_STEP_CLOCK_REV dSPIN_STEP_CLOCK+1
|
#define dSPIN_STEP_CLOCK_REV dSPIN_STEP_CLOCK+1
|
||||||
#define HAS_L64XX_EXTRUDER (AXIS_IS_L64XX(E0) || AXIS_IS_L64XX(E1) || AXIS_IS_L64XX(E2) || AXIS_IS_L64XX(E3) || AXIS_IS_L64XX(E4) || AXIS_IS_L64XX(E5))
|
#define HAS_L64XX_EXTRUDER (AXIS_IS_L64XX(E0) || AXIS_IS_L64XX(E1) || AXIS_IS_L64XX(E2) || AXIS_IS_L64XX(E3) || AXIS_IS_L64XX(E4) || AXIS_IS_L64XX(E5) || AXIS_IS_L64XX(E6) || AXIS_IS_L64XX(E7))
|
||||||
|
|
||||||
enum L64XX_axis_t : uint8_t { X, Y, Z, X2, Y2, Z2, Z3, Z4, E0, E1, E2, E3, E4, E5, E6, E7, MAX_L64XX };
|
enum L64XX_axis_t : uint8_t { X, Y, Z, X2, Y2, Z2, Z3, Z4, E0, E1, E2, E3, E4, E5, E6, E7, MAX_L64XX };
|
||||||
|
|
||||||
|
|
|
@ -1905,6 +1905,12 @@ void MarlinSettings::postprocess() {
|
||||||
#if AXIS_IS_TMC(E5)
|
#if AXIS_IS_TMC(E5)
|
||||||
SET_CURR(E5);
|
SET_CURR(E5);
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_IS_TMC(E6)
|
||||||
|
SET_CURR(E6);
|
||||||
|
#endif
|
||||||
|
#if AXIS_IS_TMC(E7)
|
||||||
|
SET_CURR(E7);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -1959,6 +1965,12 @@ void MarlinSettings::postprocess() {
|
||||||
#if AXIS_HAS_STEALTHCHOP(E5)
|
#if AXIS_HAS_STEALTHCHOP(E5)
|
||||||
stepperE5.set_pwm_thrs(tmc_hybrid_threshold.E5);
|
stepperE5.set_pwm_thrs(tmc_hybrid_threshold.E5);
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_HAS_STEALTHCHOP(E6)
|
||||||
|
stepperE6.set_pwm_thrs(tmc_hybrid_threshold.E6);
|
||||||
|
#endif
|
||||||
|
#if AXIS_HAS_STEALTHCHOP(E7)
|
||||||
|
stepperE7.set_pwm_thrs(tmc_hybrid_threshold.E7);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -2065,6 +2077,12 @@ void MarlinSettings::postprocess() {
|
||||||
#if AXIS_HAS_STEALTHCHOP(E5)
|
#if AXIS_HAS_STEALTHCHOP(E5)
|
||||||
SET_STEPPING_MODE(E5);
|
SET_STEPPING_MODE(E5);
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_HAS_STEALTHCHOP(E6)
|
||||||
|
SET_STEPPING_MODE(E6);
|
||||||
|
#endif
|
||||||
|
#if AXIS_HAS_STEALTHCHOP(E7)
|
||||||
|
SET_STEPPING_MODE(E7);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
@ -3333,6 +3351,14 @@ void MarlinSettings::reset() {
|
||||||
say_M906(forReplay);
|
say_M906(forReplay);
|
||||||
SERIAL_ECHOLNPAIR(" T5 E", stepperE5.getMilliamps());
|
SERIAL_ECHOLNPAIR(" T5 E", stepperE5.getMilliamps());
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_IS_TMC(E6)
|
||||||
|
say_M906(forReplay);
|
||||||
|
SERIAL_ECHOLNPAIR(" T6 E", stepperE6.getMilliamps());
|
||||||
|
#endif
|
||||||
|
#if AXIS_IS_TMC(E7)
|
||||||
|
say_M906(forReplay);
|
||||||
|
SERIAL_ECHOLNPAIR(" T7 E", stepperE7.getMilliamps());
|
||||||
|
#endif
|
||||||
SERIAL_EOL();
|
SERIAL_EOL();
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -3407,6 +3433,14 @@ void MarlinSettings::reset() {
|
||||||
say_M913(forReplay);
|
say_M913(forReplay);
|
||||||
SERIAL_ECHOLNPAIR(" T5 E", stepperE5.get_pwm_thrs());
|
SERIAL_ECHOLNPAIR(" T5 E", stepperE5.get_pwm_thrs());
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_HAS_STEALTHCHOP(E6)
|
||||||
|
say_M913(forReplay);
|
||||||
|
SERIAL_ECHOLNPAIR(" T6 E", stepperE6.get_pwm_thrs());
|
||||||
|
#endif
|
||||||
|
#if AXIS_HAS_STEALTHCHOP(E7)
|
||||||
|
say_M913(forReplay);
|
||||||
|
SERIAL_ECHOLNPAIR(" T7 E", stepperE7.get_pwm_thrs());
|
||||||
|
#endif
|
||||||
SERIAL_EOL();
|
SERIAL_EOL();
|
||||||
#endif // HYBRID_THRESHOLD
|
#endif // HYBRID_THRESHOLD
|
||||||
|
|
||||||
|
@ -3539,6 +3573,12 @@ void MarlinSettings::reset() {
|
||||||
#if AXIS_HAS_STEALTHCHOP(E5)
|
#if AXIS_HAS_STEALTHCHOP(E5)
|
||||||
if (stepperE5.get_stealthChop_status()) { say_M569(forReplay, PSTR("T5 E"), true); }
|
if (stepperE5.get_stealthChop_status()) { say_M569(forReplay, PSTR("T5 E"), true); }
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_HAS_STEALTHCHOP(E6)
|
||||||
|
if (stepperE6.get_stealthChop_status()) { say_M569(forReplay, PSTR("T6 E"), true); }
|
||||||
|
#endif
|
||||||
|
#if AXIS_HAS_STEALTHCHOP(E7)
|
||||||
|
if (stepperE7.get_stealthChop_status()) { say_M569(forReplay, PSTR("T7 E"), true); }
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif // HAS_STEALTHCHOP
|
#endif // HAS_STEALTHCHOP
|
||||||
|
|
||||||
|
|
|
@ -73,6 +73,12 @@
|
||||||
#if AXIS_IS_L64XX(E5)
|
#if AXIS_IS_L64XX(E5)
|
||||||
L64XX_CLASS(E5) stepperE5(L6470_CHAIN_SS_PIN);
|
L64XX_CLASS(E5) stepperE5(L6470_CHAIN_SS_PIN);
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_IS_L64XX(E6)
|
||||||
|
L64XX_CLASS(E6) stepperE6(L6470_CHAIN_SS_PIN);
|
||||||
|
#endif
|
||||||
|
#if AXIS_IS_L64XX(E7)
|
||||||
|
L64XX_CLASS(E7) stepperE7(L6470_CHAIN_SS_PIN);
|
||||||
|
#endif
|
||||||
|
|
||||||
// Not using L64XX class init method because it
|
// Not using L64XX class init method because it
|
||||||
// briefly sends power to the steppers
|
// briefly sends power to the steppers
|
||||||
|
@ -208,6 +214,12 @@ void L64XX_Marlin::init_to_defaults() {
|
||||||
#if AXIS_IS_L64XX(E5)
|
#if AXIS_IS_L64XX(E5)
|
||||||
L6470_INIT_CHIP(E5);
|
L6470_INIT_CHIP(E5);
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_IS_L64XX(E6)
|
||||||
|
L6470_INIT_CHIP(E6);
|
||||||
|
#endif
|
||||||
|
#if AXIS_IS_L64XX(E7)
|
||||||
|
L6470_INIT_CHIP(E7);
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // HAS_L64XX
|
#endif // HAS_L64XX
|
||||||
|
|
|
@ -109,6 +109,12 @@ enum StealthIndex : uint8_t { STEALTH_AXIS_XY, STEALTH_AXIS_Z, STEALTH_AXIS_E };
|
||||||
#if AXIS_HAS_SPI(E5)
|
#if AXIS_HAS_SPI(E5)
|
||||||
TMC_SPI_DEFINE_E(5);
|
TMC_SPI_DEFINE_E(5);
|
||||||
#endif
|
#endif
|
||||||
|
#if AXIS_HAS_SPI(E6)
|
||||||
|
TMC_SPI_DEFINE_E(6);
|
||||||
|
#endif
|
||||||
|
#if AXIS_HAS_SPI(E7)
|
||||||
|
TMC_SPI_DEFINE_E(7);
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifndef TMC_BAUD_RATE
|
#ifndef TMC_BAUD_RATE
|
||||||
#define TMC_BAUD_RATE 115200
|
#define TMC_BAUD_RATE 115200
|
||||||
|
|
Reference in a new issue