diff --git a/disabled_eddy.cfg b/disabled_eddy.cfg deleted file mode 100644 index e8f0b40..0000000 --- a/disabled_eddy.cfg +++ /dev/null @@ -1,71 +0,0 @@ -[gcode_macro G28] -rename_existing: G28.1 -gcode: - #SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=homing VALUE=True # Uncomment this if using a KNOMI and then remove the G28 macro from the KNOMI.cfg - G28.1 {rawparams} - {% if not rawparams or (rawparams and 'Z' in rawparams) %} - PROBE - SET_Z_FROM_PROBE - {% endif %} - #SET_GCODE_VARIABLE MACRO=_KNOMI_STATUS VARIABLE=homing VALUE=False # Uncomment this if using a KNOMI and then remove the G28 macro from the KNOMI.cfg - - - -# Uncomment this if you are using Eddy as the probe AND the homing endstop -[gcode_macro SET_Z_FROM_PROBE] -gcode: - {% set cf = printer.configfile.settings %} - SET_GCODE_OFFSET_ORIG Z={printer.probe.last_z_result - cf['probe_eddy_current btt_eddy'].z_offset + printer["gcode_macro SET_GCODE_OFFSET"].runtime_offset} - G90 - G1 Z{cf.safe_z_home.z_hop} - - -# Uncomment this if you are using Eddy as the probe AND the homing endstop AND would like to use the beta z-offset control -[gcode_macro Z_OFFSET_APPLY_PROBE] -rename_existing: Z_OFFSET_APPLY_PROBE_ORIG -gcode: - SAVE_VARIABLE VARIABLE=nvm_offset VALUE={ printer["gcode_macro SET_GCODE_OFFSET"].runtime_offset } - - - -# Uncomment the lines in this macro if you are using Eddy as the probe AND the homing endstop AND would like to use the beta z-offset control -[gcode_macro SET_GCODE_OFFSET] -rename_existing: SET_GCODE_OFFSET_ORIG -variable_restored: False # Mark whether the var has been restored from NVM -variable_runtime_offset: 0 -gcode: - {% if params.Z_ADJUST %} - SET_GCODE_VARIABLE MACRO=SET_GCODE_OFFSET VARIABLE=runtime_offset VALUE={ printer["gcode_macro SET_GCODE_OFFSET"].runtime_offset + params.Z_ADJUST|float } - {% endif %} - {% if params.Z %} - {% set paramList = rawparams.split() %} - {% for i in range(paramList|length) %} - {% if paramList[i]=="Z=0" %} - {% set temp=paramList.pop(i) %} - {% set temp="Z_ADJUST=" + (-printer["gcode_macro SET_GCODE_OFFSET"].runtime_offset)|string %} - {% if paramList.append(temp) %}{% endif %} - {% endif %} - {% endfor %} - {% set rawparams=paramList|join(' ') %} - SET_GCODE_VARIABLE MACRO=SET_GCODE_OFFSET VARIABLE=runtime_offset VALUE=0 - {% endif %} - SET_GCODE_OFFSET_ORIG { rawparams } - - - -# This macro automates a lot of the frequency mapping process and simplifies the steps significantly. -[gcode_macro PROBE_EDDY_CURRENT_CALIBRATE_AUTO] -gcode: - BED_MESH_CLEAR - G28 X Y - G90 # Abs positioning - G1 X{ printer.toolhead.axis_maximum.x/2 } Y{ printer.toolhead.axis_maximum.y/2 } F6000 - {% if 'z' not in printer.toolhead.homed_axes %} - SET_KINEMATIC_POSITION Z={ printer.toolhead.axis_maximum.z-1 } # Allows the user to work it down until it touches. - {% endif %} - PROBE_EDDY_CURRENT_CALIBRATE {rawparams} - -[gcode_macro BED_MESH_CALIBRATE] -rename_existing: BTT_BED_MESH_CALIBRATE -gcode: - BTT_BED_MESH_CALIBRATE METHOD=rapid_scan diff --git a/klicky-bed-mesh-calibrate.cfg b/klicky-bed-mesh-calibrate.cfg deleted file mode 100644 index 8bc2477..0000000 --- a/klicky-bed-mesh-calibrate.cfg +++ /dev/null @@ -1,32 +0,0 @@ -# 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 - -################### -# Bed mesh calibrate -[gcode_macro BED_MESH_CALIBRATE] -rename_existing: _BED_MESH_CALIBRATE -description: Perform Mesh Bed Leveling with klicky automount -gcode: - {% set V = printer["gcode_macro _User_Variables"].verbose %} - {% if V %} - { action_respond_info("Bed Mesh Calibrate") } - {% endif %} - - _CheckProbe action=query - G90 - Attach_Probe - _KLICKY_STATUS_MESHING - - _BED_MESH_CALIBRATE {% for p in params - %}{'%s=%s ' % (p, params[p])}{% - endfor %} - - Dock_Probe \ No newline at end of file diff --git a/klicky-macros.cfg b/klicky-macros.cfg deleted file mode 100644 index 7906163..0000000 --- a/klicky-macros.cfg +++ /dev/null @@ -1,990 +0,0 @@ -# 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 -# User sporkus added led status notifications -# Thanks to all who helped, -# 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 - -[respond] - -[gcode_macro _Probe_Variables] -variable_probe_attached: False -variable_probe_state: False -variable_probe_lock: False -variable_probe_z_homed: False -variable_z_endstop_x: 0 -variable_z_endstop_y: 0 -gcode: - - -#checks if the variable definitions are up to date -[gcode_macro _klicky_check_variables_version] -gcode: - {% set version = printer["gcode_macro _User_Variables"].version|default(0) %} - - {% if version != 1 %} - { action_raise_error("Please update your klicky variables, there are some functionality changes") } - {% endif %} - -[gcode_macro _KlickyDebug] -gcode: - {% set message = params.MSG %} - {% set debug = printer["gcode_macro _User_Variables"].debug|default(False) %} - - {% if debug %} - { action_respond_info(message) } - {% endif %} - - -[gcode_macro _exit_point] -gcode: - {% set function = 'pre_' ~ params.FUNCTION %} - {% set move = params.MOVE|default(0) %} - {% set speed = printer["gcode_macro _User_Variables"].travel_speed %} - - # mandatory to save the new safe position - M400 - SET_VELOCITY_LIMIT ACCEL={printer.configfile.settings.printer.max_accel} - RESTORE_GCODE_STATE NAME={function} MOVE={move} MOVE_SPEED={speed} - - -[gcode_macro _entry_point] -gcode: - {% set function = 'pre_' ~ params.FUNCTION %} - {% set move_accel = printer["gcode_macro _User_Variables"].move_accel|default(1000) %} - # mandatory to save the new safe position - M400 - SAVE_GCODE_STATE NAME={function} - # removes the Z offset for better bed based docking - SET_GCODE_OFFSET Z=0 - # all the macros initially assume absolute positioning - G90 - # set a safe(sane) Acceleration - SET_VELOCITY_LIMIT ACCEL={move_accel} - -[gcode_macro _Homing_Variables] -gcode: - {% set reset = params.RESET|default(0) %} - {% if reset %} - SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_lock VALUE={ False } - {% endif %} - -########################## -# Attach probe and lock it -[gcode_macro Attach_Probe_Lock] -description: Attaches Klicky Probe, can only be docked after unlocking -gcode: - Attach_Probe - _Probe_Lock - -######################## -# Dock probe and lock it -[gcode_macro Dock_Probe_Unlock] -description: Docks Klicky Probe even if it was locked -gcode: - _Probe_Unlock - Dock_Probe - -############## -# Unlock Probe -[gcode_macro _Probe_Unlock] -description: Unlocks Klicky Probe state -gcode: - _KlickyDebug msg="_Probe_Lock setting probe_lock variable to False" - SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_lock VALUE={ False } - -############ -# Lock Probe -[gcode_macro _Probe_Lock] -description: Locks Klicky Probe state -gcode: - _KlickyDebug msg="_Probe_Lock setting probe_lock variable to True" - SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_lock VALUE={ True } - -################### -# Klicky Dock Servo Deploy - -[gcode_macro _DeployKlickyDock] -description: Deploys Klicky servo-controlled dock -gcode: - {% set enable_dock_servo = printer["gcode_macro _User_Variables"].enable_dock_servo|default(False) %} - {% set servo_delay = printer["gcode_macro _User_Variables"].servo_delay|default(1000) %} - {% set servo_name = printer["gcode_macro _User_Variables"].servo_name %} - {% set servo_deploy = printer["gcode_macro _User_Variables"].servo_deploy|default(360) %} - - #wait for all the moves to complete - M400 - {% if enable_dock_servo != False %} - _KlickyDebug msg="_DeployKlickyDock Klicky servo configuration enabled" - {% if servo_deploy == 360 %} - { action_raise_error("Klicky: servo active on klicky-variables, but no servo deploy angle specified") } - {% endif %} - _KlickyDebug msg="_DeployKlickyDock SET_SERVO SERVO={servo_name|string} ANGLE={servo_deploy|int}" - SET_SERVO SERVO={servo_name|string} ANGLE={servo_deploy|int} - M400 - G4 P{servo_delay|int} - _KlickyDebug msg="_DeployKlickyDock SET_SERVO SERVO={servo_name|string} WIDTH=0" - SET_SERVO SERVO={servo_name|string} WIDTH=0 - {% elif printer["gcode_macro _DeployDock"] is defined %} - _KlickyDebug msg="_DeployKlickyDock calling _DeployDock" - _DeployDock - {% endif %} - -#################### -# Dock Servo Retract - -[gcode_macro _RetractKlickyDock] -description: Retracts Klicky servo-controlled dock -gcode: - {% set enable_dock_servo = printer["gcode_macro _User_Variables"].enable_dock_servo|default(False) %} - {% set servo_delay = printer["gcode_macro _User_Variables"].servo_delay|default(1000) %} - {% set servo_name = printer["gcode_macro _User_Variables"].servo_name %} - {% set servo_retract = printer["gcode_macro _User_Variables"].servo_retract|default(360) %} - - #wait for all the moves to complete - M400 - {% if enable_dock_servo != False %} - _KlickyDebug msg="_RetractKlickyDock Klicky servo configuration enabled" - {% if servo_retract == 360 %} - { action_raise_error("Klicky: servo active on klicky-variables, but no servo retract angle specified") } - {% endif %} - _KlickyDebug msg="_RetractKlickyDock SET_SERVO SERVO={servo_name|string} ANGLE={servo_retract|int}" - SET_SERVO SERVO={servo_name|string} ANGLE={servo_retract|int} - M400 - G4 P{servo_delay|int} - _KlickyDebug msg="_RetractKlickyDock SET_SERVO SERVO={servo_name|string} WIDTH=0" - SET_SERVO SERVO={servo_name|string} WIDTH=0 - {% elif printer["gcode_macro _RetractDock"] is defined %} - _KlickyDebug msg="_RetractKlickyDock calling _RetractDock" - _RetractDock - {% endif %} - - -###################### -# Attach Probe Routine -[gcode_macro Attach_Probe] -description: Attaches Klicky Probe -gcode: - # See if the position should be restored after the attach - {% set goback = params.BACK|default(0) %} - # Get probe attach status - {% set probe_attached = printer["gcode_macro _Probe_Variables"].probe_attached %} - {% set probe_lock = printer["gcode_macro _Probe_Variables"].probe_lock %} - {% set verbose = printer["gcode_macro _User_Variables"].verbose %} - # Get Docking location - {% set dockmove_x = printer["gcode_macro _User_Variables"].dockmove_x|default(0) %} - {% set dockmove_y = printer["gcode_macro _User_Variables"].dockmove_y|default(0) %} - {% set dockmove_z = printer["gcode_macro _User_Variables"].dockmove_z|default(0) %} - {% set docklocation_x = printer["gcode_macro _User_Variables"].docklocation_x %} - {% set docklocation_y = printer["gcode_macro _User_Variables"].docklocation_y %} - {% set docklocation_z = printer["gcode_macro _User_Variables"].docklocation_z %} - {% set attachmove_x = printer["gcode_macro _User_Variables"].attachmove_x|default(0) %} - {% set attachmove_y = printer["gcode_macro _User_Variables"].attachmove_y|default(0) %} - {% set attachmove_z = printer["gcode_macro _User_Variables"].attachmove_z|default(0) %} - {% set attachmove2_x = printer["gcode_macro _User_Variables"].attachmove2_x|default(0) %} - {% set attachmove2_y = printer["gcode_macro _User_Variables"].attachmove2_y|default(0) %} - {% set attachmove2_z = printer["gcode_macro _User_Variables"].attachmove2_z|default(0) %} - # Safe Z for travel - {% set safe_z = printer["gcode_macro _User_Variables"].safe_z %} - {% set enable_z_hop = printer["gcode_macro _User_Variables"].enable_z_hop %} - # Set feedrates - {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} - {% set dock_feedrate = printer["gcode_macro _User_Variables"].dock_speed * 60 %} - {% set release_feedrate = printer["gcode_macro _User_Variables"].release_speed * 60 %} - {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} - {% set bypass_probe_docking = printer["gcode_macro _User_Variables"].bypass_probe_docking|default(False) %} - - _entry_point function=Attach_Probe - - {% if bypass_probe_docking == False %} - - # If x and y are not homed - {% if not 'xy' in printer.toolhead.homed_axes %} - { action_raise_error("Must Home X and Y Axis First!") } - _KlickyDebug msg="Attach_Probe Axis homed" - - # If probe not attached and locked - {% elif not probe_attached and not probe_lock %} - _KlickyDebug msg="Attach_Probe going to attach probe" - {% if verbose %} - { action_respond_info("Attaching Probe") } - {% endif %} - _KLICKY_STATUS_BUSY - - {% if not 'z' in printer.toolhead.homed_axes %} - {% if verbose %} - { action_respond_info("Resetting Z position to zero") } - {% endif %} - _KlickyDebug msg="Attach_Probe Z not homed, setting position as X=Y=Z=0" - SET_KINEMATIC_POSITION Z=0 - {% if not enable_z_hop %} # Disables safe_z - _KlickyDebug msg="Attach_Probe z_hop disabled" - {% set safe_z = 0 %} - {% endif %} - {% endif %} - - # Prior to saving actual position, check if its necessary to move to a safe Z - # that has enought overhead for the attached probe - {% if printer.gcode_move.gcode_position.z < safe_z %} - _KlickyDebug msg="Attach_Probe toolhead too low, raising it to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" - {% if verbose %} - { action_respond_info("moving to a safe Z distance") } - {% endif %} - G0 Z{safe_z} F{z_drop_feedrate} - {% endif %} - - {% if not 'z' in printer.toolhead.homed_axes %} #duplicate?? - {% if verbose %} - { action_respond_info("Resetting Z position to zero, duplicate?") } - {% endif %} - _KlickyDebug msg="Attach_Probe Z not homed, setting position as X=Y=Z=0" - SET_KINEMATIC_POSITION Z=0 - {% endif %} - - {% if printer.gcode_move.gcode_position.z < safe_z %} #duplicate?? - _KlickyDebug msg="Attach_Probe toolhead too low, raising it to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" - G0 Z{safe_z} F{z_drop_feedrate} - {% endif %} - - _Umbilical_Path - - _entry_point function=Attach_Probe_intern - - # Probe entry location - _KlickyDebug msg="Attach_Probe moving near the dock with G0 X{docklocation_x|int - attachmove_x|int - attachmove2_x|int} Y{docklocation_y|int - attachmove_y|int - attachmove2_y} F{travel_feedrate}" - G0 X{docklocation_x|int - attachmove_x|int - attachmove2_x|int} Y{docklocation_y|int - attachmove_y|int - attachmove2_y} F{travel_feedrate} - {% if docklocation_z != -128 %} - _KlickyDebug msg="Attach_Probe moving near the dock with G0 Z{docklocation_z|int - attachmove_z|int - attachmove2_z|int} F{dock_feedrate}" - G0 Z{docklocation_z|int - attachmove_z|int - attachmove2_z|int} F{dock_feedrate} - _KlickyDebug msg="Attach_Probe moving near the dock with G0 Z{docklocation_z|int - attachmove_z|int} F{dock_feedrate}" - G0 Z{docklocation_z|int - attachmove_z|int} F{dock_feedrate} - {% endif %} - # if necessary do some actions before moving the toolhead to dock - _DeployKlickyDock - - # Drop Probe to Probe location - {% if docklocation_z != -128 %} - _KlickyDebug msg="Attach_Probe moving to the dock with G0 Z{docklocation_z} F{dock_feedrate}" - G0 Z{docklocation_z} F{dock_feedrate} - {% endif %} - _KlickyDebug msg="Attach_Probe moving to the dock with G0 X{docklocation_x|int - attachmove2_x|int} Y{docklocation_y|int - attachmove2_y} F{dock_feedrate}" - G0 X{docklocation_x|int - attachmove2_x|int} Y{docklocation_y|int - attachmove2_y} F{dock_feedrate} - _KlickyDebug msg="Attach_Probe moving to the dock with G0 X{docklocation_x} Y{docklocation_y} F{dock_feedrate}" - G0 X{docklocation_x} Y{docklocation_y} F{dock_feedrate} - # Probe Attached - {% if docklocation_z != -128 %} - _KlickyDebug msg="Attach_Probe moving from the dock to G0 Z{docklocation_z|int - attachmove_z|int} F{z_drop_feedrate}" - G0 Z{docklocation_z|int - attachmove_z|int} F{z_drop_feedrate} - {% endif %} - _KlickyDebug msg="Attach_Probe moving from the dock to G0 X{docklocation_x|int - attachmove_x|int} Y{docklocation_y|int - attachmove_y|int} F{release_feedrate}" - G0 X{docklocation_x|int - attachmove_x|int} Y{docklocation_y|int - attachmove_y|int} F{release_feedrate} - # if necessary do some actions after attaching the probe - _RetractKlickyDock - ## Go to Z safe distance - {% if ((printer.gcode_move.gcode_position.z < safe_z) or (docklocation_z != -128 and docklocation_z < safe_z ))%} - _KlickyDebug msg="Attach_Probe moving to a safe Z position: G0 Z{safe_z} F{z_drop_feedrate} from {printer.gcode_move.gcode_position.z}" - G0 Z{safe_z} F{z_drop_feedrate} - {% endif %} - - _Park_Toolhead - - _CheckProbe action=attach - - _exit_point function=Attach_Probe_intern move={goback} - _KLICKY_STATUS_READY - - {% elif probe_lock %} - {% if verbose %} - { action_respond_info("Probe locked!") } - {% endif %} - - # Probe attached, do nothing - _KlickyDebug msg="Attach_Probe probe locked not attaching probe" - _CheckProbe action=query - - {% else %} - {% if verbose %} - { action_respond_info("Probe already attached!") } - {% endif %} - - # Probe attached, do nothing - _KlickyDebug msg="Attach_Probe probe already attached, doing nothing" - _CheckProbe action=query - - {% endif %} - - _exit_point function=Attach_Probe - {% else %} - _KlickyDebug msg="Attach_Probe probe docking bypassed, doing nothing" - {% endif %} - - -#################### -# Dock Probe Routine -[gcode_macro Dock_Probe] -description: Docks Klicky Probe -gcode: - # See if the position should be restored after the dock - {% set goback = params.BACK|default(0) %} - # Get probe attach status - {% set probe_attached = printer["gcode_macro _Probe_Variables"].probe_attached %} - {% set probe_lock = printer["gcode_macro _Probe_Variables"].probe_lock %} - {% set verbose = printer["gcode_macro _User_Variables"].verbose %} - # Get Docking location - {% set dockmove_x = printer["gcode_macro _User_Variables"].dockmove_x|default(0) %} - {% set dockmove_y = printer["gcode_macro _User_Variables"].dockmove_y|default(0) %} - {% set dockmove_z = printer["gcode_macro _User_Variables"].dockmove_z|default(0) %} - {% set docklocation_x = printer["gcode_macro _User_Variables"].docklocation_x %} - {% set docklocation_y = printer["gcode_macro _User_Variables"].docklocation_y %} - {% set docklocation_z = printer["gcode_macro _User_Variables"].docklocation_z %} - {% set attachmove_x = printer["gcode_macro _User_Variables"].attachmove_x|default(0) %} - {% set attachmove_y = printer["gcode_macro _User_Variables"].attachmove_y|default(0) %} - {% set attachmove_z = printer["gcode_macro _User_Variables"].attachmove_z|default(0) %} - # Safe Z for travel - {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} - # Set feedrates - {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} - {% set dock_feedrate = printer["gcode_macro _User_Variables"].dock_speed * 60 %} - {% set release_feedrate = printer["gcode_macro _User_Variables"].release_speed * 60 %} - {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} - {% set bypass_probe_docking = printer["gcode_macro _User_Variables"].bypass_probe_docking|default(False) %} - {% if bypass_probe_docking == True %} - _KlickyDebug msg="Attach_Probe probe docking bypassed, doing nothing" - {% endif %} - - {% if bypass_probe_docking != True %} - _entry_point function=Dock_Probe - - # If probe not attached and not locked - {% if probe_attached and not probe_lock %} - _KLICKY_STATUS_BUSY - {% if printer.gcode_move.gcode_position.z < safe_z %} - _KlickyDebug msg="Dock_Probe toolhead too low, raising it to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" - G0 Z{safe_z} F{z_drop_feedrate} - {% endif %} - _Umbilical_Path - - # Probe entry location - _KlickyDebug msg="Dock_Probe moving near the dock with G0 X{docklocation_x|int - attachmove_x|int} Y{docklocation_y|int - attachmove_y|int} F{travel_feedrate}" - G0 X{docklocation_x|int - attachmove_x|int} Y{docklocation_y|int - attachmove_y|int} F{travel_feedrate} - - {% if docklocation_z != -128 %} - _KlickyDebug msg="Dock_Probe moving near the dock with G0 Z{docklocation_z|int - attachmove_z|int} F{dock_feedrate}" - G0 Z{docklocation_z|int - attachmove_z|int} F{dock_feedrate} - {% endif %} - - # if necessary do some actions before moving the toolhead to dock - _DeployKlickyDock - - # Drop Probe to Probe location - _KlickyDebug msg="Dock_Probe moving to the dock with G0 X{docklocation_x} Y{docklocation_y} F{dock_feedrate}" - - G0 X{docklocation_x} Y{docklocation_y} F{dock_feedrate} - {% if docklocation_z != -128 %} - _KlickyDebug msg="Attach_Probe moving to the dock with G0 Z{docklocation_z} F{dock_feedrate}" - G0 Z{docklocation_z} F{dock_feedrate} - {% endif %} - - # Probe decoupling - {% if docklocation_z != -128 %} - _KlickyDebug msg="Dock_Probe moving from the dock to G0 Z{docklocation_z|int + dockmove_z|int} F{release_feedrate}" - G0 Z{docklocation_z|int + dockmove_z|int} F{release_feedrate} - {% endif %} - - _KlickyDebug msg="Dock_Probe moving from the dock to G0 X{docklocation_x|int + dockmove_x|int} Y{docklocation_y|int + dockmove_y|int} F{release_feedrate}" - G0 X{docklocation_x|int + dockmove_x|int} Y{docklocation_y|int + dockmove_y|int} F{release_feedrate} - - # if necessary do some actions after attaching the probe - _RetractKlickyDock - - #Do an extra move away - _KlickyDebug msg="Dock_Probe moving away from the dock to G0 X{docklocation_x|int + dockmove_x|int - attachmove_x|int} Y{docklocation_y|int + dockmove_y|int - attachmove_y|int} F{release_feedrate}" - G0 X{docklocation_x|int + dockmove_x|int - attachmove_x|int} Y{docklocation_y|int + dockmove_y|int - attachmove_y|int} F{release_feedrate} - - ## Go to Z safe distance - {% if (printer.gcode_move.gcode_position.z < safe_z) %} - _KlickyDebug msg="Dock_Probe moving to a safe Z position: G0 Z{safe_z} F{z_drop_feedrate} from {printer.gcode_move.gcode_position.z}" - G0 Z{safe_z} F{z_drop_feedrate} - {% endif %} - - _Park_Toolhead - - G4 P1000 - _CheckProbe action=dock - _KLICKY_STATUS_READY - - {% elif probe_lock %} - {% if verbose %} - { action_respond_info("Probe locked") } - {% endif %} - - # Probe docked, do nothing - _KlickyDebug msg="Dock_Probe probe locked not docking probe" - _CheckProbe action=query - - {% else %} - {% if verbose %} - { action_respond_info("Probe already docked") } - {% endif %} - - # Probe docked, do nothing - _KlickyDebug msg="Dock_Probe probe already docked, doing nothing" - _CheckProbe action=query - - {% endif %} - - _exit_point function=Dock_Probe move={goback} - {% else %} - _KlickyDebug msg="Dock_Probe probe docking bypassed, doing nothing" - {% endif %} - - -################# -# Probe Calibrate -[gcode_macro PROBE_CALIBRATE] -rename_existing: _PROBE_CALIBRATE -description:Calibrate the probes z_offset with klicky automount -gcode: - {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} - {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} - {% set max_x = printer["gcode_macro _User_Variables"].max_bed_x|float %} - {% set max_y = printer["gcode_macro _User_Variables"].max_bed_y|float %} - {% set probe_offset_x = printer['configfile'].config["probe"]["x_offset"]|float %} - {% set probe_offset_y = printer['configfile'].config["probe"]["y_offset"]|float %} - {% set bypass_probe_docking = printer["gcode_macro _User_Variables"].bypass_probe_docking|default(False) %} - - - {% if not 'xyz' in printer.toolhead.homed_axes %} - { action_raise_error("Must Home X, Y and Z Axis First!") } - {% endif %} - _KlickyDebug msg="probe_calibrate Axis homed" - _KlickyDebug msg="probe_calibrate Variables max_x={max_x},max_y={max_y},probe_offset_x={probe_offset_x},probe_offset_y={probe_offset_y}" - - # Protect against PROBE CALIBRATE performed from outside the bed - {% if printer['gcode_move'].position.y > (max_y - probe_offset_y) - or printer['gcode_move'].position.y < - probe_offset_y - or printer['gcode_move'].position.x > (max_x - probe_offset_x) - or printer['gcode_move'].position.x < - probe_offset_x %} - { action_raise_error("Must perform PROBE_CALIBRATE with the probe above the BED, check klicky_variables bed size!") } - {% endif %} - - {% if bypass_probe_docking == False %} - _CheckProbe action=query - G90 - Attach_Probe back=1 - _KLICKY_STATUS_CALIBRATING_Z - - _KlickyDebug msg="probe_calibrate calling klipper probe_calibrate" - _PROBE_CALIBRATE {% for p in params - %}{'%s=%s ' % (p, params[p])}{% - endfor %} - - M118 moving the toolhead 20 mm from the bed - _KlickyDebug msg="probe_calibrate Moving Z up by 20mm" - TESTZ Z=20 - M118 remove manually the probe and continue calibration - _KLICKY_STATUS_READY - {% else %} - _KLICKY_STATUS_CALIBRATING_Z - _KlickyDebug msg="probe_calibrate calling klipper probe_calibrate" - _PROBE_CALIBRATE {% for p in params - %}{'%s=%s ' % (p, params[p])}{% - endfor %} - _KLICKY_STATUS_READY - {% endif %} - -################ -# Probe Accuracy -[gcode_macro PROBE_ACCURACY] -rename_existing: _PROBE_ACCURACY -description:Probe Z-height accuracy at current XY position with klicky automount -gcode: - {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} - {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} - {% set max_x = printer["gcode_macro _User_Variables"].max_bed_x|float %} - {% set max_y = printer["gcode_macro _User_Variables"].max_bed_y|float %} - {% set probe_offset_x = printer['configfile'].config["probe"]["x_offset"]|float %} - {% set probe_offset_y = printer['configfile'].config["probe"]["y_offset"]|float %} - - {% if not 'xyz' in printer.toolhead.homed_axes %} - { action_raise_error("Must Home X, Y and Z Axis First!") } - {% endif %} - _KlickyDebug msg="probe_accuracy Axis homed" - _KlickyDebug msg="probe_accuracy Variables max_x={max_x},max_y={max_y},probe_offset_x={probe_offset_x},probe_offset_y={probe_offset_y}" - - _entry_point function=PROBE_ACCURACY - - # Protect against PROBE_ACCURACY performed from outside the bed - {% if printer['gcode_move'].position.y > (max_y - probe_offset_y) - or printer['gcode_move'].position.y < - probe_offset_y - or printer['gcode_move'].position.x > (max_x - probe_offset_x) - or printer['gcode_move'].position.x < - probe_offset_x %} - { action_raise_error("Must perform PROBE_ACCURACY with the probe above the BED, check klicky_variables bed size!") } - {% endif%} - - _CheckProbe action=query - Attach_Probe back=1 - - _KlickyDebug msg="probe_accuracy calling klipper probe accuracy" - _PROBE_ACCURACY {% for p in params - %}{'%s=%s ' % (p, params[p])}{% - endfor %} - - Dock_Probe back=1 - - _exit_point function=PROBE_ACCURACY move=1 - -############################################# -# Enable to SET_KINEMATIC_POSITION for Z hop -[force_move] -enable_force_move: True - -################# -# Homing Override -[homing_override] -axes: xyz -gcode: - # collect user state variables - _User_Variables - {% set verbose = printer["gcode_macro _User_Variables"].verbose %} - {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} - # Safe Z for travel - {% set safe_z = printer["gcode_macro _User_Variables"].safe_z %} - {% set enable_z_hop = printer["gcode_macro _User_Variables"].enable_z_hop %} - {% set kinematic_z = 0 %} - {% set dock_on_zhome = printer["gcode_macro _User_Variables"].dock_on_zhome|default(True) %} - {% set attachmove_x = printer["gcode_macro _User_Variables"].attachmove_x|default(0) %} - {% set attachmove_y = printer["gcode_macro _User_Variables"].attachmove_y|default(0) %} - {% set attachmove_z = printer["gcode_macro _User_Variables"].attachmove_z|default(0) %} - {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} - {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} - {% set home_backoff_x = printer["gcode_macro _User_Variables"].home_backoff_x|default(0) %} - {% set home_backoff_y = printer["gcode_macro _User_Variables"].home_backoff_y|default(0) %} - {% set override_homing = printer["gcode_macro _User_Variables"].override_homing|default('') %} - - #checks if the variable definitions are up to date - _klicky_check_variables_version - - _CheckProbe action=query - - # reset parameters - {% set home_x, home_y, home_z, leave_probe_attached = False, False, False, False %} - - {% if 'PROBE_LOCK' in params%} - {% if verbose %} - { action_respond_info("PROBE_LOCK = True") } - {% endif %} - {% set leave_probe_attached = True %} - {% endif %} - - # which axes have been requested for homing - {% if not 'X' in params - and not 'Y' in params - and not 'Z' in params %} - - {% set home_x, home_y, home_z = True, True, True %} - _KlickyDebug msg="homing_override goint to home all axes" - - {% else %} - {% if 'X' in params %} - {% set home_x = True %} - _KlickyDebug msg="homing_override goint to home X" - - {% endif %} - - {% if 'Y' in params %} - {% set home_y = True %} - _KlickyDebug msg="homing_override goint to home Y" - {% endif %} - - {% if 'Z' in params %} - {% set home_z = True %} - _KlickyDebug msg="homing_override goint to home Z" - {% endif %} - - {% if 'X' in params - and 'Y' in params - and 'Z' in params %} - # reset homing state variables - # if homing all axes - _Homing_Variables reset=1 - _KlickyDebug msg="homing_override goint to home all axes" - {% endif %} - - {% endif %} - - _entry_point function=homing_override - _KLICKY_STATUS_HOMING - - # if Z is not homed, do not move the bed if it goes down - {% if 'z' not in printer.toolhead.homed_axes %} - {% if enable_z_hop == False %} # Disables safe_z - _KlickyDebug msg="homing_override z_hop disabled" - #preserve safe_z to use as the SET KINEMATIC Z position, so that the toolhead does not move to pick up the probe - {% set kinematic_z = safe_z %} - {% set safe_z = safe_z %} - {% endif %} - {% endif %} - - #On the first G28 after motors losing power, moves the Z to safe_z distance, if z_hop is enabled - {% if 'x' not in printer.toolhead.homed_axes and 'y' not in printer.toolhead.homed_axes and 'z' not in printer.toolhead.homed_axes%} - {% if verbose %} - { action_respond_info("No axis homed") } - {% endif %} - _KlickyDebug msg="homing_override no axis homed, setting position as X=Y=0 Z={kinematic_z}" - SET_KINEMATIC_POSITION X=0 Y=0 Z={kinematic_z} - M400 - _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" - {% if verbose %} - { action_respond_info("moving to a safe Z distance") } - {% endif %} - G0 Z{safe_z} F{z_drop_feedrate} - {% if home_z != True %} - _KlickyDebug msg="homing_override clearing axis homed state if not already homing Z" - M84 - {% endif %} - {% else %} - _KlickyDebug msg="All axis homed" - {% set safe_z = printer.gcode_move.gcode_position.z|float %} - _KlickyDebug msg="Setting Safe_z to {printer.gcode_move.gcode_position.z}mm as Z is now above configured safe_z" - {% endif %} - - {% if home_z %} - {% if 'x' not in printer.toolhead.homed_axes and 'y' not in printer.toolhead.homed_axes%} - {% if verbose %} - { action_respond_info("X or Y not homed, forcing full G28") } - {% endif %} - {% set home_x, home_y, home_z = True, True, True %} - {% endif %} - {% endif %} - - # if the dock is oriented on the Y, first do Y endstop - {% if ((attachmove_y == 0 and override_homing == '' ) or (override_homing == 'Y'))%} - # Home y - {% if home_y %} - {% if override_homing == 'Y' %} - _KlickyDebug msg="homing_override Y homing first override, due to override_homing = Y" - {% else %} - _KlickyDebug msg="homing_override Y homing first override, due to attachmove_y = 0" - {% endif %} - {% if verbose %} - { action_respond_info("Homing Y") } - {% endif %} - {% if 'z' in printer.toolhead.homed_axes and printer.gcode_move.gcode_position.z < safe_z %} - _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm in Y homing seq" - {% if verbose %} - { action_respond_info("moving to a safe Z distance") } - {% endif %} - G0 Z{safe_z} F{z_drop_feedrate} - {% endif %} - {% if printer["gcode_macro _HOME_Y"] is defined %} - _KlickyDebug msg="homing_override calling _HOME_Y external script to handle the Y homing" - _HOME_Y - {% else %} - _KlickyDebug msg="homing_override Homing Y G28 Y0" - G28 Y0 - # does it need to back away from the home position - {% if home_backoff_y != 0 %} - {% if (printer.configfile.settings.stepper_y.position_endstop > (printer.configfile.settings.stepper_y.position_min|default(0) + printer.configfile.settings.stepper_y.position_max)/2) %} - _KlickyDebug msg="homing_override backing off Y endstop, G0 Y{printer.configfile.settings.stepper_y.position_endstop-home_backoff_y|int} F{travel_feedrate}" - G0 Y{printer.configfile.settings.stepper_y.position_endstop - home_backoff_y|int} F{travel_feedrate} - {% else %} - _KlickyDebug msg="homing_override backing off Y endstop, G0 Y{printer.configfile.settings.stepper_y.position_endstop + home_backoff_y|int} F{travel_feedrate}" - G0 Y{printer.configfile.settings.stepper_y.position_endstop + home_backoff_y|int} F{travel_feedrate} - {%endif %} - {%endif %} - {% endif %} - {% endif %} - {% set home_y = False %} - {% endif %} - - - # Home x - {% if home_x %} - {% if verbose %} - { action_respond_info("Homing X") } - {% endif %} - {% if 'z' in printer.toolhead.homed_axes and printer.gcode_move.gcode_position.z < safe_z %} - _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm in X homing seq" - {% if verbose %} - { action_respond_info("moving to a safe Z distance") } - {% endif %} - G0 Z{safe_z} F{z_drop_feedrate} - {% endif %} - {% if printer["gcode_macro _HOME_X"] is defined %} - _KlickyDebug msg="homing_override calling _HOME_X external script to handle the X homing" - _HOME_X - {% else %} - _KlickyDebug msg="homing_override Homing X, G28 X0" - G28 X0 - # does it need to back away from the home position - {% if home_backoff_x != 0 %} - {% if (printer.configfile.settings.stepper_x.position_endstop > (printer.configfile.settings.stepper_x.position_min|default(0) + printer.configfile.settings.stepper_x.position_max)/2) %} - _KlickyDebug msg="homing_override backing off X endstop, G0 X{printer.configfile.settings.stepper_x.position_endstop - home_backoff_x|int} F{travel_feedrate}" - G0 X{printer.configfile.settings.stepper_x.position_endstop - home_backoff_x|int} F{travel_feedrate} - {% else %} - _KlickyDebug msg="homing_override backing off X endstop, G0 X{printer.configfile.settings.stepper_x.position_endstop + home_backoff_x|int} F{travel_feedrate}" - G0 X{printer.configfile.settings.stepper_x.position_endstop + home_backoff_x|int} F{travel_feedrate} - {%endif %} - {%endif %} - {% endif %} - {% endif %} - - # Home y - {% if home_y %} - {% if verbose %} - { action_respond_info("Homing Y") } - {% endif %} - {% if 'z' in printer.toolhead.homed_axes and printer.gcode_move.gcode_position.z < safe_z %} - _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm in Y homing seq" - {% if verbose %} - { action_respond_info("moving to a safe Z distance") } - {% endif %} - G0 Z{safe_z} F{z_drop_feedrate} - {% endif %} - {% if printer["gcode_macro _HOME_Y"] is defined %} - _KlickyDebug msg="homing_override calling _HOME_Y external script to handle the Y homing" - _HOME_Y - {% else %} - _KlickyDebug msg="homing_override Homing Y, G28 Y0" - G28 Y0 - {% if home_backoff_y != 0 %} - {% if (printer.configfile.settings.stepper_y.position_endstop > (printer.configfile.settings.stepper_y.position_min|default(0) + printer.configfile.settings.stepper_y.position_max)/2) %} - _KlickyDebug msg="homing_override backing off Y endstop, G0 Y{printer.configfile.settings.stepper_y.position_endstop - home_backoff_y|int} F{travel_feedrate}" - G0 Y{printer.configfile.settings.stepper_y.position_endstop - home_backoff_y|int} F{travel_feedrate} - {% else %} - _KlickyDebug msg="homing_override backing off Y endstop, G0 Y{printer.configfile.settings.stepper_y.position_endstop + home_backoff_y|int} F{travel_feedrate}" - G0 Y{printer.configfile.settings.stepper_y.position_endstop + home_backoff_y|int} F{travel_feedrate} - {%endif %} - {%endif %} - {% endif %} - {% endif %} - # Home z - {% if home_z %} - {% if verbose %} - { action_respond_info("Homing Z") } - {% endif %} - {% if 'z' in printer.toolhead.homed_axes and printer.gcode_move.gcode_position.z < safe_z %} - _KlickyDebug msg="homing_override moving toolhead to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm in Y homing seq" - {% if verbose %} - { action_respond_info("moving to a safe Z distance") } - {% endif %} - G0 Z{safe_z} F{z_drop_feedrate} - {% endif %} - - # if probe is configured as endstop, attach it, else check if the probe needs to be docked if attached - {% if 'z_virtual_endstop' in printer['configfile'].config["stepper_z"]["endstop_pin"] %} - _KlickyDebug msg="homing_override probe configured as a virtual Z endstop attaching probe" - Attach_Probe - # if PROBE_LOCK parameter is given, Attach Probe and lock until it´s unlocked - {% if leave_probe_attached %} - _Probe_Lock - {% endif %} - {% elif dock_on_zhome == True %} - Dock_Probe - {% endif %} - - _Home_Z_ - - # if probe is configured as endstop, dock it - {% if 'z_virtual_endstop' in printer['configfile'].config["stepper_z"]["endstop_pin"] %} - _KlickyDebug msg="homing_override probe no longer required, docking probe" - Dock_Probe - {% elif dock_on_zhome == False %} - Dock_Probe - {% endif %} - {% endif %} - _CheckProbe action=query - - # park the toolhead - _Park_Toolhead - - _exit_point function=homing_override - _KLICKY_STATUS_READY - -# Umbilical path setup -[gcode_macro _Umbilical_Path] -gcode: - {% set umbilical = printer["gcode_macro _User_Variables"].umbilical %} - {% set umbilical_x = printer["gcode_macro _User_Variables"].umbilical_x %} - {% set umbilical_y = printer["gcode_macro _User_Variables"].umbilical_y %} - {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} - {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} - - {% if umbilical %} - # Used to give the umbilical a better path to follow and coil properly if dock is tight in space - _entry_point function=Umbilical_Path - - _KlickyDebug msg="_Umbilical_Path moving to G0 X{umbilical_x} Y{umbilical_y} Z{safe_z} F{travel_feedrate}" - G0 X{umbilical_x} Y{umbilical_y} Z{safe_z} F{travel_feedrate} - - _exit_point function=Umbilical_Path - {% endif %} - - -# Home Z Routine -[gcode_macro _Home_Z_] -gcode: - {% set z_endstop_x = printer["gcode_macro _Probe_Variables"].z_endstop_x %} - {% set z_endstop_y = printer["gcode_macro _Probe_Variables"].z_endstop_y %} - {% set safe_z = printer["gcode_macro _User_Variables"].safe_z|float %} - {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} {% set z_drop_feedrate = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} - {% set verbose = printer["gcode_macro _User_Variables"].verbose %} - - _entry_point function=Home_Z - - # if x and y are not homed yet, raise error - {% if not 'xy' in printer.toolhead.homed_axes %} - { action_raise_error("Must Home X and Y Axis First!") } - {% else %} - _KlickyDebug msg="_Home_Z_ XY Axis homed" - {% if not 'z' in printer.toolhead.homed_axes %} - {% if verbose %} - { action_respond_info("Resetting Z position to zero") } - {% endif %} - _KlickyDebug msg="_Home_Z_ Z not homed, setting position as X=Y=Z=0" - SET_KINEMATIC_POSITION Z=0 - {% endif %} - - # Move tool to safe homing position and home Z axis - # location of z endstop - _KlickyDebug msg="_Home_Z_ moving to Z endstop position G0 X{z_endstop_x} Y{z_endstop_y} F{travel_feedrate}" - G0 X{z_endstop_x} Y{z_endstop_y} F{travel_feedrate} - _KlickyDebug msg="_Home_Z_ Homing Z G28 Z" - G28 Z0 - _KlickyDebug msg="_Home_Z_ toolhead too low, raising it to {safe_z}mm from {printer.gcode_move.gcode_position.z}mm" - G0 Z{safe_z} F{z_drop_feedrate} - - {% endif %} - - _exit_point function=Home_Z - -# Check to see if probe is where it is supposed to be after -# attaching/docking maneuver and set homing error or shutdown -[gcode_macro _CheckProbe] -variable_probe_state: 0 -gcode: - Query_Probe - _SetProbeState action={ params.ACTION } - -# Due to how templates are evaluated, we have query endstops in one -# macro and call another macro to make decisions based on the result -[gcode_macro _SetProbeState] -gcode: - {% set query_probe_triggered = printer.probe.last_query %} - {% set action = params.ACTION|default('') %} - - # If triggered (true), probe not attached - {% if query_probe_triggered %} - SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_attached VALUE={ False } - {% else %} - # If not triggered (false), probe attached - SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_attached VALUE={ True } - {% endif %} - - {% if action == 'query' %} - SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_state VALUE={ query_probe_triggered } - {% endif %} - - # If probe fails to attach/detach - - # If not docked - {% if not query_probe_triggered and action == 'dock' %} - { action_raise_error("Probe dock failed!") } - {% endif %} - - # If not attached - {% if query_probe_triggered and action == 'attach' %} - { action_raise_error("Probe attach failed!") } - {% endif %} - -# Park Toolhead Routine -[gcode_macro _Park_Toolhead] -gcode: - {% set park_toolhead = printer["gcode_macro _User_Variables"].park_toolhead %} - {% set parkposition_x = printer["gcode_macro _User_Variables"].parkposition_x %} - {% set parkposition_y = printer["gcode_macro _User_Variables"].parkposition_y %} - {% set parkposition_z = printer["gcode_macro _User_Variables"].parkposition_z %} - {% set travel_feedrate = printer["gcode_macro _User_Variables"].travel_speed * 60 %} - {% set verbose = printer["gcode_macro _User_Variables"].verbose %} - - _entry_point function=Park_Toolhead - - {% if park_toolhead and 'xyz' in printer.toolhead.homed_axes %} - {% if verbose %} - { action_respond_info("Parking Toolhead") } - {% endif %} - {% if parkposition_z == -128 %} - _KlickyDebug msg="_Park_Toolhead moving to G0 X{parkposition_x} Y{parkposition_y} F{travel_feedrate}" - G0 X{parkposition_x} Y{parkposition_y} F{travel_feedrate} - - {% else %} - - _KlickyDebug msg="_Park_Toolhead moving to G0 X{parkposition_x} Y{parkposition_y} Z{parkposition_z} F{travel_feedrate}" - G0 X{parkposition_x} Y{parkposition_y} Z{parkposition_z} F{travel_feedrate} - - {% endif %} - - {% endif %} - _exit_point function=Park_Toolhead - - - -################# -# Status LEDs -# This enables stealthburner-led status macros to be used in klicky macros if they exist. -# https://github.com/VoronDesign/Voron-Afterburner/blob/sb-beta/Klipper_Macros/stealthburner_leds.cfg -[gcode_macro _klicky_status_ready] -gcode: - {% if printer['gcode_macro status_ready'] is defined %} - _KlickyDebug msg="_klicky_status_ready activating the LED STATUS_READY" - STATUS_READY - {% endif %} - -[gcode_macro _klicky_status_busy] -gcode: - {% if printer['gcode_macro status_busy'] is defined %} - _KlickyDebug msg="_klicky_status_busy activating the LED STATUS_BUSY" - STATUS_BUSY - {% endif %} - -[gcode_macro _klicky_status_leveling] -gcode: - {% if printer['gcode_macro status_leveling'] is defined %} - _KlickyDebug msg="_klicky_status_leveling activating the LED STATUS_LEVELING" - STATUS_LEVELING - {% endif %} - -[gcode_macro _klicky_status_homing] -gcode: - {% if printer['gcode_macro status_homing'] is defined %} - _KlickyDebug msg="_klicky_status_homing activating the LED STATUS_HOMING" - STATUS_HOMING - {% endif %} - -[gcode_macro _klicky_status_cleaning] -gcode: - {% if printer['gcode_macro status_cleaning'] is defined %} - _KlickyDebug msg="_klicky_status_cleaning activating the LED STATUS_CLEANING" - STATUS_CLEANING - {% endif %} - -[gcode_macro _klicky_status_meshing] -gcode: - {% if printer['gcode_macro status_meshing'] is defined %} - _KlickyDebug msg="_klicky_status_meshing activating the LED STATUS_MESHING" - STATUS_MESHING - {% endif %} - -[gcode_macro _klicky_status_calibrating_z] -gcode: - {% if printer['gcode_macro status_calibrating_z'] is defined %} - _KlickyDebug msg="_klicky_status_calibrating_z activating the LED STATUS_CALIBRATING_Z" - STATUS_CALIBRATING_Z - {% endif %} diff --git a/klicky-probe.cfg b/klicky-probe.cfg deleted file mode 100644 index 7f1d13d..0000000 --- a/klicky-probe.cfg +++ /dev/null @@ -1,10 +0,0 @@ -#Simple way to include all the various klicky macros and configurations -# the current home for this configuration is https://github.com/jlas1/Klicky-Probe, please check it - -#[include ./klicky-specific.cfg] #place to put other configurations specific to your printer -[include ./klicky-variables.cfg] #Required -[include ./klicky-macros.cfg] #Required -#[include ./klicky-bed-mesh-calibrate.cfg] #bed mesh, requires klipper configuration -#[include ./klicky-screws-tilt-calculate.cfg] #help adjust bed screws automatically -#[include ./klicky-quad-gantry-level.cfg] #level 4 Z motors -#[include ./klicky-z-tilt-adjust.cfg] #level 2 or 3 Z motors diff --git a/klicky-quad-gantry-level.cfg b/klicky-quad-gantry-level.cfg deleted file mode 100644 index 14be43c..0000000 --- a/klicky-quad-gantry-level.cfg +++ /dev/null @@ -1,31 +0,0 @@ -# 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. -# -# this macro is 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" -# 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 -# -# by standing on the shoulders of giants, lets see if we can see further -# User richardjm revised the macro variables and added some functions, thanks a lot -# This macro home is https://github.com/jlas1/Klicky-Probe - -################### -# Quad Gantry Level -[gcode_macro QUAD_GANTRY_LEVEL] -rename_existing: _QUAD_GANTRY_LEVEL -description: Conform a moving, twistable gantry to the shape of a stationary bed with klicky automount -gcode: - {% set V = printer["gcode_macro _User_Variables"].verbose %} - {% if V %} - { action_respond_info("QG Level") } - {% endif %} - - _CheckProbe action=query - G90 - Attach_Probe - _KLICKY_STATUS_LEVELING - - _QUAD_GANTRY_LEVEL {% for p in params - %}{'%s=%s ' % (p, params[p])}{% - endfor %} - Dock_Probe diff --git a/klicky-screws-tilt-calculate.cfg b/klicky-screws-tilt-calculate.cfg deleted file mode 100644 index af51d59..0000000 --- a/klicky-screws-tilt-calculate.cfg +++ /dev/null @@ -1,32 +0,0 @@ -# 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. -# -# this macro is 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" -# 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 -# -# by standing on the shoulders of giants, lets see if we can see further -# User richardjm revised the macro variables and added some functions, thanks a lot -# This macro home is https://github.com/jlas1/Klicky-Probe - -################### -## Screws Tilt Adjust -[gcode_macro SCREWS_TILT_CALCULATE] -rename_existing: _SCREWS_TILT_CALCULATE -description: -gcode: - {% set V = printer["gcode_macro _User_Variables"].verbose %} - {% if V %} - { action_respond_info("Screws Tilt Adjust") } - {% endif %} - - _CheckProbe action=query - G90 - Attach_Probe - _KLICKY_STATUS_LEVELING - - _SCREWS_TILT_CALCULATE {% for p in params - %}{'%s=%s ' % (p, params[p])}{% - endfor %} - - Dock_Probe \ No newline at end of file diff --git a/klicky-specific.cfg b/klicky-specific.cfg deleted file mode 100644 index e69de29..0000000 diff --git a/klicky-variables.cfg b/klicky-variables.cfg deleted file mode 100644 index bde36e0..0000000 --- a/klicky-variables.cfg +++ /dev/null @@ -1,109 +0,0 @@ -# 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 %} diff --git a/klicky-z-tilt-adjust.cfg b/klicky-z-tilt-adjust.cfg deleted file mode 100644 index 3264c85..0000000 --- a/klicky-z-tilt-adjust.cfg +++ /dev/null @@ -1,32 +0,0 @@ -# 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. -# -# this macro is 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" -# 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 -# -# by standing on the shoulders of giants, lets see if we can see further -# User richardjm revised the macro variables and added some functions, thanks a lot -# This macro home is https://github.com/jlas1/Klicky-Probe - -################### -## Z Tilt Adjust -[gcode_macro Z_TILT_ADJUST] -rename_existing: _Z_TILT_ADJUST -description: -gcode: - {% set V = printer["gcode_macro _User_Variables"].verbose %} - {% if V %} - { action_respond_info("Z Tilt Adjust") } - {% endif %} - - _CheckProbe action=query - G90 - Attach_Probe - _KLICKY_STATUS_LEVELING - - _Z_TILT_ADJUST {% for p in params - %}{'%s=%s ' % (p, params[p])}{% - endfor %} - Dock_Probe - G28 Z0 \ No newline at end of file diff --git a/klicky_z_calibration.cfg b/klicky_z_calibration.cfg deleted file mode 100644 index 9bc2d67..0000000 --- a/klicky_z_calibration.cfg +++ /dev/null @@ -1,49 +0,0 @@ -[z_calibration] -nozzle_xy_position: 228,346 -# A X, Y coordinate (e.g. 100,100) of the nozzle, clicking on the z endstop. -switch_xy_position: 222,325 -# A X, Y coordinate (e.g. 100,100) of the probe's switch body, clicking on -# the z endstop. -#switch_xy_offsets: optional when switch_xy_position is used -# Instead of an absolute position (switch_xy_position), this configuration -# adds an X, Y offset (e.g. -6,-18) to the nozzle position. -bed_xy_position: 175,175 -# A X, Y coordinate (e.g. 100,100) where the print surface (e.g. the center -# point) is probed. These coordinates are adjusted by the -# probe's X and Y offsets. The default is the zero_reference_position which -# replaces the deprecated relative_reference_index -# of the configured bed_mesh, if configured. It's possible to change the zero -# reference position at runtime or use the GCode argument BED_POSITION of CALIBRATE_Z. -wiggle_xy_offsets: 0,0 -# After probing the nozzle and retracting, move x some distance away and -# back. Useful to prevent the z endstop pin sticking to the nozzle and -# being pulled out of the assembly. Can be negative. Defaults to zero to -# disable it. Can be combined in x and y to move diagonally. Be careful -# to not move your nozzle out of range! -switch_offset: 0.521 -# The trigger point offset of the used mag-probe switch. -# A larger value will position the nozzle closer to the bed. -# This must be determined manually. More on this later -# in this section.. -offset_margins: -1.0,1.0 -# The minimum and maximum margins allowed for the calculated offset. -# If the offset is outside these values, it will stop! -# The margin can be defined as "min,max" e.g. "-0.5,1.5" or by just one -# value e.g. "1.0" which translates to "-1.0,1.0" (which is also the default). -probing_first_fast: false -# If true, the first probing will be faster by the probing speed. -# This is to get down faster and not record the result as a -# probing sample. The default is false. -start_gcode: ATTACH_PROBE -# A list of G-Code commands to run before each calibration command. -# See docs/Command_Templates.md for the G-Code format. This can be used to -# attach the probe. -#before_switch_gcode: -# A list of G-Code commands to run before to each probing on the -# mag-probe. See docs/Command_Templates.md for the G-Code format. This can -# be used to attach the probe after probing on the nozzle and before probing -# on the mag-probe. -end_gcode: DOCK_PROBE -# A list of G-Code commands to run after each calibration command. -# See docs/Command_Templates.md for the G-Code format. This can be used to -# detach the probe afterwards. diff --git a/mmu/mmu_vars.cfg b/mmu/mmu_vars.cfg index db257c8..3fe29f0 100644 --- a/mmu/mmu_vars.cfg +++ b/mmu/mmu_vars.cfg @@ -1,5 +1,5 @@ [Variables] -mmu__revision = 2542 +mmu__revision = 2547 mmu_calibration_bowden_home = 'encoder' mmu_calibration_bowden_lengths = [1425.1, 1425.1, 1425.1, 1425.1, 1425.1, 1425.1, 1425.1, 1425.1] mmu_calibration_clog_length = 17.4 @@ -24,7 +24,7 @@ mmu_state_gate_temperature = [200, 200, 200, 200, 200, 200, 200, 200] mmu_state_last_tool = 1 mmu_state_tool_selected = -2 mmu_state_tool_to_gate_map = [0, 1, 2, 3, 4, 5, 6, 7] -mmu_statistics_counters = {'servo_down': {'count': 812, 'limit': 5000, 'warning': 'Inspect servo arm for wear/damage', 'pause': False}, 'mmu_restarts': {'count': 159, 'limit': -1, 'warning': ''}, 'cutter_blade': {'count': 48, 'limit': 3000, 'warning': 'Inspect/replace filament cutting blade', 'pause': False}} +mmu_statistics_counters = {'servo_down': {'count': 812, 'limit': 5000, 'warning': 'Inspect servo arm for wear/damage', 'pause': False}, 'mmu_restarts': {'count': 160, 'limit': -1, 'warning': ''}, 'cutter_blade': {'count': 48, 'limit': 3000, 'warning': 'Inspect/replace filament cutting blade', 'pause': False}} mmu_statistics_gate_0 = {'pauses': 12, 'loads': 28, 'load_distance': 38354.336, 'load_delta': 6896.202, 'unloads': 43, 'unload_distance': 31567.3, 'unload_delta': 1877.741, 'load_failures': 7, 'unload_failures': 16, 'quality': 0.9546537865318246} mmu_statistics_gate_1 = {'pauses': 2, 'loads': 22, 'load_distance': 28896.615, 'load_delta': 90.861, 'unloads': 25, 'unload_distance': 27502.0, 'unload_delta': 1483.93, 'load_failures': 1, 'unload_failures': 5, 'quality': 0.8375118313601163} mmu_statistics_gate_2 = {'pauses': 0, 'loads': 0, 'load_distance': 0.0, 'load_delta': 0.0, 'unloads': 0, 'unload_distance': 0.0, 'unload_delta': 0.0, 'load_failures': 0, 'unload_failures': 0, 'quality': -1.0} diff --git a/printer.cfg b/printer.cfg index 82e13bc..5d1f94f 100644 --- a/printer.cfg +++ b/printer.cfg @@ -32,12 +32,9 @@ canbus_uuid: 970febd72165 #serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_210044000150335331383520-if00 [include ebb36.cfg] -#[include klicky-probe.cfg] -#[include klicky-quad-gantry-level.cfg] [include fluidd.cfg] [include stealthburner_leds.cfg] [include bedfans.cfg] -#[include eddy_macros.cfg] [include martyn_macros.cfg] [include shaketune.cfg] @@ -484,15 +481,15 @@ enable_force_move: True #*# [bed_mesh default] #*# version = 1 #*# points = -#*# -0.042300, -0.024348, -0.036666, -0.017664, -0.025407, -0.050054, 0.017329, -0.031042, -0.038785 -#*# -0.007723, -0.005574, 0.027356, 0.013756, -0.021179, 0.013756, 0.069095, 0.045122, 0.025202 -#*# 0.008027, 0.002299, 0.038640, 0.015910, 0.011601, -0.013425, 0.045122, 0.027356, 0.011601 -#*# -0.007728, 0.000155, 0.029732, 0.033775, 0.023415, 0.011601, 0.003728, 0.015910, 0.029732 -#*# -0.021179, 0.020556, 0.001942, 0.000155, 0.000155, -0.004864, 0.015910, 0.005883, 0.002299 -#*# -0.033151, 0.029732, 0.008027, 0.013756, 0.011601, 0.012678, 0.065388, -0.005574, 0.021628 -#*# -0.004144, 0.008027, 0.019484, 0.054030, 0.049165, 0.033775, 0.069095, 0.003014, 0.013756 -#*# -0.038785, -0.004144, 0.042683, 0.042683, 0.032972, 0.021628, 0.062950, 0.045122, -0.023288 -#*# -0.002000, -0.021179, 0.003728, 0.019484, -0.013425, 0.013756, 0.038640, -0.034557, -0.015545 +#*# 0.056360, 0.067675, 0.043291, 0.049857, 0.049857, 0.040359, 0.056423, 0.032923, 0.009465 +#*# 0.049821, 0.048075, 0.046974, 0.054641, 0.040398, 0.030274, 0.051682, 0.025871, 0.019834 +#*# 0.027509, 0.056302, 0.037514, 0.015357, 0.049939, 0.033519, 0.033874, 0.005136, -0.009108 +#*# 0.040608, 0.017364, 0.018759, 0.017411, 0.032271, 0.006685, 0.017411, -0.008411, -0.025214 +#*# 0.020039, 0.007966, 0.009584, 0.026020, -0.000823, 0.017287, -0.005193, -0.026172, -0.059551 +#*# 0.023237, 0.007831, 0.036805, 0.009506, 0.009502, -0.028274, 0.000816, -0.012714, -0.043808 +#*# 0.011155, 0.040385, 0.022873, 0.036750, 0.003410, 0.010397, 0.000831, -0.032395, -0.022543 +#*# 0.009978, 0.032564, 0.028053, 0.009943, -0.012340, 0.001206, 0.014305, -0.033977, -0.052455 +#*# -0.000439, -0.002121, 0.002249, 0.014322, -0.014391, -0.003142, -0.027852, -0.045480, -0.072374 #*# x_count = 9 #*# y_count = 9 #*# mesh_x_pps = 9