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@midwest.social
    link
    fedilink
    English
    arrow-up
    5
    ·
    1 month 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@midwest.social
        link
        fedilink
        English
        arrow-up
        3
        ·
        1 month 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
          ·
          1 month ago

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

  • IMALlama@lemmy.world
    link
    fedilink
    English
    arrow-up
    3
    ·
    1 month ago

    If you’re having some level of variation in your z-offset, or you run an enclosed printer that grows some in z when it heats, this macro is great: https://github.com/protoloft/klipper_z_calibration

    Just make sure your probe location is in the same spot as your bed mesh zero point.

    Note that it’s intended for klicky probes, but you could probably use it with other probes with some modification.

  • papalonian@lemmy.world
    link
    fedilink
    English
    arrow-up
    1
    ·
    1 month ago

    Yup, I got this set up when my BLTouch mount broke and I had to zip tie it to the print head resulting in less-than-perfect repeatability. Changing the default G28 command is a good way to do it, I did it by making a new macro CG28 and put that in my START_PRINT macro in place of G28.