You are here:
< Back

PLEASE NOTE: If you have a printer with the stock board the easiest and quickest setup is to use our Unified Firmware package. This guide is for people using the EZABL with a non-supported printer/board and/or those that want to use “Vanilla” Marlin with their machine.

This guide covers the probe settings and complementing features to get the best experience with the EZABL when using Vanilla Marlin. Other printer settings will need to be set to get the firmware working in general with your particular machine. This guide is assuming that you already have all your other printer settings configured. You can get the latest version of Marlin from their downloads page here: http://marlinfw.org/meta/download/

This guide was written based on Marlin 1.1.9 and 2.0 BugFix as of 9/8/2019. Marlin is constantly being worked on so some configuration values may be renamed in later releases. Typically when this happens the IDE will throw an error telling you that a value was replaced and what the one it was replaced with currently is.

Configuration.h Settings

The below settings should be enabled (uncommented) and set to the settings we have listed below. The values in the large table should be listed in order that they appear in the Configuration.h file to make setting up easier.

Make sure when you set your DEFAULT_MAX_FEEDRATE you set Z to 15 instead of the default of 5.

#define Z_MIN_ENDSTOP_INVERTING true

#define Z_MIN_PROBE_ENDSTOP_INVERTING true

#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN

#define FIX_MOUNTED_PROBE

#define PROBING_HEATERS_OFF

#define XY_PROBE_SPEED 8000

#define Z_PROBE_SPEED_FAST HOMING_FEEDRATE_Z

#define Z_PROBE_SPEED_SLOW (Z_PROBE_SPEED_FAST / 2)

#define MULTIPLE_PROBING 2

#define Z_CLEARANCE_DEPLOY_PROBE 5

#define Z_CLEARANCE_BETWEEN_PROBES 3

#define Z_CLEARANCE_MULTI_PROBE 3

#define Z_AFTER_PROBING 5

#define Z_PROBE_LOW_POINT -3

#define Z_PROBE_OFFSET_RANGE_MIN -5

#define Z_PROBE_OFFSET_RANGE_MAX 1

#define Z_MIN_PROBE_REPEATABILITY_TEST

#define AUTO_BED_LEVELING_BILINEAR

#define RESTORE_LEVELING_AFTER_G28

#define EXTRAPOLATE_BEYOND_GRID

#define Z_SAFE_HOMING

#define HOMING_FEEDRATE_Z (8*60)

#define EEPROM_SETTINGS

Probing Points

GRID_MAX_POINTS_X is what controls how many points you probe, stick to odd numbers.

#define GRID_MAX_POINTS_X 3
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X

Set your probe offsets

Z_PROBE_OFFSET_FROM_EXTRUDER should always be set to 0. Most printed mounts have their offsets on the pages where you download them from. To see the ones we already have you can look in the Configuration_backend.h file from our Unified Firmare to see all the probe offsets that we have programmed into our firmware if you are using a mount we already support in the Unified Firmware.

#define X_PROBE_OFFSET_FROM_EXTRUDER 10 // X offset: -left +right [of the nozzle]
#define Y_PROBE_OFFSET_FROM_EXTRUDER 10 // Y offset: -front +behind [the nozzle]
#define Z_PROBE_OFFSET_FROM_EXTRUDER 0

Probe Edge Settings

MIN_PROBE_EDGE tells the firmware how far from the edge of the bed to probe. Usually 30 works for most machines. Printers with 300+ beds use 45-50 for this setting. Make sure you are not probing directly over screw heads on the bed. If you are change the setting to probe further in or out on the bed but make sure your probe is 100% on the bed with about 10mm from the edge to spare for the best reading.

#define MIN_PROBE_EDGE 30

 

Paste this above the “// Set the boundaries for probing (where the probe can reach).” section

 

#define LEFT_PROBE_BED_POSITION (max(MIN_PROBE_EDGE , X_PROBE_OFFSET_FROM_EXTRUDER))

#define RIGHT_PROBE_BED_POSITION (min(X_BED_SIZE – MIN_PROBE_EDGE , X_BED_SIZE + X_PROBE_OFFSET_FROM_EXTRUDER))

#define FRONT_PROBE_BED_POSITION (max(MIN_PROBE_EDGE , Y_PROBE_OFFSET_FROM_EXTRUDER))

#define BACK_PROBE_BED_POSITION (min(Y_BED_SIZE – MIN_PROBE_EDGE , Y_BED_SIZE + Y_PROBE_OFFSET_FROM_EXTRUDER))

Other Recommended Settings

#define INDIVIDUAL_AXIS_HOMING_MENU

Configuration_adv.h Settings

The below settings should be enabled (uncommented) and set to the settings we have listed below.

#define BABYSTEPPING

#define DOUBLECLICK_FOR_Z_BABYSTEPPING

#define DOUBLECLICK_MAX_INTERVAL 2000If you want to combine the ZOffset with Babystepping enable this line:

#define BABYSTEP_ZPROBE_OFFSET

If you have a Graphical LCD and want a fancier babystepping menu enable this line:

#define BABYSTEP_ZPROBE_GFX_OVERLAY