Skipping Y-steps, only when using Ultimaker Cura



In order to find out why my printer sometimes skips Y-steps (always in the same direction) only in Ultimaker Cura, I am digging into the G-code to understand the problem better. However, thousands of lines of G-code are hard to analyze.

I am using a Mk2 heatbed with a glass sheet, and a NEMA17 motor in a P3Steel Toolson Edition printer. The axis feels reasonably easygoing in both directions.

Reducing the acceleration to 4000 did not get rid of the problem completely - it might have relieved the issue, though. I didn't do quantifiable tests, sorry.

Are there any other obvious things I might have missed? I know the acceleration might still be rather high, but since it works with Slic3r easily I would like to take advantage of some features in Ultimaker Cura with this printing speed.


Posted 2017-01-04T10:58:42.497

Reputation: 2 804

Without more information this issue will never be able to be solved – markshancock – 2019-04-30T18:37:15.920

1Just to clarify, you never get Y-axis skips when using Slic3r? So, it is definitely a software issue? Otherwise it might be that the stepper motor driver for the Y-axis is providing too much (or too little) current... – Greenonline – 2017-05-09T06:22:11.727

1Yes, of course, increasing the maximum supplied current to the motor gets rid of the issue. Still, I'd rather go with lower current to limit heating up the motors. I was just wondering if there is something in the two slicing engines that makes cura provoke much harsher movements that cause the printer to lose steps... – kamuro – 2017-05-21T21:22:50.387

3Skipping steps means the current to the motor is insufficient for the required motor torque. Principle driver of torque in a 3D printer is acceleration. You could compare the GCode to see what is being set in the M201-M204 commands. – markshancock – 2017-07-02T06:23:19.570

1Assuming you set the same acceleration in both Cura and Slic3r, are you sure they are applied correctly in the gcode file? In the case that the software does not output the correct gcode to set the acceleration, then the default values already set in firmware are applied. – Demetris – 2017-08-01T07:12:36.020

1Is the same infill pattern being used? Some infill patterns stress the acceleration much more than others. – cmm – 2017-08-30T18:44:18.947

@markshancock yes, and jerk too! – Valmond – 2017-11-08T14:44:04.667


@Valmond, for an interesting discussion on jerk in 3D printing see Jerk and Acceleration in Marlin. While the "jerk" settings in the 3D aren't exactly "jerk", they are close enough to be the same (except for the units).

In my experience (outside 3D printing), too high "jerk" typically causes mechanical distress. Sort of like on a Roller Coaster, acceleration stops your heart rattles jerk rattles your bones.

– markshancock – 2017-11-08T19:06:47.987

1For 3D printing limiting jerk too much on the print axes can cause globing in the corners. Limiting it too much in the extruder could cause problems with retractions. – markshancock – 2017-11-08T19:07:20.830

@markshancock Interesting read for real world jerk-examples, but there is a lot of bad comprehensions there IMO (the math part of jerk etc.). – Valmond – 2017-11-10T08:56:42.860



You answered your own question in a comment.

Yes, of course, increasing the maximum supplied current to the motor gets rid of the issue. Still, I'd rather go with lower current to limit heating up the motors. I was just wondering if there is something in the two slicing engines that makes cura provoke much harsher movements that cause the printer to lose steps... – kamuro May 21 '17 at 21:22

Motors are tough

Motors are meant to be warm, some are made to be hot. Not all motors have the same specs, but I pulled one on Amazon (link) which shows a rated temperature rise of 60°C above a rated ambient temperature of 50°C. If these specifications stack, and they should because the insulation of the motor is rated to 130°C, you can boil water on the stepper motors.

But ... other factors

But, what are the real limits, and how much current should you run through the motors?

First, many 3D printers have plastic mounts for the stepper motors. You don't want that plastic to soften. It can if the motors get too hot. I've seen it in a commercial 2D printer, and gnashing of teeth across the Pacific ensued. Even for PLA, that temperature is uncomfortable to human flesh. I soften PLA at 75°C when fitting tight parts, but PETG and ABS are good for higher temperatures.

Low current hurts accuracy

Motors are remarkably linear converters of current to torque, but they still have non-linearities at the limits. This matters most when micro-stepping, which (AFAIK) all 3D printers use for higher resolution.

Two factors hurt accuracy at lower currents when micro-stepping.

Non-linearities in the drivers result in magnetic fields that do not linearly align with the commanded drive strength. The torque is not exactly what is needed to position the motor between the poles at the correct angle.

Static friction, sometimes called stiction, requires additional torque to overcome. In a slow micro-stepping move, this will result in the motion hanging back, then jumping ahead. Motion can be ragged rather than smooth. Extrusion can be pulsating rather than smooth.

Both are improved by applying enough current to the motor to generate enough torque. More current gives more heat, but also better behavior and performance.

Power up the motors!

They can take it. Check their mounts to be sure the mounts aren't underdesigned.

Why Cura and not Slic3r?

A deeply detailed review of the g-code would be needed. It could be as simple as the direction of infill, or the preferred direction of your model compared with the direction chosen by the two slicers.

It could be some limits coded into the "custom g-code" portion of the two slicers. I am not familiar with Cura, but Slic3r allows you to insert additional g-code under many situations. Something brought in with a printer profile may be limiting acceleration of jerk.

Could be differences in fan setting, or almost anything.

When you are dealing with a marginal situation, and it sounds like this is right on the edge, very small differences can cause dramatic changes in how the whole system responds. 3D printers are complex systems, with resonances, many vibration modes, non-linear friction. Knowing for sure may be beyond the scope of your and our engineering tools.

Don't operate on the Margins

Set the motors to the proper current levels. Set the bed to the proper height. Set the hot end to the right temperature. Try to always stay in the sweet spot. Your prints will reward you.


Posted 2017-01-04T10:58:42.497

Reputation: 4 180