Improve Malyan M200 integration (#15462)
This commit is contained in:
parent
a1ad01e4ab
commit
fc6a0937b8
|
@ -117,17 +117,27 @@ void write_to_lcd(const char * const message) {
|
||||||
* the command portion begins after the :
|
* the command portion begins after the :
|
||||||
*/
|
*/
|
||||||
void process_lcd_c_command(const char* command) {
|
void process_lcd_c_command(const char* command) {
|
||||||
|
const int target_val = command[1] ? atoi(command + 1) : -1;
|
||||||
|
if (target_val < 0) {
|
||||||
|
DEBUG_ECHOLNPAIR("UNKNOWN C COMMAND ", command);
|
||||||
|
return;
|
||||||
|
}
|
||||||
switch (command[0]) {
|
switch (command[0]) {
|
||||||
case 'C': // Cope with both V1 early rev and later LCDs.
|
case 'C': // Cope with both V1 early rev and later LCDs.
|
||||||
case 'S':
|
case 'S':
|
||||||
feedrate_percentage = atoi(command + 1) * 10;
|
feedrate_percentage = target_val * 10;
|
||||||
LIMIT(feedrate_percentage, 10, 999);
|
LIMIT(feedrate_percentage, 10, 999);
|
||||||
break;
|
break;
|
||||||
|
|
||||||
case 'T': ExtUI::setTargetTemp_celsius(atoi(command + 1), ExtUI::extruder_t::E0); break;
|
case 'T':
|
||||||
|
// Sometimes the LCD will send commands to turn off both extruder and bed, though
|
||||||
|
// this should not happen since the printing screen is up. Better safe than sorry.
|
||||||
|
if (!print_job_timer.isRunning() || target_val > 0)
|
||||||
|
ExtUI::setTargetTemp_celsius(target_val, ExtUI::extruder_t::E0);
|
||||||
|
break;
|
||||||
|
|
||||||
#if HAS_HEATED_BED
|
#if HAS_HEATED_BED
|
||||||
case 'P': ExtUI::setTargetTemp_celsius(atoi(command + 1), ExtUI::heater_t::BED); break;
|
case 'P': ExtUI::setTargetTemp_celsius(target_val, ExtUI::heater_t::BED); break;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
default: DEBUG_ECHOLNPAIR("UNKNOWN C COMMAND ", command);
|
default: DEBUG_ECHOLNPAIR("UNKNOWN C COMMAND ", command);
|
||||||
|
@ -143,6 +153,7 @@ void process_lcd_c_command(const char* command) {
|
||||||
*/
|
*/
|
||||||
void process_lcd_eb_command(const char* command) {
|
void process_lcd_eb_command(const char* command) {
|
||||||
char elapsed_buffer[10];
|
char elapsed_buffer[10];
|
||||||
|
static uint8_t iteration = 0;
|
||||||
duration_t elapsed;
|
duration_t elapsed;
|
||||||
switch (command[0]) {
|
switch (command[0]) {
|
||||||
case '0': {
|
case '0': {
|
||||||
|
@ -150,6 +161,13 @@ void process_lcd_eb_command(const char* command) {
|
||||||
sprintf_P(elapsed_buffer, PSTR("%02u%02u%02u"), uint16_t(elapsed.hour()), uint16_t(elapsed.minute()) % 60, uint16_t(elapsed.second()) % 60);
|
sprintf_P(elapsed_buffer, PSTR("%02u%02u%02u"), uint16_t(elapsed.hour()), uint16_t(elapsed.minute()) % 60, uint16_t(elapsed.second()) % 60);
|
||||||
|
|
||||||
char message_buffer[MAX_CURLY_COMMAND];
|
char message_buffer[MAX_CURLY_COMMAND];
|
||||||
|
uint8_t done_pct = print_job_timer.isRunning() ? (iteration * 10) : 100;
|
||||||
|
iteration = (iteration + 1) % 10; // Provide progress animation
|
||||||
|
#if ENABLED(SDSUPPORT)
|
||||||
|
if (ExtUI::isPrintingFromMedia() || ExtUI::isPrintingFromMediaPaused())
|
||||||
|
done_pct = card.percentDone();
|
||||||
|
#endif
|
||||||
|
|
||||||
sprintf_P(message_buffer,
|
sprintf_P(message_buffer,
|
||||||
PSTR("{T0:%03i/%03i}{T1:000/000}{TP:%03i/%03i}{TQ:%03i}{TT:%s}"),
|
PSTR("{T0:%03i/%03i}{T1:000/000}{TP:%03i/%03i}{TQ:%03i}{TT:%s}"),
|
||||||
int(thermalManager.degHotend(0)), thermalManager.degTargetHotend(0),
|
int(thermalManager.degHotend(0)), thermalManager.degTargetHotend(0),
|
||||||
|
@ -159,7 +177,7 @@ void process_lcd_eb_command(const char* command) {
|
||||||
0, 0,
|
0, 0,
|
||||||
#endif
|
#endif
|
||||||
#if ENABLED(SDSUPPORT)
|
#if ENABLED(SDSUPPORT)
|
||||||
card.percentDone(),
|
done_pct,
|
||||||
#else
|
#else
|
||||||
0,
|
0,
|
||||||
#endif
|
#endif
|
||||||
|
@ -186,7 +204,7 @@ void process_lcd_j_command(const char* command) {
|
||||||
auto move_axis = [command](const auto axis) {
|
auto move_axis = [command](const auto axis) {
|
||||||
const float dist = atof(command + 1) / 10.0;
|
const float dist = atof(command + 1) / 10.0;
|
||||||
ExtUI::setAxisPosition_mm(ExtUI::getAxisPosition_mm(axis) + dist, axis);
|
ExtUI::setAxisPosition_mm(ExtUI::getAxisPosition_mm(axis) + dist, axis);
|
||||||
}
|
};
|
||||||
|
|
||||||
switch (command[0]) {
|
switch (command[0]) {
|
||||||
case 'E': break;
|
case 'E': break;
|
||||||
|
@ -330,7 +348,6 @@ void process_lcd_s_command(const char* command) {
|
||||||
void process_lcd_command(const char* command) {
|
void process_lcd_command(const char* command) {
|
||||||
const char *current = command;
|
const char *current = command;
|
||||||
|
|
||||||
current++; // skip the leading {. The trailing one is already gone.
|
|
||||||
byte command_code = *current++;
|
byte command_code = *current++;
|
||||||
if (*current == ':') {
|
if (*current == ':') {
|
||||||
|
|
||||||
|
@ -350,6 +367,31 @@ void process_lcd_command(const char* command) {
|
||||||
DEBUG_ECHOLNPAIR("UNKNOWN COMMAND FORMAT ", command);
|
DEBUG_ECHOLNPAIR("UNKNOWN COMMAND FORMAT ", command);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// Parse LCD commands mixed with G-Code
|
||||||
|
void parse_lcd_byte(byte b) {
|
||||||
|
static bool parsing_lcd_cmd = false;
|
||||||
|
static char inbound_buffer[MAX_CURLY_COMMAND];
|
||||||
|
|
||||||
|
if (!parsing_lcd_cmd) {
|
||||||
|
if (b == '{' || b == '\n' || b == '\r') { // A line-ending or opening brace
|
||||||
|
parsing_lcd_cmd = b == '{'; // Brace opens an LCD command
|
||||||
|
if (inbound_count) { // Looks like a G-code is in the buffer
|
||||||
|
inbound_buffer[inbound_count] = '\0'; // Reset before processing
|
||||||
|
inbound_count = 0;
|
||||||
|
queue.enqueue_one_now(inbound_buffer); // Handle the G-code command
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (b == '}') { // Closing brace on an LCD command
|
||||||
|
parsing_lcd_cmd = false; // Unflag and...
|
||||||
|
inbound_buffer[inbound_count] = '\0'; // reset before processing
|
||||||
|
inbound_count = 0;
|
||||||
|
process_lcd_command(inbound_buffer); // Handle the LCD command
|
||||||
|
}
|
||||||
|
else if (inbound_count < MAX_CURLY_COMMAND - 2)
|
||||||
|
inbound_buffer[inbound_count++] = b; // Buffer only if space remains
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* UC means connected.
|
* UC means connected.
|
||||||
* UD means disconnected
|
* UD means disconnected
|
||||||
|
@ -360,8 +402,8 @@ void update_usb_status(const bool forceUpdate) {
|
||||||
// This is mildly different than stock, which
|
// This is mildly different than stock, which
|
||||||
// appears to use the usb discovery status.
|
// appears to use the usb discovery status.
|
||||||
// This is more logical.
|
// This is more logical.
|
||||||
if (last_usb_connected_status != Serial || forceUpdate) {
|
if (last_usb_connected_status != SerialUSB || forceUpdate) {
|
||||||
last_usb_connected_status = Serial;
|
last_usb_connected_status = SerialUSB;
|
||||||
write_to_lcd_P(last_usb_connected_status ? PSTR("{R:UC}\r\n") : PSTR("{R:UD}\r\n"));
|
write_to_lcd_P(last_usb_connected_status ? PSTR("{R:UC}\r\n") : PSTR("{R:UD}\r\n"));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -391,24 +433,14 @@ namespace ExtUI {
|
||||||
/**
|
/**
|
||||||
* - from printer on startup:
|
* - from printer on startup:
|
||||||
* {SYS:STARTED}{VER:29}{SYS:STARTED}{R:UD}
|
* {SYS:STARTED}{VER:29}{SYS:STARTED}{R:UD}
|
||||||
* The optimize attribute fixes a register Compile
|
|
||||||
* error for amtel.
|
|
||||||
*/
|
*/
|
||||||
static char inbound_buffer[MAX_CURLY_COMMAND];
|
|
||||||
|
|
||||||
// First report USB status.
|
// First report USB status.
|
||||||
update_usb_status(false);
|
update_usb_status(false);
|
||||||
|
|
||||||
// now drain commands...
|
// now drain commands...
|
||||||
while (LCD_SERIAL.available()) {
|
while (LCD_SERIAL.available()) {
|
||||||
const byte b = (byte)LCD_SERIAL.read() & 0x7F;
|
parse_lcd_byte((byte)LCD_SERIAL.read() & 0x7F);
|
||||||
inbound_buffer[inbound_count++] = b;
|
|
||||||
if (b == '}' || inbound_count == sizeof(inbound_buffer) - 1) {
|
|
||||||
inbound_buffer[inbound_count - 1] = '\0';
|
|
||||||
process_lcd_command(inbound_buffer);
|
|
||||||
inbound_count = 0;
|
|
||||||
inbound_buffer[0] = 0;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
#if ENABLED(SDSUPPORT)
|
#if ENABLED(SDSUPPORT)
|
||||||
|
@ -438,22 +470,23 @@ namespace ExtUI {
|
||||||
write_to_lcd_P("}");
|
write_to_lcd_P("}");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void onPrintTimerStarted() { write_to_lcd_P(PSTR("{SYS:BUILD}")); }
|
||||||
|
void onPrintTimerPaused() {}
|
||||||
|
void onPrintTimerStopped() { write_to_lcd_P(PSTR("{TQ:100}")); }
|
||||||
|
|
||||||
// Not needed for Malyan LCD
|
// Not needed for Malyan LCD
|
||||||
void onStatusChanged(const char * const msg) { UNUSED(msg); }
|
void onStatusChanged(const char * const) {}
|
||||||
void onMediaInserted() {};
|
void onMediaInserted() {};
|
||||||
void onMediaError() {};
|
void onMediaError() {};
|
||||||
void onMediaRemoved() {};
|
void onMediaRemoved() {};
|
||||||
void onPlayTone(const uint16_t frequency, const uint16_t duration) { UNUSED(frequency); UNUSED(duration); }
|
void onPlayTone(const uint16_t, const uint16_t) {}
|
||||||
void onPrintTimerStarted() {}
|
|
||||||
void onPrintTimerPaused() {}
|
|
||||||
void onPrintTimerStopped() {}
|
|
||||||
void onFilamentRunout(const extruder_t extruder) {}
|
void onFilamentRunout(const extruder_t extruder) {}
|
||||||
void onUserConfirmRequired(const char * const msg) { UNUSED(msg); }
|
void onUserConfirmRequired(const char * const) {}
|
||||||
void onFactoryReset() {}
|
void onFactoryReset() {}
|
||||||
void onStoreSettings(char *buff) { UNUSED(buff); }
|
void onStoreSettings(char*) {}
|
||||||
void onLoadSettings(const char *buff) { UNUSED(buff); }
|
void onLoadSettings(const char*) {}
|
||||||
void onConfigurationStoreWritten(bool success) { UNUSED(success); }
|
void onConfigurationStoreWritten(bool) {}
|
||||||
void onConfigurationStoreRead(bool success) { UNUSED(success); }
|
void onConfigurationStoreRead(bool) {}
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // MALYAN_LCD
|
#endif // MALYAN_LCD
|
||||||
|
|
|
@ -42,6 +42,8 @@
|
||||||
// On STM32F103:
|
// On STM32F103:
|
||||||
// PB3, PB6, PB7, and PB8 can be used with pwm, which rules out TIM2 and TIM4.
|
// PB3, PB6, PB7, and PB8 can be used with pwm, which rules out TIM2 and TIM4.
|
||||||
// On STM32F070, 16 and 17 are in use, but 1 and 3 are available.
|
// On STM32F070, 16 and 17 are in use, but 1 and 3 are available.
|
||||||
|
#undef STEP_TIMER
|
||||||
|
#undef TEMP_TIMER
|
||||||
#define STEP_TIMER 1
|
#define STEP_TIMER 1
|
||||||
#define TEMP_TIMER 3
|
#define TEMP_TIMER 3
|
||||||
|
|
||||||
|
@ -84,15 +86,7 @@
|
||||||
#define HEATER_0_PIN PB6 // HOTEND0 MOSFET
|
#define HEATER_0_PIN PB6 // HOTEND0 MOSFET
|
||||||
#define HEATER_BED_PIN PB7 // BED MOSFET
|
#define HEATER_BED_PIN PB7 // BED MOSFET
|
||||||
|
|
||||||
// FAN_PIN is commented out here because the M200 example
|
#define MALYAN_FAN1_PIN PB8 // FAN1 header on board - PRINT FAN
|
||||||
// Configuration_adv.h does NOT override E0_AUTO_FAN_PIN.
|
#define MALYAN_FAN2_PIN PB3 // FAN2 header on board - CONTROLLER FAN
|
||||||
#ifndef FAN_PIN
|
|
||||||
//#define FAN_PIN PB8 // FAN1 header on board - PRINT FAN
|
|
||||||
#endif
|
|
||||||
#define FAN1_PIN PB3 // FAN2 header on board - CONTROLLER FAN
|
|
||||||
#define FAN2_PIN -1 // FAN3 header on board - EXTRUDER0 FAN
|
|
||||||
|
|
||||||
// This board has only the controller fan and the extruder fan
|
#define FAN1_PIN MALYAN_FAN2_PIN
|
||||||
// If someone hacks to put a direct power fan on the controller, PB3 could
|
|
||||||
// be used as a separate print cooling fan.
|
|
||||||
#define ORIG_E0_AUTO_FAN_PIN PB8
|
|
||||||
|
|
|
@ -146,7 +146,7 @@
|
||||||
#define EXTRUDERS 1
|
#define EXTRUDERS 1
|
||||||
|
|
||||||
// Generally expected filament diameter (1.75, 2.85, 3.0, ...). Used for Volumetric, Filament Width Sensor, etc.
|
// Generally expected filament diameter (1.75, 2.85, 3.0, ...). Used for Volumetric, Filament Width Sensor, etc.
|
||||||
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.0
|
#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75
|
||||||
|
|
||||||
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
// For Cyclops or any "multi-extruder" that shares a single nozzle.
|
||||||
//#define SINGLENOZZLE
|
//#define SINGLENOZZLE
|
||||||
|
@ -474,9 +474,10 @@
|
||||||
// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
|
// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
|
||||||
|
|
||||||
// Ultimaker
|
// Ultimaker
|
||||||
#define DEFAULT_Kp 26.15
|
//#define DEFAULT_Kp 26.15
|
||||||
#define DEFAULT_Ki 2.74
|
//#define DEFAULT_Ki 2.74
|
||||||
#define DEFAULT_Kd 62.35
|
//#define DEFAULT_Kd 62.35
|
||||||
|
|
||||||
// MakerGear
|
// MakerGear
|
||||||
//#define DEFAULT_Kp 7.0
|
//#define DEFAULT_Kp 7.0
|
||||||
//#define DEFAULT_Ki 0.1
|
//#define DEFAULT_Ki 0.1
|
||||||
|
@ -487,6 +488,11 @@
|
||||||
//#define DEFAULT_Ki 2.25
|
//#define DEFAULT_Ki 2.25
|
||||||
//#define DEFAULT_Kd 440
|
//#define DEFAULT_Kd 440
|
||||||
|
|
||||||
|
// Malyan M200
|
||||||
|
#define DEFAULT_Kp 20.0
|
||||||
|
#define DEFAULT_Ki 2.02
|
||||||
|
#define DEFAULT_Kd 100.00
|
||||||
|
|
||||||
#endif // PIDTEMP
|
#endif // PIDTEMP
|
||||||
|
|
||||||
//===========================================================================
|
//===========================================================================
|
||||||
|
@ -506,7 +512,7 @@
|
||||||
* heater. If your configuration is significantly different than this and you don't understand
|
* heater. If your configuration is significantly different than this and you don't understand
|
||||||
* the issues involved, don't use bed PID until someone else verifies that your hardware works.
|
* the issues involved, don't use bed PID until someone else verifies that your hardware works.
|
||||||
*/
|
*/
|
||||||
//#define PIDTEMPBED
|
#define PIDTEMPBED
|
||||||
|
|
||||||
//#define BED_LIMIT_SWITCHING
|
//#define BED_LIMIT_SWITCHING
|
||||||
|
|
||||||
|
@ -524,9 +530,9 @@
|
||||||
|
|
||||||
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
|
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
|
||||||
//from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)
|
//from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)
|
||||||
#define DEFAULT_bedKp 231.09
|
//#define DEFAULT_bedKp 231.09
|
||||||
#define DEFAULT_bedKi 45.21
|
//#define DEFAULT_bedKi 45.21
|
||||||
#define DEFAULT_bedKd 295.34
|
//#define DEFAULT_bedKd 295.34
|
||||||
|
|
||||||
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
|
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
|
||||||
//from pidautotune
|
//from pidautotune
|
||||||
|
@ -534,6 +540,11 @@
|
||||||
//#define DEFAULT_bedKi 1.41
|
//#define DEFAULT_bedKi 1.41
|
||||||
//#define DEFAULT_bedKd 1675.16
|
//#define DEFAULT_bedKd 1675.16
|
||||||
|
|
||||||
|
// Malyan M200
|
||||||
|
#define DEFAULT_bedKp 14.00
|
||||||
|
#define DEFAULT_bedKi 0.9
|
||||||
|
#define DEFAULT_bedKd 120.4
|
||||||
|
|
||||||
// FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles.
|
// FIND YOUR OWN: "M303 E-1 C8 S90" to run autotune on the bed at 90 degreesC for 8 cycles.
|
||||||
#endif // PIDTEMPBED
|
#endif // PIDTEMPBED
|
||||||
|
|
||||||
|
@ -1051,8 +1062,8 @@
|
||||||
// @section machine
|
// @section machine
|
||||||
|
|
||||||
// The size of the print bed
|
// The size of the print bed
|
||||||
#define X_BED_SIZE 200
|
#define X_BED_SIZE 120
|
||||||
#define Y_BED_SIZE 200
|
#define Y_BED_SIZE 120
|
||||||
|
|
||||||
// Travel limits (mm) after homing, corresponding to endstop positions.
|
// Travel limits (mm) after homing, corresponding to endstop positions.
|
||||||
#define X_MIN_POS 0
|
#define X_MIN_POS 0
|
||||||
|
@ -1060,7 +1071,7 @@
|
||||||
#define Z_MIN_POS 0
|
#define Z_MIN_POS 0
|
||||||
#define X_MAX_POS X_BED_SIZE
|
#define X_MAX_POS X_BED_SIZE
|
||||||
#define Y_MAX_POS Y_BED_SIZE
|
#define Y_MAX_POS Y_BED_SIZE
|
||||||
#define Z_MAX_POS 200
|
#define Z_MAX_POS 120
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Software Endstops
|
* Software Endstops
|
||||||
|
@ -1278,7 +1289,7 @@
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
// Add a menu item to move between bed corners for manual bed adjustment
|
// Add a menu item to move between bed corners for manual bed adjustment
|
||||||
#define LEVEL_BED_CORNERS
|
//#define LEVEL_BED_CORNERS
|
||||||
|
|
||||||
#if ENABLED(LEVEL_BED_CORNERS)
|
#if ENABLED(LEVEL_BED_CORNERS)
|
||||||
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
|
#define LEVEL_CORNERS_INSET 30 // (mm) An inset for corner leveling
|
||||||
|
@ -1627,7 +1638,7 @@
|
||||||
*/
|
*/
|
||||||
//#define SPI_SPEED SPI_HALF_SPEED
|
//#define SPI_SPEED SPI_HALF_SPEED
|
||||||
//#define SPI_SPEED SPI_QUARTER_SPEED
|
//#define SPI_SPEED SPI_QUARTER_SPEED
|
||||||
#define SPI_SPEED SPI_EIGHTH_SPEED
|
//#define SPI_SPEED SPI_EIGHTH_SPEED
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* SD CARD: ENABLE CRC
|
* SD CARD: ENABLE CRC
|
||||||
|
|
|
@ -277,9 +277,9 @@
|
||||||
* The fan will turn on automatically whenever any stepper is enabled
|
* The fan will turn on automatically whenever any stepper is enabled
|
||||||
* and turn off after a set period after all steppers are turned off.
|
* and turn off after a set period after all steppers are turned off.
|
||||||
*/
|
*/
|
||||||
//#define USE_CONTROLLER_FAN
|
#define USE_CONTROLLER_FAN // Malyan M200: uncomment if you use FAN2 to cool the board (original)
|
||||||
#if ENABLED(USE_CONTROLLER_FAN)
|
#if ENABLED(USE_CONTROLLER_FAN)
|
||||||
//#define CONTROLLER_FAN_PIN -1 // Set a custom pin for the controller fan
|
#define CONTROLLER_FAN_PIN MALYAN_FAN2_PIN // Set a custom pin for the controller fan
|
||||||
#define CONTROLLERFAN_SECS 60 // Duration in seconds for the fan to run after all motors are disabled
|
#define CONTROLLERFAN_SECS 60 // Duration in seconds for the fan to run after all motors are disabled
|
||||||
#define CONTROLLERFAN_SPEED 255 // 255 == full speed
|
#define CONTROLLERFAN_SPEED 255 // 255 == full speed
|
||||||
//#define CONTROLLERFAN_SPEED_Z_ONLY 127 // Reduce noise on machines that keep Z enabled
|
//#define CONTROLLERFAN_SPEED_Z_ONLY 127 // Reduce noise on machines that keep Z enabled
|
||||||
|
@ -346,7 +346,9 @@
|
||||||
* Multiple extruders can be assigned to the same pin in which case
|
* Multiple extruders can be assigned to the same pin in which case
|
||||||
* the fan will turn on when any selected extruder is above the threshold.
|
* the fan will turn on when any selected extruder is above the threshold.
|
||||||
*/
|
*/
|
||||||
//#define E0_AUTO_FAN_PIN -1
|
//#define FAN_PIN MALYAN_FAN1_PIN // Malyan M200: uncomment if you use FAN1 to cool the part and FAN2 to cool the extruder
|
||||||
|
//#define E0_AUTO_FAN_PIN MALYAN_FAN2_PIN // Malyan M200: uncomment if you use FAN1 to cool the part and FAN2 to cool the extruder
|
||||||
|
#define E0_AUTO_FAN_PIN MALYAN_FAN1_PIN // Malyan M200: uncomment if you use FAN1 to cool the extruder and the part (original)
|
||||||
#define E1_AUTO_FAN_PIN -1
|
#define E1_AUTO_FAN_PIN -1
|
||||||
#define E2_AUTO_FAN_PIN -1
|
#define E2_AUTO_FAN_PIN -1
|
||||||
#define E3_AUTO_FAN_PIN -1
|
#define E3_AUTO_FAN_PIN -1
|
||||||
|
|
Loading…
Reference in a new issue