Merge pull request #6348 from thinkyhead/rc_tmc2130_clean_clean
TMC2130 update. Fixes, tune-ups, new features
This commit is contained in:
commit
8cccf69ef7
|
@ -409,7 +409,7 @@ script:
|
||||||
- restore_configs
|
- restore_configs
|
||||||
- opt_enable_adv HAVE_TMC2130 X_IS_TMC2130 Y_IS_TMC2130 Z_IS_TMC2130
|
- opt_enable_adv HAVE_TMC2130 X_IS_TMC2130 Y_IS_TMC2130 Z_IS_TMC2130
|
||||||
- build_marlin
|
- build_marlin
|
||||||
- opt_enable_adv AUTOMATIC_CURRENT_CONTROL STEALTHCHOP
|
- opt_enable_adv AUTOMATIC_CURRENT_CONTROL STEALTHCHOP HYBRID_THRESHOLD SENSORLESS_HOMING
|
||||||
- build_marlin
|
- build_marlin
|
||||||
#
|
#
|
||||||
# tvrrug Config need to check board type for sanguino atmega644p
|
# tvrrug Config need to check board type for sanguino atmega644p
|
||||||
|
|
|
@ -882,18 +882,6 @@
|
||||||
//#define HAVE_TMC2130
|
//#define HAVE_TMC2130
|
||||||
|
|
||||||
#if ENABLED(HAVE_TMC2130)
|
#if ENABLED(HAVE_TMC2130)
|
||||||
#define STEALTHCHOP
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Let Marlin automatically control stepper current.
|
|
||||||
* This is still an experimental feature.
|
|
||||||
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
|
||||||
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
|
||||||
* Adjusting starts from X/Y/Z/E_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX
|
|
||||||
*/
|
|
||||||
//#define AUTOMATIC_CURRENT_CONTROL
|
|
||||||
#define CURRENT_STEP 50 // [mA]
|
|
||||||
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
|
||||||
|
|
||||||
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
||||||
//#define X_IS_TMC2130
|
//#define X_IS_TMC2130
|
||||||
|
@ -916,45 +904,104 @@
|
||||||
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
||||||
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
||||||
|
|
||||||
#define X_MAX_CURRENT 1000 // rms current in mA
|
#define X_CURRENT 1000 // rms current in mA. Multiply by 1.41 for peak current.
|
||||||
#define X_MICROSTEPS 16 // FULLSTEP..256
|
#define X_MICROSTEPS 16 // 0..256
|
||||||
#define X_CHIP_SELECT 40 // Pin
|
|
||||||
|
|
||||||
#define Y_MAX_CURRENT 1000
|
#define Y_CURRENT 1000
|
||||||
#define Y_MICROSTEPS 16
|
#define Y_MICROSTEPS 16
|
||||||
#define Y_CHIP_SELECT 42
|
|
||||||
|
|
||||||
#define Z_MAX_CURRENT 1000
|
#define Z_CURRENT 1000
|
||||||
#define Z_MICROSTEPS 16
|
#define Z_MICROSTEPS 16
|
||||||
#define Z_CHIP_SELECT 65
|
|
||||||
|
|
||||||
//#define X2_MAX_CURRENT 1000
|
//#define X2_CURRENT 1000
|
||||||
//#define X2_MICROSTEPS 16
|
//#define X2_MICROSTEPS 16
|
||||||
//#define X2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Y2_MAX_CURRENT 1000
|
//#define Y2_CURRENT 1000
|
||||||
//#define Y2_MICROSTEPS 16
|
//#define Y2_MICROSTEPS 16
|
||||||
//#define Y2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Z2_MAX_CURRENT 1000
|
//#define Z2_CURRENT 1000
|
||||||
//#define Z2_MICROSTEPS 16
|
//#define Z2_MICROSTEPS 16
|
||||||
//#define Z2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E0_MAX_CURRENT 1000
|
//#define E0_CURRENT 1000
|
||||||
//#define E0_MICROSTEPS 16
|
//#define E0_MICROSTEPS 16
|
||||||
//#define E0_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E1_MAX_CURRENT 1000
|
//#define E1_CURRENT 1000
|
||||||
//#define E1_MICROSTEPS 16
|
//#define E1_MICROSTEPS 16
|
||||||
//#define E1_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E2_MAX_CURRENT 1000
|
//#define E2_CURRENT 1000
|
||||||
//#define E2_MICROSTEPS 16
|
//#define E2_MICROSTEPS 16
|
||||||
//#define E2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E3_MAX_CURRENT 1000
|
//#define E3_CURRENT 1000
|
||||||
//#define E3_MICROSTEPS 16
|
//#define E3_MICROSTEPS 16
|
||||||
//#define E3_CHIP_SELECT -1
|
|
||||||
|
//#define E4_CURRENT 1000
|
||||||
|
//#define E4_MICROSTEPS 16
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use Trinamic's ultra quiet stepping mode.
|
||||||
|
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||||
|
*/
|
||||||
|
#define STEALTHCHOP
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Let Marlin automatically control stepper current.
|
||||||
|
* This is still an experimental feature.
|
||||||
|
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
||||||
|
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
||||||
|
* Adjusting starts from X/Y/Z/E_CURRENT but will not increase over AUTO_ADJUST_MAX
|
||||||
|
* Relevant g-codes:
|
||||||
|
* M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given.
|
||||||
|
* M906 S1 - Start adjusting current
|
||||||
|
* M906 S0 - Stop adjusting current
|
||||||
|
* M911 - Report stepper driver overtemperature pre-warn condition.
|
||||||
|
* M912 - Clear stepper driver overtemperature pre-warn condition flag.
|
||||||
|
*/
|
||||||
|
//#define AUTOMATIC_CURRENT_CONTROL
|
||||||
|
|
||||||
|
#if ENABLED(AUTOMATIC_CURRENT_CONTROL)
|
||||||
|
#define CURRENT_STEP 50 // [mA]
|
||||||
|
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
||||||
|
#define REPORT_CURRENT_CHANGE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||||
|
* This mode allows for faster movements at the expense of higher noise levels.
|
||||||
|
* STEALTHCHOP needs to be enabled.
|
||||||
|
* M913 X/Y/Z/E to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define HYBRID_THRESHOLD
|
||||||
|
|
||||||
|
#define X_HYBRID_THRESHOLD 100 // [mm/s]
|
||||||
|
#define X2_HYBRID_THRESHOLD 100
|
||||||
|
#define Y_HYBRID_THRESHOLD 100
|
||||||
|
#define Y2_HYBRID_THRESHOLD 100
|
||||||
|
#define Z_HYBRID_THRESHOLD 4
|
||||||
|
#define Z2_HYBRID_THRESHOLD 4
|
||||||
|
#define E0_HYBRID_THRESHOLD 30
|
||||||
|
#define E1_HYBRID_THRESHOLD 30
|
||||||
|
#define E2_HYBRID_THRESHOLD 30
|
||||||
|
#define E3_HYBRID_THRESHOLD 30
|
||||||
|
#define E4_HYBRID_THRESHOLD 30
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use stallGuard2 to sense an obstacle and trigger an endstop.
|
||||||
|
* You need to place a wire from the driver's DIAG1 pin to the X/Y endstop pin.
|
||||||
|
* If used along with STEALTHCHOP, the movement will be louder when homing. This is normal.
|
||||||
|
*
|
||||||
|
* X/Y_HOMING_SENSITIVITY is used for tuning the trigger sensitivity.
|
||||||
|
* Higher values make the system LESS sensitive.
|
||||||
|
* Lower value make the system MORE sensitive.
|
||||||
|
* Too low values can lead to false positives, while too high values will collide the axis without triggering.
|
||||||
|
* It is advised to set X/Y_HOME_BUMP_MM to 0.
|
||||||
|
* M914 X/Y to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define SENSORLESS_HOMING
|
||||||
|
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
|
#define X_HOMING_SENSITIVITY 19
|
||||||
|
#define Y_HOMING_SENSITIVITY 19
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* You can set your own advanced settings by filling in predefined functions.
|
* You can set your own advanced settings by filling in predefined functions.
|
||||||
|
|
|
@ -198,6 +198,8 @@
|
||||||
* M910 - Commit digipot/DAC value to external EEPROM via I2C. (Requires DAC_STEPPER_CURRENT)
|
* M910 - Commit digipot/DAC value to external EEPROM via I2C. (Requires DAC_STEPPER_CURRENT)
|
||||||
* M911 - Report stepper driver overtemperature pre-warn condition. (Requires HAVE_TMC2130)
|
* M911 - Report stepper driver overtemperature pre-warn condition. (Requires HAVE_TMC2130)
|
||||||
* M912 - Clear stepper driver overtemperature pre-warn condition flag. (Requires HAVE_TMC2130)
|
* M912 - Clear stepper driver overtemperature pre-warn condition flag. (Requires HAVE_TMC2130)
|
||||||
|
* M913 - Set HYBRID_THRESHOLD speed. (Requires HYBRID_THRESHOLD)
|
||||||
|
* M914 - Set SENSORLESS_HOMING sensitivity. (Requires SENSORLESS_HOMING)
|
||||||
* M350 - Set microstepping mode. (Requires digital microstepping pins.)
|
* M350 - Set microstepping mode. (Requires digital microstepping pins.)
|
||||||
* M351 - Toggle MS1 MS2 pins directly. (Requires digital microstepping pins.)
|
* M351 - Toggle MS1 MS2 pins directly. (Requires digital microstepping pins.)
|
||||||
*
|
*
|
||||||
|
@ -647,6 +649,10 @@ static bool send_ok[BUFSIZE];
|
||||||
bool chdkActive = false;
|
bool chdkActive = false;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifdef AUTOMATIC_CURRENT_CONTROL
|
||||||
|
bool auto_current_control = 0;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if ENABLED(PID_EXTRUSION_SCALING)
|
#if ENABLED(PID_EXTRUSION_SCALING)
|
||||||
int lpq_len = 20;
|
int lpq_len = 20;
|
||||||
#endif
|
#endif
|
||||||
|
@ -2756,6 +2762,28 @@ static void do_homing_move(const AxisEnum axis, float distance, float fr_mm_s=0.
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* TMC2130 specific sensorless homing using stallGuard2.
|
||||||
|
* stallGuard2 only works when in spreadCycle mode.
|
||||||
|
* spreadCycle and stealthChop are mutually exclusive.
|
||||||
|
*/
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
|
void tmc2130_sensorless_homing(TMC2130Stepper &st, bool enable=true) {
|
||||||
|
#if ENABLED(STEALTHCHOP)
|
||||||
|
if (enable) {
|
||||||
|
st.coolstep_min_speed(1024UL * 1024UL - 1UL);
|
||||||
|
st.stealthChop(0);
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
st.coolstep_min_speed(0);
|
||||||
|
st.stealthChop(1);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
|
st.diag1_stall(enable ? 1 : 0);
|
||||||
|
}
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Home an individual "raw axis" to its endstop.
|
* Home an individual "raw axis" to its endstop.
|
||||||
* This applies to XYZ on Cartesian and Core robots, and
|
* This applies to XYZ on Cartesian and Core robots, and
|
||||||
|
@ -2804,6 +2832,16 @@ static void homeaxis(const AxisEnum axis) {
|
||||||
if (axis == Z_AXIS) stepper.set_homing_flag(true);
|
if (axis == Z_AXIS) stepper.set_homing_flag(true);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Disable stealthChop if used. Enable diag1 pin on driver.
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
|
#if ENABLED(X_IS_TMC2130)
|
||||||
|
if (axis == X_AXIS) tmc2130_sensorless_homing(stepperX);
|
||||||
|
#endif
|
||||||
|
#if ENABLED(Y_IS_TMC2130)
|
||||||
|
if (axis == Y_AXIS) tmc2130_sensorless_homing(stepperY);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
// Fast move towards endstop until triggered
|
// Fast move towards endstop until triggered
|
||||||
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
#if ENABLED(DEBUG_LEVELING_FEATURE)
|
||||||
if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("Home 1 Fast:");
|
if (DEBUGGING(LEVELING)) SERIAL_ECHOLNPGM("Home 1 Fast:");
|
||||||
|
@ -2888,6 +2926,16 @@ static void homeaxis(const AxisEnum axis) {
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Re-enable stealthChop if used. Disable diag1 pin on driver.
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
|
#if ENABLED(X_IS_TMC2130)
|
||||||
|
if (axis == X_AXIS) tmc2130_sensorless_homing(stepperX, false);
|
||||||
|
#endif
|
||||||
|
#if ENABLED(Y_IS_TMC2130)
|
||||||
|
if (axis == Y_AXIS) tmc2130_sensorless_homing(stepperY, false);
|
||||||
|
#endif
|
||||||
|
#endif
|
||||||
|
|
||||||
// Put away the Z probe
|
// Put away the Z probe
|
||||||
#if HOMING_Z_WITH_PROBE
|
#if HOMING_Z_WITH_PROBE
|
||||||
if (axis == Z_AXIS && STOW_PROBE()) return;
|
if (axis == Z_AXIS && STOW_PROBE()) return;
|
||||||
|
@ -6902,6 +6950,11 @@ inline void gcode_M140() {
|
||||||
OUT_WRITE(SUICIDE_PIN, HIGH);
|
OUT_WRITE(SUICIDE_PIN, HIGH);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if ENABLED(HAVE_TMC2130)
|
||||||
|
delay(100);
|
||||||
|
tmc2130_init(); // Settings only stick when the driver has power
|
||||||
|
#endif
|
||||||
|
|
||||||
#if ENABLED(ULTIPANEL)
|
#if ENABLED(ULTIPANEL)
|
||||||
powersupply = true;
|
powersupply = true;
|
||||||
LCD_MESSAGEPGM(WELCOME_MSG);
|
LCD_MESSAGEPGM(WELCOME_MSG);
|
||||||
|
@ -8770,22 +8823,21 @@ inline void gcode_M503() {
|
||||||
|
|
||||||
#if ENABLED(HAVE_TMC2130)
|
#if ENABLED(HAVE_TMC2130)
|
||||||
|
|
||||||
static void tmc2130_print_current(const int mA, const char name) {
|
static void tmc2130_get_current(TMC2130Stepper &st, const char name) {
|
||||||
SERIAL_CHAR(name);
|
SERIAL_CHAR(name);
|
||||||
SERIAL_ECHOPGM(" axis driver current: ");
|
SERIAL_ECHOPGM(" axis driver current: ");
|
||||||
SERIAL_ECHOLN(mA);
|
SERIAL_ECHOLN(st.getCurrent());
|
||||||
}
|
}
|
||||||
static void tmc2130_set_current(const int mA, TMC2130Stepper &st, const char name) {
|
static void tmc2130_set_current(TMC2130Stepper &st, const char name, const int mA) {
|
||||||
tmc2130_print_current(mA, name);
|
st.setCurrent(mA, R_SENSE, HOLD_MULTIPLIER);
|
||||||
st.setCurrent(mA, 0.11, 0.5);
|
tmc2130_get_current(st, name);
|
||||||
}
|
|
||||||
static void tmc2130_get_current(TMC2130Stepper &st, const char name) {
|
|
||||||
tmc2130_print_current(st.getCurrent(), name);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static void tmc2130_report_otpw(TMC2130Stepper &st, const char name) {
|
static void tmc2130_report_otpw(TMC2130Stepper &st, const char name) {
|
||||||
SERIAL_CHAR(name);
|
SERIAL_CHAR(name);
|
||||||
SERIAL_ECHOPGM(" axis temperature prewarn triggered: ");
|
SERIAL_ECHOPGM(" axis temperature prewarn triggered: ");
|
||||||
serialprintPGM(st.getOTPW() ? PSTR("true") : PSTR("false"));
|
serialprintPGM(st.getOTPW() ? PSTR("true") : PSTR("false"));
|
||||||
|
SERIAL_EOL;
|
||||||
}
|
}
|
||||||
static void tmc2130_clear_otpw(TMC2130Stepper &st, const char name) {
|
static void tmc2130_clear_otpw(TMC2130Stepper &st, const char name) {
|
||||||
st.clear_otpw();
|
st.clear_otpw();
|
||||||
|
@ -8793,10 +8845,32 @@ inline void gcode_M503() {
|
||||||
SERIAL_ECHOLNPGM(" prewarn flag cleared");
|
SERIAL_ECHOLNPGM(" prewarn flag cleared");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void tmc2130_get_pwmthrs(TMC2130Stepper &st, const char name, const uint16_t spmm) {
|
||||||
|
SERIAL_CHAR(name);
|
||||||
|
SERIAL_ECHOPGM(" stealthChop max speed set to ");
|
||||||
|
SERIAL_ECHOLN(12650000UL * st.microsteps() / (256 * st.stealth_max_speed() * spmm));
|
||||||
|
}
|
||||||
|
static void tmc2130_set_pwmthrs(TMC2130Stepper &st, const char name, const int32_t thrs, const uint32_t spmm) {
|
||||||
|
st.stealth_max_speed(12650000UL * st.microsteps() / (256 * thrs * spmm));
|
||||||
|
tmc2130_get_pwmthrs(st, name, spmm);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void tmc2130_get_sgt(TMC2130Stepper &st, const char name) {
|
||||||
|
SERIAL_CHAR(name);
|
||||||
|
SERIAL_ECHOPGM(" driver homing sensitivity set to ");
|
||||||
|
SERIAL_ECHOLN(st.sgt());
|
||||||
|
}
|
||||||
|
static void tmc2130_set_sgt(TMC2130Stepper &st, const char name, const int8_t sgt_val) {
|
||||||
|
st.sgt(sgt_val);
|
||||||
|
tmc2130_get_sgt(st, name);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* M906: Set motor current in milliamps using axis codes X, Y, Z, E
|
* M906: Set motor current in milliamps using axis codes X, Y, Z, E
|
||||||
*
|
|
||||||
* Report driver currents when no axis specified
|
* Report driver currents when no axis specified
|
||||||
|
*
|
||||||
|
* S1: Enable automatic current control
|
||||||
|
* S0: Disable
|
||||||
*/
|
*/
|
||||||
inline void gcode_M906() {
|
inline void gcode_M906() {
|
||||||
uint16_t values[XYZE];
|
uint16_t values[XYZE];
|
||||||
|
@ -8804,21 +8878,25 @@ inline void gcode_M503() {
|
||||||
values[i] = code_seen(axis_codes[i]) ? code_value_int() : 0;
|
values[i] = code_seen(axis_codes[i]) ? code_value_int() : 0;
|
||||||
|
|
||||||
#if ENABLED(X_IS_TMC2130)
|
#if ENABLED(X_IS_TMC2130)
|
||||||
if (values[X_AXIS]) tmc2130_set_current(values[X_AXIS], stepperX, 'X');
|
if (values[X_AXIS]) tmc2130_set_current(stepperX, 'X', values[X_AXIS]);
|
||||||
else tmc2130_get_current(stepperX, 'X');
|
else tmc2130_get_current(stepperX, 'X');
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(Y_IS_TMC2130)
|
#if ENABLED(Y_IS_TMC2130)
|
||||||
if (values[Y_AXIS]) tmc2130_set_current(values[Y_AXIS], stepperY, 'Y');
|
if (values[Y_AXIS]) tmc2130_set_current(stepperY, 'Y', values[Y_AXIS]);
|
||||||
else tmc2130_get_current(stepperY, 'Y');
|
else tmc2130_get_current(stepperY, 'Y');
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(Z_IS_TMC2130)
|
#if ENABLED(Z_IS_TMC2130)
|
||||||
if (values[Z_AXIS]) tmc2130_set_current(values[Z_AXIS], stepperZ, 'Z');
|
if (values[Z_AXIS]) tmc2130_set_current(stepperZ, 'Z', values[Z_AXIS]);
|
||||||
else tmc2130_get_current(stepperZ, 'Z');
|
else tmc2130_get_current(stepperZ, 'Z');
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(E0_IS_TMC2130)
|
#if ENABLED(E0_IS_TMC2130)
|
||||||
if (values[E_AXIS]) tmc2130_set_current(values[E_AXIS], stepperE0, 'E');
|
if (values[E_AXIS]) tmc2130_set_current(stepperE0, 'E', values[E_AXIS]);
|
||||||
else tmc2130_get_current(stepperE0, 'E');
|
else tmc2130_get_current(stepperE0, 'E');
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if ENABLED(AUTOMATIC_CURRENT_CONTROL)
|
||||||
|
if (code_seen('S')) auto_current_control = code_value_bool();
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -8826,17 +8904,19 @@ inline void gcode_M503() {
|
||||||
* The flag is held by the library and persist until manually cleared by M912
|
* The flag is held by the library and persist until manually cleared by M912
|
||||||
*/
|
*/
|
||||||
inline void gcode_M911() {
|
inline void gcode_M911() {
|
||||||
|
const bool reportX = code_seen('X'), reportY = code_seen('Y'), reportZ = code_seen('Z'), reportE = code_seen('E'),
|
||||||
|
reportAll = (!reportX && !reportY && !reportZ && !reportE) || (reportX && reportY && reportZ && reportE);
|
||||||
#if ENABLED(X_IS_TMC2130)
|
#if ENABLED(X_IS_TMC2130)
|
||||||
tmc2130_report_otpw(stepperX, 'X');
|
if (reportX || reportAll) tmc2130_report_otpw(stepperX, 'X');
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(Y_IS_TMC2130)
|
#if ENABLED(Y_IS_TMC2130)
|
||||||
tmc2130_report_otpw(stepperY, 'Y');
|
if (reportY || reportAll) tmc2130_report_otpw(stepperY, 'Y');
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(Z_IS_TMC2130)
|
#if ENABLED(Z_IS_TMC2130)
|
||||||
tmc2130_report_otpw(stepperZ, 'Z');
|
if (reportZ || reportAll) tmc2130_report_otpw(stepperZ, 'Z');
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(E0_IS_TMC2130)
|
#if ENABLED(E0_IS_TMC2130)
|
||||||
tmc2130_report_otpw(stepperE0, 'E');
|
if (reportE || reportAll) tmc2130_report_otpw(stepperE0, 'E');
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -8844,20 +8924,66 @@ inline void gcode_M503() {
|
||||||
* M912: Clear TMC2130 stepper driver overtemperature pre-warn flag held by the library
|
* M912: Clear TMC2130 stepper driver overtemperature pre-warn flag held by the library
|
||||||
*/
|
*/
|
||||||
inline void gcode_M912() {
|
inline void gcode_M912() {
|
||||||
|
const bool clearX = code_seen('X'), clearY = code_seen('Y'), clearZ = code_seen('Z'), clearE = code_seen('E'),
|
||||||
|
clearAll = (!clearX && !clearY && !clearZ && !clearE) || (clearX && clearY && clearZ && clearE);
|
||||||
#if ENABLED(X_IS_TMC2130)
|
#if ENABLED(X_IS_TMC2130)
|
||||||
if (code_seen('X')) tmc2130_clear_otpw(stepperX, 'X');
|
if (clearX || clearAll) tmc2130_clear_otpw(stepperX, 'X');
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(Y_IS_TMC2130)
|
#if ENABLED(Y_IS_TMC2130)
|
||||||
if (code_seen('Y')) tmc2130_clear_otpw(stepperY, 'Y');
|
if (clearY || clearAll) tmc2130_clear_otpw(stepperY, 'Y');
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(Z_IS_TMC2130)
|
#if ENABLED(Z_IS_TMC2130)
|
||||||
if (code_seen('Z')) tmc2130_clear_otpw(stepperZ, 'Z');
|
if (clearZ || clearAll) tmc2130_clear_otpw(stepperZ, 'Z');
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(E0_IS_TMC2130)
|
#if ENABLED(E0_IS_TMC2130)
|
||||||
if (code_seen('E')) tmc2130_clear_otpw(stepperE0, 'E');
|
if (clearE || clearAll) tmc2130_clear_otpw(stepperE0, 'E');
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* M913: Set HYBRID_THRESHOLD speed.
|
||||||
|
*/
|
||||||
|
#if ENABLED(HYBRID_THRESHOLD)
|
||||||
|
inline void gcode_M913() {
|
||||||
|
uint16_t values[XYZE];
|
||||||
|
LOOP_XYZE(i)
|
||||||
|
values[i] = code_seen(axis_codes[i]) ? code_value_int() : 0;
|
||||||
|
|
||||||
|
#if ENABLED(X_IS_TMC2130)
|
||||||
|
if (values[X_AXIS]) tmc2130_set_pwmthrs(stepperX, 'X', values[X_AXIS], planner.axis_steps_per_mm[X_AXIS]);
|
||||||
|
else tmc2130_get_pwmthrs(stepperX, 'X', planner.axis_steps_per_mm[X_AXIS]);
|
||||||
|
#endif
|
||||||
|
#if ENABLED(Y_IS_TMC2130)
|
||||||
|
if (values[Y_AXIS]) tmc2130_set_pwmthrs(stepperY, 'Y', values[Y_AXIS], planner.axis_steps_per_mm[Y_AXIS]);
|
||||||
|
else tmc2130_get_pwmthrs(stepperY, 'Y', planner.axis_steps_per_mm[Y_AXIS]);
|
||||||
|
#endif
|
||||||
|
#if ENABLED(Z_IS_TMC2130)
|
||||||
|
if (values[Z_AXIS]) tmc2130_set_pwmthrs(stepperZ, 'Z', values[Z_AXIS], planner.axis_steps_per_mm[Z_AXIS]);
|
||||||
|
else tmc2130_get_pwmthrs(stepperZ, 'Z', planner.axis_steps_per_mm[Z_AXIS]);
|
||||||
|
#endif
|
||||||
|
#if ENABLED(E0_IS_TMC2130)
|
||||||
|
if (values[E_AXIS]) tmc2130_set_pwmthrs(stepperE0, 'E', values[E_AXIS], planner.axis_steps_per_mm[E_AXIS]);
|
||||||
|
else tmc2130_get_pwmthrs(stepperE0, 'E', planner.axis_steps_per_mm[E_AXIS]);
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif // HYBRID_THRESHOLD
|
||||||
|
|
||||||
|
/**
|
||||||
|
* M914: Set SENSORLESS_HOMING sensitivity.
|
||||||
|
*/
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
|
inline void gcode_M914() {
|
||||||
|
#if ENABLED(X_IS_TMC2130)
|
||||||
|
if (code_seen(axis_codes[X_AXIS])) tmc2130_set_sgt(stepperX, 'X', code_value_int());
|
||||||
|
else tmc2130_get_sgt(stepperX, 'X');
|
||||||
|
#endif
|
||||||
|
#if ENABLED(Y_IS_TMC2130)
|
||||||
|
if (code_seen(axis_codes[Y_AXIS])) tmc2130_set_sgt(stepperY, 'Y', code_value_int());
|
||||||
|
else tmc2130_get_sgt(stepperY, 'Y');
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
#endif // SENSORLESS_HOMING
|
||||||
|
|
||||||
#endif // HAVE_TMC2130
|
#endif // HAVE_TMC2130
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -8865,10 +8991,9 @@ inline void gcode_M503() {
|
||||||
*/
|
*/
|
||||||
inline void gcode_M907() {
|
inline void gcode_M907() {
|
||||||
#if HAS_DIGIPOTSS
|
#if HAS_DIGIPOTSS
|
||||||
LOOP_XYZE(i)
|
LOOP_XYZE(i) if (code_seen(axis_codes[i])) stepper.digipot_current(i, code_value_int());
|
||||||
if (code_seen(axis_codes[i])) stepper.digipot_current(i, code_value_int());
|
|
||||||
if (code_seen('B')) stepper.digipot_current(4, code_value_int());
|
if (code_seen('B')) stepper.digipot_current(4, code_value_int());
|
||||||
if (code_seen('S')) for (int i = 0; i <= 4; i++) stepper.digipot_current(i, code_value_int());
|
if (code_seen('S')) for (uint8_t i = 0; i <= 4; i++) stepper.digipot_current(i, code_value_int());
|
||||||
#elif HAS_MOTOR_CURRENT_PWM
|
#elif HAS_MOTOR_CURRENT_PWM
|
||||||
#if PIN_EXISTS(MOTOR_CURRENT_PWM_XY)
|
#if PIN_EXISTS(MOTOR_CURRENT_PWM_XY)
|
||||||
if (code_seen('X')) stepper.digipot_current(0, code_value_int());
|
if (code_seen('X')) stepper.digipot_current(0, code_value_int());
|
||||||
|
@ -8884,11 +9009,11 @@ inline void gcode_M907() {
|
||||||
// this one uses actual amps in floating point
|
// this one uses actual amps in floating point
|
||||||
LOOP_XYZE(i) if (code_seen(axis_codes[i])) digipot_i2c_set_current(i, code_value_float());
|
LOOP_XYZE(i) if (code_seen(axis_codes[i])) digipot_i2c_set_current(i, code_value_float());
|
||||||
// for each additional extruder (named B,C,D,E..., channels 4,5,6,7...)
|
// for each additional extruder (named B,C,D,E..., channels 4,5,6,7...)
|
||||||
for (int i = NUM_AXIS; i < DIGIPOT_I2C_NUM_CHANNELS; i++) if (code_seen('B' + i - (NUM_AXIS))) digipot_i2c_set_current(i, code_value_float());
|
for (uint8_t i = NUM_AXIS; i < DIGIPOT_I2C_NUM_CHANNELS; i++) if (code_seen('B' + i - (NUM_AXIS))) digipot_i2c_set_current(i, code_value_float());
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(DAC_STEPPER_CURRENT)
|
#if ENABLED(DAC_STEPPER_CURRENT)
|
||||||
if (code_seen('S')) {
|
if (code_seen('S')) {
|
||||||
float dac_percent = code_value_float();
|
const float dac_percent = code_value_float();
|
||||||
for (uint8_t i = 0; i <= 4; i++) dac_current_percent(i, dac_percent);
|
for (uint8_t i = 0; i <= 4; i++) dac_current_percent(i, dac_percent);
|
||||||
}
|
}
|
||||||
LOOP_XYZE(i) if (code_seen(axis_codes[i])) dac_current_percent(i, code_value_float());
|
LOOP_XYZE(i) if (code_seen(axis_codes[i])) dac_current_percent(i, code_value_float());
|
||||||
|
@ -10165,6 +10290,18 @@ void process_next_command() {
|
||||||
case 912: // M911: Clear TMC2130 prewarn triggered flags
|
case 912: // M911: Clear TMC2130 prewarn triggered flags
|
||||||
gcode_M912();
|
gcode_M912();
|
||||||
break;
|
break;
|
||||||
|
|
||||||
|
#if ENABLED(HYBRID_THRESHOLD)
|
||||||
|
case 913: // M913: Set HYBRID_THRESHOLD speed.
|
||||||
|
gcode_M913();
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
|
case 914: // M914: Set SENSORLESS_HOMING sensitivity.
|
||||||
|
gcode_M914();
|
||||||
|
break;
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAS_MICROSTEPS
|
#if HAS_MICROSTEPS
|
||||||
|
@ -11390,23 +11527,58 @@ void disable_all_steppers() {
|
||||||
disable_e_steppers();
|
disable_e_steppers();
|
||||||
}
|
}
|
||||||
|
|
||||||
#if ENABLED(AUTOMATIC_CURRENT_CONTROL)
|
#if ENABLED(HAVE_TMC2130)
|
||||||
|
|
||||||
void automatic_current_control(const TMC2130Stepper &st) {
|
void automatic_current_control(TMC2130Stepper &st, String axisID) {
|
||||||
#if CURRENT_STEP > 0
|
// Check otpw even if we don't use automatic control. Allows for flag inspection.
|
||||||
const bool is_otpw = st.checkOT(), // Check otpw even if we don't adjust. Allows for flag inspection.
|
const bool is_otpw = st.checkOT();
|
||||||
is_otpw_triggered = st.getOTPW();
|
|
||||||
|
|
||||||
if (!is_otpw && !is_otpw_triggered) {
|
// Report if a warning was triggered
|
||||||
// OTPW bit not triggered yet -> Increase current
|
static bool previous_otpw = false;
|
||||||
const uint16_t current = st.getCurrent() + CURRENT_STEP;
|
if (is_otpw && !previous_otpw) {
|
||||||
if (current <= AUTO_ADJUST_MAX) st.SilentStepStick2130(current);
|
char timestamp[10];
|
||||||
|
duration_t elapsed = print_job_timer.duration();
|
||||||
|
const bool has_days = (elapsed.value > 60*60*24L);
|
||||||
|
(void)elapsed.toDigital(timestamp, has_days);
|
||||||
|
SERIAL_ECHO(timestamp);
|
||||||
|
SERIAL_ECHO(": ");
|
||||||
|
SERIAL_ECHO(axisID);
|
||||||
|
SERIAL_ECHOLNPGM(" driver overtemperature warning!");
|
||||||
}
|
}
|
||||||
else if (is_otpw && is_otpw_triggered) {
|
previous_otpw = is_otpw;
|
||||||
// OTPW bit triggered, triggered flag raised -> Decrease current
|
|
||||||
st.SilentStepStick2130((float)st.getCurrent() - CURRENT_STEP);
|
#if CURRENT_STEP > 0 && ENABLED(AUTOMATIC_CURRENT_CONTROL)
|
||||||
|
// Return if user has not enabled current control start with M906 S1.
|
||||||
|
if (!auto_current_control) return;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Decrease current if is_otpw is true.
|
||||||
|
* Bail out if driver is disabled.
|
||||||
|
* Increase current if OTPW has not been triggered yet.
|
||||||
|
*/
|
||||||
|
uint16_t current = st.getCurrent();
|
||||||
|
if (is_otpw) {
|
||||||
|
st.setCurrent(current - CURRENT_STEP, R_SENSE, HOLD_MULTIPLIER);
|
||||||
|
#if ENABLED(REPORT_CURRENT_CHANGE)
|
||||||
|
SERIAL_ECHO(axisID);
|
||||||
|
SERIAL_ECHOPAIR(" current decreased to ", st.getCurrent());
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
// OTPW bit cleared (we've cooled down), triggered flag still raised until manually cleared -> Do nothing, we're good
|
|
||||||
|
else if (!st.isEnabled())
|
||||||
|
return;
|
||||||
|
|
||||||
|
else if (!is_otpw && !st.getOTPW()) {
|
||||||
|
current += CURRENT_STEP;
|
||||||
|
if (current <= AUTO_ADJUST_MAX) {
|
||||||
|
st.setCurrent(current, R_SENSE, HOLD_MULTIPLIER);
|
||||||
|
#if ENABLED(REPORT_CURRENT_CHANGE)
|
||||||
|
SERIAL_ECHO(axisID);
|
||||||
|
SERIAL_ECHOPAIR(" current increased to ", st.getCurrent());
|
||||||
|
#endif
|
||||||
|
}
|
||||||
|
}
|
||||||
|
SERIAL_EOL;
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -11415,34 +11587,37 @@ void disable_all_steppers() {
|
||||||
if (ELAPSED(millis(), next_cOT)) {
|
if (ELAPSED(millis(), next_cOT)) {
|
||||||
next_cOT = millis() + 5000;
|
next_cOT = millis() + 5000;
|
||||||
#if ENABLED(X_IS_TMC2130)
|
#if ENABLED(X_IS_TMC2130)
|
||||||
automatic_current_control(stepperX);
|
automatic_current_control(stepperX, "X");
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(Y_IS_TMC2130)
|
#if ENABLED(Y_IS_TMC2130)
|
||||||
automatic_current_control(stepperY);
|
automatic_current_control(stepperY, "Y");
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(Z_IS_TMC2130)
|
#if ENABLED(Z_IS_TMC2130)
|
||||||
automatic_current_control(stepperZ);
|
automatic_current_control(stepperZ, "Z");
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(X2_IS_TMC2130)
|
#if ENABLED(X2_IS_TMC2130)
|
||||||
automatic_current_control(stepperX2);
|
automatic_current_control(stepperX2, "X2");
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(Y2_IS_TMC2130)
|
#if ENABLED(Y2_IS_TMC2130)
|
||||||
automatic_current_control(stepperY2);
|
automatic_current_control(stepperY2, "Y2");
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(Z2_IS_TMC2130)
|
#if ENABLED(Z2_IS_TMC2130)
|
||||||
automatic_current_control(stepperZ2);
|
automatic_current_control(stepperZ2, "Z2");
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(E0_IS_TMC2130)
|
#if ENABLED(E0_IS_TMC2130)
|
||||||
automatic_current_control(stepperE0);
|
automatic_current_control(stepperE0, "E0");
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(E1_IS_TMC2130)
|
#if ENABLED(E1_IS_TMC2130)
|
||||||
automatic_current_control(stepperE1);
|
automatic_current_control(stepperE1, "E1");
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(E2_IS_TMC2130)
|
#if ENABLED(E2_IS_TMC2130)
|
||||||
automatic_current_control(stepperE2);
|
automatic_current_control(stepperE2, "E2");
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(E3_IS_TMC2130)
|
#if ENABLED(E3_IS_TMC2130)
|
||||||
automatic_current_control(stepperE3);
|
automatic_current_control(stepperE3, "E3");
|
||||||
|
#endif
|
||||||
|
#if ENABLED(E4_IS_TMC2130)
|
||||||
|
automatic_current_control(stepperE4, "E4");
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(E4_IS_TMC2130)
|
#if ENABLED(E4_IS_TMC2130)
|
||||||
automatic_current_control(stepperE4);
|
automatic_current_control(stepperE4);
|
||||||
|
@ -11450,7 +11625,7 @@ void disable_all_steppers() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // AUTOMATIC_CURRENT_CONTROL
|
#endif // HAVE_TMC2130
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Manage several activities:
|
* Manage several activities:
|
||||||
|
@ -11648,7 +11823,7 @@ void manage_inactivity(bool ignore_stepper_queue/*=false*/) {
|
||||||
handle_status_leds();
|
handle_status_leds();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if ENABLED(AUTOMATIC_CURRENT_CONTROL)
|
#if ENABLED(HAVE_TMC2130)
|
||||||
checkOverTemp();
|
checkOverTemp();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -1091,6 +1091,24 @@ static_assert(1 >= 0
|
||||||
, "Please select no more than one LCD controller option."
|
, "Please select no more than one LCD controller option."
|
||||||
);
|
);
|
||||||
|
|
||||||
|
#if ENABLED(HAVE_TMC2130) && !( \
|
||||||
|
ENABLED( X_IS_TMC2130 ) \
|
||||||
|
|| ENABLED( X2_IS_TMC2130 ) \
|
||||||
|
|| ENABLED( Y_IS_TMC2130 ) \
|
||||||
|
|| ENABLED( Y2_IS_TMC2130 ) \
|
||||||
|
|| ENABLED( Z_IS_TMC2130 ) \
|
||||||
|
|| ENABLED( Z2_IS_TMC2130 ) \
|
||||||
|
|| ENABLED( E0_IS_TMC2130 ) \
|
||||||
|
|| ENABLED( E1_IS_TMC2130 ) \
|
||||||
|
|| ENABLED( E2_IS_TMC2130 ) \
|
||||||
|
|| ENABLED( E3_IS_TMC2130 ) )
|
||||||
|
#error "Choose at least one TMC2130 stepper."
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#if ENABLED(HYBRID_THRESHOLD) && DISABLED(STEALTHCHOP)
|
||||||
|
#error "Enable STEALTHCHOP to use HYBRID_THRESHOLD."
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Require 4 or more elements in per-axis initializers
|
* Require 4 or more elements in per-axis initializers
|
||||||
*/
|
*/
|
||||||
|
|
|
@ -1124,34 +1124,34 @@ void MarlinSettings::reset() {
|
||||||
|
|
||||||
#if ENABLED(HAVE_TMC2130)
|
#if ENABLED(HAVE_TMC2130)
|
||||||
#if ENABLED(X_IS_TMC2130)
|
#if ENABLED(X_IS_TMC2130)
|
||||||
stepperX.setCurrent(X_MAX_CURRENT, R_SENSE, HOLD_MULTIPLIER);
|
stepperX.setCurrent(X_CURRENT, R_SENSE, HOLD_MULTIPLIER);
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(Y_IS_TMC2130)
|
#if ENABLED(Y_IS_TMC2130)
|
||||||
stepperY.setCurrent(Y_MAX_CURRENT, R_SENSE, HOLD_MULTIPLIER);
|
stepperY.setCurrent(Y_CURRENT, R_SENSE, HOLD_MULTIPLIER);
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(Z_IS_TMC2130)
|
#if ENABLED(Z_IS_TMC2130)
|
||||||
stepperZ.setCurrent(Z_MAX_CURRENT, R_SENSE, HOLD_MULTIPLIER);
|
stepperZ.setCurrent(Z_CURRENT, R_SENSE, HOLD_MULTIPLIER);
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(X2_IS_TMC2130)
|
#if ENABLED(X2_IS_TMC2130)
|
||||||
stepperX2.setCurrent(X2_MAX_CURRENT, R_SENSE, HOLD_MULTIPLIER);
|
stepperX2.setCurrent(X2_CURRENT, R_SENSE, HOLD_MULTIPLIER);
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(Y2_IS_TMC2130)
|
#if ENABLED(Y2_IS_TMC2130)
|
||||||
stepperY2.setCurrent(Y2_MAX_CURRENT, R_SENSE, HOLD_MULTIPLIER);
|
stepperY2.setCurrent(Y2_CURRENT, R_SENSE, HOLD_MULTIPLIER);
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(Z2_IS_TMC2130)
|
#if ENABLED(Z2_IS_TMC2130)
|
||||||
stepperZ2.setCurrent(Z2_MAX_CURRENT, R_SENSE, HOLD_MULTIPLIER);
|
stepperZ2.setCurrent(Z2_CURRENT, R_SENSE, HOLD_MULTIPLIER);
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(E0_IS_TMC2130)
|
#if ENABLED(E0_IS_TMC2130)
|
||||||
stepperE0.setCurrent(E0_MAX_CURRENT, R_SENSE, HOLD_MULTIPLIER);
|
stepperE0.setCurrent(E0_CURRENT, R_SENSE, HOLD_MULTIPLIER);
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(E1_IS_TMC2130)
|
#if ENABLED(E1_IS_TMC2130)
|
||||||
stepperE1.setCurrent(E1_MAX_CURRENT, R_SENSE, HOLD_MULTIPLIER);
|
stepperE1.setCurrent(E1_CURRENT, R_SENSE, HOLD_MULTIPLIER);
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(E2_IS_TMC2130)
|
#if ENABLED(E2_IS_TMC2130)
|
||||||
stepperE2.setCurrent(E2_MAX_CURRENT, R_SENSE, HOLD_MULTIPLIER);
|
stepperE2.setCurrent(E2_CURRENT, R_SENSE, HOLD_MULTIPLIER);
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(E3_IS_TMC2130)
|
#if ENABLED(E3_IS_TMC2130)
|
||||||
stepperE3.setCurrent(E3_MAX_CURRENT, R_SENSE, HOLD_MULTIPLIER);
|
stepperE3.setCurrent(E3_CURRENT, R_SENSE, HOLD_MULTIPLIER);
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -879,18 +879,6 @@
|
||||||
//#define HAVE_TMC2130
|
//#define HAVE_TMC2130
|
||||||
|
|
||||||
#if ENABLED(HAVE_TMC2130)
|
#if ENABLED(HAVE_TMC2130)
|
||||||
#define STEALTHCHOP
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Let Marlin automatically control stepper current.
|
|
||||||
* This is still an experimental feature.
|
|
||||||
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
|
||||||
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
|
||||||
* Adjusting starts from X/Y/Z/E_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX
|
|
||||||
*/
|
|
||||||
//#define AUTOMATIC_CURRENT_CONTROL
|
|
||||||
#define CURRENT_STEP 50 // [mA]
|
|
||||||
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
|
||||||
|
|
||||||
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
||||||
//#define X_IS_TMC2130
|
//#define X_IS_TMC2130
|
||||||
|
@ -913,45 +901,104 @@
|
||||||
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
||||||
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
||||||
|
|
||||||
#define X_MAX_CURRENT 1000 // rms current in mA
|
#define X_CURRENT 1000 // rms current in mA. Multiply by 1.41 for peak current.
|
||||||
#define X_MICROSTEPS 16 // FULLSTEP..256
|
#define X_MICROSTEPS 16 // 0..256
|
||||||
#define X_CHIP_SELECT 40 // Pin
|
|
||||||
|
|
||||||
#define Y_MAX_CURRENT 1000
|
#define Y_CURRENT 1000
|
||||||
#define Y_MICROSTEPS 16
|
#define Y_MICROSTEPS 16
|
||||||
#define Y_CHIP_SELECT 42
|
|
||||||
|
|
||||||
#define Z_MAX_CURRENT 1000
|
#define Z_CURRENT 1000
|
||||||
#define Z_MICROSTEPS 16
|
#define Z_MICROSTEPS 16
|
||||||
#define Z_CHIP_SELECT 65
|
|
||||||
|
|
||||||
//#define X2_MAX_CURRENT 1000
|
//#define X2_CURRENT 1000
|
||||||
//#define X2_MICROSTEPS 16
|
//#define X2_MICROSTEPS 16
|
||||||
//#define X2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Y2_MAX_CURRENT 1000
|
//#define Y2_CURRENT 1000
|
||||||
//#define Y2_MICROSTEPS 16
|
//#define Y2_MICROSTEPS 16
|
||||||
//#define Y2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Z2_MAX_CURRENT 1000
|
//#define Z2_CURRENT 1000
|
||||||
//#define Z2_MICROSTEPS 16
|
//#define Z2_MICROSTEPS 16
|
||||||
//#define Z2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E0_MAX_CURRENT 1000
|
//#define E0_CURRENT 1000
|
||||||
//#define E0_MICROSTEPS 16
|
//#define E0_MICROSTEPS 16
|
||||||
//#define E0_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E1_MAX_CURRENT 1000
|
//#define E1_CURRENT 1000
|
||||||
//#define E1_MICROSTEPS 16
|
//#define E1_MICROSTEPS 16
|
||||||
//#define E1_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E2_MAX_CURRENT 1000
|
//#define E2_CURRENT 1000
|
||||||
//#define E2_MICROSTEPS 16
|
//#define E2_MICROSTEPS 16
|
||||||
//#define E2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E3_MAX_CURRENT 1000
|
//#define E3_CURRENT 1000
|
||||||
//#define E3_MICROSTEPS 16
|
//#define E3_MICROSTEPS 16
|
||||||
//#define E3_CHIP_SELECT -1
|
|
||||||
|
//#define E4_CURRENT 1000
|
||||||
|
//#define E4_MICROSTEPS 16
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use Trinamic's ultra quiet stepping mode.
|
||||||
|
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||||
|
*/
|
||||||
|
#define STEALTHCHOP
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Let Marlin automatically control stepper current.
|
||||||
|
* This is still an experimental feature.
|
||||||
|
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
||||||
|
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
||||||
|
* Adjusting starts from X/Y/Z/E_CURRENT but will not increase over AUTO_ADJUST_MAX
|
||||||
|
* Relevant g-codes:
|
||||||
|
* M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given.
|
||||||
|
* M906 S1 - Start adjusting current
|
||||||
|
* M906 S0 - Stop adjusting current
|
||||||
|
* M911 - Report stepper driver overtemperature pre-warn condition.
|
||||||
|
* M912 - Clear stepper driver overtemperature pre-warn condition flag.
|
||||||
|
*/
|
||||||
|
//#define AUTOMATIC_CURRENT_CONTROL
|
||||||
|
|
||||||
|
#if ENABLED(AUTOMATIC_CURRENT_CONTROL)
|
||||||
|
#define CURRENT_STEP 50 // [mA]
|
||||||
|
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
||||||
|
#define REPORT_CURRENT_CHANGE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||||
|
* This mode allows for faster movements at the expense of higher noise levels.
|
||||||
|
* STEALTHCHOP needs to be enabled.
|
||||||
|
* M913 X/Y/Z/E to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define HYBRID_THRESHOLD
|
||||||
|
|
||||||
|
#define X_HYBRID_THRESHOLD 100 // [mm/s]
|
||||||
|
#define X2_HYBRID_THRESHOLD 100
|
||||||
|
#define Y_HYBRID_THRESHOLD 100
|
||||||
|
#define Y2_HYBRID_THRESHOLD 100
|
||||||
|
#define Z_HYBRID_THRESHOLD 4
|
||||||
|
#define Z2_HYBRID_THRESHOLD 4
|
||||||
|
#define E0_HYBRID_THRESHOLD 30
|
||||||
|
#define E1_HYBRID_THRESHOLD 30
|
||||||
|
#define E2_HYBRID_THRESHOLD 30
|
||||||
|
#define E3_HYBRID_THRESHOLD 30
|
||||||
|
#define E4_HYBRID_THRESHOLD 30
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use stallGuard2 to sense an obstacle and trigger an endstop.
|
||||||
|
* You need to place a wire from the driver's DIAG1 pin to the X/Y endstop pin.
|
||||||
|
* If used along with STEALTHCHOP, the movement will be louder when homing. This is normal.
|
||||||
|
*
|
||||||
|
* X/Y_HOMING_SENSITIVITY is used for tuning the trigger sensitivity.
|
||||||
|
* Higher values make the system LESS sensitive.
|
||||||
|
* Lower value make the system MORE sensitive.
|
||||||
|
* Too low values can lead to false positives, while too high values will collide the axis without triggering.
|
||||||
|
* It is advised to set X/Y_HOME_BUMP_MM to 0.
|
||||||
|
* M914 X/Y to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define SENSORLESS_HOMING
|
||||||
|
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
|
#define X_HOMING_SENSITIVITY 19
|
||||||
|
#define Y_HOMING_SENSITIVITY 19
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* You can set your own advanced settings by filling in predefined functions.
|
* You can set your own advanced settings by filling in predefined functions.
|
||||||
|
|
|
@ -879,18 +879,6 @@
|
||||||
//#define HAVE_TMC2130
|
//#define HAVE_TMC2130
|
||||||
|
|
||||||
#if ENABLED(HAVE_TMC2130)
|
#if ENABLED(HAVE_TMC2130)
|
||||||
#define STEALTHCHOP
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Let Marlin automatically control stepper current.
|
|
||||||
* This is still an experimental feature.
|
|
||||||
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
|
||||||
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
|
||||||
* Adjusting starts from X/Y/Z/E_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX
|
|
||||||
*/
|
|
||||||
//#define AUTOMATIC_CURRENT_CONTROL
|
|
||||||
#define CURRENT_STEP 50 // [mA]
|
|
||||||
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
|
||||||
|
|
||||||
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
||||||
//#define X_IS_TMC2130
|
//#define X_IS_TMC2130
|
||||||
|
@ -913,45 +901,104 @@
|
||||||
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
||||||
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
||||||
|
|
||||||
#define X_MAX_CURRENT 1000 // rms current in mA
|
#define X_CURRENT 1000 // rms current in mA. Multiply by 1.41 for peak current.
|
||||||
#define X_MICROSTEPS 16 // FULLSTEP..256
|
#define X_MICROSTEPS 16 // 0..256
|
||||||
#define X_CHIP_SELECT 40 // Pin
|
|
||||||
|
|
||||||
#define Y_MAX_CURRENT 1000
|
#define Y_CURRENT 1000
|
||||||
#define Y_MICROSTEPS 16
|
#define Y_MICROSTEPS 16
|
||||||
#define Y_CHIP_SELECT 42
|
|
||||||
|
|
||||||
#define Z_MAX_CURRENT 1000
|
#define Z_CURRENT 1000
|
||||||
#define Z_MICROSTEPS 16
|
#define Z_MICROSTEPS 16
|
||||||
#define Z_CHIP_SELECT 65
|
|
||||||
|
|
||||||
//#define X2_MAX_CURRENT 1000
|
//#define X2_CURRENT 1000
|
||||||
//#define X2_MICROSTEPS 16
|
//#define X2_MICROSTEPS 16
|
||||||
//#define X2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Y2_MAX_CURRENT 1000
|
//#define Y2_CURRENT 1000
|
||||||
//#define Y2_MICROSTEPS 16
|
//#define Y2_MICROSTEPS 16
|
||||||
//#define Y2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Z2_MAX_CURRENT 1000
|
//#define Z2_CURRENT 1000
|
||||||
//#define Z2_MICROSTEPS 16
|
//#define Z2_MICROSTEPS 16
|
||||||
//#define Z2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E0_MAX_CURRENT 1000
|
//#define E0_CURRENT 1000
|
||||||
//#define E0_MICROSTEPS 16
|
//#define E0_MICROSTEPS 16
|
||||||
//#define E0_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E1_MAX_CURRENT 1000
|
//#define E1_CURRENT 1000
|
||||||
//#define E1_MICROSTEPS 16
|
//#define E1_MICROSTEPS 16
|
||||||
//#define E1_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E2_MAX_CURRENT 1000
|
//#define E2_CURRENT 1000
|
||||||
//#define E2_MICROSTEPS 16
|
//#define E2_MICROSTEPS 16
|
||||||
//#define E2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E3_MAX_CURRENT 1000
|
//#define E3_CURRENT 1000
|
||||||
//#define E3_MICROSTEPS 16
|
//#define E3_MICROSTEPS 16
|
||||||
//#define E3_CHIP_SELECT -1
|
|
||||||
|
//#define E4_CURRENT 1000
|
||||||
|
//#define E4_MICROSTEPS 16
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use Trinamic's ultra quiet stepping mode.
|
||||||
|
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||||
|
*/
|
||||||
|
#define STEALTHCHOP
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Let Marlin automatically control stepper current.
|
||||||
|
* This is still an experimental feature.
|
||||||
|
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
||||||
|
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
||||||
|
* Adjusting starts from X/Y/Z/E_CURRENT but will not increase over AUTO_ADJUST_MAX
|
||||||
|
* Relevant g-codes:
|
||||||
|
* M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given.
|
||||||
|
* M906 S1 - Start adjusting current
|
||||||
|
* M906 S0 - Stop adjusting current
|
||||||
|
* M911 - Report stepper driver overtemperature pre-warn condition.
|
||||||
|
* M912 - Clear stepper driver overtemperature pre-warn condition flag.
|
||||||
|
*/
|
||||||
|
//#define AUTOMATIC_CURRENT_CONTROL
|
||||||
|
|
||||||
|
#if ENABLED(AUTOMATIC_CURRENT_CONTROL)
|
||||||
|
#define CURRENT_STEP 50 // [mA]
|
||||||
|
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
||||||
|
#define REPORT_CURRENT_CHANGE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||||
|
* This mode allows for faster movements at the expense of higher noise levels.
|
||||||
|
* STEALTHCHOP needs to be enabled.
|
||||||
|
* M913 X/Y/Z/E to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define HYBRID_THRESHOLD
|
||||||
|
|
||||||
|
#define X_HYBRID_THRESHOLD 100 // [mm/s]
|
||||||
|
#define X2_HYBRID_THRESHOLD 100
|
||||||
|
#define Y_HYBRID_THRESHOLD 100
|
||||||
|
#define Y2_HYBRID_THRESHOLD 100
|
||||||
|
#define Z_HYBRID_THRESHOLD 4
|
||||||
|
#define Z2_HYBRID_THRESHOLD 4
|
||||||
|
#define E0_HYBRID_THRESHOLD 30
|
||||||
|
#define E1_HYBRID_THRESHOLD 30
|
||||||
|
#define E2_HYBRID_THRESHOLD 30
|
||||||
|
#define E3_HYBRID_THRESHOLD 30
|
||||||
|
#define E4_HYBRID_THRESHOLD 30
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use stallGuard2 to sense an obstacle and trigger an endstop.
|
||||||
|
* You need to place a wire from the driver's DIAG1 pin to the X/Y endstop pin.
|
||||||
|
* If used along with STEALTHCHOP, the movement will be louder when homing. This is normal.
|
||||||
|
*
|
||||||
|
* X/Y_HOMING_SENSITIVITY is used for tuning the trigger sensitivity.
|
||||||
|
* Higher values make the system LESS sensitive.
|
||||||
|
* Lower value make the system MORE sensitive.
|
||||||
|
* Too low values can lead to false positives, while too high values will collide the axis without triggering.
|
||||||
|
* It is advised to set X/Y_HOME_BUMP_MM to 0.
|
||||||
|
* M914 X/Y to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define SENSORLESS_HOMING
|
||||||
|
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
|
#define X_HOMING_SENSITIVITY 19
|
||||||
|
#define Y_HOMING_SENSITIVITY 19
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* You can set your own advanced settings by filling in predefined functions.
|
* You can set your own advanced settings by filling in predefined functions.
|
||||||
|
|
|
@ -879,18 +879,6 @@
|
||||||
//#define HAVE_TMC2130
|
//#define HAVE_TMC2130
|
||||||
|
|
||||||
#if ENABLED(HAVE_TMC2130)
|
#if ENABLED(HAVE_TMC2130)
|
||||||
#define STEALTHCHOP
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Let Marlin automatically control stepper current.
|
|
||||||
* This is still an experimental feature.
|
|
||||||
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
|
||||||
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
|
||||||
* Adjusting starts from X/Y/Z/E_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX
|
|
||||||
*/
|
|
||||||
//#define AUTOMATIC_CURRENT_CONTROL
|
|
||||||
#define CURRENT_STEP 50 // [mA]
|
|
||||||
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
|
||||||
|
|
||||||
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
||||||
//#define X_IS_TMC2130
|
//#define X_IS_TMC2130
|
||||||
|
@ -913,45 +901,104 @@
|
||||||
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
||||||
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
||||||
|
|
||||||
#define X_MAX_CURRENT 1000 // rms current in mA
|
#define X_CURRENT 1000 // rms current in mA. Multiply by 1.41 for peak current.
|
||||||
#define X_MICROSTEPS 16 // FULLSTEP..256
|
#define X_MICROSTEPS 16 // 0..256
|
||||||
#define X_CHIP_SELECT 40 // Pin
|
|
||||||
|
|
||||||
#define Y_MAX_CURRENT 1000
|
#define Y_CURRENT 1000
|
||||||
#define Y_MICROSTEPS 16
|
#define Y_MICROSTEPS 16
|
||||||
#define Y_CHIP_SELECT 42
|
|
||||||
|
|
||||||
#define Z_MAX_CURRENT 1000
|
#define Z_CURRENT 1000
|
||||||
#define Z_MICROSTEPS 16
|
#define Z_MICROSTEPS 16
|
||||||
#define Z_CHIP_SELECT 65
|
|
||||||
|
|
||||||
//#define X2_MAX_CURRENT 1000
|
//#define X2_CURRENT 1000
|
||||||
//#define X2_MICROSTEPS 16
|
//#define X2_MICROSTEPS 16
|
||||||
//#define X2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Y2_MAX_CURRENT 1000
|
//#define Y2_CURRENT 1000
|
||||||
//#define Y2_MICROSTEPS 16
|
//#define Y2_MICROSTEPS 16
|
||||||
//#define Y2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Z2_MAX_CURRENT 1000
|
//#define Z2_CURRENT 1000
|
||||||
//#define Z2_MICROSTEPS 16
|
//#define Z2_MICROSTEPS 16
|
||||||
//#define Z2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E0_MAX_CURRENT 1000
|
//#define E0_CURRENT 1000
|
||||||
//#define E0_MICROSTEPS 16
|
//#define E0_MICROSTEPS 16
|
||||||
//#define E0_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E1_MAX_CURRENT 1000
|
//#define E1_CURRENT 1000
|
||||||
//#define E1_MICROSTEPS 16
|
//#define E1_MICROSTEPS 16
|
||||||
//#define E1_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E2_MAX_CURRENT 1000
|
//#define E2_CURRENT 1000
|
||||||
//#define E2_MICROSTEPS 16
|
//#define E2_MICROSTEPS 16
|
||||||
//#define E2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E3_MAX_CURRENT 1000
|
//#define E3_CURRENT 1000
|
||||||
//#define E3_MICROSTEPS 16
|
//#define E3_MICROSTEPS 16
|
||||||
//#define E3_CHIP_SELECT -1
|
|
||||||
|
//#define E4_CURRENT 1000
|
||||||
|
//#define E4_MICROSTEPS 16
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use Trinamic's ultra quiet stepping mode.
|
||||||
|
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||||
|
*/
|
||||||
|
#define STEALTHCHOP
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Let Marlin automatically control stepper current.
|
||||||
|
* This is still an experimental feature.
|
||||||
|
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
||||||
|
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
||||||
|
* Adjusting starts from X/Y/Z/E_CURRENT but will not increase over AUTO_ADJUST_MAX
|
||||||
|
* Relevant g-codes:
|
||||||
|
* M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given.
|
||||||
|
* M906 S1 - Start adjusting current
|
||||||
|
* M906 S0 - Stop adjusting current
|
||||||
|
* M911 - Report stepper driver overtemperature pre-warn condition.
|
||||||
|
* M912 - Clear stepper driver overtemperature pre-warn condition flag.
|
||||||
|
*/
|
||||||
|
//#define AUTOMATIC_CURRENT_CONTROL
|
||||||
|
|
||||||
|
#if ENABLED(AUTOMATIC_CURRENT_CONTROL)
|
||||||
|
#define CURRENT_STEP 50 // [mA]
|
||||||
|
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
||||||
|
#define REPORT_CURRENT_CHANGE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||||
|
* This mode allows for faster movements at the expense of higher noise levels.
|
||||||
|
* STEALTHCHOP needs to be enabled.
|
||||||
|
* M913 X/Y/Z/E to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define HYBRID_THRESHOLD
|
||||||
|
|
||||||
|
#define X_HYBRID_THRESHOLD 100 // [mm/s]
|
||||||
|
#define X2_HYBRID_THRESHOLD 100
|
||||||
|
#define Y_HYBRID_THRESHOLD 100
|
||||||
|
#define Y2_HYBRID_THRESHOLD 100
|
||||||
|
#define Z_HYBRID_THRESHOLD 4
|
||||||
|
#define Z2_HYBRID_THRESHOLD 4
|
||||||
|
#define E0_HYBRID_THRESHOLD 30
|
||||||
|
#define E1_HYBRID_THRESHOLD 30
|
||||||
|
#define E2_HYBRID_THRESHOLD 30
|
||||||
|
#define E3_HYBRID_THRESHOLD 30
|
||||||
|
#define E4_HYBRID_THRESHOLD 30
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use stallGuard2 to sense an obstacle and trigger an endstop.
|
||||||
|
* You need to place a wire from the driver's DIAG1 pin to the X/Y endstop pin.
|
||||||
|
* If used along with STEALTHCHOP, the movement will be louder when homing. This is normal.
|
||||||
|
*
|
||||||
|
* X/Y_HOMING_SENSITIVITY is used for tuning the trigger sensitivity.
|
||||||
|
* Higher values make the system LESS sensitive.
|
||||||
|
* Lower value make the system MORE sensitive.
|
||||||
|
* Too low values can lead to false positives, while too high values will collide the axis without triggering.
|
||||||
|
* It is advised to set X/Y_HOME_BUMP_MM to 0.
|
||||||
|
* M914 X/Y to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define SENSORLESS_HOMING
|
||||||
|
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
|
#define X_HOMING_SENSITIVITY 19
|
||||||
|
#define Y_HOMING_SENSITIVITY 19
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* You can set your own advanced settings by filling in predefined functions.
|
* You can set your own advanced settings by filling in predefined functions.
|
||||||
|
|
|
@ -863,18 +863,6 @@
|
||||||
//#define HAVE_TMC2130
|
//#define HAVE_TMC2130
|
||||||
|
|
||||||
#if ENABLED(HAVE_TMC2130)
|
#if ENABLED(HAVE_TMC2130)
|
||||||
#define STEALTHCHOP
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Let Marlin automatically control stepper current.
|
|
||||||
* This is still an experimental feature.
|
|
||||||
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
|
||||||
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
|
||||||
* Adjusting starts from X/Y/Z/E_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX
|
|
||||||
*/
|
|
||||||
//#define AUTOMATIC_CURRENT_CONTROL
|
|
||||||
#define CURRENT_STEP 50 // [mA]
|
|
||||||
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
|
||||||
|
|
||||||
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
||||||
//#define X_IS_TMC2130
|
//#define X_IS_TMC2130
|
||||||
|
@ -897,45 +885,104 @@
|
||||||
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
||||||
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
||||||
|
|
||||||
#define X_MAX_CURRENT 1000 // rms current in mA
|
#define X_CURRENT 1000 // rms current in mA. Multiply by 1.41 for peak current.
|
||||||
#define X_MICROSTEPS 16 // FULLSTEP..256
|
#define X_MICROSTEPS 16 // 0..256
|
||||||
#define X_CHIP_SELECT 40 // Pin
|
|
||||||
|
|
||||||
#define Y_MAX_CURRENT 1000
|
#define Y_CURRENT 1000
|
||||||
#define Y_MICROSTEPS 16
|
#define Y_MICROSTEPS 16
|
||||||
#define Y_CHIP_SELECT 42
|
|
||||||
|
|
||||||
#define Z_MAX_CURRENT 1000
|
#define Z_CURRENT 1000
|
||||||
#define Z_MICROSTEPS 16
|
#define Z_MICROSTEPS 16
|
||||||
#define Z_CHIP_SELECT 65
|
|
||||||
|
|
||||||
//#define X2_MAX_CURRENT 1000
|
//#define X2_CURRENT 1000
|
||||||
//#define X2_MICROSTEPS 16
|
//#define X2_MICROSTEPS 16
|
||||||
//#define X2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Y2_MAX_CURRENT 1000
|
//#define Y2_CURRENT 1000
|
||||||
//#define Y2_MICROSTEPS 16
|
//#define Y2_MICROSTEPS 16
|
||||||
//#define Y2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Z2_MAX_CURRENT 1000
|
//#define Z2_CURRENT 1000
|
||||||
//#define Z2_MICROSTEPS 16
|
//#define Z2_MICROSTEPS 16
|
||||||
//#define Z2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E0_MAX_CURRENT 1000
|
//#define E0_CURRENT 1000
|
||||||
//#define E0_MICROSTEPS 16
|
//#define E0_MICROSTEPS 16
|
||||||
//#define E0_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E1_MAX_CURRENT 1000
|
//#define E1_CURRENT 1000
|
||||||
//#define E1_MICROSTEPS 16
|
//#define E1_MICROSTEPS 16
|
||||||
//#define E1_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E2_MAX_CURRENT 1000
|
//#define E2_CURRENT 1000
|
||||||
//#define E2_MICROSTEPS 16
|
//#define E2_MICROSTEPS 16
|
||||||
//#define E2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E3_MAX_CURRENT 1000
|
//#define E3_CURRENT 1000
|
||||||
//#define E3_MICROSTEPS 16
|
//#define E3_MICROSTEPS 16
|
||||||
//#define E3_CHIP_SELECT -1
|
|
||||||
|
//#define E3_CURRENT 1000
|
||||||
|
//#define E3_MICROSTEPS 16
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use Trinamic's ultra quiet stepping mode.
|
||||||
|
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||||
|
*/
|
||||||
|
#define STEALTHCHOP
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Let Marlin automatically control stepper current.
|
||||||
|
* This is still an experimental feature.
|
||||||
|
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
||||||
|
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
||||||
|
* Adjusting starts from X/Y/Z/E_CURRENT but will not increase over AUTO_ADJUST_MAX
|
||||||
|
* Relevant g-codes:
|
||||||
|
* M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given.
|
||||||
|
* M906 S1 - Start adjusting current
|
||||||
|
* M906 S0 - Stop adjusting current
|
||||||
|
* M911 - Report stepper driver overtemperature pre-warn condition.
|
||||||
|
* M912 - Clear stepper driver overtemperature pre-warn condition flag.
|
||||||
|
*/
|
||||||
|
//#define AUTOMATIC_CURRENT_CONTROL
|
||||||
|
|
||||||
|
#if ENABLED(AUTOMATIC_CURRENT_CONTROL)
|
||||||
|
#define CURRENT_STEP 50 // [mA]
|
||||||
|
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
||||||
|
#define REPORT_CURRENT_CHANGE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||||
|
* This mode allows for faster movements at the expense of higher noise levels.
|
||||||
|
* STEALTHCHOP needs to be enabled.
|
||||||
|
* M913 X/Y/Z/E to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define HYBRID_THRESHOLD
|
||||||
|
|
||||||
|
#define X_HYBRID_THRESHOLD 100 // [mm/s]
|
||||||
|
#define X2_HYBRID_THRESHOLD 100
|
||||||
|
#define Y_HYBRID_THRESHOLD 100
|
||||||
|
#define Y2_HYBRID_THRESHOLD 100
|
||||||
|
#define Z_HYBRID_THRESHOLD 4
|
||||||
|
#define Z2_HYBRID_THRESHOLD 4
|
||||||
|
#define E0_HYBRID_THRESHOLD 30
|
||||||
|
#define E1_HYBRID_THRESHOLD 30
|
||||||
|
#define E2_HYBRID_THRESHOLD 30
|
||||||
|
#define E3_HYBRID_THRESHOLD 30
|
||||||
|
#define E4_HYBRID_THRESHOLD 30
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use stallGuard2 to sense an obstacle and trigger an endstop.
|
||||||
|
* You need to place a wire from the driver's DIAG1 pin to the X/Y endstop pin.
|
||||||
|
* If used along with STEALTHCHOP, the movement will be louder when homing. This is normal.
|
||||||
|
*
|
||||||
|
* X/Y_HOMING_SENSITIVITY is used for tuning the trigger sensitivity.
|
||||||
|
* Higher values make the system LESS sensitive.
|
||||||
|
* Lower value make the system MORE sensitive.
|
||||||
|
* Too low values can lead to false positives, while too high values will collide the axis without triggering.
|
||||||
|
* It is advised to set X/Y_HOME_BUMP_MM to 0.
|
||||||
|
* M914 X/Y to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define SENSORLESS_HOMING
|
||||||
|
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
|
#define X_HOMING_SENSITIVITY 19
|
||||||
|
#define Y_HOMING_SENSITIVITY 19
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* You can set your own advanced settings by filling in predefined functions.
|
* You can set your own advanced settings by filling in predefined functions.
|
||||||
|
|
|
@ -892,18 +892,6 @@
|
||||||
//#define HAVE_TMC2130
|
//#define HAVE_TMC2130
|
||||||
|
|
||||||
#if ENABLED(HAVE_TMC2130)
|
#if ENABLED(HAVE_TMC2130)
|
||||||
#define STEALTHCHOP
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Let Marlin automatically control stepper current.
|
|
||||||
* This is still an experimental feature.
|
|
||||||
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
|
||||||
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
|
||||||
* Adjusting starts from X/Y/Z/E_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX
|
|
||||||
*/
|
|
||||||
//#define AUTOMATIC_CURRENT_CONTROL
|
|
||||||
#define CURRENT_STEP 50 // [mA]
|
|
||||||
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
|
||||||
|
|
||||||
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
||||||
//#define X_IS_TMC2130
|
//#define X_IS_TMC2130
|
||||||
|
@ -926,45 +914,104 @@
|
||||||
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
||||||
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
||||||
|
|
||||||
#define X_MAX_CURRENT 1000 // rms current in mA
|
#define X_CURRENT 1000 // rms current in mA. Multiply by 1.41 for peak current.
|
||||||
#define X_MICROSTEPS 16 // FULLSTEP..256
|
#define X_MICROSTEPS 16 // 0..256
|
||||||
#define X_CHIP_SELECT 40 // Pin
|
|
||||||
|
|
||||||
#define Y_MAX_CURRENT 1000
|
#define Y_CURRENT 1000
|
||||||
#define Y_MICROSTEPS 16
|
#define Y_MICROSTEPS 16
|
||||||
#define Y_CHIP_SELECT 42
|
|
||||||
|
|
||||||
#define Z_MAX_CURRENT 1000
|
#define Z_CURRENT 1000
|
||||||
#define Z_MICROSTEPS 16
|
#define Z_MICROSTEPS 16
|
||||||
#define Z_CHIP_SELECT 65
|
|
||||||
|
|
||||||
//#define X2_MAX_CURRENT 1000
|
//#define X2_CURRENT 1000
|
||||||
//#define X2_MICROSTEPS 16
|
//#define X2_MICROSTEPS 16
|
||||||
//#define X2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Y2_MAX_CURRENT 1000
|
//#define Y2_CURRENT 1000
|
||||||
//#define Y2_MICROSTEPS 16
|
//#define Y2_MICROSTEPS 16
|
||||||
//#define Y2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Z2_MAX_CURRENT 1000
|
//#define Z2_CURRENT 1000
|
||||||
//#define Z2_MICROSTEPS 16
|
//#define Z2_MICROSTEPS 16
|
||||||
//#define Z2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E0_MAX_CURRENT 1000
|
//#define E0_CURRENT 1000
|
||||||
//#define E0_MICROSTEPS 16
|
//#define E0_MICROSTEPS 16
|
||||||
//#define E0_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E1_MAX_CURRENT 1000
|
//#define E1_CURRENT 1000
|
||||||
//#define E1_MICROSTEPS 16
|
//#define E1_MICROSTEPS 16
|
||||||
//#define E1_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E2_MAX_CURRENT 1000
|
//#define E2_CURRENT 1000
|
||||||
//#define E2_MICROSTEPS 16
|
//#define E2_MICROSTEPS 16
|
||||||
//#define E2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E3_MAX_CURRENT 1000
|
//#define E3_CURRENT 1000
|
||||||
//#define E3_MICROSTEPS 16
|
//#define E3_MICROSTEPS 16
|
||||||
//#define E3_CHIP_SELECT -1
|
|
||||||
|
//#define E4_CURRENT 1000
|
||||||
|
//#define E4_MICROSTEPS 16
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use Trinamic's ultra quiet stepping mode.
|
||||||
|
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||||
|
*/
|
||||||
|
#define STEALTHCHOP
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Let Marlin automatically control stepper current.
|
||||||
|
* This is still an experimental feature.
|
||||||
|
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
||||||
|
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
||||||
|
* Adjusting starts from X/Y/Z/E_CURRENT but will not increase over AUTO_ADJUST_MAX
|
||||||
|
* Relevant g-codes:
|
||||||
|
* M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given.
|
||||||
|
* M906 S1 - Start adjusting current
|
||||||
|
* M906 S0 - Stop adjusting current
|
||||||
|
* M911 - Report stepper driver overtemperature pre-warn condition.
|
||||||
|
* M912 - Clear stepper driver overtemperature pre-warn condition flag.
|
||||||
|
*/
|
||||||
|
//#define AUTOMATIC_CURRENT_CONTROL
|
||||||
|
|
||||||
|
#if ENABLED(AUTOMATIC_CURRENT_CONTROL)
|
||||||
|
#define CURRENT_STEP 50 // [mA]
|
||||||
|
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
||||||
|
#define REPORT_CURRENT_CHANGE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||||
|
* This mode allows for faster movements at the expense of higher noise levels.
|
||||||
|
* STEALTHCHOP needs to be enabled.
|
||||||
|
* M913 X/Y/Z/E to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define HYBRID_THRESHOLD
|
||||||
|
|
||||||
|
#define X_HYBRID_THRESHOLD 100 // [mm/s]
|
||||||
|
#define X2_HYBRID_THRESHOLD 100
|
||||||
|
#define Y_HYBRID_THRESHOLD 100
|
||||||
|
#define Y2_HYBRID_THRESHOLD 100
|
||||||
|
#define Z_HYBRID_THRESHOLD 4
|
||||||
|
#define Z2_HYBRID_THRESHOLD 4
|
||||||
|
#define E0_HYBRID_THRESHOLD 30
|
||||||
|
#define E1_HYBRID_THRESHOLD 30
|
||||||
|
#define E2_HYBRID_THRESHOLD 30
|
||||||
|
#define E3_HYBRID_THRESHOLD 30
|
||||||
|
#define E4_HYBRID_THRESHOLD 30
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use stallGuard2 to sense an obstacle and trigger an endstop.
|
||||||
|
* You need to place a wire from the driver's DIAG1 pin to the X/Y endstop pin.
|
||||||
|
* If used along with STEALTHCHOP, the movement will be louder when homing. This is normal.
|
||||||
|
*
|
||||||
|
* X/Y_HOMING_SENSITIVITY is used for tuning the trigger sensitivity.
|
||||||
|
* Higher values make the system LESS sensitive.
|
||||||
|
* Lower value make the system MORE sensitive.
|
||||||
|
* Too low values can lead to false positives, while too high values will collide the axis without triggering.
|
||||||
|
* It is advised to set X/Y_HOME_BUMP_MM to 0.
|
||||||
|
* M914 X/Y to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define SENSORLESS_HOMING
|
||||||
|
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
|
#define X_HOMING_SENSITIVITY 19
|
||||||
|
#define Y_HOMING_SENSITIVITY 19
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* You can set your own advanced settings by filling in predefined functions.
|
* You can set your own advanced settings by filling in predefined functions.
|
||||||
|
|
|
@ -879,18 +879,6 @@
|
||||||
//#define HAVE_TMC2130
|
//#define HAVE_TMC2130
|
||||||
|
|
||||||
#if ENABLED(HAVE_TMC2130)
|
#if ENABLED(HAVE_TMC2130)
|
||||||
#define STEALTHCHOP
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Let Marlin automatically control stepper current.
|
|
||||||
* This is still an experimental feature.
|
|
||||||
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
|
||||||
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
|
||||||
* Adjusting starts from X/Y/Z/E_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX
|
|
||||||
*/
|
|
||||||
//#define AUTOMATIC_CURRENT_CONTROL
|
|
||||||
#define CURRENT_STEP 50 // [mA]
|
|
||||||
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
|
||||||
|
|
||||||
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
||||||
//#define X_IS_TMC2130
|
//#define X_IS_TMC2130
|
||||||
|
@ -913,45 +901,104 @@
|
||||||
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
||||||
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
||||||
|
|
||||||
#define X_MAX_CURRENT 1000 // rms current in mA
|
#define X_CURRENT 1000 // rms current in mA. Multiply by 1.41 for peak current.
|
||||||
#define X_MICROSTEPS 16 // FULLSTEP..256
|
#define X_MICROSTEPS 16 // 0..256
|
||||||
#define X_CHIP_SELECT 40 // Pin
|
|
||||||
|
|
||||||
#define Y_MAX_CURRENT 1000
|
#define Y_CURRENT 1000
|
||||||
#define Y_MICROSTEPS 16
|
#define Y_MICROSTEPS 16
|
||||||
#define Y_CHIP_SELECT 42
|
|
||||||
|
|
||||||
#define Z_MAX_CURRENT 1000
|
#define Z_CURRENT 1000
|
||||||
#define Z_MICROSTEPS 16
|
#define Z_MICROSTEPS 16
|
||||||
#define Z_CHIP_SELECT 65
|
|
||||||
|
|
||||||
//#define X2_MAX_CURRENT 1000
|
//#define X2_CURRENT 1000
|
||||||
//#define X2_MICROSTEPS 16
|
//#define X2_MICROSTEPS 16
|
||||||
//#define X2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Y2_MAX_CURRENT 1000
|
//#define Y2_CURRENT 1000
|
||||||
//#define Y2_MICROSTEPS 16
|
//#define Y2_MICROSTEPS 16
|
||||||
//#define Y2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Z2_MAX_CURRENT 1000
|
//#define Z2_CURRENT 1000
|
||||||
//#define Z2_MICROSTEPS 16
|
//#define Z2_MICROSTEPS 16
|
||||||
//#define Z2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E0_MAX_CURRENT 1000
|
//#define E0_CURRENT 1000
|
||||||
//#define E0_MICROSTEPS 16
|
//#define E0_MICROSTEPS 16
|
||||||
//#define E0_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E1_MAX_CURRENT 1000
|
//#define E1_CURRENT 1000
|
||||||
//#define E1_MICROSTEPS 16
|
//#define E1_MICROSTEPS 16
|
||||||
//#define E1_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E2_MAX_CURRENT 1000
|
//#define E2_CURRENT 1000
|
||||||
//#define E2_MICROSTEPS 16
|
//#define E2_MICROSTEPS 16
|
||||||
//#define E2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E3_MAX_CURRENT 1000
|
//#define E3_CURRENT 1000
|
||||||
//#define E3_MICROSTEPS 16
|
//#define E3_MICROSTEPS 16
|
||||||
//#define E3_CHIP_SELECT -1
|
|
||||||
|
//#define E4_CURRENT 1000
|
||||||
|
//#define E4_MICROSTEPS 16
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use Trinamic's ultra quiet stepping mode.
|
||||||
|
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||||
|
*/
|
||||||
|
#define STEALTHCHOP
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Let Marlin automatically control stepper current.
|
||||||
|
* This is still an experimental feature.
|
||||||
|
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
||||||
|
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
||||||
|
* Adjusting starts from X/Y/Z/E_CURRENT but will not increase over AUTO_ADJUST_MAX
|
||||||
|
* Relevant g-codes:
|
||||||
|
* M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given.
|
||||||
|
* M906 S1 - Start adjusting current
|
||||||
|
* M906 S0 - Stop adjusting current
|
||||||
|
* M911 - Report stepper driver overtemperature pre-warn condition.
|
||||||
|
* M912 - Clear stepper driver overtemperature pre-warn condition flag.
|
||||||
|
*/
|
||||||
|
//#define AUTOMATIC_CURRENT_CONTROL
|
||||||
|
|
||||||
|
#if ENABLED(AUTOMATIC_CURRENT_CONTROL)
|
||||||
|
#define CURRENT_STEP 50 // [mA]
|
||||||
|
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
||||||
|
#define REPORT_CURRENT_CHANGE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||||
|
* This mode allows for faster movements at the expense of higher noise levels.
|
||||||
|
* STEALTHCHOP needs to be enabled.
|
||||||
|
* M913 X/Y/Z/E to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define HYBRID_THRESHOLD
|
||||||
|
|
||||||
|
#define X_HYBRID_THRESHOLD 100 // [mm/s]
|
||||||
|
#define X2_HYBRID_THRESHOLD 100
|
||||||
|
#define Y_HYBRID_THRESHOLD 100
|
||||||
|
#define Y2_HYBRID_THRESHOLD 100
|
||||||
|
#define Z_HYBRID_THRESHOLD 4
|
||||||
|
#define Z2_HYBRID_THRESHOLD 4
|
||||||
|
#define E0_HYBRID_THRESHOLD 30
|
||||||
|
#define E1_HYBRID_THRESHOLD 30
|
||||||
|
#define E2_HYBRID_THRESHOLD 30
|
||||||
|
#define E3_HYBRID_THRESHOLD 30
|
||||||
|
#define E4_HYBRID_THRESHOLD 30
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use stallGuard2 to sense an obstacle and trigger an endstop.
|
||||||
|
* You need to place a wire from the driver's DIAG1 pin to the X/Y endstop pin.
|
||||||
|
* If used along with STEALTHCHOP, the movement will be louder when homing. This is normal.
|
||||||
|
*
|
||||||
|
* X/Y_HOMING_SENSITIVITY is used for tuning the trigger sensitivity.
|
||||||
|
* Higher values make the system LESS sensitive.
|
||||||
|
* Lower value make the system MORE sensitive.
|
||||||
|
* Too low values can lead to false positives, while too high values will collide the axis without triggering.
|
||||||
|
* It is advised to set X/Y_HOME_BUMP_MM to 0.
|
||||||
|
* M914 X/Y to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define SENSORLESS_HOMING
|
||||||
|
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
|
#define X_HOMING_SENSITIVITY 19
|
||||||
|
#define Y_HOMING_SENSITIVITY 19
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* You can set your own advanced settings by filling in predefined functions.
|
* You can set your own advanced settings by filling in predefined functions.
|
||||||
|
|
|
@ -879,18 +879,6 @@
|
||||||
//#define HAVE_TMC2130
|
//#define HAVE_TMC2130
|
||||||
|
|
||||||
#if ENABLED(HAVE_TMC2130)
|
#if ENABLED(HAVE_TMC2130)
|
||||||
#define STEALTHCHOP
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Let Marlin automatically control stepper current.
|
|
||||||
* This is still an experimental feature.
|
|
||||||
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
|
||||||
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
|
||||||
* Adjusting starts from X/Y/Z/E_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX
|
|
||||||
*/
|
|
||||||
//#define AUTOMATIC_CURRENT_CONTROL
|
|
||||||
#define CURRENT_STEP 50 // [mA]
|
|
||||||
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
|
||||||
|
|
||||||
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
||||||
//#define X_IS_TMC2130
|
//#define X_IS_TMC2130
|
||||||
|
@ -913,45 +901,104 @@
|
||||||
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
||||||
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
||||||
|
|
||||||
#define X_MAX_CURRENT 1000 // rms current in mA
|
#define X_CURRENT 1000 // rms current in mA. Multiply by 1.41 for peak current.
|
||||||
#define X_MICROSTEPS 16 // FULLSTEP..256
|
#define X_MICROSTEPS 16 // 0..256
|
||||||
#define X_CHIP_SELECT 40 // Pin
|
|
||||||
|
|
||||||
#define Y_MAX_CURRENT 1000
|
#define Y_CURRENT 1000
|
||||||
#define Y_MICROSTEPS 16
|
#define Y_MICROSTEPS 16
|
||||||
#define Y_CHIP_SELECT 42
|
|
||||||
|
|
||||||
#define Z_MAX_CURRENT 1000
|
#define Z_CURRENT 1000
|
||||||
#define Z_MICROSTEPS 16
|
#define Z_MICROSTEPS 16
|
||||||
#define Z_CHIP_SELECT 65
|
|
||||||
|
|
||||||
//#define X2_MAX_CURRENT 1000
|
//#define X2_CURRENT 1000
|
||||||
//#define X2_MICROSTEPS 16
|
//#define X2_MICROSTEPS 16
|
||||||
//#define X2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Y2_MAX_CURRENT 1000
|
//#define Y2_CURRENT 1000
|
||||||
//#define Y2_MICROSTEPS 16
|
//#define Y2_MICROSTEPS 16
|
||||||
//#define Y2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Z2_MAX_CURRENT 1000
|
//#define Z2_CURRENT 1000
|
||||||
//#define Z2_MICROSTEPS 16
|
//#define Z2_MICROSTEPS 16
|
||||||
//#define Z2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E0_MAX_CURRENT 1000
|
//#define E0_CURRENT 1000
|
||||||
//#define E0_MICROSTEPS 16
|
//#define E0_MICROSTEPS 16
|
||||||
//#define E0_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E1_MAX_CURRENT 1000
|
//#define E1_CURRENT 1000
|
||||||
//#define E1_MICROSTEPS 16
|
//#define E1_MICROSTEPS 16
|
||||||
//#define E1_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E2_MAX_CURRENT 1000
|
//#define E2_CURRENT 1000
|
||||||
//#define E2_MICROSTEPS 16
|
//#define E2_MICROSTEPS 16
|
||||||
//#define E2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E3_MAX_CURRENT 1000
|
//#define E3_CURRENT 1000
|
||||||
//#define E3_MICROSTEPS 16
|
//#define E3_MICROSTEPS 16
|
||||||
//#define E3_CHIP_SELECT -1
|
|
||||||
|
//#define E4_CURRENT 1000
|
||||||
|
//#define E4_MICROSTEPS 16
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use Trinamic's ultra quiet stepping mode.
|
||||||
|
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||||
|
*/
|
||||||
|
#define STEALTHCHOP
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Let Marlin automatically control stepper current.
|
||||||
|
* This is still an experimental feature.
|
||||||
|
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
||||||
|
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
||||||
|
* Adjusting starts from X/Y/Z/E_CURRENT but will not increase over AUTO_ADJUST_MAX
|
||||||
|
* Relevant g-codes:
|
||||||
|
* M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given.
|
||||||
|
* M906 S1 - Start adjusting current
|
||||||
|
* M906 S0 - Stop adjusting current
|
||||||
|
* M911 - Report stepper driver overtemperature pre-warn condition.
|
||||||
|
* M912 - Clear stepper driver overtemperature pre-warn condition flag.
|
||||||
|
*/
|
||||||
|
//#define AUTOMATIC_CURRENT_CONTROL
|
||||||
|
|
||||||
|
#if ENABLED(AUTOMATIC_CURRENT_CONTROL)
|
||||||
|
#define CURRENT_STEP 50 // [mA]
|
||||||
|
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
||||||
|
#define REPORT_CURRENT_CHANGE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||||
|
* This mode allows for faster movements at the expense of higher noise levels.
|
||||||
|
* STEALTHCHOP needs to be enabled.
|
||||||
|
* M913 X/Y/Z/E to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define HYBRID_THRESHOLD
|
||||||
|
|
||||||
|
#define X_HYBRID_THRESHOLD 100 // [mm/s]
|
||||||
|
#define X2_HYBRID_THRESHOLD 100
|
||||||
|
#define Y_HYBRID_THRESHOLD 100
|
||||||
|
#define Y2_HYBRID_THRESHOLD 100
|
||||||
|
#define Z_HYBRID_THRESHOLD 4
|
||||||
|
#define Z2_HYBRID_THRESHOLD 4
|
||||||
|
#define E0_HYBRID_THRESHOLD 30
|
||||||
|
#define E1_HYBRID_THRESHOLD 30
|
||||||
|
#define E2_HYBRID_THRESHOLD 30
|
||||||
|
#define E3_HYBRID_THRESHOLD 30
|
||||||
|
#define E4_HYBRID_THRESHOLD 30
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use stallGuard2 to sense an obstacle and trigger an endstop.
|
||||||
|
* You need to place a wire from the driver's DIAG1 pin to the X/Y endstop pin.
|
||||||
|
* If used along with STEALTHCHOP, the movement will be louder when homing. This is normal.
|
||||||
|
*
|
||||||
|
* X/Y_HOMING_SENSITIVITY is used for tuning the trigger sensitivity.
|
||||||
|
* Higher values make the system LESS sensitive.
|
||||||
|
* Lower value make the system MORE sensitive.
|
||||||
|
* Too low values can lead to false positives, while too high values will collide the axis without triggering.
|
||||||
|
* It is advised to set X/Y_HOME_BUMP_MM to 0.
|
||||||
|
* M914 X/Y to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define SENSORLESS_HOMING
|
||||||
|
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
|
#define X_HOMING_SENSITIVITY 19
|
||||||
|
#define Y_HOMING_SENSITIVITY 19
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* You can set your own advanced settings by filling in predefined functions.
|
* You can set your own advanced settings by filling in predefined functions.
|
||||||
|
|
|
@ -879,18 +879,6 @@
|
||||||
//#define HAVE_TMC2130
|
//#define HAVE_TMC2130
|
||||||
|
|
||||||
#if ENABLED(HAVE_TMC2130)
|
#if ENABLED(HAVE_TMC2130)
|
||||||
#define STEALTHCHOP
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Let Marlin automatically control stepper current.
|
|
||||||
* This is still an experimental feature.
|
|
||||||
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
|
||||||
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
|
||||||
* Adjusting starts from X/Y/Z/E_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX
|
|
||||||
*/
|
|
||||||
//#define AUTOMATIC_CURRENT_CONTROL
|
|
||||||
#define CURRENT_STEP 50 // [mA]
|
|
||||||
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
|
||||||
|
|
||||||
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
||||||
//#define X_IS_TMC2130
|
//#define X_IS_TMC2130
|
||||||
|
@ -913,45 +901,104 @@
|
||||||
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
||||||
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
||||||
|
|
||||||
#define X_MAX_CURRENT 1000 // rms current in mA
|
#define X_CURRENT 1000 // rms current in mA. Multiply by 1.41 for peak current.
|
||||||
#define X_MICROSTEPS 16 // FULLSTEP..256
|
#define X_MICROSTEPS 16 // 0..256
|
||||||
#define X_CHIP_SELECT 40 // Pin
|
|
||||||
|
|
||||||
#define Y_MAX_CURRENT 1000
|
#define Y_CURRENT 1000
|
||||||
#define Y_MICROSTEPS 16
|
#define Y_MICROSTEPS 16
|
||||||
#define Y_CHIP_SELECT 42
|
|
||||||
|
|
||||||
#define Z_MAX_CURRENT 1000
|
#define Z_CURRENT 1000
|
||||||
#define Z_MICROSTEPS 16
|
#define Z_MICROSTEPS 16
|
||||||
#define Z_CHIP_SELECT 65
|
|
||||||
|
|
||||||
//#define X2_MAX_CURRENT 1000
|
//#define X2_CURRENT 1000
|
||||||
//#define X2_MICROSTEPS 16
|
//#define X2_MICROSTEPS 16
|
||||||
//#define X2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Y2_MAX_CURRENT 1000
|
//#define Y2_CURRENT 1000
|
||||||
//#define Y2_MICROSTEPS 16
|
//#define Y2_MICROSTEPS 16
|
||||||
//#define Y2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Z2_MAX_CURRENT 1000
|
//#define Z2_CURRENT 1000
|
||||||
//#define Z2_MICROSTEPS 16
|
//#define Z2_MICROSTEPS 16
|
||||||
//#define Z2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E0_MAX_CURRENT 1000
|
//#define E0_CURRENT 1000
|
||||||
//#define E0_MICROSTEPS 16
|
//#define E0_MICROSTEPS 16
|
||||||
//#define E0_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E1_MAX_CURRENT 1000
|
//#define E1_CURRENT 1000
|
||||||
//#define E1_MICROSTEPS 16
|
//#define E1_MICROSTEPS 16
|
||||||
//#define E1_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E2_MAX_CURRENT 1000
|
//#define E2_CURRENT 1000
|
||||||
//#define E2_MICROSTEPS 16
|
//#define E2_MICROSTEPS 16
|
||||||
//#define E2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E3_MAX_CURRENT 1000
|
//#define E3_CURRENT 1000
|
||||||
//#define E3_MICROSTEPS 16
|
//#define E3_MICROSTEPS 16
|
||||||
//#define E3_CHIP_SELECT -1
|
|
||||||
|
//#define E4_CURRENT 1000
|
||||||
|
//#define E4_MICROSTEPS 16
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use Trinamic's ultra quiet stepping mode.
|
||||||
|
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||||
|
*/
|
||||||
|
#define STEALTHCHOP
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Let Marlin automatically control stepper current.
|
||||||
|
* This is still an experimental feature.
|
||||||
|
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
||||||
|
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
||||||
|
* Adjusting starts from X/Y/Z/E_CURRENT but will not increase over AUTO_ADJUST_MAX
|
||||||
|
* Relevant g-codes:
|
||||||
|
* M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given.
|
||||||
|
* M906 S1 - Start adjusting current
|
||||||
|
* M906 S0 - Stop adjusting current
|
||||||
|
* M911 - Report stepper driver overtemperature pre-warn condition.
|
||||||
|
* M912 - Clear stepper driver overtemperature pre-warn condition flag.
|
||||||
|
*/
|
||||||
|
//#define AUTOMATIC_CURRENT_CONTROL
|
||||||
|
|
||||||
|
#if ENABLED(AUTOMATIC_CURRENT_CONTROL)
|
||||||
|
#define CURRENT_STEP 50 // [mA]
|
||||||
|
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
||||||
|
#define REPORT_CURRENT_CHANGE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||||
|
* This mode allows for faster movements at the expense of higher noise levels.
|
||||||
|
* STEALTHCHOP needs to be enabled.
|
||||||
|
* M913 X/Y/Z/E to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define HYBRID_THRESHOLD
|
||||||
|
|
||||||
|
#define X_HYBRID_THRESHOLD 100 // [mm/s]
|
||||||
|
#define X2_HYBRID_THRESHOLD 100
|
||||||
|
#define Y_HYBRID_THRESHOLD 100
|
||||||
|
#define Y2_HYBRID_THRESHOLD 100
|
||||||
|
#define Z_HYBRID_THRESHOLD 4
|
||||||
|
#define Z2_HYBRID_THRESHOLD 4
|
||||||
|
#define E0_HYBRID_THRESHOLD 30
|
||||||
|
#define E1_HYBRID_THRESHOLD 30
|
||||||
|
#define E2_HYBRID_THRESHOLD 30
|
||||||
|
#define E3_HYBRID_THRESHOLD 30
|
||||||
|
#define E4_HYBRID_THRESHOLD 30
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use stallGuard2 to sense an obstacle and trigger an endstop.
|
||||||
|
* You need to place a wire from the driver's DIAG1 pin to the X/Y endstop pin.
|
||||||
|
* If used along with STEALTHCHOP, the movement will be louder when homing. This is normal.
|
||||||
|
*
|
||||||
|
* X/Y_HOMING_SENSITIVITY is used for tuning the trigger sensitivity.
|
||||||
|
* Higher values make the system LESS sensitive.
|
||||||
|
* Lower value make the system MORE sensitive.
|
||||||
|
* Too low values can lead to false positives, while too high values will collide the axis without triggering.
|
||||||
|
* It is advised to set X/Y_HOME_BUMP_MM to 0.
|
||||||
|
* M914 X/Y to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define SENSORLESS_HOMING
|
||||||
|
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
|
#define X_HOMING_SENSITIVITY 19
|
||||||
|
#define Y_HOMING_SENSITIVITY 19
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* You can set your own advanced settings by filling in predefined functions.
|
* You can set your own advanced settings by filling in predefined functions.
|
||||||
|
|
|
@ -887,18 +887,6 @@
|
||||||
//#define HAVE_TMC2130
|
//#define HAVE_TMC2130
|
||||||
|
|
||||||
#if ENABLED(HAVE_TMC2130)
|
#if ENABLED(HAVE_TMC2130)
|
||||||
#define STEALTHCHOP
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Let Marlin automatically control stepper current.
|
|
||||||
* This is still an experimental feature.
|
|
||||||
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
|
||||||
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
|
||||||
* Adjusting starts from X/Y/Z/E_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX
|
|
||||||
*/
|
|
||||||
//#define AUTOMATIC_CURRENT_CONTROL
|
|
||||||
#define CURRENT_STEP 50 // [mA]
|
|
||||||
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
|
||||||
|
|
||||||
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
||||||
//#define X_IS_TMC2130
|
//#define X_IS_TMC2130
|
||||||
|
@ -921,45 +909,104 @@
|
||||||
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
||||||
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
||||||
|
|
||||||
#define X_MAX_CURRENT 1000 // rms current in mA
|
#define X_CURRENT 1000 // rms current in mA. Multiply by 1.41 for peak current.
|
||||||
#define X_MICROSTEPS 16 // FULLSTEP..256
|
#define X_MICROSTEPS 16 // 0..256
|
||||||
#define X_CHIP_SELECT 40 // Pin
|
|
||||||
|
|
||||||
#define Y_MAX_CURRENT 1000
|
#define Y_CURRENT 1000
|
||||||
#define Y_MICROSTEPS 16
|
#define Y_MICROSTEPS 16
|
||||||
#define Y_CHIP_SELECT 42
|
|
||||||
|
|
||||||
#define Z_MAX_CURRENT 1000
|
#define Z_CURRENT 1000
|
||||||
#define Z_MICROSTEPS 16
|
#define Z_MICROSTEPS 16
|
||||||
#define Z_CHIP_SELECT 65
|
|
||||||
|
|
||||||
//#define X2_MAX_CURRENT 1000
|
//#define X2_CURRENT 1000
|
||||||
//#define X2_MICROSTEPS 16
|
//#define X2_MICROSTEPS 16
|
||||||
//#define X2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Y2_MAX_CURRENT 1000
|
//#define Y2_CURRENT 1000
|
||||||
//#define Y2_MICROSTEPS 16
|
//#define Y2_MICROSTEPS 16
|
||||||
//#define Y2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Z2_MAX_CURRENT 1000
|
//#define Z2_CURRENT 1000
|
||||||
//#define Z2_MICROSTEPS 16
|
//#define Z2_MICROSTEPS 16
|
||||||
//#define Z2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E0_MAX_CURRENT 1000
|
//#define E0_CURRENT 1000
|
||||||
//#define E0_MICROSTEPS 16
|
//#define E0_MICROSTEPS 16
|
||||||
//#define E0_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E1_MAX_CURRENT 1000
|
//#define E1_CURRENT 1000
|
||||||
//#define E1_MICROSTEPS 16
|
//#define E1_MICROSTEPS 16
|
||||||
//#define E1_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E2_MAX_CURRENT 1000
|
//#define E2_CURRENT 1000
|
||||||
//#define E2_MICROSTEPS 16
|
//#define E2_MICROSTEPS 16
|
||||||
//#define E2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E3_MAX_CURRENT 1000
|
//#define E3_CURRENT 1000
|
||||||
//#define E3_MICROSTEPS 16
|
//#define E3_MICROSTEPS 16
|
||||||
//#define E3_CHIP_SELECT -1
|
|
||||||
|
//#define E4_CURRENT 1000
|
||||||
|
//#define E4_MICROSTEPS 16
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use Trinamic's ultra quiet stepping mode.
|
||||||
|
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||||
|
*/
|
||||||
|
#define STEALTHCHOP
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Let Marlin automatically control stepper current.
|
||||||
|
* This is still an experimental feature.
|
||||||
|
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
||||||
|
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
||||||
|
* Adjusting starts from X/Y/Z/E_CURRENT but will not increase over AUTO_ADJUST_MAX
|
||||||
|
* Relevant g-codes:
|
||||||
|
* M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given.
|
||||||
|
* M906 S1 - Start adjusting current
|
||||||
|
* M906 S0 - Stop adjusting current
|
||||||
|
* M911 - Report stepper driver overtemperature pre-warn condition.
|
||||||
|
* M912 - Clear stepper driver overtemperature pre-warn condition flag.
|
||||||
|
*/
|
||||||
|
//#define AUTOMATIC_CURRENT_CONTROL
|
||||||
|
|
||||||
|
#if ENABLED(AUTOMATIC_CURRENT_CONTROL)
|
||||||
|
#define CURRENT_STEP 50 // [mA]
|
||||||
|
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
||||||
|
#define REPORT_CURRENT_CHANGE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||||
|
* This mode allows for faster movements at the expense of higher noise levels.
|
||||||
|
* STEALTHCHOP needs to be enabled.
|
||||||
|
* M913 X/Y/Z/E to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define HYBRID_THRESHOLD
|
||||||
|
|
||||||
|
#define X_HYBRID_THRESHOLD 100 // [mm/s]
|
||||||
|
#define X2_HYBRID_THRESHOLD 100
|
||||||
|
#define Y_HYBRID_THRESHOLD 100
|
||||||
|
#define Y2_HYBRID_THRESHOLD 100
|
||||||
|
#define Z_HYBRID_THRESHOLD 4
|
||||||
|
#define Z2_HYBRID_THRESHOLD 4
|
||||||
|
#define E0_HYBRID_THRESHOLD 30
|
||||||
|
#define E1_HYBRID_THRESHOLD 30
|
||||||
|
#define E2_HYBRID_THRESHOLD 30
|
||||||
|
#define E3_HYBRID_THRESHOLD 30
|
||||||
|
#define E4_HYBRID_THRESHOLD 30
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use stallGuard2 to sense an obstacle and trigger an endstop.
|
||||||
|
* You need to place a wire from the driver's DIAG1 pin to the X/Y endstop pin.
|
||||||
|
* If used along with STEALTHCHOP, the movement will be louder when homing. This is normal.
|
||||||
|
*
|
||||||
|
* X/Y_HOMING_SENSITIVITY is used for tuning the trigger sensitivity.
|
||||||
|
* Higher values make the system LESS sensitive.
|
||||||
|
* Lower value make the system MORE sensitive.
|
||||||
|
* Too low values can lead to false positives, while too high values will collide the axis without triggering.
|
||||||
|
* It is advised to set X/Y_HOME_BUMP_MM to 0.
|
||||||
|
* M914 X/Y to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define SENSORLESS_HOMING
|
||||||
|
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
|
#define X_HOMING_SENSITIVITY 19
|
||||||
|
#define Y_HOMING_SENSITIVITY 19
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* You can set your own advanced settings by filling in predefined functions.
|
* You can set your own advanced settings by filling in predefined functions.
|
||||||
|
|
|
@ -882,18 +882,6 @@
|
||||||
//#define HAVE_TMC2130
|
//#define HAVE_TMC2130
|
||||||
|
|
||||||
#if ENABLED(HAVE_TMC2130)
|
#if ENABLED(HAVE_TMC2130)
|
||||||
#define STEALTHCHOP
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Let Marlin automatically control stepper current.
|
|
||||||
* This is still an experimental feature.
|
|
||||||
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
|
||||||
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
|
||||||
* Adjusting starts from X/Y/Z/E_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX
|
|
||||||
*/
|
|
||||||
//#define AUTOMATIC_CURRENT_CONTROL
|
|
||||||
#define CURRENT_STEP 50 // [mA]
|
|
||||||
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
|
||||||
|
|
||||||
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
||||||
//#define X_IS_TMC2130
|
//#define X_IS_TMC2130
|
||||||
|
@ -916,45 +904,104 @@
|
||||||
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
||||||
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
||||||
|
|
||||||
#define X_MAX_CURRENT 1000 // rms current in mA
|
#define X_CURRENT 1000 // rms current in mA. Multiply by 1.41 for peak current.
|
||||||
#define X_MICROSTEPS 16 // FULLSTEP..256
|
#define X_MICROSTEPS 16 // 0..256
|
||||||
#define X_CHIP_SELECT 40 // Pin
|
|
||||||
|
|
||||||
#define Y_MAX_CURRENT 1000
|
#define Y_CURRENT 1000
|
||||||
#define Y_MICROSTEPS 16
|
#define Y_MICROSTEPS 16
|
||||||
#define Y_CHIP_SELECT 42
|
|
||||||
|
|
||||||
#define Z_MAX_CURRENT 1000
|
#define Z_CURRENT 1000
|
||||||
#define Z_MICROSTEPS 16
|
#define Z_MICROSTEPS 16
|
||||||
#define Z_CHIP_SELECT 65
|
|
||||||
|
|
||||||
//#define X2_MAX_CURRENT 1000
|
//#define X2_CURRENT 1000
|
||||||
//#define X2_MICROSTEPS 16
|
//#define X2_MICROSTEPS 16
|
||||||
//#define X2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Y2_MAX_CURRENT 1000
|
//#define Y2_CURRENT 1000
|
||||||
//#define Y2_MICROSTEPS 16
|
//#define Y2_MICROSTEPS 16
|
||||||
//#define Y2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Z2_MAX_CURRENT 1000
|
//#define Z2_CURRENT 1000
|
||||||
//#define Z2_MICROSTEPS 16
|
//#define Z2_MICROSTEPS 16
|
||||||
//#define Z2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E0_MAX_CURRENT 1000
|
//#define E0_CURRENT 1000
|
||||||
//#define E0_MICROSTEPS 16
|
//#define E0_MICROSTEPS 16
|
||||||
//#define E0_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E1_MAX_CURRENT 1000
|
//#define E1_CURRENT 1000
|
||||||
//#define E1_MICROSTEPS 16
|
//#define E1_MICROSTEPS 16
|
||||||
//#define E1_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E2_MAX_CURRENT 1000
|
//#define E2_CURRENT 1000
|
||||||
//#define E2_MICROSTEPS 16
|
//#define E2_MICROSTEPS 16
|
||||||
//#define E2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E3_MAX_CURRENT 1000
|
//#define E3_CURRENT 1000
|
||||||
//#define E3_MICROSTEPS 16
|
//#define E3_MICROSTEPS 16
|
||||||
//#define E3_CHIP_SELECT -1
|
|
||||||
|
//#define E4_CURRENT 1000
|
||||||
|
//#define E4_MICROSTEPS 16
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use Trinamic's ultra quiet stepping mode.
|
||||||
|
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||||
|
*/
|
||||||
|
#define STEALTHCHOP
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Let Marlin automatically control stepper current.
|
||||||
|
* This is still an experimental feature.
|
||||||
|
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
||||||
|
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
||||||
|
* Adjusting starts from X/Y/Z/E_CURRENT but will not increase over AUTO_ADJUST_MAX
|
||||||
|
* Relevant g-codes:
|
||||||
|
* M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given.
|
||||||
|
* M906 S1 - Start adjusting current
|
||||||
|
* M906 S0 - Stop adjusting current
|
||||||
|
* M911 - Report stepper driver overtemperature pre-warn condition.
|
||||||
|
* M912 - Clear stepper driver overtemperature pre-warn condition flag.
|
||||||
|
*/
|
||||||
|
//#define AUTOMATIC_CURRENT_CONTROL
|
||||||
|
|
||||||
|
#if ENABLED(AUTOMATIC_CURRENT_CONTROL)
|
||||||
|
#define CURRENT_STEP 50 // [mA]
|
||||||
|
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
||||||
|
#define REPORT_CURRENT_CHANGE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||||
|
* This mode allows for faster movements at the expense of higher noise levels.
|
||||||
|
* STEALTHCHOP needs to be enabled.
|
||||||
|
* M913 X/Y/Z/E to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define HYBRID_THRESHOLD
|
||||||
|
|
||||||
|
#define X_HYBRID_THRESHOLD 100 // [mm/s]
|
||||||
|
#define X2_HYBRID_THRESHOLD 100
|
||||||
|
#define Y_HYBRID_THRESHOLD 100
|
||||||
|
#define Y2_HYBRID_THRESHOLD 100
|
||||||
|
#define Z_HYBRID_THRESHOLD 4
|
||||||
|
#define Z2_HYBRID_THRESHOLD 4
|
||||||
|
#define E0_HYBRID_THRESHOLD 30
|
||||||
|
#define E1_HYBRID_THRESHOLD 30
|
||||||
|
#define E2_HYBRID_THRESHOLD 30
|
||||||
|
#define E3_HYBRID_THRESHOLD 30
|
||||||
|
#define E4_HYBRID_THRESHOLD 30
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use stallGuard2 to sense an obstacle and trigger an endstop.
|
||||||
|
* You need to place a wire from the driver's DIAG1 pin to the X/Y endstop pin.
|
||||||
|
* If used along with STEALTHCHOP, the movement will be louder when homing. This is normal.
|
||||||
|
*
|
||||||
|
* X/Y_HOMING_SENSITIVITY is used for tuning the trigger sensitivity.
|
||||||
|
* Higher values make the system LESS sensitive.
|
||||||
|
* Lower value make the system MORE sensitive.
|
||||||
|
* Too low values can lead to false positives, while too high values will collide the axis without triggering.
|
||||||
|
* It is advised to set X/Y_HOME_BUMP_MM to 0.
|
||||||
|
* M914 X/Y to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define SENSORLESS_HOMING
|
||||||
|
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
|
#define X_HOMING_SENSITIVITY 19
|
||||||
|
#define Y_HOMING_SENSITIVITY 19
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* You can set your own advanced settings by filling in predefined functions.
|
* You can set your own advanced settings by filling in predefined functions.
|
||||||
|
|
|
@ -879,18 +879,6 @@
|
||||||
//#define HAVE_TMC2130
|
//#define HAVE_TMC2130
|
||||||
|
|
||||||
#if ENABLED(HAVE_TMC2130)
|
#if ENABLED(HAVE_TMC2130)
|
||||||
#define STEALTHCHOP
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Let Marlin automatically control stepper current.
|
|
||||||
* This is still an experimental feature.
|
|
||||||
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
|
||||||
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
|
||||||
* Adjusting starts from X/Y/Z/E_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX
|
|
||||||
*/
|
|
||||||
//#define AUTOMATIC_CURRENT_CONTROL
|
|
||||||
#define CURRENT_STEP 50 // [mA]
|
|
||||||
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
|
||||||
|
|
||||||
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
||||||
//#define X_IS_TMC2130
|
//#define X_IS_TMC2130
|
||||||
|
@ -913,45 +901,104 @@
|
||||||
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
||||||
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
||||||
|
|
||||||
#define X_MAX_CURRENT 1000 // rms current in mA
|
#define X_CURRENT 1000 // rms current in mA. Multiply by 1.41 for peak current.
|
||||||
#define X_MICROSTEPS 16 // FULLSTEP..256
|
#define X_MICROSTEPS 16 // 0..256
|
||||||
#define X_CHIP_SELECT 40 // Pin
|
|
||||||
|
|
||||||
#define Y_MAX_CURRENT 1000
|
#define Y_CURRENT 1000
|
||||||
#define Y_MICROSTEPS 16
|
#define Y_MICROSTEPS 16
|
||||||
#define Y_CHIP_SELECT 42
|
|
||||||
|
|
||||||
#define Z_MAX_CURRENT 1000
|
#define Z_CURRENT 1000
|
||||||
#define Z_MICROSTEPS 16
|
#define Z_MICROSTEPS 16
|
||||||
#define Z_CHIP_SELECT 65
|
|
||||||
|
|
||||||
//#define X2_MAX_CURRENT 1000
|
//#define X2_CURRENT 1000
|
||||||
//#define X2_MICROSTEPS 16
|
//#define X2_MICROSTEPS 16
|
||||||
//#define X2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Y2_MAX_CURRENT 1000
|
//#define Y2_CURRENT 1000
|
||||||
//#define Y2_MICROSTEPS 16
|
//#define Y2_MICROSTEPS 16
|
||||||
//#define Y2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Z2_MAX_CURRENT 1000
|
//#define Z2_CURRENT 1000
|
||||||
//#define Z2_MICROSTEPS 16
|
//#define Z2_MICROSTEPS 16
|
||||||
//#define Z2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E0_MAX_CURRENT 1000
|
//#define E0_CURRENT 1000
|
||||||
//#define E0_MICROSTEPS 16
|
//#define E0_MICROSTEPS 16
|
||||||
//#define E0_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E1_MAX_CURRENT 1000
|
//#define E1_CURRENT 1000
|
||||||
//#define E1_MICROSTEPS 16
|
//#define E1_MICROSTEPS 16
|
||||||
//#define E1_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E2_MAX_CURRENT 1000
|
//#define E2_CURRENT 1000
|
||||||
//#define E2_MICROSTEPS 16
|
//#define E2_MICROSTEPS 16
|
||||||
//#define E2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E3_MAX_CURRENT 1000
|
//#define E3_CURRENT 1000
|
||||||
//#define E3_MICROSTEPS 16
|
//#define E3_MICROSTEPS 16
|
||||||
//#define E3_CHIP_SELECT -1
|
|
||||||
|
//#define E4_CURRENT 1000
|
||||||
|
//#define E4_MICROSTEPS 16
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use Trinamic's ultra quiet stepping mode.
|
||||||
|
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||||
|
*/
|
||||||
|
#define STEALTHCHOP
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Let Marlin automatically control stepper current.
|
||||||
|
* This is still an experimental feature.
|
||||||
|
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
||||||
|
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
||||||
|
* Adjusting starts from X/Y/Z/E_CURRENT but will not increase over AUTO_ADJUST_MAX
|
||||||
|
* Relevant g-codes:
|
||||||
|
* M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given.
|
||||||
|
* M906 S1 - Start adjusting current
|
||||||
|
* M906 S0 - Stop adjusting current
|
||||||
|
* M911 - Report stepper driver overtemperature pre-warn condition.
|
||||||
|
* M912 - Clear stepper driver overtemperature pre-warn condition flag.
|
||||||
|
*/
|
||||||
|
//#define AUTOMATIC_CURRENT_CONTROL
|
||||||
|
|
||||||
|
#if ENABLED(AUTOMATIC_CURRENT_CONTROL)
|
||||||
|
#define CURRENT_STEP 50 // [mA]
|
||||||
|
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
||||||
|
#define REPORT_CURRENT_CHANGE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||||
|
* This mode allows for faster movements at the expense of higher noise levels.
|
||||||
|
* STEALTHCHOP needs to be enabled.
|
||||||
|
* M913 X/Y/Z/E to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define HYBRID_THRESHOLD
|
||||||
|
|
||||||
|
#define X_HYBRID_THRESHOLD 100 // [mm/s]
|
||||||
|
#define X2_HYBRID_THRESHOLD 100
|
||||||
|
#define Y_HYBRID_THRESHOLD 100
|
||||||
|
#define Y2_HYBRID_THRESHOLD 100
|
||||||
|
#define Z_HYBRID_THRESHOLD 4
|
||||||
|
#define Z2_HYBRID_THRESHOLD 4
|
||||||
|
#define E0_HYBRID_THRESHOLD 30
|
||||||
|
#define E1_HYBRID_THRESHOLD 30
|
||||||
|
#define E2_HYBRID_THRESHOLD 30
|
||||||
|
#define E3_HYBRID_THRESHOLD 30
|
||||||
|
#define E4_HYBRID_THRESHOLD 30
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use stallGuard2 to sense an obstacle and trigger an endstop.
|
||||||
|
* You need to place a wire from the driver's DIAG1 pin to the X/Y endstop pin.
|
||||||
|
* If used along with STEALTHCHOP, the movement will be louder when homing. This is normal.
|
||||||
|
*
|
||||||
|
* X/Y_HOMING_SENSITIVITY is used for tuning the trigger sensitivity.
|
||||||
|
* Higher values make the system LESS sensitive.
|
||||||
|
* Lower value make the system MORE sensitive.
|
||||||
|
* Too low values can lead to false positives, while too high values will collide the axis without triggering.
|
||||||
|
* It is advised to set X/Y_HOME_BUMP_MM to 0.
|
||||||
|
* M914 X/Y to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define SENSORLESS_HOMING
|
||||||
|
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
|
#define X_HOMING_SENSITIVITY 19
|
||||||
|
#define Y_HOMING_SENSITIVITY 19
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* You can set your own advanced settings by filling in predefined functions.
|
* You can set your own advanced settings by filling in predefined functions.
|
||||||
|
|
|
@ -327,7 +327,11 @@
|
||||||
// Default x offset in duplication mode (typically set to half print bed width)
|
// Default x offset in duplication mode (typically set to half print bed width)
|
||||||
#define DEFAULT_DUPLICATION_X_OFFSET 100
|
#define DEFAULT_DUPLICATION_X_OFFSET 100
|
||||||
|
|
||||||
#endif //DUAL_X_CARRIAGE
|
#endif // DUAL_X_CARRIAGE
|
||||||
|
|
||||||
|
// Activate a solenoid on the active extruder with M380. Disable all with M381.
|
||||||
|
// Define SOL0_PIN, SOL1_PIN, etc., for each extruder that has a solenoid.
|
||||||
|
//#define EXT_SOLENOID
|
||||||
|
|
||||||
// @section homing
|
// @section homing
|
||||||
|
|
||||||
|
@ -899,18 +903,6 @@
|
||||||
//#define HAVE_TMC2130
|
//#define HAVE_TMC2130
|
||||||
|
|
||||||
#if ENABLED(HAVE_TMC2130)
|
#if ENABLED(HAVE_TMC2130)
|
||||||
#define STEALTHCHOP
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Let Marlin automatically control stepper current.
|
|
||||||
* This is still an experimental feature.
|
|
||||||
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
|
||||||
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
|
||||||
* Adjusting starts from X/Y/Z/E_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX
|
|
||||||
*/
|
|
||||||
//#define AUTOMATIC_CURRENT_CONTROL
|
|
||||||
#define CURRENT_STEP 50 // [mA]
|
|
||||||
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
|
||||||
|
|
||||||
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
||||||
//#define X_IS_TMC2130
|
//#define X_IS_TMC2130
|
||||||
|
@ -933,45 +925,104 @@
|
||||||
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
||||||
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
||||||
|
|
||||||
#define X_MAX_CURRENT 1000 // rms current in mA
|
#define X_CURRENT 1000 // rms current in mA. Multiply by 1.41 for peak current.
|
||||||
#define X_MICROSTEPS 16 // FULLSTEP..256
|
#define X_MICROSTEPS 16 // 0..256
|
||||||
#define X_CHIP_SELECT 40 // Pin
|
|
||||||
|
|
||||||
#define Y_MAX_CURRENT 1000
|
#define Y_CURRENT 1000
|
||||||
#define Y_MICROSTEPS 16
|
#define Y_MICROSTEPS 16
|
||||||
#define Y_CHIP_SELECT 42
|
|
||||||
|
|
||||||
#define Z_MAX_CURRENT 1000
|
#define Z_CURRENT 1000
|
||||||
#define Z_MICROSTEPS 16
|
#define Z_MICROSTEPS 16
|
||||||
#define Z_CHIP_SELECT 65
|
|
||||||
|
|
||||||
//#define X2_MAX_CURRENT 1000
|
//#define X2_CURRENT 1000
|
||||||
//#define X2_MICROSTEPS 16
|
//#define X2_MICROSTEPS 16
|
||||||
//#define X2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Y2_MAX_CURRENT 1000
|
//#define Y2_CURRENT 1000
|
||||||
//#define Y2_MICROSTEPS 16
|
//#define Y2_MICROSTEPS 16
|
||||||
//#define Y2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Z2_MAX_CURRENT 1000
|
//#define Z2_CURRENT 1000
|
||||||
//#define Z2_MICROSTEPS 16
|
//#define Z2_MICROSTEPS 16
|
||||||
//#define Z2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E0_MAX_CURRENT 1000
|
//#define E0_CURRENT 1000
|
||||||
//#define E0_MICROSTEPS 16
|
//#define E0_MICROSTEPS 16
|
||||||
//#define E0_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E1_MAX_CURRENT 1000
|
//#define E1_CURRENT 1000
|
||||||
//#define E1_MICROSTEPS 16
|
//#define E1_MICROSTEPS 16
|
||||||
//#define E1_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E2_MAX_CURRENT 1000
|
//#define E2_CURRENT 1000
|
||||||
//#define E2_MICROSTEPS 16
|
//#define E2_MICROSTEPS 16
|
||||||
//#define E2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E3_MAX_CURRENT 1000
|
//#define E3_CURRENT 1000
|
||||||
//#define E3_MICROSTEPS 16
|
//#define E3_MICROSTEPS 16
|
||||||
//#define E3_CHIP_SELECT -1
|
|
||||||
|
//#define E4_CURRENT 1000
|
||||||
|
//#define E4_MICROSTEPS 16
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use Trinamic's ultra quiet stepping mode.
|
||||||
|
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||||
|
*/
|
||||||
|
#define STEALTHCHOP
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Let Marlin automatically control stepper current.
|
||||||
|
* This is still an experimental feature.
|
||||||
|
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
||||||
|
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
||||||
|
* Adjusting starts from X/Y/Z/E_CURRENT but will not increase over AUTO_ADJUST_MAX
|
||||||
|
* Relevant g-codes:
|
||||||
|
* M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given.
|
||||||
|
* M906 S1 - Start adjusting current
|
||||||
|
* M906 S0 - Stop adjusting current
|
||||||
|
* M911 - Report stepper driver overtemperature pre-warn condition.
|
||||||
|
* M912 - Clear stepper driver overtemperature pre-warn condition flag.
|
||||||
|
*/
|
||||||
|
//#define AUTOMATIC_CURRENT_CONTROL
|
||||||
|
|
||||||
|
#if ENABLED(AUTOMATIC_CURRENT_CONTROL)
|
||||||
|
#define CURRENT_STEP 50 // [mA]
|
||||||
|
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
||||||
|
#define REPORT_CURRENT_CHANGE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||||
|
* This mode allows for faster movements at the expense of higher noise levels.
|
||||||
|
* STEALTHCHOP needs to be enabled.
|
||||||
|
* M913 X/Y/Z/E to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define HYBRID_THRESHOLD
|
||||||
|
|
||||||
|
#define X_HYBRID_THRESHOLD 100 // [mm/s]
|
||||||
|
#define X2_HYBRID_THRESHOLD 100
|
||||||
|
#define Y_HYBRID_THRESHOLD 100
|
||||||
|
#define Y2_HYBRID_THRESHOLD 100
|
||||||
|
#define Z_HYBRID_THRESHOLD 4
|
||||||
|
#define Z2_HYBRID_THRESHOLD 4
|
||||||
|
#define E0_HYBRID_THRESHOLD 30
|
||||||
|
#define E1_HYBRID_THRESHOLD 30
|
||||||
|
#define E2_HYBRID_THRESHOLD 30
|
||||||
|
#define E3_HYBRID_THRESHOLD 30
|
||||||
|
#define E4_HYBRID_THRESHOLD 30
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use stallGuard2 to sense an obstacle and trigger an endstop.
|
||||||
|
* You need to place a wire from the driver's DIAG1 pin to the X/Y endstop pin.
|
||||||
|
* If used along with STEALTHCHOP, the movement will be louder when homing. This is normal.
|
||||||
|
*
|
||||||
|
* X/Y_HOMING_SENSITIVITY is used for tuning the trigger sensitivity.
|
||||||
|
* Higher values make the system LESS sensitive.
|
||||||
|
* Lower value make the system MORE sensitive.
|
||||||
|
* Too low values can lead to false positives, while too high values will collide the axis without triggering.
|
||||||
|
* It is advised to set X/Y_HOME_BUMP_MM to 0.
|
||||||
|
* M914 X/Y to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define SENSORLESS_HOMING
|
||||||
|
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
|
#define X_HOMING_SENSITIVITY 19
|
||||||
|
#define Y_HOMING_SENSITIVITY 19
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* You can set your own advanced settings by filling in predefined functions.
|
* You can set your own advanced settings by filling in predefined functions.
|
||||||
|
|
|
@ -902,18 +902,6 @@
|
||||||
//#define HAVE_TMC2130
|
//#define HAVE_TMC2130
|
||||||
|
|
||||||
#if ENABLED(HAVE_TMC2130)
|
#if ENABLED(HAVE_TMC2130)
|
||||||
#define STEALTHCHOP
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Let Marlin automatically control stepper current.
|
|
||||||
* This is still an experimental feature.
|
|
||||||
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
|
||||||
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
|
||||||
* Adjusting starts from X/Y/Z/E_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX
|
|
||||||
*/
|
|
||||||
//#define AUTOMATIC_CURRENT_CONTROL
|
|
||||||
#define CURRENT_STEP 50 // [mA]
|
|
||||||
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
|
||||||
|
|
||||||
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
||||||
//#define X_IS_TMC2130
|
//#define X_IS_TMC2130
|
||||||
|
@ -936,45 +924,104 @@
|
||||||
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
||||||
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
||||||
|
|
||||||
#define X_MAX_CURRENT 1000 // rms current in mA
|
#define X_CURRENT 1000 // rms current in mA. Multiply by 1.41 for peak current.
|
||||||
#define X_MICROSTEPS 16 // FULLSTEP..256
|
#define X_MICROSTEPS 16 // 0..256
|
||||||
#define X_CHIP_SELECT 40 // Pin
|
|
||||||
|
|
||||||
#define Y_MAX_CURRENT 1000
|
#define Y_CURRENT 1000
|
||||||
#define Y_MICROSTEPS 16
|
#define Y_MICROSTEPS 16
|
||||||
#define Y_CHIP_SELECT 42
|
|
||||||
|
|
||||||
#define Z_MAX_CURRENT 1000
|
#define Z_CURRENT 1000
|
||||||
#define Z_MICROSTEPS 16
|
#define Z_MICROSTEPS 16
|
||||||
#define Z_CHIP_SELECT 65
|
|
||||||
|
|
||||||
//#define X2_MAX_CURRENT 1000
|
//#define X2_CURRENT 1000
|
||||||
//#define X2_MICROSTEPS 16
|
//#define X2_MICROSTEPS 16
|
||||||
//#define X2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Y2_MAX_CURRENT 1000
|
//#define Y2_CURRENT 1000
|
||||||
//#define Y2_MICROSTEPS 16
|
//#define Y2_MICROSTEPS 16
|
||||||
//#define Y2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Z2_MAX_CURRENT 1000
|
//#define Z2_CURRENT 1000
|
||||||
//#define Z2_MICROSTEPS 16
|
//#define Z2_MICROSTEPS 16
|
||||||
//#define Z2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E0_MAX_CURRENT 1000
|
//#define E0_CURRENT 1000
|
||||||
//#define E0_MICROSTEPS 16
|
//#define E0_MICROSTEPS 16
|
||||||
//#define E0_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E1_MAX_CURRENT 1000
|
//#define E1_CURRENT 1000
|
||||||
//#define E1_MICROSTEPS 16
|
//#define E1_MICROSTEPS 16
|
||||||
//#define E1_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E2_MAX_CURRENT 1000
|
//#define E2_CURRENT 1000
|
||||||
//#define E2_MICROSTEPS 16
|
//#define E2_MICROSTEPS 16
|
||||||
//#define E2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E3_MAX_CURRENT 1000
|
//#define E3_CURRENT 1000
|
||||||
//#define E3_MICROSTEPS 16
|
//#define E3_MICROSTEPS 16
|
||||||
//#define E3_CHIP_SELECT -1
|
|
||||||
|
//#define E4_CURRENT 1000
|
||||||
|
//#define E4_MICROSTEPS 16
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use Trinamic's ultra quiet stepping mode.
|
||||||
|
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||||
|
*/
|
||||||
|
#define STEALTHCHOP
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Let Marlin automatically control stepper current.
|
||||||
|
* This is still an experimental feature.
|
||||||
|
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
||||||
|
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
||||||
|
* Adjusting starts from X/Y/Z/E_CURRENT but will not increase over AUTO_ADJUST_MAX
|
||||||
|
* Relevant g-codes:
|
||||||
|
* M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given.
|
||||||
|
* M906 S1 - Start adjusting current
|
||||||
|
* M906 S0 - Stop adjusting current
|
||||||
|
* M911 - Report stepper driver overtemperature pre-warn condition.
|
||||||
|
* M912 - Clear stepper driver overtemperature pre-warn condition flag.
|
||||||
|
*/
|
||||||
|
//#define AUTOMATIC_CURRENT_CONTROL
|
||||||
|
|
||||||
|
#if ENABLED(AUTOMATIC_CURRENT_CONTROL)
|
||||||
|
#define CURRENT_STEP 50 // [mA]
|
||||||
|
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
||||||
|
#define REPORT_CURRENT_CHANGE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||||
|
* This mode allows for faster movements at the expense of higher noise levels.
|
||||||
|
* STEALTHCHOP needs to be enabled.
|
||||||
|
* M913 X/Y/Z/E to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define HYBRID_THRESHOLD
|
||||||
|
|
||||||
|
#define X_HYBRID_THRESHOLD 100 // [mm/s]
|
||||||
|
#define X2_HYBRID_THRESHOLD 100
|
||||||
|
#define Y_HYBRID_THRESHOLD 100
|
||||||
|
#define Y2_HYBRID_THRESHOLD 100
|
||||||
|
#define Z_HYBRID_THRESHOLD 4
|
||||||
|
#define Z2_HYBRID_THRESHOLD 4
|
||||||
|
#define E0_HYBRID_THRESHOLD 30
|
||||||
|
#define E1_HYBRID_THRESHOLD 30
|
||||||
|
#define E2_HYBRID_THRESHOLD 30
|
||||||
|
#define E3_HYBRID_THRESHOLD 30
|
||||||
|
#define E4_HYBRID_THRESHOLD 30
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use stallGuard2 to sense an obstacle and trigger an endstop.
|
||||||
|
* You need to place a wire from the driver's DIAG1 pin to the X/Y endstop pin.
|
||||||
|
* If used along with STEALTHCHOP, the movement will be louder when homing. This is normal.
|
||||||
|
*
|
||||||
|
* X/Y_HOMING_SENSITIVITY is used for tuning the trigger sensitivity.
|
||||||
|
* Higher values make the system LESS sensitive.
|
||||||
|
* Lower value make the system MORE sensitive.
|
||||||
|
* Too low values can lead to false positives, while too high values will collide the axis without triggering.
|
||||||
|
* It is advised to set X/Y_HOME_BUMP_MM to 0.
|
||||||
|
* M914 X/Y to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define SENSORLESS_HOMING
|
||||||
|
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
|
#define X_HOMING_SENSITIVITY 19
|
||||||
|
#define Y_HOMING_SENSITIVITY 19
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* You can set your own advanced settings by filling in predefined functions.
|
* You can set your own advanced settings by filling in predefined functions.
|
||||||
|
|
|
@ -900,18 +900,6 @@
|
||||||
//#define HAVE_TMC2130
|
//#define HAVE_TMC2130
|
||||||
|
|
||||||
#if ENABLED(HAVE_TMC2130)
|
#if ENABLED(HAVE_TMC2130)
|
||||||
#define STEALTHCHOP
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Let Marlin automatically control stepper current.
|
|
||||||
* This is still an experimental feature.
|
|
||||||
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
|
||||||
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
|
||||||
* Adjusting starts from X/Y/Z/E_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX
|
|
||||||
*/
|
|
||||||
//#define AUTOMATIC_CURRENT_CONTROL
|
|
||||||
#define CURRENT_STEP 50 // [mA]
|
|
||||||
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
|
||||||
|
|
||||||
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
||||||
//#define X_IS_TMC2130
|
//#define X_IS_TMC2130
|
||||||
|
@ -934,45 +922,104 @@
|
||||||
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
||||||
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
||||||
|
|
||||||
#define X_MAX_CURRENT 1000 // rms current in mA
|
#define X_CURRENT 1000 // rms current in mA. Multiply by 1.41 for peak current.
|
||||||
#define X_MICROSTEPS 16 // FULLSTEP..256
|
#define X_MICROSTEPS 16 // 0..256
|
||||||
#define X_CHIP_SELECT 40 // Pin
|
|
||||||
|
|
||||||
#define Y_MAX_CURRENT 1000
|
#define Y_CURRENT 1000
|
||||||
#define Y_MICROSTEPS 16
|
#define Y_MICROSTEPS 16
|
||||||
#define Y_CHIP_SELECT 42
|
|
||||||
|
|
||||||
#define Z_MAX_CURRENT 1000
|
#define Z_CURRENT 1000
|
||||||
#define Z_MICROSTEPS 16
|
#define Z_MICROSTEPS 16
|
||||||
#define Z_CHIP_SELECT 65
|
|
||||||
|
|
||||||
//#define X2_MAX_CURRENT 1000
|
//#define X2_CURRENT 1000
|
||||||
//#define X2_MICROSTEPS 16
|
//#define X2_MICROSTEPS 16
|
||||||
//#define X2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Y2_MAX_CURRENT 1000
|
//#define Y2_CURRENT 1000
|
||||||
//#define Y2_MICROSTEPS 16
|
//#define Y2_MICROSTEPS 16
|
||||||
//#define Y2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Z2_MAX_CURRENT 1000
|
//#define Z2_CURRENT 1000
|
||||||
//#define Z2_MICROSTEPS 16
|
//#define Z2_MICROSTEPS 16
|
||||||
//#define Z2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E0_MAX_CURRENT 1000
|
//#define E0_CURRENT 1000
|
||||||
//#define E0_MICROSTEPS 16
|
//#define E0_MICROSTEPS 16
|
||||||
//#define E0_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E1_MAX_CURRENT 1000
|
//#define E1_CURRENT 1000
|
||||||
//#define E1_MICROSTEPS 16
|
//#define E1_MICROSTEPS 16
|
||||||
//#define E1_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E2_MAX_CURRENT 1000
|
//#define E2_CURRENT 1000
|
||||||
//#define E2_MICROSTEPS 16
|
//#define E2_MICROSTEPS 16
|
||||||
//#define E2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E3_MAX_CURRENT 1000
|
//#define E3_CURRENT 1000
|
||||||
//#define E3_MICROSTEPS 16
|
//#define E3_MICROSTEPS 16
|
||||||
//#define E3_CHIP_SELECT -1
|
|
||||||
|
//#define E4_CURRENT 1000
|
||||||
|
//#define E4_MICROSTEPS 16
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use Trinamic's ultra quiet stepping mode.
|
||||||
|
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||||
|
*/
|
||||||
|
#define STEALTHCHOP
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Let Marlin automatically control stepper current.
|
||||||
|
* This is still an experimental feature.
|
||||||
|
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
||||||
|
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
||||||
|
* Adjusting starts from X/Y/Z/E_CURRENT but will not increase over AUTO_ADJUST_MAX
|
||||||
|
* Relevant g-codes:
|
||||||
|
* M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given.
|
||||||
|
* M906 S1 - Start adjusting current
|
||||||
|
* M906 S0 - Stop adjusting current
|
||||||
|
* M911 - Report stepper driver overtemperature pre-warn condition.
|
||||||
|
* M912 - Clear stepper driver overtemperature pre-warn condition flag.
|
||||||
|
*/
|
||||||
|
//#define AUTOMATIC_CURRENT_CONTROL
|
||||||
|
|
||||||
|
#if ENABLED(AUTOMATIC_CURRENT_CONTROL)
|
||||||
|
#define CURRENT_STEP 50 // [mA]
|
||||||
|
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
||||||
|
#define REPORT_CURRENT_CHANGE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||||
|
* This mode allows for faster movements at the expense of higher noise levels.
|
||||||
|
* STEALTHCHOP needs to be enabled.
|
||||||
|
* M913 X/Y/Z/E to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define HYBRID_THRESHOLD
|
||||||
|
|
||||||
|
#define X_HYBRID_THRESHOLD 100 // [mm/s]
|
||||||
|
#define X2_HYBRID_THRESHOLD 100
|
||||||
|
#define Y_HYBRID_THRESHOLD 100
|
||||||
|
#define Y2_HYBRID_THRESHOLD 100
|
||||||
|
#define Z_HYBRID_THRESHOLD 4
|
||||||
|
#define Z2_HYBRID_THRESHOLD 4
|
||||||
|
#define E0_HYBRID_THRESHOLD 30
|
||||||
|
#define E1_HYBRID_THRESHOLD 30
|
||||||
|
#define E2_HYBRID_THRESHOLD 30
|
||||||
|
#define E3_HYBRID_THRESHOLD 30
|
||||||
|
#define E4_HYBRID_THRESHOLD 30
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use stallGuard2 to sense an obstacle and trigger an endstop.
|
||||||
|
* You need to place a wire from the driver's DIAG1 pin to the X/Y endstop pin.
|
||||||
|
* If used along with STEALTHCHOP, the movement will be louder when homing. This is normal.
|
||||||
|
*
|
||||||
|
* X/Y_HOMING_SENSITIVITY is used for tuning the trigger sensitivity.
|
||||||
|
* Higher values make the system LESS sensitive.
|
||||||
|
* Lower value make the system MORE sensitive.
|
||||||
|
* Too low values can lead to false positives, while too high values will collide the axis without triggering.
|
||||||
|
* It is advised to set X/Y_HOME_BUMP_MM to 0.
|
||||||
|
* M914 X/Y to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define SENSORLESS_HOMING
|
||||||
|
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
|
#define X_HOMING_SENSITIVITY 19
|
||||||
|
#define Y_HOMING_SENSITIVITY 19
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* You can set your own advanced settings by filling in predefined functions.
|
* You can set your own advanced settings by filling in predefined functions.
|
||||||
|
|
|
@ -900,18 +900,6 @@
|
||||||
//#define HAVE_TMC2130
|
//#define HAVE_TMC2130
|
||||||
|
|
||||||
#if ENABLED(HAVE_TMC2130)
|
#if ENABLED(HAVE_TMC2130)
|
||||||
#define STEALTHCHOP
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Let Marlin automatically control stepper current.
|
|
||||||
* This is still an experimental feature.
|
|
||||||
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
|
||||||
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
|
||||||
* Adjusting starts from X/Y/Z/E_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX
|
|
||||||
*/
|
|
||||||
//#define AUTOMATIC_CURRENT_CONTROL
|
|
||||||
#define CURRENT_STEP 50 // [mA]
|
|
||||||
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
|
||||||
|
|
||||||
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
||||||
//#define X_IS_TMC2130
|
//#define X_IS_TMC2130
|
||||||
|
@ -934,45 +922,104 @@
|
||||||
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
||||||
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
||||||
|
|
||||||
#define X_MAX_CURRENT 1000 // rms current in mA
|
#define X_CURRENT 1000 // rms current in mA. Multiply by 1.41 for peak current.
|
||||||
#define X_MICROSTEPS 16 // FULLSTEP..256
|
#define X_MICROSTEPS 16 // 0..256
|
||||||
#define X_CHIP_SELECT 40 // Pin
|
|
||||||
|
|
||||||
#define Y_MAX_CURRENT 1000
|
#define Y_CURRENT 1000
|
||||||
#define Y_MICROSTEPS 16
|
#define Y_MICROSTEPS 16
|
||||||
#define Y_CHIP_SELECT 42
|
|
||||||
|
|
||||||
#define Z_MAX_CURRENT 1000
|
#define Z_CURRENT 1000
|
||||||
#define Z_MICROSTEPS 16
|
#define Z_MICROSTEPS 16
|
||||||
#define Z_CHIP_SELECT 65
|
|
||||||
|
|
||||||
//#define X2_MAX_CURRENT 1000
|
//#define X2_CURRENT 1000
|
||||||
//#define X2_MICROSTEPS 16
|
//#define X2_MICROSTEPS 16
|
||||||
//#define X2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Y2_MAX_CURRENT 1000
|
//#define Y2_CURRENT 1000
|
||||||
//#define Y2_MICROSTEPS 16
|
//#define Y2_MICROSTEPS 16
|
||||||
//#define Y2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Z2_MAX_CURRENT 1000
|
//#define Z2_CURRENT 1000
|
||||||
//#define Z2_MICROSTEPS 16
|
//#define Z2_MICROSTEPS 16
|
||||||
//#define Z2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E0_MAX_CURRENT 1000
|
//#define E0_CURRENT 1000
|
||||||
//#define E0_MICROSTEPS 16
|
//#define E0_MICROSTEPS 16
|
||||||
//#define E0_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E1_MAX_CURRENT 1000
|
//#define E1_CURRENT 1000
|
||||||
//#define E1_MICROSTEPS 16
|
//#define E1_MICROSTEPS 16
|
||||||
//#define E1_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E2_MAX_CURRENT 1000
|
//#define E2_CURRENT 1000
|
||||||
//#define E2_MICROSTEPS 16
|
//#define E2_MICROSTEPS 16
|
||||||
//#define E2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E3_MAX_CURRENT 1000
|
//#define E3_CURRENT 1000
|
||||||
//#define E3_MICROSTEPS 16
|
//#define E3_MICROSTEPS 16
|
||||||
//#define E3_CHIP_SELECT -1
|
|
||||||
|
//#define E4_CURRENT 1000
|
||||||
|
//#define E4_MICROSTEPS 16
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use Trinamic's ultra quiet stepping mode.
|
||||||
|
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||||
|
*/
|
||||||
|
#define STEALTHCHOP
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Let Marlin automatically control stepper current.
|
||||||
|
* This is still an experimental feature.
|
||||||
|
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
||||||
|
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
||||||
|
* Adjusting starts from X/Y/Z/E_CURRENT but will not increase over AUTO_ADJUST_MAX
|
||||||
|
* Relevant g-codes:
|
||||||
|
* M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given.
|
||||||
|
* M906 S1 - Start adjusting current
|
||||||
|
* M906 S0 - Stop adjusting current
|
||||||
|
* M911 - Report stepper driver overtemperature pre-warn condition.
|
||||||
|
* M912 - Clear stepper driver overtemperature pre-warn condition flag.
|
||||||
|
*/
|
||||||
|
//#define AUTOMATIC_CURRENT_CONTROL
|
||||||
|
|
||||||
|
#if ENABLED(AUTOMATIC_CURRENT_CONTROL)
|
||||||
|
#define CURRENT_STEP 50 // [mA]
|
||||||
|
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
||||||
|
#define REPORT_CURRENT_CHANGE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||||
|
* This mode allows for faster movements at the expense of higher noise levels.
|
||||||
|
* STEALTHCHOP needs to be enabled.
|
||||||
|
* M913 X/Y/Z/E to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define HYBRID_THRESHOLD
|
||||||
|
|
||||||
|
#define X_HYBRID_THRESHOLD 100 // [mm/s]
|
||||||
|
#define X2_HYBRID_THRESHOLD 100
|
||||||
|
#define Y_HYBRID_THRESHOLD 100
|
||||||
|
#define Y2_HYBRID_THRESHOLD 100
|
||||||
|
#define Z_HYBRID_THRESHOLD 4
|
||||||
|
#define Z2_HYBRID_THRESHOLD 4
|
||||||
|
#define E0_HYBRID_THRESHOLD 30
|
||||||
|
#define E1_HYBRID_THRESHOLD 30
|
||||||
|
#define E2_HYBRID_THRESHOLD 30
|
||||||
|
#define E3_HYBRID_THRESHOLD 30
|
||||||
|
#define E4_HYBRID_THRESHOLD 30
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use stallGuard2 to sense an obstacle and trigger an endstop.
|
||||||
|
* You need to place a wire from the driver's DIAG1 pin to the X/Y endstop pin.
|
||||||
|
* If used along with STEALTHCHOP, the movement will be louder when homing. This is normal.
|
||||||
|
*
|
||||||
|
* X/Y_HOMING_SENSITIVITY is used for tuning the trigger sensitivity.
|
||||||
|
* Higher values make the system LESS sensitive.
|
||||||
|
* Lower value make the system MORE sensitive.
|
||||||
|
* Too low values can lead to false positives, while too high values will collide the axis without triggering.
|
||||||
|
* It is advised to set X/Y_HOME_BUMP_MM to 0.
|
||||||
|
* M914 X/Y to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define SENSORLESS_HOMING
|
||||||
|
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
|
#define X_HOMING_SENSITIVITY 19
|
||||||
|
#define Y_HOMING_SENSITIVITY 19
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* You can set your own advanced settings by filling in predefined functions.
|
* You can set your own advanced settings by filling in predefined functions.
|
||||||
|
|
|
@ -906,18 +906,6 @@
|
||||||
//#define HAVE_TMC2130
|
//#define HAVE_TMC2130
|
||||||
|
|
||||||
#if ENABLED(HAVE_TMC2130)
|
#if ENABLED(HAVE_TMC2130)
|
||||||
#define STEALTHCHOP
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Let Marlin automatically control stepper current.
|
|
||||||
* This is still an experimental feature.
|
|
||||||
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
|
||||||
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
|
||||||
* Adjusting starts from X/Y/Z/E_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX
|
|
||||||
*/
|
|
||||||
//#define AUTOMATIC_CURRENT_CONTROL
|
|
||||||
#define CURRENT_STEP 50 // [mA]
|
|
||||||
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
|
||||||
|
|
||||||
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
||||||
//#define X_IS_TMC2130
|
//#define X_IS_TMC2130
|
||||||
|
@ -940,45 +928,104 @@
|
||||||
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
||||||
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
||||||
|
|
||||||
#define X_MAX_CURRENT 1000 // rms current in mA
|
#define X_CURRENT 1000 // rms current in mA. Multiply by 1.41 for peak current.
|
||||||
#define X_MICROSTEPS 16 // FULLSTEP..256
|
#define X_MICROSTEPS 16 // 0..256
|
||||||
#define X_CHIP_SELECT 40 // Pin
|
|
||||||
|
|
||||||
#define Y_MAX_CURRENT 1000
|
#define Y_CURRENT 1000
|
||||||
#define Y_MICROSTEPS 16
|
#define Y_MICROSTEPS 16
|
||||||
#define Y_CHIP_SELECT 42
|
|
||||||
|
|
||||||
#define Z_MAX_CURRENT 1000
|
#define Z_CURRENT 1000
|
||||||
#define Z_MICROSTEPS 16
|
#define Z_MICROSTEPS 16
|
||||||
#define Z_CHIP_SELECT 65
|
|
||||||
|
|
||||||
//#define X2_MAX_CURRENT 1000
|
//#define X2_CURRENT 1000
|
||||||
//#define X2_MICROSTEPS 16
|
//#define X2_MICROSTEPS 16
|
||||||
//#define X2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Y2_MAX_CURRENT 1000
|
//#define Y2_CURRENT 1000
|
||||||
//#define Y2_MICROSTEPS 16
|
//#define Y2_MICROSTEPS 16
|
||||||
//#define Y2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Z2_MAX_CURRENT 1000
|
//#define Z2_CURRENT 1000
|
||||||
//#define Z2_MICROSTEPS 16
|
//#define Z2_MICROSTEPS 16
|
||||||
//#define Z2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E0_MAX_CURRENT 1000
|
//#define E0_CURRENT 1000
|
||||||
//#define E0_MICROSTEPS 16
|
//#define E0_MICROSTEPS 16
|
||||||
//#define E0_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E1_MAX_CURRENT 1000
|
//#define E1_CURRENT 1000
|
||||||
//#define E1_MICROSTEPS 16
|
//#define E1_MICROSTEPS 16
|
||||||
//#define E1_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E2_MAX_CURRENT 1000
|
//#define E2_CURRENT 1000
|
||||||
//#define E2_MICROSTEPS 16
|
//#define E2_MICROSTEPS 16
|
||||||
//#define E2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E3_MAX_CURRENT 1000
|
//#define E3_CURRENT 1000
|
||||||
//#define E3_MICROSTEPS 16
|
//#define E3_MICROSTEPS 16
|
||||||
//#define E3_CHIP_SELECT -1
|
|
||||||
|
//#define E4_CURRENT 1000
|
||||||
|
//#define E4_MICROSTEPS 16
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use Trinamic's ultra quiet stepping mode.
|
||||||
|
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||||
|
*/
|
||||||
|
#define STEALTHCHOP
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Let Marlin automatically control stepper current.
|
||||||
|
* This is still an experimental feature.
|
||||||
|
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
||||||
|
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
||||||
|
* Adjusting starts from X/Y/Z/E_CURRENT but will not increase over AUTO_ADJUST_MAX
|
||||||
|
* Relevant g-codes:
|
||||||
|
* M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given.
|
||||||
|
* M906 S1 - Start adjusting current
|
||||||
|
* M906 S0 - Stop adjusting current
|
||||||
|
* M911 - Report stepper driver overtemperature pre-warn condition.
|
||||||
|
* M912 - Clear stepper driver overtemperature pre-warn condition flag.
|
||||||
|
*/
|
||||||
|
//#define AUTOMATIC_CURRENT_CONTROL
|
||||||
|
|
||||||
|
#if ENABLED(AUTOMATIC_CURRENT_CONTROL)
|
||||||
|
#define CURRENT_STEP 50 // [mA]
|
||||||
|
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
||||||
|
#define REPORT_CURRENT_CHANGE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||||
|
* This mode allows for faster movements at the expense of higher noise levels.
|
||||||
|
* STEALTHCHOP needs to be enabled.
|
||||||
|
* M913 X/Y/Z/E to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define HYBRID_THRESHOLD
|
||||||
|
|
||||||
|
#define X_HYBRID_THRESHOLD 100 // [mm/s]
|
||||||
|
#define X2_HYBRID_THRESHOLD 100
|
||||||
|
#define Y_HYBRID_THRESHOLD 100
|
||||||
|
#define Y2_HYBRID_THRESHOLD 100
|
||||||
|
#define Z_HYBRID_THRESHOLD 4
|
||||||
|
#define Z2_HYBRID_THRESHOLD 4
|
||||||
|
#define E0_HYBRID_THRESHOLD 30
|
||||||
|
#define E1_HYBRID_THRESHOLD 30
|
||||||
|
#define E2_HYBRID_THRESHOLD 30
|
||||||
|
#define E3_HYBRID_THRESHOLD 30
|
||||||
|
#define E4_HYBRID_THRESHOLD 30
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use stallGuard2 to sense an obstacle and trigger an endstop.
|
||||||
|
* You need to place a wire from the driver's DIAG1 pin to the X/Y endstop pin.
|
||||||
|
* If used along with STEALTHCHOP, the movement will be louder when homing. This is normal.
|
||||||
|
*
|
||||||
|
* X/Y_HOMING_SENSITIVITY is used for tuning the trigger sensitivity.
|
||||||
|
* Higher values make the system LESS sensitive.
|
||||||
|
* Lower value make the system MORE sensitive.
|
||||||
|
* Too low values can lead to false positives, while too high values will collide the axis without triggering.
|
||||||
|
* It is advised to set X/Y_HOME_BUMP_MM to 0.
|
||||||
|
* M914 X/Y to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define SENSORLESS_HOMING
|
||||||
|
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
|
#define X_HOMING_SENSITIVITY 19
|
||||||
|
#define Y_HOMING_SENSITIVITY 19
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* You can set your own advanced settings by filling in predefined functions.
|
* You can set your own advanced settings by filling in predefined functions.
|
||||||
|
|
|
@ -900,18 +900,6 @@
|
||||||
//#define HAVE_TMC2130
|
//#define HAVE_TMC2130
|
||||||
|
|
||||||
#if ENABLED(HAVE_TMC2130)
|
#if ENABLED(HAVE_TMC2130)
|
||||||
#define STEALTHCHOP
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Let Marlin automatically control stepper current.
|
|
||||||
* This is still an experimental feature.
|
|
||||||
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
|
||||||
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
|
||||||
* Adjusting starts from X/Y/Z/E_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX
|
|
||||||
*/
|
|
||||||
//#define AUTOMATIC_CURRENT_CONTROL
|
|
||||||
#define CURRENT_STEP 50 // [mA]
|
|
||||||
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
|
||||||
|
|
||||||
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
||||||
//#define X_IS_TMC2130
|
//#define X_IS_TMC2130
|
||||||
|
@ -934,45 +922,104 @@
|
||||||
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
||||||
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
||||||
|
|
||||||
#define X_MAX_CURRENT 1000 // rms current in mA
|
#define X_CURRENT 1000 // rms current in mA. Multiply by 1.41 for peak current.
|
||||||
#define X_MICROSTEPS 16 // FULLSTEP..256
|
#define X_MICROSTEPS 16 // 0..256
|
||||||
#define X_CHIP_SELECT 40 // Pin
|
|
||||||
|
|
||||||
#define Y_MAX_CURRENT 1000
|
#define Y_CURRENT 1000
|
||||||
#define Y_MICROSTEPS 16
|
#define Y_MICROSTEPS 16
|
||||||
#define Y_CHIP_SELECT 42
|
|
||||||
|
|
||||||
#define Z_MAX_CURRENT 1000
|
#define Z_CURRENT 1000
|
||||||
#define Z_MICROSTEPS 16
|
#define Z_MICROSTEPS 16
|
||||||
#define Z_CHIP_SELECT 65
|
|
||||||
|
|
||||||
//#define X2_MAX_CURRENT 1000
|
//#define X2_CURRENT 1000
|
||||||
//#define X2_MICROSTEPS 16
|
//#define X2_MICROSTEPS 16
|
||||||
//#define X2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Y2_MAX_CURRENT 1000
|
//#define Y2_CURRENT 1000
|
||||||
//#define Y2_MICROSTEPS 16
|
//#define Y2_MICROSTEPS 16
|
||||||
//#define Y2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Z2_MAX_CURRENT 1000
|
//#define Z2_CURRENT 1000
|
||||||
//#define Z2_MICROSTEPS 16
|
//#define Z2_MICROSTEPS 16
|
||||||
//#define Z2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E0_MAX_CURRENT 1000
|
//#define E0_CURRENT 1000
|
||||||
//#define E0_MICROSTEPS 16
|
//#define E0_MICROSTEPS 16
|
||||||
//#define E0_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E1_MAX_CURRENT 1000
|
//#define E1_CURRENT 1000
|
||||||
//#define E1_MICROSTEPS 16
|
//#define E1_MICROSTEPS 16
|
||||||
//#define E1_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E2_MAX_CURRENT 1000
|
//#define E2_CURRENT 1000
|
||||||
//#define E2_MICROSTEPS 16
|
//#define E2_MICROSTEPS 16
|
||||||
//#define E2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E3_MAX_CURRENT 1000
|
//#define E3_CURRENT 1000
|
||||||
//#define E3_MICROSTEPS 16
|
//#define E3_MICROSTEPS 16
|
||||||
//#define E3_CHIP_SELECT -1
|
|
||||||
|
//#define E4_CURRENT 1000
|
||||||
|
//#define E4_MICROSTEPS 16
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use Trinamic's ultra quiet stepping mode.
|
||||||
|
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||||
|
*/
|
||||||
|
#define STEALTHCHOP
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Let Marlin automatically control stepper current.
|
||||||
|
* This is still an experimental feature.
|
||||||
|
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
||||||
|
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
||||||
|
* Adjusting starts from X/Y/Z/E_CURRENT but will not increase over AUTO_ADJUST_MAX
|
||||||
|
* Relevant g-codes:
|
||||||
|
* M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given.
|
||||||
|
* M906 S1 - Start adjusting current
|
||||||
|
* M906 S0 - Stop adjusting current
|
||||||
|
* M911 - Report stepper driver overtemperature pre-warn condition.
|
||||||
|
* M912 - Clear stepper driver overtemperature pre-warn condition flag.
|
||||||
|
*/
|
||||||
|
//#define AUTOMATIC_CURRENT_CONTROL
|
||||||
|
|
||||||
|
#if ENABLED(AUTOMATIC_CURRENT_CONTROL)
|
||||||
|
#define CURRENT_STEP 50 // [mA]
|
||||||
|
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
||||||
|
#define REPORT_CURRENT_CHANGE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||||
|
* This mode allows for faster movements at the expense of higher noise levels.
|
||||||
|
* STEALTHCHOP needs to be enabled.
|
||||||
|
* M913 X/Y/Z/E to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define HYBRID_THRESHOLD
|
||||||
|
|
||||||
|
#define X_HYBRID_THRESHOLD 100 // [mm/s]
|
||||||
|
#define X2_HYBRID_THRESHOLD 100
|
||||||
|
#define Y_HYBRID_THRESHOLD 100
|
||||||
|
#define Y2_HYBRID_THRESHOLD 100
|
||||||
|
#define Z_HYBRID_THRESHOLD 4
|
||||||
|
#define Z2_HYBRID_THRESHOLD 4
|
||||||
|
#define E0_HYBRID_THRESHOLD 30
|
||||||
|
#define E1_HYBRID_THRESHOLD 30
|
||||||
|
#define E2_HYBRID_THRESHOLD 30
|
||||||
|
#define E3_HYBRID_THRESHOLD 30
|
||||||
|
#define E4_HYBRID_THRESHOLD 30
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use stallGuard2 to sense an obstacle and trigger an endstop.
|
||||||
|
* You need to place a wire from the driver's DIAG1 pin to the X/Y endstop pin.
|
||||||
|
* If used along with STEALTHCHOP, the movement will be louder when homing. This is normal.
|
||||||
|
*
|
||||||
|
* X/Y_HOMING_SENSITIVITY is used for tuning the trigger sensitivity.
|
||||||
|
* Higher values make the system LESS sensitive.
|
||||||
|
* Lower value make the system MORE sensitive.
|
||||||
|
* Too low values can lead to false positives, while too high values will collide the axis without triggering.
|
||||||
|
* It is advised to set X/Y_HOME_BUMP_MM to 0.
|
||||||
|
* M914 X/Y to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define SENSORLESS_HOMING
|
||||||
|
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
|
#define X_HOMING_SENSITIVITY 19
|
||||||
|
#define Y_HOMING_SENSITIVITY 19
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* You can set your own advanced settings by filling in predefined functions.
|
* You can set your own advanced settings by filling in predefined functions.
|
||||||
|
|
|
@ -879,18 +879,6 @@
|
||||||
//#define HAVE_TMC2130
|
//#define HAVE_TMC2130
|
||||||
|
|
||||||
#if ENABLED(HAVE_TMC2130)
|
#if ENABLED(HAVE_TMC2130)
|
||||||
#define STEALTHCHOP
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Let Marlin automatically control stepper current.
|
|
||||||
* This is still an experimental feature.
|
|
||||||
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
|
||||||
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
|
||||||
* Adjusting starts from X/Y/Z/E_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX
|
|
||||||
*/
|
|
||||||
//#define AUTOMATIC_CURRENT_CONTROL
|
|
||||||
#define CURRENT_STEP 50 // [mA]
|
|
||||||
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
|
||||||
|
|
||||||
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
||||||
//#define X_IS_TMC2130
|
//#define X_IS_TMC2130
|
||||||
|
@ -913,45 +901,104 @@
|
||||||
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
||||||
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
||||||
|
|
||||||
#define X_MAX_CURRENT 1000 // rms current in mA
|
#define X_CURRENT 1000 // rms current in mA. Multiply by 1.41 for peak current.
|
||||||
#define X_MICROSTEPS 16 // FULLSTEP..256
|
#define X_MICROSTEPS 16 // 0..256
|
||||||
#define X_CHIP_SELECT 40 // Pin
|
|
||||||
|
|
||||||
#define Y_MAX_CURRENT 1000
|
#define Y_CURRENT 1000
|
||||||
#define Y_MICROSTEPS 16
|
#define Y_MICROSTEPS 16
|
||||||
#define Y_CHIP_SELECT 42
|
|
||||||
|
|
||||||
#define Z_MAX_CURRENT 1000
|
#define Z_CURRENT 1000
|
||||||
#define Z_MICROSTEPS 16
|
#define Z_MICROSTEPS 16
|
||||||
#define Z_CHIP_SELECT 65
|
|
||||||
|
|
||||||
//#define X2_MAX_CURRENT 1000
|
//#define X2_CURRENT 1000
|
||||||
//#define X2_MICROSTEPS 16
|
//#define X2_MICROSTEPS 16
|
||||||
//#define X2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Y2_MAX_CURRENT 1000
|
//#define Y2_CURRENT 1000
|
||||||
//#define Y2_MICROSTEPS 16
|
//#define Y2_MICROSTEPS 16
|
||||||
//#define Y2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Z2_MAX_CURRENT 1000
|
//#define Z2_CURRENT 1000
|
||||||
//#define Z2_MICROSTEPS 16
|
//#define Z2_MICROSTEPS 16
|
||||||
//#define Z2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E0_MAX_CURRENT 1000
|
//#define E0_CURRENT 1000
|
||||||
//#define E0_MICROSTEPS 16
|
//#define E0_MICROSTEPS 16
|
||||||
//#define E0_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E1_MAX_CURRENT 1000
|
//#define E1_CURRENT 1000
|
||||||
//#define E1_MICROSTEPS 16
|
//#define E1_MICROSTEPS 16
|
||||||
//#define E1_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E2_MAX_CURRENT 1000
|
//#define E2_CURRENT 1000
|
||||||
//#define E2_MICROSTEPS 16
|
//#define E2_MICROSTEPS 16
|
||||||
//#define E2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E3_MAX_CURRENT 1000
|
//#define E3_CURRENT 1000
|
||||||
//#define E3_MICROSTEPS 16
|
//#define E3_MICROSTEPS 16
|
||||||
//#define E3_CHIP_SELECT -1
|
|
||||||
|
//#define E4_CURRENT 1000
|
||||||
|
//#define E4_MICROSTEPS 16
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use Trinamic's ultra quiet stepping mode.
|
||||||
|
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||||
|
*/
|
||||||
|
#define STEALTHCHOP
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Let Marlin automatically control stepper current.
|
||||||
|
* This is still an experimental feature.
|
||||||
|
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
||||||
|
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
||||||
|
* Adjusting starts from X/Y/Z/E_CURRENT but will not increase over AUTO_ADJUST_MAX
|
||||||
|
* Relevant g-codes:
|
||||||
|
* M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given.
|
||||||
|
* M906 S1 - Start adjusting current
|
||||||
|
* M906 S0 - Stop adjusting current
|
||||||
|
* M911 - Report stepper driver overtemperature pre-warn condition.
|
||||||
|
* M912 - Clear stepper driver overtemperature pre-warn condition flag.
|
||||||
|
*/
|
||||||
|
//#define AUTOMATIC_CURRENT_CONTROL
|
||||||
|
|
||||||
|
#if ENABLED(AUTOMATIC_CURRENT_CONTROL)
|
||||||
|
#define CURRENT_STEP 50 // [mA]
|
||||||
|
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
||||||
|
#define REPORT_CURRENT_CHANGE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||||
|
* This mode allows for faster movements at the expense of higher noise levels.
|
||||||
|
* STEALTHCHOP needs to be enabled.
|
||||||
|
* M913 X/Y/Z/E to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define HYBRID_THRESHOLD
|
||||||
|
|
||||||
|
#define X_HYBRID_THRESHOLD 100 // [mm/s]
|
||||||
|
#define X2_HYBRID_THRESHOLD 100
|
||||||
|
#define Y_HYBRID_THRESHOLD 100
|
||||||
|
#define Y2_HYBRID_THRESHOLD 100
|
||||||
|
#define Z_HYBRID_THRESHOLD 4
|
||||||
|
#define Z2_HYBRID_THRESHOLD 4
|
||||||
|
#define E0_HYBRID_THRESHOLD 30
|
||||||
|
#define E1_HYBRID_THRESHOLD 30
|
||||||
|
#define E2_HYBRID_THRESHOLD 30
|
||||||
|
#define E3_HYBRID_THRESHOLD 30
|
||||||
|
#define E4_HYBRID_THRESHOLD 30
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use stallGuard2 to sense an obstacle and trigger an endstop.
|
||||||
|
* You need to place a wire from the driver's DIAG1 pin to the X/Y endstop pin.
|
||||||
|
* If used along with STEALTHCHOP, the movement will be louder when homing. This is normal.
|
||||||
|
*
|
||||||
|
* X/Y_HOMING_SENSITIVITY is used for tuning the trigger sensitivity.
|
||||||
|
* Higher values make the system LESS sensitive.
|
||||||
|
* Lower value make the system MORE sensitive.
|
||||||
|
* Too low values can lead to false positives, while too high values will collide the axis without triggering.
|
||||||
|
* It is advised to set X/Y_HOME_BUMP_MM to 0.
|
||||||
|
* M914 X/Y to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define SENSORLESS_HOMING
|
||||||
|
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
|
#define X_HOMING_SENSITIVITY 19
|
||||||
|
#define Y_HOMING_SENSITIVITY 19
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* You can set your own advanced settings by filling in predefined functions.
|
* You can set your own advanced settings by filling in predefined functions.
|
||||||
|
|
|
@ -879,18 +879,6 @@
|
||||||
//#define HAVE_TMC2130
|
//#define HAVE_TMC2130
|
||||||
|
|
||||||
#if ENABLED(HAVE_TMC2130)
|
#if ENABLED(HAVE_TMC2130)
|
||||||
#define STEALTHCHOP
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Let Marlin automatically control stepper current.
|
|
||||||
* This is still an experimental feature.
|
|
||||||
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
|
||||||
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
|
||||||
* Adjusting starts from X/Y/Z/E_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX
|
|
||||||
*/
|
|
||||||
//#define AUTOMATIC_CURRENT_CONTROL
|
|
||||||
#define CURRENT_STEP 50 // [mA]
|
|
||||||
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
|
||||||
|
|
||||||
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
||||||
//#define X_IS_TMC2130
|
//#define X_IS_TMC2130
|
||||||
|
@ -913,45 +901,104 @@
|
||||||
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
||||||
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
||||||
|
|
||||||
#define X_MAX_CURRENT 1000 // rms current in mA
|
#define X_CURRENT 1000 // rms current in mA. Multiply by 1.41 for peak current.
|
||||||
#define X_MICROSTEPS 16 // FULLSTEP..256
|
#define X_MICROSTEPS 16 // 0..256
|
||||||
#define X_CHIP_SELECT 40 // Pin
|
|
||||||
|
|
||||||
#define Y_MAX_CURRENT 1000
|
#define Y_CURRENT 1000
|
||||||
#define Y_MICROSTEPS 16
|
#define Y_MICROSTEPS 16
|
||||||
#define Y_CHIP_SELECT 42
|
|
||||||
|
|
||||||
#define Z_MAX_CURRENT 1000
|
#define Z_CURRENT 1000
|
||||||
#define Z_MICROSTEPS 16
|
#define Z_MICROSTEPS 16
|
||||||
#define Z_CHIP_SELECT 65
|
|
||||||
|
|
||||||
//#define X2_MAX_CURRENT 1000
|
//#define X2_CURRENT 1000
|
||||||
//#define X2_MICROSTEPS 16
|
//#define X2_MICROSTEPS 16
|
||||||
//#define X2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Y2_MAX_CURRENT 1000
|
//#define Y2_CURRENT 1000
|
||||||
//#define Y2_MICROSTEPS 16
|
//#define Y2_MICROSTEPS 16
|
||||||
//#define Y2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Z2_MAX_CURRENT 1000
|
//#define Z2_CURRENT 1000
|
||||||
//#define Z2_MICROSTEPS 16
|
//#define Z2_MICROSTEPS 16
|
||||||
//#define Z2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E0_MAX_CURRENT 1000
|
//#define E0_CURRENT 1000
|
||||||
//#define E0_MICROSTEPS 16
|
//#define E0_MICROSTEPS 16
|
||||||
//#define E0_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E1_MAX_CURRENT 1000
|
//#define E1_CURRENT 1000
|
||||||
//#define E1_MICROSTEPS 16
|
//#define E1_MICROSTEPS 16
|
||||||
//#define E1_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E2_MAX_CURRENT 1000
|
//#define E2_CURRENT 1000
|
||||||
//#define E2_MICROSTEPS 16
|
//#define E2_MICROSTEPS 16
|
||||||
//#define E2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E3_MAX_CURRENT 1000
|
//#define E3_CURRENT 1000
|
||||||
//#define E3_MICROSTEPS 16
|
//#define E3_MICROSTEPS 16
|
||||||
//#define E3_CHIP_SELECT -1
|
|
||||||
|
//#define E4_CURRENT 1000
|
||||||
|
//#define E4_MICROSTEPS 16
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use Trinamic's ultra quiet stepping mode.
|
||||||
|
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||||
|
*/
|
||||||
|
#define STEALTHCHOP
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Let Marlin automatically control stepper current.
|
||||||
|
* This is still an experimental feature.
|
||||||
|
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
||||||
|
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
||||||
|
* Adjusting starts from X/Y/Z/E_CURRENT but will not increase over AUTO_ADJUST_MAX
|
||||||
|
* Relevant g-codes:
|
||||||
|
* M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given.
|
||||||
|
* M906 S1 - Start adjusting current
|
||||||
|
* M906 S0 - Stop adjusting current
|
||||||
|
* M911 - Report stepper driver overtemperature pre-warn condition.
|
||||||
|
* M912 - Clear stepper driver overtemperature pre-warn condition flag.
|
||||||
|
*/
|
||||||
|
//#define AUTOMATIC_CURRENT_CONTROL
|
||||||
|
|
||||||
|
#if ENABLED(AUTOMATIC_CURRENT_CONTROL)
|
||||||
|
#define CURRENT_STEP 50 // [mA]
|
||||||
|
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
||||||
|
#define REPORT_CURRENT_CHANGE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||||
|
* This mode allows for faster movements at the expense of higher noise levels.
|
||||||
|
* STEALTHCHOP needs to be enabled.
|
||||||
|
* M913 X/Y/Z/E to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define HYBRID_THRESHOLD
|
||||||
|
|
||||||
|
#define X_HYBRID_THRESHOLD 100 // [mm/s]
|
||||||
|
#define X2_HYBRID_THRESHOLD 100
|
||||||
|
#define Y_HYBRID_THRESHOLD 100
|
||||||
|
#define Y2_HYBRID_THRESHOLD 100
|
||||||
|
#define Z_HYBRID_THRESHOLD 4
|
||||||
|
#define Z2_HYBRID_THRESHOLD 4
|
||||||
|
#define E0_HYBRID_THRESHOLD 30
|
||||||
|
#define E1_HYBRID_THRESHOLD 30
|
||||||
|
#define E2_HYBRID_THRESHOLD 30
|
||||||
|
#define E3_HYBRID_THRESHOLD 30
|
||||||
|
#define E4_HYBRID_THRESHOLD 30
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use stallGuard2 to sense an obstacle and trigger an endstop.
|
||||||
|
* You need to place a wire from the driver's DIAG1 pin to the X/Y endstop pin.
|
||||||
|
* If used along with STEALTHCHOP, the movement will be louder when homing. This is normal.
|
||||||
|
*
|
||||||
|
* X/Y_HOMING_SENSITIVITY is used for tuning the trigger sensitivity.
|
||||||
|
* Higher values make the system LESS sensitive.
|
||||||
|
* Lower value make the system MORE sensitive.
|
||||||
|
* Too low values can lead to false positives, while too high values will collide the axis without triggering.
|
||||||
|
* It is advised to set X/Y_HOME_BUMP_MM to 0.
|
||||||
|
* M914 X/Y to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define SENSORLESS_HOMING
|
||||||
|
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
|
#define X_HOMING_SENSITIVITY 19
|
||||||
|
#define Y_HOMING_SENSITIVITY 19
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* You can set your own advanced settings by filling in predefined functions.
|
* You can set your own advanced settings by filling in predefined functions.
|
||||||
|
|
|
@ -882,18 +882,6 @@
|
||||||
//#define HAVE_TMC2130
|
//#define HAVE_TMC2130
|
||||||
|
|
||||||
#if ENABLED(HAVE_TMC2130)
|
#if ENABLED(HAVE_TMC2130)
|
||||||
#define STEALTHCHOP
|
|
||||||
|
|
||||||
/**
|
|
||||||
* Let Marlin automatically control stepper current.
|
|
||||||
* This is still an experimental feature.
|
|
||||||
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
|
||||||
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
|
||||||
* Adjusting starts from X/Y/Z/E_MAX_CURRENT but will not increase over AUTO_ADJUST_MAX
|
|
||||||
*/
|
|
||||||
//#define AUTOMATIC_CURRENT_CONTROL
|
|
||||||
#define CURRENT_STEP 50 // [mA]
|
|
||||||
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
|
||||||
|
|
||||||
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
// CHOOSE YOUR MOTORS HERE, THIS IS MANDATORY
|
||||||
//#define X_IS_TMC2130
|
//#define X_IS_TMC2130
|
||||||
|
@ -916,45 +904,104 @@
|
||||||
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
#define HOLD_MULTIPLIER 0.5 // Scales down the holding current from run current
|
||||||
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
#define INTERPOLATE 1 // Interpolate X/Y/Z_MICROSTEPS to 256
|
||||||
|
|
||||||
#define X_MAX_CURRENT 1000 // rms current in mA
|
#define X_CURRENT 1000 // rms current in mA. Multiply by 1.41 for peak current.
|
||||||
#define X_MICROSTEPS 16 // FULLSTEP..256
|
#define X_MICROSTEPS 16 // 0..256
|
||||||
#define X_CHIP_SELECT 40 // Pin
|
|
||||||
|
|
||||||
#define Y_MAX_CURRENT 1000
|
#define Y_CURRENT 1000
|
||||||
#define Y_MICROSTEPS 16
|
#define Y_MICROSTEPS 16
|
||||||
#define Y_CHIP_SELECT 42
|
|
||||||
|
|
||||||
#define Z_MAX_CURRENT 1000
|
#define Z_CURRENT 1000
|
||||||
#define Z_MICROSTEPS 16
|
#define Z_MICROSTEPS 16
|
||||||
#define Z_CHIP_SELECT 65
|
|
||||||
|
|
||||||
//#define X2_MAX_CURRENT 1000
|
//#define X2_CURRENT 1000
|
||||||
//#define X2_MICROSTEPS 16
|
//#define X2_MICROSTEPS 16
|
||||||
//#define X2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Y2_MAX_CURRENT 1000
|
//#define Y2_CURRENT 1000
|
||||||
//#define Y2_MICROSTEPS 16
|
//#define Y2_MICROSTEPS 16
|
||||||
//#define Y2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define Z2_MAX_CURRENT 1000
|
//#define Z2_CURRENT 1000
|
||||||
//#define Z2_MICROSTEPS 16
|
//#define Z2_MICROSTEPS 16
|
||||||
//#define Z2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E0_MAX_CURRENT 1000
|
//#define E0_CURRENT 1000
|
||||||
//#define E0_MICROSTEPS 16
|
//#define E0_MICROSTEPS 16
|
||||||
//#define E0_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E1_MAX_CURRENT 1000
|
//#define E1_CURRENT 1000
|
||||||
//#define E1_MICROSTEPS 16
|
//#define E1_MICROSTEPS 16
|
||||||
//#define E1_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E2_MAX_CURRENT 1000
|
//#define E2_CURRENT 1000
|
||||||
//#define E2_MICROSTEPS 16
|
//#define E2_MICROSTEPS 16
|
||||||
//#define E2_CHIP_SELECT -1
|
|
||||||
|
|
||||||
//#define E3_MAX_CURRENT 1000
|
//#define E3_CURRENT 1000
|
||||||
//#define E3_MICROSTEPS 16
|
//#define E3_MICROSTEPS 16
|
||||||
//#define E3_CHIP_SELECT -1
|
|
||||||
|
//#define E4_CURRENT 1000
|
||||||
|
//#define E4_MICROSTEPS 16
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use Trinamic's ultra quiet stepping mode.
|
||||||
|
* When disabled, Marlin will use spreadCycle stepping mode.
|
||||||
|
*/
|
||||||
|
#define STEALTHCHOP
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Let Marlin automatically control stepper current.
|
||||||
|
* This is still an experimental feature.
|
||||||
|
* Increase current every 5s by CURRENT_STEP until stepper temperature prewarn gets triggered,
|
||||||
|
* then decrease current by CURRENT_STEP until temperature prewarn is cleared.
|
||||||
|
* Adjusting starts from X/Y/Z/E_CURRENT but will not increase over AUTO_ADJUST_MAX
|
||||||
|
* Relevant g-codes:
|
||||||
|
* M906 - Set or get motor current in milliamps using axis codes X, Y, Z, E. Report values if no axis codes given.
|
||||||
|
* M906 S1 - Start adjusting current
|
||||||
|
* M906 S0 - Stop adjusting current
|
||||||
|
* M911 - Report stepper driver overtemperature pre-warn condition.
|
||||||
|
* M912 - Clear stepper driver overtemperature pre-warn condition flag.
|
||||||
|
*/
|
||||||
|
//#define AUTOMATIC_CURRENT_CONTROL
|
||||||
|
|
||||||
|
#if ENABLED(AUTOMATIC_CURRENT_CONTROL)
|
||||||
|
#define CURRENT_STEP 50 // [mA]
|
||||||
|
#define AUTO_ADJUST_MAX 1300 // [mA], 1300mA_rms = 1840mA_peak
|
||||||
|
#define REPORT_CURRENT_CHANGE
|
||||||
|
#endif
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The driver will switch to spreadCycle when stepper speed is over HYBRID_THRESHOLD.
|
||||||
|
* This mode allows for faster movements at the expense of higher noise levels.
|
||||||
|
* STEALTHCHOP needs to be enabled.
|
||||||
|
* M913 X/Y/Z/E to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define HYBRID_THRESHOLD
|
||||||
|
|
||||||
|
#define X_HYBRID_THRESHOLD 100 // [mm/s]
|
||||||
|
#define X2_HYBRID_THRESHOLD 100
|
||||||
|
#define Y_HYBRID_THRESHOLD 100
|
||||||
|
#define Y2_HYBRID_THRESHOLD 100
|
||||||
|
#define Z_HYBRID_THRESHOLD 4
|
||||||
|
#define Z2_HYBRID_THRESHOLD 4
|
||||||
|
#define E0_HYBRID_THRESHOLD 30
|
||||||
|
#define E1_HYBRID_THRESHOLD 30
|
||||||
|
#define E2_HYBRID_THRESHOLD 30
|
||||||
|
#define E3_HYBRID_THRESHOLD 30
|
||||||
|
#define E4_HYBRID_THRESHOLD 30
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Use stallGuard2 to sense an obstacle and trigger an endstop.
|
||||||
|
* You need to place a wire from the driver's DIAG1 pin to the X/Y endstop pin.
|
||||||
|
* If used along with STEALTHCHOP, the movement will be louder when homing. This is normal.
|
||||||
|
*
|
||||||
|
* X/Y_HOMING_SENSITIVITY is used for tuning the trigger sensitivity.
|
||||||
|
* Higher values make the system LESS sensitive.
|
||||||
|
* Lower value make the system MORE sensitive.
|
||||||
|
* Too low values can lead to false positives, while too high values will collide the axis without triggering.
|
||||||
|
* It is advised to set X/Y_HOME_BUMP_MM to 0.
|
||||||
|
* M914 X/Y to live tune the setting
|
||||||
|
*/
|
||||||
|
//#define SENSORLESS_HOMING
|
||||||
|
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
|
#define X_HOMING_SENSITIVITY 19
|
||||||
|
#define Y_HOMING_SENSITIVITY 19
|
||||||
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* You can set your own advanced settings by filling in predefined functions.
|
* You can set your own advanced settings by filling in predefined functions.
|
||||||
|
|
|
@ -129,8 +129,9 @@
|
||||||
|
|
||||||
#include <SPI.h>
|
#include <SPI.h>
|
||||||
#include <TMC2130Stepper.h>
|
#include <TMC2130Stepper.h>
|
||||||
|
#include "enum.h"
|
||||||
|
|
||||||
#define _TMC2130_DEFINE(ST) TMC2130Stepper stepper##ST(ST##_ENABLE_PIN, ST##_DIR_PIN, ST##_STEP_PIN, ST##_CHIP_SELECT)
|
#define _TMC2130_DEFINE(ST) TMC2130Stepper stepper##ST(ST##_ENABLE_PIN, ST##_DIR_PIN, ST##_STEP_PIN, ST##_CS_PIN)
|
||||||
|
|
||||||
// Stepper objects of TMC2130 steppers used
|
// Stepper objects of TMC2130 steppers used
|
||||||
#if ENABLED(X_IS_TMC2130)
|
#if ENABLED(X_IS_TMC2130)
|
||||||
|
@ -169,61 +170,74 @@
|
||||||
|
|
||||||
// Use internal reference voltage for current calculations. This is the default.
|
// Use internal reference voltage for current calculations. This is the default.
|
||||||
// Following values from Trinamic's spreadsheet with values for a NEMA17 (42BYGHW609)
|
// Following values from Trinamic's spreadsheet with values for a NEMA17 (42BYGHW609)
|
||||||
void tmc2130_init(TMC2130Stepper &st, const uint16_t max_current, const uint16_t microsteps) {
|
// https://www.trinamic.com/products/integrated-circuits/details/tmc2130/
|
||||||
|
void tmc2130_init(TMC2130Stepper &st, const uint16_t microsteps, const uint32_t thrs, const uint32_t spmm) {
|
||||||
st.begin();
|
st.begin();
|
||||||
st.setCurrent(st.getCurrent(), R_SENSE, HOLD_MULTIPLIER);
|
st.setCurrent(st.getCurrent(), R_SENSE, HOLD_MULTIPLIER);
|
||||||
st.microsteps(microsteps);
|
st.microsteps(microsteps);
|
||||||
st.blank_time(24);
|
st.blank_time(36);
|
||||||
st.off_time(8);
|
st.off_time(5); // Only enables the driver if used with stealthChop
|
||||||
st.interpolate(INTERPOLATE);
|
st.interpolate(INTERPOLATE);
|
||||||
|
st.power_down_delay(128); // ~2s until driver lowers to hold current
|
||||||
|
st.hysterisis_start(0); // HSTRT = 1
|
||||||
|
st.hysterisis_low(1); // HEND = -2
|
||||||
|
st.diag1_active_high(1); // For sensorless homing
|
||||||
#if ENABLED(STEALTHCHOP)
|
#if ENABLED(STEALTHCHOP)
|
||||||
|
st.stealth_freq(1); // f_pwm = 2/683 f_clk
|
||||||
|
st.stealth_autoscale(1);
|
||||||
|
st.stealth_gradient(5);
|
||||||
|
st.stealth_amplitude(255);
|
||||||
st.stealthChop(1);
|
st.stealthChop(1);
|
||||||
|
#if ENABLED(HYBRID_THRESHOLD)
|
||||||
|
st.stealth_max_speed(12650000UL*st.microsteps()/(256*thrs*spmm));
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(SENSORLESS_HOMING)
|
#elif ENABLED(SENSORLESS_HOMING)
|
||||||
st.coolstep_min_speed(1048575);
|
st.coolstep_min_speed(1024UL * 1024UL - 1UL);
|
||||||
st.sg_stall_value(STALL_THRESHOLD);
|
|
||||||
st.sg_filter(1);
|
|
||||||
st.diag1_stall(1);
|
|
||||||
st.diag1_active_high(1);
|
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
#define _TMC2130_INIT(ST) tmc2130_init(stepper##ST, ST##_MAX_CURRENT, ST##_MICROSTEPS)
|
#define _TMC2130_INIT(ST, SPMM) tmc2130_init(stepper##ST, ST##_MICROSTEPS, ST##_HYBRID_THRESHOLD, SPMM)
|
||||||
|
|
||||||
void tmc2130_init() {
|
void tmc2130_init() {
|
||||||
delay(500); // Let power stabilize before configuring the steppers
|
constexpr uint16_t steps_per_mm[] = DEFAULT_AXIS_STEPS_PER_UNIT;
|
||||||
#if ENABLED(X_IS_TMC2130)
|
#if ENABLED(X_IS_TMC2130)
|
||||||
_TMC2130_INIT(X);
|
_TMC2130_INIT( X, steps_per_mm[X_AXIS]);
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
|
stepperX.sg_stall_value(X_HOMING_SENSITIVITY);
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(X2_IS_TMC2130)
|
#if ENABLED(X2_IS_TMC2130)
|
||||||
_TMC2130_INIT(X2);
|
_TMC2130_INIT(X2, steps_per_mm[X_AXIS]);
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(Y_IS_TMC2130)
|
#if ENABLED(Y_IS_TMC2130)
|
||||||
_TMC2130_INIT(Y);
|
_TMC2130_INIT( Y, steps_per_mm[Y_AXIS]);
|
||||||
|
#if ENABLED(SENSORLESS_HOMING)
|
||||||
|
stepperY.sg_stall_value(Y_HOMING_SENSITIVITY);
|
||||||
|
#endif
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(Y2_IS_TMC2130)
|
#if ENABLED(Y2_IS_TMC2130)
|
||||||
_TMC2130_INIT(Y2);
|
_TMC2130_INIT(Y2, steps_per_mm[Y_AXIS]);
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(Z_IS_TMC2130)
|
#if ENABLED(Z_IS_TMC2130)
|
||||||
_TMC2130_INIT(Z);
|
_TMC2130_INIT( Z, steps_per_mm[Z_AXIS]);
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(Z2_IS_TMC2130)
|
#if ENABLED(Z2_IS_TMC2130)
|
||||||
_TMC2130_INIT(Z2);
|
_TMC2130_INIT(Z2, steps_per_mm[Z_AXIS]);
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(E0_IS_TMC2130)
|
#if ENABLED(E0_IS_TMC2130)
|
||||||
_TMC2130_INIT(E0);
|
_TMC2130_INIT(E0, steps_per_mm[E_AXIS]);
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(E1_IS_TMC2130)
|
#if ENABLED(E1_IS_TMC2130)
|
||||||
_TMC2130_INIT(E1);
|
{ constexpr int extruder = 1; _TMC2130_INIT(E1, steps_per_mm[E_AXIS_N]); }
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(E2_IS_TMC2130)
|
#if ENABLED(E2_IS_TMC2130)
|
||||||
_TMC2130_INIT(E2);
|
{ constexpr int extruder = 2; _TMC2130_INIT(E2, steps_per_mm[E_AXIS_N]); }
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(E3_IS_TMC2130)
|
#if ENABLED(E3_IS_TMC2130)
|
||||||
_TMC2130_INIT(E3);
|
{ constexpr int extruder = 3; _TMC2130_INIT(E3, steps_per_mm[E_AXIS_N]); }
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(E4_IS_TMC2130)
|
#if ENABLED(E4_IS_TMC2130)
|
||||||
_TMC2130_INIT(E4);
|
{ constexpr int extruder = 4; _TMC2130_INIT(E4, steps_per_mm[E_AXIS_N]); }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
TMC2130_ADV()
|
TMC2130_ADV()
|
||||||
|
|
Loading…
Reference in a new issue