printer.cfg
The top-level Klipper config. The canonical file lives at content/config/files/printer.cfg and is embedded below — edit the file, the page updates on rebuild.
## Voron Design VORON2 250/300/350mm Spider TMC2209 UART config
## *** THINGS TO CHANGE/CHECK: ***
## Fine tune E steps [extruder] section
[mcu]
## Obtain definition by "ls -l /dev/serial/by-id/"
##--------------------------------------------------------------------
serial: /dev/serial/by-id/usb-Klipper_stm32f446xx_1D002F000250563046353420-if00
[printer]
kinematics: corexy
max_velocity: 800
#max_velocity: 300 # base value
max_accel: 6000 #Max 4000
max_accel_to_decel: 3000 # half of max_accel
max_z_velocity: 15 #Max 15 for 12V TMC Drivers, can increase for 24V
max_z_accel: 350
square_corner_velocity: 5.0
# 6000, 800 TEST_SPEED x50 ok
[input_shaper]
shaper_freq_x: 55.4
shaper_type_x: mzv
shaper_freq_y: 39.4
shaper_type_y: mzv
[include InputShaper.cfg]
#####################################################################
# X/Y Stepper Settings
#####################################################################
[stepper_x]
## Connected to X-MOT (B Motor)
step_pin: PE11
dir_pin: !PE10
enable_pin: !PE9
rotation_distance: 40
microsteps: 16
full_steps_per_rotation:200 #set to 400 for 0.9 degree stepper
endstop_pin: ^PA1
#endstop_pin: tmc2209_stepper_x:virtual_endstop
position_min: 0
position_endstop: 298
position_max: 298
homing_speed: 100 #Max 100
# homing_speed: 20 # for sensorless, half of rotation_distance
homing_retract_dist: 5
# homing_retract_dist: 0 # for sensorless
homing_positive_dir: true
## Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_x]
uart_pin: PE7
#diag_pin: ^PA1 # use the same pin that was previously the endstop_pin!
diag_pin: PB14 # try clee
driver_SGTHRS: 55
interpolate: True
run_current: 0.8
hold_current: 0.7
sense_resistor: 0.110
stealthchop_threshold: 0
[stepper_y]
## Connected to Y-MOT (A Motor)
step_pin: PD8
dir_pin: !PB12
enable_pin: !PD9
rotation_distance: 40
microsteps: 16
full_steps_per_rotation:200 #set to 400 for 0.9 degree stepper
endstop_pin: ^PA2
#endstop_pin: tmc2209_stepper_y:virtual_endstop
position_min: 0
position_endstop: 307
position_max: 307
homing_speed: 100 #Max 100
# homing_speed: 20 # for sensorless, half of rotation_distance
homing_retract_dist: 5
# homing_retract_dist: 0 # for sensorless
homing_positive_dir: true
## Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_y]
uart_pin: PE15
#diag_pin: ^PA2 # use the same pin that was previously the endstop_pin!
diag_pin: PB13 # try clee
driver_SGTHRS: 50 # 255 is most sensitive value, 0 is least sensitive
interpolate: True
run_current: 0.8
hold_current: 0.7
sense_resistor: 0.110
stealthchop_threshold: 0
#####################################################################
# Z Stepper Settings
#####################################################################
## In Z-MOT Position
## Z0 Stepper - Front Left
[stepper_z]
step_pin: PD14
dir_pin: !PD13
enable_pin: !PD15
rotation_distance: 40
gear_ratio: 80:16
microsteps: 16
## In Z- Position
endstop_pin: ^PA0
## 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: -0.5
#position_endstop = -0.200
## 300mm build
position_max: 275
position_min: -5
homing_speed: 16
second_homing_speed: 3
homing_retract_dist: 3
## Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_z]
uart_pin: PD10
interpolate: True
run_current: 0.8
hold_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 999999
## In E1-MOT Position
## Z1 Stepper - Rear Left
[stepper_z1]
step_pin: PE6
dir_pin: PC13
enable_pin: !PE5
rotation_distance: 40
gear_ratio: 80:16
microsteps: 16
## Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_z1]
uart_pin: PC14
interpolate: True
run_current: 0.8
hold_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 999999
## In E2-MOT Position
## Z2 Stepper - Rear Right
[stepper_z2]
step_pin: PE2
dir_pin: !PE4
enable_pin: !PE3
rotation_distance: 40
gear_ratio: 80:16
microsteps: 16
## Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_z2]
uart_pin: PC15
interpolate: true
run_current: 0.8
hold_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 999999
## In E3-MOT Position
## Z3 Stepper - Front Right
[stepper_z3]
step_pin: PD12
dir_pin: PC4
enable_pin: !PE8
rotation_distance: 40
gear_ratio: 80:16
microsteps: 16
[tmc2209 stepper_z3]
uart_pin: PA15
interpolate: true
run_current: 0.8
hold_current: 0.8
sense_resistor: 0.110
stealthchop_threshold: 999999
#####################################################################
# Extruder
#####################################################################
## In E0-MOT Position
[extruder]
step_pin: PD5
dir_pin: !PD6
enable_pin: !PD4
## Update value below when you perform extruder calibration
## If you ask for 100mm of filament, but in reality it is 98mm:
## rotation_distance = <previous_rotation_distance> * <actual_extrude_distance> / 100
## 22.6789511 is a good starting point for Bondtech 5mm gears
## 34.37086 for Bondtech 8mm gears (Galileo)
#rotation_distance: 34.37086 # (Galileo)
#rotation_distance: 35.42 # 1
#rotation_distance: 35.161 # 2
#rotation_distance: 35.1047 # 3
#rotation_distance: 35.1433 # 4
#rotation_distance: 35.0590 # 5
rotation_distance: 35.1020 # avg3
## Update Gear Ratio depending on your Extruder Type
## Use 50:17 for Afterburner/Clockwork (BMG Gear Ratio)
## Use 80:20 for M4, M3.1
## Use 7.5:1 for Galileo
gear_ratio: 7.5:1 #Galileo
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
## In E0 OUT Position
heater_pin: PB15
#sensor_type: PT1000 # sensor for dragon hot-end
sensor_type: ATC Semitec 104NT-4-R025H42G
sensor_pin: PC0
min_temp: 10
max_temp: 280
max_power: 1.0
min_extrude_temp: 170
#control = pid
#pid_kp = 26.213
#pid_ki = 1.304
#pid_kd = 131.721
## Try to keep pressure_advance below 1.0
#pressure_advance: 0.06 # dragon SF
pressure_advance: 0.059 # Revo; from PA lines. seeing corner sep
#pressure_advance: 0.056 # Revo
## Default is 0.040, leave stock
#pressure_advance_smooth_time: 0.040
## In E0-MOT Position
## Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 extruder]
uart_pin: PD7
interpolate: false
run_current: 0.5
hold_current: 0.4
sense_resistor: 0.110
stealthchop_threshold: 0
#####################################################################
# Bed Heater
#####################################################################
[heater_bed]
## SSR Pin - In BED OUT position
heater_pin: PB4
sensor_type: NTC 100K MGB18-104F39050L32 # Keenovo Heater Pad
sensor_pin: PC3
## Adjust Max Power so your heater doesn't warp your bed
max_power: 0.6
min_temp: 0
max_temp: 120
#control: pid
#pid_kp: 58.437
#pid_ki: 2.347
#pid_kd: 363.769
#####################################################################
# Probe
#####################################################################
[probe]
## This probe is not used for Z height, only Quad Gantry Leveling
## In Z+ position
## If your probe is NO instead of NC, change pin to ^!PA3
pin: ^PA3
x_offset: 0
y_offset: 19.75
z_offset: 6.42
speed: 15
samples: 3
samples_result: median
sample_retract_dist: 2.0
samples_tolerance: 0.01
samples_tolerance_retries: 3
##[probe]
#### This probe is not used for Z height, only Quad Gantry Leveling
#### In Z+ position
#### If your probe is NO instead of NC, change pin to ^!PA3
##pin: ^PA3
##x_offset: 0
##y_offset: 25.0
###z_offset: 0
##speed: 20.0
##samples: 3
##samples_result: median
##sample_retract_dist: 3.0
##samples_tolerance: 0.006
##samples_tolerance_retries: 6
#####################################################################
# Fan Control
#####################################################################
[heater_fan hotend_fan]
## Hotend Fan - FAN0 Connector
pin: PB0
max_power: 1.0
#kick_start_time: 0.5
heater: extruder
heater_temp: 50.0
## If you are experiencing back flow, you can reduce fan_speed
#fan_speed: 1.0
[fan]
## Print Cooling Fan - FAN1 Connector
pin: PB1
#max_power: 1.0
#kick_start_time: 0.5
## 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
off_below: 0.10
[heater_fan controller_fan]
## Controller fan - FAN2 Connector
pin: PB2
#kick_start_time: 0.5
heater: heater_bed
heater_temp: 45.0
fan_speed: 0.5
#[heater_fan exhaust_fan]
## Exhaust fan - In E2 OUT Positon
#pin: PB3
#max_power: 1.0
#shutdown_speed: 0.0
##kick_start_time: 0.5
#heater: heater_bed
#heater_temp: 60
#fan_speed: 1.0
[include KlipperExpander.cfg]
#####################################################################
# LED Control
#####################################################################
#[output_pin caselight ]
## Chamber Lighting - In E1 OUT Position
#pin: PC8
#pwm: true
#shutdown_value: 0
#cycle_time: 0.01
#####################################################################
# Homing and Gantry Adjustment Routines
#####################################################################
[idle_timeout]
timeout: 3600
#[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:188.5,307
#speed:100
#z_hop:10
##home_xy_position:203,307
##speed:200
[z_calibration]
nozzle_xy_position: 188.5,307
switch_xy_position: 181.5,287 # Ymax-20mm
#nozzle_xy_position: 185,307 # after sensorless
#switch_xy_position: 178,287 # after sensorless/ Ymax-20mm
bed_xy_position: 150,150
#switch_offset: 0.46
switch_offset: 0.51 ; 0.05 closer
start_gcode: ATTACH_PROBE
#before_switch_gcode: <macro name for attaching the probe AFTER probing the nozzle>
end_gcode: DOCK_PROBE
[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 for 300mm Build
gantry_corners:
-60,-10
360,370
# Probe points
points:
50,25
50,225
250,225
250,25
speed: 400
horizontal_move_z: 7 # 10
retries: 5
retry_tolerance: 0.0075
max_adjust: 10
[bed_mesh]
speed: 400
horizontal_move_z: 7 # 10
mesh_min: 50, 50
mesh_max: 250, 250
probe_count: 5, 5
fade_start: 0.6
fade_end: 10.0
relative_reference_index: 12
#mesh_pps: 2, 3
algorithm: bicubic
bicubic_tension: 0.2
#####################################################################
# Displays
#####################################################################
#--------------------------------------------------------------------
# [display]
# # mini12864 LCD Display
# lcd_type: uc1701
# cs_pin: PC11
# a0_pin: PD2
# rst_pin: PC10
# encoder_pins: ^PC6,^PC7
# click_pin: ^!PA8
# contrast: 63
# #spi_bus: spi1
# spi_software_mosi_pin: PA7
# spi_software_miso_pin: PA6
# spi_software_sclk_pin: PA5
# [neopixel fysetc_mini12864]
# # To control Neopixel RGB in mini12864 display
# pin: PC12
# chain_count: 3
# initial_RED: 0.1
# initial_GREEN: 0.5
# initial_BLUE: 0.0
# color_order: RGB
[include stealthburner_leds.cfg]
# Example neopixel configuration:
[neopixel sb_leds]
pin: PD3
# # The pin connected to the neopixel. This parameter must be
# # provided.
chain_count: 3
# # The number of Neopixel chips that are "daisy chained" to the
# # provided pin. The default is 1 (which indicates only a single
# # Neopixel is connected to the pin).
color_order: GRBW
# # Set the pixel order required by the LED hardware. Options are GRB,
# # RGB, GRBW, or RGBW. The default is GRB.
# initial_RED: 0.0
# initial_GREEN: 0.0
# initial_BLUE: 0.0
# initial_WHITE: 0.0
# # Sets the initial LED color of the Neopixel. Each value should be
# # between 0.0 and 1.0. The WHITE option is only available on RGBW
# # LEDs. The default for each color is 0.#
# Set RGB values on boot up for each Neopixel.
# Index 1 = display, Index 2 and 3 = Knob
# [delayed_gcode setdisplayneopixel]
# initial_duration: 1
# gcode:
# STATUS_READY
# # SET_LED LED=fysetc_mini12864 RED=1 GREEN=1 BLUE=1 INDEX=1 TRANSMIT=0
# # SET_LED LED=fysetc_mini12864 RED=1 GREEN=0 BLUE=0 INDEX=2 TRANSMIT=0
# # SET_LED LED=fysetc_mini12864 RED=1 GREEN=0 BLUE=0 INDEX=3
#--------------------------------------------------------------------
[temperature_sensor chamber]
sensor_type: NTC 100K beta 3950
sensor_pin: PC1
min_temp: -200
max_temp: 100
#gcode_id: C
[temperature_sensor raspberry_pi_temperature]
sensor_type: temperature_host
min_temp: 10
max_temp: 100
[include PrimeLineMacro.cfg]
[include nozzle_scrub.cfg]
[include Accel.cfg]
#####################################################################
# Macros
#####################################################################
#[include sensorless.cfg]
[include klicky-probe.cfg]
[gcode_macro G32]
gcode:
BED_MESH_CLEAR
STATUS_HOMING
G28
STATUS_LEVELING
QUAD_GANTRY_LEVEL
STATUS_HOMING
G28
STATUS_READY
## 300 build
G0 X150 Y250 Z30 F7200
[gcode_macro PRINT_START]
# Use PRINT_START for the slicer starting script - please customise for your slicer of choice
gcode:
{% set bed_temp = params.BED|default(110)|float %}
{% set hotend_temp = params.HOTEND|default(250)|float %}
{% set chamber_temp = params.CHAMBER|default(0)|float %}
{% set nevermore_speed = params.nevermore_speed|default(0.72)|float %}
M140 S{bed_temp} ; set bed temp
M104 S{hotend_temp-50.0} ; set hotend temp
STATUS_HOMING
G28 ; home all
;SET_FAN_SPEED FAN=nevermore SPEED={nevermore_speed}
SET_FAN_SPEED FAN=nevermore SPEED=0.5
G1 X150 Y250 Z20 F9000 ; move nozzle away from bed
M117 Heating BED and Extruder
STATUS_HEATING
M190 S{bed_temp} ; wait for bed temp
;M109 S{hotend_temp-50.0} ; set & wait for hotend temp
M117 Waiting for chamber temp
TEMPERATURE_WAIT SENSOR="temperature_sensor chamber" MINIMUM={chamber_temp} ; wait for chamber temp
;[MAXIMUM=<target>]:
; purge and clean nozzle
M117 Cleaning Nozzle
STATUS_CLEANING
clean_nozzle ; First Time Clean The Nozzle
; Attach probe and keep it locked on through these operations
;ATTACH_PROBE_LOCK
M117 QGL
STATUS_LEVELING
QUAD_GANTRY_LEVEL
G28 Z ; Rehome Z after QGL since Z offsets are now messed up
G1 X150 Y250 Z20 F9000 ; Move The Nozzle To The Heating Position
M117 Heating Extruder
STATUS_HEATING
M109 S{hotend_temp} ; Wait For The Nozzle Temp
M117 Cleaning Nozzle
STATUS_CLEANING
clean_nozzle ; Second Time Clean The Nozzle
;BED_MESH_PROFILE LOAD=default ; Load bed mesh
M117 Calibrating Z
STATUS_CALIBRATING_Z
# G28 Z
CALIBRATE_Z
M117 Bed Mesh Calibrate
STATUS_MESHING
# DISABLED # BED_MESH_CALIBRATE
;BED_MESH_PROFILE LOAD=default ; Load bed mesh
; Unlock probe
;DOCK_PROBE_UNLOCK
SET_FAN_SPEED FAN=nevermore SPEED=0.8
; Adjust Z offset if needed
; SET_GCODE_OFFSET Z_ADJUST={params.Z_ADJUST|default(0.0)|float} MOVE=1
G91 ; relative positioning
M117 Printing
STATUS_PRINTING
PRIME_LINE XPAD=2 YPAD=2 LENGTH=240 PRINT_SPEED=60 TRAVEL_SPEED=200 PURGE=8 RETRACT=0.3 EXTRUSION_MULTIPLIER=1.25 PRINT_HANDLE=1 HANDLE_FAN=35
;M117 Purge Line
;G1 X10 Y5 Z1 F9000 ; go outside print area
;G92 E0.0
;G1 X60.0 E9.0 F1000.0 ; intro line
;G1 X100.0 E12.5 F1000.0 ; intro line
;G92 E0.0
[gcode_macro PRINT_END]
# Use PRINT_END for the slicer ending script - please customise for your slicer of choice
gcode:
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
M107 ; turn off fan
G1 Z20 F3000 ; move nozzle up 2mm
G90 ; absolute positioning
G0 X125 Y250 F3600 ; park nozzle at rear
BED_MESH_CLEAR
SET_FAN_SPEED FAN=nevermore SPEED=0.0
[gcode_macro LOAD_FILAMENT]
gcode:
G1 X150 Y250 Z90 F9000 ; Move The Nozzle To The Heating Position
M117 Heating Extruder
STATUS_HEATING
M109 S250 ; wait for hotend temp to 250
M83 ; set extruder to relative
G1 E30 F300 ; load
G1 E15 F150 ; prime nozzle with filament
M82 ; set extruder to absolute
[gcode_macro UNLOAD_FILAMENT]
gcode:
M83 ; set extruder to relative
G1 E10 F300 ; extrude a little to soften tip
G1 E-40 F1800 ; retract some, but not too much or it will jam
M82 ; set extruder to absolute
## Common Temperature Sensors
## "EPCOS 100K B57560G104F"
## "ATC Semitec 104GT-2"
## "NTC 100K beta 3950"
## "Honeywell 100K 135-104LAG-J01"
## "NTC 100K MGB18-104F39050L32" (Keenovo Heater Pad)
## "AD595"
## "PT100 INA826"
## "PT1000"
# [temperature_sensor my_sensor]
# sensor_type: ATC Semitec 104GT-2
# sensor_pin: PC1
[include fluidd.cfg]
#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [extruder]
#*# control = pid
#*# pid_kp = 29.446
#*# pid_ki = 3.218
#*# pid_kd = 67.359
#*#
#*# [heater_bed]
#*# control = pid
#*# pid_kp = 36.585
#*# pid_ki = 1.167
#*# pid_kd = 286.733
#*#
#*# [stepper_z]
#*# position_endstop = 2.000
#*#
#*# [bed_mesh default]
#*# version = 1
#*# points =
#*# -0.002500, -0.037500, 0.002500, 0.017500, 0.010000
#*# 0.015000, -0.005000, -0.010000, 0.015000, 0.015000
#*# -0.002500, -0.022500, 0.000000, 0.005000, 0.002500
#*# 0.030000, -0.002500, 0.007500, 0.027500, 0.020000
#*# 0.040000, -0.000000, -0.002500, 0.037500, 0.050000
#*# tension = 0.2
#*# min_x = 50.0
#*# algo = bicubic
#*# y_count = 5
#*# mesh_y_pps = 2
#*# min_y = 50.0
#*# x_count = 5
#*# max_y = 250.0
#*# mesh_x_pps = 2
#*# max_x = 250.0
#*#
#*# [probe]