From 15268770f568735870d24e04fda15a96299d8073 Mon Sep 17 00:00:00 2001 From: Florian Heilmann Date: Thu, 4 May 2017 11:34:28 +0200 Subject: [PATCH] Fix broken fwretract recovery extruder feedrate When both lowering and recovery are performed using the same "prepare_move_to_destination()" the extruder recovery feedrate ends up being ignored and, instead, is only capped by either the maximum e-speed or the time it takes to perform the z-lowering. Performing the two moves separately from each other ensures a correct recovery feedrate. --- Marlin/Marlin_main.cpp | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/Marlin/Marlin_main.cpp b/Marlin/Marlin_main.cpp index d88afc323..a5da26432 100644 --- a/Marlin/Marlin_main.cpp +++ b/Marlin/Marlin_main.cpp @@ -3062,6 +3062,8 @@ static void homeaxis(const AxisEnum axis) { // Pretend current position is higher. Z will lower on the next move current_position[Z_AXIS] += retract_zlift; SYNC_PLAN_POSITION_KINEMATIC(); + // Lower Z + prepare_move_to_destination(); } feedrate_mm_s = retract_recover_feedrate_mm_s; @@ -3069,7 +3071,7 @@ static void homeaxis(const AxisEnum axis) { current_position[E_AXIS] -= move_e / volumetric_multiplier[active_extruder]; sync_plan_position_e(); - // Lower Z and recover E + // Recover E prepare_move_to_destination(); }