Browse Source

Add retract after filament load

Reduces filament ooze between load and print.
Kevin Lee 4 years ago
parent
commit
d15cf1e777

+ 1 - 0
Firmware/Marlin.h

@@ -493,6 +493,7 @@ void M600_load_filament_movements();
 void M600_wait_for_user(float HotendTempBckp);
 void M600_check_state(float nozzle_temp);
 void load_filament_final_feed();
+void load_filament_final_retract();
 void marlin_wait_for_click();
 void raise_z_above(float target, bool plan=true);
 

+ 8 - 0
Firmware/Marlin_main.cpp

@@ -3791,6 +3791,7 @@ void gcode_M701()
 		if (!farm_mode && loading_flag) {
 			lcd_load_filament_color_check();
 		}
+		load_filament_final_retract();
 		lcd_update_enable(true);
 		lcd_update(2);
 		lcd_setstatuspgm(_T(WELCOME_MSG));
@@ -11709,6 +11710,13 @@ void load_filament_final_feed()
 	plan_buffer_line_curposXYZE(FILAMENTCHANGE_EFEED_FINAL);
 }
 
+void load_filament_final_retract()
+{
+	current_position[E_AXIS] -= FILAMENTCHANGE_LOADRETRACT;
+	plan_buffer_line_curposXYZE(FILAMENTCHANGE_EFEED_FIRST);
+}
+
+
 //! @brief Wait for user to check the state
 //! @par nozzle_temp nozzle temperature to load filament
 void M600_check_state(float nozzle_temp)

+ 2 - 0
Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h

@@ -379,6 +379,8 @@
 #define FILAMENTCHANGE_FINALFEED 35 //E distance in mm for slow filament loading sequence used used in filament change (M600) and filament load (M701) 
 #define FILAMENTCHANGE_RECFEED 5
 
+#define FILAMENTCHANGE_LOADRETRACT 20 // Distance to retract after loading is complete (need to account for this in start gcode)
+
 #define FILAMENTCHANGE_XYFEED 50
 #define FILAMENTCHANGE_EFEED_FIRST 20 // feedrate in mm/s for fast filament loading sequence used in filament change (M600)
 #define FILAMENTCHANGE_EFEED_FINAL 3.3f // feedrate in mm/s for slow filament loading sequence used in filament change (M600) and filament load (M701) 

+ 3 - 0
LocalBuild.sh

@@ -0,0 +1,3 @@
+#!/bin/bash
+
+./PF-build.sh 1_75mm_MK3S-EINSy10a-E3Dv6full.h EN_ONLY GOLD && find ../PF-build-hex/ -name "*.hex" | xargs mv -t /mnt/c/Users/Kevin/Desktop/