I have an Ender 3 and I have a problem with auto home. I use auto home and then level the bed with the wheels beneath the bed. I then start a print and the first layer is well above the bed. Perhaps about a millimeter. If I stop the print at this point and level the bed so that the first layer prints the normal paper width above the bed, everything works fine.

The stops for the 3 axes seem to be in the right places and there is nothing noticeable obstructing them. When I use auto home it does touch the stops at all 3 axes. My belts seem to be tight and there is no movement of the bed if I try to jiggle it with my hand.

Is there a way to adjust the Z axis so that the auto home elevation and the elevation of first layer of the print will be the same?

This is an example of the first lines of G-code:

;Filament used: 1.70716m 
;Layer height: 0.16 
;Generated with Cura_SteamEngine 4.5.0 
M140 S50 
M190 S50 
M104 S200 
M109 S200 
M82 ;absolute extrusion mode 
; Ender 3 Custom Start G-code 
G92 E0 ; Reset Extruder 
G28 ; Home all axes 
G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed 
G1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position 
G1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first line 
G1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to side a little
  • $\begingroup$ Does this answer your question? Recalibrating Home-position $\endgroup$
    – Trish
    Mar 18, 2020 at 18:36
  • $\begingroup$ Welcome to the Stack Exchange. You need to define an offset of the home from the endstops. Here are one two three questions about the same thing! $\endgroup$
    – Trish
    Mar 18, 2020 at 18:38
  • $\begingroup$ To me, this sounds more like an incorrect start G-code script. Maybe you can post the G-code? Also, please explain if this is a vanilla firmware, or have you flashed a new firmware version onto the board? $\endgroup$
    – 0scar
    Mar 18, 2020 at 22:03
  • $\begingroup$ I was having the problem with the original firmware so I flashed a new version (Ender 3 Firmware_1.1.6) and get the same problem. I don't see any way to attach a file. I doubt that it is an error in the G-code because I've updated Cura and it still does it. I'm using Cure 4.5.0. I've also had this issue with Thingiverse files $\endgroup$
    – Daknife
    Mar 19, 2020 at 0:38
  • 1
    $\begingroup$ I kind of have an idea why it might be: there are variants with a glass bed out there, you might have grabbed one of those! $\endgroup$
    – Trish
    Mar 19, 2020 at 10:01

3 Answers 3


It sounds like there’s two things that could be going wrong here:

  1. Your starting G-code has some code in it that’s making it think that you want to treat a few layers up as Z0. If I were you I would minimize the start G-code until you get this sorted out. A quick fix would Be to add the following code to the end of your starting G-code:

    G28: Homes all axis
    G28 Z0: Homes the Z-axis
    G29: Auto-bed-leveling (optional if you’ve already attached a leveling device)
    G1 Z3 F5000: Raises the Z position up 3 mm relative to where it was (G1 tells the machine to move, Z3 tells it how much to move and along which axis, F5000 is the speed of movement)
    G92 Z0.3: Treats the current position as Z = 0.3 (applying an offset of -0.3 and creating a sort of false home for the Z-axis). 

    Any commands made after this simple code will assume the print bed is lower than what it actually is (to account for any original gap between the nozzle and the print bed). If you want to have the nozzle raised, you’ll have to insert a negative value after the G92 command.

  2. You have a Z-offset set in your slicer software. This is a super easy fix if you find that you have one set, and it’s usually just because the slicer is using the preset for an Ender 3 with a glass bed. I would try setting it back to 0 if there is one already and try the G-code above.

    Even if the starting G-code I provided doesn’t solve your problem you should still find the Z-Offset setting in your slicer software and set it down -0.1 mm at a time until your printer starts printing in the correct Z-Axis position.

Here’s an All3DP article that helped a ton when I first got started: Ender 3 (Pro) Z Offset: How to Adjust It

  • $\begingroup$ Your second point is not supported by the G-code presented by the OP, it starts printing at 0.3 mm height, so there is no slicer offset, then the value would have read e.g. 'G1 X0.1 Y20 Z3.3 F5000.0 ; Move to start position ' not Z0.3 (you see no redefinition of the Z height). $\endgroup$
    – 0scar
    Nov 12, 2021 at 16:04

The Z stop can be loosened and moved up but it seems weird that it would need to be moved and I don't think that would fix your issue. The Z height should be the same for the auto home and printing. I auto home then disable steppers and slowly move to all 4 corners. I have caught myself resting my arm on the X axis and moving it down. If that happens I manually move the Z until it just barely presses the Z stop in when I hear the button click. I have heard some say that they got a warped bed. I wonder if that's the issue. A glass plate would be a good way to be sure or maybe using a straight edge to check.You could also double check the tightness on the wheels is just right. Tomb of 3D Printed Horrors has a really good setup video called "Creality Ender 3 assembly and pro build tips" that has a few other tips that really helped me get set up well.

  • $\begingroup$ I don't think its a warped bed because once I get it going I dont have any issues with the bed. The Z-offset is currently set at +.2. I can't get it to move to negative numbers. Is this normal? $\endgroup$
    – Daknife
    Mar 19, 2020 at 1:48
  • $\begingroup$ @Daknife What do you mean with a 0.2 mm Z-offset, maybe you should explain this in the question as if you use the endstop for levelling, an offset other than a piece of paper during levelling would not be necessary. It's unimaginable that the Z axis homes lower than the bed requiring you to insert a positive Z-offset. $\endgroup$
    – 0scar
    Mar 19, 2020 at 6:38
  • $\begingroup$ I guess I used the wrong term. I was refering to the value under Prepare>Move Axis>Move Z $\endgroup$
    – Daknife
    Mar 19, 2020 at 15:20

From the added G-code instructions you can see that the printer is instructed to go down to a height of 0.3 mm (G1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position). If the printer nozzle is not at 0.3 mm height, there must be a Z-offset present in the firmware or incorrect placement of the endstop.


You must log in to answer this question.

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