I'm in a situation where I'd like to move the XY axes on my printer extremely slowly (down to 0.05 mm/s = 3 mm/min). [I'm okay with 'smooth' motion not being possible].

First off, here's the (somewhat Frankensteined) setup I'm using:

I'm basically using the LulzBot TAZ 6 for motion control (XYZ, bed temp) with a custom extruder mounted in the place of the printhead. I've got a computer running a Perl script on Debian which sends synchronized commands to my extruder hardware and the board on the TAZ 6. So far I've only slightly modified the Marlin firmware to match the baud rate on my computer and shrink the motion command buffer.

Motion control for the TAZ 6 is accomplished by directly sending G-code line by line either from a terminal or from that Perl script.

What I've found is that while I can set arbitrarily slow speeds for the Z axis (lead screw), the X and Y (belts) won't go slower than about 15 mm/min. The printer will accept the e.g., G1 F0.1 X1 input, but will just move at the 15 mm/min.

Unfortunately, the experiment I'm trying is giving me good results at ~5 mm/min (on a commercial linear stage), so I'd like to resolve this.

I've tried setting the jerk to 0/low values via M205 S0 T0 X0 Y0, and the maximum acceleration lower as well (M203? I recall), but without resolution.

Is movement limited just by the type of actuator? It seems to work for the Z-axis but not the X/Y-axes, I think it might be some firmware setting.

Edit: I've attached an image of the default settings from an M503 call (acceleration, jerk, steps/unit, etc).<code>M503</code> Call

  • $\begingroup$ very interesting problem - do you have micro stepping enabled in setpper driver? $\endgroup$
    – profesor79
    Commented Jun 28, 2018 at 9:32

1 Answer 1


What I could suggest here is:

  1. set the acceleration to 1 instead 0 so we have M201 X1 Y1
  2. use G1 Xdest Ydest F3 - feed rate is given as an integer
  • $\begingroup$ Maybe that was the actual problem of the OP feed rate is given as an integer as 0.1 is 0 as integer, maybe this then defaults to 15 mm/min $\endgroup$
    – 0scar
    Commented Jun 28, 2018 at 10:29
  • $\begingroup$ I was playing around that recently with my build and discovered the integer requirement youtube.com/watch?v=OQfS5ArRF9g @0scar $\endgroup$
    – profesor79
    Commented Jun 28, 2018 at 11:57
  • $\begingroup$ More G-code commands require integer input, so I'm not surprised if this is the case here. $\endgroup$
    – 0scar
    Commented Jun 28, 2018 at 12:10
  • $\begingroup$ Hi, thanks for the input: profesor79 I have tried a few different values for acceleration, changing X and Y acceleration to 0,1,100 (what the z-axis was defaulted to) does not resolve the issue, nor does specifying the feed rate as F1,3, [any integer < ~15]. @0scar Thanks for the tip, I did not realize the integer requirement. Unfortunately specifying integer values less than ~15 doesnt result in a change in X/Y speed. On the z-axis, I can specify and observe motion down to 1 mm/s. Any non-integer less than 1 just defaults back to 1 mm/min. $\endgroup$ Commented Jun 28, 2018 at 18:55
  • $\begingroup$ what is your steps/mm rate @BijalPatel for x/y? $\endgroup$
    – profesor79
    Commented Jun 29, 2018 at 8:20

You must log in to answer this question.

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