I just assembled Ender 3 and noticed that the X-axis movement doesn't correspond to the commands. When I make it move 1 mm with the encoder it moves 16 mm. Everything is in the "out of the box" configuration.

The current steps/mm for the X-axis read (from the display) 80 steps/mm.

Am I supposed to manually fix this with steps per mm setting or could it be another problem. Other axes seem to work fine. I also double checked and everything should be built correctly.

  • $\begingroup$ Hi and welcome to 3DPrinting.SE! Beware, please sort this before printing as this may damage your printer! $\endgroup$
    – 0scar
    Commented Jun 11, 2021 at 6:37

2 Answers 2


To answer your question explicitly,

Am I supposed to manually fix this with steps per mm setting

No, you should only do that if the incorrect value has been set, the reported value of 80 corresponds to the values found in all configuration.h files for the boards used by the Ender 3. This value implies the use of stepper drivers with a 1/16 micro-stepping value.

or could it be another problem.

Yes, due to the value of 80 being set, there seems to be a problem with the electronics, this can be a jumper issue or a soldering issue. As this is an "out-of-the-box" issue, you should notify your vendor that the printer isn't functioning properly before you screw it open, it might void the warranty as this is not something you expect from an "out-of-the-box" 3D printer.

The following text is added for a more complete answer to look up the value (initially, the question did not mention this), this is left for others that may stumble upon this question.

You can check these values from the printer LCD (stepper settings menu) or by attaching a console (What is a printer console/terminal?) over USB and enter G-code M92 (or for older Marlin versions M503 without any parameters as the Marlin documentation states:

Get the current steps-per-unit settings using M92 with no parameters or M503 on older versions of Marlin.

The response will give you the values of the steps/mm for all steppers. The value for the X-axis should be 80 (default) according to the Marlin Configurations-release- for the Ender 3 printer (note that there are multiple controller boards, so micro-stepping value can be an issue).

If you need to change the value, you need to use M92 X[value] to change the value, use M500 to store the value. Be sure to note which controller board you have, what micro-stepping value is used (1/16, 1/32, etc.). Note that specific calculators exist to assist you.

Based on the comment, the value is already 80, so that should be correct, you really need to check if the board is using micro-stepping, it appears it isn't using this.

You could also test a self generated G-code file containing:

G28 ; home print head
G1 X0 Y0 Z2 F500 ; move to the origin at slightly higher position
G1 X10 Y10 ; move 10 mm in X and Y, if incorrect the machine is at (150, 10) or possibly (160, 10) -> this will hint to micro-stepping issue (full steps, not using 1/16 micro-stepping)

The benefit of using this G-code is that it will amplify the movement by tenfold, if there is a micro-stepping issue, it is easier to measure the movement of the head, a difference of 0 -> 150 1) or 160 is easier measured than 0 -> 15 1) (or 16). If the controller board uses jumpers to set the micro-stepping mode, there might be incorrectly placed. This also tests if the Y-axis is suffering of the same issue, else the print head will be located at (150, 10) 1) or (160, 10).

1) Note that the original question mentioned 15 mm prior to the more logical 16 mm

  • $\begingroup$ And the movement distance seems to be indeed 16 times higher like Tom van der Zanden mentioned in his answer. $\endgroup$
    – Kid B
    Commented Jun 11, 2021 at 10:04
  • $\begingroup$ Not a surprise, I already mentioned the micro-stepping issue before that answer, hence the modified answer with the G-code script, 160 measure more easily than 16! :-) I think you should get a replacement board rather than tinkering, the X-axis stepper is clearly not configured correctly, whether soldering or jumper issue, it is not up to you so solve. $\endgroup$
    – 0scar
    Commented Jun 11, 2021 at 10:10

When I make it move 1 mm with the encoder it moves more like 15 mm.

15 is suspiciously close to 16. Perhaps the motor driver is operating in full step mode rather than microstepping. This could be due to a manufacturing defect in the electronics. To diagnose this you would need a multimeter to measure the voltage on the microstepping select pins of the affected motor driver.

Some main boards have jumpers to select the microstepping mode. I am not entirely sure but I don't think the main board that comes with the Ender 3 has them, but (in case I am mistaken) it could be worth checking that you did not forget to put any jumpers in place.

To fix the problem you could also reduce the steps/mm from 80 to 5 but operating in full step mode would seriously degrade print quality, so it is preferrable to find the root cause.

  • $\begingroup$ Do you know which pins should I measure, I cannot open the control board box now to check these connections there. $\endgroup$
    – Kid B
    Commented Jun 11, 2021 at 9:08
  • $\begingroup$ Anyways, I checked the voltages there. Chose one of the outer pins as ground, the two pins in the middle were both 24 V and the other outer pin 0 V. $\endgroup$
    – Kid B
    Commented Jun 11, 2021 at 9:15
  • $\begingroup$ @KidB You did not measure the correct pins. They are internal to the electronics and you must open the box to have access to them. You need to find the motor driver chip, look up its datasheet to find out which pins are MS1/2(/3) and measure those. Perhaps you can find somebody local to your area with electronics knowledge? $\endgroup$ Commented Jun 11, 2021 at 10:27

You must log in to answer this question.

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