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

@ -1092,6 +1092,21 @@ void MarlinUI::draw_status_screen() {
#if HAS_FAN2
|| thermalManager.fan_speed[2]
#endif
#if HAS_FAN3
|| thermalManager.fan_speed[3]
#endif
#if HAS_FAN4
|| thermalManager.fan_speed[4]
#endif
#if HAS_FAN5
|| thermalManager.fan_speed[5]
#endif
#if HAS_FAN6
|| thermalManager.fan_speed[6]
#endif
#if HAS_FAN7
|| thermalManager.fan_speed[7]
#endif
) leds |= LED_C;
#endif // FAN_COUNT > 0

View File

@ -912,7 +912,7 @@ namespace ExtUI {
#endif
{
#if HOTENDS
static 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);
static 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);
const int16_t e = heater - H0;
thermalManager.setTargetHotend(LROUND(constrain(value, 0, heater_maxtemp[e] - 15)), e);
#endif
@ -924,7 +924,7 @@ namespace ExtUI {
value *= TOUCH_UI_LCD_TEMP_SCALING;
#endif
#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);
const int16_t e = extruder - E0;
enableHeater(extruder);
thermalManager.setTargetHotend(LROUND(constrain(value, 0, heater_maxtemp[e] - 15)), e);

View File

@ -55,7 +55,7 @@ namespace ExtUI {
enum axis_t : uint8_t { X, Y, Z };
enum extruder_t : uint8_t { E0, E1, E2, E3, E4, E5 };
enum heater_t : uint8_t { H0, H1, H2, H3, H4, H5, BED, CHAMBER };
enum fan_t : uint8_t { FAN0, FAN1, FAN2, FAN3, FAN4, FAN5 };
enum fan_t : uint8_t { FAN0, FAN1, FAN2, FAN3, FAN4, FAN5, FAN6, FAN7 };
enum result_t : uint8_t { PID_BAD_EXTRUDER_NUM, PID_TEMP_TOO_HIGH, PID_TUNING_TIMEOUT, PID_DONE };
constexpr uint8_t extruderCount = EXTRUDERS;

View File

@ -93,7 +93,7 @@ namespace Language_an {
PROGMEM Language_Str MSG_NOZZLE_N = _UxGT("Boquilla ~");
PROGMEM Language_Str MSG_BED = _UxGT("Base");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Ixoriador");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Ixoriador =");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Ixoriador ~");
PROGMEM Language_Str MSG_FLOW = _UxGT("Fluxo");
PROGMEM Language_Str MSG_FLOW_N = _UxGT("Fluxo ~");
PROGMEM Language_Str MSG_CONTROL = _UxGT("Control");

View File

@ -83,7 +83,7 @@ namespace Language_bg {
PROGMEM Language_Str MSG_NOZZLE_N = " " LCD_STR_THERMOMETER _UxGT(" Дюза ~");
PROGMEM Language_Str MSG_BED = " " LCD_STR_THERMOMETER _UxGT(" Легло");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Вентилатор");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Вентилатор =");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Вентилатор ~");
PROGMEM Language_Str MSG_FLOW = _UxGT("Поток");
PROGMEM Language_Str MSG_FLOW_N = _UxGT("Поток ~");
PROGMEM Language_Str MSG_CONTROL = _UxGT("Управление");

View File

@ -94,7 +94,7 @@ namespace Language_ca {
PROGMEM Language_Str MSG_NOZZLE_N = _UxGT("Nozzle ~");
PROGMEM Language_Str MSG_BED = _UxGT("Llit");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Vel. Ventilador");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Vel. Ventilador =");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Vel. Ventilador ~");
PROGMEM Language_Str MSG_FLOW = _UxGT("Flux");
PROGMEM Language_Str MSG_FLOW_N = _UxGT("Flux ~");
PROGMEM Language_Str MSG_VTRAV_MIN = _UxGT("VViatge min");

View File

@ -251,10 +251,10 @@ namespace Language_cz {
PROGMEM Language_Str MSG_BED = _UxGT("Podložka");
PROGMEM Language_Str MSG_CHAMBER = _UxGT("Komora");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Rychlost vent.");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Rychlost vent. =");
PROGMEM Language_Str MSG_STORED_FAN_N = _UxGT("Ulož. vent. =");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Rychlost vent. ~");
PROGMEM Language_Str MSG_STORED_FAN_N = _UxGT("Ulož. vent. ~");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("Rychlost ex. vent.");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("Rychlost ex. vent. =");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("Rychlost ex. vent. ~");
PROGMEM Language_Str MSG_FLOW = _UxGT("Průtok");
PROGMEM Language_Str MSG_FLOW_N = _UxGT("Průtok ~");
PROGMEM Language_Str MSG_CONTROL = _UxGT("Ovládaní");

View File

@ -84,7 +84,7 @@ namespace Language_da {
PROGMEM Language_Str MSG_BED = _UxGT("Plade");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Blæser hastighed");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Blæser hastighed =");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Blæser hastighed ~");
PROGMEM Language_Str MSG_CONTROL = _UxGT("Kontrol");
PROGMEM Language_Str MSG_MIN = _UxGT(" \002 Min");
PROGMEM Language_Str MSG_MAX = _UxGT(" \002 Max");

View File

@ -91,7 +91,7 @@ namespace Language_el {
PROGMEM Language_Str MSG_NOZZLE_N = _UxGT("Ακροφύσιο ~");
PROGMEM Language_Str MSG_BED = _UxGT("Κλίνη");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Ταχύτητα ανεμιστήρα");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Ταχύτητα ανεμιστήρα =");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Ταχύτητα ανεμιστήρα ~");
PROGMEM Language_Str MSG_FLOW = _UxGT("Ροή");
PROGMEM Language_Str MSG_FLOW_N = _UxGT("Ροή ~");
PROGMEM Language_Str MSG_CONTROL = _UxGT("Έλεγχος");

View File

@ -92,7 +92,7 @@ namespace Language_el_gr {
PROGMEM Language_Str MSG_NOZZLE_N = _UxGT("Ακροφύσιο ~");
PROGMEM Language_Str MSG_BED = _UxGT("Κλίνη");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Ταχύτητα ανεμιστήρα");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Ταχύτητα ανεμιστήρα =");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Ταχύτητα ανεμιστήρα ~");
PROGMEM Language_Str MSG_FLOW = _UxGT("Ροή");
PROGMEM Language_Str MSG_FLOW_N = _UxGT("Ροή ~");
PROGMEM Language_Str MSG_CONTROL = _UxGT("Έλεγχος");

View File

@ -242,10 +242,10 @@ namespace Language_en {
PROGMEM Language_Str MSG_BED = _UxGT("Bed");
PROGMEM Language_Str MSG_CHAMBER = _UxGT("Enclosure");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Fan Speed");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Fan Speed =");
PROGMEM Language_Str MSG_STORED_FAN_N = _UxGT("Stored Fan =");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Fan Speed ~");
PROGMEM Language_Str MSG_STORED_FAN_N = _UxGT("Stored Fan ~");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("Extra Fan Speed");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("Extra Fan Speed =");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("Extra Fan Speed ~");
PROGMEM Language_Str MSG_FLOW = _UxGT("Flow");
PROGMEM Language_Str MSG_FLOW_N = _UxGT("Flow ~");
PROGMEM Language_Str MSG_CONTROL = _UxGT("Control");

View File

@ -240,9 +240,9 @@ namespace Language_es {
PROGMEM Language_Str MSG_BED = _UxGT("Cama");
PROGMEM Language_Str MSG_CHAMBER = _UxGT("Recinto");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Ventilador");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Ventilador =");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Ventilador ~");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("Vel. Ext. ventilador");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("Vel. Ext. ventilador =");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("Vel. Ext. ventilador ~");
PROGMEM Language_Str MSG_FLOW = _UxGT("Flujo");
PROGMEM Language_Str MSG_FLOW_N = _UxGT("Flujo ~");
PROGMEM Language_Str MSG_CONTROL = _UxGT("Control");

View File

@ -147,9 +147,9 @@ namespace Language_eu {
PROGMEM Language_Str MSG_NOZZLE_N = _UxGT("Pita ~");
PROGMEM Language_Str MSG_BED = _UxGT("Ohea");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Haizagailu abiadura");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Haizagailu abiadura =");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Haizagailu abiadura ~");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("Haiz.gehig. abiadura");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("Haiz.gehig. abiadura =");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("Haiz.gehig. abiadura ~");
PROGMEM Language_Str MSG_FLOW = _UxGT("Fluxua");
PROGMEM Language_Str MSG_FLOW_N = _UxGT("Fluxua ~");
PROGMEM Language_Str MSG_CONTROL = _UxGT("Kontrola");

View File

@ -79,7 +79,7 @@ namespace Language_fi {
PROGMEM Language_Str MSG_NOZZLE_N = _UxGT("Suutin ~");
PROGMEM Language_Str MSG_BED = _UxGT("Alusta");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Tuul. nopeus");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Tuul. nopeus =");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Tuul. nopeus ~");
PROGMEM Language_Str MSG_FLOW = _UxGT("Virtaus");
PROGMEM Language_Str MSG_FLOW_N = _UxGT("Virtaus ~");
PROGMEM Language_Str MSG_CONTROL = _UxGT("Kontrolli");

View File

@ -235,10 +235,10 @@ namespace Language_fr {
PROGMEM Language_Str MSG_BED = _UxGT("Lit");
PROGMEM Language_Str MSG_CHAMBER = _UxGT("Caisson");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Vit. ventil. "); // 15 car. max
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Vit. ventil. =");
PROGMEM Language_Str MSG_STORED_FAN_N = _UxGT("Vit. enreg. =");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Vit. ventil. ~");
PROGMEM Language_Str MSG_STORED_FAN_N = _UxGT("Vit. enreg. ~");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("Extra ventil. ");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("Extra ventil. =");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("Extra ventil. ~");
PROGMEM Language_Str MSG_FLOW = _UxGT("Flux");
PROGMEM Language_Str MSG_FLOW_N = _UxGT("Flux ~");

View File

@ -240,10 +240,10 @@ namespace Language_it {
PROGMEM Language_Str MSG_BED = _UxGT("Piatto");
PROGMEM Language_Str MSG_CHAMBER = _UxGT("Camera");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Vel. ventola"); // Max 15 characters
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Vel. ventola ="); // Max 15 characters
PROGMEM Language_Str MSG_STORED_FAN_N = _UxGT("Ventola mem. ="); // Max 15 characters
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Vel. ventola ~"); // Max 15 characters
PROGMEM Language_Str MSG_STORED_FAN_N = _UxGT("Ventola mem. ~"); // Max 15 characters
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("Extra vel.vent."); // Max 15 characters
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("Extra v.vent. ="); // Max 15 characters
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("Extra v.vent. ~"); // Max 15 characters
PROGMEM Language_Str MSG_FLOW = _UxGT("Flusso");
PROGMEM Language_Str MSG_FLOW_N = _UxGT("Flusso ~");
PROGMEM Language_Str MSG_CONTROL = _UxGT("Controllo");

View File

@ -77,9 +77,9 @@ namespace Language_ko_KR {
PROGMEM Language_Str MSG_NOZZLE_N = _UxGT("노즐 ~");
PROGMEM Language_Str MSG_BED = _UxGT("베드");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("펜 속도");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("펜 속도 =");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("펜 속도 ~");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("엑스트라 펜 속도");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("엑스트라 펜 속도 =");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("엑스트라 펜 속도 ~");
PROGMEM Language_Str MSG_TEMPERATURE = _UxGT("온도");
PROGMEM Language_Str MSG_MOTION = _UxGT("동작");
PROGMEM Language_Str MSG_STORE_EEPROM = _UxGT("설정 저장하기");

View File

@ -99,7 +99,7 @@ namespace Language_nl {
PROGMEM Language_Str MSG_NOZZLE_N = _UxGT("Nozzle ~");
PROGMEM Language_Str MSG_BED = _UxGT("Bed");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Fan snelheid");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Fan snelheid =");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Fan snelheid ~");
PROGMEM Language_Str MSG_FLOW = _UxGT("Flow");
PROGMEM Language_Str MSG_FLOW_N = _UxGT("Flow ~");
PROGMEM Language_Str MSG_CONTROL = _UxGT("Control");

View File

@ -240,9 +240,9 @@ namespace Language_pl {
PROGMEM Language_Str MSG_BED = _UxGT("Stół");
PROGMEM Language_Str MSG_CHAMBER = _UxGT("Obudowa");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Obroty wiatraka");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Obroty wiatraka =");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Obroty wiatraka ~");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("Obroty dodatkowego wiatraka");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("Obroty dodatkowego wiatraka =");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("Obroty dodatkowego wiatraka ~");
PROGMEM Language_Str MSG_FLOW = _UxGT("Przepływ");
PROGMEM Language_Str MSG_FLOW_N = _UxGT("Przepływ ~");
PROGMEM Language_Str MSG_CONTROL = _UxGT("Ustawienia");

View File

@ -89,7 +89,7 @@ namespace Language_pt {
PROGMEM Language_Str MSG_NOZZLE_N = " " LCD_STR_THERMOMETER _UxGT(" Bico ~");
PROGMEM Language_Str MSG_BED = " " LCD_STR_THERMOMETER _UxGT(" Base");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Vel. ventoinha");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Vel. ventoinha =");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Vel. ventoinha ~");
PROGMEM Language_Str MSG_FLOW = _UxGT("Fluxo");
PROGMEM Language_Str MSG_FLOW_N = _UxGT("Fluxo ~");
PROGMEM Language_Str MSG_CONTROL = _UxGT("Controlo");

View File

@ -207,9 +207,9 @@ namespace Language_pt_br {
PROGMEM Language_Str MSG_NOZZLE_N = _UxGT("Bocal ~");
PROGMEM Language_Str MSG_BED = _UxGT("Mesa");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Vel. Ventoinha");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Vel. Ventoinha =");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Vel. Ventoinha ~");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("+Vel. Ventoinha");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("+Vel. Ventoinha =");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("+Vel. Ventoinha ~");
PROGMEM Language_Str MSG_FLOW = _UxGT("Vazão");
PROGMEM Language_Str MSG_FLOW_N = _UxGT("Vazão ~");
PROGMEM Language_Str MSG_CONTROL = _UxGT("Controle");

View File

@ -243,9 +243,9 @@ namespace Language_sk {
PROGMEM Language_Str MSG_BED = _UxGT("Podložka");
PROGMEM Language_Str MSG_CHAMBER = _UxGT("Komora");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Rýchlosť vent.");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Rýchlosť vent. =");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Rýchlosť vent. ~");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("Rýchlosť ex. vent.");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("Rýchlosť ex. vent. =");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("Rýchlosť ex. vent. ~");
PROGMEM Language_Str MSG_FLOW = _UxGT("Prietok");
PROGMEM Language_Str MSG_FLOW_N = _UxGT("Prietok ~");
PROGMEM Language_Str MSG_CONTROL = _UxGT("Ovládanie");

View File

@ -210,9 +210,9 @@ namespace Language_tr {
PROGMEM Language_Str MSG_NOZZLE_N = _UxGT("Nozul ~");
PROGMEM Language_Str MSG_BED = _UxGT("Tabla");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Fan Hızı");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Fan Hızı =");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Fan Hızı ~");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("Ekstra Fan Hızı");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("Ekstra Fan Hızı =");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("Ekstra Fan Hızı ~");
PROGMEM Language_Str MSG_FLOW = _UxGT("Akış");
PROGMEM Language_Str MSG_FLOW_N = _UxGT("Akış ~");
PROGMEM Language_Str MSG_CONTROL = _UxGT("Kontrol");

View File

@ -92,7 +92,7 @@ namespace Language_uk {
PROGMEM Language_Str MSG_NOZZLE_N = _UxGT("Сопло ~");
PROGMEM Language_Str MSG_BED = _UxGT("Стіл");
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Охолодж.");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Охолодж. =");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Охолодж. ~");
PROGMEM Language_Str MSG_FLOW = _UxGT("Потік");
PROGMEM Language_Str MSG_FLOW_N = _UxGT("Потік ~");
PROGMEM Language_Str MSG_CONTROL = _UxGT("Налаштування");

View File

@ -210,9 +210,9 @@ namespace Language_vi {
PROGMEM Language_Str MSG_NOZZLE_N = _UxGT("Đầu phun ~"); // Nozzle
PROGMEM Language_Str MSG_BED = _UxGT("Bàn"); // bed
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("Tốc độ quạt"); // fan speed
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Tốc độ quạt ="); // fan speed
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("Tốc độ quạt ~"); // fan speed
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("Tốc độ quạt phụ"); // Extra fan speed
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("Tốc độ quạt phụ ="); // Extra fan speed
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("Tốc độ quạt phụ ~"); // Extra fan speed
PROGMEM Language_Str MSG_FLOW = _UxGT("Lưu Lượng");
PROGMEM Language_Str MSG_FLOW_N = _UxGT("Lưu Lượng ~");
PROGMEM Language_Str MSG_CONTROL = _UxGT("Điều khiển"); // Control

View File

@ -187,9 +187,9 @@ namespace Language_zh_CN {
PROGMEM Language_Str MSG_NOZZLE_N = " " LCD_STR_THERMOMETER _UxGT(" 喷嘴 ~"); //"Nozzle" 噴嘴
PROGMEM Language_Str MSG_BED = " " LCD_STR_THERMOMETER _UxGT(" 热床"); //"Bed"
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("风扇速率"); //"Fan speed"
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("风扇速率 ="); //"Fan speed"
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("风扇速率 ~"); //"Fan speed"
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("额外风扇速率"); // "Extra fan speed"
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("额外风扇速率 ="); // "Extra fan speed"
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("额外风扇速率 ~"); // "Extra fan speed"
PROGMEM Language_Str MSG_FLOW = _UxGT("挤出速率"); //"Flow"
PROGMEM Language_Str MSG_FLOW_N = _UxGT("挤出速率 ~"); //"Flow"
PROGMEM Language_Str MSG_CONTROL = _UxGT("控制"); //"Control"

View File

@ -187,9 +187,9 @@ namespace Language_zh_TW {
PROGMEM Language_Str MSG_NOZZLE_N = " " LCD_STR_THERMOMETER _UxGT(" 噴嘴 ~");
PROGMEM Language_Str MSG_BED = " " LCD_STR_THERMOMETER _UxGT(" 熱床"); //"Bed"
PROGMEM Language_Str MSG_FAN_SPEED = _UxGT("風扇速率"); //"Fan speed"
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("風扇速率 =");
PROGMEM Language_Str MSG_FAN_SPEED_N = _UxGT("風扇速率 ~");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED = _UxGT("額外風扇速率"); // "Extra fan speed"
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("額外風扇速率 =");
PROGMEM Language_Str MSG_EXTRA_FAN_SPEED_N = _UxGT("額外風扇速率 ~");
PROGMEM Language_Str MSG_FLOW = _UxGT("擠出速率");
PROGMEM Language_Str MSG_FLOW_N = _UxGT("擠出速率 ~"); //"Flow"
PROGMEM Language_Str MSG_CONTROL = _UxGT("控制"); //"Control"

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
//