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

  • @IMALlama
    link
    English
    33 months 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.