Skip to content

Instantly share code, notes, and snippets.

@ciuncan
Created June 11, 2022 19:58
Show Gist options
  • Save ciuncan/0d4289cd4aa81568d72c8e61a9dda4da to your computer and use it in GitHub Desktop.
Save ciuncan/0d4289cd4aa81568d72c8e61a9dda4da to your computer and use it in GitHub Desktop.
# This file contains pin mappings for the stock 2020 Creality Ender 3
# V2. To use this config, during "make menuconfig" select the
# STM32F103 with a "28KiB bootloader" and serial (on USART1 PA10/PA9)
# communication.
# If you prefer a direct serial connection, in "make menuconfig"
# select "Enable extra low-level configuration options" and select
# serial (on USART3 PB11/PB10), which is broken out on the 10 pin IDC
# cable used for the LCD module as follows:
# 3: Tx, 4: Rx, 9: GND, 10: VCC
# Flash this firmware by copying "out/klipper.bin" to a SD card and
# turning on the printer with the card inserted. The firmware
# filename must end in ".bin" and must not match the last filename
# that was flashed.
# See docs/Config_Reference.md for a description of parameters.
# https://www.mironv.com/2020/12/23/ender3v2-bltouch-klipper/
[bltouch]
probe_with_touch_mode: True
sensor_pin: ^PB1
control_pin: PB0
x_offset: 0
y_offset: 24
z_offset = 4.070
# #define NOZZLE_TO_PROBE_OFFSET { 0, 24, -4.7 }
[safe_z_home]
home_xy_position: 100, 100 # Change coordinates to the center of your print bed
speed: 50
z_hop: 10 # Move up 10mm
z_hop_speed: 5
[bed_mesh]
speed: 120
horizontal_move_z: 5
mesh_min: 55, 49 # 15 + 40 + 0, 15 + 10 + 24
mesh_max: 225, 225
probe_count: 5,3
algorithm: bicubic
fade_start: 1
fade_end: 10
fade_target: 0
[screws_tilt_adjust]
screw1: 70.5,37.5
screw1_name: front left screw
screw2: 240,37.5
screw2_name: front right screw
screw3: 240,207.5
screw3_name: rear right screw
screw4: 70.5,207.5
screw4_name: rear left screw
horizontal_move_z: 10
speed: 50
screw_thread: CW-M4
[virtual_sdcard]
path: ~/gcode_files
[display_status]
[pause_resume]
[stepper_x]
step_pin: PC2
dir_pin: PB9
enable_pin: !PC3
microsteps: 16
rotation_distance: 40
endstop_pin: ^PA5
position_endstop: 0
position_min: 0
position_max: 235
homing_speed: 50
[stepper_y]
step_pin: PB8
dir_pin: PB7
enable_pin: !PC3
microsteps: 16
rotation_distance: 40
endstop_pin: ^PA6
position_endstop: 0
position_min: 0
position_max: 231
homing_speed: 50
[stepper_z]
step_pin: PB6
dir_pin: !PB5
enable_pin: !PC3
microsteps: 16
rotation_distance: 8
# endstop_pin: ^PA7
# position_endstop: 0.0
position_min: -5
position_max: 245
endstop_pin: probe:z_virtual_endstop
[extruder]
# max_extrude_only_distance: 100.0
# step_pin: PB4
# dir_pin: PB3
# enable_pin: !PC3
microsteps: 16
# rotation_distance: 34.406
nozzle_diameter: 0.400
filament_diameter: 1.750
heater_pin: PA1
# sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC5
control: pid
# tuned for stock hardware with 200 degree Celsius target
# pid_Kp: 21.527
# pid_Ki: 1.063
# pid_Kd: 108.982
# min_temp: 0
# max_temp: 250
# hemera params: https://github.com/Rat-Rig/v-core-3-klipper-config/blob/master/hemera.cfg
# rotation_distance: 7.82
# rotation_distance = <full_steps_per_rotation> * <microsteps> / <steps_per_mm>
# 200 * 16 / 395.207
rotation_distance: 7.82
full_steps_per_rotation: 200
max_extrude_only_velocity: 2000
sensor_type: ATC Semitec 104GT-2
# calculated PID:
min_temp: 5
max_temp: 285
pid_Kp: 26.09
pid_Ki: 2.08
pid_Kd: 81.92
step_pin: PB3
dir_pin: PB4
enable_pin: !PC3
min_extrude_temp: 5
#
# step_pin: PB4
# dir_pin: PB3
#
# step_pin: PB4
# dir_pin: !PB3
#
# step_pin: !PB4
# dir_pin: PB3
#
# step_pin: !PB4
# dir_pin: !PB3
#
# step_pin: PB3
# dir_pin: PB4
#
# step_pin: PB3
# dir_pin: !PB4
#
# step_pin: !PB3
# dir_pin: PB4
#
# step_pin: !PB3
# dir_pin: !PB4
# [firmware_retraction]
# retract_length: 0.8
# retract_speed: 60
# unretract_extra_length: 0
# unretract_speed: 60
[heater_bed]
heater_pin: PA2
sensor_type: EPCOS 100K B57560G104F
sensor_pin: PC4
control: pid
# tuned for stock hardware with 50 degree Celsius target
pid_Kp: 54.027
pid_Ki: 0.770
pid_Kd: 948.182
min_temp: 0
max_temp: 130
[fan]
pin: PA0
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
restart_method: command
[printer]
kinematics: cartesian
max_velocity: 300
max_accel: 3000
max_z_velocity: 5
max_z_accel: 100
[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 G29]
gcode:
G28
BED_MESH_CALIBRATE
G0 X0 Y0 Z10 F6000
BED_MESH_PROFILE save=default
SAVE_CONFIG
#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [bed_mesh default]
#*# version = 1
#*# points =
#*# 0.682500, 0.355000, 0.052500, -0.295000, -0.630000
#*# 0.165000, -0.012500, -0.175000, -0.372500, -0.552500
#*# -0.215000, -0.265000, -0.245000, -0.277500, -0.317500
#*# tension = 0.2
#*# min_x = 55.0
#*# algo = bicubic
#*# y_count = 3
#*# mesh_y_pps = 2
#*# min_y = 49.0
#*# x_count = 5
#*# max_y = 215.0
#*# mesh_x_pps = 2
#*# max_x = 215.0
#*#
#*# [bltouch]
#*# z_offset = 4.070
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment