Current Config | 20240227
##################Creality Ender 3 S1 Pro Klipper Config - 3DPrintBeginner###############
######Full guide: https://3dprintbeginner.com/how-to-install-klipper-on-ender-3-s1/######
[include mainsail.cfg]
[stepper_x]
step_pin: PC2
dir_pin: PB9
enable_pin: !PC3
microsteps: 16
rotation_distance: 40
endstop_pin: !PA5
position_endstop: -5
position_min: -5
position_max: 255
homing_speed: 50
[stepper_y]
step_pin: PB8
dir_pin: PB7
enable_pin: !PC3
microsteps: 16
rotation_distance: 40
endstop_pin: !PA6
position_endstop: -2
position_min: -2
position_max: 241
homing_speed: 50
[stepper_z]
step_pin: PB6
dir_pin: !PB5
enable_pin: !PC3
microsteps: 16
rotation_distance: 8
endstop_pin: probe:z_virtual_endstop
position_max: 270
position_min: -5
[extruder]
max_extrude_only_distance: 100.0
step_pin: PB4
dir_pin: PB3
enable_pin: !PC3
microsteps: 16
rotation_distance: 7.581
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA1
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC5
#control: pid
#pid_Kp: 21.761
#pid_Ki: 1.261
#pid_Kd: 93.844
min_temp: 0
max_temp: 300
pressure_advance = 0.07
[filament_switch_sensor RunoutSensor]
pause_on_runout: False
runout_gcode: PAUSE
insert_gcode: RESUME
switch_pin: !PC15
[heater_bed]
heater_pin: PA7
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC4
#control: pid
#pid_Kp: 68.385
#pid_Ki: 1.093
#pid_Kd: 1069.370
min_temp: 0
max_temp: 130
[heater_fan hotend_fan]
pin: PC0
heater: extruder
heater_temp: 50.0
fan_speed: 0.6
[fan]
pin: PA0
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
restart_method: command
[printer]
kinematics: cartesian
max_velocity: 500
max_accel: 3000
max_accel_to_decel: 3000
max_z_velocity: 5
square_corner_velocity: 5.0
max_z_accel: 100
[bltouch]
sensor_pin: ^PC14
control_pin: PC13
x_offset: -48
y_offset: 0
#z_offset: 2.900
speed:10
samples:1
samples_result:average
probe_with_touch_mode: true
stow_on_each_sample: false
[safe_z_home]
home_xy_position: 165, 116
speed: 100
z_hop: 10
z_hop_speed: 5
[bed_mesh]
speed: 120
mesh_min: 20, 20
# Make sure X,Y for mesh_max below meets these conditions (X+(bltouch+x_offset) < bed X) and (Y+(bltouch+y_offset) < Bed Y)
mesh_max: 200, 200
probe_count: 6,5
mesh_pps: 2,2
algorithm: bicubic
bicubic_tension: 0.2
fade_start: 1
fade_end: 10
fade_target: 0
[bed_screws]
screw1: 29, 201
screw1_name: back_left
screw2: 204, 201
screw2_name: back_right
screw3: 204, 32
screw3_name: front_right
screw4: 28, 32
screw4_name: front_left
[screws_tilt_adjust]
screw1: 76, 200
screw1_name: back left
screw2: 252, 200
screw2_name: back right
screw3: 251, 31
screw3_name: front right
screw4: 76, 31
screw4_name: front left
horizontal_move_z: 5
speed: 50
screw_thread: CW-M3
[temperature_sensor Raspberry_Pi]
sensor_type: temperature_host
min_temp: 0
max_temp: 100
[virtual_sdcard]
path: ~/printer_data/gcodes
on_error_gcode: CANCEL_PRINT
[display_status]
[pause_resume]
[gcode_macro START_PRINT]
gcode:
{% set BED_TEMP = params.BED_TEMP|default(60)|float %}
{% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(190)|float %}
BED_MESH_PROFILE LOAD=default ; Load existing mesh
G90 ; use absolute coordinates
M83 ; extruder relative mode
G92 E0 ; Reset Extruder
M140 S{BED_TEMP} ; Heat the bed for probing and move on to next command
M104 S{EXTRUDER_TEMP} ; Heat the nozzle to printing temperature and move on to next command
G28 ; Home the printer
G1 Z10.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
G1 X0 Y0 ; Move to front left of bed in preperation for purge line
M190 S{BED_TEMP} ; Heat the bed for probing and wait
M109 S{EXTRUDER_TEMP} ; Heat the nozzle to printing temperature and wait
#Purge line
G1 X0.1 Y20 Z0.3 F5000.0 ; Move to start position
G1 X0.1 Y200.0 Z0.3 F1500.0 E15 ; Draw the first line
G1 X0.4 Y200.0 Z0.3 F5000.0 ; Move to side a little
G1 X0.4 Y20 Z0.3 F1500.0 E30 ; Draw the second line
G92 E0 ; Reset Extruder
G1 Z2.0 F3000 ; Move Z Axis up little to prevent scratching of Heat Bed
G1 X5 Y20 Z0.3 F5000.0 ; Move over to prevent blob squish
# If you are using Z-Tilt:
#Z_TILT_ADJUST
# If you are generating a new bed mesh:
#BED_MESH_CALIBRATE ADAPTIVE=1
## NOTE: The adaptive meshing feature requires exclude_object ##
## and may require 'Label Objects' to be enabled in the slicer ##
## To mesh without it just use BED_MESH_CALIBRATE ##
# Enable exclude_object for adaptive meshing
[exclude_object]
[gcode_macro END_PRINT]
gcode:
G91 ; Relative positioning - Move nozzle away from print while retracting
G1 E-2 F2700 ;Retract a bit
G1 E-2 Z0.2 F2400 ;Retract and raise Z
G1 X5 Y5 F3000 ;Wipe out
G1 Z10 ;Raise Z more
G90 ;Absolute positioning
G1 X0 Y230 ; Present print
M140 S0 ; Turn off heatbed
M104 S0 ; Turn off hotend
M106 S0 ; Turn off fan
M84 X Y E ; Disable all steppers but Z
[gcode_macro PAUSE]
description: Pause the actual running print
rename_existing: PAUSE_BASE
# change this if you need more or less extrusion
variable_extrude: 1.0
gcode:
##### read E from pause macro #####
{% set E = printer["gcode_macro PAUSE"].extrude|float %}
##### set park positon for x and y #####
# default is your max posion from your printer.cfg
{% set x_park = printer.toolhead.axis_maximum.x|float - 5.0 %}
{% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %}
##### calculate save lift position #####
{% set max_z = printer.toolhead.axis_maximum.z|float %}
{% set act_z = printer.toolhead.position.z|float %}
{% if act_z < (max_z - 2.0) %}
{% set z_safe = 2.0 %}
{% else %}
{% set z_safe = max_z - act_z %}
{% endif %}
##### end of definitions #####
PAUSE_BASE
G91
{% if printer.extruder.can_extrude|lower == 'true' %}
G1 E-{E} F2100
{% else %}
{action_respond_info("Extruder not hot enough")}
{% endif %}
{% if "xyz" in printer.toolhead.homed_axes %}
G1 Z{z_safe} F900
G90
G1 X{x_park} Y{y_park} F6000
{% else %}
{action_respond_info("Printer not homed")}
{% endif %}
[gcode_macro RESUME]
description: Resume the actual running print
rename_existing: RESUME_BASE
gcode:
##### read E from pause macro #####
{% set E = printer["gcode_macro PAUSE"].extrude|float %}
#### get VELOCITY parameter if specified ####
{% if 'VELOCITY' in params|upper %}
{% set get_params = ('VELOCITY=' + params.VELOCITY) %}
{%else %}
{% set get_params = "" %}
{% endif %}
##### end of definitions #####
{% if printer.extruder.can_extrude|lower == 'true' %}
G91
G1 E{E} F2100
{% else %}
{action_respond_info("Extruder not hot enough")}
{% endif %}
RESUME_BASE {get_params}
[gcode_macro CANCEL_PRINT]
description: Cancel the actual running print
rename_existing: CANCEL_PRINT_BASE
gcode:
TURN_OFF_HEATERS
CANCEL_PRINT_BASE
#[gcode_macro PURGE]
#description: Extrudes filament, used to clean out previous filament
#gcode:
# {% if printer.extruder.temperature < 180 %}
# {action_respond_info("Extruder temperature too low")}
# {% else %}
# {% set PURGE_AMOUNT = params.PURGE_AMOUNT|default(40)|float %}
# SAVE_GCODE_STATE NAME=PURGE_state
# G91 # relative coords
# G1 E{PURGE_AMOUNT} F{ 5 * 60 } # purge
# RESTORE_GCODE_STATE NAME=PURGE_state
# {% endif %}
#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [bltouch]
#*# z_offset = 2.575
#*#
#*# [extruder]
#*# control = pid
#*# pid_kp = 19.822
#*# pid_ki = 0.951
#*# pid_kd = 103.322
#*#
#*# [heater_bed]
#*# control = pid
#*# pid_kp = 66.721
#*# pid_ki = 0.969
#*# pid_kd = 1148.437
#*#
#*# [bed_mesh default]
#*# version = 1
#*# points =
#*# 0.242500, 0.105000, 0.087500, 0.095000, 0.147500, 0.192500
#*# 0.090000, -0.015000, -0.037500, -0.037500, 0.007500, 0.072500
#*# 0.127500, 0.015000, -0.012500, 0.010000, 0.062500, 0.125000
#*# 0.165000, 0.050000, 0.030000, 0.017500, 0.097500, 0.147500
#*# 0.220000, 0.107500, 0.075000, 0.070000, 0.122500, 0.180000
#*# x_count = 6
#*# y_count = 5
#*# mesh_x_pps = 2
#*# mesh_y_pps = 2
#*# algo = bicubic
#*# tension = 0.2
#*# min_x = 20.0
#*# max_x = 200.0
#*# min_y = 20.0
#*# max_y = 200.0
For the life of me, I cannot get prints to be centered on the bed after installing Klipper. First of all, here is my printer.cfg.
-
I followed the steps outlined here to set position_min, position_max, and position_endstop. After this, 0,0 is correct and is in the very front left corner of the bed.
-
In Prusa Slicer, I updated the bed shape settings in the printer settings. My bed shape size is 233,226 and the origin is 0,0.
-
I am using this fan duct with this hotend cooling duct, which offsets the probe. I followed these steps to set the x_offset and the y_offset to account for the new probe location. My x_offset = -48 and my y_offset = 0.
-
I followed these steps to set the home_xy_position in [safe_z_home]. My home_xy_position = 165, 116.
I'm at a loss at to what to do next. I have tried everything I can think of. The only information I can find from my searching is related to setting the position_min, position_max, and position_endstop, which I have already done.
No comments to display
No comments to display