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

  • @[email protected]
    link
    fedilink
    English
    51 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.

    • LazaroFilmOP
      link
      English
      21 month ago

      Then if the motors are released the home will activate. No issue there.

      • @[email protected]
        link
        fedilink
        English
        31 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.

        • LazaroFilmOP
          link
          English
          11 month ago

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

  • @IMALlama
    link
    English
    31 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
    link
    English
    11 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.