Skip to content

Commit f385140

Browse files
vlsithinkyhead
andauthored
🔧 No TMC_HOME_PHASE on tandem steppers (#26310)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
1 parent 03cf2b5 commit f385140

File tree

1 file changed

+19
-0
lines changed

1 file changed

+19
-0
lines changed

Marlin/src/inc/SanityCheck.h

+19
Original file line numberDiff line numberDiff line change
@@ -3017,6 +3017,25 @@ static_assert(COUNT(arm) == LOGICAL_AXES, "AXIS_RELATIVE_MODES must contain " _L
30173017
#error "STEALTHCHOP_XY and STEALTHCHOP_Z must be the same on DELTA."
30183018
#endif
30193019

3020+
// H-Bot kinematic axes can't use homing phases
3021+
#if ANY(IS_CORE, MARKFORGED_XY, MARKFORGED_YX) && defined(TMC_HOME_PHASE)
3022+
constexpr float _phases[] = TMC_HOME_PHASE, _vphase[9] = TMC_HOME_PHASE;
3023+
constexpr int _nphase = COUNT(_phases);
3024+
static_assert(_nphase == NUM_AXES, "TMC_HOME_PHASE must have exactly " _NUM_AXES_STR " elements.");
3025+
static_assert(_nphase < 0 || _vphase[0] == -1 || NORMAL_AXIS == 0, "TMC_HOME_PHASE.x must be -1 for the selected kinematics.");
3026+
static_assert(_nphase < 1 || _vphase[1] == -1 || NORMAL_AXIS == 1, "TMC_HOME_PHASE.y must be -1 for the selected kinematics.");
3027+
static_assert(_nphase < 2 || _vphase[2] == -1 || NORMAL_AXIS == 2, "TMC_HOME_PHASE.z must be -1 for the selected kinematics.");
3028+
static_assert(_nphase < 0 || WITHIN(_vphase[0], -1, 1023), "TMC_HOME_PHASE.x must be between -1 and 1023.");
3029+
static_assert(_nphase < 1 || WITHIN(_vphase[1], -1, 1023), "TMC_HOME_PHASE.y must be between -1 and 1023.");
3030+
static_assert(_nphase < 2 || WITHIN(_vphase[2], -1, 1023), "TMC_HOME_PHASE.z must be between -1 and 1023.");
3031+
static_assert(_nphase < 3 || WITHIN(_vphase[3], -1, 1023), "TMC_HOME_PHASE.i must be between -1 and 1023.");
3032+
static_assert(_nphase < 4 || WITHIN(_vphase[4], -1, 1023), "TMC_HOME_PHASE.j must be between -1 and 1023.");
3033+
static_assert(_nphase < 5 || WITHIN(_vphase[5], -1, 1023), "TMC_HOME_PHASE.k must be between -1 and 1023.");
3034+
static_assert(_nphase < 6 || WITHIN(_vphase[6], -1, 1023), "TMC_HOME_PHASE.u must be between -1 and 1023.");
3035+
static_assert(_nphase < 7 || WITHIN(_vphase[7], -1, 1023), "TMC_HOME_PHASE.v must be between -1 and 1023.");
3036+
static_assert(_nphase < 8 || WITHIN(_vphase[8], -1, 1023), "TMC_HOME_PHASE.w must be between -1 and 1023.");
3037+
#endif
3038+
30203039
#if ENABLED(SENSORLESS_HOMING)
30213040
// Require STEALTHCHOP for SENSORLESS_HOMING on DELTA as the transition from spreadCycle to stealthChop
30223041
// is necessary in order to reset the stallGuard indication between the initial movement of all three

0 commit comments

Comments
 (0)