z axis not moving correct amount

So, I’m getting movement in this MPCNC build. However, there seems to be a surprise that I don’t understand.

First, the hardware:

X and Y axes are using the stepper motors from V1Engineering

Z is using a different one because V1 only had 4 and is now sold out. The one it’s using has the typical 1.8 degrees per step. The leadscrew is from V1 Engineering, therefore 8mm/revolution. The motors are all 3 set for 32 microsteps. The Marlin is essentially Ryan’s version, with a different Motherboard (MKS Gen L v1.0) The line defining the steps is:

#define DEFAULT_AXIS_STEPS_PER_UNIT { 200, 200, 800, 200 }

By my calculation, (32 microsteps/step)(200 step/Revolution)(1 revolution/8mm) gives 800 steps per mm, as is being used.

However, sending commands from the RepRap Controller

(#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER) causes about half the correct travel on the z-axis. In other words, I send a command to move 10mm and it only moves about 5 mm.

Obviously, I could change the steps/mm, but why would this be necessary?

Any chance your stepper motor is 0.9 degrees/step?

Or perhaps you don’t have the correct number of steps selected with the jumpers for your drivers. You need all three jumpers installed to get 32 steps.

@billsey - if he used less than 3 jumpers, he would get more travel rather than less per step, so I don’t think that’s it.

The other thing that would be easy to check is that the leadscrew is 8mm/rotation. Ryan does a great job with quality control of his subvendors, so I doubt that is it, but it’s easy to check. Other than the stepper motor and the leadscrew, I think you’re down to recompiling and reflashing the firmware with the steps/mm settings you have above.

The first thing I checked was the angular step size. Specifications at Amazon are clear, but, there was a specification card with the motor. I should check that too. From Amazon:

  • Manufacturer Part Number: 17HS19-2004S1
  • Motor Type: Bipolar Stepper
  • Step Angle: 1.8 deg.
  • Holding Torque: 59Ncm(83.6oz.in)
  • Rated Current/phase: 2.0A
  • Phase Resistance: 1.4ohms
  • Inductance: 3.0mH+/-20%(1KHz)

Physical Specification:

  • Frame Size: 42 x 42mm
  • Body Length: 48mm
  • Shaft Diameter: 5mm
  • Shaft Length: 24mm
  • D-cut Length: 15mm
  • Number of Leads: 4
  • Lead Length: 1m with connector
  • Weight: 390g


As for the jumpers, the MKS Gen L board has jumpers in all three positions. They’ve not been touched.

Good idea to confirm the travel per rotation. It IS easy to check.

I also thought about connecting the z-stepper to the x or y driver, which is set for 200 steps per mm since it’s a belt. That result should point to either the leadscrew or the motor.

Try an M503 to see what your current settings are. If they are at 800 for Z then BT is likely right on the stepper being the 0.9° instead of the 1.8°.

Well, this one is just going to be a mystery I guess, at least for now. When I went back and connected all the stepping motors, the movement on the z axis is now OK. I literally didn’t change anything … Simply went ahead and connected x and y as well as z. Before, it had been z only.

In fact I would think that I had just been mistaken, but I had been able to reproduce the problem exactly multiple times.

But, now it works Don’t know why. Moving on

Thanks for the ideas.


Easiest way I found to fix this is to take Actual distance / distance commanded and multiply that by your current z-steps / mm in firmware. I just had this issue with the new Rambo. Used a drop gauge and lowered z by 10 mm at a time, averaged, uploaded new firmware, checked again and by the 2nd time I had repeatable accuracy below what my gauge could measure.