Add KAMP adaptive mesh leveling and priming - untested

This commit is contained in:
2024-10-12 03:08:17 +01:00
parent 6cca953a81
commit 5145e11e4d
7 changed files with 352 additions and 13 deletions

View File

@@ -0,0 +1,72 @@
[server]
host = 0.0.0.0
port = 7125
max_upload_size = 4096
klippy_uds_address = ~/printer_data/comms/klippy.sock
[file_manager]
enable_object_processing = True
[authorization]
cors_domains =
https://my.mainsail.xyz
http://my.mainsail.xyz
http://*.local
http://*.lan
trusted_clients =
10.0.0.0/8
127.0.0.0/8
169.254.0.0/16
172.16.0.0/12
192.168.0.0/16
FE80::/10
::1/128
[octoprint_compat]
[history]
[announcements]
subscriptions =
mainsail
[update_manager]
refresh_interval = 168
enable_auto_refresh = True
[update_manager mainsail]
type = web
channel = stable
repo = mainsail-crew/mainsail
path = ~/mainsail
[update_manager mainsail-config]
type = git_repo
primary_branch = master
path = ~/mainsail-config
origin = https://github.com/mainsail-crew/mainsail-config.git
managed_services = klipper
[update_manager crowsnest]
type = git_repo
path = ~/crowsnest
origin = https://github.com/mainsail-crew/crowsnest.git
managed_services = crowsnest
install_script = tools/pkglist.sh
[update_manager sonar]
type = git_repo
path = ~/sonar
origin = https://github.com/mainsail-crew/sonar.git
primary_branch = main
managed_services = sonar
install_script = tools/install.sh
[update_manager Klipper-Adaptive-Meshing-Purging]
type = git_repo
channel = dev
path = ~/Klipper-Adaptive-Meshing-Purging
origin = https://github.com/kyleisah/Klipper-Adaptive-Meshing-Purging.git
managed_services = klipper
primary_branch = main

1
config/KAMP Symbolic link
View File

@@ -0,0 +1 @@
/home/pi/Klipper-Adaptive-Meshing-Purging/Configuration

36
config/KAMP_Settings.cfg Normal file
View File

@@ -0,0 +1,36 @@
# Below you can include specific configuration files depending on what you want KAMP to do:
[include ./KAMP/Adaptive_Meshing.cfg] # Include to enable adaptive meshing configuration.
[include ./KAMP/Line_Purge.cfg] # Include to enable adaptive line purging configuration.
#[include ./KAMP/Voron_Purge.cfg] # Include to enable adaptive Voron logo purging configuration.
[include ./KAMP/Smart_Park.cfg] # Include to enable the Smart Park function, which parks the printhead near the print area for final heating.
[gcode_macro _KAMP_Settings]
description: This macro contains all adjustable settings for KAMP
# The following variables are settings for KAMP as a whole.
variable_verbose_enable: True # Set to True to enable KAMP information output when running. This is useful for debugging.
# The following variables are for adjusting adaptive mesh settings for KAMP.
variable_mesh_margin: 20 # Expands the mesh size in millimeters if desired. Leave at 0 to disable.
variable_fuzz_amount: 0 # Slightly randomizes mesh points to spread out wear from nozzle-based probes. Leave at 0 to disable.
# The following variables are for those with a dockable probe like Klicky, Euclid, etc. # ---------------- Attach Macro | Detach Macro
variable_probe_dock_enable: False # Set to True to enable the usage of a dockable probe. # ---------------------------------------------
variable_attach_macro: 'Attach_Probe' # The macro that is used to attach the probe. # Klicky Probe: 'Attach_Probe' | 'Dock_Probe'
variable_detach_macro: 'Dock_Probe' # The macro that is used to store the probe. # Euclid Probe: 'Deploy_Probe' | 'Stow_Probe'
# Legacy Gcode: 'M401' | 'M402'
# The following variables are for adjusting adaptive purge settings for KAMP.
variable_purge_height: 0.8 # Z position of nozzle during purge, default is 0.8.
variable_tip_distance: 3 # Distance between tip of filament and nozzle before purge. Should be similar to PRINT_END final retract amount.
variable_purge_margin: 20 # Distance the purge will be in front of the print area, default is 10.
variable_purge_amount: 40 # Amount of filament to be purged prior to printing.
variable_flow_rate: 12 # Flow rate of purge in mm3/s. Default is 12.
# The following variables are for adjusting the Smart Park feature for KAMP, which will park the printhead near the print area at a specified height.
variable_smart_park_height: 10 # Z position for Smart Park, default is 10.
gcode: # Gcode section left intentionally blank. Do not disturb.
{action_respond_info(" Running the KAMP_Settings macro does nothing, it is only used for storing KAMP settings. ")}

