Marlin: Long Delay every Layer Change after RC7

Created on 2 Aug 2016  路  13Comments  路  Source: MarlinFirmware/Marlin

I've just upgraded to RC7, and now RCBugFix, and I find my printer pausing every layer change for about 30 - 40 seconds.

It is a Cartesian printer with a RUMBA board. No Z probe or anything unusual. Before I start digging in, is there anywhere specific I should start looking or placing logging commands?

Most helpful comment

Got it.
MarlinMain.cpp

@@ -2518,11 +2518,11 @@ static void homeaxis(AxisEnum axis) {
       if (retract_zlift > 0.01) {
         current_position[Z_AXIS] += retract_zlift;
         SYNC_PLAN_POSITION_KINEMATIC();
       }

-      feedrate_mm_m = MMM_TO_MMS(retract_recover_feedrate_mm_s);
+      feedrate_mm_m = MMS_TO_MMM(retract_recover_feedrate_mm_s);
       float move_e = swapping ? retract_length_swap + retract_recover_length_swap : retract_length + retract_recover_length;
       current_position[E_AXIS] -= move_e / volumetric_multiplier[active_extruder];
       sync_plan_position_e();
       prepare_move_to_destination();
     }

All 13 comments

G0 X50 Y50 Z5
G0 X80 Y80 Z5
G0 X80 Y80 Z5.2
G0 X50 Y50 Z5.2
G0 X50 Y50 Z5.4
G0 X80 Y80 Z5.4
G0 X80 Y80 Z5.6
G0 X50 Y50 Z5.6

Not a long g-code program, with extremely small layers. Runs completely unremarkable.

That gcode runs without issue. I did find my gcode runs fine without the heaters on, but once the extruder temp is above 170degC, it locks on every layer. Here's the gcode that currently is failing.
test.txt

What are your M207/M208 settings?
Probably you get cold extrusion warnings below 170掳C.

Recv: echo:Retract: S=Length (mm) F:Speed (mm/m) Z: ZLift (mm)
Recv: echo: M207 S2.00 F900.00 Z0.00
Recv: echo:Recover: S=Extra length (mm) F:Speed (mm/m)
Recv: echo: M208 S0.00 F660.00
Recv: echo:Auto-Retract: S=0 to disable, 1 to interpret extrude-only moves as retracts or recoveries
Recv: echo: M209 S0

Hmmm.
What happens if you remove the G10/G11 statements?

I will check tomorrow. Were there any changes to firmware retraction going into rc7?

As far as i know, no direct changes to firmware retraction, but extruder handling in general.
If the problem does or not occur without firmware retract we have narrowed down the area to search.
Up to now pure moves seem to be unsuspicious, but if it's not the firmware retraction we probably have to search there, or in G92 (that's very unlikely).

I'm having the exact same problem plus it takes around a minute to start extruding. Had to roll back to RC6, I have firmware retraction enabled and I use slic3r. My printer is a p3steel (prusa i3 like) with RAMPS.
If i have some time tonight i'll flash RC7 again with firmware retraction disabled to see if the error is still there. If there is something else i can do to help i'll be glad to.

I've swapped out numerous commands, and have confirmed the problem is G11 gcode. Everything else is working fine currently.

Comfirmed. As soon i #define FWRETRACT i see, not pauses, but extremely slow unretracts.

Great, if a patch is submited give me a heads up and i'll happily help you with some more testing. Thanks

Got it.
MarlinMain.cpp

@@ -2518,11 +2518,11 @@ static void homeaxis(AxisEnum axis) {
       if (retract_zlift > 0.01) {
         current_position[Z_AXIS] += retract_zlift;
         SYNC_PLAN_POSITION_KINEMATIC();
       }

-      feedrate_mm_m = MMM_TO_MMS(retract_recover_feedrate_mm_s);
+      feedrate_mm_m = MMS_TO_MMM(retract_recover_feedrate_mm_s);
       float move_e = swapping ? retract_length_swap + retract_recover_length_swap : retract_length + retract_recover_length;
       current_position[E_AXIS] -= move_e / volumetric_multiplier[active_extruder];
       sync_plan_position_e();
       prepare_move_to_destination();
     }

Just recompiled, confirmed that did the trick

Was this page helpful?
0 / 5 - 0 ratings