Bladeren bron

Add retract after filament load

Kevin Lee 4 jaren geleden
bovenliggende
commit
47f248124d
3 gewijzigde bestanden met toevoegingen van 12 en 1 verwijderingen
  1. 1 0
      Firmware/Marlin.h
  2. 8 0
      Firmware/Marlin_main.cpp
  3. 3 1
      Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h

+ 1 - 0
Firmware/Marlin.h

@@ -509,6 +509,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

@@ -3257,6 +3257,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));
@@ -11479,6 +11480,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)

+ 3 - 1
Firmware/variants/1_75mm_MK3S-EINSy10a-E3Dv6full.h

@@ -367,9 +367,11 @@
 #define FILAMENTCHANGE_FINALRETRACT -80
 
 #define FILAMENTCHANGE_FIRSTFEED 70 //E distance in mm for fast filament loading sequence used used in filament change (M600)
-#define FILAMENTCHANGE_FINALFEED 100 //E distance in mm for slow filament loading sequence used used in filament change (M600) and filament load (M701) 
+#define FILAMENTCHANGE_FINALFEED 200 //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)