<p>If nozzle sets lower than it should, after heating up, then you may need to calibrate with heater turned on.</p>

<p>Another (although less likely) reason can be an incorrect Z steps number. However, if the print, after adjusting the first line height, does well, this should not be the case.</p>

<p>Fast track solution is to use <code>M206</code> (something like <code>M206 Z0.3</code>) command to adjust nozzle offset, in your case Z position. This does not fix the root cause but should allow you to mitigate the problem.</p>

CC BY-SA 3.0
2017-03-29T04:03:23.567Z
I did all my testing with the bed at 70c.
Jeff
CC BY-SA 3.0
2017-03-28T17:43:44.450Z
2017-05-11T18:48:44.007Z
2017-05-11T18:48:44.007Z
Mikhail Z
<p>I found the issue. When the hotend and bed are at temps for PLA everything works fine but at temps for ABS the Z offset would get all messed up. After a bunch of testing I was able to track it down to a single gcode statment <code>G1 Z15.0 F6000</code> 
At the higher temps my Z stepper skips steps at that feed rate. </p>

<p>The "Custom FDM printer" machine settings I used for my printer in Cura had that statement in it and so did the cat gcode that was on the card from the factory. I changed the feed rate to 200 and was able to print in ABS.</p>

<p>I was surprised Marlin didn't have a 'limit the feedrate for Z to this number' setting.</p>

CC BY-SA 3.0
2017-03-29T10:04:32.233Z
To avoid these kind of issues you need to adjust maximum feedrate for you printer, M203 command. This would prevent Marlin from trying to move the head too fast
Mikhail Z
CC BY-SA 3.0
2017-03-29T14:29:11.907Z
now I'm confused, in the M503 you can see the setting for the M203 Z is at 5.0, but I can still send G1 Z15.0 F6000 and get it to skip. Shouldn't that be constrained to a max feedrate of 5?
Jeff
CC BY-SA 3.0
2017-03-29T18:40:34.043Z
Normally it shouldn't move faster than M503 setting. Make sure that you have saved your settings in EEPROM if you have it enabled.
Mikhail Z
CC BY-SA 3.0
2017-03-29T18:46:21.337Z
Error in the comment: M203
Mikhail Z
CC BY-SA 3.0
2017-03-29T04:16:25.513Z
2017-03-29T15:35:28.007Z
2017-03-29T15:35:28.007Z
Jeff
<p>I replaced the controller board in my Monoprice Select Mini with an Arduino/Ramps setup and compiled an uploaded Marlin 1.1.0-RC8 to run it. I've got most everything calibrated and working with one exception.</p>

<p>I tell the printer to home for xyz and then level my bed with a piece of paper then start a print and the nozzle consistently drops too far down into the bed and nothing can extrude. If I adjust the bed and put 1-2mm gap between the nozzle and bed then it prints fine. </p>

<p>I can't find anything in Marlin to adjust for this and I'm kind of stumped. I'm printing the original cat gcode that came with the printer that should just work fine as it always has and shouldn't have anything that a slicer would put in there to screw things up. </p>

<p>Can anyone point me in the right direction?</p>

<p>This is the output of M503</p>

<pre><code>Send: M503
Recv: echo:Steps per unit:
Recv: echo:  M92 X93.00 Y93.00 Z1097.50 E99.00
Recv: echo:Maximum feedrates (mm/s):
Recv: echo:  M203 X300.00 Y300.00 Z5.00 E25.00
Recv: echo:Maximum Acceleration (mm/s2):
Recv: echo:  M201 X3000 Y3000 Z100 E10000
Recv: echo:Accelerations: P=printing, R=retract and T=travel
Recv: echo:  M204 P3000.00 R3000.00 T3000.00
Recv: echo:Advanced variables: S=Min feedrate (mm/s), T=Min travel feedrate (mm/s), B=minimum segment time (ms), X=maximum XY jerk (mm/s),  Z=maximum Z jerk (mm/s),  E=maximum E jerk (mm/s)
Recv: echo:  M205 S0.00 T0.00 B20000 X20.00 Y20.00 Z0.40 E5.00
Recv: echo:Home offset (mm)
Recv: echo:  M206 X0.00 Y0.00 Z0.00
Recv: echo:Material heatup parameters:
Recv: echo:  M145 S0 H180 B70 F255
Recv:   M145 S1 H240 B110 F0
Recv: echo:PID settings:
Recv: echo:  M301 P26.15 I2.74 D62.35
Recv: echo:  M304 P231.09 I45.21 D295.34
Recv: echo:Filament settings: Disabled
Recv: echo:  M200 D3.00
Recv: echo:  M200 D0
Recv: ok
</code></pre>

<p>I also wanted to test whether the nozzle is actually moving closer. I did a G28 and manually put a piece of paper's width gap between the nozzle and the bed at all points. Then I started a print with no filament but with the sheet between the nozzle and bed. When it got to temp it homed all the axis and moved the nozzle to the first position. I would expect the paper to maintain the same gap but it tightly presses into the paper. The first gcode move that includes the Z before extruding is :</p>

<pre><code>G0 F3600 X42.228 Y46.985 Z0.3
</code></pre>

<p>Which you would expect would put even more space between the nozzle and bed for the first .3 layer of filament but it isn't.</p>

<p>I printed directly from the SD Card to hopefully rule out Octoprint running gcode before the print so I really think the culprit is Marlin at this point.</p>

