siwat-voron-cfg/printer.cfg

772 lines
22 KiB
INI
Raw Normal View History

2024-01-05 08:54:41 +00:00
[include moonraker_obico_macros.cfg]
#[include mmu/base/*.cfg]
#[include mmu/optional/client_macros.cfg]
2023-12-08 08:57:03 +00:00
[include mainsail.cfg]
# host MCU service is preinstalled and ready to use with:
[mcu CB1]
serial: /tmp/klipper_host_mcu
[mcu]
canbus_uuid: a39755b6c75c
[mcu printhead]
2024-01-13 06:03:04 +00:00
canbus_uuid: 6e5db542668c
2023-12-08 08:57:03 +00:00
[printer]
kinematics: corexy
2024-01-31 19:33:50 +00:00
max_velocity: 700
max_accel: 25000
2023-12-16 18:57:57 +00:00
max_z_velocity: 20
2023-12-08 08:57:03 +00:00
max_z_accel: 350
square_corner_velocity: 5.0
2024-01-03 04:15:32 +00:00
[temperature_sensor Electronics]
2023-12-08 08:57:03 +00:00
sensor_type: temperature_mcu
2024-01-03 04:15:32 +00:00
[temperature_sensor CPU]
2023-12-08 08:57:03 +00:00
sensor_type: temperature_host
#####################################################################
# X/Y Stepper Settings
#####################################################################
2024-01-31 14:15:58 +00:00
[motor_constants ldo-42sth60-2004mac]
resistance: 1.4
inductance: 0.003
holding_torque: 0.5884
max_current: 2.0
steps_per_revolution: 400
2023-12-08 08:57:03 +00:00
## X Stepper on Motor1(B Motor)
[stepper_x]
step_pin: PE6
dir_pin: PE5
enable_pin: !PC14
microsteps: 16
2024-01-18 14:53:46 +00:00
rotation_distance: 40.1209
2024-01-13 06:03:04 +00:00
full_steps_per_rotation:400 #set to 400 for 0.9 degree stepper
2023-12-08 08:57:03 +00:00
endstop_pin: ^PF4
position_min: 0
2024-01-21 05:19:48 +00:00
position_endstop: 350
position_max: 350
2023-12-08 08:57:03 +00:00
homing_speed: 25 #Max 100
homing_retract_dist: 5
homing_positive_dir: true
[tmc5160 stepper_x]
cs_pin: PC13
spi_software_mosi_pin: PG6
spi_software_miso_pin: PG7
spi_software_sclk_pin: PG8
2024-01-06 06:25:37 +00:00
run_current: 1.414
2023-12-08 08:57:03 +00:00
stealthchop_threshold: 0
2024-01-31 14:15:58 +00:00
[autotune_tmc stepper_x]
motor: ldo-42sth60-2004mac
tuning_goal: performance
voltage: 48.0
2023-12-08 08:57:03 +00:00
# Y Stepper on Motor2 (A Motor)
[stepper_y]
step_pin: PE2
dir_pin: PE1
enable_pin: !PE4
microsteps: 16
2024-01-18 14:53:46 +00:00
rotation_distance: 40.3964
2023-12-08 08:57:03 +00:00
endstop_pin: ^PF3
2024-01-13 06:03:04 +00:00
full_steps_per_rotation:400 #set to 400 for 0.9 degree stepper
2023-12-08 08:57:03 +00:00
position_min: 0
2023-12-15 17:53:48 +00:00
position_endstop: 355
position_max: 355
2023-12-08 08:57:03 +00:00
homing_speed: 25 #Max 100
homing_retract_dist: 5
homing_positive_dir: true
[tmc5160 stepper_y]
cs_pin: PE3
spi_software_mosi_pin: PG6
spi_software_miso_pin: PG7
spi_software_sclk_pin: PG8
2024-01-06 06:25:37 +00:00
run_current: 1.414
2023-12-08 08:57:03 +00:00
stealthchop_threshold: 0
2024-01-31 14:15:58 +00:00
[autotune_tmc stepper_y]
motor: ldo-42sth60-2004mac
tuning_goal: performance
voltage: 48.0
2023-12-08 08:57:03 +00:00
#####################################################################
# Z Stepper Settings
#####################################################################
## Z0 Stepper - Front Left on MOTOR3_A
[stepper_z]
step_pin: PB8
dir_pin: PB7
enable_pin: !PE0
2024-01-18 14:53:46 +00:00
rotation_distance: 41.3288
2023-12-08 08:57:03 +00:00
gear_ratio: 80:16
microsteps: 16
endstop_pin: probe:z_virtual_endstop
## Z-position of nozzle (in mm) to z-endstop trigger point relative to print surface (Z0)
## (+) value = endstop above Z0, (-) value = endstop below
## Increasing position_endstop brings nozzle closer to the bed
## After you run Z_ENDSTOP_CALIBRATE, position_endstop will be stored at the very end of your config
#position_endstop: -2
2024-01-21 05:19:48 +00:00
position_max: 300
2024-01-31 14:15:58 +00:00
position_min: -10
2023-12-08 08:57:03 +00:00
homing_speed: 5
second_homing_speed: 3
homing_retract_dist: 3
[tmc5160 stepper_z]
cs_pin: PB9
spi_software_mosi_pin: PG6
spi_software_miso_pin: PG7
spi_software_sclk_pin: PG8
2024-01-06 06:25:37 +00:00
run_current: 1
2023-12-08 08:57:03 +00:00
stealthchop_threshold: 0
2024-01-31 14:15:58 +00:00
# [autotune_tmc stepper_z]
# motor: moons-ms17hd6p420I-05
# tuning_goal: silent
# voltage: 48.0
2023-12-08 08:57:03 +00:00
## Z1 Stepper - Rear Left on Motor5
[stepper_z1]
step_pin: PG13
dir_pin: !PG12
enable_pin: !PG15
rotation_distance: 40
gear_ratio: 80:16
microsteps: 16
[tmc5160 stepper_z1]
cs_pin: PG14
spi_software_mosi_pin: PG6
spi_software_miso_pin: PG7
spi_software_sclk_pin: PG8
2024-01-06 06:25:37 +00:00
run_current: 1
2023-12-08 08:57:03 +00:00
stealthchop_threshold: 0
2024-01-31 14:15:58 +00:00
# [autotune_tmc stepper_z1]
# motor: moons-ms17hd6p420I-05
# tuning_goal: silent
# voltage: 48.0
2023-12-08 08:57:03 +00:00
## Z2 Stepper - Rear Right on Motor6
[stepper_z2]
step_pin: PG9
dir_pin: PD7
enable_pin: !PG11
rotation_distance: 40
gear_ratio: 80:16
microsteps: 16
[tmc5160 stepper_z2]
cs_pin: PG10
spi_software_mosi_pin: PG6
spi_software_miso_pin: PG7
spi_software_sclk_pin: PG8
2024-01-06 06:25:37 +00:00
run_current: 1
2023-12-08 08:57:03 +00:00
stealthchop_threshold: 0
2024-01-31 14:15:58 +00:00
# [autotune_tmc stepper_z2]
# motor: moons-ms17hd6p420I-05
# tuning_goal: silent
# voltage: 48.0
2023-12-08 08:57:03 +00:00
## Z3 Stepper - Front Right on Motor7
[stepper_z3]
step_pin: PD4
dir_pin: !PD3
enable_pin: !PD6
rotation_distance: 40
gear_ratio: 80:16
microsteps: 16
[tmc5160 stepper_z3]
cs_pin: PD5
spi_software_mosi_pin: PG6
spi_software_miso_pin: PG7
spi_software_sclk_pin: PG8
2024-01-06 06:25:37 +00:00
run_current: 1
2023-12-08 08:57:03 +00:00
stealthchop_threshold: 0
2024-01-31 14:15:58 +00:00
# [autotune_tmc stepper_z3]
# motor: moons-ms17hd6p420I-05
# tuning_goal: silent
# voltage: 48.0
2023-12-08 08:57:03 +00:00
#####################################################################
# Extruder
#####################################################################
[extruder]
step_pin: printhead: PD0
dir_pin: printhead: PD1
enable_pin: !printhead: PD2
2023-12-16 16:07:43 +00:00
rotation_distance: 5.7
2023-12-08 08:57:03 +00:00
gear_ratio: 1:1
microsteps: 16
full_steps_per_rotation: 200 #200 for 1.8 degree, 400 for 0.9 degree
nozzle_diameter: 0.400
filament_diameter: 1.75
spi_speed: 4000000
heater_pin: printhead: PB13
sensor_type: MAX31865
sensor_pin: printhead: PA4
spi_bus: spi1
rtd_nominal_r: 1000
rtd_reference_r: 4300
rtd_num_of_wires: 4
min_temp: 10
2023-12-17 06:42:03 +00:00
max_temp: 350
2023-12-16 16:07:43 +00:00
max_power: 1.0
2023-12-08 08:57:03 +00:00
min_extrude_temp: 170
2023-12-16 18:57:57 +00:00
control = pid
pid_kp = 23.189
pid_ki = 1.562
pid_kd = 86.089
2023-12-08 08:57:03 +00:00
## Try to keep pressure_advance below 1.0
2024-01-13 06:03:04 +00:00
pressure_advance: 0.05
2023-12-08 08:57:03 +00:00
## Default is 0.040, leave stock
2024-01-13 06:03:04 +00:00
pressure_advance_smooth_time: 0.040
2023-12-08 08:57:03 +00:00
[tmc2209 extruder]
uart_pin: printhead: PA15
interpolate: false
2023-12-16 16:07:43 +00:00
run_current: 0.707
2023-12-08 08:57:03 +00:00
stealthchop_threshold: 0
2024-01-31 14:15:58 +00:00
[motor_constants moon-36h020h-1004a-001]
resistance: 2.37
inductance: 0.0012
holding_torque: 0.0883
max_current: 0.6
steps_per_revolution: 200
[autotune_tmc extruder]
motor: moon-36h020h-1004a-001
tuning_goal: performance
voltage: 24.0
2023-12-08 08:57:03 +00:00
[adxl345]
cs_pin: printhead: PB12
spi_software_sclk_pin: printhead: PB10
spi_software_mosi_pin: printhead: PB11
spi_software_miso_pin: printhead: PB2
2023-12-15 17:53:48 +00:00
axes_map: x,z,y
[resonance_tester]
accel_chip: adxl345
probe_points:
175, 175, 30
2023-12-08 08:57:03 +00:00
2023-12-25 17:43:48 +00:00
#####################################################################
# Filament Sensor
#####################################################################
[filament_switch_sensor switch_sensor]
switch_pin: ^PF0
pause_on_runout: True
runout_gcode:
PAUSE
M117 Filament switch runout
insert_gcode:
M117 Filament switch inserted
[filament_motion_sensor encoder_sensor]
switch_pin: ^PC15
2024-01-04 18:15:11 +00:00
detection_length: 15
2023-12-25 17:43:48 +00:00
extruder: extruder
pause_on_runout: True
runout_gcode:
PAUSE
M117 Filament encoder runout
insert_gcode:
M117 Filament encoder inserted
2023-12-08 08:57:03 +00:00
#####################################################################
# Bed Heater
#####################################################################
## SSR Pin - HE2
[heater_bed]
heater_pin: PA3
sensor_type: Generic 3950
sensor_pin: PB1
max_power: 1
min_temp: 0
max_temp: 120
2023-12-16 18:57:57 +00:00
control = pid
pid_kp = 62.274
pid_ki = 3.218
pid_kd = 301.250
2023-12-08 08:57:03 +00:00
#####################################################################
# Probe
#####################################################################
[probe]
## Inductive Probe
## This probe is not used for Z height, only Quad Gantry Leveling
## NPN and PNP proximity switch types can be set by jumper
pin: printhead: PB6
x_offset: 0
y_offset: 25.0
2023-12-15 17:53:48 +00:00
#z_offset: 0
2024-01-13 06:03:04 +00:00
speed: 30.0
2023-12-08 08:57:03 +00:00
samples: 3
samples_result: median
sample_retract_dist: 5.0
2023-12-16 16:07:43 +00:00
samples_tolerance: 0.01
samples_tolerance_retries: 6
2023-12-15 17:53:48 +00:00
activate_gcode:
{% set PROBE_TEMP = 150 %}
{% set MAX_TEMP = PROBE_TEMP + 5 %}
{% set ACTUAL_TEMP = printer.extruder.temperature %}
{% set TARGET_TEMP = printer.extruder.target %}
{% if TARGET_TEMP > PROBE_TEMP %}
{ action_respond_info('Extruder temperature target of %.1fC is too high, lowering to %.1fC' % (TARGET_TEMP, PROBE_TEMP)) }
2023-12-25 17:21:22 +00:00
M106 S255
2023-12-15 17:53:48 +00:00
M109 S{ PROBE_TEMP }
2023-12-25 17:21:22 +00:00
M106 S0
2023-12-15 17:53:48 +00:00
{% else %}
# Temperature target is already low enough, but nozzle may still be too hot.
{% if ACTUAL_TEMP > MAX_TEMP %}
{ action_respond_info('Extruder temperature %.1fC is still too high, waiting until below %.1fC' % (ACTUAL_TEMP, MAX_TEMP)) }
TEMPERATURE_WAIT SENSOR=extruder MAXIMUM={ MAX_TEMP }
{% endif %}
{% endif %}
2023-12-08 08:57:03 +00:00
2024-01-04 18:15:11 +00:00
#####################################################################
# Enclosure Temperature Control
#####################################################################
[temperature_sensor chamber]
sensor_type: Generic 3950
sensor_pin: PB0
2023-12-08 08:57:03 +00:00
#####################################################################
# Fan Control
#####################################################################
2024-01-02 20:03:10 +00:00
[fan_generic part_cooling_fan]
2023-12-08 08:57:03 +00:00
## Print Cooling Fan - CNC_FAN0
2023-12-17 06:42:03 +00:00
pin: !PA4
2023-12-25 17:21:22 +00:00
kick_start_time: 0
2023-12-08 08:57:03 +00:00
## Depending on your fan, you may need to increase this value
## if your fan will not start. Can change cycle_time (increase)
## if your fan is not able to slow down effectively
2023-12-25 17:21:22 +00:00
off_below: 0.28
2023-12-08 08:57:03 +00:00
[heater_fan hotend_fan]
## Hotend Fan - CNC_FAN1
pin: printhead: PA0
max_power: 1.0
kick_start_time: 0.5
heater: extruder
heater_temp: 50.0
fan_speed: 1.0
2024-01-02 19:10:48 +00:00
[fan_generic exhaust_fan]
2023-12-08 08:57:03 +00:00
# Exhaust fan - CNC_FAN3
pin: PF6
max_power: 1.0
shutdown_speed: 0.0
kick_start_time: 5.0
[multi_pin controller_fans]
pins: PF7,PF9
2024-01-04 18:15:11 +00:00
[controller_fan controller_fan]
2023-12-08 08:57:03 +00:00
## Controller fan - CNC_FAN2
pin: multi_pin:controller_fans
kick_start_time: 0.5
2024-01-04 18:15:11 +00:00
idle_speed: 0.5
2023-12-08 08:57:03 +00:00
heater: heater_bed
2024-01-04 18:15:11 +00:00
idle_timeout: 120
2023-12-08 08:57:03 +00:00
#####################################################################
# LED Control
#####################################################################
[neopixel caselight]
pin: PD15
chain_count: 30
color_order: GRB
[neopixel hotend_rgb]
pin: printhead: PD3
2024-01-04 18:15:11 +00:00
chain_count: 6
color_order: GRB,RBG,GRB,RGB,RGB,RGB
2023-12-08 08:57:03 +00:00
#####################################################################
2024-01-06 06:32:32 +00:00
# Idle Timeout
2023-12-08 08:57:03 +00:00
#####################################################################
[idle_timeout]
timeout: 1800
2024-01-06 06:32:32 +00:00
#####################################################################
# Homing and Gantry Adjustment Routines
#####################################################################
2023-12-08 08:57:03 +00:00
[safe_z_home]
## XY Location of the Z Endstop Switch
## Update -10,-10 to the XY coordinates of your endstop pin
## (such as 157,305) after going through Z Endstop Pin
## Location Definition step.
home_xy_position:170,170
speed:100
z_hop:10
[quad_gantry_level]
## Use QUAD_GANTRY_LEVEL to level a gantry.
## Min & Max gantry corners - measure from nozzle at MIN (0,0) and
## MAX (250, 250), (300,300), or (350,350) depending on your printer size
## to respective belt positions
gantry_corners:
2024-01-22 12:28:24 +00:00
-60,-60
410,410
2023-12-08 08:57:03 +00:00
points:
2024-01-22 12:28:24 +00:00
50,50
50,300
300,300
300,50
2024-01-13 06:03:04 +00:00
speed: 500
2023-12-08 08:57:03 +00:00
horizontal_move_z: 10
2023-12-16 18:57:57 +00:00
retries: 10
2024-01-31 19:33:50 +00:00
retry_tolerance: 0.02
2023-12-16 16:07:43 +00:00
max_adjust: 15
2023-12-08 08:57:03 +00:00
2024-01-06 06:32:32 +00:00
[bed_mesh]
2024-01-13 06:03:04 +00:00
speed: 500
horizontal_move_z: 5
mesh_min: 30,50
mesh_max: 320,340
2024-01-06 06:32:32 +00:00
probe_count: 5,5
#####################################################################
# Pin Definitions
#####################################################################
2023-12-08 08:57:03 +00:00
[board_pins]
aliases:
# EXP1 header
EXP1_1=PE9, EXP1_2=PE10,
EXP1_3=PE11, EXP1_4=PE12,
EXP1_5=PE13, EXP1_6=PE14, # Slot in the socket on this side
EXP1_7=PE15, EXP1_8=PB10,
EXP1_9=<GND>, EXP1_10=<5V>,
# EXP2 header
EXP2_1=PB14, EXP2_2=PB13,
EXP2_3=PF7, EXP2_4=PB12,
EXP2_5=PE7, EXP2_6=PB11, # Slot in the socket on this side
EXP2_7=PE8, EXP2_8=<RST>,
EXP2_9=<GND>, EXP2_10=PC5
2023-12-16 16:07:43 +00:00
#####################################################################
# Optional G-Codes
#####################################################################
[gcode_arcs]
resolution: 0.1
[exclude_object]
2023-12-25 17:43:48 +00:00
[pause_resume]
recover_velocity: 100
[firmware_retraction]
retract_length: 0.8
retract_speed: 40
unretract_extra_length: 0
unretract_speed: 40
[respond]
default_type: echo
2023-12-08 08:57:03 +00:00
#####################################################################
# Macros
#####################################################################
2024-01-18 14:53:02 +00:00
[gcode_macro CANCEL_PRINT]
rename_existing: BASE_CANCEL_PRINT
2024-01-18 14:58:14 +00:00
gcode:
2024-01-18 14:53:02 +00:00
M220 S100 ; reset speed factor override percentage to default (100%)
M221 S100 ; reset extrusion factor override percentage to default (100%)
{% if printer.extruder.temperature > 170 %} ; if extruder is hot, retract filament
G1 E-3.0 F3600 ; retract filament by 3mm
{% endif %}
{% if printer.toolhead.homed_axis == "xyz" %} ; if XYZ is homed, we can move the nozzle
G91 ; relative positioning
G1 Z+5 F3600 ; move nozzle up 5mm
G90 ; absolute positioning
PARK_NOZZLE_REAR ; park nozzle
{% endif %}
CLEAR_PAUSE
BASE_CANCEL_PRINT
2023-12-08 08:57:03 +00:00
[gcode_macro G32]
gcode:
G28
QUAD_GANTRY_LEVEL
2024-01-06 06:32:32 +00:00
BED_MESH_CALIBRATE
2023-12-08 08:57:03 +00:00
G28
2023-12-16 18:57:57 +00:00
G0 X345 Y345 Z30 F3600
[gcode_macro PARK_NOZZLE_REAR]
gcode:
G0 X345 Y345 F3600
2023-12-25 17:33:44 +00:00
[gcode_macro PARK_NOZZLE_FRONT]
gcode:
G0 X15 Y15 F3600
2023-12-08 08:57:03 +00:00
[gcode_macro PRINT_START]
gcode:
2024-01-05 08:54:41 +00:00
2024-01-04 18:15:11 +00:00
SET_LED LED="caselight" RED=0.898 GREEN=1 BLUE=0 SYNC=0 TRANSMIT=1
2023-12-25 17:21:22 +00:00
M140 S{ params.BED | float } ; set bed temperature
{% set PROBE_TEMP = 150 %}
{% set ACTUAL_TEMP = printer.extruder.temperature %}
{% if ACTUAL_TEMP > PROBE_TEMP %}
2024-01-22 12:50:08 +00:00
M106 S255
M109 S{ PROBE_TEMP }
M106 S0
2023-12-25 17:21:22 +00:00
{% else %}
2024-01-22 12:50:08 +00:00
M109 S{ PROBE_TEMP }
2023-12-25 17:21:22 +00:00
{% endif %}
; get nozzle to probing temperture
2023-12-16 18:57:57 +00:00
M190 S{ params.BED | float } ; wait for bed to reach temperture
2024-01-05 08:54:41 +00:00
; If QGL is NO, only do G28 (axis homing)
; If QGL is YES or not defined, do G32 (axis homing + QGL)
; First Check if QGL exists, then check if it is YES
{% if params.QGL is defined and params.QGL == "NO" %}
G28
{% else %}
2024-01-22 12:50:08 +00:00
; Is QGL applied already?
{% if printer.quad_gantry_level.applied %}
; QGL is applied, so just home the axis
G28
PARK_NOZZLE_REAR
{% else %}
; QGL is not applied, so home the axis and apply QGL and calibrate the mesh
G32
{% endif %}
2024-01-05 08:54:41 +00:00
{% endif %}
2023-12-16 18:57:57 +00:00
G1 Z20 F3000 ; move nozzle away from bed
M109 S{ params.EXTRUDER | float } ; wait for nozzle to reach temperture
2024-01-02 09:01:18 +00:00
SET_LED LED="hotend_rgb" RED=1 GREEN=0 BLUE=1 SYNC=0 TRANSMIT=1 ; turn on hotend LED
SET_LED LED="caselight" RED=1 GREEN=1 BLUE=1 SYNC=0 TRANSMIT=1 ; turn on case light
2023-12-16 18:57:57 +00:00
[gcode_macro PRINT_PURGE_LINE]
gcode:
G0 X10Y10Z0.25 F10000
G0 X200Y10Z0.25 E50 F1000
2023-12-08 08:57:03 +00:00
[gcode_macro PRINT_END]
gcode:
2023-12-16 18:57:57 +00:00
M400 ; wait for buffer to clear
G92 E0 ; zero the extruder
G1 E-10.0 F3600 ; retract filament
G91 ; relative positioning
G0 Z1.00 X20.0 Y20.0 F20000 ; move nozzle to remove stringing
TURN_OFF_HEATERS ; turn off heaters
M107 ; turn off fan
G1 Z2 F3000 ; move nozzle up 2mm
G90 ; absolute positioning
PARK_NOZZLE_REAR ; park nozzle
2024-01-04 18:15:11 +00:00
#M84 ; disable motors (optional)
2024-01-02 09:01:18 +00:00
SET_LED LED="hotend_rgb" RED=0 GREEN=0 BLUE=0 SYNC=0 TRANSMIT=1 ; turn off hotend LED
2024-01-04 18:15:11 +00:00
SET_LED LED="caselight" RED=0 GREEN=0 BLUE=0 SYNC=0 TRANSMIT=1
2023-12-15 17:53:48 +00:00
2023-12-25 17:21:22 +00:00
[gcode_macro LOAD_FILAMENT]
gcode:
M83
G1 E50 F300
G1 E30 F150
[gcode_macro UNLOAD_FILAMENT]
gcode:
M83
2024-01-05 08:54:41 +00:00
G1 E-35 F8000
G1 E26 F750
G4 P1000
G1 E-50 F8000
G1 E-50 F8000
2023-12-25 17:21:22 +00:00
2024-01-02 19:10:48 +00:00
[gcode_macro M106]
gcode:
# P0: Part cooling fan, P3: Exhaust fan
2024-01-02 20:03:10 +00:00
# If no P parameter is given, assume Part Cooling Fan
{% set speed = (params.S|float / 255 if params.S is defined else 1.0) %}
{% set fan_id = (params.P)|int if params.P is defined else 0 %}
{% if fan_id == 0 %}
SET_FAN_SPEED FAN=part_cooling_fan SPEED={speed}
{% elif fan_id == 3 %}
SET_FAN_SPEED FAN=exhaust_fan SPEED={speed}
{% endif %}
2024-01-04 18:15:11 +00:00
2024-01-31 19:33:50 +00:00
# Home, get position, throw around toolhead, home again.
# If MCU stepper positions (first line in GET_POSITION) are greater than a full step different (your number of microsteps), then skipping occured.
# We only measure to a full step to accomodate for endstop variance.
# Example: TEST_SPEED SPEED=300 ACCEL=5000 ITERATIONS=10
[gcode_macro TEST_SPEED]
gcode:
# Speed
{% set speed = params.SPEED|default(printer.configfile.settings.printer.max_velocity)|int %}
# Iterations
{% set iterations = params.ITERATIONS|default(5)|int %}
# Acceleration
{% set accel = params.ACCEL|default(printer.configfile.settings.printer.max_accel)|int %}
# Bounding inset for large pattern (helps prevent slamming the toolhead into the sides after small skips, and helps to account for machines with imperfectly set dimensions)
{% set bound = params.BOUND|default(20)|int %}
# Size for small pattern box
{% set smallpatternsize = SMALLPATTERNSIZE|default(20)|int %}
# Large pattern
# Max positions, inset by BOUND
{% set x_min = printer.toolhead.axis_minimum.x + bound %}
{% set x_max = printer.toolhead.axis_maximum.x - bound %}
{% set y_min = printer.toolhead.axis_minimum.y + bound %}
{% set y_max = printer.toolhead.axis_maximum.y - bound %}
# Small pattern at center
# Find X/Y center point
{% set x_center = (printer.toolhead.axis_minimum.x|float + printer.toolhead.axis_maximum.x|float ) / 2 %}
{% set y_center = (printer.toolhead.axis_minimum.y|float + printer.toolhead.axis_maximum.y|float ) / 2 %}
# Set small pattern box around center point
{% set x_center_min = x_center - (smallpatternsize/2) %}
{% set x_center_max = x_center + (smallpatternsize/2) %}
{% set y_center_min = y_center - (smallpatternsize/2) %}
{% set y_center_max = y_center + (smallpatternsize/2) %}
# Save current gcode state (absolute/relative, etc)
SAVE_GCODE_STATE NAME=TEST_SPEED
# Output parameters to g-code terminal
{ action_respond_info("TEST_SPEED: starting %d iterations at speed %d, accel %d" % (iterations, speed, accel)) }
# Home and get position for comparison later:
M400 # Finish moves - https://github.com/AndrewEllis93/Print-Tuning-Guide/issues/66
G28
# QGL if not already QGLd (only if QGL section exists in config)
{% if printer.configfile.settings.quad_gantry_level %}
{% if printer.quad_gantry_level.applied == False %}
QUAD_GANTRY_LEVEL
G28 Z
{% endif %}
{% endif %}
# Move 50mm away from max position and home again (to help with hall effect endstop accuracy - https://github.com/AndrewEllis93/Print-Tuning-Guide/issues/24)
G90
G1 X{printer.toolhead.axis_maximum.x-50} Y{printer.toolhead.axis_maximum.y-50} F{30*60}
M400 # Finish moves - https://github.com/AndrewEllis93/Print-Tuning-Guide/issues/66
G28 X Y
G0 X{printer.toolhead.axis_maximum.x-1} Y{printer.toolhead.axis_maximum.y-1} F{30*60}
G4 P1000
GET_POSITION
# Go to starting position
G0 X{x_min} Y{y_min} Z{bound + 10} F{speed*60}
# Set new limits
SET_VELOCITY_LIMIT VELOCITY={speed} ACCEL={accel} ACCEL_TO_DECEL={accel / 2}
{% for i in range(iterations) %}
# Large pattern diagonals
G0 X{x_min} Y{y_min} F{speed*60}
G0 X{x_max} Y{y_max} F{speed*60}
G0 X{x_min} Y{y_min} F{speed*60}
G0 X{x_max} Y{y_min} F{speed*60}
G0 X{x_min} Y{y_max} F{speed*60}
G0 X{x_max} Y{y_min} F{speed*60}
# Large pattern box
G0 X{x_min} Y{y_min} F{speed*60}
G0 X{x_min} Y{y_max} F{speed*60}
G0 X{x_max} Y{y_max} F{speed*60}
G0 X{x_max} Y{y_min} F{speed*60}
# Small pattern diagonals
G0 X{x_center_min} Y{y_center_min} F{speed*60}
G0 X{x_center_max} Y{y_center_max} F{speed*60}
G0 X{x_center_min} Y{y_center_min} F{speed*60}
G0 X{x_center_max} Y{y_center_min} F{speed*60}
G0 X{x_center_min} Y{y_center_max} F{speed*60}
G0 X{x_center_max} Y{y_center_min} F{speed*60}
# Small patternbox
G0 X{x_center_min} Y{y_center_min} F{speed*60}
G0 X{x_center_min} Y{y_center_max} F{speed*60}
G0 X{x_center_max} Y{y_center_max} F{speed*60}
G0 X{x_center_max} Y{y_center_min} F{speed*60}
{% endfor %}
# Restore max speed/accel/accel_to_decel to their configured values
SET_VELOCITY_LIMIT VELOCITY={printer.configfile.settings.printer.max_velocity} ACCEL={printer.configfile.settings.printer.max_accel} ACCEL_TO_DECEL={printer.configfile.settings.printer.max_accel_to_decel}
# Re-home and get position again for comparison:
M400 # Finish moves - https://github.com/AndrewEllis93/Print-Tuning-Guide/issues/66
G28 # This is a full G28 to fix an issue with CoreXZ - https://github.com/AndrewEllis93/Print-Tuning-Guide/issues/12
# Go to XY home positions (in case your homing override leaves it elsewhere)
G90
G0 X{printer.toolhead.axis_maximum.x-1} Y{printer.toolhead.axis_maximum.y-1} F{30*60}
G4 P1000
GET_POSITION
# Restore previous gcode state (absolute/relative, etc)
RESTORE_GCODE_STATE NAME=TEST_SPEED
2024-01-06 06:32:32 +00:00
#####################################################################
# Palette 2
#####################################################################
2024-01-04 18:15:11 +00:00
[palette2]
serial: /dev/serial/by-id/usb-FTDI_FT230X_Basic_UART_DM02HVOW-if00-port0
feedrate_splice: 0.3
feedrate_normal: 1.0
auto_load_speed: 2
auto_cancel_variation: 0.1
2024-01-06 06:25:37 +00:00
2023-12-15 17:53:48 +00:00
#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [input_shaper]
2024-01-21 05:10:32 +00:00
#*# shaper_type_x = zv
#*# shaper_freq_x = 57.6
#*# shaper_type_y = 3hump_ei
#*# shaper_freq_y = 48.0
2023-12-15 17:53:48 +00:00
#*#
#*# [probe]
2024-01-31 14:15:58 +00:00
#*# z_offset = -1.455
2023-12-16 16:07:43 +00:00
#*#
#*# [extruder]
#*#
2024-01-06 06:25:37 +00:00
#*# [heater_bed]
2024-01-13 06:03:04 +00:00
#*#
#*# [bed_mesh default]
#*# version = 1
#*# points =
2024-01-31 14:15:58 +00:00
#*# 0.592323, 0.690479, 0.687896, 0.682730, 0.618154
#*# 0.625903, 0.662065, 0.690479, 0.685313, 0.633652
#*# 0.594906, 0.625903, 0.618154, 0.612987, 0.638818
#*# 0.579408, 0.615570, 0.612987, 0.659482, 0.576825
#*# 0.636235, 0.703394, 0.659482, 0.654316, 0.607821
2024-01-13 06:03:04 +00:00
#*# x_count = 5
#*# y_count = 5
#*# mesh_x_pps = 2
#*# mesh_y_pps = 2
#*# algo = lagrange
#*# tension = 0.2
#*# min_x = 30.0
#*# max_x = 320.0
#*# min_y = 50.0
#*# max_y = 340.0