<blockquote>
<p>Now, all of that aside, I guess, in theory, it WOULD be possible for the printer to use these 16 measurements to dynamically ADJUST the height DURING THE PRINT based on where the head is SUPPOSED to be versus where the ACTUAL height of that spot actually IS. However, I cannot find anything that claims this is what happens</p>
</blockquote>
<p>This is actually what happens. This behavior is clearly specified in the <a href="https://marlinfw.org/docs/gcode/G029.html" rel="nofollow noreferrer">firmware documentation</a>:</p>
<blockquote>
<p>Mesh leveling measures the height of the bed at several points to generate a 3D mesh representing bed imperfections. With compensation enabled, the nozzle follows the bed contours by dynamically adjusting the Z position (using bilinear interpolation between the measured points). The nozzle follows the contours of the bed more accurately with more mesh points and/or finer segmentation of moves.</p>
</blockquote>

CC BY-SA 4.0
2020-12-21T17:12:43.520Z
2020-12-21T17:12:43.520Z
Tom van der Zanden
<p>Why do printers, like the Ender 5 Plus, execute the G29 routine prior to every print?  I understand the purpose of this step when MANUALLY leveling the bed since you are presented with the 16 measurements and can adjust the four corners of the bed.  However, from what I can tell, there is no way any of the printers out there (Creality, and others) to actually level the bed.  Since there are only TWO Z-axis motors... one on each SIDE of the bed... then, at most, the only thing the printer COULD do at this stage is to gradually TILT the bed from side to side to adjust the height of the left or right side.</p>
<p>Now, all of that aside, I guess, in theory, it WOULD be possible for the printer to use these 16 measurements to dynamically ADJUST the height DURING THE PRINT based on where the head is SUPPOSED to be versus where the ACTUAL height of that spot actually IS.  However, I cannot find anything that claims this is what happens.  From everything I find, the G29 routine is run and is done.  This means you can only benefit from it during the manual leveling process.</p>
<p>Am I missing something?</p>

<g-code><bltouch><creality-ender-5>
Why use G29 during a print?
Fred Lackey
# Why use G29 during a print?

(Asked by: username_0 on 2020-12-21)

Why do printers, like the Ender 5 Plus, execute the G29 routine prior to every print? I understand the purpose of this step when MANUALLY leveling the bed since you are presented with the 16 measurements and can adjust the four corners of the bed. However, from what I can tell, there is no way any of the printers out there (Creality, and others) to actually level the bed. Since there are only TWO Z-axis motors... one on each SIDE of the bed... then, at most, the only thing the printer COULD do at this stage is to gradually TILT the bed from side to side to adjust the height of the left or right side.

Now, all of that aside, I guess, in theory, it WOULD be possible for the printer to use these 16 measurements to dynamically ADJUST the height DURING THE PRINT based on where the head is SUPPOSED to be versus where the ACTUAL height of that spot actually IS. However, I cannot find anything that claims this is what happens. From everything I find, the G29 routine is run and is done. This means you can only benefit from it during the manual leveling process.

Am I missing something?

**Tags:** g-code, bltouch, creality-ender-5


---

## 1 answers

### Answer by username_1 on 2020-12-21. Score: 2

> Now, all of that aside, I guess, in theory, it WOULD be possible for the printer to use these 16 measurements to dynamically ADJUST the height DURING THE PRINT based on where the head is SUPPOSED to be versus where the ACTUAL height of that spot actually IS. However, I cannot find anything that claims this is what happens

This is actually what happens. This behavior is clearly specified in the [firmware documentation](https://marlinfw.org/docs/gcode/G029.html):

> Mesh leveling measures the height of the bed at several points to generate a 3D mesh representing bed imperfections. With compensation enabled, the nozzle follows the bed contours by dynamically adjusting the Z position (using bilinear interpolation between the measured points). The nozzle follows the contours of the bed more accurately with more mesh points and/or finer segmentation of moves.


---

