8
$\begingroup$

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.

$\endgroup$
10
  • 1
    $\begingroup$ Just 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... $\endgroup$
    – Greenonline
    May 9, 2017 at 6:22
  • 1
    $\begingroup$ 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... $\endgroup$
    – kamuro
    May 21, 2017 at 21:22
  • 3
    $\begingroup$ Skipping 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. $\endgroup$ Jul 2, 2017 at 6:23
  • 1
    $\begingroup$ Assuming 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. $\endgroup$
    – Demetris
    Aug 1, 2017 at 7:12
  • 1
    $\begingroup$ Is the same infill pattern being used? Some infill patterns stress the acceleration much more than others. $\endgroup$
    – cmm
    Aug 30, 2017 at 18:44

1 Answer 1

4
$\begingroup$

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.

$\endgroup$

You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .