|
|
@ -45,7 +45,6 @@ |
|
|
|
|
|
|
|
#if ENABLED(FILAMENT_RUNOUT_SENSOR) && FILAMENT_RUNOUT_DISTANCE_MM |
|
|
|
#include "../../feature/runout.h" |
|
|
|
float lcd_runout_distance_mm; |
|
|
|
#endif |
|
|
|
|
|
|
|
#if ENABLED(EEPROM_SETTINGS) && DISABLED(SLIM_LCD_MENUS) |
|
|
@ -148,9 +147,12 @@ void menu_cancelobject(); |
|
|
|
#endif |
|
|
|
|
|
|
|
#if ENABLED(FILAMENT_RUNOUT_SENSOR) && FILAMENT_RUNOUT_DISTANCE_MM |
|
|
|
EDIT_ITEM(float3, MSG_RUNOUT_DISTANCE_MM, &lcd_runout_distance_mm, 1, 30, []{ |
|
|
|
runout.set_runout_distance(lcd_runout_distance_mm); |
|
|
|
}); |
|
|
|
MENU_ITEM_IF(1) { |
|
|
|
editable.decimal = runout.runout_distance(); |
|
|
|
EDIT_ITEM(float3, MSG_RUNOUT_DISTANCE_MM, &editable.decimal, 1, 30, |
|
|
|
[]{ runout.set_runout_distance(editable.decimal); }, true |
|
|
|
); |
|
|
|
} |
|
|
|
#endif |
|
|
|
|
|
|
|
END_MENU(); |
|
|
@ -327,9 +329,6 @@ void menu_cancelobject(); |
|
|
|
|
|
|
|
// M203 / M205 Velocity options
|
|
|
|
void menu_advanced_velocity() { |
|
|
|
START_MENU(); |
|
|
|
BACK_ITEM(MSG_ADVANCED_SETTINGS); |
|
|
|
|
|
|
|
// M203 Max Feedrate
|
|
|
|
constexpr xyze_feedrate_t max_fr_edit = |
|
|
|
#ifdef MAX_FEEDRATE_EDIT_VALUES |
|
|
@ -345,6 +344,10 @@ void menu_cancelobject(); |
|
|
|
#else |
|
|
|
const xyze_feedrate_t &max_fr_edit_scaled = max_fr_edit; |
|
|
|
#endif |
|
|
|
|
|
|
|
START_MENU(); |
|
|
|
BACK_ITEM(MSG_ADVANCED_SETTINGS); |
|
|
|
|
|
|
|
#define EDIT_VMAX(N) EDIT_ITEM_FAST(float3, MSG_VMAX_##N, &planner.settings.max_feedrate_mm_s[_AXIS(N)], 1, max_fr_edit_scaled[_AXIS(N)]) |
|
|
|
EDIT_VMAX(A); |
|
|
|
EDIT_VMAX(B); |
|
|
@ -369,18 +372,7 @@ void menu_cancelobject(); |
|
|
|
|
|
|
|
// M201 / M204 Accelerations
|
|
|
|
void menu_advanced_acceleration() { |
|
|
|
START_MENU(); |
|
|
|
BACK_ITEM(MSG_ADVANCED_SETTINGS); |
|
|
|
|
|
|
|
const 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
|
|
|
|
EDIT_ITEM_FAST(float5_25, MSG_ACC, &planner.settings.acceleration, 25, max_accel); |
|
|
|
|
|
|
|
// M204 R Retract Acceleration
|
|
|
|
EDIT_ITEM_FAST(float5, MSG_A_RETRACT, &planner.settings.retract_acceleration, 100, planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(active_extruder)]); |
|
|
|
|
|
|
|
// M204 T Travel Acceleration
|
|
|
|
EDIT_ITEM_FAST(float5_25, MSG_A_TRAVEL, &planner.settings.travel_acceleration, 25, max_accel); |
|
|
|
|
|
|
|
// M201 settings
|
|
|
|
constexpr xyze_ulong_t max_accel_edit = |
|
|
@ -398,6 +390,18 @@ void menu_cancelobject(); |
|
|
|
const xyze_ulong_t &max_accel_edit_scaled = max_accel_edit; |
|
|
|
#endif |
|
|
|
|
|
|
|
START_MENU(); |
|
|
|
BACK_ITEM(MSG_ADVANCED_SETTINGS); |
|
|
|
|
|
|
|
// M204 P Acceleration
|
|
|
|
EDIT_ITEM_FAST(float5_25, MSG_ACC, &planner.settings.acceleration, 25, max_accel); |
|
|
|
|
|
|
|
// M204 R Retract Acceleration
|
|
|
|
EDIT_ITEM_FAST(float5, MSG_A_RETRACT, &planner.settings.retract_acceleration, 100, planner.settings.max_acceleration_mm_per_s2[E_AXIS_N(active_extruder)]); |
|
|
|
|
|
|
|
// M204 T Travel Acceleration
|
|
|
|
EDIT_ITEM_FAST(float5_25, MSG_A_TRAVEL, &planner.settings.travel_acceleration, 25, max_accel); |
|
|
|
|
|
|
|
#define EDIT_AMAX(Q,L) EDIT_ITEM_FAST(long5_25, MSG_AMAX_##Q, &planner.settings.max_acceleration_mm_per_s2[_AXIS(Q)], L, max_accel_edit_scaled[_AXIS(Q)], []{ planner.reset_acceleration_rates(); }) |
|
|
|
EDIT_AMAX(A, 100); |
|
|
|
EDIT_AMAX(B, 100); |
|
|
@ -413,8 +417,10 @@ void menu_cancelobject(); |
|
|
|
|
|
|
|
#ifdef XY_FREQUENCY_LIMIT |
|
|
|
EDIT_ITEM(int8, MSG_XY_FREQUENCY_LIMIT, &planner.xy_freq_limit_hz, 0, 100, planner.refresh_frequency_limit, true); |
|
|
|
MENU_ITEM_IF(1) { |
|
|
|
editable.uint8 = uint8_t(LROUND(planner.xy_freq_min_speed_factor * 255 * 100)); // percent to u8
|
|
|
|
EDIT_ITEM(percent, MSG_XY_FREQUENCY_FEEDRATE, &editable.uint8, 3, 255, []{ planner.set_min_speed_factor_u8(editable.uint8); }, true); |
|
|
|
} |
|
|
|
#endif |
|
|
|
|
|
|
|
END_MENU(); |
|
|
@ -496,9 +502,8 @@ void menu_advanced_steps_per_mm() { |
|
|
|
} |
|
|
|
|
|
|
|
void menu_advanced_settings() { |
|
|
|
#if ENABLED(FILAMENT_RUNOUT_SENSOR) && FILAMENT_RUNOUT_DISTANCE_MM |
|
|
|
lcd_runout_distance_mm = runout.runout_distance(); |
|
|
|
#endif |
|
|
|
const bool is_busy = printer_busy(); |
|
|
|
|
|
|
|
START_MENU(); |
|
|
|
BACK_ITEM(MSG_CONFIGURATION); |
|
|
|
|
|
|
@ -522,13 +527,13 @@ void menu_advanced_settings() { |
|
|
|
|
|
|
|
// M851 - Z Probe Offsets
|
|
|
|
#if HAS_BED_PROBE |
|
|
|
if (!printer_busy()) |
|
|
|
SUBMENU(MSG_ZPROBE_OFFSETS, menu_probe_offsets); |
|
|
|
if (!is_busy) SUBMENU(MSG_ZPROBE_OFFSETS, menu_probe_offsets); |
|
|
|
#endif |
|
|
|
|
|
|
|
#endif // !SLIM_LCD_MENUS
|
|
|
|
|
|
|
|
// M92 - Steps Per mm
|
|
|
|
if (!printer_busy()) |
|
|
|
if (!is_busy) |
|
|
|
SUBMENU(MSG_STEPS_PER_MM, menu_advanced_steps_per_mm); |
|
|
|
|
|
|
|
#if ENABLED(BACKLASH_GCODE) |
|
|
@ -571,6 +576,7 @@ void menu_advanced_settings() { |
|
|
|
#endif |
|
|
|
|
|
|
|
#if ENABLED(SD_FIRMWARE_UPDATE) |
|
|
|
MENU_ITEM_IF (1) { |
|
|
|
bool sd_update_state = settings.sd_update_status(); |
|
|
|
EDIT_ITEM(bool, MSG_MEDIA_UPDATE, &sd_update_state, []{ |
|
|
|
//
|
|
|
@ -578,10 +584,11 @@ void menu_advanced_settings() { |
|
|
|
//
|
|
|
|
const bool new_state = !settings.sd_update_status(), |
|
|
|
didset = settings.set_sd_update_status(new_state); |
|
|
|
TERN_(HAS_BUZZER, ui.completion_feedback(didset)); |
|
|
|
ui.completion_feedback(didset); |
|
|
|
ui.return_to_status(); |
|
|
|
if (new_state) LCD_MESSAGEPGM(MSG_RESET_PRINTER); else ui.reset_status(); |
|
|
|
}); |
|
|
|
} |
|
|
|
#endif |
|
|
|
|
|
|
|
#if ENABLED(EEPROM_SETTINGS) && DISABLED(SLIM_LCD_MENUS) |
|
|
|