Rewritten FILAMENT_CHANGE_ENABLE feature
This commit is contained in:
parent
4a8e191cec
commit
43ff0ce35f
24 changed files with 745 additions and 250 deletions
|
@ -161,11 +161,11 @@ script:
|
||||||
- opt_set MOTHERBOARD BOARD_MINIRAMBO
|
- opt_set MOTHERBOARD BOARD_MINIRAMBO
|
||||||
- build_marlin
|
- build_marlin
|
||||||
#
|
#
|
||||||
# Test FILAMENTCHANGEENABLE and LCD_INFO_MENU
|
# Test FILAMENT_CHANGE_FEATURE and LCD_INFO_MENU
|
||||||
#
|
#
|
||||||
- restore_configs
|
- restore_configs
|
||||||
- opt_enable ULTIMAKERCONTROLLER
|
- opt_enable ULTIMAKERCONTROLLER
|
||||||
- opt_enable_adv FILAMENTCHANGEENABLE LCD_INFO_MENU
|
- opt_enable_adv FILAMENT_CHANGE_FEATURE LCD_INFO_MENU
|
||||||
- build_marlin
|
- build_marlin
|
||||||
#
|
#
|
||||||
# Enable filament sensor
|
# Enable filament sensor
|
||||||
|
|
|
@ -551,16 +551,30 @@ const unsigned int dropsegments = 5; //everything with less than this number of
|
||||||
|
|
||||||
// Add support for experimental filament exchange support M600; requires display
|
// Add support for experimental filament exchange support M600; requires display
|
||||||
#if ENABLED(ULTIPANEL)
|
#if ENABLED(ULTIPANEL)
|
||||||
//#define FILAMENTCHANGEENABLE
|
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
|
||||||
#if ENABLED(FILAMENTCHANGEENABLE)
|
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||||
#define FILAMENTCHANGE_XPOS 3
|
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||||
#define FILAMENTCHANGE_YPOS 3
|
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||||
#define FILAMENTCHANGE_ZADD 10
|
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||||
#define FILAMENTCHANGE_FIRSTRETRACT -2
|
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||||
#define FILAMENTCHANGE_FINALRETRACT -100
|
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||||
#define AUTO_FILAMENT_CHANGE //This extrude filament until you press the button on LCD
|
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||||
#define AUTO_FILAMENT_CHANGE_LENGTH 0.04 //Extrusion length on automatic extrusion loop
|
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||||
#define AUTO_FILAMENT_CHANGE_FEEDRATE 300 //Extrusion feedrate (mm/min) on automatic extrusion loop
|
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||||
|
// Longer length for bowden printers to unload filament from whole bowden tube,
|
||||||
|
// shorter lenght for printers without bowden to unload filament from extruder only,
|
||||||
|
// 0 to disable unloading for manual unloading
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||||
|
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||||
|
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||||
|
// Short or zero length for printers without bowden where loading is not used
|
||||||
|
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
|
||||||
|
// 0 to disable for manual extrusion
|
||||||
|
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||||
|
// or until outcoming filament color is not clear for filament color change
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -123,8 +123,8 @@ FORCE_INLINE void serialprintPGM(const char* str) {
|
||||||
}
|
}
|
||||||
|
|
||||||
void idle(
|
void idle(
|
||||||
#if ENABLED(FILAMENTCHANGEENABLE)
|
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||||
bool no_stepper_sleep=false // pass true to keep steppers from disabling on timeout
|
bool no_stepper_sleep = false // pass true to keep steppers from disabling on timeout
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
|
|
||||||
|
@ -346,6 +346,15 @@ float code_value_temp_diff();
|
||||||
extern int meas_delay_cm; //delay distance
|
extern int meas_delay_cm; //delay distance
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||||
|
enum FilamentChangeMenuResponse {
|
||||||
|
FILAMENT_CHANGE_RESPONSE_WAIT_FOR,
|
||||||
|
FILAMENT_CHANGE_RESPONSE_EXTRUDE_MORE,
|
||||||
|
FILAMENT_CHANGE_RESPONSE_RESUME_PRINT
|
||||||
|
};
|
||||||
|
extern FilamentChangeMenuResponse filament_change_menu_response;
|
||||||
|
#endif
|
||||||
|
|
||||||
#if ENABLED(PID_ADD_EXTRUSION_RATE)
|
#if ENABLED(PID_ADD_EXTRUSION_RATE)
|
||||||
extern int lpq_len;
|
extern int lpq_len;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -294,6 +294,7 @@ static char command_queue[BUFSIZE][MAX_CMD_SIZE];
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
const float homing_feedrate[] = HOMING_FEEDRATE;
|
const float homing_feedrate[] = HOMING_FEEDRATE;
|
||||||
|
|
||||||
bool axis_relative_modes[] = AXIS_RELATIVE_MODES;
|
bool axis_relative_modes[] = AXIS_RELATIVE_MODES;
|
||||||
int feedrate_multiplier = 100; //100->1 200->2
|
int feedrate_multiplier = 100; //100->1 200->2
|
||||||
int saved_feedrate_multiplier;
|
int saved_feedrate_multiplier;
|
||||||
|
@ -490,6 +491,10 @@ static uint8_t target_extruder;
|
||||||
static bool filament_ran_out = false;
|
static bool filament_ran_out = false;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||||
|
FilamentChangeMenuResponse filament_change_menu_response;
|
||||||
|
#endif
|
||||||
|
|
||||||
static bool send_ok[BUFSIZE];
|
static bool send_ok[BUFSIZE];
|
||||||
|
|
||||||
#if HAS_SERVOS
|
#if HAS_SERVOS
|
||||||
|
@ -1564,9 +1569,8 @@ inline void line_to_z(float zPosition) {
|
||||||
inline void line_to_destination(float mm_m) {
|
inline void line_to_destination(float mm_m) {
|
||||||
planner.buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], mm_m / 60, active_extruder);
|
planner.buffer_line(destination[X_AXIS], destination[Y_AXIS], destination[Z_AXIS], destination[E_AXIS], mm_m / 60, active_extruder);
|
||||||
}
|
}
|
||||||
inline void line_to_destination() {
|
inline void line_to_destination() { line_to_destination(feedrate); }
|
||||||
line_to_destination(feedrate);
|
|
||||||
}
|
|
||||||
/**
|
/**
|
||||||
* sync_plan_position
|
* sync_plan_position
|
||||||
* Set planner / stepper positions to the cartesian current_position.
|
* Set planner / stepper positions to the cartesian current_position.
|
||||||
|
@ -3123,7 +3127,7 @@ inline void gcode_G28() {
|
||||||
enum MeshLevelingState { MeshReport, MeshStart, MeshNext, MeshSet, MeshSetZOffset, MeshReset };
|
enum MeshLevelingState { MeshReport, MeshStart, MeshNext, MeshSet, MeshSetZOffset, MeshReset };
|
||||||
|
|
||||||
inline void _mbl_goto_xy(float x, float y) {
|
inline void _mbl_goto_xy(float x, float y) {
|
||||||
saved_feedrate = feedrate;
|
float old_feedrate = feedrate;
|
||||||
feedrate = homing_feedrate[X_AXIS];
|
feedrate = homing_feedrate[X_AXIS];
|
||||||
|
|
||||||
current_position[Z_AXIS] = MESH_HOME_SEARCH_Z
|
current_position[Z_AXIS] = MESH_HOME_SEARCH_Z
|
||||||
|
@ -3144,7 +3148,7 @@ inline void gcode_G28() {
|
||||||
line_to_current_position();
|
line_to_current_position();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
feedrate = saved_feedrate;
|
feedrate = old_feedrate;
|
||||||
stepper.synchronize();
|
stepper.synchronize();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6131,7 +6135,7 @@ inline void gcode_M503() {
|
||||||
|
|
||||||
#endif // HAS_BED_PROBE
|
#endif // HAS_BED_PROBE
|
||||||
|
|
||||||
#if ENABLED(FILAMENTCHANGEENABLE)
|
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* M600: Pause for filament change
|
* M600: Pause for filament change
|
||||||
|
@ -6153,129 +6157,160 @@ inline void gcode_M503() {
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
float lastpos[NUM_AXIS];
|
// Show initial message and wait for synchronize steppers
|
||||||
#if ENABLED(DELTA)
|
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_INIT);
|
||||||
float fr60 = feedrate / 60;
|
stepper.synchronize();
|
||||||
#endif
|
|
||||||
|
|
||||||
for (int i = 0; i < NUM_AXIS; i++)
|
float lastpos[NUM_AXIS];
|
||||||
|
|
||||||
|
// Save current position of all axes
|
||||||
|
for (uint8_t i = 0; i < NUM_AXIS; i++)
|
||||||
lastpos[i] = destination[i] = current_position[i];
|
lastpos[i] = destination[i] = current_position[i];
|
||||||
|
|
||||||
|
// Define runplan for move axes
|
||||||
#if ENABLED(DELTA)
|
#if ENABLED(DELTA)
|
||||||
#define RUNPLAN calculate_delta(destination); \
|
#define RUNPLAN(RATE) calculate_delta(destination); \
|
||||||
planner.buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], destination[E_AXIS], fr60, active_extruder);
|
planner.buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], destination[E_AXIS], RATE, active_extruder);
|
||||||
#else
|
#else
|
||||||
#define RUNPLAN line_to_destination();
|
#define RUNPLAN(RATE) line_to_destination(RATE * 60);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
//retract by E
|
KEEPALIVE_STATE(IN_HANDLER);
|
||||||
|
|
||||||
|
// Initial retract before move to filament change position
|
||||||
if (code_seen('E')) destination[E_AXIS] += code_value_axis_units(E_AXIS);
|
if (code_seen('E')) destination[E_AXIS] += code_value_axis_units(E_AXIS);
|
||||||
#ifdef FILAMENTCHANGE_FIRSTRETRACT
|
#if defined(FILAMENT_CHANGE_RETRACT_LENGTH) && FILAMENT_CHANGE_RETRACT_LENGTH > 0
|
||||||
else destination[E_AXIS] += FILAMENTCHANGE_FIRSTRETRACT;
|
else destination[E_AXIS] -= FILAMENT_CHANGE_RETRACT_LENGTH;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
RUNPLAN;
|
RUNPLAN(FILAMENT_CHANGE_RETRACT_FEEDRATE);
|
||||||
|
|
||||||
//lift Z
|
// Lift Z axis
|
||||||
if (code_seen('Z')) destination[Z_AXIS] += code_value_axis_units(Z_AXIS);
|
float z_lift = code_seen('Z') ? code_value_axis_units(Z_AXIS) :
|
||||||
#ifdef FILAMENTCHANGE_ZADD
|
#if defined(FILAMENT_CHANGE_Z_ADD) && FILAMENT_CHANGE_Z_ADD > 0
|
||||||
else destination[Z_AXIS] += FILAMENTCHANGE_ZADD;
|
FILAMENT_CHANGE_Z_ADD
|
||||||
|
#else
|
||||||
|
0
|
||||||
#endif
|
#endif
|
||||||
|
;
|
||||||
|
|
||||||
RUNPLAN;
|
if (z_lift > 0) {
|
||||||
|
destination[Z_AXIS] += z_lift;
|
||||||
|
NOMORE(destination[Z_AXIS], Z_MAX_POS);
|
||||||
|
RUNPLAN(FILAMENT_CHANGE_Z_FEEDRATE);
|
||||||
|
}
|
||||||
|
|
||||||
//move xy
|
// Move XY axes to filament exchange position
|
||||||
if (code_seen('X')) destination[X_AXIS] = code_value_axis_units(X_AXIS);
|
if (code_seen('X')) destination[X_AXIS] = code_value_axis_units(X_AXIS);
|
||||||
#ifdef FILAMENTCHANGE_XPOS
|
#ifdef FILAMENT_CHANGE_X_POS
|
||||||
else destination[X_AXIS] = FILAMENTCHANGE_XPOS;
|
else destination[X_AXIS] = FILAMENT_CHANGE_X_POS;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (code_seen('Y')) destination[Y_AXIS] = code_value_axis_units(Y_AXIS);
|
if (code_seen('Y')) destination[Y_AXIS] = code_value_axis_units(Y_AXIS);
|
||||||
#ifdef FILAMENTCHANGE_YPOS
|
#ifdef FILAMENT_CHANGE_Y_POS
|
||||||
else destination[Y_AXIS] = FILAMENTCHANGE_YPOS;
|
else destination[Y_AXIS] = FILAMENT_CHANGE_Y_POS;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
RUNPLAN;
|
RUNPLAN(FILAMENT_CHANGE_XY_FEEDRATE);
|
||||||
|
|
||||||
if (code_seen('L')) destination[E_AXIS] += code_value_axis_units(E_AXIS);
|
|
||||||
#ifdef FILAMENTCHANGE_FINALRETRACT
|
|
||||||
else destination[E_AXIS] += FILAMENTCHANGE_FINALRETRACT;
|
|
||||||
#endif
|
|
||||||
|
|
||||||
RUNPLAN;
|
|
||||||
|
|
||||||
//finish moves
|
|
||||||
stepper.synchronize();
|
stepper.synchronize();
|
||||||
//disable extruder steppers so filament can be removed
|
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_UNLOAD);
|
||||||
|
|
||||||
|
// Unload filament
|
||||||
|
if (code_seen('L')) destination[E_AXIS] += code_value_axis_units(E_AXIS);
|
||||||
|
#if defined(FILAMENT_CHANGE_UNLOAD_LENGTH) && FILAMENT_CHANGE_UNLOAD_LENGTH > 0
|
||||||
|
else destination[E_AXIS] -= FILAMENT_CHANGE_UNLOAD_LENGTH;
|
||||||
|
#endif
|
||||||
|
|
||||||
|
RUNPLAN(FILAMENT_CHANGE_UNLOAD_FEEDRATE);
|
||||||
|
|
||||||
|
// Synchronize steppers and then disable extruders steppers for manual filament changing
|
||||||
|
stepper.synchronize();
|
||||||
disable_e0();
|
disable_e0();
|
||||||
disable_e1();
|
disable_e1();
|
||||||
disable_e2();
|
disable_e2();
|
||||||
disable_e3();
|
disable_e3();
|
||||||
delay(100);
|
delay(100);
|
||||||
LCD_ALERTMESSAGEPGM(MSG_FILAMENTCHANGE);
|
|
||||||
#if DISABLED(AUTO_FILAMENT_CHANGE)
|
|
||||||
millis_t next_tick = 0;
|
millis_t next_tick = 0;
|
||||||
#endif
|
|
||||||
KEEPALIVE_STATE(PAUSED_FOR_USER);
|
// Wait for filament insert by user and press button
|
||||||
|
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_INSERT);
|
||||||
|
|
||||||
while (!lcd_clicked()) {
|
while (!lcd_clicked()) {
|
||||||
#if DISABLED(AUTO_FILAMENT_CHANGE)
|
#if HAS_BUZZER
|
||||||
millis_t ms = millis();
|
millis_t ms = millis();
|
||||||
if (ELAPSED(ms, next_tick)) {
|
if (ms >= next_tick) {
|
||||||
lcd_quick_feedback();
|
buzzer.tone(300, 2000);
|
||||||
next_tick = ms + 2500UL; // feedback every 2.5s while waiting
|
next_tick = ms + 2500; // Beep every 2.5s while waiting
|
||||||
}
|
}
|
||||||
|
#endif
|
||||||
idle(true);
|
idle(true);
|
||||||
#else
|
}
|
||||||
current_position[E_AXIS] += AUTO_FILAMENT_CHANGE_LENGTH;
|
delay(100);
|
||||||
destination[E_AXIS] = current_position[E_AXIS];
|
while (lcd_clicked()) idle(true);
|
||||||
line_to_destination(AUTO_FILAMENT_CHANGE_FEEDRATE);
|
delay(100);
|
||||||
stepper.synchronize();
|
|
||||||
#endif
|
|
||||||
} // while(!lcd_clicked)
|
|
||||||
KEEPALIVE_STATE(IN_HANDLER);
|
|
||||||
lcd_quick_feedback(); // click sound feedback
|
|
||||||
|
|
||||||
#if ENABLED(AUTO_FILAMENT_CHANGE)
|
// Show load message
|
||||||
current_position[E_AXIS] = 0;
|
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_LOAD);
|
||||||
stepper.synchronize();
|
|
||||||
#endif
|
|
||||||
|
|
||||||
//return to normal
|
// Load filament
|
||||||
if (code_seen('L')) destination[E_AXIS] -= code_value_axis_units(E_AXIS);
|
if (code_seen('L')) destination[E_AXIS] -= code_value_axis_units(E_AXIS);
|
||||||
#ifdef FILAMENTCHANGE_FINALRETRACT
|
#if defined(FILAMENT_CHANGE_LOAD_LENGTH) && FILAMENT_CHANGE_LOAD_LENGTH > 0
|
||||||
else destination[E_AXIS] -= FILAMENTCHANGE_FINALRETRACT;
|
else destination[E_AXIS] += FILAMENT_CHANGE_LOAD_LENGTH;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
current_position[E_AXIS] = destination[E_AXIS]; //the long retract of L is compensated by manual filament feeding
|
RUNPLAN(FILAMENT_CHANGE_LOAD_FEEDRATE);
|
||||||
sync_plan_position_e();
|
stepper.synchronize();
|
||||||
|
|
||||||
RUNPLAN; //should do nothing
|
#if defined(FILAMENT_CHANGE_EXTRUDE_LENGTH) && FILAMENT_CHANGE_EXTRUDE_LENGTH > 0
|
||||||
|
do {
|
||||||
|
// Extrude filament to get into hotend
|
||||||
|
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_EXTRUDE);
|
||||||
|
destination[E_AXIS] += FILAMENT_CHANGE_EXTRUDE_LENGTH;
|
||||||
|
RUNPLAN(FILAMENT_CHANGE_EXTRUDE_FEEDRATE);
|
||||||
|
stepper.synchronize();
|
||||||
|
// Ask user if more filament should be extruded
|
||||||
|
KEEPALIVE_STATE(PAUSED_FOR_USER);
|
||||||
|
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_OPTION);
|
||||||
|
while (filament_change_menu_response == FILAMENT_CHANGE_RESPONSE_WAIT_FOR) idle(true);
|
||||||
|
KEEPALIVE_STATE(IN_HANDLER);
|
||||||
|
} while (filament_change_menu_response != FILAMENT_CHANGE_RESPONSE_RESUME_PRINT);
|
||||||
|
#endif
|
||||||
|
|
||||||
lcd_reset_alert_level();
|
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_RESUME);
|
||||||
|
|
||||||
|
KEEPALIVE_STATE(IN_HANDLER);
|
||||||
|
|
||||||
|
// Set extruder to saved position
|
||||||
|
current_position[E_AXIS] = lastpos[E_AXIS];
|
||||||
|
destination[E_AXIS] = lastpos[E_AXIS];
|
||||||
|
planner.set_e_position_mm(current_position[E_AXIS]);
|
||||||
|
|
||||||
#if ENABLED(DELTA)
|
#if ENABLED(DELTA)
|
||||||
// Move XYZ to starting position, then E
|
// Move XYZ to starting position, then E
|
||||||
calculate_delta(lastpos);
|
calculate_delta(lastpos);
|
||||||
planner.buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], destination[E_AXIS], fr60, active_extruder);
|
planner.buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], destination[E_AXIS], FILAMENT_CHANGE_XY_FEEDRATE, active_extruder);
|
||||||
planner.buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], lastpos[E_AXIS], fr60, active_extruder);
|
planner.buffer_line(delta[X_AXIS], delta[Y_AXIS], delta[Z_AXIS], lastpos[E_AXIS], FILAMENT_CHANGE_XY_FEEDRATE, active_extruder);
|
||||||
#else
|
#else
|
||||||
// Move XY to starting position, then Z, then E
|
// Move XY to starting position, then Z, then E
|
||||||
destination[X_AXIS] = lastpos[X_AXIS];
|
destination[X_AXIS] = lastpos[X_AXIS];
|
||||||
destination[Y_AXIS] = lastpos[Y_AXIS];
|
destination[Y_AXIS] = lastpos[Y_AXIS];
|
||||||
line_to_destination();
|
RUNPLAN(FILAMENT_CHANGE_XY_FEEDRATE);
|
||||||
destination[Z_AXIS] = lastpos[Z_AXIS];
|
destination[Z_AXIS] = lastpos[Z_AXIS];
|
||||||
line_to_destination();
|
RUNPLAN(FILAMENT_CHANGE_Z_FEEDRATE);
|
||||||
destination[E_AXIS] = lastpos[E_AXIS];
|
|
||||||
line_to_destination();
|
|
||||||
#endif
|
#endif
|
||||||
|
stepper.synchronize();
|
||||||
|
|
||||||
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
|
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
|
||||||
filament_ran_out = false;
|
filament_ran_out = false;
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
// Show status screen
|
||||||
|
lcd_filament_change_show_message(FILAMENT_CHANGE_MESSAGE_STATUS);
|
||||||
}
|
}
|
||||||
|
|
||||||
#endif // FILAMENTCHANGEENABLE
|
#endif // FILAMENT_CHANGE_FEATURE
|
||||||
|
|
||||||
#if ENABLED(DUAL_X_CARRIAGE)
|
#if ENABLED(DUAL_X_CARRIAGE)
|
||||||
|
|
||||||
|
@ -6464,11 +6499,11 @@ inline void gcode_T(uint8_t tmp_extruder) {
|
||||||
|
|
||||||
#if HOTENDS > 1
|
#if HOTENDS > 1
|
||||||
|
|
||||||
float stored_feedrate = feedrate;
|
float old_feedrate = feedrate;
|
||||||
|
|
||||||
if (code_seen('F')) {
|
if (code_seen('F')) {
|
||||||
float next_feedrate = code_value_axis_units(X_AXIS);
|
float next_feedrate = code_value_axis_units(X_AXIS);
|
||||||
if (next_feedrate > 0.0) stored_feedrate = feedrate = next_feedrate;
|
if (next_feedrate > 0.0) old_feedrate = feedrate = next_feedrate;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
feedrate = XY_PROBE_FEEDRATE;
|
feedrate = XY_PROBE_FEEDRATE;
|
||||||
|
@ -6624,7 +6659,7 @@ inline void gcode_T(uint8_t tmp_extruder) {
|
||||||
enable_solenoid_on_active_extruder();
|
enable_solenoid_on_active_extruder();
|
||||||
#endif // EXT_SOLENOID
|
#endif // EXT_SOLENOID
|
||||||
|
|
||||||
feedrate = stored_feedrate;
|
feedrate = old_feedrate;
|
||||||
|
|
||||||
#else // !HOTENDS > 1
|
#else // !HOTENDS > 1
|
||||||
|
|
||||||
|
@ -7232,11 +7267,11 @@ void process_next_command() {
|
||||||
break;
|
break;
|
||||||
#endif // HAS_BED_PROBE
|
#endif // HAS_BED_PROBE
|
||||||
|
|
||||||
#if ENABLED(FILAMENTCHANGEENABLE)
|
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||||
case 600: //Pause for filament change X[pos] Y[pos] Z[relative lift] E[initial retract] L[later retract distance for removal]
|
case 600: //Pause for filament change X[pos] Y[pos] Z[relative lift] E[initial retract] L[later retract distance for removal]
|
||||||
gcode_M600();
|
gcode_M600();
|
||||||
break;
|
break;
|
||||||
#endif // FILAMENTCHANGEENABLE
|
#endif // FILAMENT_CHANGE_FEATURE
|
||||||
|
|
||||||
#if ENABLED(DUAL_X_CARRIAGE)
|
#if ENABLED(DUAL_X_CARRIAGE)
|
||||||
case 605:
|
case 605:
|
||||||
|
@ -7993,14 +8028,14 @@ void disable_all_steppers() {
|
||||||
* Standard idle routine keeps the machine alive
|
* Standard idle routine keeps the machine alive
|
||||||
*/
|
*/
|
||||||
void idle(
|
void idle(
|
||||||
#if ENABLED(FILAMENTCHANGEENABLE)
|
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||||
bool no_stepper_sleep/*=false*/
|
bool no_stepper_sleep/*=false*/
|
||||||
#endif
|
#endif
|
||||||
) {
|
) {
|
||||||
lcd_update();
|
lcd_update();
|
||||||
host_keepalive();
|
host_keepalive();
|
||||||
manage_inactivity(
|
manage_inactivity(
|
||||||
#if ENABLED(FILAMENTCHANGEENABLE)
|
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||||
no_stepper_sleep
|
no_stepper_sleep
|
||||||
#endif
|
#endif
|
||||||
);
|
);
|
||||||
|
|
|
@ -124,8 +124,8 @@
|
||||||
/**
|
/**
|
||||||
* Filament Change with Extruder Runout Prevention
|
* Filament Change with Extruder Runout Prevention
|
||||||
*/
|
*/
|
||||||
#if ENABLED(FILAMENTCHANGEENABLE) && ENABLED(EXTRUDER_RUNOUT_PREVENT)
|
#if ENABLED(FILAMENT_CHANGE_FEATURE) && ENABLED(EXTRUDER_RUNOUT_PREVENT)
|
||||||
#error "EXTRUDER_RUNOUT_PREVENT currently incompatible with FILAMENTCHANGE."
|
#error "EXTRUDER_RUNOUT_PREVENT is incompatible with FILAMENT_CHANGE_FEATURE."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -623,6 +623,8 @@
|
||||||
#error "PROBE_SERVO_DEACTIVATION_DELAY is deprecated. Use DEACTIVATE_SERVOS_AFTER_MOVE instead."
|
#error "PROBE_SERVO_DEACTIVATION_DELAY is deprecated. Use DEACTIVATE_SERVOS_AFTER_MOVE instead."
|
||||||
#elif defined(SERVO_DEACTIVATION_DELAY)
|
#elif defined(SERVO_DEACTIVATION_DELAY)
|
||||||
#error "SERVO_DEACTIVATION_DELAY is deprecated. Use SERVO_DELAY instead."
|
#error "SERVO_DEACTIVATION_DELAY is deprecated. Use SERVO_DELAY instead."
|
||||||
|
#elif ENABLED(FILAMENTCHANGEENABLE)
|
||||||
|
#error "FILAMENTCHANGEENABLE is now FILAMENT_CHANGE_FEATURE. Please update your configuration."
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#endif //SANITYCHECK_H
|
#endif //SANITYCHECK_H
|
||||||
|
|
|
@ -551,16 +551,30 @@ const unsigned int dropsegments = 5; //everything with less than this number of
|
||||||
|
|
||||||
// Add support for experimental filament exchange support M600; requires display
|
// Add support for experimental filament exchange support M600; requires display
|
||||||
#if ENABLED(ULTIPANEL)
|
#if ENABLED(ULTIPANEL)
|
||||||
//#define FILAMENTCHANGEENABLE
|
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
|
||||||
#if ENABLED(FILAMENTCHANGEENABLE)
|
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||||
#define FILAMENTCHANGE_XPOS 3
|
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||||
#define FILAMENTCHANGE_YPOS 3
|
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||||
#define FILAMENTCHANGE_ZADD 10
|
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||||
#define FILAMENTCHANGE_FIRSTRETRACT -2
|
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||||
#define FILAMENTCHANGE_FINALRETRACT -100
|
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||||
#define AUTO_FILAMENT_CHANGE //This extrude filament until you press the button on LCD
|
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||||
#define AUTO_FILAMENT_CHANGE_LENGTH 0.04 //Extrusion length on automatic extrusion loop
|
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||||
#define AUTO_FILAMENT_CHANGE_FEEDRATE 300 //Extrusion feedrate (mm/min) on automatic extrusion loop
|
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||||
|
// Longer length for bowden printers to unload filament from whole bowden tube,
|
||||||
|
// shorter lenght for printers without bowden to unload filament from extruder only,
|
||||||
|
// 0 to disable unloading for manual unloading
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||||
|
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||||
|
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||||
|
// Short or zero length for printers without bowden where loading is not used
|
||||||
|
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
|
||||||
|
// 0 to disable for manual extrusion
|
||||||
|
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||||
|
// or until outcoming filament color is not clear for filament color change
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -551,16 +551,30 @@ const unsigned int dropsegments = 5; //everything with less than this number of
|
||||||
|
|
||||||
// Add support for experimental filament exchange support M600; requires display
|
// Add support for experimental filament exchange support M600; requires display
|
||||||
#if ENABLED(ULTIPANEL)
|
#if ENABLED(ULTIPANEL)
|
||||||
//#define FILAMENTCHANGEENABLE
|
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
|
||||||
#if ENABLED(FILAMENTCHANGEENABLE)
|
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||||
#define FILAMENTCHANGE_XPOS 3
|
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||||
#define FILAMENTCHANGE_YPOS 3
|
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||||
#define FILAMENTCHANGE_ZADD 10
|
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||||
#define FILAMENTCHANGE_FIRSTRETRACT -2
|
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||||
#define FILAMENTCHANGE_FINALRETRACT -100
|
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||||
#define AUTO_FILAMENT_CHANGE //This extrude filament until you press the button on LCD
|
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||||
#define AUTO_FILAMENT_CHANGE_LENGTH 0.04 //Extrusion length on automatic extrusion loop
|
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||||
#define AUTO_FILAMENT_CHANGE_FEEDRATE 300 //Extrusion feedrate (mm/min) on automatic extrusion loop
|
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||||
|
// Longer length for bowden printers to unload filament from whole bowden tube,
|
||||||
|
// shorter lenght for printers without bowden to unload filament from extruder only,
|
||||||
|
// 0 to disable unloading for manual unloading
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||||
|
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||||
|
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||||
|
// Short or zero length for printers without bowden where loading is not used
|
||||||
|
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
|
||||||
|
// 0 to disable for manual extrusion
|
||||||
|
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||||
|
// or until outcoming filament color is not clear for filament color change
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -551,16 +551,30 @@ const unsigned int dropsegments = 5; //everything with less than this number of
|
||||||
|
|
||||||
// Add support for experimental filament exchange support M600; requires display
|
// Add support for experimental filament exchange support M600; requires display
|
||||||
#if ENABLED(ULTIPANEL)
|
#if ENABLED(ULTIPANEL)
|
||||||
//#define FILAMENTCHANGEENABLE
|
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
|
||||||
#if ENABLED(FILAMENTCHANGEENABLE)
|
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||||
#define FILAMENTCHANGE_XPOS 3
|
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||||
#define FILAMENTCHANGE_YPOS 3
|
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||||
#define FILAMENTCHANGE_ZADD 10
|
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||||
#define FILAMENTCHANGE_FIRSTRETRACT -2
|
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||||
#define FILAMENTCHANGE_FINALRETRACT -100
|
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||||
#define AUTO_FILAMENT_CHANGE //This extrude filament until you press the button on LCD
|
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||||
#define AUTO_FILAMENT_CHANGE_LENGTH 0.04 //Extrusion length on automatic extrusion loop
|
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||||
#define AUTO_FILAMENT_CHANGE_FEEDRATE 300 //Extrusion feedrate (mm/min) on automatic extrusion loop
|
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||||
|
// Longer length for bowden printers to unload filament from whole bowden tube,
|
||||||
|
// shorter lenght for printers without bowden to unload filament from extruder only,
|
||||||
|
// 0 to disable unloading for manual unloading
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||||
|
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||||
|
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||||
|
// Short or zero length for printers without bowden where loading is not used
|
||||||
|
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
|
||||||
|
// 0 to disable for manual extrusion
|
||||||
|
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||||
|
// or until outcoming filament color is not clear for filament color change
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -557,16 +557,30 @@ const unsigned int dropsegments = 2; //everything with less than this number of
|
||||||
|
|
||||||
// Add support for experimental filament exchange support M600; requires display
|
// Add support for experimental filament exchange support M600; requires display
|
||||||
#if ENABLED(ULTIPANEL)
|
#if ENABLED(ULTIPANEL)
|
||||||
//#define FILAMENTCHANGEENABLE
|
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
|
||||||
#if ENABLED(FILAMENTCHANGEENABLE)
|
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||||
#define FILAMENTCHANGE_XPOS 3
|
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||||
#define FILAMENTCHANGE_YPOS 3
|
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||||
#define FILAMENTCHANGE_ZADD 10
|
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||||
#define FILAMENTCHANGE_FIRSTRETRACT -2
|
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||||
#define FILAMENTCHANGE_FINALRETRACT -100
|
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||||
#define AUTO_FILAMENT_CHANGE //This extrude filament until you press the button on LCD
|
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||||
#define AUTO_FILAMENT_CHANGE_LENGTH 0.04 //Extrusion length on automatic extrusion loop
|
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||||
#define AUTO_FILAMENT_CHANGE_FEEDRATE 300 //Extrusion feedrate (mm/min) on automatic extrusion loop
|
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||||
|
// Longer length for bowden printers to unload filament from whole bowden tube,
|
||||||
|
// shorter lenght for printers without bowden to unload filament from extruder only,
|
||||||
|
// 0 to disable unloading for manual unloading
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||||
|
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||||
|
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||||
|
// Short or zero length for printers without bowden where loading is not used
|
||||||
|
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
|
||||||
|
// 0 to disable for manual extrusion
|
||||||
|
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||||
|
// or until outcoming filament color is not clear for filament color change
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -551,16 +551,30 @@ const unsigned int dropsegments = 5; //everything with less than this number of
|
||||||
|
|
||||||
// Add support for experimental filament exchange support M600; requires display
|
// Add support for experimental filament exchange support M600; requires display
|
||||||
#if ENABLED(ULTIPANEL)
|
#if ENABLED(ULTIPANEL)
|
||||||
//#define FILAMENTCHANGEENABLE
|
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
|
||||||
#if ENABLED(FILAMENTCHANGEENABLE)
|
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||||
#define FILAMENTCHANGE_XPOS 3
|
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||||
#define FILAMENTCHANGE_YPOS 3
|
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||||
#define FILAMENTCHANGE_ZADD 10
|
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||||
#define FILAMENTCHANGE_FIRSTRETRACT -2
|
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||||
#define FILAMENTCHANGE_FINALRETRACT -100
|
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||||
#define AUTO_FILAMENT_CHANGE //This extrude filament until you press the button on LCD
|
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||||
#define AUTO_FILAMENT_CHANGE_LENGTH 0.04 //Extrusion length on automatic extrusion loop
|
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||||
#define AUTO_FILAMENT_CHANGE_FEEDRATE 300 //Extrusion feedrate (mm/min) on automatic extrusion loop
|
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||||
|
// Longer length for bowden printers to unload filament from whole bowden tube,
|
||||||
|
// shorter lenght for printers without bowden to unload filament from extruder only,
|
||||||
|
// 0 to disable unloading for manual unloading
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||||
|
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||||
|
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||||
|
// Short or zero length for printers without bowden where loading is not used
|
||||||
|
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
|
||||||
|
// 0 to disable for manual extrusion
|
||||||
|
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||||
|
// or until outcoming filament color is not clear for filament color change
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -551,16 +551,30 @@ const unsigned int dropsegments = 5; //everything with less than this number of
|
||||||
|
|
||||||
// Add support for experimental filament exchange support M600; requires display
|
// Add support for experimental filament exchange support M600; requires display
|
||||||
#if ENABLED(ULTIPANEL)
|
#if ENABLED(ULTIPANEL)
|
||||||
//#define FILAMENTCHANGEENABLE
|
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
|
||||||
#if ENABLED(FILAMENTCHANGEENABLE)
|
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||||
#define FILAMENTCHANGE_XPOS 3
|
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||||
#define FILAMENTCHANGE_YPOS 3
|
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||||
#define FILAMENTCHANGE_ZADD 10
|
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||||
#define FILAMENTCHANGE_FIRSTRETRACT -2
|
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||||
#define FILAMENTCHANGE_FINALRETRACT -100
|
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||||
#define AUTO_FILAMENT_CHANGE //This extrude filament until you press the button on LCD
|
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||||
#define AUTO_FILAMENT_CHANGE_LENGTH 0.04 //Extrusion length on automatic extrusion loop
|
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||||
#define AUTO_FILAMENT_CHANGE_FEEDRATE 300 //Extrusion feedrate (mm/min) on automatic extrusion loop
|
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||||
|
// Longer length for bowden printers to unload filament from whole bowden tube,
|
||||||
|
// shorter lenght for printers without bowden to unload filament from extruder only,
|
||||||
|
// 0 to disable unloading for manual unloading
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||||
|
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||||
|
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||||
|
// Short or zero length for printers without bowden where loading is not used
|
||||||
|
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
|
||||||
|
// 0 to disable for manual extrusion
|
||||||
|
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||||
|
// or until outcoming filament color is not clear for filament color change
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -559,16 +559,30 @@ const unsigned int dropsegments = 5; //everything with less than this number of
|
||||||
|
|
||||||
// Add support for experimental filament exchange support M600; requires display
|
// Add support for experimental filament exchange support M600; requires display
|
||||||
#if ENABLED(ULTIPANEL)
|
#if ENABLED(ULTIPANEL)
|
||||||
#define FILAMENTCHANGEENABLE
|
#define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
|
||||||
#if ENABLED(FILAMENTCHANGEENABLE)
|
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||||
#define FILAMENTCHANGE_XPOS 3
|
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||||
#define FILAMENTCHANGE_YPOS 3
|
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||||
#define FILAMENTCHANGE_ZADD 10
|
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||||
#define FILAMENTCHANGE_FIRSTRETRACT -2
|
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||||
#define FILAMENTCHANGE_FINALRETRACT -100
|
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||||
//#define AUTO_FILAMENT_CHANGE //This extrude filament until you press the button on LCD
|
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||||
//#define AUTO_FILAMENT_CHANGE_LENGTH 0.04 //Extrusion length on automatic extrusion loop
|
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||||
//#define AUTO_FILAMENT_CHANGE_FEEDRATE 300 //Extrusion feedrate (mm/min) on automatic extrusion loop
|
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||||
|
// Longer length for bowden printers to unload filament from whole bowden tube,
|
||||||
|
// shorter lenght for printers without bowden to unload filament from extruder only,
|
||||||
|
// 0 to disable unloading for manual unloading
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||||
|
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||||
|
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||||
|
// Short or zero length for printers without bowden where loading is not used
|
||||||
|
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
|
||||||
|
// 0 to disable for manual extrusion
|
||||||
|
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||||
|
// or until outcoming filament color is not clear for filament color change
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -551,16 +551,30 @@ const unsigned int dropsegments = 5; //everything with less than this number of
|
||||||
|
|
||||||
// Add support for experimental filament exchange support M600; requires display
|
// Add support for experimental filament exchange support M600; requires display
|
||||||
#if ENABLED(ULTIPANEL)
|
#if ENABLED(ULTIPANEL)
|
||||||
//#define FILAMENTCHANGEENABLE
|
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
|
||||||
#if ENABLED(FILAMENTCHANGEENABLE)
|
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||||
#define FILAMENTCHANGE_XPOS 3
|
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||||
#define FILAMENTCHANGE_YPOS 3
|
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||||
#define FILAMENTCHANGE_ZADD 10
|
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||||
#define FILAMENTCHANGE_FIRSTRETRACT -2
|
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||||
#define FILAMENTCHANGE_FINALRETRACT -100
|
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||||
#define AUTO_FILAMENT_CHANGE //This extrude filament until you press the button on LCD
|
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||||
#define AUTO_FILAMENT_CHANGE_LENGTH 0.04 //Extrusion length on automatic extrusion loop
|
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||||
#define AUTO_FILAMENT_CHANGE_FEEDRATE 300 //Extrusion feedrate (mm/min) on automatic extrusion loop
|
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||||
|
// Longer length for bowden printers to unload filament from whole bowden tube,
|
||||||
|
// shorter lenght for printers without bowden to unload filament from extruder only,
|
||||||
|
// 0 to disable unloading for manual unloading
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||||
|
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||||
|
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||||
|
// Short or zero length for printers without bowden where loading is not used
|
||||||
|
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
|
||||||
|
// 0 to disable for manual extrusion
|
||||||
|
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||||
|
// or until outcoming filament color is not clear for filament color change
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -553,16 +553,30 @@ const unsigned int dropsegments = 5; //everything with less than this number of
|
||||||
|
|
||||||
// Add support for experimental filament exchange support M600; requires display
|
// Add support for experimental filament exchange support M600; requires display
|
||||||
#if ENABLED(ULTIPANEL)
|
#if ENABLED(ULTIPANEL)
|
||||||
//#define FILAMENTCHANGEENABLE
|
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
|
||||||
#if ENABLED(FILAMENTCHANGEENABLE)
|
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||||
#define FILAMENTCHANGE_XPOS 3
|
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||||
#define FILAMENTCHANGE_YPOS 3
|
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||||
#define FILAMENTCHANGE_ZADD 10
|
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||||
#define FILAMENTCHANGE_FIRSTRETRACT -2
|
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||||
#define FILAMENTCHANGE_FINALRETRACT -100
|
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||||
#define AUTO_FILAMENT_CHANGE //This extrude filament until you press the button on LCD
|
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||||
#define AUTO_FILAMENT_CHANGE_LENGTH 0.04 //Extrusion length on automatic extrusion loop
|
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||||
#define AUTO_FILAMENT_CHANGE_FEEDRATE 300 //Extrusion feedrate (mm/min) on automatic extrusion loop
|
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||||
|
// Longer length for bowden printers to unload filament from whole bowden tube,
|
||||||
|
// shorter lenght for printers without bowden to unload filament from extruder only,
|
||||||
|
// 0 to disable unloading for manual unloading
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||||
|
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||||
|
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||||
|
// Short or zero length for printers without bowden where loading is not used
|
||||||
|
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
|
||||||
|
// 0 to disable for manual extrusion
|
||||||
|
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||||
|
// or until outcoming filament color is not clear for filament color change
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -553,16 +553,30 @@ const unsigned int dropsegments = 5; //everything with less than this number of
|
||||||
|
|
||||||
// Add support for experimental filament exchange support M600; requires display
|
// Add support for experimental filament exchange support M600; requires display
|
||||||
#if ENABLED(ULTIPANEL)
|
#if ENABLED(ULTIPANEL)
|
||||||
//#define FILAMENTCHANGEENABLE
|
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
|
||||||
#if ENABLED(FILAMENTCHANGEENABLE)
|
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||||
#define FILAMENTCHANGE_XPOS 3
|
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||||
#define FILAMENTCHANGE_YPOS 3
|
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||||
#define FILAMENTCHANGE_ZADD 10
|
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||||
#define FILAMENTCHANGE_FIRSTRETRACT -2
|
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||||
#define FILAMENTCHANGE_FINALRETRACT -100
|
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||||
#define AUTO_FILAMENT_CHANGE //This extrude filament until you press the button on LCD
|
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||||
#define AUTO_FILAMENT_CHANGE_LENGTH 0.04 //Extrusion length on automatic extrusion loop
|
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||||
#define AUTO_FILAMENT_CHANGE_FEEDRATE 300 //Extrusion feedrate (mm/min) on automatic extrusion loop
|
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||||
|
// Longer length for bowden printers to unload filament from whole bowden tube,
|
||||||
|
// shorter lenght for printers without bowden to unload filament from extruder only,
|
||||||
|
// 0 to disable unloading for manual unloading
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||||
|
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||||
|
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||||
|
// Short or zero length for printers without bowden where loading is not used
|
||||||
|
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
|
||||||
|
// 0 to disable for manual extrusion
|
||||||
|
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||||
|
// or until outcoming filament color is not clear for filament color change
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -552,16 +552,30 @@ const unsigned int dropsegments = 5; //everything with less than this number of
|
||||||
|
|
||||||
// Add support for experimental filament exchange support M600; requires display
|
// Add support for experimental filament exchange support M600; requires display
|
||||||
#if ENABLED(ULTIPANEL)
|
#if ENABLED(ULTIPANEL)
|
||||||
//#define FILAMENTCHANGEENABLE
|
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
|
||||||
#if ENABLED(FILAMENTCHANGEENABLE)
|
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||||
#define FILAMENTCHANGE_XPOS 3
|
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||||
#define FILAMENTCHANGE_YPOS 3
|
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||||
#define FILAMENTCHANGE_ZADD 10
|
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||||
#define FILAMENTCHANGE_FIRSTRETRACT -2
|
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||||
#define FILAMENTCHANGE_FINALRETRACT -100
|
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||||
#define AUTO_FILAMENT_CHANGE //This extrude filament until you press the button on LCD
|
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||||
#define AUTO_FILAMENT_CHANGE_LENGTH 0.04 //Extrusion length on automatic extrusion loop
|
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||||
#define AUTO_FILAMENT_CHANGE_FEEDRATE 300 //Extrusion feedrate (mm/min) on automatic extrusion loop
|
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||||
|
// Longer length for bowden printers to unload filament from whole bowden tube,
|
||||||
|
// shorter lenght for printers without bowden to unload filament from extruder only,
|
||||||
|
// 0 to disable unloading for manual unloading
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||||
|
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||||
|
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||||
|
// Short or zero length for printers without bowden where loading is not used
|
||||||
|
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
|
||||||
|
// 0 to disable for manual extrusion
|
||||||
|
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||||
|
// or until outcoming filament color is not clear for filament color change
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -557,16 +557,30 @@ const unsigned int dropsegments = 5; //everything with less than this number of
|
||||||
|
|
||||||
// Add support for experimental filament exchange support M600; requires display
|
// Add support for experimental filament exchange support M600; requires display
|
||||||
#if ENABLED(ULTIPANEL)
|
#if ENABLED(ULTIPANEL)
|
||||||
//#define FILAMENTCHANGEENABLE
|
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
|
||||||
#if ENABLED(FILAMENTCHANGEENABLE)
|
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||||
#define FILAMENTCHANGE_XPOS 3
|
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||||
#define FILAMENTCHANGE_YPOS 3
|
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||||
#define FILAMENTCHANGE_ZADD 10
|
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||||
#define FILAMENTCHANGE_FIRSTRETRACT -2
|
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||||
#define FILAMENTCHANGE_FINALRETRACT -100
|
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||||
#define AUTO_FILAMENT_CHANGE //This extrude filament until you press the button on LCD
|
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||||
#define AUTO_FILAMENT_CHANGE_LENGTH 0.04 //Extrusion length on automatic extrusion loop
|
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||||
#define AUTO_FILAMENT_CHANGE_FEEDRATE 300 //Extrusion feedrate (mm/min) on automatic extrusion loop
|
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||||
|
// Longer length for bowden printers to unload filament from whole bowden tube,
|
||||||
|
// shorter lenght for printers without bowden to unload filament from extruder only,
|
||||||
|
// 0 to disable unloading for manual unloading
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||||
|
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||||
|
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||||
|
// Short or zero length for printers without bowden where loading is not used
|
||||||
|
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
|
||||||
|
// 0 to disable for manual extrusion
|
||||||
|
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||||
|
// or until outcoming filament color is not clear for filament color change
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -553,16 +553,30 @@ const unsigned int dropsegments = 5; //everything with less than this number of
|
||||||
|
|
||||||
// Add support for experimental filament exchange support M600; requires display
|
// Add support for experimental filament exchange support M600; requires display
|
||||||
#if ENABLED(ULTIPANEL)
|
#if ENABLED(ULTIPANEL)
|
||||||
//#define FILAMENTCHANGEENABLE
|
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
|
||||||
#if ENABLED(FILAMENTCHANGEENABLE)
|
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||||
#define FILAMENTCHANGE_XPOS 3
|
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||||
#define FILAMENTCHANGE_YPOS 3
|
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||||
#define FILAMENTCHANGE_ZADD 10
|
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||||
#define FILAMENTCHANGE_FIRSTRETRACT -2
|
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||||
#define FILAMENTCHANGE_FINALRETRACT -100
|
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||||
#define AUTO_FILAMENT_CHANGE //This extrude filament until you press the button on LCD
|
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||||
#define AUTO_FILAMENT_CHANGE_LENGTH 0.04 //Extrusion length on automatic extrusion loop
|
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||||
#define AUTO_FILAMENT_CHANGE_FEEDRATE 300 //Extrusion feedrate (mm/min) on automatic extrusion loop
|
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||||
|
// Longer length for bowden printers to unload filament from whole bowden tube,
|
||||||
|
// shorter lenght for printers without bowden to unload filament from extruder only,
|
||||||
|
// 0 to disable unloading for manual unloading
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||||
|
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||||
|
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||||
|
// Short or zero length for printers without bowden where loading is not used
|
||||||
|
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
|
||||||
|
// 0 to disable for manual extrusion
|
||||||
|
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||||
|
// or until outcoming filament color is not clear for filament color change
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -551,16 +551,30 @@ const unsigned int dropsegments = 5; //everything with less than this number of
|
||||||
|
|
||||||
// Add support for experimental filament exchange support M600; requires display
|
// Add support for experimental filament exchange support M600; requires display
|
||||||
#if ENABLED(ULTIPANEL)
|
#if ENABLED(ULTIPANEL)
|
||||||
//#define FILAMENTCHANGEENABLE
|
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
|
||||||
#if ENABLED(FILAMENTCHANGEENABLE)
|
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||||
#define FILAMENTCHANGE_XPOS 3
|
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||||
#define FILAMENTCHANGE_YPOS 3
|
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||||
#define FILAMENTCHANGE_ZADD 10
|
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||||
#define FILAMENTCHANGE_FIRSTRETRACT -2
|
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||||
#define FILAMENTCHANGE_FINALRETRACT -100
|
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||||
#define AUTO_FILAMENT_CHANGE //This extrude filament until you press the button on LCD
|
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||||
#define AUTO_FILAMENT_CHANGE_LENGTH 0.04 //Extrusion length on automatic extrusion loop
|
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||||
#define AUTO_FILAMENT_CHANGE_FEEDRATE 300 //Extrusion feedrate (mm/min) on automatic extrusion loop
|
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||||
|
// Longer length for bowden printers to unload filament from whole bowden tube,
|
||||||
|
// shorter lenght for printers without bowden to unload filament from extruder only,
|
||||||
|
// 0 to disable unloading for manual unloading
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||||
|
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||||
|
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||||
|
// Short or zero length for printers without bowden where loading is not used
|
||||||
|
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
|
||||||
|
// 0 to disable for manual extrusion
|
||||||
|
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||||
|
// or until outcoming filament color is not clear for filament color change
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -551,16 +551,30 @@ const unsigned int dropsegments = 5; //everything with less than this number of
|
||||||
|
|
||||||
// Add support for experimental filament exchange support M600; requires display
|
// Add support for experimental filament exchange support M600; requires display
|
||||||
#if ENABLED(ULTIPANEL)
|
#if ENABLED(ULTIPANEL)
|
||||||
//#define FILAMENTCHANGEENABLE
|
// #define FILAMENT_CHANGE_FEATURE // Enable filament exchange menu and M600 g-code (used for runout sensor too)
|
||||||
#if ENABLED(FILAMENTCHANGEENABLE)
|
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||||
#define FILAMENTCHANGE_XPOS 3
|
#define FILAMENT_CHANGE_X_POS 3 // X position of hotend
|
||||||
#define FILAMENTCHANGE_YPOS 3
|
#define FILAMENT_CHANGE_Y_POS 3 // Y position of hotend
|
||||||
#define FILAMENTCHANGE_ZADD 10
|
#define FILAMENT_CHANGE_Z_ADD 10 // Z addition of hotend (lift)
|
||||||
#define FILAMENTCHANGE_FIRSTRETRACT -2
|
#define FILAMENT_CHANGE_XY_FEEDRATE 100 // X and Y axes feedrate in mm/s (also used for delta printers Z axis)
|
||||||
#define FILAMENTCHANGE_FINALRETRACT -100
|
#define FILAMENT_CHANGE_Z_FEEDRATE 5 // Z axis feedrate in mm/s (not used for delta printers)
|
||||||
#define AUTO_FILAMENT_CHANGE //This extrude filament until you press the button on LCD
|
#define FILAMENT_CHANGE_RETRACT_LENGTH 2 // Initial retract in mm
|
||||||
#define AUTO_FILAMENT_CHANGE_LENGTH 0.04 //Extrusion length on automatic extrusion loop
|
// It is a short retract used immediately after print interrupt before move to filament exchange position
|
||||||
#define AUTO_FILAMENT_CHANGE_FEEDRATE 300 //Extrusion feedrate (mm/min) on automatic extrusion loop
|
#define FILAMENT_CHANGE_RETRACT_FEEDRATE 60 // Initial retract feedrate in mm/s
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_LENGTH 100 // Unload filament length from hotend in mm
|
||||||
|
// Longer length for bowden printers to unload filament from whole bowden tube,
|
||||||
|
// shorter lenght for printers without bowden to unload filament from extruder only,
|
||||||
|
// 0 to disable unloading for manual unloading
|
||||||
|
#define FILAMENT_CHANGE_UNLOAD_FEEDRATE 10 // Unload filament feedrate in mm/s - filament unloading can be fast
|
||||||
|
#define FILAMENT_CHANGE_LOAD_LENGTH 0 // Load filament length over hotend in mm
|
||||||
|
// Longer length for bowden printers to fast load filament into whole bowden tube over the hotend,
|
||||||
|
// Short or zero length for printers without bowden where loading is not used
|
||||||
|
#define FILAMENT_CHANGE_LOAD_FEEDRATE 10 // Load filament feedrate in mm/s - filament loading into the bowden tube can be fast
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_LENGTH 50 // Extrude filament length in mm after filament is load over the hotend,
|
||||||
|
// 0 to disable for manual extrusion
|
||||||
|
// Filament can be extruded repeatedly from the filament exchange menu to fill the hotend,
|
||||||
|
// or until outcoming filament color is not clear for filament color change
|
||||||
|
#define FILAMENT_CHANGE_EXTRUDE_FEEDRATE 3 // Extrude filament feedrate in mm/s - must be slower than load feedrate
|
||||||
#endif
|
#endif
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
@ -200,4 +200,27 @@
|
||||||
#define MSG_DELTA_CALIBRATE_Z "Kalibrovat Z"
|
#define MSG_DELTA_CALIBRATE_Z "Kalibrovat Z"
|
||||||
#define MSG_DELTA_CALIBRATE_CENTER "Kalibrovat Stred"
|
#define MSG_DELTA_CALIBRATE_CENTER "Kalibrovat Stred"
|
||||||
|
|
||||||
|
#define MSG_FILAMENT_CHANGE_HEADER "VYMENA FILAMENTU"
|
||||||
|
#define MSG_FILAMENT_CHANGE_INIT_1 "Cekejte prosim"
|
||||||
|
#define MSG_FILAMENT_CHANGE_INIT_2 "na zahajeni"
|
||||||
|
#define MSG_FILAMENT_CHANGE_INIT_3 "vymeny filamentu"
|
||||||
|
#define MSG_FILAMENT_CHANGE_UNLOAD_1 "Cekejte prosim"
|
||||||
|
#define MSG_FILAMENT_CHANGE_UNLOAD_2 "na vysunuti"
|
||||||
|
#define MSG_FILAMENT_CHANGE_UNLOAD_3 "filamentu"
|
||||||
|
#define MSG_FILAMENT_CHANGE_INSERT_1 "Vlozte filament"
|
||||||
|
#define MSG_FILAMENT_CHANGE_INSERT_2 "a stisknete"
|
||||||
|
#define MSG_FILAMENT_CHANGE_INSERT_3 "tlacitko..."
|
||||||
|
#define MSG_FILAMENT_CHANGE_LOAD_1 "Cekejte prosim"
|
||||||
|
#define MSG_FILAMENT_CHANGE_LOAD_2 "na zavedeni"
|
||||||
|
#define MSG_FILAMENT_CHANGE_LOAD_3 "filamentu"
|
||||||
|
#define MSG_FILAMENT_CHANGE_EXTRUDE_1 "Cekejte prosim"
|
||||||
|
#define MSG_FILAMENT_CHANGE_EXTRUDE_2 "na vytlaceni"
|
||||||
|
#define MSG_FILAMENT_CHANGE_EXTRUDE_3 "filamentu"
|
||||||
|
#define MSG_FILAMENT_CHANGE_OPTION_HEADER "CO DAL?"
|
||||||
|
#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE "Jeste vytlacit"
|
||||||
|
#define MSG_FILAMENT_CHANGE_OPTION_RESUME "Obnovit tisk"
|
||||||
|
#define MSG_FILAMENT_CHANGE_RESUME_1 "Cekejte prosim"
|
||||||
|
#define MSG_FILAMENT_CHANGE_RESUME_2 "na pokracovani"
|
||||||
|
#define MSG_FILAMENT_CHANGE_RESUME_3 "tisku"
|
||||||
|
|
||||||
#endif // LANGUAGE_CZ_H
|
#endif // LANGUAGE_CZ_H
|
||||||
|
|
|
@ -563,4 +563,71 @@
|
||||||
#define MSG_INFO_PSU "Power Supply"
|
#define MSG_INFO_PSU "Power Supply"
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
#ifndef MSG_FILAMENT_CHANGE_HEADER
|
||||||
|
#define MSG_FILAMENT_CHANGE_HEADER "CHANGE FILAMENT"
|
||||||
|
#endif
|
||||||
|
#ifndef MSG_FILAMENT_CHANGE_INIT_1
|
||||||
|
#define MSG_FILAMENT_CHANGE_INIT_1 "Wait for start"
|
||||||
|
#endif
|
||||||
|
#ifndef MSG_FILAMENT_CHANGE_INIT_2
|
||||||
|
#define MSG_FILAMENT_CHANGE_INIT_2 "of the filament"
|
||||||
|
#endif
|
||||||
|
#ifndef MSG_FILAMENT_CHANGE_INIT_3
|
||||||
|
#define MSG_FILAMENT_CHANGE_INIT_3 "change"
|
||||||
|
#endif
|
||||||
|
#ifndef MSG_FILAMENT_CHANGE_UNLOAD_1
|
||||||
|
#define MSG_FILAMENT_CHANGE_UNLOAD_1 "Wait for"
|
||||||
|
#endif
|
||||||
|
#ifndef MSG_FILAMENT_CHANGE_UNLOAD_2
|
||||||
|
#define MSG_FILAMENT_CHANGE_UNLOAD_2 "filament unload"
|
||||||
|
#endif
|
||||||
|
#ifndef MSG_FILAMENT_CHANGE_UNLOAD_3
|
||||||
|
#define MSG_FILAMENT_CHANGE_UNLOAD_3 ""
|
||||||
|
#endif
|
||||||
|
#ifndef MSG_FILAMENT_CHANGE_INSERT_1
|
||||||
|
#define MSG_FILAMENT_CHANGE_INSERT_1 "Insert filament"
|
||||||
|
#endif
|
||||||
|
#ifndef MSG_FILAMENT_CHANGE_INSERT_2
|
||||||
|
#define MSG_FILAMENT_CHANGE_INSERT_2 "and press button"
|
||||||
|
#endif
|
||||||
|
#ifndef MSG_FILAMENT_CHANGE_INSERT_3
|
||||||
|
#define MSG_FILAMENT_CHANGE_INSERT_3 "to continue..."
|
||||||
|
#endif
|
||||||
|
#ifndef MSG_FILAMENT_CHANGE_LOAD_1
|
||||||
|
#define MSG_FILAMENT_CHANGE_LOAD_1 "Wait for"
|
||||||
|
#endif
|
||||||
|
#ifndef MSG_FILAMENT_CHANGE_LOAD_2
|
||||||
|
#define MSG_FILAMENT_CHANGE_LOAD_2 "filament load"
|
||||||
|
#endif
|
||||||
|
#ifndef MSG_FILAMENT_CHANGE_LOAD_3
|
||||||
|
#define MSG_FILAMENT_CHANGE_LOAD_3 ""
|
||||||
|
#endif
|
||||||
|
#ifndef MSG_FILAMENT_CHANGE_EXTRUDE_1
|
||||||
|
#define MSG_FILAMENT_CHANGE_EXTRUDE_1 "Wait for"
|
||||||
|
#endif
|
||||||
|
#ifndef MSG_FILAMENT_CHANGE_EXTRUDE_2
|
||||||
|
#define MSG_FILAMENT_CHANGE_EXTRUDE_2 "filament extrude"
|
||||||
|
#endif
|
||||||
|
#ifndef MSG_FILAMENT_CHANGE_EXTRUDE_3
|
||||||
|
#define MSG_FILAMENT_CHANGE_EXTRUDE_3 ""
|
||||||
|
#endif
|
||||||
|
#ifndef MSG_FILAMENT_CHANGE_OPTION_HEADER
|
||||||
|
#define MSG_FILAMENT_CHANGE_OPTION_HEADER "WHAT NEXT?"
|
||||||
|
#endif
|
||||||
|
#ifndef MSG_FILAMENT_CHANGE_OPTION_EXTRUDE
|
||||||
|
#define MSG_FILAMENT_CHANGE_OPTION_EXTRUDE "Extrude more"
|
||||||
|
#endif
|
||||||
|
#ifndef MSG_FILAMENT_CHANGE_OPTION_RESUME
|
||||||
|
#define MSG_FILAMENT_CHANGE_OPTION_RESUME "Resume print"
|
||||||
|
#endif
|
||||||
|
#ifndef MSG_FILAMENT_CHANGE_RESUME_1
|
||||||
|
#define MSG_FILAMENT_CHANGE_RESUME_1 "Wait for print"
|
||||||
|
#endif
|
||||||
|
#ifndef MSG_FILAMENT_CHANGE_RESUME_2
|
||||||
|
#define MSG_FILAMENT_CHANGE_RESUME_2 "to resume"
|
||||||
|
#endif
|
||||||
|
#ifndef MSG_FILAMENT_CHANGE_RESUME_3
|
||||||
|
#define MSG_FILAMENT_CHANGE_RESUME_3 ""
|
||||||
|
#endif
|
||||||
|
|
||||||
#endif // LANGUAGE_EN_H
|
#endif // LANGUAGE_EN_H
|
||||||
|
|
|
@ -128,6 +128,16 @@ uint8_t lcdDrawUpdate = LCDVIEW_CLEAR_CALL_REDRAW; // Set when the LCD needs to
|
||||||
static void lcd_info_thermistors_menu();
|
static void lcd_info_thermistors_menu();
|
||||||
static void lcd_info_board_menu();
|
static void lcd_info_board_menu();
|
||||||
static void lcd_info_menu();
|
static void lcd_info_menu();
|
||||||
|
#endif // LCD_INFO_MENU
|
||||||
|
|
||||||
|
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||||
|
static void lcd_filament_change_option_menu();
|
||||||
|
static void lcd_filament_change_init_message();
|
||||||
|
static void lcd_filament_change_unload_message();
|
||||||
|
static void lcd_filament_change_insert_message();
|
||||||
|
static void lcd_filament_change_load_message();
|
||||||
|
static void lcd_filament_change_extrude_message();
|
||||||
|
static void lcd_filament_change_resume_message();
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
#if HAS_LCD_CONTRAST
|
#if HAS_LCD_CONTRAST
|
||||||
|
@ -791,7 +801,7 @@ static void lcd_status_screen() {
|
||||||
//
|
//
|
||||||
// Change filament
|
// Change filament
|
||||||
//
|
//
|
||||||
#if ENABLED(FILAMENTCHANGEENABLE)
|
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||||
MENU_ITEM(gcode, MSG_FILAMENTCHANGE, PSTR("M600"));
|
MENU_ITEM(gcode, MSG_FILAMENTCHANGE, PSTR("M600"));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -2036,6 +2046,116 @@ static void lcd_status_screen() {
|
||||||
}
|
}
|
||||||
#endif // LCD_INFO_MENU
|
#endif // LCD_INFO_MENU
|
||||||
|
|
||||||
|
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||||
|
|
||||||
|
static void lcd_filament_change_nothing() {
|
||||||
|
}
|
||||||
|
|
||||||
|
static void lcd_filament_change_resume_print() {
|
||||||
|
filament_change_menu_response = FILAMENT_CHANGE_RESPONSE_RESUME_PRINT;
|
||||||
|
lcdDrawUpdate = 2;
|
||||||
|
lcd_goto_screen(lcd_status_screen);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void lcd_filament_change_extrude_more() {
|
||||||
|
filament_change_menu_response = FILAMENT_CHANGE_RESPONSE_EXTRUDE_MORE;
|
||||||
|
}
|
||||||
|
|
||||||
|
static void lcd_filament_change_option_menu() {
|
||||||
|
START_MENU();
|
||||||
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_OPTION_HEADER, lcd_filament_change_nothing);
|
||||||
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_OPTION_RESUME, lcd_filament_change_resume_print);
|
||||||
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_OPTION_EXTRUDE, lcd_filament_change_extrude_more);
|
||||||
|
END_MENU();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void lcd_filament_change_init_message() {
|
||||||
|
START_MENU();
|
||||||
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_HEADER, lcd_filament_change_nothing);
|
||||||
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_INIT_1, lcd_filament_change_nothing);
|
||||||
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_INIT_2, lcd_filament_change_nothing);
|
||||||
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_INIT_3, lcd_filament_change_nothing);
|
||||||
|
END_MENU();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void lcd_filament_change_unload_message() {
|
||||||
|
START_MENU();
|
||||||
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_HEADER, lcd_filament_change_nothing);
|
||||||
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_UNLOAD_1, lcd_filament_change_nothing);
|
||||||
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_UNLOAD_2, lcd_filament_change_nothing);
|
||||||
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_UNLOAD_3, lcd_filament_change_nothing);
|
||||||
|
END_MENU();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void lcd_filament_change_insert_message() {
|
||||||
|
START_MENU();
|
||||||
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_HEADER, lcd_filament_change_nothing);
|
||||||
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_INSERT_1, lcd_filament_change_nothing);
|
||||||
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_INSERT_2, lcd_filament_change_nothing);
|
||||||
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_INSERT_3, lcd_filament_change_nothing);
|
||||||
|
END_MENU();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void lcd_filament_change_load_message() {
|
||||||
|
START_MENU();
|
||||||
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_HEADER, lcd_filament_change_nothing);
|
||||||
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_LOAD_1, lcd_filament_change_nothing);
|
||||||
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_LOAD_2, lcd_filament_change_nothing);
|
||||||
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_LOAD_3, lcd_filament_change_nothing);
|
||||||
|
END_MENU();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void lcd_filament_change_extrude_message() {
|
||||||
|
START_MENU();
|
||||||
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_HEADER, lcd_filament_change_nothing);
|
||||||
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_EXTRUDE_1, lcd_filament_change_nothing);
|
||||||
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_EXTRUDE_2, lcd_filament_change_nothing);
|
||||||
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_EXTRUDE_3, lcd_filament_change_nothing);
|
||||||
|
END_MENU();
|
||||||
|
}
|
||||||
|
|
||||||
|
static void lcd_filament_change_resume_message() {
|
||||||
|
START_MENU();
|
||||||
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_HEADER, lcd_filament_change_nothing);
|
||||||
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_RESUME_1, lcd_filament_change_nothing);
|
||||||
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_RESUME_2, lcd_filament_change_nothing);
|
||||||
|
MENU_ITEM(function, MSG_FILAMENT_CHANGE_RESUME_3, lcd_filament_change_nothing);
|
||||||
|
END_MENU();
|
||||||
|
}
|
||||||
|
|
||||||
|
void lcd_filament_change_show_message(FilamentChangeMessage message) {
|
||||||
|
switch (message) {
|
||||||
|
case FILAMENT_CHANGE_MESSAGE_INIT:
|
||||||
|
defer_return_to_status = true;
|
||||||
|
lcd_goto_screen(lcd_filament_change_init_message);
|
||||||
|
break;
|
||||||
|
case FILAMENT_CHANGE_MESSAGE_UNLOAD:
|
||||||
|
lcd_goto_screen(lcd_filament_change_unload_message);
|
||||||
|
break;
|
||||||
|
case FILAMENT_CHANGE_MESSAGE_INSERT:
|
||||||
|
lcd_goto_screen(lcd_filament_change_insert_message);
|
||||||
|
break;
|
||||||
|
case FILAMENT_CHANGE_MESSAGE_LOAD:
|
||||||
|
lcd_goto_screen(lcd_filament_change_load_message);
|
||||||
|
break;
|
||||||
|
case FILAMENT_CHANGE_MESSAGE_EXTRUDE:
|
||||||
|
lcd_goto_screen(lcd_filament_change_extrude_message);
|
||||||
|
break;
|
||||||
|
case FILAMENT_CHANGE_MESSAGE_OPTION:
|
||||||
|
filament_change_menu_response = FILAMENT_CHANGE_RESPONSE_WAIT_FOR;
|
||||||
|
lcd_goto_screen(lcd_filament_change_option_menu);
|
||||||
|
break;
|
||||||
|
case FILAMENT_CHANGE_MESSAGE_RESUME:
|
||||||
|
lcd_goto_screen(lcd_filament_change_resume_message);
|
||||||
|
break;
|
||||||
|
case FILAMENT_CHANGE_MESSAGE_STATUS:
|
||||||
|
lcd_return_to_status();
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
#endif // FILAMENT_CHANGE_FEATURE
|
||||||
|
|
||||||
/**
|
/**
|
||||||
*
|
*
|
||||||
* Functions for editing single values
|
* Functions for editing single values
|
||||||
|
|
|
@ -69,6 +69,21 @@
|
||||||
void lcd_quick_feedback(); // Audible feedback for a button click - could also be visual
|
void lcd_quick_feedback(); // Audible feedback for a button click - could also be visual
|
||||||
bool lcd_clicked();
|
bool lcd_clicked();
|
||||||
void lcd_ignore_click(bool b=true);
|
void lcd_ignore_click(bool b=true);
|
||||||
|
|
||||||
|
#if ENABLED(FILAMENT_CHANGE_FEATURE)
|
||||||
|
enum FilamentChangeMessage {
|
||||||
|
FILAMENT_CHANGE_MESSAGE_INIT,
|
||||||
|
FILAMENT_CHANGE_MESSAGE_UNLOAD,
|
||||||
|
FILAMENT_CHANGE_MESSAGE_INSERT,
|
||||||
|
FILAMENT_CHANGE_MESSAGE_LOAD,
|
||||||
|
FILAMENT_CHANGE_MESSAGE_EXTRUDE,
|
||||||
|
FILAMENT_CHANGE_MESSAGE_OPTION,
|
||||||
|
FILAMENT_CHANGE_MESSAGE_RESUME,
|
||||||
|
FILAMENT_CHANGE_MESSAGE_STATUS
|
||||||
|
};
|
||||||
|
void lcd_filament_change_show_message(FilamentChangeMessage message);
|
||||||
|
#endif // FILAMENT_CHANGE_FEATURE
|
||||||
|
|
||||||
#else
|
#else
|
||||||
FORCE_INLINE void lcd_buttons_update() {}
|
FORCE_INLINE void lcd_buttons_update() {}
|
||||||
#endif
|
#endif
|
||||||
|
|
Reference in a new issue