Plugin designed to expedite your 3D printing process. It smartly reduces unnecessary Auto Bed Leveling (ABL) actions

SmartABL

Plugin designed to expedite your 3D printing process. It smartly reduces unnecessary Auto Bed Leveling (ABL) actions, letting you focus on what’s important – your prints, not the prep time. Compatible with a wide array of 3D printing firmwares, SmartABL is perfect for anyone looking to enhance their printing efficiency, from hobbyists to professionals.

How it works?

The plugin reads ABL_CMD1 from your print file and check the bed mesh in memoryM.

  • If mesh is updated, M420 S1M is sent in order to load bed mesh from memory.
  • If mesh is outdated or doesn’t exist, ABL_CMD is sent in order to generate a new mesh. On Marlin, M500 is also sent to save the mesh on the eeprom.

1: ABL_CMD can be G29 (Marlin/Prusa-buddy), G80 (Prusa) or BED_MESH_CALIBRATE (Klipper). This can be customized in SmartABL settings.

Warning: Prusa and Klipper require at least 1 ABL to track the state.

Note: By default, the standard ABL command for each firmware triggers SmartABL algorithm, however, you can customize this behaviour in settings: the command that triggers the algorithm, the command sent to the printer or even ignore commands.

References:

Credits to Oscar for the idea.

Compatibility

  • Marlin (M)
  • Prusa (P)
  • Prusa-buddy (B)
  • Klipper (K)
  • Custom*

*: You can customize the gcode triggering ABL and the gcode sent to the printer in settings. Check the setting “Enable SmartABL on unknown firmware” to use not detected firmwares.

Want your firmware to be compatible? Open an Issue on github so we can add it 🙂

Don’t forget to upload plugin_SmartABL.log!!

Configuration

Commands

  • @SMARTABLRESET: Send this command by terminal or gcode to zero the counter.

Settings panel

GCODES

  • Trigger custom gcode(s): By default, SmartABL only triggers with the standard ABL commands, i.e. G29/G80/BED_MESH_CALIBRATE. However, you can define here a list of gcodes that can trigger SmartABl, e.g. macros or non-standard commands. Default: disabled (G29).

  • ABL custom gcode(s): By default, SmartABL sends the standard ABL commands, i.e. G29/G80/BED_MESH_CALIBRATE. However, you can define here a list of gcodes that will be sent instead, e.g. macros or non-standard commands. Default: disabled (G29).

  • Ignore gcode(s): Define here if you want to skip gcodes. The commands defined here won’t be sent to the printer. Default: disabled.

Force bed leveling

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

Extras

  • Take into account failed/stopped jobs in prints counter. Default: disabled (only successful prints increase the counter).
  • Enable SmartABL on unknown firmwares. Default: disabled.

    You have to enable and configure Trigger custom gcode(s) and ABL custom gcode(s). If you don’t configure these two settings, SmartABL assumes marlin firmware by default (i.e. G29 read from file and G29 send to printer when ABL is needed)

Screenshot of SmartABL settings panel

Side panel

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

  • P/FP: Number of current prints/Number of prints to force ABL.

  • 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