Skip to content

Instantly share code, notes, and snippets.

@Qteb
Last active March 7, 2025 03:57
Klipper configuration for SKR 1.4 PRO + 4x TMC2209 UART
# Specs:
# - SKR 1.4 PRO
# - TMC2209 UART
# - 1.8 stepper on XYZ
# - Physical endstops on XYZ
# - Fysetc Mini 12864 LCD Display v2.1 RGB
#
# Link to current version of this config: https://gist.github.com/Qteb/64baab2e57d65697633cc884dc783beb
# Klipper config reference: https://www.klipper3d.org/Config_Reference.html
# Gcode templates syntax: https://jinja.palletsprojects.com/en/2.10.x/templates/
# Gcode math: https://manual.slic3r.org/advanced/conditional-gcode
[mcu]
# https://www.raspberrypi.org/documentation/configuration/uart.md
# https://github.com/KevinOConnor/klipper/issues/2913
#serial: /dev/ttyS0
#restart_method: command
#serial: /dev/serial/by-id/usb-Klipper_lpc1769_0FD0001880A037AF1AE6BF5BC62000F5-if00
serial: /dev/serial/by-path/platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.2:1.0
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 6000
#max_accel_to_decel: 2000
max_z_velocity: 4
max_z_accel: 100
#square_corner_velocity: 5.0
[board_pins]
aliases:
EXP1_1=P1.30, EXP1_3=P1.18, EXP1_5=P1.20, EXP1_7=P1.22, EXP1_9=<GND>,
EXP1_2=P0.28, EXP1_4=P1.19, EXP1_6=P1.21, EXP1_8=P1.23, EXP1_10=<5V>,
EXP2_1=P0.17, EXP2_3=P3.26, EXP2_5=P3.25, EXP2_7=P1.31, EXP2_9=<GND>,
EXP2_2=P0.15, EXP2_4=P0.16, EXP2_6=P0.18, EXP2_8=<RST>, EXP2_10=<NC>
# https://github.com/KevinOConnor/klipper/blob/master/docs/Measuring_Resonances.md#bed-slinger-printers
# https://github.com/KevinOConnor/klipper/blob/master/docs/RPi_microcontroller.md
[mcu rpi]
serial: /tmp/klipper_host_mcu
[adxl345]
cs_pin: rpi:None
[resonance_tester]
accel_chip: adxl345
max_smoothing: 0.1
probe_points: 100,100,240
[input_shaper]
shaper_type_x: mzv
shaper_freq_x: 54.6
shaper_type_y: mzv
shaper_freq_y: 68.8
##############################
# X/Y Stepper Settings
# https://github.com/KevinOConnor/klipper/blob/master/docs/Rotation_Distance.md
##############################
[stepper_x]
step_pin: P2.2
dir_pin: !P2.6
enable_pin: !P2.1
endstop_pin: P1.29
microsteps: 16
rotation_distance: 40
position_endstop: 0
position_min: 0
position_max: 200
homing_speed: 100
second_homing_speed: 8
[tmc2209 stepper_x]
uart_pin: P1.10
run_current: 1.500
# hold_current: 0.950
# https://github.com/KevinOConnor/klipper/issues/1363
stealthchop_threshold: 500
[stepper_y]
step_pin: P0.19
dir_pin: P0.20
enable_pin: !P2.8
endstop_pin: P1.28
microsteps: 16
rotation_distance: 40
position_endstop: 0
position_min: 0
position_max: 200
homing_speed: 100
second_homing_speed: 8
[tmc2209 stepper_y]
uart_pin: P1.9
run_current: 1.500
# hold_current: 0.950
# https://github.com/KevinOConnor/klipper/issues/1363
stealthchop_threshold: 500
#####################################################################
# Z Stepper Settings
#####################################################################
[stepper_z]
step_pin: P0.22
dir_pin: P2.11
enable_pin: !P0.21
endstop_pin: P1.27
microsteps: 16
rotation_distance: 2
position_endstop: 0
position_min: 0
position_max: 260
homing_speed: 6
homing_retract_speed: 4
homing_retract_dist: 1
second_homing_speed: 0.5
[tmc2209 stepper_z]
uart_pin: P1.8
run_current: 0.650
hold_current: 0.450
# https://github.com/KevinOConnor/klipper/issues/1363
stealthchop_threshold: 500
# https://github.com/KevinOConnor/klipper/blob/master/docs/Endstop_Phase.md
[endstop_phase stepper_z]
trigger_phase=9/64
##############################
# Extruder
# https://voron.dozuki.com/Guide/Extruder+Calibration+(ESTEPS)/1
# https://github.com/KevinOConnor/klipper/blob/master/docs/Pressure_Advance.md
##############################
[extruder]
step_pin: P2.13
dir_pin: P0.11
enable_pin: !P2.12
heater_pin: P2.7
sensor_pin: P0.24
sensor_type: PT1000
pullup_resistor: 1000
microsteps: 16
rotation_distance: 4.67
nozzle_diameter: 0.600
filament_diameter: 1.750
min_extrude_temp: 0
max_extrude_only_distance: 1000
max_extrude_cross_section: 50.0
min_temp: 0
max_temp: 999999999999999999999999999999999999999
#control = pid
# pid_kp = 23.716
# pid_ki = 1.363
# pid_kd = 103.165
# [tmc2209 extruder]
# uart_pin: P1.4
# run_current: 0.900
# hold_current: 0.500
# # https://github.com/KevinOConnor/klipper/issues/1363
# stealthchop_threshold: 5000
[tmc2209 extruder]
uart_pin: P1.4
run_current: 0.400
hold_current: 0.200
# https://github.com/KevinOConnor/klipper/issues/1363
stealthchop_threshold: 5000
##############################
# Bed Heater
##############################
[heater_bed]
heater_pin: P2.5
sensor_pin: P0.25
sensor_type: EPCOS 100K B57560G104F
min_temp: 0
max_temp: 130
#control: pid
#pid_Kp=64.240
#pid_Ki=3.858
#pid_Kd=267.397
##############################
# Fans
# https://github.com/KevinOConnor/klipper/blob/master/docs/Config_Reference.md#fans
##############################
[fan]
pin: P2.3
kick_start_time: 0.500
off_below: 0.25 #for Pengda
[heater_fan extruder_fan]
pin: P2.4
heater_temp: 50.0
#fan_speed: 1.0
##############################
# Probe & Mesh
# https://github.com/KevinOConnor/klipper/blob/master/docs/Manual_Level.md#fine-grained-bed-screw-adjustments
##############################
[bed_screws]
screw1_name: front left screw
screw1: 20,20
screw2_name: front right screw
screw2: 180,20
screw3_name: rear center screw
screw3: 100,180
horizontal_move_z: 2
probe_height: 0.05
speed: 150
probe_speed: 2
##############################
# Display
##############################
[display]
lcd_type: uc1701
cs_pin: EXP1_3
a0_pin: EXP1_4
rst_pin: EXP1_5
click_pin: ^!EXP1_2
encoder_pins: ^EXP2_5, ^EXP2_3
spi_software_miso_pin: EXP2_1
spi_software_mosi_pin: EXP2_6
spi_software_sclk_pin: EXP2_2
contrast: 63
menu_timeout: 90
[duplicate_pin_override]
pins: P0.25, rpi:gpio26
[temperature_fan chamber_fan]
pin: rpi:gpio26
sensor_pin: P0.25
sensor_type: EPCOS 100K B57560G104F
min_temp: 0
max_temp: 130
control: watermark
target_temp: 130
[output_pin chamber_fan]
pin: rpi:gpio26
pwm: False
value: 0
shutdown_value: 0
[led case_led]
white_pin: rpi:pwmchip0/pwm0
hardware_pwm: True
cycle_time: 0.000001
initial_WHITE: 1.0
[neopixel fysetc_mini12864]
pin: EXP1_6
chain_count: 3
color_order: RGB
initial_RED: 1.0
initial_GREEN: 0.3
initial_BLUE: 0.0
[neopixel bottom_neopixel]
pin: P1.24
chain_count: 18
color_order: RGB
initial_RED: 0
initial_GREEN: 0
initial_BLUE: 0
[output_pin beeper]
pin: EXP1_1
pwm: True
value: 0
shutdown_value: 0
cycle_time: 0.0024
##############################
# Misc
##############################
[force_move]
enable_force_move: True
[pause_resume]
[respond]
[virtual_sdcard]
path: ~/gcode_files
[include /home/pi/klipper_config/macros/*.cfg]
[include moonraker_obico_macros.cfg]
#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [extruder]
#*# control = pid
#*# pid_kp = 25.343
#*# pid_ki = 1.579
#*# pid_kd = 101.691
#*#
#*# [heater_bed]
#*# control = pid
#*# pid_kp = 64.240
#*# pid_ki = 3.858
#*# pid_kd = 267.397
[gcode_macro M141]
gcode:
{% set s = params.S|default(0)|float %}
SET_TEMPERATURE_FAN_TARGET temperature_fan=chamber_fan target={s}
[gcode_macro CHAMBER_FAN_ON]
description: Turn on the chamber fan.
gcode:
M118 ** Running CHAMBER_FAN_ON macro
SET_PIN PIN=chamber_fan VALUE=1
[gcode_macro CHAMBER_FAN_OFF]
description: Turn off the chamber fan.
gcode:
M118 ** Running CHAMBER_FAN_OFF macro
SET_PIN PIN=chamber_fan VALUE=0
[delayed_gcode STOP_FAN]
gcode:
CHAMBER_FAN_OFF
[gcode_macro START_FAN_TIMER]
gcode:
{% set time = params.TIME|default(1800)|float %}
CHAMBER_FAN_ON
UPDATE_DELAYED_GCODE ID=STOP_FAN DURATION={time}
[gcode_macro CANCEL_FAN_TIMER]
gcode:
UPDATE_DELAYED_GCODE ID=STOP_FAN DURATION=0
[gcode_macro SET_NEOPIXEL_RGB]
gcode:
{% set neopixel_R = params.R|default(0.0)|float %}
{% set neopixel_G = params.G|default(0.0)|float %}
{% set neopixel_B = params.B|default(0.0)|float %}
SET_LED LED=bottom_neopixel RED={neopixel_R} GREEN={neopixel_G} BLUE={neopixel_B}
[gcode_macro SET_DISPLAY_RGB]
gcode:
{% set fysetc_mini12864_R = params.R|default(0.0)|float %}
{% set fysetc_mini12864_G = params.G|default(0.0)|float %}
{% set fysetc_mini12864_B = params.B|default(0.0)|float %}
SET_LED LED=fysetc_mini12864 RED={fysetc_mini12864_R} GREEN={fysetc_mini12864_G} BLUE={fysetc_mini12864_B} INDEX=1 TRANSMIT=0
SET_LED LED=fysetc_mini12864 RED={fysetc_mini12864_R} GREEN={fysetc_mini12864_G} BLUE={fysetc_mini12864_B} INDEX=2 TRANSMIT=0
SET_LED LED=fysetc_mini12864 RED={fysetc_mini12864_R} GREEN={fysetc_mini12864_G} BLUE={fysetc_mini12864_B} INDEX=3
[gcode_macro LED_ON]
gcode:
# RUN_SHELL_COMMAND CMD=led_on
SET_LED LED=case_led WHITE=1
[gcode_macro LED_OFF]
gcode:
#RUN_SHELL_COMMAND CMD=led_off
SET_LED LED=case_led WHITE=0
# [gcode_shell_command led_on]
# command: gpio pwm 26 2000
# timeout: 2.
# verbose: false
# [gcode_shell_command led_off]
# command: gpio pwm 26 0
# timeout: 2.
# verbose: false
# [gcode_shell_command led_min]
# command: gpio pwm 26 500
# timeout: 2.
# verbose: false
# [gcode_macro LED_MIN]
# gcode:
# RUN_SHELL_COMMAND CMD=led_min
#####################################################################
# Macros
#####################################################################
[delayed_gcode INIT_STATE]
initial_duration: 1
gcode:
READY_STATE
[gcode_macro READY_STATE]
gcode:
SET_DISPLAY_RGB R=1.0 G=0.3 B=0.0
SET_NEOPIXEL_RGB R=1.0 G=0.3 B=0.0
M118 READY_STATE: Printer is ready
M117 Printer is ready
#BEEP_READY
[gcode_macro BEEP_ALERT]
gcode:
M300 S200 P200
M300 S200 P200
M300 S200 P200
[gcode_macro BEEP_READY]
gcode:
M300 S500 P50
M300 S600 P50
M300 S700 P50
[gcode_macro BEEP_CONFIRM]
gcode:
M300 S1000 P100
M300 S1200 P100
M300 S1400 P100
[gcode_macro COLOR_CHANGE]
gcode:
{% set variable_extr_temp = 0 %}
{% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %}
PAUSE
M118 COLOR_CHANGE: Unloading filament...
M117 Unloading filament...
UNLOAD_FILAMENT
M118 COLOR_CHANGE: Insert new filament and load it with LOAD_FILAMENT command
M118 COLOR_CHANGE: After load new filament continue printing using RESUME command
M117 Insert new filament
{% else %}
M118 COLOR_CHANGE: No print started yet...
{% endif %}
[gcode_macro M300]
gcode:
{% set S = params.S|default(1000)|int %}
{% set P = params.P|default(100)|int %}
{% if S|float != 0 %}
SET_PIN PIN=beeper VALUE=0.5 CYCLE_TIME={1/S|float}
{% endif %}
G4 P{P}
SET_PIN PIN=beeper VALUE=0
[gcode_macro M900]
gcode:
{% set K = params.K|default(0.0)|float %}
SET_PRESSURE_ADVANCE ADVANCE={K}
# [gcode_macro M73]
# rename_existing: M773
# variable_p: 0.0
# variable_r: 0.0
# default_parameter_P: 0.0
# default_parameter_R: 0.0
# gcode:
# M773 P{P}
# SET_GCODE_VARIABLE MACRO=M73 VARIABLE=p VALUE={P}
# SET_GCODE_VARIABLE MACRO=M73 VARIABLE=r VALUE={R}
#########
[gcode_macro MOVE_FILAMENT]
gcode:
{% set ACTION = params.ACTION|default(RETRACT) %}
{% set LENGTH = params.LENGTH|default(2)|float %}
{% set SPEED = params.SPEED|default(2100)|float %}
{% set MIN_TEMP = (printer.configfile.config["extruder"]["min_extrude_temp"] | min) %}
{% if (printer.extruder.temperature >= (MIN_TEMP|int)) %}
G91 ; relative positioning
{% if ACTION == 'RETRACT' %}
M118 FILAMENT: Retracting filament by {LENGTH}mm
G1 E-{LENGTH} F{SPEED} ; retract filament
{% elif ACTION == 'FEED' %}
M118 FILAMENT: Feeding filament by {LENGTH}mm
G1 E{LENGTH} F{SPEED} ; detract filament
{% else %}
M118 FILAMENT: Unknown action: {ACTION}
{% endif %}
G90 ; absolute positioning
{% else %}
M118 START_PRINT: Skipped retracting filamant due to min-temp condition {MIN_TEMP}, current extruder temperature is {printer.extruder.temperature}
{% endif %}
[gcode_macro PARKING_POSITION]
gcode:
{% set RAISE_Z_POSITION = params.RAISE_Z_POSITION|default(50)|float %}
{% set Z_SPEED = params.Z_SPEED|default(600)|float %}
{% set XY_SPEED = params.XY_SPEED|default(4500)|float %}
{% set PARKING_POSITION_X = params.PARKING_POSITION_X|default(5)|float %}
{% set PARKING_POSITION_Y = params.PARKING_POSITION_Y|default(5)|float %}
# calculating X and Y
{% if ('x' in printer.toolhead.homed_axes) and ('y' in printer.toolhead.homed_axes) %}
G90 ; Absolute positioning
G1 X{PARKING_POSITION_X} Y{PARKING_POSITION_Y} F{XY_SPEED}
M118 PARKING_POSITION: Parking X{PARKING_POSITION_X} Y{PARKING_POSITION_Y}
{% else %}
M118 PARKING_POSITION: X and/or Y position is unknown, moving not possible
{% endif %}
# calculating Z
{% if 'z' in printer.toolhead.homed_axes %}
{% if printer.gcode_move.gcode_position.z < (RAISE_Z_POSITION | float) %}
M118 PARKING_POSITION: Z axis is below {RAISE_Z_POSITION}mm
G90 ; Absolute positioning
G1 Z{RAISE_Z_POSITION} F{Z_SPEED}
M118 PARKING_POSITION: Parking Z{RAISE_Z_POSITION}
{% endif %}
# {% endif %}
{% else %}
M118 PARKING_POSITION: Z position is unknown, moving not possible
{% endif %}
#########
[gcode_macro START_PRINT]
variable_value: 0
gcode:
CLEAR_PAUSE
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=value VALUE=1
{% set CHAMBER_FAN_TEMP = params.CHAMBER_FAN_TEMP|default(130)|float %}
# turn off chamber fan
#CHAMBER_FAN_OFF ; turn chamber fan
#CANCEL_FAN_TIMER ; turn chamber fan timer
M141 S{CHAMBER_FAN_TEMP} ; turn on chamber fan
M117 Preparing...
M107 ; turn off part fan
G21 ; set units to millimeters
G90 ; use absolute coordinates
M83 ; use relative distances for extrusion
G28 ; home all
M117 Printing...
[gcode_macro STOP_PRINT]
gcode:
{% set CHAMBER_FAN_TEMP = params.CHAMBER_FAN_TEMP|default(50)|float %}
M400 ; wait for buffer to clear
SET_GCODE_VARIABLE MACRO=START_PRINT VARIABLE=value VALUE=0
TURN_OFF_HEATERS
M107 ; turn off part fan
M141 S{CHAMBER_FAN_TEMP} ; turn on chamber fan
;START_FAN_TIMER TIME=600
[gcode_macro READ_STATE]
gcode:
M118 CANCEL_PRINT: {printer["gcode_macro START_PRINT"].value}
M0 You're up, mate ; in your G-code file
[gcode_macro CANCEL_PRINT]
description = Cancel the actual running print
rename_existing = CANCEL_PRINT_BASE
gcode:
{% set RAISE_Z_POSITION = params.RAISE_Z_POSITION|default(100)|float %}
{% set RETRACT_LENGTH = params.RETRACT_LENGTH|default(0)|float %}
{% set PARKING_POSITION_X = params.PARKING_POSITION_X|default(5)|float %}
{% set PARKING_POSITION_Y = params.PARKING_POSITION_Y|default(5)|float %}
M118 CANCEL_PRINT: Canceling print...
M117 Canceling print
# {% if printer["gcode_macro START_PRINT"].value|default(0, true) == 0 %}
# M118 CANCEL_PRINT: Printer is not printing
# {% elif printer.pause_resume.is_paused %}
# M118 CANCEL_PRINT: Printer is paused, no parking needed
# {% else %}
M118 CANCEL_PRINT: Canceling print...
MOVE_FILAMENT ACTION=RETRACT
PARKING_POSITION PARKING_POSITION_X={PARKING_POSITION_X} PARKING_POSITION_Y={PARKING_POSITION_Y} RAISE_Z_POSITION={RAISE_Z_POSITION}
# {% endif %}
SDCARD_RESET_FILE
CANCEL_PRINT_BASE
STOP_PRINT
READY_STATE
[gcode_macro FINISH_PRINT]
gcode:
STOP_PRINT
# PARKING_POSITION PARKING_POSITION_X=195 PARKING_POSITION_Y=195 RAISE_Z_POSITION=100
MOVE_FILAMENT ACTION=RETRACT
SET_PRESSURE_ADVANCE ADVANCE=0
BEEP_CONFIRM
M117 Done!
[gcode_macro PAUSE]
description = Pause the actual running print
rename_existing: BASE_PAUSE
gcode:
{% if printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused %}
M117 Pausing print...
M118 PAUSE: Pausing print...
M118 PAUSE: Position before BASE_PAUSE: {printer.gcode_move.gcode_position}
SAVE_GCODE_STATE NAME=PAUSE_state
BASE_PAUSE
M118 PAUSE: Position after BASE_PAUSE: {printer.gcode_move.gcode_position}
M220 S100
MOVE_FILAMENT ACTION=RETRACT
PARKING_POSITION
M400 ; finish moves
G91 ; relative positioning
M118 PAUSE: Position when done: {printer.gcode_move.gcode_position}
M118 PAUSE: Print paused...
M117 Print paused...
{% else %}
M118 PAUSE: Printer is not printing
{% endif %}
[gcode_macro RESUME]
rename_existing: BASE_RESUME
gcode:
{% set FEED_LENGTH = params.FEED_LENGTH|default(10)|float %}
{% set FEED_SPEED = params.FEED_SPEED|default(150)|float %}
{% if printer.pause_resume.is_paused %}
M118 RESUME: Resuming print...
M117 Resuming print
MOVE_FILAMENT ACTION=FEED LENGTH={FEED_LENGTH} SPEED={FEED_SPEED}
M400 ; finish moves
M300 S1000 P100 ; beep
RESTORE_GCODE_STATE NAME=PAUSE_state MOVE=1 MOVE_SPEED=4800
BASE_RESUME
M118 RESUME: Print resumed
{% else %}
M118 PAUSE: Printer is not paused
{% endif %}
#########
[gcode_macro LOAD_FILAMENT]
gcode:
M83
MOVE_FILAMENT ACTION=FEED LENGTH=55 SPEED=800
MOVE_FILAMENT ACTION=FEED LENGTH=250 SPEED=400
MOVE_FILAMENT ACTION=RETRACT LENGTH=2 SPEED=2400
# M82
M117 Load Complete!
[gcode_macro UNLOAD_FILAMENT]
gcode:
M83
MOVE_FILAMENT ACTION=FEED LENGTH=10 SPEED=300
MOVE_FILAMENT ACTION=RETRACT LENGTH=80 SPEED=1200
# M82
M117 Unload Complete!
# [gcode_macro LOAD_FILAMENT]
# gcode:
# M83
# G1 E50 F3600
# G1 E100 F4500
# G1 E550 F6000
# G1 E35 F1800
# G1 E50 F300
# # M82
# M117 Load Complete!
# [gcode_macro UNLOAD_FILAMENT]
# gcode:
# M83
# G1 E20 F1500
# G1 E-750 F20000
# # M82
# [display_data _default_16x4 print_progress]
# position: 2, 0
# text:
# {% if printer["gcode_macro START_PRINT"].value|default(0, true) == 1 %}
# { "{:^10.0%}".format(printer.display_status.progress) }
# {% else %}
# ----------------
# {% endif %}
# [display_data _default_16x4 progress_bar]
# position: 2, 1 # Draw graphical progress bar after text is written
# text:
# {% if printer["gcode_macro START_PRINT"].value|default(0, true) == 1 %}
# { draw_progress_bar(2, 0, 9, printer.display_status.progress) }
# {% endif %}
# # Render remaining time taken from M73
# [display_data _default_16x4 printing_time]
# position: 2, 10
# text:
# {% if printer["gcode_macro START_PRINT"].value|default(0, true) == 1 %}
# {% set ptime = printer["gcode_macro M73"].r %}
# { "R%02d:%02d" % (ptime // 60, ptime % 60) }
# {% endif %}
##############################
# Menu
##############################
### menu octoprint ###
[menu __main __octoprint]
type: disabled
### menu control ###
[menu __main __control __pause]
type: command
index: 0
enable: {printer.idle_timeout.state == "Printing" and not printer.pause_resume.is_paused}
name: Pause printing
gcode:
{menu.exit()}
PAUSE
[menu __main __control __resume]
type: command
index: 1
enable: {printer.pause_resume.is_paused}
name: Resume printing
gcode:
{menu.exit()}
RESUME
[menu __main __control __clearpause]
type: command
index: 2
enable: {printer.pause_resume.is_paused}
name: Clear pause
gcode:
{menu.exit()}
CLEAR_PAUSE
[menu __main __control __cancelprint]
type: command
index: 3
enable: {printer["gcode_macro START_PRINT"].value|default(0, true) == 1}
name: Cancel print
gcode:
{menu.exit()}
CANCEL_PRINT
### menu filament ###
[menu __main __filament __loadf]
type: disabled
[menu __main __filament __loads]
type: disabled
[menu __main __filament __unloadf]
type: disabled
[menu __main __filament __unloads]
type: disabled
[menu __main __filament __load]
type: command
index: 1
enable: {printer["gcode_macro START_PRINT"].value|default(0, true) == 0 or printer.pause_resume.is_paused}
name: Load Filament
gcode:
{menu.exit()}
LOAD_FILAMENT
[menu __main __filament __unload]
type: command
index: 2
enable: {printer["gcode_macro START_PRINT"].value|default(0, true) == 0 or printer.pause_resume.is_paused}
name: Unload Filament
gcode:
{menu.exit()}
UNLOAD_FILAMENT
### menu prepare ###
# [menu __main __prepare]
# type: list
# name: Prepare
[menu __main __bedScrew]
type: list
enable: {not printer.idle_timeout.state == "Printing"}
name: Bed Screw Tune
[menu __main __bedScrew __Start]
type:command
name: Start Screw Adjust
gcode:
G28
BED_SCREWS_ADJUST
# [menu __main __prepare __bedScrew __Accept]
# type:command
# name: Accept
# gcode:
# ACCEPT
[menu __main __bedScrew __Adjusted]
type:command
name: Adjusted
gcode:
ADJUSTED
[menu __main __bedScrew __Abort]
type:command
name: Finish
gcode:
ABORT
G28 X Y Z
G1 Z50 F5000
@tiagomaricate
Copy link

Hey my friend, can I use this file with an SKR 1.4 Turbo? Or only for SKR PRO?

@damanbaird
Copy link

Hey my friend, can I use this file with an SKR 1.4 Turbo? Or only for SKR PRO?

Over a year late, but it does seam to have simular pinouts, as i used parts of this for my skr 1.4 turbo

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment