🚸 Improve MPC tuning, add menu items (#23984)
Co-authored-by: Scott Lahteine <thinkyhead@users.noreply.github.com>
This commit is contained in:
@@ -244,7 +244,7 @@ void menu_backlash();
|
||||
}
|
||||
#endif
|
||||
|
||||
#if BOTH(AUTOTEMP, HAS_TEMP_HOTEND) || EITHER(PID_AUTOTUNE_MENU, PID_EDIT_MENU)
|
||||
#if BOTH(AUTOTEMP, HAS_TEMP_HOTEND) || ANY(PID_AUTOTUNE_MENU, PID_EDIT_MENU, MPC_AUTOTUNE_MENU, MPC_EDIT_MENU)
|
||||
#define SHOW_MENU_ADVANCED_TEMPERATURE 1
|
||||
#endif
|
||||
|
||||
@@ -253,7 +253,17 @@ void menu_backlash();
|
||||
//
|
||||
#if SHOW_MENU_ADVANCED_TEMPERATURE
|
||||
|
||||
#if ENABLED(MPC_EDIT_MENU)
|
||||
#define MPC_EDIT_DEFS(N) \
|
||||
MPC_t &c = thermalManager.temp_hotend[N].constants; \
|
||||
TERN(MPC_INCLUDE_FAN, editable.decimal = c.ambient_xfer_coeff_fan0 + c.fan255_adjustment)
|
||||
#endif
|
||||
|
||||
void menu_advanced_temperature() {
|
||||
#if ENABLED(MPC_EDIT_MENU) && !HAS_MULTI_HOTEND
|
||||
MPC_EDIT_DEFS(0);
|
||||
#endif
|
||||
|
||||
START_MENU();
|
||||
BACK_ITEM(MSG_ADVANCED_SETTINGS);
|
||||
|
||||
@@ -330,6 +340,45 @@ void menu_backlash();
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#if ENABLED(MPC_EDIT_MENU)
|
||||
|
||||
#define _MPC_EDIT_ITEMS(N) \
|
||||
EDIT_ITEM_FAST_N(float31sign, N, MSG_MPC_POWER_E, &c.heater_power, 1, 200); \
|
||||
EDIT_ITEM_FAST_N(float31sign, N, MSG_MPC_BLOCK_HEAT_CAPACITY_E, &c.block_heat_capacity, 0, 40); \
|
||||
EDIT_ITEM_FAST_N(float43, N, MSG_SENSOR_RESPONSIVENESS_E, &c.sensor_responsiveness, 0, 1); \
|
||||
EDIT_ITEM_FAST_N(float43, N, MSG_MPC_AMBIENT_XFER_COEFF_E, &c.ambient_xfer_coeff_fan0, 0, 1)
|
||||
|
||||
#if ENABLED(MPC_INCLUDE_FAN)
|
||||
#define MPC_EDIT_ITEMS(N) \
|
||||
_MPC_EDIT_ITEMS(N); \
|
||||
EDIT_ITEM_FAST_N(float43, N, MSG_MPC_AMBIENT_XFER_COEFF_FAN255_E, &editable.decimal, 0, 1, []{ \
|
||||
c.fan255_adjustment = editable.decimal - c.ambient_xfer_coeff_fan0; \
|
||||
})
|
||||
#else
|
||||
#define MPC_EDIT_ITEMS _MPC_EDIT_ITEMS
|
||||
#endif
|
||||
|
||||
#if HAS_MULTI_HOTEND
|
||||
auto mpc_edit_hotend = [&](const uint8_t e) {
|
||||
MPC_EDIT_DEFS(e);
|
||||
START_MENU();
|
||||
BACK_ITEM(MSG_TEMPERATURE);
|
||||
MPC_EDIT_ITEMS(e);
|
||||
END_MENU();
|
||||
};
|
||||
#define MPC_ENTRY(N) SUBMENU_N(N, MSG_MPC_EDIT, []{ mpc_edit_hotend(MenuItemBase::itemIndex); });
|
||||
#else
|
||||
#define MPC_ENTRY MPC_EDIT_ITEMS
|
||||
#endif
|
||||
|
||||
REPEAT(HOTENDS, MPC_ENTRY);
|
||||
|
||||
#endif // MPC_EDIT_MENU
|
||||
|
||||
#if ENABLED(MPC_AUTOTUNE_MENU)
|
||||
ACTION_ITEM(MSG_MPC_AUTOTUNE, []{ queue.inject(F("M306 T")); ui.return_to_status(); });
|
||||
#endif
|
||||
|
||||
#if ENABLED(PIDTEMPBED)
|
||||
#if ENABLED(PID_EDIT_MENU)
|
||||
_PID_EDIT_ITEMS_TMPL(H_BED, thermalManager.temp_bed);
|
||||
|
||||
Reference in New Issue
Block a user