<p>This seems like Z homing issue. Sounds pretty frustrating, so I will try to give some hints, though I do not have Ender 3. Also maybe my few questions will be helpful.</p>
<p>Did you &quot;adjusted all the wheels on the printer&quot; after the Z position was zeroed? This could be crucial, especially that firmware may raise Z up after homing (e.g. to 4mm). The G-Code you have sent makes simple Z moves: rises to 2mm, then lowers to 0.28 mm above the sea level (and F is denotion of speed). And obviously this should happen AFTER homing Z axis, not earlier - could you check earlier G-Code for G28 call?
If you can manually move the bed out of heatend's range (to avoid crashing it) then I suggest to use own file containing only two commands to experiment with Z homing only, e.g.:</p>
<pre><code>G90             ; absolute positioning (just to be sure it is not incremental G91)
G28 Z           ; homing Z axis
G1 Z0.0 F100    ; firmware may have raised Z up slightly, so lower again to 0
</code></pre>
<p>If homing would cause the bed accident, than I am unfortunately right - or:</p>
<p>(Added after tracing real problem) Check if Z axis is not loose - e.g. coupler screws are tight - so Z axis cannot rotate on its own by gravity and wight of carrige. When Z steppers are enabled, you should not be possible to move carriage up and down with slight pressur of hands.</p>
<p>Does the printer react to Z endstop? This is first thing to check, actually. You can you press it with finger during Z homing to check if it would react properly (Z homing stopped).</p>
<p>If not, then... did you compile Marlin on your own? For example maybe the Z endstop is or should be inverted. More insight is needed then against the Configuration.h, e.g. file for Z_MIN_ENDSTOP settings. Would be good to have its version from previous firmware, or google some valid Ender 3 file to compare with.</p>

CC BY-SA 4.0
2021-01-06T00:28:57.960Z
This is all great stuff. I'll run through your suggestions and checks in the morning and feedback
Saf
CC BY-SA 4.0
2021-01-06T13:06:10.620Z
I just had a chance to go through your suggestions:
Saf
CC BY-SA 4.0
2021-01-06T13:11:43.960Z
I just had a chance to go through your suggestions:
1) Did you "adjusted all the wheels on the printer" after the Z position was zeroed?
- Yes, I adjusted all wheels and ensured everything was correct.

2) could you check earlier G-Code for G28 call?
- I updated my original post with the full gcode

3) Does the printer react to Z endstop
- Yes, it functions correctly. If I move the Z to the middle of the axis and then click auto-home and press down the switch, it stops.

As a test, I updated the firmware to the official firmware from the creality website and the issue remains :/
Saf
CC BY-SA 4.0
2021-01-06T13:14:42.387Z
I changed line G1 Z0.28 F240 to G1 Z2 F240 and when it does the initial line down the side of the print bed (before it starts the actual print) the levelling is correct based on my manual levelling.

