[gcode_macro _HOME_X] gcode: # Always use consistent run_current on A/B steppers during sensorless homing {% set RUN_CURRENT_X = printer.configfile.settings['tmc5160 stepper_x'].run_current|float %} {% set RUN_CURRENT_Y = printer.configfile.settings['tmc5160 stepper_y'].run_current|float %} {% set HOME_CURRENT = 0.5 %} SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CURRENT} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CURRENT} # Home G28 X # Move away G91 G1 X-10 F1200 G90 # Wait just a moment G4 P500 # Set current during print SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CURRENT_X} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={RUN_CURRENT_Y} [gcode_macro _HOME_Y] gcode: # Set current for sensorless homing {% set RUN_CURRENT_X = printer.configfile.settings['tmc5160 stepper_x'].run_current|float %} {% set RUN_CURRENT_Y = printer.configfile.settings['tmc5160 stepper_y'].run_current|float %} {% set HOME_CURRENT = 0.5 %} SET_TMC_CURRENT STEPPER=stepper_x CURRENT={HOME_CURRENT} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={HOME_CURRENT} # Home G28 Y # Move away G91 G1 Y-10 F1200 G90 # Wait just a moment G4 P500 # Set current during print SET_TMC_CURRENT STEPPER=stepper_x CURRENT={RUN_CURRENT_X} SET_TMC_CURRENT STEPPER=stepper_y CURRENT={RUN_CURRENT_Y} [homing_override] axes: xyz set_position_z: 0 gcode: {% set home_all = 'X' not in params and 'Y' not in params or 'Z' in params %} # set_position_z does home z # but if x and y are not, guess that z is not really either z {% if not "x" in printer.toolhead.homed_axes and not "y" in printer.toolhead.homed_axes %} # move up 5 G91 G0 Z5 G90 {% else %} # or to 5 G0 Z5 {% endif %} {% if home_all or 'X' in params %} _HOME_X {% endif %} {% if home_all or 'Y' in params %} _HOME_Y {% endif %} {% if home_all or 'Z' in params %} G0 X150 Y150 F6000 G28 Z G1 Z10 {% endif %}