diff --git a/klicky-probe.cfg b/klicky-probe.cfg new file mode 100644 index 0000000..04bb59f --- /dev/null +++ b/klicky-probe.cfg @@ -0,0 +1,662 @@ +# 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 can be found here https://github.com/Annex-Engineering/Annex-Engineering_Other_Printer_Mods/blob/master/All_Printers/Microswitch_Probe/Klipper_Macros/dockable_probe_macros.cfg +# +# by standing on the shoulders of giants, lets see if we can see further +# Klicky-probe.cfg version 11-10-2021 01 + +[gcode_macro _User_Variables] +variable_verbose: True # Enable verbose output +variable_travel_speed: 200 # how fast all other travel moves will be performed when running these macros +variable_dock_speed: 50 # how fast should the toolhead move when docking the probe for the final movement +variable_release_speed: 100 # 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_home_z_height: 20 # Z when homing +variable_allow_g28xy_without_z: 0 # forces the initial G28 to calibrate X Y and Z, otherwise you could only do one axis and potentially hit the bed or gantry (by doing only a G28 Z) +variable_max_bed_y: 250 #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: 208 +variable_z_endstop_y: 305 + +# location to park the toolhead +variable_park_toolhead: False # Enable toolhead parking +variable_parkposition_x: 125 +variable_parkposition_y: 125 +variable_parkposition_z: 30 + +#dock location +variable_docklocation_x: 148 # X Dock position +variable_docklocation_y: 305 # Y Dock position +variable_docklocation_z: -128 # Z dock position (-128 for a gantry mount) +variable_dockarmslenght: 30 # Dock arms lenght, toolhead movement necessary to clear the dock arms + +#Umbilical to help untangle the umbilical in difficult situations +variable_umbilical_x: 15 #X umbilical position +variable_umbilical_y: 15 #Y umbilical position +variable_umbilical: False #should we untabgle the umbilical + +# 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 docklocation_z is zero, use Home Z height for safety + {% if docklocation_z == 0 %} + SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=docklocation_z VALUE={ home_z_height } + {% endif %} + + # 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 %} + + +[gcode_macro _Probe_Variables] +variable_probe_attached: False +variable_probe_state: False +variable_probe_lock: False +variable_z_endstop_x: 0 +variable_z_endstop_y: 0 +gcode: + + +[gcode_macro _Homing_Variables] +gcode: + {% set R = params.RESET|default(0) %} + + {% if R %} + 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 + SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_lock VALUE={ True } + + +# Dock probe and lock it +[gcode_macro Dock_Probe_Unlock] +description: Docks Klicky Probe even if it was locked +gcode: + SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_lock VALUE={ False } + Dock_Probe + +# Unlock Probe +[gcode_macro Probe_Unlock] +description: Unlocks Klicky Probe state +gcode: + SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_lock VALUE={ False } + +# Lock Probe +[gcode_macro Probe_Lock] +description: Locks Klicky Probe state +gcode: + SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_lock VALUE={ True } + +# Attach Probe Routine +[gcode_macro Attach_Probe] +description: Attaches Klicky Probe +gcode: + # Get probe attach status + {% set P = printer["gcode_macro _Probe_Variables"].probe_attached %} + {% set L = printer["gcode_macro _Probe_Variables"].probe_lock %} + {% set V = printer["gcode_macro _User_Variables"].verbose %} + # Get Docking location + {% set Dx = printer["gcode_macro _User_Variables"].docklocation_x %} + {% set Dy = printer["gcode_macro _User_Variables"].docklocation_y %} + {% set Dz = printer["gcode_macro _User_Variables"].docklocation_z %} + {% set Da = printer["gcode_macro _User_Variables"].dockarmslenght %} + # Safe Z for travel + {% set Hzh = printer["gcode_macro _User_Variables"].home_z_height|float %} + #Set speed + {% set St = printer["gcode_macro _User_Variables"].travel_speed * 60 %} + + #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.toolhead.position.z < Hzh) %} + G1 Z{Hzh} F1200 + {% endif %} + M400 # mandatory to save the new safe position + #allows the docking position to be independent of the Z offset, necessary for bed mounted probes + SAVE_GCODE_STATE name=_attachProbe + SET_GCODE_OFFSET Z=0 + + # 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!") } + + # If probe not attached and locked + {% elif not P and not L %} + {% if V %} + { action_respond_info("Attaching Probe") } + {% endif %} + G90 + + {% if (not 'z' in printer.toolhead.homed_axes) %} + {% if V %} + { action_respond_info("Resetting Z position to zero") } + {% endif %} + SET_KINEMATIC_POSITION Z=0 + {% endif %} + + {% if (printer.toolhead.position.z < Hzh) %} + G1 Z{Hzh} F1200 + {% endif %} + + _Umbilical_Path + + # Probe entry location + G1 X{Dx} Y{Dy|int - Da|int} F{St} + {% if Dz != -128 %} + #lower to Z dock + G1 Z{Dz} F600 + {% endif %} + # pickup from Probe location + G1 X{Dx} Y{Dy} F1800 + # Probe entry location + G1 X{Dx} Y{Dy|int - Da|int} F6000 + #Go to Z safe distance + {% if (printer.toolhead.position.z < Hzh) %} + G1 Z{Hzh} F600 + {% endif %} + _Park_Toolhead + + _CheckProbe action=attach + + {% elif L %} + {% if V %} + { action_respond_info("Probe locked!") } + {% endif %} + + # Probe attached, do nothing + _CheckProbe action=query + + {% else %} + {% if V %} + { action_respond_info("Probe already attached!") } + {% endif %} + + # Probe attached, do nothing + _CheckProbe action=query + + {% endif %} + #reverts to the original Z offset + RESTORE_GCODE_STATE name=_attachProbe + + +# Dock Probe Routine +[gcode_macro Dock_Probe] +description: Docks Klicky Probe +gcode: + # Get probe attach status + {% set P = printer["gcode_macro _Probe_Variables"].probe_attached %} + {% set L = printer["gcode_macro _Probe_Variables"].probe_lock %} + {% set V = printer["gcode_macro _User_Variables"].verbose %} + # Get Docking location + {% set Dx = printer["gcode_macro _User_Variables"].docklocation_x %} + {% set Dy = printer["gcode_macro _User_Variables"].docklocation_y %} + {% set Dz = printer["gcode_macro _User_Variables"].docklocation_z %} + {% set Da = printer["gcode_macro _User_Variables"].dockarmslenght %} + # Safe Z for travel + {% set Hzh = printer["gcode_macro _User_Variables"].home_z_height|float %} + # Set speed + {% set St = printer["gcode_macro _User_Variables"].travel_speed * 60 %} + {% set Sd = printer["gcode_macro _User_Variables"].dock_speed * 60 %} + {% set Sr = printer["gcode_macro _User_Variables"].release_speed * 60 %} + {% set Sz = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} + + M400 # mandatory to save the new safe position + #allows the docking position to be independent of the Z offset, necessary for bed mounted probes + SAVE_GCODE_STATE name=_dockProbe + SET_GCODE_OFFSET Z=0 + + {% if not 'xyz' in printer.toolhead.homed_axes %} + { action_raise_error("Must Home X, Y and Z Axis First!") } + + # If probe not attached and not locked + {% elif P and not L %} + {% if V %} + { action_respond_info("Docking Probe") } + {% endif %} + G90 + + {% if (printer.toolhead.position.z < Hzh) %} + G1 Z{Hzh} F{Sz} + {% endif %} + + _Umbilical_Path + + # Probe entry location + G1 X{Dx} Y{Dy|int - Da|int} F{St} + {% if Dz != -128 %} + #lower to Z dock + G1 Z{Dz} F600 + {% endif %} + # Drop Probe to Probe location + G1 X{Dx} Y{Dy} F{Sd} + # Probe decoupling + G1 X{Dx|int + 40} Y{Dy} F{Sr} + #Go to Z safe distance + {% if (printer.toolhead.position.z < Hzh) %} + G1 Z{Hzh} F600 + {% endif %} + + _Park_Toolhead + + G4 P1000 + _CheckProbe action=dock + + {% elif L %} + {% if V %} + { action_respond_info("Probe locked!") } + {% endif %} + + # Probe docked, do nothing + _CheckProbe action=query + + {% else %} + {% if V %} + { action_respond_info("Probe already docked!") } + {% endif %} + + # Probe docked, do nothing + _CheckProbe action=query + + {% endif %} + #reverts to the original Z offset + RESTORE_GCODE_STATE name=_dockProbe + + + +# 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 + Attach_Probe + + _QUAD_GANTRY_LEVEL {% for p in params + %}{'%s=%s ' % (p, params[p])}{% + endfor %} + Dock_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 +# Attach_Probe +# +# _Z_TILT_ADJUST {% for p in params +# %}{'%s=%s ' % (p, params[p])}{% +# endfor %} +# G28 Z0 +# Dock_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 +# Attach_Probe +# +# _SCREWS_TILT_CALCULATE {% for p in params +# %}{'%s=%s ' % (p, params[p])}{% +# endfor %} +# +# Dock_Probe + +# Bed Mesh Calibrate +[bed_mesh] + +[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 + Attach_Probe + + _BED_MESH_CALIBRATE {% for p in params + %}{'%s=%s ' % (p, params[p])}{% + endfor %} + + Dock_Probe + + +# Probe Calibrate +[gcode_macro PROBE_CALIBRATE] +rename_existing: _PROBE_CALIBRATE +description:Calibrate the probe's z_offset with klicky automount +gcode: + {% set Hzh = printer["gcode_macro _User_Variables"].home_z_height|float %} + {% set Sz = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} + {% set St = printer["gcode_macro _User_Variables"].travel_speed %} + {% 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 %} + + # Go to Z safe distance before saving location in order to + # avoid crashing the probe on the bed when coming back + G1 Z{Hzh} F{Sz} + #Protect against PROBE CALIBRATE performed from outside the bed + {% if (printer['gcode_move'].position.y > (My - Oy)) or (printer['gcode_move'].position.x > (Mx - Ox)) or (printer['gcode_move'].position.x < Ox) %} + { action_raise_error("Must perform PROBE_CALIBRATE with the probe above the BED!!!") } + {% endif%} + M400 # mandatory to save the new safe position + SAVE_GCODE_STATE NAME=_original_nozzle_location + + _CheckProbe action=query + Attach_Probe + + # Restore nozzle location to probe the right place + RESTORE_GCODE_STATE NAME=_original_nozzle_location MOVE=1 MOVE_SPEED={St} + + _PROBE_CALIBRATE {% for p in params + %}{'%s=%s ' % (p, params[p])}{% + endfor %} + + #store current nozzle location + SAVE_GCODE_STATE NAME=_original_nozzle_location + Dock_Probe + + # Restore nozzle location again at the end + RESTORE_GCODE_STATE NAME=_original_nozzle_location MOVE=1 MOVE_SPEED={St} + + +# Probe Accuracy +[gcode_macro PROBE_ACCURACY] +rename_existing: _PROBE_ACCURACY +description:Probe Z-height accuracy at current XY position with klicky automount +gcode: + {% set Hzh = printer["gcode_macro _User_Variables"].home_z_height|float %} + {% set Sz = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} + {% set St = printer["gcode_macro _User_Variables"].travel_speed %} + {% set By = printer["gcode_macro _User_Variables"].max_bed_y %} + {% set Oy = printer['configfile'].config["probe"]["y_offset"]|float %} + + # Go to Z safe distance before saving location in order to + # avoid crashing the probe on the bed when coming back + G1 Z{Hzh} F{Sz} + #Protect against PROBE ACCURACY performed from outside the bed + {% if (printer.toolhead.position.y > (By - Oy)) %} + { action_raise_error("Must perform PROBE_ACCURACY with the probe above the BED!!!") } + {% endif%} + M400 # mandatory to save the new safe position + SAVE_GCODE_STATE NAME=_original_nozzle_location + + _CheckProbe action=query + Attach_Probe + + # Restore nozzle location to probe the right place + RESTORE_GCODE_STATE NAME=_original_nozzle_location MOVE=1 MOVE_SPEED={St} + + _PROBE_ACCURACY {% for p in params + %}{'%s=%s ' % (p, params[p])}{% + endfor %} + + #store current nozzle location + SAVE_GCODE_STATE NAME=_original_nozzle_location + + Dock_Probe + + # Restore nozzle location again at the end + RESTORE_GCODE_STATE NAME=_original_nozzle_location MOVE=1 MOVE_SPEED={St} + + +# enable to SET_KINEMATIC_POSITION for Z hop +[force_move] +enable_force_move: True + +# Homeing Override +[homing_override] +axes: xyz +gcode: + # collect user state variables + _User_Variables + {% set V = printer["gcode_macro _User_Variables"].verbose %} + {% set XYwZ = printer["gcode_macro _User_Variables"].allow_g28xy_without_z %} + {% set Hzh = printer["gcode_macro _User_Variables"].home_z_height|float %} + + _CheckProbe action=query + + # reset parameters + {% set X, Y, Z = False, False, False %} + + # which axes have been requested for homing + {% if not 'X' in params + and not 'Y' in params + and not 'Z' in params %} + + {% set X, Y, Z = True, True, True %} + + {% else %} + {% if 'X' in params %} + {% set X = True %} + {% endif %} + + {% if 'Y' in params %} + {% set Y = True %} + {% endif %} + + {% if 'Z' in params %} + {% set Z = True %} + {% 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 + {% endif %} + + {% endif %} + + {% if ('z' in printer.toolhead.homed_axes) %} + {% if (printer.toolhead.position.z < Hzh) %} + {% if V %} + { action_respond_info("Z too low, performing ZHOP") } + {% endif %} + G1 Z{Hzh} F1200 + {% endif %} + {% else %} + #checks if it's allowed to do initially G28 X/Y without doing a G28 Z + {% if ( XYwZ == 0) %} + {% if V %} + { action_respond_info("Z not homed, forcing full G28") } + {% endif %} + SET_KINEMATIC_POSITION X=0 Y=0 Z=0 + G1 Z{Hzh} F600 + {% set X, Y, Z = True, True, True %} + {% endif %} + {% endif %} + + # Home x + {% if X %} + {% if V %} + { action_respond_info("Homing X") } + {% endif %} + G28 X0 + {% endif %} + + # Home y + {% if Y %} + {% if V %} + { action_respond_info("Homing Y") } + {% endif %} + G28 Y0 + {% endif %} + + # Home z + {% if Z %} + {% if V %} + { action_respond_info("Homing Z") } + {% endif %} + + # if probe is configured as endstop, attach it, else dock the probe if attached + {% if printer['configfile'].config["stepper_z"]["endstop_pin"] == 'probe:z_virtual_endstop' %} + Attach_Probe + {% else %} + Dock_Probe + {% endif %} + + _Home_Z + + + # if probe is configured as endstop, dock it + {% if printer['configfile'].config["stepper_z"]["endstop_pin"] == 'probe:z_virtual_endstop' %} + Dock_Probe + {% endif %} + {% endif %} + _CheckProbe action=query + + # park the toolhead + _Park_Toolhead + +# umbilical path setup +[gcode_macro _Umbilical_Path] +gcode: + {% set Ux = printer["gcode_macro _User_Variables"].umbilical_x %} + {% set Uy = printer["gcode_macro _User_Variables"].umbilical_y %} + {% set U = printer["gcode_macro _User_Variables"].umbilical %} + {% set Hzh = printer["gcode_macro _User_Variables"].home_z_height|float %} + {% set St = printer["gcode_macro _User_Variables"].travel_speed * 60 %} + + {% if U %} + # Used to give the umbilical a better path to follow and coil properly if dock is tight in space + G1 X{Ux} Y{Uy} Z{Hzh} F{St} + {% endif %} + + +# Home Z Routine +[gcode_macro _Home_Z] +gcode: + {% set Zx = printer["gcode_macro _Probe_Variables"].z_endstop_x %} + {% set Zy = printer["gcode_macro _Probe_Variables"].z_endstop_y %} + {% set Hzh = printer["gcode_macro _User_Variables"].home_z_height|float %} + {% set St = printer["gcode_macro _User_Variables"].travel_speed * 60 %} + {% set Sz = printer["gcode_macro _User_Variables"].z_drop_speed * 60 %} + + # 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 %} + {% if (not 'z' in printer.toolhead.homed_axes) %} + {% if V %} + { action_respond_info("Resetting Z position to zero") } + {% endif %} + SET_KINEMATIC_POSITION Z=0 + {% endif %} + + # move tool to safe homing position and home Z axis + # location of z endstop + G1 X{Zx} Y{Zy} Z{Hzh} F{St} + G28 Z0 + G1 Z{Hzh} F{Sz} + + {% endif %} + + +# 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={ 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 P = printer.probe.last_query %} + {% set V = printer["gcode_macro _User_Variables"].verbose %} + + # If triggered (true), probe not attached + {% if P %} + SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_attached VALUE={ False } + + # If not triggered (false), probe attached + {% else %} + SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_attached VALUE={ True } + {% endif %} + + {% if params.ACTION == 'query' %} + SET_GCODE_VARIABLE MACRO=_Probe_Variables VARIABLE=probe_state VALUE={ P } + {% endif %} + + # if probe fails to attach/detach + # if not docked + {% if (not P and params.ACTION == 'dock') %} + { action_raise_error("Probe dock failed!") } + {% endif %} + + # if not attached + {% if P and params.ACTION == 'attach' %} + { action_raise_error("Probe attach failed!") } + {% endif %} + +# Park Toolhead Routine +[gcode_macro _Park_Toolhead] +gcode: + {% set P = printer["gcode_macro _User_Variables"].park_toolhead %} + {% set Px = printer["gcode_macro _User_Variables"].parkposition_x %} + {% set Py = printer["gcode_macro _User_Variables"].parkposition_y %} + {% set Pz = printer["gcode_macro _User_Variables"].parkposition_z %} + {% set St = printer["gcode_macro _User_Variables"].travel_speed * 60 %} + {% set V = printer["gcode_macro _User_Variables"].verbose %} + + {% if (P and 'xyz' in printer.toolhead.homed_axes) %} + {% if V %} + { action_respond_info("Parking Toolhead") } + {% endif %} + G90 + G1 X{Px} Y{Py} Z{Pz} F{St} + {% endif %} + diff --git a/printer.cfg b/printer.cfg index 81b343e..a1bbab0 100644 --- a/printer.cfg +++ b/printer.cfg @@ -34,15 +34,16 @@ serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_1E0030000E5053424E363620-if00 [printer] kinematics: corexy max_velocity: 300 +## regular max_accel: 3000 # Max 4000 max_accel_to_decel: 1500 # default half of max_accel -max_z_velocity: 30 # Max 15 for 12V TMC Drivers, can increase for 24V -max_z_accel: 500 -square_corner_velocity: 5.0 ## input_shaper # max_accel: 7000 # max_accel_to_decel: 3500 -# max_z_accel: 7000 +## +max_z_velocity: 30 # Max 15 for 12V TMC Drivers, can increase for 24V +max_z_accel: 500 +square_corner_velocity: 5.0 ##################################################################### @@ -55,6 +56,7 @@ square_corner_velocity: 5.0 [include fans.cfg] [include input_shaper.cfg] # [include resonance_test.cfg] +[include klicky-probe.cfg] ##################################################################### @@ -270,9 +272,8 @@ max_temp: 120 ##################################################################### [probe] -## Inductive Probe -## This probe is not used for Z height, only Quad Gantry Leveling -pin: ~PB7 +## Microswitch probe +pin: ^PG11 x_offset: 0 y_offset: 25.0 #z_offset: 0 @@ -280,7 +281,7 @@ speed: 10.0 samples: 3 samples_result: median sample_retract_dist: 3.0 -samples_tolerance: 0.006 +samples_tolerance: 0.01 samples_tolerance_retries: 3 @@ -289,7 +290,7 @@ samples_tolerance_retries: 3 ##################################################################### [filament_switch_sensor filament_switch] -switch_pin: ^!PG11 +switch_pin: ^!PG12 pause_on_runout: True # runout_gcode is executed after pause_on_runout runout_gcode: @@ -310,7 +311,7 @@ beta: 3950 [temperature_sensor chamber] -sensor_type: chamber_temp +sensor_type: chamber sensor_pin: PF5 min_temp: 0 max_temp: 100 @@ -324,12 +325,13 @@ max_temp: 100 [idle_timeout] timeout: 1800 -[safe_z_home] -## XY Location of the Z Endstop Switch -home_xy_position: 208, 305 -speed: 100 -z_hop: 10 -z_hop_speed: 25 +## replaced with homing_override in klicky-probe.cfg +# [safe_z_home] +# ## XY Location of the Z Endstop Switch +# home_xy_position: 208, 305 +# speed: 100 +# z_hop: 10 +# z_hop_speed: 25 [bed_mesh] speed: 500 @@ -338,8 +340,9 @@ mesh_min: 40,60 mesh_max: 260,280 fade_start: 0.6 fade_end: 10 -probe_count: 9,9 +probe_count: 5,5 algorithm: bicubic +# relative_reference_index = ((x points * y points) - 1) / 2 relative_reference_index: 12 [quad_gantry_level] @@ -376,28 +379,24 @@ max_adjust: 10 #*# [bed_mesh default] #*# version = 1 #*# points = -#*# -0.032500, -0.010000, 0.017500, 0.002500, -0.017500, 0.012500, -0.025000, 0.020000, -0.020000 -#*# -0.040000, -0.020000, 0.000000, -0.012500, -0.037500, 0.000000, -0.040000, 0.007500, -0.030000 -#*# -0.045000, -0.025000, 0.000000, -0.012500, -0.035000, -0.002500, -0.040000, 0.000000, -0.042500 -#*# -0.065000, -0.045000, -0.020000, -0.032500, -0.057500, -0.022500, -0.067500, -0.020000, -0.057500 -#*# -0.052500, -0.032500, -0.010000, -0.020000, -0.042500, -0.007500, -0.050000, -0.010000, -0.060000 -#*# -0.045000, -0.022500, -0.005000, -0.017500, -0.040000, -0.010000, -0.047500, -0.005000, -0.047500 -#*# -0.042500, -0.025000, 0.000000, -0.015000, -0.035000, -0.002500, -0.040000, 0.000000, -0.047500 -#*# -0.027500, -0.015000, 0.010000, -0.012500, -0.032500, 0.000000, -0.035000, 0.005000, -0.035000 -#*# -0.005000, 0.012500, 0.045000, 0.025000, 0.005000, 0.040000, 0.002500, 0.042500, -0.007500 +#*# -0.002500, -0.015000, -0.002500, -0.005000, -0.045000 +#*# -0.000000, -0.012500, 0.002500, -0.005000, -0.040000 +#*# -0.002500, 0.002500, 0.000000, 0.012500, -0.032500 +#*# -0.012500, -0.007500, 0.025000, 0.017500, 0.000000 +#*# 0.057500, 0.072500, 0.042500, 0.075000, 0.027500 #*# tension = 0.2 #*# min_x = 40.0 #*# algo = bicubic -#*# y_count = 9 +#*# y_count = 5 #*# mesh_y_pps = 2 #*# min_y = 60.0 -#*# x_count = 9 +#*# x_count = 5 #*# max_y = 280.0 #*# mesh_x_pps = 2 #*# max_x = 260.0 #*# #*# [stepper_z] -#*# position_endstop = 0.597 +#*# position_endstop = 0.817 #*# #*# [probe] -#*# z_offset = 1.890 +#*# z_offset = 7.660