added axes_map computation
This commit is contained in:
60
K-ShakeTune/K-SnT_axes_map.cfg
Normal file
60
K-ShakeTune/K-SnT_axes_map.cfg
Normal file
@@ -0,0 +1,60 @@
|
||||
############################################################
|
||||
###### AXE_MAP DETECTION AND ACCELEROMETER VALIDATION ######
|
||||
############################################################
|
||||
# Written by Frix_x#0161 #
|
||||
|
||||
[gcode_macro AXES_MAP_CALIBRATION]
|
||||
gcode:
|
||||
{% set z_height = params.Z_HEIGHT|default(20)|int %} # z height to put the toolhead before starting the movements
|
||||
{% set speed = params.SPEED|default(80)|float * 60 %} # feedrate for the movements
|
||||
{% set accel = params.ACCEL|default(1500)|int %} # accel value used to move on the pattern
|
||||
{% set feedrate_travel = params.TRAVEL_SPEED|default(120)|int * 60 %} # travel feedrate between moves
|
||||
{% set accel_chip = params.ACCEL_CHIP|default("adxl345") %} # ADXL chip name in the config
|
||||
|
||||
{% set mid_x = printer.toolhead.axis_maximum.x|float / 2 %}
|
||||
{% set mid_y = printer.toolhead.axis_maximum.y|float / 2 %}
|
||||
|
||||
{% set accel = [accel, printer.configfile.settings.printer.max_accel]|min %}
|
||||
{% set old_accel = printer.toolhead.max_accel %}
|
||||
{% set old_accel_to_decel = printer.toolhead.max_accel_to_decel %}
|
||||
{% set old_sqv = printer.toolhead.square_corner_velocity %}
|
||||
|
||||
|
||||
{% if not 'xyz' in printer.toolhead.homed_axes %}
|
||||
{ action_raise_error("Must Home printer first!") }
|
||||
{% endif %}
|
||||
|
||||
{action_respond_info("")}
|
||||
{action_respond_info("Starting accelerometer axe_map calibration")}
|
||||
{action_respond_info("This operation can not be interrupted by normal means. Hit the \"emergency stop\" button to stop it if needed")}
|
||||
{action_respond_info("")}
|
||||
|
||||
SAVE_GCODE_STATE NAME=STATE_AXESMAP_CALIBRATION
|
||||
|
||||
G90
|
||||
|
||||
# Set the wanted acceleration values (not too high to avoid oscillation, not too low to be able to reach constant speed on each segments)
|
||||
SET_VELOCITY_LIMIT ACCEL={accel} ACCEL_TO_DECEL={accel} SQUARE_CORNER_VELOCITY={[(accel / 1000), 5.0]|max}
|
||||
|
||||
# Going to the start position
|
||||
G1 Z{z_height} F{feedrate_travel / 8}
|
||||
G1 X{mid_x - 15} Y{mid_y - 15} F{feedrate_travel}
|
||||
G4 P500
|
||||
|
||||
ACCELEROMETER_MEASURE CHIP={accel_chip}
|
||||
G4 P1000 # This first waiting time is to record the background accelerometer noise before moving
|
||||
G1 X{mid_x + 15} F{speed}
|
||||
G4 P1000
|
||||
G1 Y{mid_y + 15} F{speed}
|
||||
G4 P1000
|
||||
G1 Z{z_height + 15} F{speed}
|
||||
G4 P1000
|
||||
ACCELEROMETER_MEASURE CHIP={accel_chip} NAME=axemap
|
||||
|
||||
RESPOND MSG="Analysis of the movements..."
|
||||
RUN_SHELL_COMMAND CMD=shaketune PARAMS="AXESMAP {accel}"
|
||||
|
||||
# Restore the previous acceleration values
|
||||
SET_VELOCITY_LIMIT ACCEL={old_accel} ACCEL_TO_DECEL={old_accel_to_decel} SQUARE_CORNER_VELOCITY={old_sqv}
|
||||
|
||||
RESTORE_GCODE_STATE NAME=STATE_AXESMAP_CALIBRATION
|
||||
Reference in New Issue
Block a user