|
|
|
@ -220,7 +220,7 @@ typedef struct SettingsDataStruct {
|
|
|
|
|
// HAS_TRINAMIC
|
|
|
|
|
//
|
|
|
|
|
uint16_t tmc_stepper_current[11]; // M906 X Y Z X2 Y2 Z2 E0 E1 E2 E3 E4
|
|
|
|
|
int16_t tmc_sgt[3]; // M914 X Y Z
|
|
|
|
|
int16_t tmc_sgt[XYZ]; // M914 X Y Z
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// LIN_ADVANCE
|
|
|
|
@ -721,30 +721,28 @@ void MarlinSettings::postprocess() {
|
|
|
|
|
//
|
|
|
|
|
// TMC2130 Sensorless homing threshold
|
|
|
|
|
//
|
|
|
|
|
int16_t thrs;
|
|
|
|
|
int16_t thrs[XYZ] = {
|
|
|
|
|
#if ENABLED(SENSORLESS_HOMING)
|
|
|
|
|
#if ENABLED(X_IS_TMC2130) && defined(X_HOMING_SENSITIVITY)
|
|
|
|
|
thrs = stepperX.sgt();
|
|
|
|
|
stepperX.sgt(),
|
|
|
|
|
#else
|
|
|
|
|
thrs = 0;
|
|
|
|
|
0,
|
|
|
|
|
#endif
|
|
|
|
|
EEPROM_WRITE(thrs);
|
|
|
|
|
#if ENABLED(Y_IS_TMC2130) && defined(Y_HOMING_SENSITIVITY)
|
|
|
|
|
thrs = stepperY.sgt();
|
|
|
|
|
stepperY.sgt(),
|
|
|
|
|
#else
|
|
|
|
|
thrs = 0;
|
|
|
|
|
0
|
|
|
|
|
#endif
|
|
|
|
|
EEPROM_WRITE(thrs);
|
|
|
|
|
#if ENABLED(Z_IS_TMC2130) && defined(Z_HOMING_SENSITIVITY)
|
|
|
|
|
thrs = stepperZ.sgt();
|
|
|
|
|
stepperZ.sgt()
|
|
|
|
|
#else
|
|
|
|
|
thrs = 0;
|
|
|
|
|
0
|
|
|
|
|
#endif
|
|
|
|
|
EEPROM_WRITE(thrs);
|
|
|
|
|
#else
|
|
|
|
|
thrs = 0;
|
|
|
|
|
for (uint8_t q = 3; q--;) EEPROM_WRITE(thrs);
|
|
|
|
|
0
|
|
|
|
|
#endif
|
|
|
|
|
};
|
|
|
|
|
EEPROM_WRITE(thrs);
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
|
// Linear Advance
|
|
|
|
@ -762,10 +760,10 @@ void MarlinSettings::postprocess() {
|
|
|
|
|
_FIELD_TEST(motor_current_setting);
|
|
|
|
|
|
|
|
|
|
#if HAS_MOTOR_CURRENT_PWM
|
|
|
|
|
for (uint8_t q = 3; q--;) EEPROM_WRITE(stepper.motor_current_setting[q]);
|
|
|
|
|
for (uint8_t q = XYZ; q--;) EEPROM_WRITE(stepper.motor_current_setting[q]);
|
|
|
|
|
#else
|
|
|
|
|
const uint32_t dummyui32 = 0;
|
|
|
|
|
for (uint8_t q = 3; q--;) EEPROM_WRITE(dummyui32);
|
|
|
|
|
const uint32_t dummyui32[XYZ] = { 0 };
|
|
|
|
|
EEPROM_WRITE(dummyui32);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
@ -793,7 +791,7 @@ void MarlinSettings::postprocess() {
|
|
|
|
|
EEPROM_WRITE(planner.yz_skew_factor);
|
|
|
|
|
#else
|
|
|
|
|
dummy = 0.0f;
|
|
|
|
|
for (uint8_t q = 3; q--;) EEPROM_WRITE(dummy);
|
|
|
|
|
for (uint8_t q = XYZ; q--;) EEPROM_WRITE(dummy);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
@ -1254,44 +1252,37 @@ void MarlinSettings::postprocess() {
|
|
|
|
|
* TMC2130 Sensorless homing threshold.
|
|
|
|
|
* X and X2 use the same value
|
|
|
|
|
* Y and Y2 use the same value
|
|
|
|
|
* Z and Z2 use the same value
|
|
|
|
|
*/
|
|
|
|
|
int16_t thrs;
|
|
|
|
|
#if ENABLED(SENSORLESS_HOMING)
|
|
|
|
|
int16_t thrs[XYZ];
|
|
|
|
|
EEPROM_READ(thrs);
|
|
|
|
|
#ifdef X_HOMING_SENSITIVITY
|
|
|
|
|
#if ENABLED(SENSORLESS_HOMING)
|
|
|
|
|
if (!validating) {
|
|
|
|
|
#ifdef X_HOMING_SENSITIVITY
|
|
|
|
|
#if ENABLED(X_IS_TMC2130)
|
|
|
|
|
stepperX.sgt(thrs);
|
|
|
|
|
stepperX.sgt(thrs[0]);
|
|
|
|
|
#endif
|
|
|
|
|
#if ENABLED(X2_IS_TMC2130)
|
|
|
|
|
stepperX2.sgt(thrs);
|
|
|
|
|
stepperX2.sgt(thrs[0]);
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
EEPROM_READ(thrs);
|
|
|
|
|
#ifdef Y_HOMING_SENSITIVITY
|
|
|
|
|
if (!validating) {
|
|
|
|
|
#if ENABLED(Y_IS_TMC2130)
|
|
|
|
|
stepperY.sgt(thrs);
|
|
|
|
|
stepperY.sgt(thrs[1]);
|
|
|
|
|
#endif
|
|
|
|
|
#if ENABLED(Y2_IS_TMC2130)
|
|
|
|
|
stepperY2.sgt(thrs);
|
|
|
|
|
stepperY2.sgt(thrs[1]);
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
EEPROM_READ(thrs);
|
|
|
|
|
#ifdef Z_HOMING_SENSITIVITY
|
|
|
|
|
if (!validating) {
|
|
|
|
|
#if ENABLED(Z_IS_TMC2130)
|
|
|
|
|
stepperZ.sgt(thrs);
|
|
|
|
|
stepperZ.sgt(thrs[2]);
|
|
|
|
|
#endif
|
|
|
|
|
#if ENABLED(Z2_IS_TMC2130)
|
|
|
|
|
stepperZ2.sgt(thrs);
|
|
|
|
|
stepperZ2.sgt(thrs[2]);
|
|
|
|
|
#endif
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
#else
|
|
|
|
|
for (uint8_t q = 0; q < 3; q++) EEPROM_READ(thrs);
|
|
|
|
|
}
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
@ -1313,10 +1304,10 @@ void MarlinSettings::postprocess() {
|
|
|
|
|
_FIELD_TEST(motor_current_setting);
|
|
|
|
|
|
|
|
|
|
#if HAS_MOTOR_CURRENT_PWM
|
|
|
|
|
for (uint8_t q = 3; q--;) EEPROM_READ(stepper.motor_current_setting[q]);
|
|
|
|
|
for (uint8_t q = XYZ; q--;) EEPROM_READ(stepper.motor_current_setting[q]);
|
|
|
|
|
#else
|
|
|
|
|
uint32_t dummyui32;
|
|
|
|
|
for (uint8_t q = 3; q--;) EEPROM_READ(dummyui32);
|
|
|
|
|
uint32_t dummyui32[XYZ];
|
|
|
|
|
EEPROM_READ(dummyui32);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
@ -1348,7 +1339,7 @@ void MarlinSettings::postprocess() {
|
|
|
|
|
EEPROM_READ(dummy);
|
|
|
|
|
#endif
|
|
|
|
|
#else
|
|
|
|
|
for (uint8_t q = 3; q--;) EEPROM_READ(dummy);
|
|
|
|
|
for (uint8_t q = XYZ; q--;) EEPROM_READ(dummy);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
@ -1831,8 +1822,8 @@ void MarlinSettings::reset(
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if HAS_MOTOR_CURRENT_PWM
|
|
|
|
|
uint32_t tmp_motor_current_setting[3] = PWM_MOTOR_CURRENT;
|
|
|
|
|
for (uint8_t q = 3; q--;)
|
|
|
|
|
uint32_t tmp_motor_current_setting[XYZ] = PWM_MOTOR_CURRENT;
|
|
|
|
|
for (uint8_t q = XYZ; q--;)
|
|
|
|
|
stepper.digipot_current(q, (stepper.motor_current_setting[q] = tmp_motor_current_setting[q]));
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|