voronklipperconfig/mmu/base/mmu_macro_vars.cfg
2025-03-20 15:01:04 +00:00

506 lines
33 KiB
INI

########################################################################################################################
# Happy Hare MMU Software
#
# EDIT THIS FILE BASED ON YOUR SETUP
#
# Copyright (C) 2022-2025 moggieuk#6538 (discord)
# moggieuk@hotmail.com
# This file may be distributed under the terms of the GNU GPLv3 license.
#
# Goal: Happy Hare supporting MACRO configuration
#
# (\_/)
# ( *,*)
# (")_(") Happy Hare Ready
#
#
# Supporting set of macros supplied with Happy Hare can be customized by editing the macro "variables" declared here.
#
# This configuration will automatically retained and upgraded between releases (a backup of previous config files will
# always be made for your reference). If you want to customize macros beyond what is possible through these variables
# it is highly recommended you copy the macro to a new name and change the callback macro name in 'mmu_parameters.cfg'
# That way the default macros can still be upgraded but your customization will be left intact
#
# PERSISTED STATE ---------------------------------------------------------
# Happy Hare stores configuration and state in the klipper variables file.
# Since klipper can only be a single 'save_variables' file, if you already
# have one you will need to merge the two and point this appropriately.
#
[save_variables]
filename: ~/printer_data/config/mmu/mmu_vars.cfg
# NECESSARY KLIPPER OVERRIDES ---------------------------------------------
# ██╗ ██╗██╗ ██╗██████╗ ██████╗ ███████╗██████╗
# ██║ ██╔╝██║ ██║██╔══██╗██╔══██╗██╔════╝██╔══██╗
# █████╔╝ ██║ ██║██████╔╝██████╔╝█████╗ ██████╔╝
# ██╔═██╗ ██║ ██║██╔═══╝ ██╔═══╝ ██╔══╝ ██╔══██╗
# ██║ ██╗███████╗██║██║ ██║ ███████╗██║ ██║
# ╚═╝ ╚═╝╚══════╝╚═╝╚═╝ ╚═╝ ╚══════╝╚═╝ ╚═╝
#
# These supplemental settings essentially disable klipper's built in
# extrusion limits and is necessary when using an MMU
[extruder]
max_extrude_only_distance: 200
max_extrude_cross_section: 50
# For dialog prompts and progress in Mainsail. Requires Mainsail version >= v2.9.0
[respond]
# Other Happy Hare prerequisites. Harmless if already defined elsewhere in user config
[display_status]
[pause_resume]
[virtual_sdcard]
path: ~/printer_data/gcodes
#on_error_gcode: CANCEL_PRINT
# PRINT START/END ---------------------------------------------------------
# ██████╗ ██████╗ ██╗███╗ ██╗████████╗ ███████╗████████╗ █████╗ ██████╗ ████████╗
# ██╔══██╗██╔══██╗██║████╗ ██║╚══██╔══╝ ██╔════╝╚══██╔══╝██╔══██╗██╔══██╗╚══██╔══╝
# ██████╔╝██████╔╝██║██╔██╗ ██║ ██║ ███████╗ ██║ ███████║██████╔╝ ██║
# ██╔═══╝ ██╔══██╗██║██║╚██╗██║ ██║ ╚════██║ ██║ ██╔══██║██╔══██╗ ██║
# ██║ ██║ ██║██║██║ ╚████║ ██║ ███████║ ██║ ██║ ██║██║ ██║ ██║
# ╚═╝ ╚═╝ ╚═╝╚═╝╚═╝ ╚═══╝ ╚═╝ ╚══════╝ ╚═╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝
# (base/mmu_software.cfg)
#
[gcode_macro _MMU_SOFTWARE_VARS]
description: Happy Hare optional configuration for print start/end checks
gcode: # Leave empty
# These variables control the behavior of the MMU_START_SETUP and MMU_START_LOAD_INITIAL_TOOL macros
variable_user_pre_initialize_extension : '' ; Executed at start of MMU_START_SETUP. Commonly G28 to home
variable_home_mmu : False ; True/False, Whether to home mmu before print starts
variable_check_gates : True ; True/False, Whether to check filament is loaded in all gates used
variable_load_initial_tool : True ; True/False, Whether to automatically load initial tool
#
# Automapping strategy to apply slicer tool map to find matching MMU gate (will adjust tool-to-gate map). Options are:
# 'none' - don't automap (i.e. don't update tool-to-gate map)
# 'filament_name' - exactly match on case insensitive filament name
# 'material' - exactly match on material
# 'color' - exactly match on color (with same material)
# 'closest_color' - match to closest available filament color (with same material)
# 'spool_id' - exactly match on spool_id [FUTURE]
variable_automap_strategy : "none" ; none|filament_name|material|color|closest_color|spool_id
# These variables control the behavior of the MMU_END macro
variable_user_print_end_extension : '' ; Executed at start of MMU_END. Good place to move off print
variable_unload_tool : True ; True/False, Whether to unload the tool at the end of the print
variable_reset_ttg : False ; True/False, Whether reset TTG map at end of print
variable_dump_stats : True ; True/False, Whether to display print stats at end of print
# STATE MACHINE CHANGES ---------------------------------------------------
# ███████╗████████╗ █████╗ ████████╗███████╗ ██████╗██╗ ██╗ █████╗ ███╗ ██╗ ██████╗ ███████╗
# ██╔════╝╚══██╔══╝██╔══██╗╚══██╔══╝██╔════╝ ██╔════╝██║ ██║██╔══██╗████╗ ██║██╔════╝ ██╔════╝
# ███████╗ ██║ ███████║ ██║ █████╗ ██║ ███████║███████║██╔██╗ ██║██║ ███╗█████╗
# ╚════██║ ██║ ██╔══██║ ██║ ██╔══╝ ██║ ██╔══██║██╔══██║██║╚██╗██║██║ ██║██╔══╝
# ███████║ ██║ ██║ ██║ ██║ ███████╗ ╚██████╗██║ ██║██║ ██║██║ ╚████║╚██████╔╝███████╗
# ╚══════╝ ╚═╝ ╚═╝ ╚═╝ ╚═╝ ╚══════╝ ╚═════╝╚═╝ ╚═╝╚═╝ ╚═╝╚═╝ ╚═══╝ ╚═════╝ ╚══════╝
# (base/mmu_state.cfg)
#
[gcode_macro _MMU_STATE_VARS]
description: Happy Hare configuration for state change hooks
gcode: # Leave empty
# You can extend functionality to all Happy Hare state change or event
# macros by adding a command (or call to your gcode macro).
# E.g for additional LED logic or consumption counters
variable_user_action_changed_extension : '' ; Executed after default logic with duplicate params
variable_user_print_state_changed_extension : '' ; Executed after default logic with duplicate params
variable_user_mmu_event_extension : '' ; Executed after default logic with duplicate params
# Maintenance warning limits (consumption counters)
variable_servo_down_limit : 5000 ; Set to -1 for no limit / disable warning
variable_cutter_blade_limit : 3000 ; Set to -1 for no limit / disable warning
# LED CONTROL -------------------------------------------------------------
# ██╗ ███████╗██████╗ ███████╗
# ██║ ██╔════╝██╔══██╗██╔════╝
# ██║ █████╗ ██║ ██║███████╗
# ██║ ██╔══╝ ██║ ██║╚════██║
# ███████╗███████╗██████╔╝███████║
# ╚══════╝╚══════╝╚═════╝ ╚══════╝
# Only configure if you have LEDs installed. The led_effects option is
# automatically ignored if led-effects klipper module is not installed
# (base/mmu_led.cfg)
#
[gcode_macro _MMU_LED_VARS]
description: Happy Hare led macro configuration variables
gcode: # Leave empty
# Default effects for LED segments when not providing action status
# 'off' - LED's off
# 'on' - LED's white
# 'gate_status' - indicate gate availability / status (printer.mmu.gate_status)
# 'filament_color' - display filament color defined in gate map (printer.mmu.gate_color_rgb)
# 'slicer_color' - display slicer defined set color for each gate (printer.mmu.slicer_color_rgb)
# 'r,g,b' - display static r,g,b color e.g. "0,0,0.3" for dim blue
# '_effect_' - display the named led effect
#
variable_led_enable : True ; True = LEDs are enabled at startup (MMU_LED can control), False = Disabled
variable_led_animation : True ; True = Use led-animation-effects, False = Static LEDs
variable_default_exit_effect : "gate_status" ; off|gate_status|filament_color|slicer_color|r,g,b|_effect_
variable_default_entry_effect : "filament_color" ; off|gate_status|filament_color|slicer_color|r,g,b|_effect_
variable_default_status_effect : "filament_color" ; on|off|gate_status|filament_color|slicer_color|r,g,b|_effect_
variable_default_logo_effect : "0,0,.3" ; off |r,g,b|_effect_
variable_white_light : (1, 1, 1) ; RGB color for static white light
variable_black_light : (.01, 0, .02) ; RGB color used to represent "black" (filament)
variable_empty_light : (0, 0, 0) ; RGB color used to represent empty gate
# SEQUENCE MACRO - PARKING MOVEMENT AND TOOLCHANGE CONTROL ----------------
# ███╗ ███╗ ██████╗ ██╗ ██╗███████╗███╗ ███╗███████╗███╗ ██╗████████╗
# ████╗ ████║██╔═══██╗██║ ██║██╔════╝████╗ ████║██╔════╝████╗ ██║╚══██╔══╝
# ██╔████╔██║██║ ██║██║ ██║█████╗ ██╔████╔██║█████╗ ██╔██╗ ██║ ██║
# ██║╚██╔╝██║██║ ██║╚██╗ ██╔╝██╔══╝ ██║╚██╔╝██║██╔══╝ ██║╚██╗██║ ██║
# ██║ ╚═╝ ██║╚██████╔╝ ╚████╔╝ ███████╗██║ ╚═╝ ██║███████╗██║ ╚████║ ██║
# ╚═╝ ╚═╝ ╚═════╝ ╚═══╝ ╚══════╝╚═╝ ╚═╝╚══════╝╚═╝ ╚═══╝ ╚═╝
# Configure carefully if you 'enable_park: True'
# (base/mmu_sequence.cfg)
#
[gcode_macro _MMU_SEQUENCE_VARS]
description: Happy Hare sequence macro configuration variables
gcode: # Leave empty
# Parking and movement controls:
# Happy Hare defines 7 operations that may require parking. You can specify
# whether to park for each of those operations both during a print and
# standalone (not printing) with Happy Hare or when HH is disabled:
#
# enable_park_printing
# This is a list of the operations that should result in toolhead parking
# while in a print. There are really two main starting points from which
# you can customize. If using the slicer to form tips (and toolchange is
# over the wipetower) you don't want to park on "toolchange" but you would
# want to on "runout" which is a forced toolchange unknown by the slicer.
# Typically you would also want to park at least on pause, cancel and
# complete if not done elsewhere
#
# enabled_park_standalone
# List of the operations that should result in toolhead parking when not
# printing, for example, just manipulating the MMU manually or via
# Klipperscreen. Really it is up to you to choose based on personal
# workflow preferences but this defaults to just 'pause,cancel'
# (i.e. disabled for toolchange)
#
# enabled_park_disabled
# List of the operations that should result in toolhead parking when MMU is
# disabled (MMU ENABLE=0) and using Happy Hare client macros. Note that only
# pause and cancel can occur in this mode and would typically be enabled
#
# The operations are as follows:
# toolchange - normal toolchange initiated with Tx or MMU_CHANGE_TOOL command
# runout - when a forced toolchange occurs as a result of runout
# load - individual MMU_LOAD operation
# unload - individual MMU_UNLOAD/MMU_EJECT operation
# complete - when print is complete (Happy Hare enabled)
# pause - a regular klipper PAUSE
# cancel - a regular klipper CANCEL_PRINT
#
# It is possible to call the parking macro manually in this form should you wish
# to include in your macros.
#
# _MMU_PARK FORCE_PARK=1 X=10 Y=10 Z_HOP=5
#
# restore_xy_pos
# Controls where the toolhead (x,y) is returned to after an operation that
# invokes a parking move:
# last - return to original position before park (frequently the default)
# next - return to next print position if possible else last logic will be applied.
# In print this reduces dwell time at the last position reducing blobbing
# and unnecessary movement. Only applied to "toolchange" operation
# none - the toolhead is left wherever it ends up after change. In a print the
# next gcode command will restore toolhead x,y position
#
# Notes:
# - The starting z-height will always be restored, thus the different between 'next'
# and 'none' is the z-height at which the (x,y) move occurs and the location of
# of any un-retract
# - The default parking logic is a straight line move to the 'park_*' position.
# To implement fancy movement and control you can specify your own
# 'user_park_move_macro' to use instead of default straight line move
#
# Retraction can be used to optimize stringing and blobs that can occur when
# changing tools and are active only during a print.
# IMPORTANT: For toolchanging the config order would be:
# 1. In mmu_parameters.cfg configure extruder dimensions like
# 'toolhead_extruder_to_nozzle',etc. These are based on geometry.
# 2. In mmu_parameters.cfg tweak 'toolhead_ooze_reduction' only if necessary
# so that filament _just_ appears at the nozzle on load
# 3. Only then, adjust retraction to control stringing and blobs when
# changing tool in a print
variable_enable_park_printing : 'toolchange,runout,load,unload,complete,pause,cancel' ; Empty '' to disable parking
variable_enable_park_standalone : 'toolchange,load,unload,pause,cancel' ; Empty '' to disable parking
variable_enable_park_disabled : 'pause,cancel' ; Empty '' to disable parking
variable_min_toolchange_z : 1.0 ; The absolute minimum safety floor (z-height) for ALL parking moves
# These specify the parking location, z_hop and retraction for all enabled operation
# types. Each must be 5 values:
# x_coord, y_coord, z_hop(delta), z_hop_ramp, retraction length
# Use -1,-1 for no x,y move (you can just have z_hop). Use 0 for no z_hop
# The z_hop ramp is the horizontal distance in mm to travel during the lift. The
# direction is automatic and only applied if lifting the first time from print.
# This move is useful to help break the filament "string"
variable_park_toolchange : -1, -1, 1, 5, 2 ; x,y,z-hop,z_hop_ramp,retract for "toolchange" operations (toolchange,load,unload)
variable_park_runout : -1, -1, 1, 5, 2 ; x,y,z-hop,z_hop_ramp,retract
variable_park_pause : 50, 50, 5, 0, 2 ; x,y,z-hop,z_hop_ramp,retract (park position when mmu error occurs)
variable_park_cancel : -1, -1, 10, 0, 5 ; x,y,z-hop,z_hop_ramp,retract
variable_park_complete : 50, 50, 10, 0, 5 ; x,y,z-hop,z_hop_ramp,retract
# For toolchange operations, this allows to you to specify additional parking moves
# at various stages of the toolchange. Each must have 3 values:
# x_coord, y_coord, z_hop(delta)
# Use -1,-1,0 for no movement at that stage (no-op).
# All movement will be at the established movement plane (z-height)
variable_pre_unload_position : -1, -1, 0 ; x,y,z-hop position before unloading starts
variable_post_form_tip_position : -1, -1, 0 ; x,y,z-hop position after form/cut tip on unload
variable_pre_load_position : -1, -1, 0 ; x,y,z-hop position before loading starts
variable_restore_xy_pos : "last" ; last|next|none - What x,y position the toolhead should travel to after a "toolchange"
variable_park_travel_speed : 200 ; Speed for any travel movement XY(Z) in mm/s
variable_park_lift_speed : 15 ; Z-only travel speed in mm/s
variable_retract_speed : 30 ; Speed of the retract move in mm/s
variable_unretract_speed : 30 ; Speed of the unretract move in mm/s
# ADVANCED: Normally x,y moves default to 'G1 X Y' to park position. This allows
# you to create exotic movements. Macro will be provided the following parameters:
# YOUR_MOVE_MACRO X=<x_coord> Y=<y_coord> F=<speed>
# when restoring the from parked postion the same macro is called but passed a RESTORE=1 parameter, along with co-ordinates to restore to
# YOUR_MOVE_MACRO RESTORE=1 X=<x_coord> Y=<y_coord> F=<speed>
variable_user_park_move_macro : '' ; Executed instead of default 'G1 X Y move' to park position
variable_auto_home : True ; True = automatically home if necessary, False = disable
variable_timelapse : False ; True = take frame snapshot after load, False = disable
# Instead of completely defining your your own macros you can can extend functionality
# of default sequence macros by adding a command (or call to your gcode macro)
variable_user_mmu_error_extension : '' ; Executed after default logic when mmu error condition occurs
variable_user_pre_unload_extension : '' ; Executed after default logic
variable_user_post_form_tip_extension : '' ; Executed after default logic
variable_user_post_unload_extension : '' ; Executed after default logic
variable_user_pre_load_extension : '' ; Executed after default logic
variable_user_post_load_extension : '' ; Executed after default logic but before restoring toolhead position
# CUT_TIP -----------------------------------------------------------------
# ██████╗██╗ ██╗████████╗ ████████╗██╗██████╗
# ██╔════╝██║ ██║╚══██╔══╝ ╚══██╔══╝██║██╔══██╗
# ██║ ██║ ██║ ██║ ██║ ██║██████╔╝
# ██║ ██║ ██║ ██║ ██║ ██║██╔═══╝
# ╚██████╗╚██████╔╝ ██║ ██║ ██║██║
# ╚═════╝ ╚═════╝ ╚═╝ ╚═╝ ╚═╝╚═╝
# Don't need to configure if using tip forming
# (base/mmu_cut_tip.cfg)
#
[gcode_macro _MMU_CUT_TIP_VARS]
description: Happy Hare toolhead tip cutting macro configuration variables
gcode: # Leave empty
# Whether the toolhead tip cutting macro will return toolhead to initial position
# after the cut is complete. If using parking logic it is better to disable this
variable_restore_position : False ; True = return to initial position, False = don't return
# Distance from the internal nozzle tip to the cutting blade. This dimension
# is based on your toolhead and should not be used for tuning
# Note: If you have a toolhead sensor this variable can be automatically determined!
# Read https://github.com/moggieuk/Happy-Hare/wiki/Blobing-and-Stringing
variable_blade_pos : 37.5 ; TUNE ME: Distance in mm from internal nozzle tip
# Distance to retract prior to making the cut, measured from the internal nozzle
# tip. This reduces wasted filament (left behind in extruder) but might cause a
# clog if set too large. This must be less than 'blade_pos'
# Note: the residual filament left in nozzle ('toolhead_ooze_reduction') is
# subtracted from this value so make sure toolhead is calibrated
variable_retract_length : 32.5 ; TUNE ME: 5mm less than 'blade_pos' is a good starting point
# Whether to perform a simple tip forming move after the initial retraction
# Enabling this adds gives some additional cooling time of molten filament and
# may help avoid potential clogging on some hotends
variable_simple_tip_forming : True ; True = Perform simple tip forming, False = skip
# This should be the position of the toolhead where the cutter arm just
# lightly touches the depressor pin
variable_cutting_axis : "x" ; "x" or "y". Determines cut direction (axis) during cut motion, used for park distance
variable_pin_loc_xy : 14, 250 ; x,y coordinates of depressor pin
# This distance is added to "pin_loc_x" or "pin_loc_y" depending on the 'cutting_axis'
# to determine the starting position and to create a small safety distance that aids
# in generating momentum
variable_pin_park_dist : 5.0 ; Distance in mm
# Position of the toolhead when the cutter is fully compressed. Should leave a small headroom from the
# extremes of your printer edges (e.g. it should be a bit larger than 0, or whatever Xmin is) to avoid
# banging the toolhead or gantry. Typically x position will match x in pin_loc_xy if cutting in y direction
# or y position will match y in pin_loc_xy if cutting in x direction, but diagonal cuts are possible
variable_pin_loc_compressed_xy : 0.5, 250 ; x,y coordinates of fully depressed location
# Retract length and speed after the cut so that the cutter blade doesn't
# get stuck on return to origin position
variable_rip_length : 1.0 ; Distance in mm to retract to aid lever decompression (>= 0)
variable_rip_speed : 3 ; Speed mm/s
# Pushback of the remaining tip from the cold end into the hotend. This does
# not have to push back all the way, just sufficient to ensure filament fragment
# stays in hot end and the "nail head" of the cut is pushed back past the
# PTFE/metal junction so it cannot cause clogging problems on future loads.
# Cannot be larger than 'retract_length' - `toolhead_ooze_reduction`
variable_pushback_length : 15.0 ; TUNE ME: PTFE tube length + 3mm is good starting point
variable_pushback_dwell_time : 0 ; Time in ms to dwell after the pushback
# Speed related settings for tip cutting
# Note that if the cut speed is too fast, the steppers can lose steps.
# Therefore, for a cut:
# - We first make a fast move to accumulate some momentum and get the cut
# blade to the initial contact with the filament
# - We then make a slow move for the actual cut to happen
variable_travel_speed : 150 ; Speed mm/s
variable_cut_fast_move_speed : 32 ; Speed mm/s
variable_cut_slow_move_speed : 8 ; Speed mm/s
variable_evacuate_speed : 150 ; Speed mm/s
variable_cut_dwell_time : 50 ; Time in ms to dwell at the cut point
variable_cut_fast_move_fraction : 1.0 ; Fraction of the move that uses fast move
variable_extruder_move_speed : 25 ; Speed mm/s for all extruder movement
# Safety margin for fast vs slow travel. When traveling to the pin location
# we make a safer but longer move if we are closer to the pin than this
# specified margin. Usually setting these to the size of the toolhead
# (plus a small margin) should be good enough
variable_safe_margin_xy : 30, 30 ; Approx toolhead width +5mm, height +5mm)
# If gantry servo option is installed, enable the servo and set up and down
# angle positions
variable_gantry_servo_enabled : False ; True = enabled, False = disabled
variable_gantry_servo_down_angle: 55 ; Angle for when pin is deployed
variable_gantry_servo_up_angle : 180 ; Angle for when pin is retracted
# FORM_TIP ----------------------------------------------------------------
# ███████╗ ██████╗ ██████╗ ███╗ ███╗ ████████╗██╗██████╗
# ██╔════╝██╔═══██╗██╔══██╗████╗ ████║ ╚══██╔══╝██║██╔══██╗
# █████╗ ██║ ██║██████╔╝██╔████╔██║ ██║ ██║██████╔╝
# ██╔══╝ ██║ ██║██╔══██╗██║╚██╔╝██║ ██║ ██║██╔═══╝
# ██║ ╚██████╔╝██║ ██║██║ ╚═╝ ██║ ██║ ██║██║
# ╚═╝ ╚═════╝ ╚═╝ ╚═╝╚═╝ ╚═╝ ╚═╝ ╚═╝╚═╝
# Don't need to configure if using tip cutting
# (base/mmu_form_tip.cfg)
#
[gcode_macro _MMU_FORM_TIP_VARS]
description: Happy Hare tip forming macro configuration variables
gcode: # Leave empty
# Step 1 - Ramming
# Ramming is the initial squeeze of filament prior to cooling moves and is
# described in terms of total volume and progression of squeeze intensity
# printing/standalone. This can be separately controlled when printing or
# standalone
variable_ramming_volume : 0 ; Volume in mm^3, 0 = disabled (optionally let slicer do it)
variable_ramming_volume_standalone : 0 ; Volume in mm^3, 0 = disabled
# Optionally set for temperature change (reduction). The wait will occur
# before nozzle separation if 'use_fast_skinnydip: False' else after cooling
# moves. Temperature will be restored after tip creation is complete
variable_toolchange_temp : 0 ; 0 = don't change temp, else temp to set
variable_toolchange_fan_assist : False ; Whether to use part cooling fan for quicker temp change
variable_toolchange_fan_speed : 50 ; Fan speed % if using fan_assist enabled
# Step 2 - Nozzle Separation
# The filament is then quickly separated from the meltzone by a fast movement
# before then slowing to travel the remaining distance to cooling tube. The
# initial fast movement should be as fast as extruder can comfortably perform.
# A good starting point# for slower move is unloading_speed_start/cooling_moves.
# Too fast a slower movement can lead to excessively long tips or hairs
variable_unloading_speed_start : 80 ; Speed in mm/s for initial fast movement
variable_unloading_speed : 18 ; Speed in mm/s for slow move to cooling zone
# Step 3 - Cooling Moves
# The cooling move allows the filament to harden while constantly moving back
# and forth in the cooling tube portion of the extruder to prevent a bulbous
# tip forming. The cooling tube position is measured from the internal nozzle
# to just past the top of the heater block (often it is beneficial to add a
# couple of mm to ensure the tip is in the cooling section. The cooling tube
# length is then the distance from here to top of heatsink (this is the length
# length of the cooling moves). The final cooling move is a fast movement to
# break the string formed.
variable_cooling_tube_position : 35 ; Start of cooling tube. DragonST:35, DragonHF:30, Mosquito:30, Revo:35, RapidoHF:27
variable_cooling_tube_length : 10 ; Movement length. DragonST:15, DragonHF:10, Mosquito:20, Revo:10, RapidoHF:10
variable_initial_cooling_speed : 10 ; Initial slow movement (mm/s) to solidify tip and cool string if formed
variable_final_cooling_speed : 50 ; Fast movement (mm/s) Too fast: tip deformation on eject, Too Slow: long string/no separation
variable_cooling_moves : 4 ; Number of back and forth cooling moves to make (2-4 is a good start)
# Step 4 - Skinnydip
# Skinnydip is an advanced final move that may have benefit with some
# material like PLA to burn off persistent very fine hairs. To work the
# depth of insertion is critical (start with it disabled and tune last)
# For reference the internal nozzle would be at a distance of
# cooling_tube_position + cooling_tube_length, the top of the heater
# block would be cooling_tube_length away.
variable_use_skinnydip : False ; True = enable skinnydip, False = skinnydip move disabled
variable_skinnydip_distance : 30 ; Distance to reinsert filament into hotend starting from end of cooling tube
variable_dip_insertion_speed : 30 ; Medium/Slow insertion speed mm/s - Just long enough to melt the fine hairs, too slow will pull up molten filament
variable_dip_extraction_speed : 70 ; Speed mm/s - Around 2x Insertion speed to prevents forming new hairs
variable_melt_zone_pause : 0 ; Pause if melt zone in ms. Default 0
variable_cooling_zone_pause : 0 ; Pause if cooling zone after dip in ms. Default 0
variable_use_fast_skinnydip : False ; False = Skip the toolhead temp change wait during skinnydip move
# Step 5 - Parking
# Park filament ready to eject
variable_parking_distance : 0 ; Position mm to park the filament at end of tip forming, 0 = leave where filament ends up after tip forming
variable_extruder_eject_speed : 25 ; Speed mm/s used for parking_distance (and final_eject when testing)
# CLIENT MACROS -----------------------------------------------------------
# ██████╗ █████╗ ██╗ ██╗███████╗███████╗ ██████╗ ███████╗███████╗██╗ ██╗███╗ ███╗███████╗
# ██╔══██╗██╔══██╗██║ ██║██╔════╝██╔════╝ ██╔══██╗██╔════╝██╔════╝██║ ██║████╗ ████║██╔════╝
# ██████╔╝███████║██║ ██║███████╗█████╗ ██████╔╝█████╗ ███████╗██║ ██║██╔████╔██║█████╗
# ██╔═══╝ ██╔══██║██║ ██║╚════██║██╔══╝ ██╔══██╗██╔══╝ ╚════██║██║ ██║██║╚██╔╝██║██╔══╝
# ██║ ██║ ██║╚██████╔╝███████║███████╗ ██║ ██║███████╗███████║╚██████╔╝██║ ╚═╝ ██║███████╗
# ╚═╝ ╚═╝ ╚═╝ ╚═════╝ ╚══════╝╚══════╝ ╚═╝ ╚═╝╚══════╝╚══════╝ ╚═════╝ ╚═╝ ╚═╝╚══════╝
# If using the recommended PAUSE/RESUME/CANCEL_PRINT macros shipped with
# Happy Hare these variables allow for customization and basic extension
# Note that most parameters are pulled from the "movement" (sequence)
# macro above and thus these are supplemental a
# (optional/client_macros.cfg)
#
[gcode_macro _MMU_CLIENT_VARS]
description: Happy Hare client macro configuration variables
gcode: # Leave empty
variable_reset_ttg_on_cancel : False ; True/False, Whether reset TTG map if print is canceled
variable_unload_tool_on_cancel : False ; True/False, Whether to unload the tool on cancel
# You can extend functionality by adding a command (or call to your gcode macro)
variable_user_pause_extension : '' ; Executed after the klipper base pause
variable_user_resume_extension : '' ; Executed before the klipper base resume
variable_user_cancel_extension : '' ; Executed before the klipper base cancel_print
###########################################################################
# Tool change macros
# This is automatically created on installation but you can increase or
# reduce this list to match your number of tools in operation
# Note: it is annoying to have to do this but interfaces like Mainsail rely
# on real macro definitions for tools to be visible in the UI
#
[gcode_macro T0]
gcode: MMU_CHANGE_TOOL TOOL=0
[gcode_macro T1]
gcode: MMU_CHANGE_TOOL TOOL=1
[gcode_macro T2]
gcode: MMU_CHANGE_TOOL TOOL=2
[gcode_macro T3]
gcode: MMU_CHANGE_TOOL TOOL=3
[gcode_macro T4]
gcode: MMU_CHANGE_TOOL TOOL=4
[gcode_macro T5]
gcode: MMU_CHANGE_TOOL TOOL=5
[gcode_macro T6]
gcode: MMU_CHANGE_TOOL TOOL=6
[gcode_macro T7]
gcode: MMU_CHANGE_TOOL TOOL=7