@@ -3017,6 +3017,25 @@ static_assert(COUNT(arm) == LOGICAL_AXES, "AXIS_RELATIVE_MODES must contain " _L
3017
3017
#error "STEALTHCHOP_XY and STEALTHCHOP_Z must be the same on DELTA."
3018
3018
#endif
3019
3019
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
+
3020
3039
#if ENABLED(SENSORLESS_HOMING)
3021
3040
// Require STEALTHCHOP for SENSORLESS_HOMING on DELTA as the transition from spreadCycle to stealthChop
3022
3041
// is necessary in order to reset the stallGuard indication between the initial movement of all three
0 commit comments