View File

@@ -89,3 +89,12 @@ origin: https://github.com/mainsail-crew/sonar.git
primary_branch: main primary_branch: main
managed_services: sonar managed_services: sonar
install_script: tools/install.sh install_script: tools/install.sh
# Adaptive Leveling Mesh plugin
[update_manager Klipper-Adaptive-Meshing-Purging]
type: git_repo
channel: dev
path: ~/Klipper-Adaptive-Meshing-Purging
origin: https://github.com/kyleisah/Klipper-Adaptive-Meshing-Purging.git
managed_services: klipper
primary_branch: main

View File

@@ -0,0 +1,172 @@
# This file contains common pin mappings for the 2018 Creality
# Ender 3. To use this config, the firmware should be compiled for the
# AVR atmega1284p.
# Note, a number of Melzi boards are shipped with a bootloader that
# requires the following command to flash the board:
# avrdude -p atmega1284p -c arduino -b 57600 -P /dev/ttyUSB0 -U out/klipper.elf.hex
# If the above command does not work and "make flash" does not work
# then one may need to flash a bootloader to the board - see the
# Klipper docs/Bootloaders.md file for more information.
[include mainsail.cfg]
[include scottc.cfg]
# See docs/Config_Reference.md for a description of parameters.
[stepper_x]
step_pin: PD7
dir_pin: !PC5
enable_pin: !PD6
microsteps: 16
rotation_distance: 40
endstop_pin: ^PC2
position_endstop: 0
position_max: 235
homing_speed: 50
[stepper_y]
step_pin: PC6
dir_pin: !PC7
enable_pin: !PD6
microsteps: 16
rotation_distance: 40
endstop_pin: ^PC3
position_endstop: 0
position_max: 235
homing_speed: 50
[stepper_z]
step_pin: PB3
dir_pin: PB2
enable_pin: !PA5
microsteps: 16
rotation_distance: 8
endstop_pin: probe:z_virtual_endstop
position_max: 250
[extruder]
max_extrude_cross_section: 200 ### DELETE ME?
max_extrude_only_distance: 100.0
step_pin: PB1
dir_pin: !PB0
enable_pin: !PD6
microsteps: 16
rotation_distance: 23.046
nozzle_diameter: 0.600
filament_diameter: 1.750
heater_pin: PD5
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA7
min_temp: 0
max_temp: 250
[heater_bed]
heater_pin: PD4
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PA6
min_temp: 0
max_temp: 80
[fan]
pin: PB4
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0
baud: 250000
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[bed_screws]
screw1: 30.5, 37
screw2: 30.5, 207
screw3: 204.5, 207
screw4: 204.5, 37
[display]
lcd_type: st7920
cs_pin: PA3
sclk_pin: PA1
sid_pin: PC1
encoder_pins: ^PD2, ^PD3
click_pin: ^!PC0
# The print bed can move so far to the front, that the nozzle can reach the
# plastic cover of the print bed heater cable (only when the bed is moved by
# hand). By homing the Y axis before the X axis, it is ensured the nozzle will
# not melt through the plastic part.
# BEWARE: You will lose the ability to home axes individually. The printer will
# always home all axes for every G28 command.
#[homing_override]
#gcode:
# G28 Y0
# G28 X0
# G28 Z0
[bltouch]
sensor_pin: ^PC4
control_pin: PA4
x_offset: -40.00
y_offset: -8.00
z_offset: 2.60
[safe_z_home]
home_xy_position: 162, 125 # Change coordinates to the center of your print bed
speed: 50
z_hop: 10 # Move up 10mm
z_hop_speed: 5
[bed_mesh]
speed: 120
horizontal_move_z: 5
mesh_min: 20, 20
mesh_max: 195, 220
mesh_pps: 2, 2
probe_count: 8,8
algorithm: bicubic
fade_start: 1
fade_end: 10
fade_target: 0
#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [heater_bed]
#*# control = pid
#*# pid_kp = 64.222
#*# pid_ki = 1.278
#*# pid_kd = 806.790
#*#
#*# [extruder]
#*# control = pid
#*# pid_kp = 26.561
#*# pid_ki = 1.476
#*# pid_kd = 119.524
#*#
#*# [bed_mesh default]
#*# version = 1
#*# points =
#*# 0.027500, 0.022500, -0.012500, -0.017500, -0.042500, -0.050000, -0.047500, -0.035000
#*# 0.062500, 0.047500, 0.015000, 0.010000, -0.022500, -0.030000, -0.027500, -0.037500
#*# 0.110000, 0.100000, 0.050000, 0.037500, -0.010000, -0.022500, -0.027500, -0.035000
#*# 0.117500, 0.105000, 0.065000, 0.037500, 0.000000, -0.007500, -0.022500, -0.022500
#*# 0.132500, 0.112500, 0.072500, 0.055000, 0.017500, -0.007500, -0.017500, -0.025000
#*# 0.152500, 0.125000, 0.087500, 0.060000, 0.025000, 0.005000, -0.002500, -0.010000
#*# 0.105000, 0.102500, 0.062500, 0.045000, 0.022500, 0.015000, 0.015000, 0.025000
#*# 0.100000, 0.087500, 0.055000, 0.055000, 0.032500, 0.025000, 0.037500, 0.035000
#*# x_count = 8
#*# y_count = 8
#*# mesh_x_pps = 2
#*# mesh_y_pps = 2
#*# algo = bicubic
#*# tension = 0.2
#*# min_x = 20.0
#*# max_x = 195.0
#*# min_y = 20.0
#*# max_y = 219.99

