|
|
@ -129,6 +129,8 @@ static const uint32_t _DMA[] PROGMEM = DEFAULT_MAX_ACCELERATION;
|
|
|
|
static const float _DASU[] PROGMEM = DEFAULT_AXIS_STEPS_PER_UNIT;
|
|
|
|
static const float _DASU[] PROGMEM = DEFAULT_AXIS_STEPS_PER_UNIT;
|
|
|
|
static const feedRate_t _DMF[] PROGMEM = DEFAULT_MAX_FEEDRATE;
|
|
|
|
static const feedRate_t _DMF[] PROGMEM = DEFAULT_MAX_FEEDRATE;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
extern const char SP_X_STR[], SP_Y_STR[], SP_Z_STR[], SP_E_STR[];
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* Current EEPROM Layout
|
|
|
|
* Current EEPROM Layout
|
|
|
|
*
|
|
|
|
*
|
|
|
@ -2728,40 +2730,40 @@ void MarlinSettings::reset() {
|
|
|
|
|
|
|
|
|
|
|
|
CONFIG_ECHO_HEADING("Maximum feedrates (units/s):");
|
|
|
|
CONFIG_ECHO_HEADING("Maximum feedrates (units/s):");
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
SERIAL_ECHOLNPAIR(
|
|
|
|
SERIAL_ECHOLNPAIR_P(
|
|
|
|
" M203 X", LINEAR_UNIT(planner.settings.max_feedrate_mm_s[X_AXIS])
|
|
|
|
PSTR(" M203 X"), LINEAR_UNIT(planner.settings.max_feedrate_mm_s[X_AXIS])
|
|
|
|
, " Y", LINEAR_UNIT(planner.settings.max_feedrate_mm_s[Y_AXIS])
|
|
|
|
, SP_Y_STR, LINEAR_UNIT(planner.settings.max_feedrate_mm_s[Y_AXIS])
|
|
|
|
, " Z", LINEAR_UNIT(planner.settings.max_feedrate_mm_s[Z_AXIS])
|
|
|
|
, SP_Z_STR, LINEAR_UNIT(planner.settings.max_feedrate_mm_s[Z_AXIS])
|
|
|
|
#if DISABLED(DISTINCT_E_FACTORS)
|
|
|
|
#if DISABLED(DISTINCT_E_FACTORS)
|
|
|
|
, " E", VOLUMETRIC_UNIT(planner.settings.max_feedrate_mm_s[E_AXIS])
|
|
|
|
, SP_E_STR, VOLUMETRIC_UNIT(planner.settings.max_feedrate_mm_s[E_AXIS])
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
);
|
|
|
|
);
|
|
|
|
#if ENABLED(DISTINCT_E_FACTORS)
|
|
|
|
#if ENABLED(DISTINCT_E_FACTORS)
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
for (uint8_t i = 0; i < E_STEPPERS; i++) {
|
|
|
|
for (uint8_t i = 0; i < E_STEPPERS; i++) {
|
|
|
|
SERIAL_ECHOLNPAIR(
|
|
|
|
SERIAL_ECHOLNPAIR_P(
|
|
|
|
" M203 T", (int)i
|
|
|
|
PSTR(" M203 T"), (int)i
|
|
|
|
, " E", VOLUMETRIC_UNIT(planner.settings.max_feedrate_mm_s[E_AXIS_N(i)])
|
|
|
|
, SP_E_STR, VOLUMETRIC_UNIT(planner.settings.max_feedrate_mm_s[E_AXIS_N(i)])
|
|
|
|
);
|
|
|
|
);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
CONFIG_ECHO_HEADING("Maximum Acceleration (units/s2):");
|
|
|
|
CONFIG_ECHO_HEADING("Maximum Acceleration (units/s2):");
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
SERIAL_ECHOLNPAIR(
|
|
|
|
SERIAL_ECHOLNPAIR_P(
|
|
|
|
" M201 X", LINEAR_UNIT(planner.settings.max_acceleration_mm_per_s2[X_AXIS])
|
|
|
|
PSTR(" M201 X"), LINEAR_UNIT(planner.settings.max_acceleration_mm_per_s2[X_AXIS])
|
|
|
|
, " Y", LINEAR_UNIT(planner.settings.max_acceleration_mm_per_s2[Y_AXIS])
|
|
|
|
, SP_Y_STR, LINEAR_UNIT(planner.settings.max_acceleration_mm_per_s2[Y_AXIS])
|
|
|
|
, " Z", LINEAR_UNIT(planner.settings.max_acceleration_mm_per_s2[Z_AXIS])
|
|
|
|
, SP_Z_STR, LINEAR_UNIT(planner.settings.max_acceleration_mm_per_s2[Z_AXIS])
|
|
|
|
#if DISABLED(DISTINCT_E_FACTORS)
|
|
|
|
#if DISABLED(DISTINCT_E_FACTORS)
|
|
|
|
, " E", VOLUMETRIC_UNIT(planner.settings.max_acceleration_mm_per_s2[E_AXIS])
|
|
|
|
, SP_E_STR, VOLUMETRIC_UNIT(planner.settings.max_acceleration_mm_per_s2[E_AXIS])
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
);
|
|
|
|
);
|
|
|
|
#if ENABLED(DISTINCT_E_FACTORS)
|
|
|
|
#if ENABLED(DISTINCT_E_FACTORS)
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
for (uint8_t i = 0; i < E_STEPPERS; i++)
|
|
|
|
for (uint8_t i = 0; i < E_STEPPERS; i++)
|
|
|
|
SERIAL_ECHOLNPAIR(
|
|
|
|
SERIAL_ECHOLNPAIR_P(
|
|
|
|
" M201 T", (int)i
|
|
|
|
PSTR(" M201 T"), (int)i
|
|
|
|
, " E", VOLUMETRIC_UNIT(planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(i)])
|
|
|
|
, SP_E_STR, VOLUMETRIC_UNIT(planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(i)])
|
|
|
|
);
|
|
|
|
);
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
@ -2788,19 +2790,19 @@ void MarlinSettings::reset() {
|
|
|
|
SERIAL_EOL();
|
|
|
|
SERIAL_EOL();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
SERIAL_ECHOLNPAIR(
|
|
|
|
SERIAL_ECHOLNPAIR_P(
|
|
|
|
" M205 B", LINEAR_UNIT(planner.settings.min_segment_time_us)
|
|
|
|
PSTR(" M205 B"), LINEAR_UNIT(planner.settings.min_segment_time_us)
|
|
|
|
, " S", LINEAR_UNIT(planner.settings.min_feedrate_mm_s)
|
|
|
|
, PSTR(" S"), LINEAR_UNIT(planner.settings.min_feedrate_mm_s)
|
|
|
|
, " T", LINEAR_UNIT(planner.settings.min_travel_feedrate_mm_s)
|
|
|
|
, PSTR(" T"), LINEAR_UNIT(planner.settings.min_travel_feedrate_mm_s)
|
|
|
|
#if DISABLED(CLASSIC_JERK)
|
|
|
|
#if DISABLED(CLASSIC_JERK)
|
|
|
|
, " J", LINEAR_UNIT(planner.junction_deviation_mm)
|
|
|
|
, PSTR(" J"), LINEAR_UNIT(planner.junction_deviation_mm)
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#if HAS_CLASSIC_JERK
|
|
|
|
#if HAS_CLASSIC_JERK
|
|
|
|
, " X", LINEAR_UNIT(planner.max_jerk.x)
|
|
|
|
, SP_X_STR, LINEAR_UNIT(planner.max_jerk.x)
|
|
|
|
, " Y", LINEAR_UNIT(planner.max_jerk.y)
|
|
|
|
, SP_Y_STR, LINEAR_UNIT(planner.max_jerk.y)
|
|
|
|
, " Z", LINEAR_UNIT(planner.max_jerk.z)
|
|
|
|
, SP_Z_STR, LINEAR_UNIT(planner.max_jerk.z)
|
|
|
|
#if HAS_CLASSIC_E_JERK
|
|
|
|
#if HAS_CLASSIC_E_JERK
|
|
|
|
, " E", LINEAR_UNIT(planner.max_jerk.e)
|
|
|
|
, SP_E_STR, LINEAR_UNIT(planner.max_jerk.e)
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
);
|
|
|
|
);
|
|
|
@ -2808,12 +2810,15 @@ void MarlinSettings::reset() {
|
|
|
|
#if HAS_M206_COMMAND
|
|
|
|
#if HAS_M206_COMMAND
|
|
|
|
CONFIG_ECHO_HEADING("Home offset:");
|
|
|
|
CONFIG_ECHO_HEADING("Home offset:");
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
SERIAL_ECHOLNPAIR(" M206"
|
|
|
|
SERIAL_ECHOLNPAIR_P(
|
|
|
|
#if IS_CARTESIAN
|
|
|
|
#if IS_CARTESIAN
|
|
|
|
" X", LINEAR_UNIT(home_offset.x),
|
|
|
|
PSTR(" M206 X"), LINEAR_UNIT(home_offset.x)
|
|
|
|
" Y", LINEAR_UNIT(home_offset.y),
|
|
|
|
, SP_Y_STR, LINEAR_UNIT(home_offset.y)
|
|
|
|
|
|
|
|
, SP_Z_STR
|
|
|
|
|
|
|
|
#else
|
|
|
|
|
|
|
|
PSTR(" M206 Z")
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
" Z", LINEAR_UNIT(home_offset.z)
|
|
|
|
, LINEAR_UNIT(home_offset.z)
|
|
|
|
);
|
|
|
|
);
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
@ -2821,11 +2826,12 @@ void MarlinSettings::reset() {
|
|
|
|
CONFIG_ECHO_HEADING("Hotend offsets:");
|
|
|
|
CONFIG_ECHO_HEADING("Hotend offsets:");
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
for (uint8_t e = 1; e < HOTENDS; e++) {
|
|
|
|
for (uint8_t e = 1; e < HOTENDS; e++) {
|
|
|
|
SERIAL_ECHOPAIR(
|
|
|
|
SERIAL_ECHOPAIR_P(
|
|
|
|
" M218 T", (int)e,
|
|
|
|
PSTR(" M218 T"), (int)e,
|
|
|
|
" X", LINEAR_UNIT(hotend_offset[e].x), " Y", LINEAR_UNIT(hotend_offset[e].y)
|
|
|
|
SP_X_STR, LINEAR_UNIT(hotend_offset[e].x),
|
|
|
|
|
|
|
|
SP_Y_STR, LINEAR_UNIT(hotend_offset[e].y)
|
|
|
|
);
|
|
|
|
);
|
|
|
|
SERIAL_ECHOLNPAIR_F(" Z", LINEAR_UNIT(hotend_offset[e].z), 3);
|
|
|
|
SERIAL_ECHOLNPAIR_F_P(SP_Z_STR, LINEAR_UNIT(hotend_offset[e].z), 3);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
@ -2853,10 +2859,10 @@ void MarlinSettings::reset() {
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
SERIAL_ECHOLNPAIR(
|
|
|
|
SERIAL_ECHOLNPAIR_P(
|
|
|
|
" M420 S", planner.leveling_active ? 1 : 0
|
|
|
|
PSTR(" M420 S"), planner.leveling_active ? 1 : 0
|
|
|
|
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
|
|
|
|
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
|
|
|
|
, " Z", LINEAR_UNIT(planner.z_fade_height)
|
|
|
|
, SP_Z_STR, LINEAR_UNIT(planner.z_fade_height)
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
);
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
@ -2866,8 +2872,8 @@ void MarlinSettings::reset() {
|
|
|
|
for (uint8_t py = 0; py < GRID_MAX_POINTS_Y; py++) {
|
|
|
|
for (uint8_t py = 0; py < GRID_MAX_POINTS_Y; py++) {
|
|
|
|
for (uint8_t px = 0; px < GRID_MAX_POINTS_X; px++) {
|
|
|
|
for (uint8_t px = 0; px < GRID_MAX_POINTS_X; px++) {
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
SERIAL_ECHOPAIR(" G29 S3 X", (int)px + 1, " Y", (int)py + 1);
|
|
|
|
SERIAL_ECHOPAIR_P(PSTR(" G29 S3 X"), (int)px + 1, SP_Y_STR, (int)py + 1);
|
|
|
|
SERIAL_ECHOLNPAIR_F(" Z", LINEAR_UNIT(mbl.z_values[px][py]), 5);
|
|
|
|
SERIAL_ECHOLNPAIR_F_P(SP_Z_STR, LINEAR_UNIT(mbl.z_values[px][py]), 5);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -2890,7 +2896,7 @@ void MarlinSettings::reset() {
|
|
|
|
for (uint8_t px = 0; px < GRID_MAX_POINTS_X; px++) {
|
|
|
|
for (uint8_t px = 0; px < GRID_MAX_POINTS_X; px++) {
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
SERIAL_ECHOPAIR(" G29 W I", (int)px, " J", (int)py);
|
|
|
|
SERIAL_ECHOPAIR(" G29 W I", (int)px, " J", (int)py);
|
|
|
|
SERIAL_ECHOLNPAIR_F(" Z", LINEAR_UNIT(z_values[px][py]), 5);
|
|
|
|
SERIAL_ECHOLNPAIR_F_P(SP_Z_STR, LINEAR_UNIT(z_values[px][py]), 5);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
@ -2926,33 +2932,33 @@ void MarlinSettings::reset() {
|
|
|
|
|
|
|
|
|
|
|
|
CONFIG_ECHO_HEADING("SCARA settings: S<seg-per-sec> P<theta-psi-offset> T<theta-offset>");
|
|
|
|
CONFIG_ECHO_HEADING("SCARA settings: S<seg-per-sec> P<theta-psi-offset> T<theta-offset>");
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
SERIAL_ECHOLNPAIR(
|
|
|
|
SERIAL_ECHOLNPAIR_P(
|
|
|
|
" M665 S", delta_segments_per_second
|
|
|
|
PSTR(" M665 S"), delta_segments_per_second
|
|
|
|
, " P", scara_home_offset.a
|
|
|
|
, PSTR(" P"), scara_home_offset.a
|
|
|
|
, " T", scara_home_offset.b
|
|
|
|
, PSTR(" T"), scara_home_offset.b
|
|
|
|
, " Z", LINEAR_UNIT(scara_home_offset.z)
|
|
|
|
, SP_Z_STR, LINEAR_UNIT(scara_home_offset.z)
|
|
|
|
);
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
#elif ENABLED(DELTA)
|
|
|
|
#elif ENABLED(DELTA)
|
|
|
|
|
|
|
|
|
|
|
|
CONFIG_ECHO_HEADING("Endstop adjustment:");
|
|
|
|
CONFIG_ECHO_HEADING("Endstop adjustment:");
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
SERIAL_ECHOLNPAIR(
|
|
|
|
SERIAL_ECHOLNPAIR_P(
|
|
|
|
" M666 X", LINEAR_UNIT(delta_endstop_adj.a)
|
|
|
|
PSTR(" M666 X"), LINEAR_UNIT(delta_endstop_adj.a)
|
|
|
|
, " Y", LINEAR_UNIT(delta_endstop_adj.b)
|
|
|
|
, SP_Y_STR, LINEAR_UNIT(delta_endstop_adj.b)
|
|
|
|
, " Z", LINEAR_UNIT(delta_endstop_adj.c)
|
|
|
|
, SP_Z_STR, LINEAR_UNIT(delta_endstop_adj.c)
|
|
|
|
);
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
CONFIG_ECHO_HEADING("Delta settings: L<diagonal_rod> R<radius> H<height> S<segments_per_s> XYZ<tower angle corrections>");
|
|
|
|
CONFIG_ECHO_HEADING("Delta settings: L<diagonal_rod> R<radius> H<height> S<segments_per_s> XYZ<tower angle corrections>");
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
SERIAL_ECHOLNPAIR(
|
|
|
|
SERIAL_ECHOLNPAIR_P(
|
|
|
|
" M665 L", LINEAR_UNIT(delta_diagonal_rod)
|
|
|
|
PSTR(" M665 L"), LINEAR_UNIT(delta_diagonal_rod)
|
|
|
|
, " R", LINEAR_UNIT(delta_radius)
|
|
|
|
, PSTR(" R"), LINEAR_UNIT(delta_radius)
|
|
|
|
, " H", LINEAR_UNIT(delta_height)
|
|
|
|
, PSTR(" H"), LINEAR_UNIT(delta_height)
|
|
|
|
, " S", delta_segments_per_second
|
|
|
|
, PSTR(" S"), delta_segments_per_second
|
|
|
|
, " X", LINEAR_UNIT(delta_tower_angle_trim.a)
|
|
|
|
, SP_X_STR, LINEAR_UNIT(delta_tower_angle_trim.a)
|
|
|
|
, " Y", LINEAR_UNIT(delta_tower_angle_trim.b)
|
|
|
|
, SP_Y_STR, LINEAR_UNIT(delta_tower_angle_trim.b)
|
|
|
|
, " Z", LINEAR_UNIT(delta_tower_angle_trim.c)
|
|
|
|
, SP_Z_STR, LINEAR_UNIT(delta_tower_angle_trim.c)
|
|
|
|
);
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
#elif EITHER(X_DUAL_ENDSTOPS, Y_DUAL_ENDSTOPS) || Z_MULTI_ENDSTOPS
|
|
|
|
#elif EITHER(X_DUAL_ENDSTOPS, Y_DUAL_ENDSTOPS) || Z_MULTI_ENDSTOPS
|
|
|
@ -2961,17 +2967,17 @@ void MarlinSettings::reset() {
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
SERIAL_ECHOPGM(" M666");
|
|
|
|
SERIAL_ECHOPGM(" M666");
|
|
|
|
#if ENABLED(X_DUAL_ENDSTOPS)
|
|
|
|
#if ENABLED(X_DUAL_ENDSTOPS)
|
|
|
|
SERIAL_ECHOPAIR(" X", LINEAR_UNIT(endstops.x2_endstop_adj));
|
|
|
|
SERIAL_ECHOPAIR_P(SP_X_STR, LINEAR_UNIT(endstops.x2_endstop_adj));
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#if ENABLED(Y_DUAL_ENDSTOPS)
|
|
|
|
#if ENABLED(Y_DUAL_ENDSTOPS)
|
|
|
|
SERIAL_ECHOPAIR(" Y", LINEAR_UNIT(endstops.y2_endstop_adj));
|
|
|
|
SERIAL_ECHOPAIR_P(SP_Y_STR, LINEAR_UNIT(endstops.y2_endstop_adj));
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#if ENABLED(Z_TRIPLE_ENDSTOPS)
|
|
|
|
#if ENABLED(Z_TRIPLE_ENDSTOPS)
|
|
|
|
SERIAL_ECHOLNPAIR("S1 Z", LINEAR_UNIT(endstops.z2_endstop_adj));
|
|
|
|
SERIAL_ECHOLNPAIR("S1 Z", LINEAR_UNIT(endstops.z2_endstop_adj));
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
SERIAL_ECHOPAIR(" M666 S2 Z", LINEAR_UNIT(endstops.z3_endstop_adj));
|
|
|
|
SERIAL_ECHOPAIR(" M666 S2 Z", LINEAR_UNIT(endstops.z3_endstop_adj));
|
|
|
|
#elif ENABLED(Z_DUAL_ENDSTOPS)
|
|
|
|
#elif ENABLED(Z_DUAL_ENDSTOPS)
|
|
|
|
SERIAL_ECHOPAIR(" Z", LINEAR_UNIT(endstops.z2_endstop_adj));
|
|
|
|
SERIAL_ECHOPAIR_P(SP_Z_STR, LINEAR_UNIT(endstops.z2_endstop_adj));
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
SERIAL_EOL();
|
|
|
|
SERIAL_EOL();
|
|
|
|
|
|
|
|
|
|
|
@ -2999,13 +3005,16 @@ void MarlinSettings::reset() {
|
|
|
|
#if ENABLED(PIDTEMP)
|
|
|
|
#if ENABLED(PIDTEMP)
|
|
|
|
HOTEND_LOOP() {
|
|
|
|
HOTEND_LOOP() {
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
SERIAL_ECHOPAIR(" M301"
|
|
|
|
SERIAL_ECHOPAIR_P(
|
|
|
|
#if HOTENDS > 1 && ENABLED(PID_PARAMS_PER_HOTEND)
|
|
|
|
#if HOTENDS > 1 && ENABLED(PID_PARAMS_PER_HOTEND)
|
|
|
|
" E", e,
|
|
|
|
PSTR(" M301 E"), e,
|
|
|
|
|
|
|
|
PSTR(" P")
|
|
|
|
|
|
|
|
#else
|
|
|
|
|
|
|
|
PSTR(" M301 P")
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
" P", PID_PARAM(Kp, e)
|
|
|
|
, PID_PARAM(Kp, e)
|
|
|
|
, " I", unscalePID_i(PID_PARAM(Ki, e))
|
|
|
|
, PSTR(" I"), unscalePID_i(PID_PARAM(Ki, e))
|
|
|
|
, " D", unscalePID_d(PID_PARAM(Kd, e))
|
|
|
|
, PSTR(" D"), unscalePID_d(PID_PARAM(Kd, e))
|
|
|
|
);
|
|
|
|
);
|
|
|
|
#if ENABLED(PID_EXTRUSION_SCALING)
|
|
|
|
#if ENABLED(PID_EXTRUSION_SCALING)
|
|
|
|
SERIAL_ECHOPAIR(" C", PID_PARAM(Kc, e));
|
|
|
|
SERIAL_ECHOPAIR(" C", PID_PARAM(Kc, e));
|
|
|
@ -3051,11 +3060,11 @@ void MarlinSettings::reset() {
|
|
|
|
|
|
|
|
|
|
|
|
CONFIG_ECHO_HEADING("Retract: S<length> F<units/m> Z<lift>");
|
|
|
|
CONFIG_ECHO_HEADING("Retract: S<length> F<units/m> Z<lift>");
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
SERIAL_ECHOLNPAIR(
|
|
|
|
SERIAL_ECHOLNPAIR_P(
|
|
|
|
" M207 S", LINEAR_UNIT(fwretract.settings.retract_length)
|
|
|
|
PSTR(" M207 S"), LINEAR_UNIT(fwretract.settings.retract_length)
|
|
|
|
, " W", LINEAR_UNIT(fwretract.settings.swap_retract_length)
|
|
|
|
, PSTR(" W"), LINEAR_UNIT(fwretract.settings.swap_retract_length)
|
|
|
|
, " F", LINEAR_UNIT(MMS_TO_MMM(fwretract.settings.retract_feedrate_mm_s))
|
|
|
|
, PSTR(" F"), LINEAR_UNIT(MMS_TO_MMM(fwretract.settings.retract_feedrate_mm_s))
|
|
|
|
, " Z", LINEAR_UNIT(fwretract.settings.retract_zraise)
|
|
|
|
, SP_Z_STR, LINEAR_UNIT(fwretract.settings.retract_zraise)
|
|
|
|
);
|
|
|
|
);
|
|
|
|
|
|
|
|
|
|
|
|
CONFIG_ECHO_HEADING("Recover: S<length> F<units/m>");
|
|
|
|
CONFIG_ECHO_HEADING("Recover: S<length> F<units/m>");
|
|
|
@ -3086,9 +3095,9 @@ void MarlinSettings::reset() {
|
|
|
|
say_units(true);
|
|
|
|
say_units(true);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
SERIAL_ECHOLNPAIR(" M851 X", LINEAR_UNIT(probe_offset.x),
|
|
|
|
SERIAL_ECHOLNPAIR_P(PSTR(" M851 X"), LINEAR_UNIT(probe_offset.x),
|
|
|
|
" Y", LINEAR_UNIT(probe_offset.y),
|
|
|
|
SP_Y_STR, LINEAR_UNIT(probe_offset.y),
|
|
|
|
" Z", LINEAR_UNIT(probe_offset.z));
|
|
|
|
SP_Z_STR, LINEAR_UNIT(probe_offset.z));
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
@ -3115,15 +3124,15 @@ void MarlinSettings::reset() {
|
|
|
|
|
|
|
|
|
|
|
|
#if AXIS_IS_TMC(X) || AXIS_IS_TMC(Y) || AXIS_IS_TMC(Z)
|
|
|
|
#if AXIS_IS_TMC(X) || AXIS_IS_TMC(Y) || AXIS_IS_TMC(Z)
|
|
|
|
say_M906(forReplay);
|
|
|
|
say_M906(forReplay);
|
|
|
|
SERIAL_ECHOLNPAIR(
|
|
|
|
SERIAL_ECHOLNPAIR_P(
|
|
|
|
#if AXIS_IS_TMC(X)
|
|
|
|
#if AXIS_IS_TMC(X)
|
|
|
|
" X", stepperX.getMilliamps(),
|
|
|
|
SP_X_STR, stepperX.getMilliamps(),
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#if AXIS_IS_TMC(Y)
|
|
|
|
#if AXIS_IS_TMC(Y)
|
|
|
|
" Y", stepperY.getMilliamps(),
|
|
|
|
SP_Y_STR, stepperY.getMilliamps(),
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#if AXIS_IS_TMC(Z)
|
|
|
|
#if AXIS_IS_TMC(Z)
|
|
|
|
" Z", stepperZ.getMilliamps()
|
|
|
|
SP_Z_STR, stepperZ.getMilliamps()
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
);
|
|
|
|
);
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
@ -3131,15 +3140,15 @@ void MarlinSettings::reset() {
|
|
|
|
#if AXIS_IS_TMC(X2) || AXIS_IS_TMC(Y2) || AXIS_IS_TMC(Z2)
|
|
|
|
#if AXIS_IS_TMC(X2) || AXIS_IS_TMC(Y2) || AXIS_IS_TMC(Z2)
|
|
|
|
say_M906(forReplay);
|
|
|
|
say_M906(forReplay);
|
|
|
|
SERIAL_ECHOPGM(" I1");
|
|
|
|
SERIAL_ECHOPGM(" I1");
|
|
|
|
SERIAL_ECHOLNPAIR(
|
|
|
|
SERIAL_ECHOLNPAIR_P(
|
|
|
|
#if AXIS_IS_TMC(X2)
|
|
|
|
#if AXIS_IS_TMC(X2)
|
|
|
|
" X", stepperX2.getMilliamps(),
|
|
|
|
SP_X_STR, stepperX2.getMilliamps(),
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#if AXIS_IS_TMC(Y2)
|
|
|
|
#if AXIS_IS_TMC(Y2)
|
|
|
|
" Y", stepperY2.getMilliamps(),
|
|
|
|
SP_Y_STR, stepperY2.getMilliamps(),
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#if AXIS_IS_TMC(Z2)
|
|
|
|
#if AXIS_IS_TMC(Z2)
|
|
|
|
" Z", stepperZ2.getMilliamps()
|
|
|
|
SP_Z_STR, stepperZ2.getMilliamps()
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
);
|
|
|
|
);
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
@ -3184,13 +3193,13 @@ void MarlinSettings::reset() {
|
|
|
|
say_M913(forReplay);
|
|
|
|
say_M913(forReplay);
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#if AXIS_HAS_STEALTHCHOP(X)
|
|
|
|
#if AXIS_HAS_STEALTHCHOP(X)
|
|
|
|
SERIAL_ECHOPAIR(" X", stepperX.get_pwm_thrs());
|
|
|
|
SERIAL_ECHOPAIR_P(SP_X_STR, stepperX.get_pwm_thrs());
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#if AXIS_HAS_STEALTHCHOP(Y)
|
|
|
|
#if AXIS_HAS_STEALTHCHOP(Y)
|
|
|
|
SERIAL_ECHOPAIR(" Y", stepperY.get_pwm_thrs());
|
|
|
|
SERIAL_ECHOPAIR_P(SP_Y_STR, stepperY.get_pwm_thrs());
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#if AXIS_HAS_STEALTHCHOP(Z)
|
|
|
|
#if AXIS_HAS_STEALTHCHOP(Z)
|
|
|
|
SERIAL_ECHOPAIR(" Z", stepperZ.get_pwm_thrs());
|
|
|
|
SERIAL_ECHOPAIR_P(SP_Z_STR, stepperZ.get_pwm_thrs());
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#if AXIS_HAS_STEALTHCHOP(X) || AXIS_HAS_STEALTHCHOP(Y) || AXIS_HAS_STEALTHCHOP(Z)
|
|
|
|
#if AXIS_HAS_STEALTHCHOP(X) || AXIS_HAS_STEALTHCHOP(Y) || AXIS_HAS_STEALTHCHOP(Z)
|
|
|
|
SERIAL_EOL();
|
|
|
|
SERIAL_EOL();
|
|
|
@ -3201,13 +3210,13 @@ void MarlinSettings::reset() {
|
|
|
|
SERIAL_ECHOPGM(" I1");
|
|
|
|
SERIAL_ECHOPGM(" I1");
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#if AXIS_HAS_STEALTHCHOP(X2)
|
|
|
|
#if AXIS_HAS_STEALTHCHOP(X2)
|
|
|
|
SERIAL_ECHOPAIR(" X", stepperX2.get_pwm_thrs());
|
|
|
|
SERIAL_ECHOPAIR_P(SP_X_STR, stepperX2.get_pwm_thrs());
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#if AXIS_HAS_STEALTHCHOP(Y2)
|
|
|
|
#if AXIS_HAS_STEALTHCHOP(Y2)
|
|
|
|
SERIAL_ECHOPAIR(" Y", stepperY2.get_pwm_thrs());
|
|
|
|
SERIAL_ECHOPAIR_P(SP_Y_STR, stepperY2.get_pwm_thrs());
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#if AXIS_HAS_STEALTHCHOP(Z2)
|
|
|
|
#if AXIS_HAS_STEALTHCHOP(Z2)
|
|
|
|
SERIAL_ECHOPAIR(" Z", stepperZ2.get_pwm_thrs());
|
|
|
|
SERIAL_ECHOPAIR_P(SP_Z_STR, stepperZ2.get_pwm_thrs());
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#if AXIS_HAS_STEALTHCHOP(X2) || AXIS_HAS_STEALTHCHOP(Y2) || AXIS_HAS_STEALTHCHOP(Z2)
|
|
|
|
#if AXIS_HAS_STEALTHCHOP(X2) || AXIS_HAS_STEALTHCHOP(Y2) || AXIS_HAS_STEALTHCHOP(Z2)
|
|
|
|
SERIAL_EOL();
|
|
|
|
SERIAL_EOL();
|
|
|
@ -3254,13 +3263,13 @@ void MarlinSettings::reset() {
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
say_M914();
|
|
|
|
say_M914();
|
|
|
|
#if X_SENSORLESS
|
|
|
|
#if X_SENSORLESS
|
|
|
|
SERIAL_ECHOPAIR(" X", stepperX.homing_threshold());
|
|
|
|
SERIAL_ECHOPAIR_P(SP_X_STR, stepperX.homing_threshold());
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#if Y_SENSORLESS
|
|
|
|
#if Y_SENSORLESS
|
|
|
|
SERIAL_ECHOPAIR(" Y", stepperY.homing_threshold());
|
|
|
|
SERIAL_ECHOPAIR_P(SP_Y_STR, stepperY.homing_threshold());
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#if Z_SENSORLESS
|
|
|
|
#if Z_SENSORLESS
|
|
|
|
SERIAL_ECHOPAIR(" Z", stepperZ.homing_threshold());
|
|
|
|
SERIAL_ECHOPAIR_P(SP_Z_STR, stepperZ.homing_threshold());
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
SERIAL_EOL();
|
|
|
|
SERIAL_EOL();
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
@ -3270,13 +3279,13 @@ void MarlinSettings::reset() {
|
|
|
|
say_M914();
|
|
|
|
say_M914();
|
|
|
|
SERIAL_ECHOPGM(" I1");
|
|
|
|
SERIAL_ECHOPGM(" I1");
|
|
|
|
#if X2_SENSORLESS
|
|
|
|
#if X2_SENSORLESS
|
|
|
|
SERIAL_ECHOPAIR(" X", stepperX2.homing_threshold());
|
|
|
|
SERIAL_ECHOPAIR_P(SP_X_STR, stepperX2.homing_threshold());
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#if Y2_SENSORLESS
|
|
|
|
#if Y2_SENSORLESS
|
|
|
|
SERIAL_ECHOPAIR(" Y", stepperY2.homing_threshold());
|
|
|
|
SERIAL_ECHOPAIR_P(SP_Y_STR, stepperY2.homing_threshold());
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#if Z2_SENSORLESS
|
|
|
|
#if Z2_SENSORLESS
|
|
|
|
SERIAL_ECHOPAIR(" Z", stepperZ2.homing_threshold());
|
|
|
|
SERIAL_ECHOPAIR_P(SP_Z_STR, stepperZ2.homing_threshold());
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
SERIAL_EOL();
|
|
|
|
SERIAL_EOL();
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
@ -3312,9 +3321,9 @@ void MarlinSettings::reset() {
|
|
|
|
|
|
|
|
|
|
|
|
if (chop_x || chop_y || chop_z) {
|
|
|
|
if (chop_x || chop_y || chop_z) {
|
|
|
|
say_M569(forReplay);
|
|
|
|
say_M569(forReplay);
|
|
|
|
if (chop_x) SERIAL_ECHOPGM(" X");
|
|
|
|
if (chop_x) SERIAL_ECHOPGM_P(SP_X_STR);
|
|
|
|
if (chop_y) SERIAL_ECHOPGM(" Y");
|
|
|
|
if (chop_y) SERIAL_ECHOPGM_P(SP_Y_STR);
|
|
|
|
if (chop_z) SERIAL_ECHOPGM(" Z");
|
|
|
|
if (chop_z) SERIAL_ECHOPGM_P(SP_Z_STR);
|
|
|
|
SERIAL_EOL();
|
|
|
|
SERIAL_EOL();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -3336,9 +3345,9 @@ void MarlinSettings::reset() {
|
|
|
|
|
|
|
|
|
|
|
|
if (chop_x2 || chop_y2 || chop_z2) {
|
|
|
|
if (chop_x2 || chop_y2 || chop_z2) {
|
|
|
|
say_M569(forReplay, PSTR("I1"));
|
|
|
|
say_M569(forReplay, PSTR("I1"));
|
|
|
|
if (chop_x2) SERIAL_ECHOPGM(" X");
|
|
|
|
if (chop_x2) SERIAL_ECHOPGM_P(SP_X_STR);
|
|
|
|
if (chop_y2) SERIAL_ECHOPGM(" Y");
|
|
|
|
if (chop_y2) SERIAL_ECHOPGM_P(SP_Y_STR);
|
|
|
|
if (chop_z2) SERIAL_ECHOPGM(" Z");
|
|
|
|
if (chop_z2) SERIAL_ECHOPGM_P(SP_Z_STR);
|
|
|
|
SERIAL_EOL();
|
|
|
|
SERIAL_EOL();
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
@ -3386,10 +3395,10 @@ void MarlinSettings::reset() {
|
|
|
|
#if HAS_MOTOR_CURRENT_PWM
|
|
|
|
#if HAS_MOTOR_CURRENT_PWM
|
|
|
|
CONFIG_ECHO_HEADING("Stepper motor currents:");
|
|
|
|
CONFIG_ECHO_HEADING("Stepper motor currents:");
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
SERIAL_ECHOLNPAIR(
|
|
|
|
SERIAL_ECHOLNPAIR_P(
|
|
|
|
" M907 X", stepper.motor_current_setting[0]
|
|
|
|
PSTR(" M907 X"), stepper.motor_current_setting[0]
|
|
|
|
, " Z", stepper.motor_current_setting[1]
|
|
|
|
, SP_Z_STR, stepper.motor_current_setting[1]
|
|
|
|
, " E", stepper.motor_current_setting[2]
|
|
|
|
, SP_E_STR, stepper.motor_current_setting[2]
|
|
|
|
);
|
|
|
|
);
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
|
@ -3429,13 +3438,13 @@ void MarlinSettings::reset() {
|
|
|
|
#if ENABLED(BACKLASH_GCODE)
|
|
|
|
#if ENABLED(BACKLASH_GCODE)
|
|
|
|
CONFIG_ECHO_HEADING("Backlash compensation:");
|
|
|
|
CONFIG_ECHO_HEADING("Backlash compensation:");
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
CONFIG_ECHO_START();
|
|
|
|
SERIAL_ECHOLNPAIR(
|
|
|
|
SERIAL_ECHOLNPAIR_P(
|
|
|
|
" M425 F", backlash.get_correction(),
|
|
|
|
PSTR(" M425 F"), backlash.get_correction()
|
|
|
|
" X", LINEAR_UNIT(backlash.distance_mm.x),
|
|
|
|
, SP_X_STR, LINEAR_UNIT(backlash.distance_mm.x)
|
|
|
|
" Y", LINEAR_UNIT(backlash.distance_mm.y),
|
|
|
|
, SP_Y_STR, LINEAR_UNIT(backlash.distance_mm.y)
|
|
|
|
" Z", LINEAR_UNIT(backlash.distance_mm.z)
|
|
|
|
, SP_Z_STR, LINEAR_UNIT(backlash.distance_mm.z)
|
|
|
|
#ifdef BACKLASH_SMOOTHING_MM
|
|
|
|
#ifdef BACKLASH_SMOOTHING_MM
|
|
|
|
, " S", LINEAR_UNIT(backlash.smoothing_mm)
|
|
|
|
, PSTR(" S"), LINEAR_UNIT(backlash.smoothing_mm)
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|
);
|
|
|
|
);
|
|
|
|
#endif
|
|
|
|
#endif
|
|
|
|