CC BY-SA 3.0
2017-03-27T10:28:49.837Z
Could you post an output of M503 command?
Mikhail Z
CC BY-SA 3.0
2017-03-28T12:26:43.193Z
I did. And I added my latest troubleshooting results.
Jeff
<marlin><ramps-1.4><arduino-mega-2650>
Z axis at print is lower than when I home
Jeff
# Z axis at print is lower than when I home

(Asked by: username_0 on 2017-03-26)

I replaced the controller board in my Monoprice Select Mini with an Arduino/Ramps setup and compiled an uploaded Marlin 1.1.0-RC8 to run it. I've got most everything calibrated and working with one exception.
I tell the printer to home for xyz and then level my bed with a piece of paper then start a print and the nozzle consistently drops too far down into the bed and nothing can extrude. If I adjust the bed and put 1-2mm gap between the nozzle and bed then it prints fine. 
I can't find anything in Marlin to adjust for this and I'm kind of stumped. I'm printing the original cat gcode that came with the printer that should just work fine as it always has and shouldn't have anything that a slicer would put in there to screw things up. 
Can anyone point me in the right direction?
This is the output of M503
Send: M503
Recv: echo:Steps per unit:
Recv: echo:  M92 X93.00 Y93.00 Z1097.50 E99.00
Recv: echo:Maximum feedrates (mm/s):
Recv: echo:  M203 X300.00 Y300.00 Z5.00 E25.00
Recv: echo:Maximum Acceleration (mm/s2):
Recv: echo:  M201 X3000 Y3000 Z100 E10000
Recv: echo:Accelerations: P=printing, R=retract and T=travel
Recv: echo:  M204 P3000.00 R3000.00 T3000.00
Recv: echo:Advanced variables: S=Min feedrate (mm/s), T=Min travel feedrate (mm/s), B=minimum segment time (ms), X=maximum XY jerk (mm/s),  Z=maximum Z jerk (mm/s),  E=maximum E jerk (mm/s)
Recv: echo:  M205 S0.00 T0.00 B20000 X20.00 Y20.00 Z0.40 E5.00
Recv: echo:Home offset (mm)
Recv: echo:  M206 X0.00 Y0.00 Z0.00
Recv: echo:Material heatup parameters:
Recv: echo:  M145 S0 H180 B70 F255
Recv:   M145 S1 H240 B110 F0
Recv: echo:PID settings:
Recv: echo:  M301 P26.15 I2.74 D62.35
Recv: echo:  M304 P231.09 I45.21 D295.34
Recv: echo:Filament settings: Disabled
Recv: echo:  M200 D3.00
Recv: echo:  M200 D0
Recv: ok

I also wanted to test whether the nozzle is actually moving closer. I did a G28 and manually put a piece of paper's width gap between the nozzle and the bed at all points. Then I started a print with no filament but with the sheet between the nozzle and bed. When it got to temp it homed all the axis and moved the nozzle to the first position. I would expect the paper to maintain the same gap but it tightly presses into the paper. The first gcode move that includes the Z before extruding is :
G0 F3600 X42.228 Y46.985 Z0.3

Which you would expect would put even more space between the nozzle and bed for the first .3 layer of filament but it isn't.
I printed directly from the SD Card to hopefully rule out Octoprint running gcode before the print so I really think the culprit is Marlin at this point.

**Tags:** marlin, ramps-1.4, arduino-mega-2650
> **Comments:**
> **username_1**: Could you post an output of M503 command?  
> **username_0**: I did. And I added my latest troubleshooting results.  

---

## 2 answers

### Answer by username_0 on 2017-03-29. Score: 3 | Accepted answer

I found the issue. When the hotend and bed are at temps for PLA everything works fine but at temps for ABS the Z offset would get all messed up. After a bunch of testing I was able to track it down to a single gcode statment `G1 Z15.0 F6000`
At the higher temps my Z stepper skips steps at that feed rate.

The "Custom FDM printer" machine settings I used for my printer in Cura had that statement in it and so did the cat gcode that was on the card from the factory. I changed the feed rate to 200 and was able to print in ABS.

I was surprised Marlin didn't have a 'limit the feedrate for Z to this number' setting.

> **Comments:**
> **username_1**: To avoid these kind of issues you need to adjust maximum feedrate for you printer, M203 command. This would prevent Marlin from trying to move the head too fast  
> **username_0**: now I'm confused, in the M503 you can see the setting for the M203 Z is at 5.0, but I can still send G1 Z15.0 F6000 and get it to skip. Shouldn't that be constrained to a max feedrate of 5?  
> **username_1**: Normally it shouldn't move faster than M503 setting. Make sure that you have saved your settings in EEPROM if you have it enabled.  
> **username_1**: Error in the comment: M203  

---

### Answer by username_1 on 2017-03-28. Score: 0

If nozzle sets lower than it should, after heating up, then you may need to calibrate with heater turned on.

Another (although less likely) reason can be an incorrect Z steps number. However, if the print, after adjusting the first line height, does well, this should not be the case.

Fast track solution is to use `M206` (something like `M206 Z0.3`) command to adjust nozzle offset, in your case Z position. This does not fix the root cause but should allow you to mitigate the problem.

> **Comments:**
> **username_0**: I did all my testing with the bed at 70c.  

---

