119 lines
5 KiB
INI
119 lines
5 KiB
INI
|
########################################
|
||
|
# Improved Shapers Configurations
|
||
|
########################################
|
||
|
|
||
|
[respond]
|
||
|
|
||
|
[calibrate_shaper_config]
|
||
|
|
||
|
|
||
|
[gcode_shell_command resonance_graph]
|
||
|
command: /usr/data/printer_data/config/Helper-Script/improved-shapers/scripts/calibrate_shaper.py
|
||
|
timeout: 600.0
|
||
|
verbose: True
|
||
|
|
||
|
|
||
|
[gcode_shell_command belts_graph]
|
||
|
command: /usr/data/printer_data/config/Helper-Script/improved-shapers/scripts/graph_belts.py
|
||
|
timeout: 600.0
|
||
|
verbose: True
|
||
|
|
||
|
|
||
|
[gcode_macro INPUT_SHAPER_CALIBRATION]
|
||
|
description: Measure X and Y Axis Resonances and Save values
|
||
|
gcode:
|
||
|
{% if printer["configfile"].config["temperature_fan mcu_fan"] %}
|
||
|
SET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30
|
||
|
{% endif %}
|
||
|
{% if printer.toolhead.homed_axes != "xyz" %}
|
||
|
RESPOND TYPE=command MSG="Homing..."
|
||
|
G28
|
||
|
{% endif %}
|
||
|
RESPOND TYPE=command MSG="Measuring X and Y Resonances..."
|
||
|
SHAPER_CALIBRATE
|
||
|
M400
|
||
|
{% if printer["configfile"].config["temperature_fan mcu_fan"] %}
|
||
|
SET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50
|
||
|
{% endif %}
|
||
|
CXSAVE_CONFIG
|
||
|
|
||
|
|
||
|
[gcode_macro TEST_RESONANCES_GRAPHS]
|
||
|
description: Test X and Y Axis Resonances and Generate Graphs
|
||
|
gcode:
|
||
|
{% set x_png = params.X_PNG|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/resonances_x.png") %}
|
||
|
{% set y_png = params.Y_PNG|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/resonances_y.png") %}
|
||
|
{% if printer["configfile"].config["temperature_fan mcu_fan"] %}
|
||
|
SET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30
|
||
|
{% endif %}
|
||
|
{% if printer.toolhead.homed_axes != "xyz" %}
|
||
|
RESPOND TYPE=command MSG="Homing..."
|
||
|
G28
|
||
|
{% endif %}
|
||
|
RESPOND TYPE=command MSG="Testing X Resonances..."
|
||
|
TEST_RESONANCES AXIS=X NAME=x
|
||
|
M400
|
||
|
RESPOND TYPE=command MSG="Generating X Graphs... This may take some time."
|
||
|
RUN_SHELL_COMMAND CMD=resonance_graph PARAMS="/tmp/resonances_x_x.csv -o {x_png}"
|
||
|
RESPOND TYPE=command MSG="X Graph (resonances_x.png) is available in /Helper-Script/improved-shapers folder."
|
||
|
RESPOND TYPE=command MSG="Testing Y Resonances..."
|
||
|
TEST_RESONANCES AXIS=Y NAME=y
|
||
|
M400
|
||
|
RESPOND TYPE=command MSG="Generating Y Graphs... This may take some time."
|
||
|
RUN_SHELL_COMMAND CMD=resonance_graph PARAMS="/tmp/resonances_y_y.csv -o {y_png}"
|
||
|
RESPOND TYPE=command MSG="Y Graph (resonances_y.png) is available in /Helper-Script/improved-shapers folder."
|
||
|
{% if printer["configfile"].config["temperature_fan mcu_fan"] %}
|
||
|
SET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50
|
||
|
{% endif %}
|
||
|
|
||
|
|
||
|
[gcode_macro BELTS_SHAPER_CALIBRATION]
|
||
|
description: Perform a custom half-axis test to analyze and compare the frequency profiles of individual belts on CoreXY printers
|
||
|
gcode:
|
||
|
{% set min_freq = params.FREQ_START|default(5)|float %}
|
||
|
{% set max_freq = params.FREQ_END|default(133.33)|float %}
|
||
|
{% set hz_per_sec = params.HZ_PER_SEC|default(1)|float %}
|
||
|
{% set png_width = params.PNG_WIDTH|default(8)|float %}
|
||
|
{% set png_height = params.PNG_HEIGHT|default(4.8)|float %}
|
||
|
{% set png_out_path = params.PNG_OUT_PATH|default("/usr/data/printer_data/config/Helper-Script/improved-shapers/belts_calibration.png") %}
|
||
|
{% if printer["configfile"].config["temperature_fan mcu_fan"] %}
|
||
|
SET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=30
|
||
|
{% endif %}
|
||
|
{% if printer.toolhead.homed_axes != "xyz" %}
|
||
|
RESPOND TYPE=command MSG="Homing..."
|
||
|
G28
|
||
|
{% endif %}
|
||
|
TEST_RESONANCES AXIS=1,1 OUTPUT=raw_data NAME=b FREQ_START={min_freq} FREQ_END={max_freq} HZ_PER_SEC={hz_per_sec}
|
||
|
M400
|
||
|
TEST_RESONANCES AXIS=1,-1 OUTPUT=raw_data NAME=a FREQ_START={min_freq} FREQ_END={max_freq} HZ_PER_SEC={hz_per_sec}
|
||
|
M400
|
||
|
RESPOND TYPE=command MSG="Generating belts comparative frequency profile..."
|
||
|
RESPOND TYPE=command MSG="This may take some time (3-5min)."
|
||
|
RUN_SHELL_COMMAND CMD=belts_graph PARAMS="-w {png_width} -l {png_height} -n -o {png_out_path} -k /usr/share/klipper /tmp/raw_data_axis=1.000,-1.000_a.csv /tmp/raw_data_axis=1.000,1.000_b.csv"
|
||
|
RESPOND TYPE=command MSG="Graph (belts_calibration.png) is available in /Helper-Script/improved-shapers folder."
|
||
|
{% if printer["configfile"].config["temperature_fan mcu_fan"] %}
|
||
|
SET_TEMPERATURE_FAN_TARGET TEMPERATURE_FAN=mcu_fan TARGET=50
|
||
|
{% endif %}
|
||
|
|
||
|
|
||
|
[gcode_macro EXCITATE_AXIS_AT_FREQ]
|
||
|
description: Maintain a specified excitation frequency for a period of time to diagnose and locate a vibration source
|
||
|
gcode:
|
||
|
{% set frequency = params.FREQUENCY|default(25)|int %}
|
||
|
{% set time = params.TIME|default(10)|int %}
|
||
|
{% set axis = params.AXIS|default("x")|string|lower %}
|
||
|
{% if axis not in ["x", "y", "a", "b"] %}
|
||
|
{ action_raise_error("AXIS selection is invalid. Should be either x, y, a or b!") }
|
||
|
{% endif %}
|
||
|
{% if axis == "a" %}
|
||
|
{% set axis = "1,-1" %}
|
||
|
{% elif axis == "b" %}
|
||
|
{% set axis = "1,1" %}
|
||
|
{% endif %}
|
||
|
{% if printer.toolhead.homed_axes != "xyz" %}
|
||
|
RESPOND TYPE=command MSG="Homing..."
|
||
|
G28
|
||
|
{% endif %}
|
||
|
TEST_RESONANCES OUTPUT=raw_data AXIS={axis} FREQ_START={frequency-1} FREQ_END={frequency+1} HZ_PER_SEC={1/(time/3)}
|
||
|
M400
|