How to Enable Auto Bed Leveling in Cura? (BLTouch, EZABL)

Bed leveling is one of the most crucial steps to ensure a successful 3D printing process since a bed that isn’t level can cause all sorts of problems due to the printer miscalculating the distance between the bed and the nozzle.

While manually leveling a bed is possible with some effort and time, auto bed leveling with a probe such as BLTouch or EZABL is without a doubt the most optimal choice due to both the ease of use and the consistency.

Today, we will look at how you can enable auto bed leveling directly from Cura and instruct your printer to ensure that the build plate is level before each print without requiring the use of the printer’s interface.

So, how to enable auto bed leveling in Cura?

To enable auto bed leveling in Cura, add the G29 (Auto Bed Leveling) G-Code right below the G28 (Home All Axes) G-code in the Start G-code section of your printer’s Machine Settings.

Adding the G29 command will instruct the printer to run the auto bed leveling command before each print and ensure that your bed is level at all times.

Moving forward, we will discuss enabling and disabling auto bed leveling in Cura in more detail, find out how to auto-level the bed before the printer heats the components, and look at an optimized Start G-code snippet that you can directly copy.

How to Enable Auto Bed Leveling in Cura?

Enabling auto bed leveling is one of the easier things to do in Cura, as all you need to do is make a small addition to the start G-code section.

Here is a detailed step-by-step guide you can follow to enable Auto Bed Leveling in Cura:

  1. Click the Settings button on the top menu of Cura.
  2. Hover over the Printer option.
  3. Click the Manage Printers option in the dropdown menu that appears.
  4. Choose the printer you would like to configure from the left pane, and click the Machine Settings button located on the right.
  5. Click the end of the line that states “G28 ; Home all axes” and press Enter on your keyboard to make a new line.
  6. Type G29 on the new line and close the Machine Settings dialog.

After following these steps, the auto bed leveling command will be a part of Cura’s Start G-code routine that it sends to the printer before each print, instructing the printer to run auto bed leveling before moving on to the printing process.

How to Disable Auto Bed Leveling in Cura?

Similar to enabling it, disabling auto bed leveling in Cura is also an effortless task that won’t take too much of your time.

Here is a detailed step-by-step guide you can follow to disable Auto Bed Leveling in Cura:

  1. Press the Settings button on the top menu of Cura.
  2. Bring your cursor over the Printer option.
  3. Click the Manage Printers option, which should appear as a result of hovering over the Printer option.
  4. Select the printer you would like to configure from the left pane, and press the Machine Settings button to configure the printer.
  5. Locate the Start G-code section located at the bottom left of the Machine Settings window.
  6. Find the line with the G29 G-code, which should be right below G28 (home all axes), near the top.
  7. Delete the G29 line.

With the G29 G-code that instructs the printer to run auto bed leveling out of the Start G-code section, Cura won’t tell the printer to auto-level the bed before each print anymore.

How to Auto Bed Level Before Heating in Cura?

While the standard starting sequence involves heating the extruder and the bed before conducting the auto bed leveling process, it’s also possible to reverse this order and instruct the printer to level the bed before heating the components.

To auto bed level before heating in Cura, you will need to place the G28 and G29 commands above the M140, M190, and M104 G-codes, responsible for heating the bed and the extruder, in the Start G-Code section of Cura.

Since the M140, M190, and M104 G-codes don’t exist in the Start G-code section by default due to Cura automatically injecting them as the first set of G-codes to run, you will need to add these G-codes manually below G29.

An example Start G-code snippet for auto bed leveling before heating would be such:

G28 ; Home all axes

G29 ; ABL

M140 S{material_bed_temperature_layer_0} ; Start heating the bed to temperature

M109 S{material_print_temperature_layer_0} ; Start heating the extruder to temperature and wait until ready

M190 S{material_bed_temperature_layer_0} ; Wait until the bed is at the desired temperature

As you can see in this snippet, we have placed the G29 command before M140, M109, and M190 G-codes, instructing the printer to conduct the auto bed leveling process before heating the extruder and the bed.

BLTouch Start G-Code for Cura (Compatible with Ender 3 Pro/V2 and Ender 5)

As the Start G-code section of Cura can become quite confusing if you aren’t too familiar with G-code commands, ensuring that the code works as optimally as possible with a BLTouch probe involved may not always be easy.

If you are unsure how to do your own G-code configuration, here is a Cura Start G-code snippet that implements auto bed leveling with a BLTouch, compatible with popular printers such as the Ender 3.

M140 S{material_bed_temperature_layer_0} ; Start heating the bed to temperature

M190 S{material_bed_temperature_layer_0} ; Wait until the bed is at the desired temperature

M104 S160; Pre-heat the extruder to 160 degrees

G28 ; Home all axes

G29 ; ABL

G92 E0 ; Reset extruder

M104 S{material_print_temperature_layer_0} ; Start heating the extruder to temperature

G1 X0.1 Y20 Z0.3 F5000.0 ; Move to starting position

M109 S{material_print_temperature_layer_0} ; Wait until the extruder is at the desired temperature

G1 Z2.0 F3000 ; Move Z-Axis up to prevent scratching of the heated bed

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 the side

G1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second line

G92 E0 ; Reset Extruder

G1 Z2.0 F3000 ; Move-Z Axis up to prevent scratching of the heated bed

*Credits to lushprojects at Reddit for the Start G-code snippet, which you can find the original of here.

While the dimensions may require change depending on the build plate you use, you can copy this snippet without the need for any modification if you use an Ender 3.

Wrapping Up

Considering that enabling auto bed leveling in Cura is a straightforward task that will ensure that your bed is level before each printing process, we don’t see much of a reason to do it anywhere else.

To quickly recap, all you have to do to enable auto bed leveling in Cura is add the G29 G-code responsible for auto bed leveling in the Start G-Code section of Cura right below the G28 G-code that instructs the printer to home all the axes.

You can locate the Start G-code section in the Machine Settings window, which you can find by clicking Settings on the top menu, hovering over Printer, clicking the Manage Printers button, and clicking the Machine Settings button in the window that appears.

Happy printing!