Homing your printer systematically before a print is redundant, a waste of time and sometimes even an issue (if your homing probe is misbehaving and you’ve already dialed an offset by need to restart the print for a clean first layer for instance) I recently came upon this G28 macro that only homes of the printed is not already homed.

[gcode_macro G28]
# Only home if needed.
rename_existing: G28.1
gcode:
    {% if PA %}
        G28.1 {PA}
    {% else %}
        {% if printer.toolhead.homed_axes != "xyz" %}
            G28.1
        {% endif %}
    {% endif %}

All you have to do is add this to your macro.cfg file and it will override any G28 command from any gcode and only execute a home if needed. If you want to execute a home even if not needed, you can send the command G28.1 or give it a parameter, like G28 X, or G28 XYZ and it will force the homing

  • ShepherdPie
    link
    fedilink
    English
    arrow-up
    5
    ·
    3 months ago

    Seems like a more efficient choice but be wary (weary?) that some printers will unlock the motors after sitting for X amount of time without any movement or commands, which will require you to home again anyways.

    This seems ideal if you’re running prints back to back though.

      • ShepherdPie
        link
        fedilink
        English
        arrow-up
        3
        ·
        3 months ago

        Yeah I meant it as more a heads up if someone finds themselves in a scenario like you described where their bed probe is on the fritz and they’re hoping to work around that.

        • LazaroFilm@lemmy.worldOP
          link
          fedilink
          English
          arrow-up
          1
          ·
          3 months ago

          Also, this is for Klipper you can change the behavior of your printer to do whatever you want.