Fix and improve EEPROM storage (#12054)
* Clean up Temperature PID * Improve EEPROM read/write/validate * Group `SINGLENOZZLE` saved settings * Group planner saved settings * Group filament change saved settings * Group skew saved settings * Group `FWRETRACT` saved settings
This commit is contained in:
@ -36,10 +36,10 @@
|
||||
* Z[units] retract_zlift
|
||||
*/
|
||||
void GcodeSuite::M207() {
|
||||
if (parser.seen('S')) fwretract.retract_length = parser.value_axis_units(E_AXIS);
|
||||
if (parser.seen('F')) fwretract.retract_feedrate_mm_s = MMM_TO_MMS(parser.value_axis_units(E_AXIS));
|
||||
if (parser.seen('Z')) fwretract.retract_zlift = parser.value_linear_units();
|
||||
if (parser.seen('W')) fwretract.swap_retract_length = parser.value_axis_units(E_AXIS);
|
||||
if (parser.seen('S')) fwretract.settings.retract_length = parser.value_axis_units(E_AXIS);
|
||||
if (parser.seen('F')) fwretract.settings.retract_feedrate_mm_s = MMM_TO_MMS(parser.value_axis_units(E_AXIS));
|
||||
if (parser.seen('Z')) fwretract.settings.retract_zlift = parser.value_linear_units();
|
||||
if (parser.seen('W')) fwretract.settings.swap_retract_length = parser.value_axis_units(E_AXIS);
|
||||
}
|
||||
|
||||
/**
|
||||
@ -51,10 +51,10 @@ void GcodeSuite::M207() {
|
||||
* R[units/min] swap_retract_recover_feedrate_mm_s
|
||||
*/
|
||||
void GcodeSuite::M208() {
|
||||
if (parser.seen('S')) fwretract.retract_recover_length = parser.value_axis_units(E_AXIS);
|
||||
if (parser.seen('F')) fwretract.retract_recover_feedrate_mm_s = MMM_TO_MMS(parser.value_axis_units(E_AXIS));
|
||||
if (parser.seen('R')) fwretract.swap_retract_recover_feedrate_mm_s = MMM_TO_MMS(parser.value_axis_units(E_AXIS));
|
||||
if (parser.seen('W')) fwretract.swap_retract_recover_length = parser.value_axis_units(E_AXIS);
|
||||
if (parser.seen('S')) fwretract.settings.retract_recover_length = parser.value_axis_units(E_AXIS);
|
||||
if (parser.seen('F')) fwretract.settings.retract_recover_feedrate_mm_s = MMM_TO_MMS(parser.value_axis_units(E_AXIS));
|
||||
if (parser.seen('R')) fwretract.settings.swap_retract_recover_feedrate_mm_s = MMM_TO_MMS(parser.value_axis_units(E_AXIS));
|
||||
if (parser.seen('W')) fwretract.settings.swap_retract_recover_length = parser.value_axis_units(E_AXIS);
|
||||
}
|
||||
|
||||
#if ENABLED(FWRETRACT_AUTORETRACT)
|
||||
|
@ -111,14 +111,14 @@ void GcodeSuite::M600() {
|
||||
|
||||
// Unload filament
|
||||
const float unload_length = -ABS(parser.seen('U') ? parser.value_axis_units(E_AXIS)
|
||||
: filament_change_unload_length[active_extruder]);
|
||||
: fc_settings[active_extruder].unload_length);
|
||||
|
||||
// Slow load filament
|
||||
constexpr float slow_load_length = FILAMENT_CHANGE_SLOW_LOAD_LENGTH;
|
||||
|
||||
// Fast load filament
|
||||
const float fast_load_length = ABS(parser.seen('L') ? parser.value_axis_units(E_AXIS)
|
||||
: filament_change_load_length[active_extruder]);
|
||||
: fc_settings[active_extruder].load_length);
|
||||
|
||||
const int beep_count = parser.intval('B',
|
||||
#ifdef FILAMENT_CHANGE_ALERT_BEEPS
|
||||
|
@ -47,17 +47,17 @@ void GcodeSuite::M603() {
|
||||
|
||||
// Unload length
|
||||
if (parser.seen('U')) {
|
||||
filament_change_unload_length[target_extruder] = ABS(parser.value_axis_units(E_AXIS));
|
||||
fc_settings[target_extruder].unload_length = ABS(parser.value_axis_units(E_AXIS));
|
||||
#if ENABLED(PREVENT_LENGTHY_EXTRUDE)
|
||||
NOMORE(filament_change_unload_length[target_extruder], EXTRUDE_MAXLENGTH);
|
||||
NOMORE(fc_settings[target_extruder].unload_length, EXTRUDE_MAXLENGTH);
|
||||
#endif
|
||||
}
|
||||
|
||||
// Load length
|
||||
if (parser.seen('L')) {
|
||||
filament_change_load_length[target_extruder] = ABS(parser.value_axis_units(E_AXIS));
|
||||
fc_settings[target_extruder].load_length = ABS(parser.value_axis_units(E_AXIS));
|
||||
#if ENABLED(PREVENT_LENGTHY_EXTRUDE)
|
||||
NOMORE(filament_change_load_length[target_extruder], EXTRUDE_MAXLENGTH);
|
||||
NOMORE(fc_settings[target_extruder].load_length, EXTRUDE_MAXLENGTH);
|
||||
#endif
|
||||
}
|
||||
}
|
||||
|
@ -79,7 +79,7 @@ void GcodeSuite::M701() {
|
||||
// Load filament
|
||||
constexpr float slow_load_length = FILAMENT_CHANGE_SLOW_LOAD_LENGTH;
|
||||
const float fast_load_length = ABS(parser.seen('L') ? parser.value_axis_units(E_AXIS)
|
||||
: filament_change_load_length[active_extruder]);
|
||||
: fc_settings[active_extruder].load_length);
|
||||
load_filament(slow_load_length, fast_load_length, ADVANCED_PAUSE_PURGE_LENGTH, FILAMENT_CHANGE_ALERT_BEEPS,
|
||||
true, thermalManager.still_heating(target_extruder), ADVANCED_PAUSE_MODE_LOAD_FILAMENT
|
||||
#if ENABLED(DUAL_X_CARRIAGE)
|
||||
@ -147,7 +147,7 @@ void GcodeSuite::M702() {
|
||||
if (!parser.seenval('T')) {
|
||||
HOTEND_LOOP() {
|
||||
if (e != active_extruder) tool_change(e, 0, true);
|
||||
unload_filament(-filament_change_unload_length[e], true, ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT);
|
||||
unload_filament(-fc_settings[e].unload_length, true, ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT);
|
||||
}
|
||||
}
|
||||
else
|
||||
@ -155,7 +155,7 @@ void GcodeSuite::M702() {
|
||||
{
|
||||
// Unload length
|
||||
const float unload_length = -ABS(parser.seen('U') ? parser.value_axis_units(E_AXIS) :
|
||||
filament_change_unload_length[target_extruder]);
|
||||
fc_settings[target_extruder].unload_length);
|
||||
|
||||
unload_filament(unload_length, true, ADVANCED_PAUSE_MODE_UNLOAD_FILAMENT);
|
||||
}
|
||||
|
@ -161,10 +161,10 @@
|
||||
*/
|
||||
#if ENABLED(HYBRID_THRESHOLD)
|
||||
void GcodeSuite::M913() {
|
||||
#define TMC_SAY_PWMTHRS(A,Q) tmc_get_pwmthrs(stepper##Q, planner.axis_steps_per_mm[_AXIS(A)])
|
||||
#define TMC_SET_PWMTHRS(A,Q) tmc_set_pwmthrs(stepper##Q, value, planner.axis_steps_per_mm[_AXIS(A)])
|
||||
#define TMC_SAY_PWMTHRS_E(E) tmc_get_pwmthrs(stepperE##E, planner.axis_steps_per_mm[E_AXIS_N(E)])
|
||||
#define TMC_SET_PWMTHRS_E(E) tmc_set_pwmthrs(stepperE##E, value, planner.axis_steps_per_mm[E_AXIS_N(E)])
|
||||
#define TMC_SAY_PWMTHRS(A,Q) tmc_get_pwmthrs(stepper##Q, planner.settings.axis_steps_per_mm[_AXIS(A)])
|
||||
#define TMC_SET_PWMTHRS(A,Q) tmc_set_pwmthrs(stepper##Q, value, planner.settings.axis_steps_per_mm[_AXIS(A)])
|
||||
#define TMC_SAY_PWMTHRS_E(E) tmc_get_pwmthrs(stepperE##E, planner.settings.axis_steps_per_mm[E_AXIS_N(E)])
|
||||
#define TMC_SET_PWMTHRS_E(E) tmc_set_pwmthrs(stepperE##E, value, planner.settings.axis_steps_per_mm[E_AXIS_N(E)])
|
||||
|
||||
bool report = true;
|
||||
const uint8_t index = parser.byteval('I');
|
||||
|
Reference in New Issue
Block a user