Created
January 25, 2026 17:58
-
-
Save JoelLarson/0e9159a49918282885f4d4246b00ebe4 to your computer and use it in GitHub Desktop.
Ender 3 V2 Personal Klipper Printer Config
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| # This file contains pin mappings for the modified 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. | |
| [stepper_x] | |
| step_pin: PC2 | |
| dir_pin: PB9 | |
| enable_pin: !PC3 | |
| microsteps: 16 | |
| rotation_distance: 40 | |
| endstop_pin: ^PA5 | |
| position_endstop: 0 | |
| position_max: 250 | |
| homing_speed: 100 | |
| [stepper_y] | |
| step_pin: PB8 | |
| dir_pin: PB7 | |
| enable_pin: !PC3 | |
| microsteps: 16 | |
| rotation_distance: 40 | |
| endstop_pin: ^PA6 | |
| position_endstop: 0 | |
| position_max: 235 | |
| 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: 250 | |
| position_min: -3 | |
| [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 | |
| [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 | |
| [bltouch] | |
| sensor_pin: ^PB1 | |
| control_pin: PB0 | |
| pin_move_time: 0.680 | |
| pin_up_reports_not_triggered: True | |
| pin_up_touch_mode_reports_triggered: True | |
| probe_with_touch_mode: True | |
| stow_on_each_sample: False | |
| x_offset: 0 | |
| y_offset: 0 | |
| z_offset: 0 | |
| [safe_z_home] | |
| home_xy_position: 117, 117 | |
| speed: 50 | |
| z_hop: 10 | |
| z_hop_speed: 5 | |
| [bed_screws] | |
| screw1: 35,195 | |
| screw1_name: rear left screw | |
| screw2: 35,35 | |
| screw2_name: front left screw | |
| screw3: 195,35 | |
| screw3_name: front right screw | |
| screw4: 195,195 | |
| screw4_name: rear right screw | |
| [gcode_macro BED_SCREWS] | |
| variable_rear_left: 75.50, 207.00 | |
| variable_front_left: 75.50, 34.00 | |
| variable_front_right: 245.50, 34.00 | |
| variable_rear_right: 245.50, 207.00 | |
| gcode: | |
| # Intentionally empty - Used to keep macro variables close | |
| [screws_tilt_adjust] | |
| screw1: 75.50, 207.00 | |
| screw1_name: rear left screw | |
| screw2: 75.50, 34.00 | |
| screw2_name: front left screw | |
| screw3: 245.50, 34.00 | |
| screw3_name: front right screw | |
| screw4: 245.50, 207.00 | |
| screw4_name: rear right screw | |
| speed: 50 | |
| horizontal_move_z: 10 | |
| screw_thread: CW-M4 | |
| [fan] | |
| pin: PA0 | |
| [mcu] | |
| serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0 | |
| restart_method: command | |
| [temperature_sensor raspberry_pi] | |
| sensor_type: temperature_host | |
| min_temp: 10 | |
| max_temp: 90 | |
| [temperature_sensor mcu_temp] | |
| sensor_type: temperature_mcu | |
| min_temp: 0 | |
| max_temp: 100 | |
| [printer] | |
| kinematics: cartesian | |
| max_velocity: 300 | |
| max_accel: 3000 | |
| max_z_velocity: 5 | |
| max_z_accel: 150 | |
| [virtual_sdcard] | |
| path: /var/lib/klipper/gcodes | |
| [respond] | |
| default_type: command | |
| [pause_resume] | |
| [display_status] | |
| [gcode_macro PAUSE] | |
| description: Pause the current print | |
| rename_existing: PAUSE_BASE | |
| gcode: | |
| PAUSE_BASE | |
| [gcode_macro RESUME] | |
| description: Resume the current print | |
| rename_existing: RESUME_BASE | |
| gcode: | |
| RESUME_BASE | |
| [gcode_macro CANCEL_PRINT] | |
| description: Cancel the current print | |
| rename_existing: CANCEL_PRINT_BASE | |
| gcode: | |
| CANCEL_PRINT_BASE | |
| [gcode_macro PROBE_AT] | |
| gcode: | |
| {% set x = params.X|float %} | |
| {% set y = params.Y|float %} | |
| G1 X{x} Y{y} Z10 F6000 | |
| PROBE | |
| [gcode_macro PROBE_SCREW] | |
| description: Probe at a named screw position. Usage: PROBE_SCREW NAME=rear_left [ZHOP=10] [F=6000] [MODE=PROBE] | |
| gcode: | |
| {% if printer.toolhead.homed_axes != "xyz" %} | |
| {action_raise_error("Home first (G28) before PROBE_SCREW")} | |
| {% endif %} | |
| {% set name = params.NAME|default("")|lower %} | |
| {% set zhop = params.ZHOP|default(10)|float %} | |
| {% set f = params.F|default(6000)|int %} | |
| {% set mode = params.MODE|default("probe")|lower %} | |
| {% if name not in ["front_left", "front_right", "rear_left", "rear_right"] %} | |
| {action_raise_error("Invalid NAME. Use one of: front_left, front_right, rear_left, rear_right")} | |
| {% endif %} | |
| {% if mode not in ["probe", "accuracy"] %} | |
| {action_raise_error("Invalid MODE. Use: probe or accuracy")} | |
| {% endif %} | |
| {% set coord = printer["gcode_macro BED_SCREWS"][name] %} | |
| {% set x = coord[0]|float %} | |
| {% set y = coord[1]|float %} | |
| G1 X{x} Y{y} Z{zhop} F{f} | |
| {% if mode == "probe" %} | |
| PROBE | |
| {% else %} | |
| PROBE_ACCURACY SAMPLES=10 | |
| {% endif %} | |
| G91 | |
| G1 Z15 F600 | |
| G90 |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment