Browse Source

Fix DELTA + TMC sensorless homing + SPI endstops (#18811)

vanilla_fb_2.0.x
Victor Tseng 4 years ago
committed by GitHub
parent
commit
5d14c3712f
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 14
      Marlin/src/module/delta.cpp
  2. 6
      Marlin/src/module/motion.h

14
Marlin/src/module/delta.cpp

@ -242,11 +242,9 @@ void home_delta() {
// Disable stealthChop if used. Enable diag1 pin on driver. // Disable stealthChop if used. Enable diag1 pin on driver.
#if ENABLED(SENSORLESS_HOMING) #if ENABLED(SENSORLESS_HOMING)
sensorless_t stealth_states { TERN_(X_SENSORLESS, sensorless_t stealth_states_x = start_sensorless_homing_per_axis(X_AXIS));
tmc_enable_stallguard(stepperX), TERN_(Y_SENSORLESS, sensorless_t stealth_states_y = start_sensorless_homing_per_axis(Y_AXIS));
tmc_enable_stallguard(stepperY), TERN_(Z_SENSORLESS, sensorless_t stealth_states_z = start_sensorless_homing_per_axis(Z_AXIS));
tmc_enable_stallguard(stepperZ)
};
#endif #endif
// Move all carriages together linearly until an endstop is hit. // Move all carriages together linearly until an endstop is hit.
@ -256,9 +254,9 @@ void home_delta() {
// Re-enable stealthChop if used. Disable diag1 pin on driver. // Re-enable stealthChop if used. Disable diag1 pin on driver.
#if ENABLED(SENSORLESS_HOMING) #if ENABLED(SENSORLESS_HOMING)
tmc_disable_stallguard(stepperX, stealth_states.x); TERN_(X_SENSORLESS, end_sensorless_homing_per_axis(X_AXIS, stealth_states_x));
tmc_disable_stallguard(stepperY, stealth_states.y); TERN_(Y_SENSORLESS, end_sensorless_homing_per_axis(Y_AXIS, stealth_states_y));
tmc_disable_stallguard(stepperZ, stealth_states.z); TERN_(Z_SENSORLESS, end_sensorless_homing_per_axis(Z_AXIS, stealth_states_z));
#endif #endif
endstops.validate_homing_move(); endstops.validate_homing_move();

6
Marlin/src/module/motion.h

@ -395,3 +395,9 @@ void homeaxis(const AxisEnum axis);
#if HAS_M206_COMMAND #if HAS_M206_COMMAND
void set_home_offset(const AxisEnum axis, const float v); void set_home_offset(const AxisEnum axis, const float v);
#endif #endif
#if USE_SENSORLESS
struct sensorless_t;
sensorless_t start_sensorless_homing_per_axis(const AxisEnum axis);
void end_sensorless_homing_per_axis(const AxisEnum axis, sensorless_t enable_stealth);
#endif

Loading…
Cancel
Save