View File

@@ -9,10 +9,40 @@
# then one may need to flash a bootloader to the board - see the # then one may need to flash a bootloader to the board - see the
# Klipper docs/Bootloaders.md file for more information. # Klipper docs/Bootloaders.md file for more information.
[gcode_macro _CLIENT_VARIABLE]
#variable_use_custom_pos : False ; use custom park coordinates for x,y [True/False]
#variable_custom_park_x : 0.0 ; custom x position; value must be within your defined min and max of X
#variable_custom_park_y : 0.0 ; custom y position; value must be within your defined min and max of Y
#variable_custom_park_dz : 2.0 ; custom dz value; the value in mm to lift the nozzle when move to park position
#variable_retract : 1.0 ; the value to retract while PAUSE
#variable_cancel_retract : 5.0 ; the value to retract while CANCEL_PRINT
#variable_speed_retract : 35.0 ; retract speed in mm/s
#variable_unretract : 1.0 ; the value to unretract while RESUME
#variable_speed_unretract : 35.0 ; unretract speed in mm/s
#variable_speed_hop : 15.0 ; z move speed in mm/s
#variable_speed_move : 100.0 ; move speed in mm/s
#variable_park_at_cancel : True ; allow to move the toolhead to park while execute CANCEL_PRINT [True/False]
#variable_park_at_cancel_x : None ; different park position during CANCEL_PRINT [None/Position as Float]; park_at_cancel must be True
#variable_park_at_cancel_y : None ; different park position during CANCEL_PRINT [None/Position as Float]; park_at_cancel must be True
## !!! Caution [firmware_retraction] must be defined in the printer.cfg if you set use_fw_retract: True !!!
variable_use_fw_retract : True ; use fw_retraction instead of the manual version [True/False]
#variable_idle_timeout : 0 ; time in sec until idle_timeout kicks in. Value 0 means that no value will be set or restored
#variable_runout_sensor : "" ; If a sensor is defined, it will be used to cancel the execution of RESUME in case no filament is detected.
## Specify the config name of the runout sensor e.g "filament_switch_sensor runout". Hint use the same as in your printer.cfg
## !!! Custom macros, please use with care and review the section of the corresponding macro.
## These macros are for simple operations like setting a status LED. Please make sure your macro does not interfere with the basic macro functions.
## Only single line commands are supported, please create a macro if you need more than one command.
#variable_user_pause_macro : "" ; Everything inside the "" will be executed after the klipper base pause (PAUSE_BASE) function
#variable_user_resume_macro: "" ; Everything inside the "" will be executed before the klipper base resume (RESUME_BASE) function
#variable_user_cancel_macro: "" ; Everything inside the "" will be executed before the klipper base cancel (CANCEL_PRINT_BASE) function
gcode:
[include mainsail.cfg] [include mainsail.cfg]
[include scottc.cfg] [include scottc.cfg]
[include KAMP_Settings.cfg]
# See docs/Config_Reference.md for a description of parameters. # See docs/Config_Reference.md for a description of parameters.
[stepper_x] [stepper_x]
@@ -47,6 +77,8 @@ endstop_pin: probe:z_virtual_endstop
position_max: 250 position_max: 250
[extruder] [extruder]
###max_extrude_cross_section: 200 ### DELETE ME? - Cura bug?
max_extrude_cross_section: 5 ### Required by KAMP
max_extrude_only_distance: 100.0 max_extrude_only_distance: 100.0
step_pin: PB1 step_pin: PB1
dir_pin: !PB0 dir_pin: !PB0
@@ -77,8 +109,8 @@ baud: 250000
[printer] [printer]
kinematics: cartesian kinematics: cartesian
max_velocity: 300 max_velocity: 150
max_accel: 3000 max_accel: 4000
max_z_velocity: 5 max_z_velocity: 5
max_z_accel: 100 max_z_accel: 100
@@ -127,12 +159,27 @@ horizontal_move_z: 5
mesh_min: 20, 20 mesh_min: 20, 20
mesh_max: 195, 220 mesh_max: 195, 220
mesh_pps: 2, 2 mesh_pps: 2, 2
probe_count: 8,8 #probe_count: 8,8
probe_count: 5,5
algorithm: bicubic algorithm: bicubic
fade_start: 1 fade_start: 1
fade_end: 10 fade_end: 10
fade_target: 0 fade_target: 0
[firmware_retraction]
retract_length: 5
# The length of filament (in mm) to retract when G10 is activated,
# and to unretract when G11 is activated (but see
# unretract_extra_length below). The default is 0 mm.
retract_speed: 40
# The speed of retraction, in mm/s. The default is 20 mm/s.
unretract_extra_length: 0
# The length (in mm) of *additional* filament to add when
# unretracting.
unretract_speed: 20
# The speed of unretraction, in mm/s. The default is 10 mm/s.
#*# <---------------------- SAVE_CONFIG ----------------------> #*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated. #*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*# #*#
@@ -151,14 +198,14 @@ fade_target: 0
#*# [bed_mesh default] #*# [bed_mesh default]
#*# version = 1 #*# version = 1
#*# points = #*# points =
#*# 0.027500, 0.022500, -0.012500, -0.017500, -0.042500, -0.050000, -0.047500, -0.035000 #*# 0.075000, 0.042500, 0.015000, -0.012500, -0.050000, -0.060000, -0.077500, -0.075000
#*# 0.062500, 0.047500, 0.015000, 0.010000, -0.022500, -0.030000, -0.027500, -0.037500 #*# 0.122500, 0.087500, 0.055000, 0.027500, -0.025000, -0.022500, -0.052500, -0.072500
#*# 0.110000, 0.100000, 0.050000, 0.037500, -0.010000, -0.022500, -0.027500, -0.035000 #*# 0.142500, 0.112500, 0.075000, 0.045000, -0.012500, -0.022500, -0.055000, -0.060000
#*# 0.117500, 0.105000, 0.065000, 0.037500, 0.000000, -0.007500, -0.022500, -0.022500 #*# 0.175000, 0.142500, 0.105000, 0.067500, 0.002500, -0.007500, -0.037500, -0.055000
#*# 0.132500, 0.112500, 0.072500, 0.055000, 0.017500, -0.007500, -0.017500, -0.025000 #*# 0.157500, 0.122500, 0.095000, 0.065000, 0.017500, -0.002500, -0.022500, -0.030000
#*# 0.152500, 0.125000, 0.087500, 0.060000, 0.025000, 0.005000, -0.002500, -0.010000 #*# 0.202500, 0.157500, 0.125000, 0.085000, 0.030000, 0.007500, -0.017500, -0.030000
#*# 0.105000, 0.102500, 0.062500, 0.045000, 0.022500, 0.015000, 0.015000, 0.025000 #*# 0.155000, 0.137500, 0.102500, 0.072500, 0.040000, 0.042500, 0.020000, 0.022500
#*# 0.100000, 0.087500, 0.055000, 0.055000, 0.032500, 0.025000, 0.037500, 0.035000 #*# 0.137500, 0.112500, 0.095000, 0.070000, 0.045000, 0.032500, 0.035000, 0.030000
#*# x_count = 8 #*# x_count = 8
#*# y_count = 8 #*# y_count = 8
#*# mesh_x_pps = 2 #*# mesh_x_pps = 2
@@ -168,4 +215,4 @@ fade_target: 0
#*# min_x = 20.0 #*# min_x = 20.0
#*# max_x = 195.0 #*# max_x = 195.0
#*# min_y = 20.0 #*# min_y = 20.0
#*# max_y = 219.99 #*# max_y = 219.98999999999998

View File

@@ -6,7 +6,7 @@
# Enable arcs support # Enable arcs support
[gcode_arcs] [gcode_arcs]
resolution: 0.1 resolution: 1
### END ### END
@@ -45,6 +45,8 @@ gcode:
##G1 Z0.15 F300 ##G1 Z0.15 F300
# Wait for bed to reach temperature # Wait for bed to reach temperature
M190 S{BED_TEMP} M190 S{BED_TEMP}
# KAMP - move printhead near print area
SMART_PARK
# Set and wait for nozzle to reach temperature # Set and wait for nozzle to reach temperature
M109 S{EXTRUDER_TEMP} M109 S{EXTRUDER_TEMP}