## *** THINGS TO CHANGE/CHECK: *** ## MCU paths [mcu] section ## Thermistor types [extruder] and [heater_bed] sections - See https://www.klipper3d.org/Config_Reference.html#common-thermistors for common thermistor types ## Z Endstop Switch location [homing_override] section ## Z Endstop Switch offset for Z0 [stepper_z] section ## PID tune [extruder] and [heater_bed] sections ## Fine tune E steps [extruder] section ##========================== Pin Definitions ======================== ## Source: https://github.com/bigtreetech/BIGTREETECH-SKR-V1.3/blob/master/BTT%20SKR%20V1.4/Hardware/BTT%20SKR%20V1.4PIN.pdf ## https://github.com/bigtreetech/BTT-Expansion-module/blob/master/BTT%20EXP-MOT/BTT%20EXP-MOT%20V1.0-SCH.pdf ## X_STEP_PIN 2.2 ## X_DIR_PIN 2.6 ## X_ENABLE_PIN 2.1 ## X_STOP_PIN 1.29 ## E0_DET_PIN 1.26 ## X_UART_PIN 1.10 ## Y_STEP_PIN 0.19 ## Y_DIR_PIN 0.20 ## Y_ENABLE_PIN 2.8 ## Y_STOP_PIN 1.28 ## E1_DET_PIN 1.26 ## Y_UART_RX 1.9 ## Z_STEP_PIN 0.22 ## Z_DIR_PIN 2.11 ## Z_ENABLE_PIN 0.21 ## Z_STOP_PIN 1.27 ## PWR_DET_PIN 1.0 ## Z_UART 1.8 ## E0_STEP_PIN 2.13 ## E0_DIR_PIN 0.11 ## E0_ENABLE_PIN 2.12 ## E0_UART 1.4 ## E1_STEP_PIN 1.15 ## E1_DIR_PIN 1.14 ## E1_ENABLE_PIN 1.16 ## E1_UART_RX 1.1 ## HE1 2.4 ## HE0 2.7 ## BED 2.5 ## TH1 (H1 Temp) 0.23 ## TH0 (H0 Temp) 0.24 ## TB (Bed Temp) 0.25 ## FAN0 2.3 ## SERVO 2.0 ## PROBE 0.10 ## Expander ## M1_STEP_PIN 0.18 ## M1_DIR_PIN 3.25 ## M1_ENABLE_PIN 1.31 ## M1_UART 1.21 ## M2_STEP_PIN 3.26 ## M2_DIR_PIN 0.16 ## M2_ENABLE_PIN 1.23 ## M2_UART 1.19 ## M3_STEP_PIN 0.17 ## M3_DIR_PIN 0.15 ## M3_ENABLE_PIN 1.22 ## M3_UART 0.28 ##===================================================================. [virtual_sdcard] path: ~/gcode_files [pause_resume] [display_status] [mcu] ###Change to device found by "ls /dev/serial/by-id/*" with just one this MCU connected to Pi serial: /dev/serial/by-id/usb-Klipper_lpc1769_XXXXXXXXXXXXXXXXXXX [printer] kinematics: corexy max_velocity: 300 max_accel: 5000 max_z_velocity: 5 max_z_accel: 100 square_corner_velocity: 5.0 ##################################################################### # X/Y Stepper Settings #####################################################################\ ###### #X motor slot on main board (B Motor) ############### [stepper_x] ## X_STEP_PIN 2.2 ## X_DIR_PIN 2.6 ## X_ENABLE_PIN 2.1 ## X_STOP_PIN 1.29 ## X_UART_PIN 1.10 step_pin: P2.2 dir_pin: P2.6 enable_pin: !P2.1 microsteps: 16 rotation_distance: 40 full_steps_per_rotation: 400 endstop_pin: !P1.29 position_min: 0 ## Uncomment below for 250mm build #position_endstop: 250 #position_max: 250 ## Uncomment for 300mm build #position_endstop: 300 #position_max: 300 ## Uncomment for 350mm build #position_endstop: 350 #position_max: 350 ##-------------------------------------------------------------------- homing_speed: 25 #Max 100 homing_retract_dist: 5 homing_positive_dir: true [tmc2209 stepper_x] uart_pin: P1.10 run_current: 0.900 hold_current: 0.750 #stealthchop_threshold: 250 ###### #Y motor slot on main board (A Motor) ############### [stepper_y] ## Y_STEP_PIN 0.19 ## Y_DIR_PIN 0.20 ## Y_ENABLE_PIN 2.8 ## Y_STOP_PIN 1.28 ## Y_UART_RX 1.9 step_pin: P0.19 dir_pin: P0.20 enable_pin: !P2.8 microsteps: 16 rotation_distance: 40 full_steps_per_rotation: 400 endstop_pin: !P1.28 ##-------------------------------------------------------------------- ## Uncomment for 250mm build #position_endstop: 250 #position_max: 250 ## Uncomment for 300mm build #position_endstop: 300 #position_max: 300 ## Uncomment for 350mm build #position_endstop: 350 #position_max: 350 ##-------------------------------------------------------------------- homing_speed: 25 #Max 100 homing_retract_dist: 5 homing_positive_dir: true [tmc2209 stepper_y] uart_pin: P1.9 run_current: 0.900 hold_current: 0.750 ##################################################################### # Z Stepper Settings ##################################################################### ###### # Z0 Stepper - Left Front # M1 motor slot on expander board ############### [stepper_z] ## M1_STEP_PIN 0.18 ## M1_DIR_PIN 3.25 ## M1_ENABLE_PIN 1.31 ## M1_UART 1.21 step_pin: P0.18 dir_pin: !P3.25 enable_pin: !P1.31 microsteps: 16 ##T8x4 Lead Screws. One rotation moves the bed 4mm ##Change according to integrated steppers purchased rotation_distance: 4 full_steps_per_rotation: 200 endstop_pin: P1.27 # 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 ## All builds use same Max Z position_max: 250 position_max: 250 position_min: -2.5 homing_speed: 35.0 [tmc2209 stepper_z] uart_pin: P1.21 run_current: 0.650 hold_current: 0.450 stealthchop_threshold: 30 ###### #M2 motor slot on expander board (Rear Z) ############### [stepper_z1] ## M2_STEP_PIN 3.26 ## M2_DIR_PIN 0.16 ## M2_ENABLE_PIN 1.23 ## M2_UART 1.19 step_pin: P3.26 dir_pin: !P0.16 enable_pin: !P1.23 microsteps: 16 rotation_distance: 4 full_steps_per_rotation: 200 [tmc2209 stepper_z1] uart_pin: P1.19 run_current: 0.650 hold_current: 0.450 stealthchop_threshold: 30 ###### #M3 motor slot on expander board (Right Front Z) ############### [stepper_z2] ## M3_STEP_PIN 0.17 ## M3_DIR_PIN 0.15 ## M3_ENABLE_PIN 1.22 ## M3_UART 0.28 step_pin: P0.17 dir_pin: !P0.15 enable_pin: !P1.22 microsteps: 16 rotation_distance: 4 full_steps_per_rotation: 200 [tmc2209 stepper_z2] uart_pin: P0.28 run_current: 0.650 hold_current: 0.450 stealthchop_threshold: 30 ###### #E0 motor slot on main board ############### [extruder] ## E0_STEP_PIN 2.13 ## E0_DIR_PIN 0.11 ## E0_ENABLE_PIN 2.12 ## E0_UART 1.4 max_extrude_cross_section: 50 max_extrude_only_distance: 700.00 step_pin: P2.13 dir_pin: !P0.11 enable_pin: !P2.12 microsteps: 16 ## Update value below when you perform extruder calibration ## If you ask for 100mm of filament, but in reality it is 98mm: ## rotation_distance = * / 100 ## 22.6789511 is a good starting point rotation_distance: 22.6789511 #Bondtech 5mm Drive Gears ## Update Gear Ratio depending on your Extruder Type ## Use 50:10 for Stealthburner/Clockwork 2 ## Use 50:17 for Afterburner/Clockwork (BMG Gear Ratio) ## Use 80:20 for M4, M3.1 gear_ratio: 50:10 nozzle_diameter: 0.400 filament_diameter: 1.750 heater_pin: P2.7 ## Check what thermistor type you have. See https://www.klipper3d.org/Config_Reference.html#common-thermistors for common thermistor types. ## Use "Generic 3950" for NTC 100k 3950 thermistors #sensor_type: sensor_pin: P0.24 min_extrude_temp: 180 min_temp: 0 max_temp: 300 control = pid pid_kp = 26.213 pid_ki = 1.304 pid_kd = 131.721 #Set appropriate once tuning your printer pressure_advance: .05 ## Default is 0.040, leave stock pressure_advance_smooth_time: 0.040 [tmc2209 extruder] uart_pin: P1.4 run_current: 0.5 hold_current: 0.4 sense_resistor: 0.110 stealthchop_threshold: 0 ##################################################################### # Bed Heater ##################################################################### [heater_bed] heater_pin: P2.5 ## Check what thermistor type you have. See https://www.klipper3d.org/Config_Reference.html#common-thermistors for common thermistor types. ## Use "Generic 3950" for Keenovo heaters #sensor_type: sensor_pin: P0.25 ## Adjust max_power so it doesn't exceed the SSR rating. The Omron G3NA-210B-DC5 SSR is rated at 4 amps without a heatsink. ## The formula is "4 / (Wattage_of_bed_heater / Mains_voltage) = max_power" ## If max_power is greater than 1.0, use 1.0 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 ##################################################################### ###### #Z Max Connector on Z(main) Board #Inductive Probe #This probe is not used for Z height, only Z Tilt Adjust ############### [probe] pin: ^P0.10 x_offset: 0 y_offset: 25.0 z_offset: 0 speed: 10.0 samples: 1 samples_result: average sample_retract_dist: 2.0 samples_tolerance: 0.05 samples_tolerance_retries: 3 ##################################################################### # Fan Control ##################################################################### ###### #Part Cooling Fan #HE1 Connector on Main Board ############### [fan] pin: P2.4 ###### #Hotend Cooling Fan #Fan0 Connector on Main Board ############### [heater_fan hotend_fan] pin: P2.3 max_power: 1.0 kick_start_time: 0.5 heater: extruder heater_temp: 50.0 ## Any additional fans can be driven by Fan1/Fan3 slots ## at full power on the main board, or alternative solutions ## may be sought for MOSFET controlled ports. ##################################################################### # Homing and Gantry Adjustment Routines ##################################################################### [idle_timeout] timeout: 1800 [homing_override] axes: z set_position_z: 0 gcode: G90 G0 Z5 F600 G28 X Y ## XY Location of the Z Endstop Switch ## Update X and Y to your values (such as X157, Y305) after going through ## Z Endstop Pin Location Definition step. G0 X-10 Y-10 F3600 G28 Z G0 Z10 F1800 ## Uncomment for for your size printer: ## Rough measurement is the middle of your bed. #-------------------------------------------------------------------- ## Uncomment for 250mm build #G0 X125 Y125 Z30 F3600 ## Uncomment for 300 build #G0 X150 Y150 Z30 F3600 ## Uncomment for 350 build #G0 X175 Y175 Z30 F3600 #-------------------------------------------------------------------- ##################################################################### # Displays ##################################################################### #Using the EXP-MOT Expander uses up standard Mini FYSETC Capable Display #Ports. Other solutions must be procured. ##################################################################### # Macros ##################################################################### [z_tilt] ## Use Z_TILT_ADJUST to level the bed . ## z_positions: Location of toolhead ##-------------------------------------------------------------------- ## Uncomment below for 250mm build #z_positions: # -50, 18 # 125, 298 # 300, 18 #points: # 30, 5 # 125, 195 # 220, 5 ## Uncomment below for 300mm build #z_positions: # -50, 18 # 150, 348 # 350, 18 #points: # 30, 5 # 150, 245 # 270, 5 ## Uncomment below for 350mm build #z_positions: # -50, 18 # 175, 398 # 400, 18 #points: # 30, 5 # 175, 295 # 320, 5 ##-------------------------------------------------------------------- speed: 200 horizontal_move_z: 10 retries: 5 retry_tolerance: 0.0075 [gcode_macro PRINT_START] # Use PRINT_START for the slicer starting script - PLEASE CUSTOMISE THE SCRIPT gcode: M117 Homing... ; display message G28 Y0 X0 Z0 Z_TILT_ADJUST G28 Y0 X0 Z0 ##Purge Line Gcode #G92 E0; #G90 #G0 X5 Y5 F6000 #G0 Z0.4 #G91 #G1 X120 E30 F1200; #G1 Y1 #G1 X-120 E30 F1200; #G92 E0; #G90 G1 Z15.0 F600 ;move the platform down 15mm G1 X125 Y125 F3000 G92 E0 ;zero the extruded length again G1 F9000 M117 Printing... [gcode_macro PRINT_END] # Use PRINT_END for the slicer ending script gcode: # Get Boundaries {% set max_x = printer.configfile.config["stepper_x"]["position_max"]|float %} {% set max_y = printer.configfile.config["stepper_y"]["position_max"]|float %} {% set max_z = printer.configfile.config["stepper_z"]["position_max"]|float %} # Check end position to determine safe directions to move {% if printer.toolhead.position.x < (max_x - 20) %} {% set x_safe = 20.0 %} {% else %} {% set x_safe = -20.0 %} {% endif %} {% if printer.toolhead.position.y < (max_y - 20) %} {% set y_safe = 20.0 %} {% else %} {% set y_safe = -20.0 %} {% endif %} {% if printer.toolhead.position.z < (max_z - 2) %} {% set z_safe = 2.0 %} {% else %} {% set z_safe = max_z - printer.toolhead.position.z %} {% endif %} # Commence PRINT_END SAVE_GCODE_STATE NAME=STATE_PRINT_END M400 ; wait for buffer to clear G92 E0 ; zero the extruder G1 E-4.0 F3600 ; retract G91 ; relative positioning G0 Z{z_safe} F3600 ; move nozzle up G0 X{x_safe} Y{y_safe} F20000 ; move nozzle to remove stringing M104 S0 ; turn off hotend M140 S0 ; turn off bed M106 S0 ; turn off fan G90 ; absolute positioning G0 X{max_x / 2} Y{max_y} F3600 ; park nozzle at rear # The purpose of the SAVE_GCODE_STATE/RESTORE_GCODE_STATE # command pair is to restore the printer's coordinate system # and speed settings since the commands above change them. # However, to prevent any accidental, unintentional toolhead # moves when restoring the state, explicitly set MOVE=0. RESTORE_GCODE_STATE NAME=STATE_PRINT_END MOVE=0 M117 Finished!