When it moves to the middle of the bed and starts the actual print, it again drops down and crushes the paper that I put down. I ran the printer with no filament and the paper below the nozzle and when I let it run it will continue to "print" (with no filament) and the nozzle will continue to increase in height layer after layer but that first part is definitely an issue. I hope this makes sense
Saf
CC BY-SA 4.0
2021-01-06T14:05:30.540Z
At the very end of the start g-code (in my question) I added the line: G1 Z2 F240 but this also didn't fix the z axis being lower than it should be. I don't know a lot about gcode so I'm pretty sure I'm trying to fix it in a way that isn't correct but thought I'd test it out
Saf
CC BY-SA 4.0
2021-01-06T14:12:44.347Z
Thank you for adding slicer's G-Code settings. Adding G1 Z2 anywhere should just move (rais or lower) the carriage to fixed position 2mm above the bed. After your change from 0.28, if the initial line is indeed "printed" these 2mm above the bed (as expected), or significantly lower (e.g. just above the bed)? Please add to "Start G-Code" two beginnign lines, just for case: G21 (set units to millimeters) and G90 (use absolute positioning). BTW. I assume that you made few attempts of slicing and it happens for any printing order - you could always open sample file in text editor to check details.
octopus8
CC BY-SA 4.0
2021-01-06T14:29:50.617Z
G21 - I mean to ensure you do not try to print in inches (moving Z by 2 inches could be drastical; Ender has threaded-rod-based Z axis; Z motor could loose many steps for example, and cause positioning issues).  I suggest you put my 3-lines G-Code sample to the separate file, and execute it: does it hit and push into the bed?
octopus8
CC BY-SA 4.0
2021-01-06T15:33:31.293Z
I added both of those and unfortunately it made no difference :( When it comes to the Z axis hitting the bed, it does not push into it, it touches it and stops, doesn't attempt to keep going down, but prevents the first layer from extruding any filament due to no space between nozzle and bed.
Saf
CC BY-SA 4.0
2021-01-06T17:37:48.990Z
Ok... if it just touches the bed after executing G1 Z0.0, this seems correct! But let's check that you have not overtightened some screws, as this is very small diff and you may just not noticed "pushing". So after "G1 Z0.28" it should be slightly above a bed - can you recheck (e.g. move manualy from the menu)? I suggest this, because you said that moving to 2mm (G1 Z2) already helped. Also please note: that call will not fix the Z axis anyhow, it only causes to move temporarily, then printer will continue execution, and several G-Code lines later will again move to the different Z position.
octopus8
CC BY-SA 4.0
2021-01-06T18:10:18.130Z
Hey, I want to thank you for attempting to help but I've lost all motivation with 3d printing after suffering through endless issues, this one being the latest. I thought it might have been a quick fix but it doesn't look so. Again, I do appreciate your help in this thread but for the moment I've packed it away. If at another point down the road I feel like trying again, I'll give your suggestions a go.
Saf
CC BY-SA 4.0
2021-01-07T14:43:32.237Z
So, yesterday I was frustrated and let it get the better of me. I decided to give it one last go today before packing it away fully and I managed to spot the issue... all it was in the end, was a loose screw on the coupler that holds the Z rod to the stepper motor... I tightened that up and everything is working correctly.

Thank you again for your help, without all this I wouldn't have been able to narrow down the problem and I also learned a lot after reading through your comments and trying things.
Saf
CC BY-SA 4.0
2021-01-07T18:22:04.103Z
That's fantastic! I hope your next prints will make you happy and return a favor for this frustration. I have improved the answer to reflect the root cause.
octopus8
CC BY-SA 4.0
2021-01-06T00:21:13.053Z
2021-01-07T18:18:50.183Z
2021-01-07T18:18:50.183Z
octopus8
<p>I'm having an issue with bed levelling since upgrading my stock <em>Ender 3 pro</em> to <em>Marlin 2.0.7.2</em>.</p>
<p>The upgrade process seems to have gone through fine, I get the new options and it shows the FW version when I power on. My issue however, is that after I auto home the printer, disable stoppers and then level the bed, using a piece of paper, any time I attempt to print the nozzle hits the bed which stops all flow as there's no space for the filament to come out.</p>
<p>This process is exactly the same as I used to do before the upgrade and I never had issues, only since the upgrade.</p>
<p>For reference, I've manually adjusted all the wheels on the printer so there's a large gap (for testing) between the paper and the nozzle at any point on the bed (the piece of paper passes below the nozzle with zero resistance). However, when I attempt a print, it homes the printer and then the nozzle drops lower and crushes any paper I put between the nozzle and the bed (I do this while testing so it doesn't damage the bed), the paper is impossible to move by hand.</p>
<p>Anyone know what I'm doing wrong here? None of the guides that I've found for installing <em>Marlin 2.x</em> on the <em>Ender 3 Pro</em> mention anything about having to make any changes to allow the Z axis to work like before so at a bit of a loss as to why this is happening.</p>
<hr />
<p>Something that occurred to me. I use PrusaSlicer as my slicer and I noticed that it has the following lines in the custom G-code for the template that I always use that reference &quot;Z&quot;, now admittedly I'm no expert with G-codes but could it be either of these that's causing the issue:</p>
<pre><code>G1 Z2 F240
G1 Z0.28 F240
</code></pre>
<p>Edited to add full prusaslicer template gcode below:</p>
<p><strong>Start G-code</strong></p>
<pre><code>M83 ; extruder relative mode
M104 S[first_layer_temperature] ; set extruder temp
M140 S[first_layer_bed_temperature] ; set bed temp
M190 S[first_layer_bed_temperature] ; wait for bed temp
M109 S[first_layer_temperature] ; wait for extruder temp
G28 ; home all
G1 Z2 F240
G1 X2 Y10 F3000
G1 Z0.28 F240
G92 E0
G1 Y190 E15 F1500 ; intro line
G1 X2.3 F5000
G92 E0
G1 Y10 E15 F1200 ; intro line
G92 E0
</code></pre>
<p><strong>End G-code</strong></p>
<pre><code>{if max_layer_z &lt; max_print_height}G1 Z{z_offset+min(max_layer_z+2, max_print_height)} F600{endif} ; Move print head up
G1 X5 Y170 F{travel_speed*60} ; present print
{if max_layer_z &lt; max_print_height-10}G1 Z{z_offset+min(max_layer_z+70, max_print_height-10)} F600{endif} ; Move print head further up
M140 S0 ; turn off heatbed
M104 S0 ; turn off temperature
M107 ; turn off fan
M84 X Y E ; disable motors
</code></pre>
<p><strong>Before layer G-code</strong></p>
<pre><code>;BEFORE_LAYER_CHANGE
G92 E0
;[layer_z]
</code></pre>
<p><strong>After layer G-code</strong></p>
<pre><code>;AFTER_LAYER_CHANGE
;[layer_z]
</code></pre>

<creality-ender-3><z-axis>
Z axis issue after upgrade from stock FW to Marlin 2.0.7.2 on Ender 3 Pro
Saf
# Z axis issue after upgrade from stock FW to Marlin 2.0.7.2 on Ender 3 Pro

(Asked by: username_0 on 2021-01-05)

I'm having an issue with bed levelling since upgrading my stock *Ender 3 pro* to *Marlin 2.0.7.2*.

The upgrade process seems to have gone through fine, I get the new options and it shows the FW version when I power on. My issue however, is that after I auto home the printer, disable stoppers and then level the bed, using a piece of paper, any time I attempt to print the nozzle hits the bed which stops all flow as there's no space for the filament to come out.

This process is exactly the same as I used to do before the upgrade and I never had issues, only since the upgrade.

For reference, I've manually adjusted all the wheels on the printer so there's a large gap (for testing) between the paper and the nozzle at any point on the bed (the piece of paper passes below the nozzle with zero resistance). However, when I attempt a print, it homes the printer and then the nozzle drops lower and crushes any paper I put between the nozzle and the bed (I do this while testing so it doesn't damage the bed), the paper is impossible to move by hand.

Anyone know what I'm doing wrong here? None of the guides that I've found for installing *Marlin 2.x* on the *Ender 3 Pro* mention anything about having to make any changes to allow the Z axis to work like before so at a bit of a loss as to why this is happening.

---

Something that occurred to me. I use PrusaSlicer as my slicer and I noticed that it has the following lines in the custom G-code for the template that I always use that reference "Z", now admittedly I'm no expert with G-codes but could it be either of these that's causing the issue:

```
G1 Z2 F240
G1 Z0.28 F240

```

Edited to add full prusaslicer template gcode below:

**Start G-code**

```
M83 ; extruder relative mode
M104 S[first_layer_temperature] ; set extruder temp
M140 S[first_layer_bed_temperature] ; set bed temp
M190 S[first_layer_bed_temperature] ; wait for bed temp
M109 S[first_layer_temperature] ; wait for extruder temp
G28 ; home all
G1 Z2 F240
G1 X2 Y10 F3000
G1 Z0.28 F240
G92 E0
G1 Y190 E15 F1500 ; intro line
G1 X2.3 F5000
G92 E0
G1 Y10 E15 F1200 ; intro line
G92 E0

```

**End G-code**

```
{if max_layer_z < max_print_height}G1 Z{z_offset+min(max_layer_z+2, max_print_height)} F600{endif} ; Move print head up
G1 X5 Y170 F{travel_speed*60} ; present print
{if max_layer_z < max_print_height-10}G1 Z{z_offset+min(max_layer_z+70, max_print_height-10)} F600{endif} ; Move print head further up
M140 S0 ; turn off heatbed
M104 S0 ; turn off temperature
M107 ; turn off fan
M84 X Y E ; disable motors

```

**Before layer G-code**

```
;BEFORE_LAYER_CHANGE
G92 E0
;[layer_z]

```

**After layer G-code**

```
;AFTER_LAYER_CHANGE
;[layer_z]

```

**Tags:** creality-ender-3, z-axis


---

## 1 answers

### Answer by username_1 on 2021-01-06. Score: 0 | Accepted answer

This seems like Z homing issue. Sounds pretty frustrating, so I will try to give some hints, though I do not have Ender 3. Also maybe my few questions will be helpful.

Did you "adjusted all the wheels on the printer" after the Z position was zeroed? This could be crucial, especially that firmware may raise Z up after homing (e.g. to 4mm). The G-Code you have sent makes simple Z moves: rises to 2mm, then lowers to 0.28 mm above the sea level (and F is denotion of speed). And obviously this should happen AFTER homing Z axis, not earlier - could you check earlier G-Code for G28 call?
If you can manually move the bed out of heatend's range (to avoid crashing it) then I suggest to use own file containing only two commands to experiment with Z homing only, e.g.:

```
G90             ; absolute positioning (just to be sure it is not incremental G91)
G28 Z           ; homing Z axis
G1 Z0.0 F100    ; firmware may have raised Z up slightly, so lower again to 0

```

If homing would cause the bed accident, than I am unfortunately right - or:

(Added after tracing real problem) Check if Z axis is not loose - e.g. coupler screws are tight - so Z axis cannot rotate on its own by gravity and wight of carrige. When Z steppers are enabled, you should not be possible to move carriage up and down with slight pressur of hands.

Does the printer react to Z endstop? This is first thing to check, actually. You can you press it with finger during Z homing to check if it would react properly (Z homing stopped).

If not, then... did you compile Marlin on your own? For example maybe the Z endstop is or should be inverted. More insight is needed then against the Configuration.h, e.g. file for Z\_MIN\_ENDSTOP settings. Would be good to have its version from previous firmware, or google some valid Ender 3 file to compare with.

> **Comments:**
> **username_0**: This is all great stuff. I'll run through your suggestions and checks in the morning and feedback  
> **username_0**: I just had a chance to go through your suggestions:  
> **username_0**: I just had a chance to go through your suggestions: 1) Did you "adjusted all the wheels on the printer" after the Z position was zeroed? - Yes, I adjusted all wheels and ensured everything was correct.  2) could you check earlier G-Code for G28 call? - I updated my original post with the full gcode  3) Does the printer react to Z endstop - Yes, it functions correctly. If I move the Z to the middle of the axis and then click auto-home and press down the switch, it stops.  As a test, I updated the firmware to the official firmware from the creality website and the issue remains :/  
> **username_0**: I changed line G1 Z0.28 F240 to G1 Z2 F240 and when it does the initial line down the side of the print bed (before it starts the actual print) the levelling is correct based on my manual levelling.  When it moves to the middle of the bed and starts the actual print, it again drops down and crushes the paper that I put down. I ran the printer with no filament and the paper below the nozzle and when I let it run it will continue to "print" (with no filament) and the nozzle will continue to increase in height layer after layer but that first part is definitely an issue. I hope this makes sense  
> **username_0**: At the very end of the start g-code (in my question) I added the line: G1 Z2 F240 but this also didn't fix the z axis being lower than it should be. I don't know a lot about gcode so I'm pretty sure I'm trying to fix it in a way that isn't correct but thought I'd test it out  
> **username_1**: Thank you for adding slicer's G-Code settings. Adding G1 Z2 anywhere should just move (rais or lower) the carriage to fixed position 2mm above the bed. After your change from 0.28, if the initial line is indeed "printed" these 2mm above the bed (as expected), or significantly lower (e.g. just above the bed)? Please add to "Start G-Code" two beginnign lines, just for case: G21 (set units to millimeters) and G90 (use absolute positioning). BTW. I assume that you made few attempts of slicing and it happens for any printing order - you could always open sample file in text editor to check details.  
> **username_1**: G21 - I mean to ensure you do not try to print in inches (moving Z by 2 inches could be drastical; Ender has threaded-rod-based Z axis; Z motor could loose many steps for example, and cause positioning issues).  I suggest you put my 3-lines G-Code sample to the separate file, and execute it: does it hit and push into the bed?  
> **username_0**: I added both of those and unfortunately it made no difference :( When it comes to the Z axis hitting the bed, it does not push into it, it touches it and stops, doesn't attempt to keep going down, but prevents the first layer from extruding any filament due to no space between nozzle and bed.  
> **username_1**: Ok... if it just touches the bed after executing G1 Z0.0, this seems correct! But let's check that you have not overtightened some screws, as this is very small diff and you may just not noticed "pushing". So after "G1 Z0.28" it should be slightly above a bed - can you recheck (e.g. move manualy from the menu)? I suggest this, because you said that moving to 2mm (G1 Z2) already helped. Also please note: that call will not fix the Z axis anyhow, it only causes to move temporarily, then printer will continue execution, and several G-Code lines later will again move to the different Z position.  
> **username_0**: Hey, I want to thank you for attempting to help but I've lost all motivation with 3d printing after suffering through endless issues, this one being the latest. I thought it might have been a quick fix but it doesn't look so. Again, I do appreciate your help in this thread but for the moment I've packed it away. If at another point down the road I feel like trying again, I'll give your suggestions a go.  
> **username_0**: So, yesterday I was frustrated and let it get the better of me. I decided to give it one last go today before packing it away fully and I managed to spot the issue... all it was in the end, was a loose screw on the coupler that holds the Z rod to the stepper motor... I tightened that up and everything is working correctly.  Thank you again for your help, without all this I wouldn't have been able to narrow down the problem and I also learned a lot after reading through your comments and trying things.  
> **username_1**: That's fantastic! I hope your next prints will make you happy and return a favor for this frustration. I have improved the answer to reflect the root cause.  

---

