|
|
|
@ -62,13 +62,13 @@ void menu_backlash();
|
|
|
|
|
void menu_dac() {
|
|
|
|
|
dac_driver_getValues();
|
|
|
|
|
START_MENU();
|
|
|
|
|
MENU_BACK(MSG_ADVANCED_SETTINGS);
|
|
|
|
|
#define EDIT_DAC_PERCENT(N) MENU_ITEM_EDIT_CALLBACK(uint8, MSG_##N " " MSG_DAC_PERCENT, &driverPercent[_AXIS(N)], 0, 100, dac_driver_commit)
|
|
|
|
|
BACK_ITEM(MSG_ADVANCED_SETTINGS);
|
|
|
|
|
#define EDIT_DAC_PERCENT(N) EDIT_ITEM(uint8, MSG_##N " " MSG_DAC_PERCENT, &driverPercent[_AXIS(N)], 0, 100, dac_driver_commit)
|
|
|
|
|
EDIT_DAC_PERCENT(X);
|
|
|
|
|
EDIT_DAC_PERCENT(Y);
|
|
|
|
|
EDIT_DAC_PERCENT(Z);
|
|
|
|
|
EDIT_DAC_PERCENT(E);
|
|
|
|
|
MENU_ITEM(function, MSG_DAC_EEPROM_WRITE, dac_commit_eeprom);
|
|
|
|
|
ACTION_ITEM(MSG_DAC_EEPROM_WRITE, dac_commit_eeprom);
|
|
|
|
|
END_MENU();
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
@ -80,8 +80,8 @@ void menu_backlash();
|
|
|
|
|
|
|
|
|
|
void menu_pwm() {
|
|
|
|
|
START_MENU();
|
|
|
|
|
MENU_BACK(MSG_ADVANCED_SETTINGS);
|
|
|
|
|
#define EDIT_CURRENT_PWM(LABEL,I) MENU_ITEM_EDIT_CALLBACK(long5, LABEL, &stepper.motor_current_setting[I], 100, 2000, stepper.refresh_motor_power)
|
|
|
|
|
BACK_ITEM(MSG_ADVANCED_SETTINGS);
|
|
|
|
|
#define EDIT_CURRENT_PWM(LABEL,I) EDIT_ITEM(long5, LABEL, &stepper.motor_current_setting[I], 100, 2000, stepper.refresh_motor_power)
|
|
|
|
|
#if PIN_EXISTS(MOTOR_CURRENT_PWM_XY)
|
|
|
|
|
EDIT_CURRENT_PWM(MSG_X MSG_Y, 0);
|
|
|
|
|
#endif
|
|
|
|
@ -116,13 +116,13 @@ void menu_backlash();
|
|
|
|
|
//
|
|
|
|
|
void menu_advanced_filament() {
|
|
|
|
|
START_MENU();
|
|
|
|
|
MENU_BACK(MSG_ADVANCED_SETTINGS);
|
|
|
|
|
BACK_ITEM(MSG_ADVANCED_SETTINGS);
|
|
|
|
|
|
|
|
|
|
#if ENABLED(LIN_ADVANCE)
|
|
|
|
|
#if EXTRUDERS == 1
|
|
|
|
|
MENU_ITEM_EDIT(float52, MSG_ADVANCE_K, &planner.extruder_advance_K[0], 0, 999);
|
|
|
|
|
EDIT_ITEM(float52, MSG_ADVANCE_K, &planner.extruder_advance_K[0], 0, 999);
|
|
|
|
|
#elif EXTRUDERS > 1
|
|
|
|
|
#define EDIT_ADVANCE_K(N) MENU_ITEM_EDIT(float52, MSG_ADVANCE_K MSG_E##N, &planner.extruder_advance_K[N-1], 0, 999)
|
|
|
|
|
#define EDIT_ADVANCE_K(N) EDIT_ITEM(float52, MSG_ADVANCE_K MSG_E##N, &planner.extruder_advance_K[N-1], 0, 999)
|
|
|
|
|
EDIT_ADVANCE_K(1);
|
|
|
|
|
EDIT_ADVANCE_K(2);
|
|
|
|
|
#if EXTRUDERS > 2
|
|
|
|
@ -141,14 +141,14 @@ void menu_backlash();
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if DISABLED(NO_VOLUMETRICS)
|
|
|
|
|
MENU_ITEM_EDIT_CALLBACK(bool, MSG_VOLUMETRIC_ENABLED, &parser.volumetric_enabled, planner.calculate_volumetric_multipliers);
|
|
|
|
|
EDIT_ITEM(bool, MSG_VOLUMETRIC_ENABLED, &parser.volumetric_enabled, planner.calculate_volumetric_multipliers);
|
|
|
|
|
|
|
|
|
|
if (parser.volumetric_enabled) {
|
|
|
|
|
#if EXTRUDERS == 1
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float43, MSG_FILAMENT_DIAM, &planner.filament_size[0], 1.5f, 3.25f, planner.calculate_volumetric_multipliers);
|
|
|
|
|
EDIT_ITEM_FAST(float43, MSG_FILAMENT_DIAM, &planner.filament_size[0], 1.5f, 3.25f, planner.calculate_volumetric_multipliers);
|
|
|
|
|
#else // EXTRUDERS > 1
|
|
|
|
|
#define EDIT_FIL_DIAM(N) MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float43, MSG_FILAMENT_DIAM MSG_DIAM_E##N, &planner.filament_size[N-1], 1.5f, 3.25f, planner.calculate_volumetric_multipliers)
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float43, MSG_FILAMENT_DIAM, &planner.filament_size[active_extruder], 1.5f, 3.25f, planner.calculate_volumetric_multipliers);
|
|
|
|
|
#define EDIT_FIL_DIAM(N) EDIT_ITEM_FAST(float43, MSG_FILAMENT_DIAM MSG_DIAM_E##N, &planner.filament_size[N-1], 1.5f, 3.25f, planner.calculate_volumetric_multipliers)
|
|
|
|
|
EDIT_ITEM_FAST(float43, MSG_FILAMENT_DIAM, &planner.filament_size[active_extruder], 1.5f, 3.25f, planner.calculate_volumetric_multipliers);
|
|
|
|
|
EDIT_FIL_DIAM(1);
|
|
|
|
|
EDIT_FIL_DIAM(2);
|
|
|
|
|
#if EXTRUDERS > 2
|
|
|
|
@ -177,10 +177,10 @@ void menu_backlash();
|
|
|
|
|
;
|
|
|
|
|
|
|
|
|
|
#if EXTRUDERS == 1
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT(float3, MSG_FILAMENT_UNLOAD, &fc_settings[0].unload_length, 0, extrude_maxlength);
|
|
|
|
|
EDIT_ITEM_FAST(float3, MSG_FILAMENT_UNLOAD, &fc_settings[0].unload_length, 0, extrude_maxlength);
|
|
|
|
|
#elif EXTRUDERS > 1
|
|
|
|
|
#define EDIT_FIL_UNLOAD(N) MENU_MULTIPLIER_ITEM_EDIT(float3, MSG_FILAMENT_UNLOAD MSG_DIAM_E##N, &fc_settings[N-1].unload_length, 0, extrude_maxlength)
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT(float3, MSG_FILAMENT_UNLOAD, &fc_settings[active_extruder].unload_length, 0, extrude_maxlength);
|
|
|
|
|
#define EDIT_FIL_UNLOAD(N) EDIT_ITEM_FAST(float3, MSG_FILAMENT_UNLOAD MSG_DIAM_E##N, &fc_settings[N-1].unload_length, 0, extrude_maxlength)
|
|
|
|
|
EDIT_ITEM_FAST(float3, MSG_FILAMENT_UNLOAD, &fc_settings[active_extruder].unload_length, 0, extrude_maxlength);
|
|
|
|
|
EDIT_FIL_UNLOAD(1);
|
|
|
|
|
EDIT_FIL_UNLOAD(2);
|
|
|
|
|
#if EXTRUDERS > 2
|
|
|
|
@ -198,10 +198,10 @@ void menu_backlash();
|
|
|
|
|
#endif // EXTRUDERS > 1
|
|
|
|
|
|
|
|
|
|
#if EXTRUDERS == 1
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT(float3, MSG_FILAMENT_LOAD, &fc_settings[0].load_length, 0, extrude_maxlength);
|
|
|
|
|
EDIT_ITEM_FAST(float3, MSG_FILAMENT_LOAD, &fc_settings[0].load_length, 0, extrude_maxlength);
|
|
|
|
|
#elif EXTRUDERS > 1
|
|
|
|
|
#define EDIT_FIL_LOAD(N) MENU_MULTIPLIER_ITEM_EDIT(float3, MSG_FILAMENT_LOAD MSG_DIAM_E##N, &fc_settings[N-1].load_length, 0, extrude_maxlength)
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT(float3, MSG_FILAMENT_LOAD, &fc_settings[active_extruder].load_length, 0, extrude_maxlength);
|
|
|
|
|
#define EDIT_FIL_LOAD(N) EDIT_ITEM_FAST(float3, MSG_FILAMENT_LOAD MSG_DIAM_E##N, &fc_settings[N-1].load_length, 0, extrude_maxlength)
|
|
|
|
|
EDIT_ITEM_FAST(float3, MSG_FILAMENT_LOAD, &fc_settings[active_extruder].load_length, 0, extrude_maxlength);
|
|
|
|
|
EDIT_FIL_LOAD(1);
|
|
|
|
|
EDIT_FIL_LOAD(2);
|
|
|
|
|
#if EXTRUDERS > 2
|
|
|
|
@ -220,7 +220,7 @@ void menu_backlash();
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if ENABLED(FILAMENT_RUNOUT_SENSOR) && FILAMENT_RUNOUT_DISTANCE_MM
|
|
|
|
|
MENU_ITEM_EDIT_CALLBACK(float3, MSG_RUNOUT_DISTANCE_MM, &lcd_runout_distance_mm, 1, 30, []{
|
|
|
|
|
EDIT_ITEM(float3, MSG_RUNOUT_DISTANCE_MM, &lcd_runout_distance_mm, 1, 30, []{
|
|
|
|
|
runout.set_runout_distance(lcd_runout_distance_mm);
|
|
|
|
|
});
|
|
|
|
|
#endif
|
|
|
|
@ -328,15 +328,15 @@ void menu_backlash();
|
|
|
|
|
|
|
|
|
|
void menu_advanced_temperature() {
|
|
|
|
|
START_MENU();
|
|
|
|
|
MENU_BACK(MSG_ADVANCED_SETTINGS);
|
|
|
|
|
BACK_ITEM(MSG_ADVANCED_SETTINGS);
|
|
|
|
|
//
|
|
|
|
|
// Autotemp, Min, Max, Fact
|
|
|
|
|
//
|
|
|
|
|
#if ENABLED(AUTOTEMP) && HAS_TEMP_HOTEND
|
|
|
|
|
MENU_ITEM_EDIT(bool, MSG_AUTOTEMP, &planner.autotemp_enabled);
|
|
|
|
|
MENU_ITEM_EDIT(float3, MSG_MIN, &planner.autotemp_min, 0, float(HEATER_0_MAXTEMP) - 15);
|
|
|
|
|
MENU_ITEM_EDIT(float3, MSG_MAX, &planner.autotemp_max, 0, float(HEATER_0_MAXTEMP) - 15);
|
|
|
|
|
MENU_ITEM_EDIT(float52, MSG_FACTOR, &planner.autotemp_factor, 0, 10);
|
|
|
|
|
EDIT_ITEM(bool, MSG_AUTOTEMP, &planner.autotemp_enabled);
|
|
|
|
|
EDIT_ITEM(float3, MSG_MIN, &planner.autotemp_min, 0, float(HEATER_0_MAXTEMP) - 15);
|
|
|
|
|
EDIT_ITEM(float3, MSG_MAX, &planner.autotemp_max, 0, float(HEATER_0_MAXTEMP) - 15);
|
|
|
|
|
EDIT_ITEM(float52, MSG_FACTOR, &planner.autotemp_factor, 0, 10);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
//
|
|
|
|
@ -352,14 +352,14 @@ void menu_backlash();
|
|
|
|
|
#define _PID_BASE_MENU_ITEMS(ELABEL, eindex) \
|
|
|
|
|
raw_Ki = unscalePID_i(PID_PARAM(Ki, eindex)); \
|
|
|
|
|
raw_Kd = unscalePID_d(PID_PARAM(Kd, eindex)); \
|
|
|
|
|
MENU_ITEM_EDIT(float52sign, MSG_PID_P ELABEL, &PID_PARAM(Kp, eindex), 1, 9990); \
|
|
|
|
|
MENU_ITEM_EDIT_CALLBACK(float52sign, MSG_PID_I ELABEL, &raw_Ki, 0.01f, 9990, copy_and_scalePID_i_E ## eindex); \
|
|
|
|
|
MENU_ITEM_EDIT_CALLBACK(float52sign, MSG_PID_D ELABEL, &raw_Kd, 1, 9990, copy_and_scalePID_d_E ## eindex)
|
|
|
|
|
EDIT_ITEM(float52sign, MSG_PID_P ELABEL, &PID_PARAM(Kp, eindex), 1, 9990); \
|
|
|
|
|
EDIT_ITEM(float52sign, MSG_PID_I ELABEL, &raw_Ki, 0.01f, 9990, copy_and_scalePID_i_E ## eindex); \
|
|
|
|
|
EDIT_ITEM(float52sign, MSG_PID_D ELABEL, &raw_Kd, 1, 9990, copy_and_scalePID_d_E ## eindex)
|
|
|
|
|
|
|
|
|
|
#if ENABLED(PID_EXTRUSION_SCALING)
|
|
|
|
|
#define _PID_EDIT_MENU_ITEMS(ELABEL, eindex) \
|
|
|
|
|
_PID_BASE_MENU_ITEMS(ELABEL, eindex); \
|
|
|
|
|
MENU_ITEM_EDIT(float3, MSG_PID_C ELABEL, &PID_PARAM(Kc, eindex), 1, 9990)
|
|
|
|
|
EDIT_ITEM(float3, MSG_PID_C ELABEL, &PID_PARAM(Kc, eindex), 1, 9990)
|
|
|
|
|
#else
|
|
|
|
|
#define _PID_EDIT_MENU_ITEMS(ELABEL, eindex) _PID_BASE_MENU_ITEMS(ELABEL, eindex)
|
|
|
|
|
#endif
|
|
|
|
@ -373,7 +373,7 @@ void menu_backlash();
|
|
|
|
|
#if ENABLED(PID_AUTOTUNE_MENU)
|
|
|
|
|
#define PID_EDIT_MENU_ITEMS(ELABEL, eindex) \
|
|
|
|
|
_PID_EDIT_MENU_ITEMS(ELABEL, eindex); \
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(int3, MSG_PID_AUTOTUNE ELABEL, &autotune_temp[eindex], 150, heater_maxtemp[eindex] - 15, lcd_autotune_callback_E ## eindex)
|
|
|
|
|
EDIT_ITEM_FAST(int3, MSG_PID_AUTOTUNE ELABEL, &autotune_temp[eindex], 150, heater_maxtemp[eindex] - 15, lcd_autotune_callback_E ## eindex)
|
|
|
|
|
#else
|
|
|
|
|
#define PID_EDIT_MENU_ITEMS(ELABEL, eindex) _PID_EDIT_MENU_ITEMS(ELABEL, eindex)
|
|
|
|
|
#endif
|
|
|
|
@ -450,7 +450,7 @@ void menu_backlash();
|
|
|
|
|
// M203 / M205 Velocity options
|
|
|
|
|
void menu_advanced_velocity() {
|
|
|
|
|
START_MENU();
|
|
|
|
|
MENU_BACK(MSG_ADVANCED_SETTINGS);
|
|
|
|
|
BACK_ITEM(MSG_ADVANCED_SETTINGS);
|
|
|
|
|
|
|
|
|
|
// M203 Max Feedrate
|
|
|
|
|
constexpr xyze_feedrate_t max_fr_edit =
|
|
|
|
@ -467,14 +467,14 @@ void menu_backlash();
|
|
|
|
|
#else
|
|
|
|
|
const xyze_feedrate_t &max_fr_edit_scaled = max_fr_edit;
|
|
|
|
|
#endif
|
|
|
|
|
#define EDIT_VMAX(N) MENU_MULTIPLIER_ITEM_EDIT(float3, MSG_VMAX MSG_##N, &planner.settings.max_feedrate_mm_s[_AXIS(N)], 1, max_fr_edit_scaled[_AXIS(N)])
|
|
|
|
|
#define EDIT_VMAX(N) EDIT_ITEM_FAST(float3, MSG_VMAX MSG_##N, &planner.settings.max_feedrate_mm_s[_AXIS(N)], 1, max_fr_edit_scaled[_AXIS(N)])
|
|
|
|
|
EDIT_VMAX(A);
|
|
|
|
|
EDIT_VMAX(B);
|
|
|
|
|
EDIT_VMAX(C);
|
|
|
|
|
|
|
|
|
|
#if ENABLED(DISTINCT_E_FACTORS)
|
|
|
|
|
#define EDIT_VMAX_E(N) MENU_MULTIPLIER_ITEM_EDIT(float3, MSG_VMAX MSG_E##N, &planner.settings.max_feedrate_mm_s[E_AXIS_N(N-1)], 1, max_fr_edit_scaled.e)
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT(float3, MSG_VMAX MSG_E, &planner.settings.max_feedrate_mm_s[E_AXIS_N(active_extruder)], 1, max_fr_edit_scaled.e);
|
|
|
|
|
#define EDIT_VMAX_E(N) EDIT_ITEM_FAST(float3, MSG_VMAX MSG_E##N, &planner.settings.max_feedrate_mm_s[E_AXIS_N(N-1)], 1, max_fr_edit_scaled.e)
|
|
|
|
|
EDIT_ITEM_FAST(float3, MSG_VMAX MSG_E, &planner.settings.max_feedrate_mm_s[E_AXIS_N(active_extruder)], 1, max_fr_edit_scaled.e);
|
|
|
|
|
EDIT_VMAX_E(1);
|
|
|
|
|
EDIT_VMAX_E(2);
|
|
|
|
|
#if E_STEPPERS > 2
|
|
|
|
@ -490,14 +490,14 @@ void menu_backlash();
|
|
|
|
|
#endif // E_STEPPERS > 3
|
|
|
|
|
#endif // E_STEPPERS > 2
|
|
|
|
|
#elif E_STEPPERS
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT(float3, MSG_VMAX MSG_E, &planner.settings.max_feedrate_mm_s[E_AXIS], 1, max_fr_edit_scaled.e);
|
|
|
|
|
EDIT_ITEM_FAST(float3, MSG_VMAX MSG_E, &planner.settings.max_feedrate_mm_s[E_AXIS], 1, max_fr_edit_scaled.e);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
// M205 S Min Feedrate
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT(float3, MSG_VMIN, &planner.settings.min_feedrate_mm_s, 0, 999);
|
|
|
|
|
EDIT_ITEM_FAST(float3, MSG_VMIN, &planner.settings.min_feedrate_mm_s, 0, 999);
|
|
|
|
|
|
|
|
|
|
// M205 T Min Travel Feedrate
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT(float3, MSG_VTRAV_MIN, &planner.settings.min_travel_feedrate_mm_s, 0, 999);
|
|
|
|
|
EDIT_ITEM_FAST(float3, MSG_VTRAV_MIN, &planner.settings.min_travel_feedrate_mm_s, 0, 999);
|
|
|
|
|
|
|
|
|
|
END_MENU();
|
|
|
|
|
}
|
|
|
|
@ -505,17 +505,17 @@ void menu_backlash();
|
|
|
|
|
// M201 / M204 Accelerations
|
|
|
|
|
void menu_advanced_acceleration() {
|
|
|
|
|
START_MENU();
|
|
|
|
|
MENU_BACK(MSG_ADVANCED_SETTINGS);
|
|
|
|
|
BACK_ITEM(MSG_ADVANCED_SETTINGS);
|
|
|
|
|
|
|
|
|
|
static float max_accel = _MAX(planner.settings.max_acceleration_mm_per_s2[A_AXIS], planner.settings.max_acceleration_mm_per_s2[B_AXIS], planner.settings.max_acceleration_mm_per_s2[C_AXIS]);
|
|
|
|
|
// M204 P Acceleration
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT(float5_25, MSG_ACC, &planner.settings.acceleration, 25, max_accel);
|
|
|
|
|
EDIT_ITEM_FAST(float5_25, MSG_ACC, &planner.settings.acceleration, 25, max_accel);
|
|
|
|
|
|
|
|
|
|
// M204 R Retract Acceleration
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT(float5, MSG_A_RETRACT, &planner.settings.retract_acceleration, 100, max_accel);
|
|
|
|
|
EDIT_ITEM_FAST(float5, MSG_A_RETRACT, &planner.settings.retract_acceleration, 100, max_accel);
|
|
|
|
|
|
|
|
|
|
// M204 T Travel Acceleration
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT(float5_25, MSG_A_TRAVEL, &planner.settings.travel_acceleration, 25, max_accel);
|
|
|
|
|
EDIT_ITEM_FAST(float5_25, MSG_A_TRAVEL, &planner.settings.travel_acceleration, 25, max_accel);
|
|
|
|
|
|
|
|
|
|
// M201 settings
|
|
|
|
|
constexpr xyze_ulong_t max_accel_edit =
|
|
|
|
@ -533,15 +533,15 @@ void menu_backlash();
|
|
|
|
|
const xyze_ulong_t &max_accel_edit_scaled = max_accel_edit;
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#define EDIT_AMAX(Q,L) MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(long5_25, MSG_AMAX MSG_##Q, &planner.settings.max_acceleration_mm_per_s2[_AXIS(Q)], L, max_accel_edit_scaled[_AXIS(Q)], _reset_acceleration_rates)
|
|
|
|
|
#define EDIT_AMAX(Q,L) EDIT_ITEM_FAST(long5_25, MSG_AMAX MSG_##Q, &planner.settings.max_acceleration_mm_per_s2[_AXIS(Q)], L, max_accel_edit_scaled[_AXIS(Q)], _reset_acceleration_rates)
|
|
|
|
|
|
|
|
|
|
EDIT_AMAX(A,100);
|
|
|
|
|
EDIT_AMAX(B,100);
|
|
|
|
|
EDIT_AMAX(C, 10);
|
|
|
|
|
|
|
|
|
|
#if ENABLED(DISTINCT_E_FACTORS)
|
|
|
|
|
#define EDIT_AMAX_E(N,E) MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(long5_25, MSG_AMAX MSG_E##N, &planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(E)], 100, max_accel_edit_scaled.e, _reset_e##E##_acceleration_rate)
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(long5_25, MSG_AMAX MSG_E, &planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(active_extruder)], 100, max_accel_edit_scaled.e, _reset_acceleration_rates);
|
|
|
|
|
#define EDIT_AMAX_E(N,E) EDIT_ITEM_FAST(long5_25, MSG_AMAX MSG_E##N, &planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(E)], 100, max_accel_edit_scaled.e, _reset_e##E##_acceleration_rate)
|
|
|
|
|
EDIT_ITEM_FAST(long5_25, MSG_AMAX MSG_E, &planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(active_extruder)], 100, max_accel_edit_scaled.e, _reset_acceleration_rates);
|
|
|
|
|
EDIT_AMAX_E(1,0);
|
|
|
|
|
EDIT_AMAX_E(2,1);
|
|
|
|
|
#if E_STEPPERS > 2
|
|
|
|
@ -557,7 +557,7 @@ void menu_backlash();
|
|
|
|
|
#endif // E_STEPPERS > 3
|
|
|
|
|
#endif // E_STEPPERS > 2
|
|
|
|
|
#elif E_STEPPERS
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(long5_25, MSG_AMAX MSG_E, &planner.settings.max_acceleration_mm_per_s2[E_AXIS], 100, max_accel_edit_scaled.e, _reset_acceleration_rates);
|
|
|
|
|
EDIT_ITEM_FAST(long5_25, MSG_AMAX MSG_E, &planner.settings.max_acceleration_mm_per_s2[E_AXIS], 100, max_accel_edit_scaled.e, _reset_acceleration_rates);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
END_MENU();
|
|
|
|
@ -566,13 +566,13 @@ void menu_backlash();
|
|
|
|
|
// M205 Jerk
|
|
|
|
|
void menu_advanced_jerk() {
|
|
|
|
|
START_MENU();
|
|
|
|
|
MENU_BACK(MSG_ADVANCED_SETTINGS);
|
|
|
|
|
BACK_ITEM(MSG_ADVANCED_SETTINGS);
|
|
|
|
|
|
|
|
|
|
#if ENABLED(JUNCTION_DEVIATION)
|
|
|
|
|
#if ENABLED(LIN_ADVANCE)
|
|
|
|
|
MENU_ITEM_EDIT_CALLBACK(float43, MSG_JUNCTION_DEVIATION, &planner.junction_deviation_mm, 0.01f, 0.3f, planner.recalculate_max_e_jerk);
|
|
|
|
|
EDIT_ITEM(float43, MSG_JUNCTION_DEVIATION, &planner.junction_deviation_mm, 0.01f, 0.3f, planner.recalculate_max_e_jerk);
|
|
|
|
|
#else
|
|
|
|
|
MENU_ITEM_EDIT(float43, MSG_JUNCTION_DEVIATION, &planner.junction_deviation_mm, 0.01f, 0.3f);
|
|
|
|
|
EDIT_ITEM(float43, MSG_JUNCTION_DEVIATION, &planner.junction_deviation_mm, 0.01f, 0.3f);
|
|
|
|
|
#endif
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_CLASSIC_JERK
|
|
|
|
@ -585,16 +585,16 @@ void menu_backlash();
|
|
|
|
|
{ 990, 990, 990, 990 }
|
|
|
|
|
#endif
|
|
|
|
|
;
|
|
|
|
|
#define EDIT_JERK(N) MENU_MULTIPLIER_ITEM_EDIT(float3, MSG_V##N##_JERK, &planner.max_jerk[_AXIS(N)], 1, max_jerk_edit[_AXIS(N)])
|
|
|
|
|
#define EDIT_JERK(N) EDIT_ITEM_FAST(float3, MSG_V##N##_JERK, &planner.max_jerk[_AXIS(N)], 1, max_jerk_edit[_AXIS(N)])
|
|
|
|
|
EDIT_JERK(A);
|
|
|
|
|
EDIT_JERK(B);
|
|
|
|
|
#if ENABLED(DELTA)
|
|
|
|
|
EDIT_JERK(C);
|
|
|
|
|
#else
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT(float52sign, MSG_VC_JERK, &planner.max_jerk.c, 0.1f, max_jerk_edit.c);
|
|
|
|
|
EDIT_ITEM_FAST(float52sign, MSG_VC_JERK, &planner.max_jerk.c, 0.1f, max_jerk_edit.c);
|
|
|
|
|
#endif
|
|
|
|
|
#if !BOTH(JUNCTION_DEVIATION, LIN_ADVANCE)
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT(float52sign, MSG_VE_JERK, &planner.max_jerk.e, 0.1f, max_jerk_edit.e);
|
|
|
|
|
EDIT_ITEM_FAST(float52sign, MSG_VE_JERK, &planner.max_jerk.e, 0.1f, max_jerk_edit.e);
|
|
|
|
|
#endif
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
@ -604,16 +604,16 @@ void menu_backlash();
|
|
|
|
|
// M92 Steps-per-mm
|
|
|
|
|
void menu_advanced_steps_per_mm() {
|
|
|
|
|
START_MENU();
|
|
|
|
|
MENU_BACK(MSG_ADVANCED_SETTINGS);
|
|
|
|
|
BACK_ITEM(MSG_ADVANCED_SETTINGS);
|
|
|
|
|
|
|
|
|
|
#define EDIT_QSTEPS(Q) MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float51, MSG_##Q##STEPS, &planner.settings.axis_steps_per_mm[_AXIS(Q)], 5, 9999, _planner_refresh_positioning)
|
|
|
|
|
#define EDIT_QSTEPS(Q) EDIT_ITEM_FAST(float51, MSG_##Q##STEPS, &planner.settings.axis_steps_per_mm[_AXIS(Q)], 5, 9999, _planner_refresh_positioning)
|
|
|
|
|
EDIT_QSTEPS(A);
|
|
|
|
|
EDIT_QSTEPS(B);
|
|
|
|
|
EDIT_QSTEPS(C);
|
|
|
|
|
|
|
|
|
|
#if ENABLED(DISTINCT_E_FACTORS)
|
|
|
|
|
#define EDIT_ESTEPS(N,E) MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float51, MSG_E##N##STEPS, &planner.settings.axis_steps_per_mm[E_AXIS_N(E)], 5, 9999, _planner_refresh_e##E##_positioning)
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float51, MSG_ESTEPS, &planner.settings.axis_steps_per_mm[E_AXIS_N(active_extruder)], 5, 9999, _planner_refresh_positioning);
|
|
|
|
|
#define EDIT_ESTEPS(N,E) EDIT_ITEM_FAST(float51, MSG_E##N##STEPS, &planner.settings.axis_steps_per_mm[E_AXIS_N(E)], 5, 9999, _planner_refresh_e##E##_positioning)
|
|
|
|
|
EDIT_ITEM_FAST(float51, MSG_ESTEPS, &planner.settings.axis_steps_per_mm[E_AXIS_N(active_extruder)], 5, 9999, _planner_refresh_positioning);
|
|
|
|
|
EDIT_ESTEPS(1,0);
|
|
|
|
|
EDIT_ESTEPS(2,1);
|
|
|
|
|
#if E_STEPPERS > 2
|
|
|
|
@ -629,7 +629,7 @@ void menu_backlash();
|
|
|
|
|
#endif // E_STEPPERS > 3
|
|
|
|
|
#endif // E_STEPPERS > 2
|
|
|
|
|
#elif E_STEPPERS
|
|
|
|
|
MENU_MULTIPLIER_ITEM_EDIT_CALLBACK(float51, MSG_ESTEPS, &planner.settings.axis_steps_per_mm[E_AXIS], 5, 9999, _planner_refresh_positioning);
|
|
|
|
|
EDIT_ITEM_FAST(float51, MSG_ESTEPS, &planner.settings.axis_steps_per_mm[E_AXIS], 5, 9999, _planner_refresh_positioning);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
END_MENU();
|
|
|
|
@ -663,7 +663,7 @@ void menu_advanced_settings() {
|
|
|
|
|
lcd_runout_distance_mm = runout.runout_distance();
|
|
|
|
|
#endif
|
|
|
|
|
START_MENU();
|
|
|
|
|
MENU_BACK(MSG_CONFIGURATION);
|
|
|
|
|
BACK_ITEM(MSG_CONFIGURATION);
|
|
|
|
|
|
|
|
|
|
#if DISABLED(SLIM_LCD_MENUS)
|
|
|
|
|
|
|
|
|
@ -671,50 +671,50 @@ void menu_advanced_settings() {
|
|
|
|
|
//
|
|
|
|
|
// Set Home Offsets
|
|
|
|
|
//
|
|
|
|
|
MENU_ITEM(function, MSG_SET_HOME_OFFSETS, _lcd_set_home_offsets);
|
|
|
|
|
ACTION_ITEM(MSG_SET_HOME_OFFSETS, _lcd_set_home_offsets);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
// M203 / M205 - Feedrate items
|
|
|
|
|
MENU_ITEM(submenu, MSG_VELOCITY, menu_advanced_velocity);
|
|
|
|
|
SUBMENU(MSG_VELOCITY, menu_advanced_velocity);
|
|
|
|
|
|
|
|
|
|
// M201 - Acceleration items
|
|
|
|
|
MENU_ITEM(submenu, MSG_ACCELERATION, menu_advanced_acceleration);
|
|
|
|
|
SUBMENU(MSG_ACCELERATION, menu_advanced_acceleration);
|
|
|
|
|
|
|
|
|
|
// M205 - Max Jerk
|
|
|
|
|
MENU_ITEM(submenu, MSG_JERK, menu_advanced_jerk);
|
|
|
|
|
SUBMENU(MSG_JERK, menu_advanced_jerk);
|
|
|
|
|
|
|
|
|
|
if (!printer_busy()) {
|
|
|
|
|
// M92 - Steps Per mm
|
|
|
|
|
MENU_ITEM(submenu, MSG_STEPS_PER_MM, menu_advanced_steps_per_mm);
|
|
|
|
|
SUBMENU(MSG_STEPS_PER_MM, menu_advanced_steps_per_mm);
|
|
|
|
|
}
|
|
|
|
|
#endif // !SLIM_LCD_MENUS
|
|
|
|
|
|
|
|
|
|
#if ENABLED(BACKLASH_GCODE)
|
|
|
|
|
MENU_ITEM(submenu, MSG_BACKLASH, menu_backlash);
|
|
|
|
|
SUBMENU(MSG_BACKLASH, menu_backlash);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if ENABLED(DAC_STEPPER_CURRENT)
|
|
|
|
|
MENU_ITEM(submenu, MSG_DRIVE_STRENGTH, menu_dac);
|
|
|
|
|
SUBMENU(MSG_DRIVE_STRENGTH, menu_dac);
|
|
|
|
|
#endif
|
|
|
|
|
#if HAS_MOTOR_CURRENT_PWM
|
|
|
|
|
MENU_ITEM(submenu, MSG_DRIVE_STRENGTH, menu_pwm);
|
|
|
|
|
SUBMENU(MSG_DRIVE_STRENGTH, menu_pwm);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if HAS_TRINAMIC
|
|
|
|
|
MENU_ITEM(submenu, MSG_TMC_DRIVERS, menu_tmc);
|
|
|
|
|
SUBMENU(MSG_TMC_DRIVERS, menu_tmc);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if SHOW_MENU_ADVANCED_TEMPERATURE
|
|
|
|
|
MENU_ITEM(submenu, MSG_TEMPERATURE, menu_advanced_temperature);
|
|
|
|
|
SUBMENU(MSG_TEMPERATURE, menu_advanced_temperature);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if DISABLED(NO_VOLUMETRICS) || ENABLED(ADVANCED_PAUSE_FEATURE)
|
|
|
|
|
MENU_ITEM(submenu, MSG_FILAMENT, menu_advanced_filament);
|
|
|
|
|
SUBMENU(MSG_FILAMENT, menu_advanced_filament);
|
|
|
|
|
#elif ENABLED(LIN_ADVANCE)
|
|
|
|
|
#if EXTRUDERS == 1
|
|
|
|
|
MENU_ITEM_EDIT(float52, MSG_ADVANCE_K, &planner.extruder_advance_K[0], 0, 999);
|
|
|
|
|
EDIT_ITEM(float52, MSG_ADVANCE_K, &planner.extruder_advance_K[0], 0, 999);
|
|
|
|
|
#elif EXTRUDERS > 1
|
|
|
|
|
#define EDIT_ADVANCE_K(N) MENU_ITEM_EDIT(float52, MSG_ADVANCE_K MSG_E##N, &planner.extruder_advance_K[N-1], 0, 999)
|
|
|
|
|
#define EDIT_ADVANCE_K(N) EDIT_ITEM(float52, MSG_ADVANCE_K MSG_E##N, &planner.extruder_advance_K[N-1], 0, 999)
|
|
|
|
|
EDIT_ADVANCE_K(1);
|
|
|
|
|
EDIT_ADVANCE_K(2);
|
|
|
|
|
#if EXTRUDERS > 2
|
|
|
|
@ -734,12 +734,12 @@ void menu_advanced_settings() {
|
|
|
|
|
|
|
|
|
|
// M540 S - Abort on endstop hit when SD printing
|
|
|
|
|
#if ENABLED(SD_ABORT_ON_ENDSTOP_HIT)
|
|
|
|
|
MENU_ITEM_EDIT(bool, MSG_ENDSTOP_ABORT, &planner.abort_on_endstop_hit);
|
|
|
|
|
EDIT_ITEM(bool, MSG_ENDSTOP_ABORT, &planner.abort_on_endstop_hit);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if ENABLED(SD_FIRMWARE_UPDATE)
|
|
|
|
|
bool sd_update_state = settings.sd_update_status();
|
|
|
|
|
MENU_ITEM_EDIT_CALLBACK(bool, MSG_MEDIA_UPDATE, &sd_update_state, []{
|
|
|
|
|
EDIT_ITEM(bool, MSG_MEDIA_UPDATE, &sd_update_state, []{
|
|
|
|
|
//
|
|
|
|
|
// Toggle the SD Firmware Update state in EEPROM
|
|
|
|
|
//
|
|
|
|
@ -754,7 +754,7 @@ void menu_advanced_settings() {
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
#if ENABLED(EEPROM_SETTINGS) && DISABLED(SLIM_LCD_MENUS)
|
|
|
|
|
MENU_ITEM(submenu, MSG_INIT_EEPROM, lcd_init_eeprom_confirm);
|
|
|
|
|
SUBMENU(MSG_INIT_EEPROM, lcd_init_eeprom_confirm);
|
|
|
|
|
#endif
|
|
|
|
|
|
|
|
|
|
END_MENU();
|
|
|
|
|