<p>No, it is not necessary to call <code>G29</code> before every print to &quot;auto level the bed&quot;<sup> <em>1)</em></sup> provided that:</p>
<ul>
<li>the bed surface has not changed (e.g. large load or force has been exerted on the build platform, leveling screws are accidentally adjusted, a substantial different bed temperature is used causing different thermal stresses, etc.),</li>
<li>the carriage of the hotend is stable (some printers, e.g. the cantilever type, or single side Z lead screw driven printers are more prone to an unstable or level axis), and</li>
<li>the scanned surface geometry is saved in the controller board memory.</li>
</ul>
<p>There are several solutions to solve this. You could manually run the <code>G29</code> command once in a while storing the scanned surface with an <code>M500</code> command  to save the mesh to the EEPROM (memory) of the controller board (this can be done from the printer controller display for Marlin operated printers, an interface like a <a href="/q/10573/">terminal</a> or a print server application, or from pre-stored <code>.g</code>/G-code files on an SD card). If you use the SD-card, note that it is possible to <a href="/a/6740/">auto-launch G-code files</a> from the root of the SD-card upon inserting.</p>
<p>Do note to remove the <code>G29</code> command in the start code of the slicer. The <code>G29</code> command needs to be replaced with <a href="https://marlinfw.org/docs/gcode/M420.html" rel="noreferrer"><code>M420 S1</code></a> for Marlin firmware operated printers. This command will load the saved mesh at the start of the print from memory. This is especially useful when using a large amount of probing points (e.g. a large bed mesh using a 10 x 10 mesh of 100 probing points, to ensure the mesh is up-to-date, once in a while initiate the scanning sequence to store an updated mesh).</p>
<hr />
<p><sup><em>1)</em></sup> <em>Please note that auto-bed leveling might be confusingly indicating that some magic leveling of the build platform/surface itself is taking place (this is also possible in Marlin when there are multiple Z steppers and lead screws used), but, that is not actually what is meant with this phrasing. The <a href="https://3dprinting.stackexchange.com/a/16605">process of the auto-bed leveling</a> actually scans the surface of the build surface and compensates the height of the print head/nozzle during a predefined printing height (usually 10 mm, set in the firmware or through G-code: <code>M420 Z10 ; Gradually reduce compensation until Z=10</code>), during this printing process the nozzle gradually be less and less compensated until there is no compensation and the print nozzle will print parallel to the guide axis (e.g. the X-axis in i3 style printers and X-Y axes in CoreXY kinematics printers.</em></p>

CC BY-SA 4.0
2021-03-26T11:08:20.213Z
2021-08-23T20:21:07.803Z
2021-08-23T20:21:07.803Z
0scar
<p>Various methods to scan the top surface exist to improve the bed adhesion to prevent prints to come loose from the bed during printing: e.g. BLTouch and clones or inductive and capacitive sensors/probes.</p>
<p>In order, for the print head, to use this so-called auto-bed leveling (ABL) you need to add the <code>G29</code> command in your start G-code of your slicer.</p>
<p>Is it necessary to call <code>G29</code> before every print?</p>
<hr />
<p><em>The rationale behind this is that scanning the surface takes up some time, certainly on very short prints, it would be great if the surface geometry could be saved.</em></p>

<g-code><bed-leveling><z-probe><knowledgebase><inductive-sensor>
Using auto-bed leveling, do I need to initiate G29 before every print?
0scar
# Using auto-bed leveling, do I need to initiate G29 before every print?

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

Various methods to scan the top surface exist to improve the bed adhesion to prevent prints to come loose from the bed during printing: e.g. BLTouch and clones or inductive and capacitive sensors/probes.

In order, for the print head, to use this so-called auto-bed leveling (ABL) you need to add the `G29` command in your start G-code of your slicer.

Is it necessary to call `G29` before every print?

---

*The rationale behind this is that scanning the surface takes up some time, certainly on very short prints, it would be great if the surface geometry could be saved.*

**Tags:** g-code, bed-leveling, z-probe, knowledgebase, inductive-sensor

---

## 1 answers

### Answer by username_0 on 2021-03-26. Score: 10 | Accepted answer

No, it is not necessary to call `G29` before every print to "auto level the bed" *1)* provided that:

* the bed surface has not changed (e.g. large load or force has been exerted on the build platform, leveling screws are accidentally adjusted, a substantial different bed temperature is used causing different thermal stresses, etc.),
* the carriage of the hotend is stable (some printers, e.g. the cantilever type, or single side Z lead screw driven printers are more prone to an unstable or level axis), and
* the scanned surface geometry is saved in the controller board memory.

There are several solutions to solve this. You could manually run the `G29` command once in a while storing the scanned surface with an `M500` command to save the mesh to the EEPROM (memory) of the controller board (this can be done from the printer controller display for Marlin operated printers, an interface like a [terminal](/q/10573/) or a print server application, or from pre-stored `.g`/G-code files on an SD card). If you use the SD-card, note that it is possible to [auto-launch G-code files](/a/6740/) from the root of the SD-card upon inserting.

Do note to remove the `G29` command in the start code of the slicer. The `G29` command needs to be replaced with [`M420 S1`](https://marlinfw.org/docs/gcode/M420.html) for Marlin firmware operated printers. This command will load the saved mesh at the start of the print from memory. This is especially useful when using a large amount of probing points (e.g. a large bed mesh using a 10 x 10 mesh of 100 probing points, to ensure the mesh is up-to-date, once in a while initiate the scanning sequence to store an updated mesh).

---

*1)* *Please note that auto-bed leveling might be confusingly indicating that some magic leveling of the build platform/surface itself is taking place (this is also possible in Marlin when there are multiple Z steppers and lead screws used), but, that is not actually what is meant with this phrasing. The [process of the auto-bed leveling](https://3dprinting.stackexchange.com/a/16605) actually scans the surface of the build surface and compensates the height of the print head/nozzle during a predefined printing height (usually 10 mm, set in the firmware or through G-code: `M420 Z10 ; Gradually reduce compensation until Z=10`), during this printing process the nozzle gradually be less and less compensated until there is no compensation and the print nozzle will print parallel to the guide axis (e.g. the X-axis in i3 style printers and X-Y axes in CoreXY kinematics printers.*


---

