BigTreeTech GTR V1.0 / Support 8 extruders, heaters, temp sensors, fans (#16595)

This commit is contained in:
yangwenxiong
2020-01-25 16:13:39 +08:00
committed by Scott Lahteine
parent 0d166f9c7d
commit 248b7dfa59
66 changed files with 2086 additions and 217 deletions

View File

@ -30,7 +30,7 @@
extern int8_t encoderLine, encoderTopLine, screen_items;
#if HOTENDS
constexpr int16_t heater_maxtemp[HOTENDS] = ARRAY_BY_HOTENDS(HEATER_0_MAXTEMP, HEATER_1_MAXTEMP, HEATER_2_MAXTEMP, HEATER_3_MAXTEMP, HEATER_4_MAXTEMP, HEATER_5_MAXTEMP);
constexpr int16_t heater_maxtemp[HOTENDS] = ARRAY_BY_HOTENDS(HEATER_0_MAXTEMP, HEATER_1_MAXTEMP, HEATER_2_MAXTEMP, HEATER_3_MAXTEMP, HEATER_4_MAXTEMP, HEATER_5_MAXTEMP, HEATER_6_MAXTEMP, HEATER_7_MAXTEMP);
#endif
void scroll_screen(const uint8_t limit, const bool is_menu);

View File

@ -245,6 +245,12 @@ void menu_cancelobject();
DEFINE_PIDTEMP_FUNCS(4);
#if HOTENDS > 5
DEFINE_PIDTEMP_FUNCS(5);
#if HOTENDS > 6
DEFINE_PIDTEMP_FUNCS(6);
#if HOTENDS > 7
DEFINE_PIDTEMP_FUNCS(7);
#endif // HOTENDS > 7
#endif // HOTENDS > 6
#endif // HOTENDS > 5
#endif // HOTENDS > 4
#endif // HOTENDS > 3
@ -330,6 +336,12 @@ void menu_cancelobject();
PID_EDIT_MENU_ITEMS(4);
#if HOTENDS > 5
PID_EDIT_MENU_ITEMS(5);
#if HOTENDS > 6
PID_EDIT_MENU_ITEMS(6);
#if HOTENDS > 7
PID_EDIT_MENU_ITEMS(7);
#endif // HOTENDS > 7
#endif // HOTENDS > 6
#endif // HOTENDS > 5
#endif // HOTENDS > 4
#endif // HOTENDS > 3

View File

@ -152,6 +152,24 @@ void menu_info_thermistors() {
VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_5_MAXTEMP), SS_LEFT);
#endif
#if TEMP_SENSOR_6 != 0
#undef THERMISTOR_ID
#define THERMISTOR_ID TEMP_SENSOR_6
#include "../thermistornames.h"
STATIC_ITEM_P(PSTR(LCD_STR_E6 ": " THERMISTOR_NAME), SS_INVERT);
VALUE_ITEM_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_6_MINTEMP), SS_LEFT);
VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_6_MAXTEMP), SS_LEFT);
#endif
#if TEMP_SENSOR_7 != 0
#undef THERMISTOR_ID
#define THERMISTOR_ID TEMP_SENSOR_7
#include "../thermistornames.h"
STATIC_ITEM_P(PSTR(LCD_STR_E7 ": " THERMISTOR_NAME), SS_INVERT);
VALUE_ITEM_P(MSG_INFO_MIN_TEMP, STRINGIFY(HEATER_7_MINTEMP), SS_LEFT);
VALUE_ITEM_P(MSG_INFO_MAX_TEMP, STRINGIFY(HEATER_7_MAXTEMP), SS_LEFT);
#endif
#if EXTRUDERS
{
STATIC_ITEM(

View File

@ -198,33 +198,72 @@ void menu_temperature() {
// Fan Speed:
//
#if FAN_COUNT > 0
auto on_fan_update = []{
thermalManager.set_fan_speed(MenuItemBase::itemIndex, editable.uint8);
};
#if HAS_FAN1 || HAS_FAN2 || HAS_FAN3 || HAS_FAN4 || HAS_FAN5 || HAS_FAN6 || HAS_FAN7
auto fan_edit_items = [&](const uint8_t f) {
editable.uint8 = thermalManager.fan_speed[f];
EDIT_ITEM_FAST_N(percent, f, MSG_FAN_SPEED_N, &editable.uint8, 0, 255, on_fan_update);
#if ENABLED(EXTRA_FAN_SPEED)
EDIT_ITEM_FAST_N(percent, f, MSG_EXTRA_FAN_SPEED_N, &thermalManager.new_fan_speed[f], 3, 255);
#endif
};
#endif
#define SNFAN(N) (ENABLED(SINGLENOZZLE) && !HAS_FAN##N && EXTRUDERS > N)
#if SNFAN(1) || SNFAN(2) || SNFAN(3) || SNFAN(4) || SNFAN(5) || SNFAN(6) || SNFAN(7)
auto singlenozzle_item = [&](const uint8_t f) {
editable.uint8 = thermalManager.fan_speed[f];
EDIT_ITEM_FAST_N(percent, f, MSG_STORED_FAN_N, &editable.uint8, 0, 255, on_fan_update);
};
#endif
#if HAS_FAN0
editable.uint8 = thermalManager.fan_speed[0];
EDIT_ITEM_FAST_N(percent, 1, MSG_FIRST_FAN_SPEED, &editable.uint8, 0, 255, []{ thermalManager.set_fan_speed(0, editable.uint8); });
EDIT_ITEM_FAST_N(percent, 0, MSG_FIRST_FAN_SPEED, &editable.uint8, 0, 255, on_fan_update);
#if ENABLED(EXTRA_FAN_SPEED)
EDIT_ITEM_FAST_N(percent, 1, MSG_FIRST_EXTRA_FAN_SPEED, &thermalManager.new_fan_speed[0], 3, 255);
EDIT_ITEM_FAST_N(percent, 0, MSG_FIRST_EXTRA_FAN_SPEED, &thermalManager.new_fan_speed[0], 3, 255);
#endif
#endif
#if HAS_FAN1
editable.uint8 = thermalManager.fan_speed[1];
EDIT_ITEM_FAST_N(percent, 2, MSG_FAN_SPEED_N, &editable.uint8, 0, 255, []{ thermalManager.set_fan_speed(1, editable.uint8); });
#if ENABLED(EXTRA_FAN_SPEED)
EDIT_ITEM_FAST_N(percent, 2, MSG_EXTRA_FAN_SPEED_N, &thermalManager.new_fan_speed[1], 3, 255);
#endif
#elif ENABLED(SINGLENOZZLE) && EXTRUDERS > 1
editable.uint8 = thermalManager.fan_speed[1];
EDIT_ITEM_FAST_N(percent, 2, MSG_STORED_FAN_N, &editable.uint8, 0, 255, []{ thermalManager.set_fan_speed(1, editable.uint8); });
fan_edit_items(1);
#elif SNFAN(1)
singlenozzle_item(1);
#endif
#if HAS_FAN2
editable.uint8 = thermalManager.fan_speed[2];
EDIT_ITEM_FAST_N(percent, 3, MSG_FAN_SPEED_N, &editable.uint8, 0, 255, []{ thermalManager.set_fan_speed(2, editable.uint8); });
#if ENABLED(EXTRA_FAN_SPEED)
EDIT_ITEM_FAST_N(percent, 3, MSG_EXTRA_FAN_SPEED_N, &thermalManager.new_fan_speed[2], 3, 255);
#endif
#elif ENABLED(SINGLENOZZLE) && EXTRUDERS > 2
editable.uint8 = thermalManager.fan_speed[2];
EDIT_ITEM_FAST_N(percent, 3, MSG_STORED_FAN_N, &editable.uint8, 0, 255, []{ thermalManager.set_fan_speed(2, editable.uint8); });
fan_edit_items(2);
#elif SNFAN(2)
singlenozzle_item(1);
#endif
#if HAS_FAN3
fan_edit_items(3);
#elif SNFAN(3)
singlenozzle_item(1);
#endif
#if HAS_FAN4
fan_edit_items(4);
#elif SNFAN(4)
singlenozzle_item(1);
#endif
#if HAS_FAN5
fan_edit_items(5);
#elif SNFAN(5)
singlenozzle_item(1);
#endif
#if HAS_FAN6
fan_edit_items(6);
#elif SNFAN(6)
singlenozzle_item(1);
#endif
#if HAS_FAN7
fan_edit_items(7);
#elif SNFAN(7)
singlenozzle_item(1);
#endif
#endif // FAN_COUNT > 0
#if HAS_TEMP_HOTEND
@ -232,7 +271,7 @@ void menu_temperature() {
//
// Preheat for Material 1 and 2
//
#if TEMP_SENSOR_1 != 0 || TEMP_SENSOR_2 != 0 || TEMP_SENSOR_3 != 0 || TEMP_SENSOR_4 != 0 || TEMP_SENSOR_5 != 0 || HAS_HEATED_BED
#if TEMP_SENSOR_1 != 0 || TEMP_SENSOR_2 != 0 || TEMP_SENSOR_3 != 0 || TEMP_SENSOR_4 != 0 || TEMP_SENSOR_5 != 0 || TEMP_SENSOR_6 != 0 || TEMP_SENSOR_7 != 0 || HAS_HEATED_BED
SUBMENU(MSG_PREHEAT_1, menu_preheat_m1);
SUBMENU(MSG_PREHEAT_2, menu_preheat_m2);
#else

View File

@ -79,6 +79,12 @@ void menu_tmc_current() {
#if AXIS_IS_TMC(E5)
TMC_EDIT_STORED_I_RMS(E5, LCD_STR_E5);
#endif
#if AXIS_IS_TMC(E6)
TMC_EDIT_STORED_I_RMS(E6, LCD_STR_E6);
#endif
#if AXIS_IS_TMC(E7)
TMC_EDIT_STORED_I_RMS(E7, LCD_STR_E7);
#endif
END_MENU();
}
@ -131,6 +137,12 @@ void menu_tmc_current() {
#if AXIS_HAS_STEALTHCHOP(E5)
TMC_EDIT_STORED_HYBRID_THRS(E5, LCD_STR_E5);
#endif
#if AXIS_HAS_STEALTHCHOP(E6)
TMC_EDIT_STORED_HYBRID_THRS(E6, LCD_STR_E6);
#endif
#if AXIS_HAS_STEALTHCHOP(E7)
TMC_EDIT_STORED_HYBRID_THRS(E7, LCD_STR_E7);
#endif
END_MENU();
}
@ -210,6 +222,12 @@ void menu_tmc_current() {
#if AXIS_HAS_STEALTHCHOP(E5)
TMC_EDIT_STEP_MODE(E5, LCD_STR_E5);
#endif
#if AXIS_HAS_STEALTHCHOP(E6)
TMC_EDIT_STEP_MODE(E6, LCD_STR_E6);
#endif
#if AXIS_HAS_STEALTHCHOP(E7)
TMC_EDIT_STEP_MODE(E7, LCD_STR_E7);
#endif
END_MENU();
}

View File

@ -147,33 +147,72 @@ void menu_tune() {
// Fan Speed:
//
#if FAN_COUNT > 0
auto on_fan_update = []{
thermalManager.set_fan_speed(MenuItemBase::itemIndex, editable.uint8);
};
#if HAS_FAN1 || HAS_FAN2 || HAS_FAN3 || HAS_FAN4 || HAS_FAN5 || HAS_FAN6 || HAS_FAN7
auto fan_edit_items = [&](const uint8_t f) {
editable.uint8 = thermalManager.fan_speed[f];
EDIT_ITEM_FAST_N(percent, f, MSG_FAN_SPEED_N, &editable.uint8, 0, 255, on_fan_update);
#if ENABLED(EXTRA_FAN_SPEED)
EDIT_ITEM_FAST_N(percent, f, MSG_EXTRA_FAN_SPEED_N, &thermalManager.new_fan_speed[f], 3, 255);
#endif
};
#endif
#define SNFAN(N) (ENABLED(SINGLENOZZLE) && !HAS_FAN##N && EXTRUDERS > N)
#if SNFAN(1) || SNFAN(2) || SNFAN(3) || SNFAN(4) || SNFAN(5) || SNFAN(6) || SNFAN(7)
auto singlenozzle_item = [&](const uint8_t f) {
editable.uint8 = thermalManager.fan_speed[f];
EDIT_ITEM_FAST_N(percent, f, MSG_STORED_FAN_N, &editable.uint8, 0, 255, on_fan_update);
};
#endif
#if HAS_FAN0
editable.uint8 = thermalManager.fan_speed[0];
EDIT_ITEM_FAST_N(percent, 1, MSG_FIRST_FAN_SPEED, &editable.uint8, 0, 255, []{ thermalManager.set_fan_speed(0, editable.uint8); });
EDIT_ITEM_FAST_N(percent, 0, MSG_FIRST_FAN_SPEED, &editable.uint8, 0, 255, on_fan_update);
#if ENABLED(EXTRA_FAN_SPEED)
EDIT_ITEM_FAST_N(percent, 1, MSG_FIRST_EXTRA_FAN_SPEED, &thermalManager.new_fan_speed[0], 3, 255);
EDIT_ITEM_FAST_N(percent, 0, MSG_FIRST_EXTRA_FAN_SPEED, &thermalManager.new_fan_speed[0], 3, 255);
#endif
#endif
#if HAS_FAN1
editable.uint8 = thermalManager.fan_speed[1];
EDIT_ITEM_FAST_N(percent, 2, MSG_FAN_SPEED_N, &editable.uint8, 0, 255, []{ thermalManager.set_fan_speed(1, editable.uint8); });
#if ENABLED(EXTRA_FAN_SPEED)
EDIT_ITEM_FAST_N(percent, 2, MSG_EXTRA_FAN_SPEED_N, &thermalManager.new_fan_speed[1], 3, 255);
#endif
#elif ENABLED(SINGLENOZZLE) && EXTRUDERS > 1
editable.uint8 = thermalManager.fan_speed[1];
EDIT_ITEM_FAST_N(percent, 2, MSG_STORED_FAN_N, &editable.uint8, 0, 255, []{ thermalManager.set_fan_speed(1, editable.uint8); });
fan_edit_items(1);
#elif SNFAN(1)
singlenozzle_item(1);
#endif
#if HAS_FAN2
editable.uint8 = thermalManager.fan_speed[2];
EDIT_ITEM_FAST_N(percent, 3, MSG_FAN_SPEED_N, &editable.uint8, 0, 255, []{ thermalManager.set_fan_speed(2, editable.uint8); });
#if ENABLED(EXTRA_FAN_SPEED)
EDIT_ITEM_FAST_N(percent, 3, MSG_EXTRA_FAN_SPEED_N, &thermalManager.new_fan_speed[2], 3, 255);
#endif
#elif ENABLED(SINGLENOZZLE) && EXTRUDERS > 2
editable.uint8 = thermalManager.fan_speed[2];
EDIT_ITEM_FAST_N(percent, 3, MSG_STORED_FAN_N, &editable.uint8, 0, 255, []{ thermalManager.set_fan_speed(2, editable.uint8); });
fan_edit_items(2);
#elif SNFAN(2)
singlenozzle_item(1);
#endif
#if HAS_FAN3
fan_edit_items(3);
#elif SNFAN(3)
singlenozzle_item(1);
#endif
#if HAS_FAN4
fan_edit_items(4);
#elif SNFAN(4)
singlenozzle_item(1);
#endif
#if HAS_FAN5
fan_edit_items(5);
#elif SNFAN(5)
singlenozzle_item(1);
#endif
#if HAS_FAN6
fan_edit_items(6);
#elif SNFAN(6)
singlenozzle_item(1);
#endif
#if HAS_FAN7
fan_edit_items(7);
#elif SNFAN(7)
singlenozzle_item(1);
#endif
#endif // FAN_COUNT > 0
//