Simple plugin to improve auto bed leveling, adding some conditions in order to minimize the number of ABLs triggered.


How it works?

The plugin reads G29* from *.gcode and check the bed mesh in memory.

  • If mesh is updated, M429 S1 is sent in order to load bed mesh from memory.
  • If mesh is outdated or doesn’t exist, G29* and M500 are sent in order to generate a new mesh and save it to eeprom, respectively.

    *: By default, the same ABL command read from your file is sent to the printer.


Credits to Oscar for the idea.


By default, SmartABL does not change the behaviour of the auto bed leveling. User must change default values in settings:

Settings panel

Leveling command

  • Ignore gcode read from files and send a custom gcode instead. Default: disabled (G29).

Force bed leveling

  • After # days. Default: disabled (1).
  • After # prints. Default: disabled (5).
  • If current print bed temperature is different from last print. Default: disabled.
  • If current print hotend temperature is different from last print. Default: disabled.

Prints counter

  • Take into account failed prints in the counter. Default: disabled (only successful prints increase the counter).
Screenshot of SmartABL settings panel

Side panel

  • ABL Restricted: Normal behaviour, the plugin chooses when to trigger ABL based on your settings.

  • ABL Always: Ignore settings; the plugin always trigger ABL. Handy when you need to force-update your mesh.

Screenshot of SmartABL side panel

Support me

You find this plugin helpful and want to support me?

Ko-fi link to support me