Skip to content

Commit 66814d5

Browse files
committed
Configure extruder fan speed
1 parent af05b6e commit 66814d5

File tree

3 files changed

+15
-2
lines changed

3 files changed

+15
-2
lines changed

Marlin/src/lcd/menu/menu_configuration.cpp

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -354,6 +354,9 @@ void menu_advanced_settings();
354354

355355
#include "../../feature/controllerfan.h"
356356

357+
namespace LanguageNarrow_en {
358+
static LSTR MSG_E_FAN = _UxGT("Extruder fan speed");
359+
}
357360
void menu_controller_fan() {
358361
START_MENU();
359362
BACK_ITEM(MSG_CONFIGURATION);
@@ -363,6 +366,7 @@ void menu_advanced_settings();
363366
EDIT_ITEM_FAST(percent, MSG_CONTROLLER_FAN_SPEED, &controllerFan.settings.active_speed, CONTROLLERFAN_SPEED_MIN, 255);
364367
EDIT_ITEM(uint16_4, MSG_CONTROLLER_FAN_DURATION, &controllerFan.settings.duration, 0, 4800);
365368
}
369+
EDIT_ITEM_FAST(percent, MSG_E_FAN, &Temperature::extruder_fan_speed, 0, 255);
366370
END_MENU();
367371
}
368372

Marlin/src/module/temperature.cpp

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -398,6 +398,10 @@ PGMSTR(str_t_heating_failed, STR_T_HEATING_FAILED);
398398
uint8_t Temperature::autofan_speed[HOTENDS] = ARRAY_N_1(HOTENDS, FAN_OFF_PWM);
399399
#endif
400400

401+
#if HAS_E_AUTO_FAN
402+
uint8_t Temperature::extruder_fan_speed = EXTRUDER_AUTO_FAN_SPEED;
403+
#endif
404+
401405
#if ENABLED(AUTO_POWER_CHAMBER_FAN)
402406
uint8_t Temperature::chamberfan_speed = FAN_OFF_PWM;
403407
#endif
@@ -1439,7 +1443,7 @@ int16_t Temperature::getHeaterPower(const heater_id_t heater_id) {
14391443
#endif
14401444

14411445
#define _UPDATE_AUTO_FAN(P,D,A) do{ \
1442-
if (PWM_PIN(P##_AUTO_FAN_PIN) && A < 255) \
1446+
if (PWM_PIN(P##_AUTO_FAN_PIN)) \
14431447
hal.set_pwm_duty(pin_t(P##_AUTO_FAN_PIN), D ? A : 0); \
14441448
else \
14451449
WRITE(P##_AUTO_FAN_PIN, D); \
@@ -1471,7 +1475,7 @@ int16_t Temperature::getHeaterPower(const heater_id_t heater_id) {
14711475
#if ALL(HAS_FANCHECK, HAS_PWMFANCHECK)
14721476
#define _AUTOFAN_SPEED() fan_check.is_measuring() ? 255 : EXTRUDER_AUTO_FAN_SPEED
14731477
#else
1474-
#define _AUTOFAN_SPEED() EXTRUDER_AUTO_FAN_SPEED
1478+
#define _AUTOFAN_SPEED() extruder_fan_speed
14751479
#endif
14761480
#define _AUTOFAN_CASE(N) case N: _UPDATE_AUTO_FAN(E##N, fan_on, _AUTOFAN_SPEED()); break;
14771481
#define _AUTOFAN_NOT(N)

Marlin/src/module/temperature.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -634,6 +634,11 @@ class Temperature {
634634
#if ANY(AUTO_POWER_E_FANS, HAS_FANCHECK)
635635
static uint8_t autofan_speed[HOTENDS];
636636
#endif
637+
638+
#if HAS_E_AUTO_FAN
639+
static uint8_t extruder_fan_speed;
640+
#endif
641+
637642
#if ENABLED(AUTO_POWER_CHAMBER_FAN)
638643
static uint8_t chamberfan_speed;
639644
#endif

0 commit comments

Comments
 (0)