🚀 ZV Input Shaping (#24797)
This commit is contained in:
committed by
Scott Lahteine
parent
5765449867
commit
c1f0f26bff
@ -577,6 +577,18 @@ typedef struct SettingsDataStruct {
|
||||
MPC_t mpc_constants[HOTENDS]; // M306
|
||||
#endif
|
||||
|
||||
//
|
||||
// Input Shaping
|
||||
//
|
||||
#if HAS_SHAPING_X
|
||||
float shaping_x_frequency, // M593 X F
|
||||
shaping_x_zeta; // M593 X D
|
||||
#endif
|
||||
#if HAS_SHAPING_Y
|
||||
float shaping_y_frequency, // M593 Y F
|
||||
shaping_y_zeta; // M593 Y D
|
||||
#endif
|
||||
|
||||
} SettingsData;
|
||||
|
||||
//static_assert(sizeof(SettingsData) <= MARLIN_EEPROM_SIZE, "EEPROM too small to contain SettingsData!");
|
||||
@ -1602,6 +1614,20 @@ void MarlinSettings::postprocess() {
|
||||
EEPROM_WRITE(thermalManager.temp_hotend[e].constants);
|
||||
#endif
|
||||
|
||||
//
|
||||
// Input Shaping
|
||||
///
|
||||
#if ENABLED(INPUT_SHAPING)
|
||||
#if HAS_SHAPING_X
|
||||
EEPROM_WRITE(stepper.get_shaping_frequency(X_AXIS));
|
||||
EEPROM_WRITE(stepper.get_shaping_damping_ratio(X_AXIS));
|
||||
#endif
|
||||
#if HAS_SHAPING_Y
|
||||
EEPROM_WRITE(stepper.get_shaping_frequency(Y_AXIS));
|
||||
EEPROM_WRITE(stepper.get_shaping_damping_ratio(Y_AXIS));
|
||||
#endif
|
||||
#endif
|
||||
|
||||
//
|
||||
// Report final CRC and Data Size
|
||||
//
|
||||
@ -2573,6 +2599,27 @@ void MarlinSettings::postprocess() {
|
||||
}
|
||||
#endif
|
||||
|
||||
//
|
||||
// Input Shaping
|
||||
//
|
||||
#if HAS_SHAPING_X
|
||||
{
|
||||
float _data[2];
|
||||
EEPROM_READ(_data);
|
||||
stepper.set_shaping_frequency(X_AXIS, _data[0]);
|
||||
stepper.set_shaping_damping_ratio(X_AXIS, _data[1]);
|
||||
}
|
||||
#endif
|
||||
|
||||
#if HAS_SHAPING_Y
|
||||
{
|
||||
float _data[2];
|
||||
EEPROM_READ(_data);
|
||||
stepper.set_shaping_frequency(Y_AXIS, _data[0]);
|
||||
stepper.set_shaping_damping_ratio(Y_AXIS, _data[1]);
|
||||
}
|
||||
#endif
|
||||
|
||||
//
|
||||
// Validate Final Size and CRC
|
||||
//
|
||||
@ -3343,6 +3390,20 @@ void MarlinSettings::reset() {
|
||||
}
|
||||
#endif
|
||||
|
||||
//
|
||||
// Input Shaping
|
||||
//
|
||||
#if ENABLED(INPUT_SHAPING)
|
||||
#if HAS_SHAPING_X
|
||||
stepper.set_shaping_frequency(X_AXIS, SHAPING_FREQ_X);
|
||||
stepper.set_shaping_damping_ratio(X_AXIS, SHAPING_ZETA_X);
|
||||
#endif
|
||||
#if HAS_SHAPING_Y
|
||||
stepper.set_shaping_frequency(Y_AXIS, SHAPING_FREQ_Y);
|
||||
stepper.set_shaping_damping_ratio(Y_AXIS, SHAPING_ZETA_Y);
|
||||
#endif
|
||||
#endif
|
||||
|
||||
postprocess();
|
||||
|
||||
#if EITHER(EEPROM_CHITCHAT, DEBUG_LEVELING_FEATURE)
|
||||
@ -3590,6 +3651,11 @@ void MarlinSettings::reset() {
|
||||
//
|
||||
TERN_(HAS_STEALTHCHOP, gcode.M569_report(forReplay));
|
||||
|
||||
//
|
||||
// Input Shaping
|
||||
//
|
||||
TERN_(INPUT_SHAPING, gcode.M593_report(forReplay));
|
||||
|
||||
//
|
||||
// Linear Advance
|
||||
//
|
||||
|
Reference in New Issue
Block a user