How to modify printer.toolhead.homed_axes in macro?

Basic Information:

Printer Model: selfmade core xy (2 servos, 4 steppers)
MCU / Printerboard: Raspberry Pi 4b + 2x BigTreeTech SKR 1.3
klippy.log (96.2 KB)

Describe your issue:

Hi,
I just started to dig a little bit deeper into Klipper and macro programming. I want to use a special G28 homing procedure with some extra clearance moves. Here I discovered some problems with the printer.toolhead.homed_axes flag:

To move before homing with an active kinematic transformation I need to use

SET_KINEMATIC_POSITION

Although I e.g. only want moving in Z direction (3 steppers), using this command leads to setting all axes as homed.
Before creating a feature request to home only those axes entered as parameter I first tried to unset the internal homed flag. printer.toolhead.homed_axes is read-only so something like

{% set printer.toolhead.homed_axes = "x" %} # invalid

is not valid.
When using M18 or M84 Klipper does not support using a kinematic axis like

M84 X # parameter without effect

M18 or M84 disable all drives and clear all home flags.

Using

SET_STEPPER_ENABLE STEPPER=stepper_x ENABLE=0

also does not affects the homed flag as this command does not interacts with the kinematic model.

So, after all these tests I am still not able to force a wanted printer.toolhead.homed_axes flag. I need this for a save behavior when re-implementing e.g. G28 Y

Any comments, ideas or help?

Thanks

Thosch

1 Like

+1 I noticed a similar issue. Did you find a good workaround for this?

See

Thank you for the detailed reply! :smile:

What details are you missing? If a longer answer helps:

  • There is currently no workaround
  • The feature is WIP and not yet available, but you can cherry-pick this PR if you want.