Suddenly Skipping Steps
-
I seem to have confirmed my theory. I disabled the "avoid crossing perimeter" setting, forcing all straight line travel moves, and reprinted. Everything worked perfectly.
So, it seems that travel move sequences like this were causing the issue. But, not during the the travel move itself, but on a subsequent print move.:
;LAYER_CHANGE ;Z:4.4 ;HEIGHT:0.15 ; Automesh: begin layer 28 ; stop printing object Neg Spacer3.stl id:0 copy 0 G1 Z4.400000 F10200.000 ; INIT printing object Neg Spacer3.stl id:0 copy 0 G92 E0 G1 E-2.500000 F2100.000 ; printing object Neg Spacer3.stl id:0 copy 0 G1 X48.969 Y78.709 F10200.000 G1 X48.926 Y78.606 G1 X48.879 Y78.505 G1 X48.828 Y78.406 G1 X48.774 Y78.308 G1 X48.716 Y78.212 G1 X48.656 Y78.119 G1 X48.592 Y78.027 G1 X48.524 Y77.938 G1 X48.454 Y77.852 G1 X48.381 Y77.767 G1 X48.305 Y77.686 G1 X48.226 Y77.607 G1 X48.144 Y77.531 G1 X48.060 Y77.458 G1 X47.973 Y77.387 G1 X47.884 Y77.320 G1 X47.793 Y77.256 G1 X47.699 Y77.195 G1 X47.604 Y77.138 G1 X47.506 Y77.084 G1 X47.407 Y77.033 G1 X47.305 Y76.986 G1 X47.203 Y76.942 G1 X47.099 Y76.902 G1 X46.993 Y76.866 G1 X46.886 Y76.833 G1 X46.779 Y76.805 G1 X46.670 Y76.779 G1 X46.560 Y76.758 G1 X46.450 Y76.741 G1 X46.339 Y76.727 G1 X44.011 Y76.453 G1 E0.000000 F2100.000 ;TYPE:Internal perimeter ;WIDTH:0.4258 G1 F2400.000 G1 X43.892 Y76.525 E0.001288 G1 X43.661 Y76.681 E0.003864
-
I wonder if it was the low jerk high accel?
-
@ccs86
I've visualized the moves you suspect and they look like a smooth curve (ignore the straight diagonal line, it's the connection from 0,0 to the first point in the code)
To me it looks 'doable' except you've set travel accel too high?
Also wondering where the bang came from as there is no Z-move involved that could lead to a nozzle/part collision -
@phaedrux said in Suddenly Skipping Steps:
I wonder if it was the low jerk high accel?
By what mechanism? 6mm/s jerk is enough to get me around arcs without stutter, and 4000mm/s/s doesn't seem very high for travel moves in this era.
-
4000 mm/s/s travel accel is "too high"? The speed boat race guys are running 100,000+
I believe the bang is just a sound made by the steppers and resonated through the frame. Have you ever tried switching from stealthchop to spreadcycle at too high of a speed? It's like that.
-
@ccs86 said in Suddenly Skipping Steps:
Have you ever tried switching from stealthchop to spreadcycle at too high of a speed? It's like that.
And it wasn't in stealthchop for sure?
-
For sure. I could never get that transition to work well for me, so I force spreadcycle on X and Y now.
-
@ccs86 said in Suddenly Skipping Steps:
4000mm/s/s doesn't seem very high for travel moves in this era.
@ccs86 said in Suddenly Skipping Steps:
4000 mm/s/s travel accel is "too high"? The speed boat race guys are running 100,000+
For a Maestro though? I'm not sure. Will have to see what DC42 thinks.
What are the motor specs by the way?
-
@phaedrux said in Suddenly Skipping Steps:
What are the motor specs by the way?
https://www.omc-stepperonline.com/download/17HM19-2004S.pdf
https://www.omc-stepperonline.com/download/17HM19-2004S_Torque_Curve.pdf
-
Any thoughts @dc42?
-
I think he's away today, but he did have the same thought as I had about low jerk, perhaps specifically Z jerk if mesh compensation was enabled.
-
The low Z jerk + mesh comp is a good thought. It makes sense...
But, I have my mesh taper at 1.5mm and the first layer shift is at Z=3.5mm
-
back to the drawing board then.
Other than my previous thoughts on low jerk high accel I'm not sure what else to think.
-
@phaedrux said in Suddenly Skipping Steps:
back to the drawing board then.
Other than my previous thoughts on low jerk high accel I'm not sure what else to think.
What would be the mechanism that low jerk / high accel could cause this behavior?
-
Back EMF limiting the available acceleration?
-
@phaedrux said in Suddenly Skipping Steps:
Back EMF limiting the available acceleration?
Could that still be the cause when the issue only arises just after a sequence on tiny travel moves? I can run even higher acceleration, with the same low jerk, using longer straight line travels, and never have this issue.
It really feels like the motion planner/controller is confused by this sequence.
Maybe someone else could dry run this gcode with a cold extruder and large Z offset to see if the behavior is the same.
-
I'll see if I can get to my printer this afternoon, though I don't have a Maestro running at the moment.
Would you be able to try it with higher jerk and/or lower acceleration?
-
When I get time, I'll try to isolate the actual section of code and create a new file with just that. Will be much faster to experiment with how settings affect the behavior.
-
@ccs86 said in Suddenly Skipping Steps:
It really feels like the motion planner/controller is confused by this sequence.
I remember there was a bug report about "not being able to print small circles". That sounds similar to your issue I think.
But it was solved soon....so it shouldn't happen again in a newer FW? -
@dc42 Have you gotten a chance to look at this at all?
I did more testing by making a reduced version of the gcode file to test, with no heater or fan calls, and skipping ahead to Z24.4
What I found so far:
-
The issue does not repeat every single time. Even with no changes to the settings or code, the issue may or may not happen.
-
Increasing my XY jerk from 6 mm/s to 15 mm/s made no improvement, maybe slightly worse.
-
Starting from Z24.4, then pausing at the first skipped step tends to happen at Z24.7. But, if I strip out the beginning code and start right at Z24.7, the glitch does not occur in the same spot. So, this isn't some bad instruction alone. It must be a combination of a code sequence, and a specific condition the motion controller is in.
-
Lowering the travel acceleration has the capacity to avoid the issue. Instead of my normal M204 P2660 T4000, if I run at P2000 T2000 I haven't reproduced the issue. It seems possible that this is just buying the motion controller more time to catch up.
The attached gcode should be safe for anyone else to test, just look at the intro code, to make sure the homing sequence is compatible with your setup, or modify to match your machine. I don't want anyone driving a nozzle into their bed for me!
-