I am completely new to 3D Printing. I got my first printer a Creality Ender 5 Pro yesterday.

My problem

I did shutdown the printer without the axis being in home position (X: 0, Y: 0, Z: 320 instead of X: 0, Y: 0, Z: 0). I thought this should be no problem but after turning the printer on again the info screen showed the axis as 0, 0, 0 again...

So I can't move the Z axis up again because the printer thinks its already at 0.

NOTE: On the Ender 5 the bed is lowering for the value of the Z so 320 is the lowest and 0 the highest. The motor works because it tries to go down further if i increase Z position but I am scared of damaging the motor because it can't move further but it tries to (judging by that weird sound).

My question

Is this a normal behavior that the printer axis cant remember its position? Because I think as I built the printer the axis were also not at the 0, 0, 0 position and on the first start they moved back without any problems.

Has someone any ideas how to solve this? Or is this a broken printer?

PS: I could replicate this behavior on X and Y as well (moving them with prepare->move axis and then shutdown the printer) but here for I can easily disable the motors and move them manually back to 0, 0 which isn't the case for the Z Axis.

I hope I could explain that understandably.


Once you pull the plug or disable power to the stepper motors, the printer forgets its location. That is perfectly normal and exactly how it is supposed to work.

The printer knows where the printer volume is once you have "homed" the printer. Homing is done prior to printing with G-code G28 which should be present in your start G-code script of your slicer. Once homed, the offsets from the endstops determine where the origin of the printer is and the maximum dimensions determine the build volume.

After you switched on the printer, the printer doesn't know where the origin is and movement is limited. E.g. when the following constant is defined: #define NO_MOTION_BEFORE_HOMING no movement at all is possible before the printer is homed, this can help prevent destroying the printer.

  • $\begingroup$ I don't know about the Ender-5 but the Ender-3 series has a front-panel command to "Auto Home" under "Prepare". I assume the 5 has similar. $\endgroup$
    – DoxyLover
    Jul 2 '20 at 18:14
  • $\begingroup$ @DoxyLover Marlin has a default option in the LCD menu to home all axis (the Ender 5 has the default reprap 12864 graphical display as the Ender 3), you can also activate homing of each axis separately in the Configuration.h, use: #define INDIVIDUAL_AXIS_HOMING_MENU. $\endgroup$
    – 0scar
    Jul 3 '20 at 7:29

(Summed up from several entries in this thread.)

It is untrue assumption that printer can't move back to home anymore, until the G-Code G28 is executed. Printer can home, but must be ordered to do it.

There are several ways to home printer (LCD hints are for Marlin firmware):

  • start the print, which (by the book) includes G28 in its initial part

  • use LCD menu option to home all axes: Prepare > Auto Home

  • use LCD menu options to home single axes, for example: Prepare > Auto Home Z, after they are activated by change in Configuration.h:

  • add own options to custom menu in LCD: Custom Commands > Your command - for example to have more complex scripts at hand, like custom sequence of axes, multiple repeats, different back-off bahavior or move to center of bed (G-Code snippets)

  • current position may be updated with G-Code G92, and this hack may be useful when print stuck (e.g. power outage, thermal issue) and there is no space any more to home Z, but its actual position is known: from serial terminal or in start of printed file (the remaining part?) set known position of Z (G92 Znnn) and let X and Y home the standard way (G28 X Y)


Slightly unscrew the motor. Manually rig the Z-axis above its lowest point. Rescrew the motor back into place tightly. Then auto home it.

  • $\begingroup$ I disagree with this sugesstion. Z homing is often. Acting like this would quickly lead to wear of hardware (e.g. coupler's thread) or to introduce errors like too loose screw (we had this before). Much more useful would be to enable homing axes individually or Z with custom menu, or even ad-hoc update current position with G92 Znnn (hacky). $\endgroup$
    – octopus8
    Jan 27 at 1:02
  • $\begingroup$ @octopus8 - you should post the last sentence as an answer (as it really is an answer), and expand upon it. The first half (the first three sentences are good though). $\endgroup$
    – Greenonline
    Jan 27 at 15:18
  • $\begingroup$ Good point. I added the answer summing up homing options. $\endgroup$
    – octopus8
    Jan 27 at 22:22

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.