Skip to content

Instantly share code, notes, and snippets.

@ChadDevOps
Created March 1, 2021 22:45
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ChadDevOps/81d4d7dda0dff52badeb414d6678f29f to your computer and use it in GitHub Desktop.
Save ChadDevOps/81d4d7dda0dff52badeb414d6678f29f to your computer and use it in GitHub Desktop.
Ender 3 Max Printer Config
# This file contains pin mappings for the stock 2020 Creality Ender 3
# MAX. To use this config, during "make menuconfig" select the
# STM32F103 with a "28KiB bootloader" and with "Use USB for
# communication" disabled.
# Because this printer has factory wiring, mounts, and firmware for
# a BLTouch, but does not ship with one at this time, default values
# for the sensor have been specified, but disabled, in anticipation of
# future revisions or user modification. User should take care to
# customize the offsets, particularly z-offset, for their specific unit.
# If you prefer a direct serial connection, in "make menuconfig"
# select "Enable extra low-level configuration options" and select the
# USART3 serial port, 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.
# Tuning PIDs
# It's really simple to tune your extruder and bed PIDs. Just run
# PID_CALIBRATE HEATER=extruder TARGET=200
# and
# PID_CALIBRATE HEATER=heater_bed TARGET=60.
# Don't forget to SAVE_CONFIG after each run!
[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
# Run ls /dev/serial/by-id/* for micro-controller name
# It may change after flashing
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
restart_method: command
[printer]
kinematics: cartesian
max_velocity: 300
#max_accel: 1500
#max_accel_to_decel: 500
max_z_velocity: 5
max_z_accel: 100
square_corner_velocity: 2
max_accel: 2000 #3500
[display]
lcd_type: st7920
cs_pin: PB12
sclk_pin: PB13
sid_pin: PB15
encoder_pins: ^PD2, ^PD3
click_pin: ^!PC0
[stepper_x]
step_pin: PC2
dir_pin: PB9
enable_pin: !PC3
microsteps: 16
rotation_distance: 40
endstop_pin: ^PA5
position_endstop: 0
position_max: 300
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_max: 300
homing_speed: 50
[stepper_z]
step_pin: PB6
dir_pin: !PB5
enable_pin: !PC3
microsteps: 16
rotation_distance: 8
#position_endstop: 0.0 # disable to use BLTouch
#endstop_pin: ^PA7 # disable to use BLTouch
position_max: 340
endstop_pin: probe:z_virtual_endstop # enable to use BLTouch
position_min: -5 # enable to use BLTouch
######################################
### bltouch
######################################
[safe_z_home] # enable for BLTouch
home_xy_position: 0, 0
speed: 100
z_hop: 10
z_hop_speed: 5
[bltouch] # enable for BLTouch
sensor_pin: ^PB1
control_pin: PB0
pin_up_touch_mode_reports_triggered: True # was true
probe_with_touch_mode: True
x_offset: 50
y_offset: -5
z_offset: 2.570 #1.9 with crealty hot end.
samples: 3
sample_retract_dist: 10
lift_speed: 40
samples_tolerance_retries: 3
speed: 10
samples: 1
stow_on_each_sample: false
[bed_mesh] # enable for BLTouch
speed: 300
mesh_min: 50, 10
mesh_max: 298, 290
algorithm: bicubic
probe_count: 10,10
horizontal_move_z: 8
bicubic_tension: 0.01
# [firmware_retraction]
# retract_length: 6.5
# retract_speed: 60
# unretract_extra_length: 0
# unretract_speed: 60
[gcode_macro G29]
gcode:
BED_MESH_CALIBRATE
G1 X0 Y0 Z5 F4000
######################################
### extruder
######################################
[gcode_macro M900]
default_parameter_K: 0
gcode:
SET_PRESSURE_ADVANCE ADVANCE={K}
[extruder]
max_extrude_only_distance: 150.0
step_pin: PB4
dir_pin: PB3
enable_pin: !PC3
microsteps: 16
# measure 70
# G91
# G1 E50 F60
# measure distance to 70mm mark = difference
# rotation_distance * (70 - difference) / 50
rotation_distance: 36.99634 # stainless steel 40 teeth https://github.com/KevinOConnor/klipper/blob/master/docs/Rotation_Distance.md
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: 260
pressure_advance: 0 # 1.06 https://github.com/KevinOConnor/klipper/blob/master/docs/Pressure_Advance.md
max_extrude_cross_section: 75
######################################
### input_shaper
######################################
# pi@octopi:~/git/klipper/scripts $ ./calibrate_shaper.py /tmp/resonances_x_*.csv -o /tmp/shaper_calibrate_x.png
# pi@octopi:~/git/klipper/scripts $ ./calibrate_shaper.py /tmp/resonances_y_*.csv -o /tmp/shaper_calibrate_y.png
# [input_shaper]
# shaper_freq_x: 98.2
# shaper_type_x: 2hump_ei
# shaper_freq_y: 45.4
# shaper_type_y: 2hump_ei
# [mcu rpi]
# serial: /tmp/klipper_host_mcu
# [adxl345]
# cs_pin: rpi:None
# [resonance_tester]
# accel_chip: adxl345
# probe_points:
# 150,150,20 # an example
######################################
### RUN OUT SENSOR
######################################
[pause_resume]
recover_velocity: 50 #allows pause resume functionality.
# [filament_switch_sensor e0_sensor]
# switch_pin: PA4
[filament_switch_sensor filament_sensor]
switch_pin:PA4
pause_on_runout: false #pause handled by macro
runout_gcode:
M600 #calls a macro with the name M600 (so it can be called by slicers too)
insert_gcode:
M117 Filament inserted #just a throwaway GCode command to have something in this space. You can add your own.
# A list of G-Code commands to execute after a filament insert is
# detected. See docs/Command_Templates.md for G-Code format. The
# default is not to run any G-Code commands, which disables insert
# detection.
event_delay: 3.0
pause_delay: 0.0001
#Below Macro with credit to Hywel Martin #https://github.com/KevinOConnor/klipper/issues/1354
[gcode_macro PARK_MACRO]
default_parameter_X: 0
default_parameter_Y: 0
default_parameter_Z: 30
gcode:
M117 PARKING..
G91
G1 E-3.14 F1500
G1 Z{Z}
G90
G1 X{X} Y{Y} F3000
[gcode_macro UNLOAD]
gcode:
G91
G1 E5.0 F1200
G1 E3.0 F1600
G1 E-13.14 F7000
G1 E-100 F3000 #This is a partial unload for the E5, but you need to adjust the default setting for max extrusion from 50
G90
[gcode_macro M600]
gcode:
PAUSE_MACRO
UNLOAD
[gcode_macro PAUSE_MACRO]
gcode:
PAUSE
PARK_MACRO
SET_IDLE_TIMEOUT TIMEOUT=7200
[gcode_macro PURGE]
gcode:
M117 PURGING..
G91
G1 E45.0 F250
G90
[gcode_macro LOAD_FILAMENT]
gcode:
M117 LOADING...
G91
G1 E25.0 F1000
G1 E100 F2500
G4 P900
G1 E45.0 F250
G90
[gcode_macro RESUME_MACRO]
gcode:
M117 RESUMING...
RESUME
#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [bed_mesh default]
#*# version = 1
#*# points =
#*# -0.042500, -0.050000, -0.020000, 0.005000, -0.010000, -0.027500, -0.037500, -0.010000, -0.027500, -0.037500
#*# -0.017500, -0.025000, -0.002500, -0.000000, -0.007500, -0.027500, -0.047500, -0.022500, -0.057500, -0.105000
#*# -0.077500, -0.077500, -0.030000, -0.020000, -0.027500, -0.030000, -0.047500, -0.017500, -0.035000, -0.060000
#*# -0.042500, -0.035000, -0.007500, -0.005000, -0.020000, -0.025000, -0.052500, -0.030000, -0.055000, -0.105000
#*# -0.060000, -0.047500, -0.005000, -0.002500, -0.002500, -0.007500, -0.040000, -0.012500, -0.040000, -0.057500
#*# -0.030000, -0.042500, -0.007500, -0.002500, -0.010000, -0.032500, -0.062500, -0.045000, -0.085000, -0.140000
#*# -0.067500, -0.070000, -0.042500, -0.025000, -0.030000, -0.045000, -0.075000, -0.047500, -0.077500, -0.117500
#*# -0.085000, -0.077500, -0.040000, -0.025000, -0.027500, -0.040000, -0.045000, -0.017500, -0.042500, -0.092500
#*# -0.045000, -0.047500, -0.007500, 0.002500, -0.012500, -0.010000, -0.040000, -0.017500, -0.045000, -0.082500
#*# -0.042500, -0.042500, -0.010000, 0.012500, 0.010000, 0.007500, -0.000000, 0.022500, 0.005000, -0.032500
#*# tension = 0.01
#*# min_x = 50.0
#*# algo = bicubic
#*# y_count = 10
#*# mesh_y_pps = 2
#*# min_y = 10.0
#*# x_count = 10
#*# max_y = 289.99
#*# mesh_x_pps = 2
#*# max_x = 297.95
#*#
#*# [extruder]
#*# control = pid
#*# pid_kp = 33.751
#*# pid_ki = 3.082
#*# pid_kd = 92.392
#*#
#*# [heater_bed]
#*# control = pid
#*# pid_kp = 72.263
#*# pid_ki = 1.153
#*# pid_kd = 1132.725
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment