@@ -4312,34 +4312,52 @@ static_assert(_PLUS_TEST(4), "HOMING_FEEDRATE_MM_M values must be positive.");
4312
4312
#error "BINARY_FILE_TRANSFER and CUSTOM_FIRMWARE_UPLOAD are required for custom upload."
4313
4313
#endif
4314
4314
4315
- // Check requirements for Input Shaping
4316
- #if HAS_SHAPING && defined(__AVR__)
4317
- #ifdef SHAPING_MIN_FREQ
4318
- static_assert ((SHAPING_MIN_FREQ) > 0, "SHAPING_MIN_FREQ must be > 0.");
4319
- #else
4320
- TERN_ (INPUT_SHAPING_X, static_assert((SHAPING_FREQ_X) > 0, "SHAPING_FREQ_X must be > 0 or SHAPING_MIN_FREQ must be set."));
4321
- TERN_ (INPUT_SHAPING_Y, static_assert((SHAPING_FREQ_Y) > 0, "SHAPING_FREQ_Y must be > 0 or SHAPING_MIN_FREQ must be set."));
4315
+ /* *
4316
+ * Input Shaping requirements
4317
+ */
4318
+ #if HAS_SHAPING
4319
+ #if ENABLED(DELTA)
4320
+ #error "Input Shaping is not compatible with DELTA kinematics."
4321
+ #elif ENABLED(SCARA)
4322
+ #error "Input Shaping is not compatible with SCARA kinematics."
4323
+ #elif ENABLED(TPARA)
4324
+ #error "Input Shaping is not compatible with TPARA kinematics."
4325
+ #elif ENABLED(POLAR)
4326
+ #error "Input Shaping is not compatible with POLAR kinematics."
4327
+ #elif ENABLED(POLARGRAPH)
4328
+ #error "Input Shaping is not compatible with POLARGRAPH kinematics."
4329
+ #elif ENABLED(DIRECT_STEPPING)
4330
+ #error "Input Shaping is not compatible with DIRECT_STEPPING."
4331
+ #elif ENABLED(INPUT_SHAPING_X) && ANY(CORE_IS_XY, CORE_IS_XZ, MARKFORGED_XY, MARKFORGED_YX)
4332
+ #error "INPUT_SHAPING_X is not supported with COREXY, COREYX, COREXZ, COREZX, or MARKFORGED_*."
4333
+ #elif ENABLED(INPUT_SHAPING_Y) && ANY(CORE_IS_XY, CORE_IS_YZ, MARKFORGED_XY, MARKFORGED_YX)
4334
+ #error "INPUT_SHAPING_Y is not supported with COREXY, COREYX, COREYZ, COREZY, or MARKFORGED_*."
4322
4335
#endif
4323
- #if ENABLED(INPUT_SHAPING_X)
4324
- #if F_CPU > 16000000
4325
- static_assert ((SHAPING_FREQ_X) == 0 || (SHAPING_FREQ_X) * 2 * 0x10000 >= (STEPPER_TIMER_RATE), "SHAPING_FREQ_X is below the minimum (20 ) for AVR 20MHz.");
4336
+
4337
+ #ifdef __AVR__
4338
+ #ifdef SHAPING_MIN_FREQ
4339
+ static_assert ((SHAPING_MIN_FREQ) > 0, "SHAPING_MIN_FREQ must be > 0.");
4326
4340
#else
4327
- static_assert ((SHAPING_FREQ_X) == 0 || (SHAPING_FREQ_X) * 2 * 0x10000 >= (STEPPER_TIMER_RATE), "SHAPING_FREQ_X is below the minimum (16 ) for AVR 16MHz.");
4341
+ TERN_ (INPUT_SHAPING_X, static_assert((SHAPING_FREQ_X) > 0, "SHAPING_FREQ_X must be > 0 or SHAPING_MIN_FREQ must be set."));
4342
+ TERN_ (INPUT_SHAPING_Y, static_assert((SHAPING_FREQ_Y) > 0, "SHAPING_FREQ_Y must be > 0 or SHAPING_MIN_FREQ must be set."));
4328
4343
#endif
4329
- #endif
4330
- #if ENABLED(INPUT_SHAPING_Y)
4331
- #if F_CPU > 16000000
4332
- static_assert ((SHAPING_FREQ_Y) == 0 || (SHAPING_FREQ_Y) * 2 * 0x10000 >= (STEPPER_TIMER_RATE), "SHAPING_FREQ_Y is below the minimum (20 ) for AVR 20MHz.");
4333
- #else
4334
- static_assert ((SHAPING_FREQ_Y) == 0 || (SHAPING_FREQ_Y) * 2 * 0x10000 >= (STEPPER_TIMER_RATE), "SHAPING_FREQ_Y is below the minimum (16 ) for AVR 16MHz.");
4344
+ #if ENABLED(INPUT_SHAPING_X)
4345
+ #if F_CPU > 16000000
4346
+ static_assert ((SHAPING_FREQ_X) == 0 || (SHAPING_FREQ_X) * 2 * 0x10000 >= (STEPPER_TIMER_RATE), "SHAPING_FREQ_X is below the minimum (20 ) for AVR 20MHz.");
4347
+ #else
4348
+ static_assert ((SHAPING_FREQ_X) == 0 || (SHAPING_FREQ_X) * 2 * 0x10000 >= (STEPPER_TIMER_RATE), "SHAPING_FREQ_X is below the minimum (16 ) for AVR 16MHz.");
4349
+ #endif
4350
+ #endif
4351
+ #if ENABLED(INPUT_SHAPING_Y)
4352
+ #if F_CPU > 16000000
4353
+ static_assert ((SHAPING_FREQ_Y) == 0 || (SHAPING_FREQ_Y) * 2 * 0x10000 >= (STEPPER_TIMER_RATE), "SHAPING_FREQ_Y is below the minimum (20 ) for AVR 20MHz.");
4354
+ #else
4355
+ static_assert ((SHAPING_FREQ_Y) == 0 || (SHAPING_FREQ_Y) * 2 * 0x10000 >= (STEPPER_TIMER_RATE), "SHAPING_FREQ_Y is below the minimum (16 ) for AVR 16MHz.");
4356
+ #endif
4335
4357
#endif
4336
4358
#endif
4337
4359
#endif
4338
4360
4339
- #if BOTH(HAS_SHAPING, DIRECT_STEPPING)
4340
- #error "INPUT_SHAPING_[XY] cannot currently be used with DIRECT_STEPPING."
4341
- #endif
4342
-
4343
4361
// Misc. Cleanup
4344
4362
#undef _TEST_PWM
4345
4363
#undef _NUM_AXES_STR
0 commit comments