# This macro was provided by discord user Garrettwp to whom i give my thanks for sharing it with me. # I have tweaked it a lot. # They are based on the great Annex magprobe dockable probe macros "#Originally developed by Mental, # modified for better use on K-series printers by RyanG and Trails", kudos to them. # That macro as since evolved into a klipper plugin that currently is pending inclusion in klipper, # more information here, https://github.com/Annex-Engineering/Quickdraw_Probe/tree/main/Klipper_Macros # User richardjm revised the macro variables and added some functions, thanks a lot # by standing on the shoulders of giants, lets see if we can see further # # the current home for this version is https://github.com/jlas1/Klicky-Probe # the 1000 values below is to give an error instead of doing something wrong, hopefully, this won't be used is a printer larger than 1 meter [gcode_macro _User_Variables] variable_verbose: True # Enable verbose output variable_debug: False # Enable Debug output variable_travel_speed: 200 # how fast all other travel moves will be performed when running these macros variable_move_accel: 1000 # how fast should the toolhead accelerate when moving variable_dock_speed: 50 # how fast should the toolhead move when docking the probe for the final movement variable_release_speed: 75 # how fast should the toolhead move to release the hold of the magnets after docking variable_z_drop_speed: 20 # how fast the z will lower when moving to the z location to clear the probe variable_safe_z: 25 # Minimum Z for attach/dock and homing functions # if true it will move the bed away from the nozzle when Z is not homed variable_enable_z_hop: True # set this to false for beds that fall significantly under gravity (almost to Z max) variable_max_bed_y: 350 # maximum Bed size avoids doing a probe_accuracy outside the bed variable_max_bed_x: 350 # maximum Bed size avoids doing a probe_accuracy outside the bed # if a separate Z endstop switch is in # use, specify the coordinates of the switch here (Voron). # Set to 0 to have the probe move to center of bed #variable_z_endstop_x: 228 #variable_z_endstop_y: 346 variable_z_endstop_x: 0 variable_z_endstop_y: 0 #Check the printer specific documentation on klipper Dock/Undock configuration, these are dummy values #dock location variable_docklocation_x: 36 # X Dock position variable_docklocation_y: 350 # Y Dock position variable_docklocation_z: -128 # Z dock position (-128 for a gantry/frame mount) #The following variables are used if the dock is deployed and retracted via a servo motor variable_enable_dock_servo: False # Set to true if your klicky dock is servo-controlled variable_servo_name: 'NAME' # The name of the dock servo defined in printer.cfg under [servo] variable_servo_deploy: 10 # This EXAMPLE is the value used to deploy the servo fully variable_servo_retract: 11 # This EXAMPLE is the value used to retract the servo fully (initial_angle in [servo] config) variable_servo_delay: 250 # This is a delay to wait the servo to reach the requested position, be carefull with high values #Dock move, final toolhead movement to release the probe on the dock #it's a relative move Variable_dockmove_x: 30 Variable_dockmove_y: 0 Variable_dockmove_z: 0 #Attach move. final toolhead movement to attach the probe on the mount #it's a relative move Variable_attachmove_x: 0 Variable_attachmove_y: 30 Variable_attachmove_z: 0 #Umbilical to help untangle the umbilical in difficult situations variable_umbilical: False # should we untangle the umbilical variable_umbilical_x: 15 # X umbilical position variable_umbilical_y: 15 # Y umbilical position # location to park the toolhead variable_park_toolhead: False # Enable toolhead parking variable_parkposition_x: 345 variable_parkposition_y: 345 variable_parkposition_z: 30 variable_version: 1 # Helps users to update the necessary variables, do not update if the variables above are not updated #Below this remark, you normally do not need to configure #Attach move2 Variable_attachmove2_x: 0 # intermediate toolhead movement to attach Variable_attachmove2_y: 0 # the probe on the dock Variable_attachmove2_z: 0 # (can be negative) variable_home_backoff_x: 10 # how many mm to move away from the X endstop after homing X # this is useful for the voron v0 to enable the toolhead to move out of the way to allow an unstricted Y homing variable_home_backoff_y: 10 # how many mm to move away from the Y endstop after homing Y variable_override_homing: '' # configures what axis to home first # '' = default klicky behavior (tries to avoid the hitting the dock) # 'X' = forces X to home first # 'Y' = forces Y to home first variable_dock_on_zhome: True # docks the probe on Z Homing if not necessary (avoids hitting the bed on some printers # Do not modify below gcode: {% set Mx = printer['configfile'].config["stepper_x"]["position_max"]|float %} {% set My = printer['configfile'].config["stepper_y"]["position_max"]|float %} {% set Ox = printer['configfile'].config["probe"]["x_offset"]|float %} {% set Oy = printer['configfile'].config["probe"]["y_offset"]|float %} {% set Oz = printer['configfile'].config["probe"]["z_offset"]|float %} # If x, y coordinates are set for z endstop, assign them {% if z_endstop_x != 0 or z_endstop_y != 0 %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=z_endstop_x VALUE={ z_endstop_x } SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=z_endstop_y VALUE={ z_endstop_y } # if no x, y coordinates for z endstop, assume probe is endstop and move toolhead to center of bed {% else %} SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=z_endstop_x VALUE={ (Mx * 0.5) - Ox } SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=z_endstop_y VALUE={ (My * 0.5) - Oy } {% endif %}