405 lines
11 KiB
INI
405 lines
11 KiB
INI
# This file contains common configurations and pin mappings for the Prusa
|
|
# Mini+, which uses the Prusa Buddy board.
|
|
|
|
# To use this config, the firmware should be compiled for the STM32F407. When
|
|
# running "make menuconfig", enable "extra low-level configuration setup",
|
|
# select the "128KiB + 512 byte offset" bootloader, and USB communication.
|
|
# Connect the printer to your Raspberry Pi using the printer's micro-USB port.
|
|
# If you prefer to remove Prusa's stock bootloader entirely, select the
|
|
# "No bootloader" option.
|
|
|
|
# When flashing for the first time, you will need to break the "appendix"
|
|
# on the Buddy board, then put the device into DFU mode by moving the jumper
|
|
# on the 3-pin header (older boards) or shorting the 2-pin header (newer boards)
|
|
# and resetting, and finally use "make flash" to install Klipper. Once Klipper is
|
|
# installed, you no longer need the jumper - just use "make flash" which will
|
|
# automatically put the device into DFU mode.
|
|
|
|
# Note that if you were previously running Prusa firmware, you must fully
|
|
# power cycle the board after flashing. Otherwise, Klipper will be unable to
|
|
# communicate with the TMC2209s due to the abrupt change in the baud rate,
|
|
# and will show this error: "Unable to read tmc uart register IFCNT".
|
|
|
|
# See docs/Config_Reference.md for a description of parameters.
|
|
|
|
[pause_resume]
|
|
|
|
[display_status]
|
|
|
|
[virtual_sdcard]
|
|
path: ~/gcode_files
|
|
|
|
######################################################################
|
|
# Macros
|
|
######################################################################
|
|
|
|
# custom slicer START_PRINT and END_PRINT macros
|
|
[gcode_macro START_PRINT]
|
|
description: start printing
|
|
gcode:
|
|
{% set BED_TEMP = params.BED_TEMP|default(60)|float %}
|
|
{% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(190)|float %}
|
|
M140 S{BED_TEMP} # Start bed heating
|
|
M109 S{EXTRUDER_TEMP} # Start extruder heating
|
|
G90 # Use absolute coordinates
|
|
SET_GCODE_OFFSET Z=0.0 # Reset the G-Code Z offset (adjust Z offset if needed)
|
|
G28 # Home the printer
|
|
G1 Z5 F3000 # Move the nozzle near the bed
|
|
G1 Z0.15 F300 # Move the nozzle very close to the bed
|
|
M190 S{BED_TEMP} # Wait for bed to reach temperature
|
|
M109 S{EXTRUDER_TEMP} # Set and wait for nozzle to reach temperature
|
|
CLEAN_NOZZLE # clean the nozzle
|
|
|
|
[gcode_macro END_PRINT]
|
|
description: end printing
|
|
gcode:
|
|
M140 S0 # Turn off bed
|
|
M104 S0 # Turn off extruder
|
|
M106 S0 # Turn off fan
|
|
G91 # Use relativ coordinates
|
|
G1 X-2 Y-2 E-3 F300 # Move nozzle away from print while retracting
|
|
G1 Z10 F3000 # Raise nozzle by 10mm
|
|
G90 # Use absolute coordinates
|
|
M84 # Disable steppers
|
|
|
|
# [gcode_macro PARK]
|
|
# description: park the print head
|
|
# rename_existing: G27
|
|
# gcode:
|
|
# {% set x = params.X|default(140) %} #edit to your park position
|
|
# {% set y = params.Y|default(20) %} #edit to your park position
|
|
# {% set z = params.Z|default(10)|float %} #edit to your park position
|
|
# {% set e = params.E|default(1) %} #edit to your retract length
|
|
|
|
[gcode_macro PAUSE]
|
|
description: Pause the actual running print
|
|
rename_existing: PAUSE_BASE
|
|
gcode:
|
|
##### set defaults #####
|
|
{% set x = params.X|default(140) %} #edit to your park position
|
|
{% set y = params.Y|default(20) %} #edit to your park position
|
|
{% set z = params.Z|default(10)|float %} #edit to your park position
|
|
{% set e = params.E|default(1) %} #edit to your retract length
|
|
##### calculate save lift position #####
|
|
{% set max_z = printer.toolhead.axis_maximum.z|float %}
|
|
{% set act_z = printer.toolhead.position.z|float %}
|
|
{% set lift_z = z|abs %}
|
|
{% if act_z < (max_z - lift_z) %}
|
|
{% set z_safe = lift_z %}
|
|
{% 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}
|
|
G90
|
|
G1 X{x} Y{y} F6000
|
|
{% else %}
|
|
{action_respond_info("Printer not homed")}
|
|
{% endif %}
|
|
|
|
[gcode_macro RESUME]
|
|
description: Resume the actual running print
|
|
rename_existing: RESUME_BASE
|
|
gcode:
|
|
##### set defaults #####
|
|
{% set e = params.E|default(1) %} #edit to your retract length
|
|
#### get VELOCITY parameter if specified ####
|
|
{% if 'VELOCITY' in params|upper %}
|
|
{% set get_params = ('VELOCITY=' + params.VELOCITY) %}
|
|
{%else %}
|
|
{% set get_params = "" %}
|
|
{% endif %}
|
|
##### end of definitions #####
|
|
G91
|
|
{% if printer.extruder.can_extrude|lower == 'true' %}
|
|
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 CLEAN_NOZZLE]]
|
|
description: clean the nozzle
|
|
gcode:
|
|
{% set BED_TEMP = params.BED_TEMP|default(60)|float %}
|
|
{% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(190)|float %}
|
|
{% set X1 = params.X1|default(120)|float %}
|
|
{% set X2 = params.X2|default(40)|float %}
|
|
{% set MANUAL = params.MANUAL|default(0) %}
|
|
SAVE_GCODE_STATE NAME=clean_nozzle_state
|
|
{% if MANUAL %}
|
|
G28 # home
|
|
M104 S{EXTRUDER_TEMP} # start heating extruder
|
|
M140 S{BED_TEMP} # start heating bed
|
|
M109 S{EXTRUDER_TEMP} # wait for extruder to reach temperature
|
|
M190 S{BED_TEMP} # wait for bed to reach temperature
|
|
{% endif %}
|
|
G90 # absolute positioning
|
|
G92 E0
|
|
G0 F1500
|
|
G0 X{X1} Y0 Z5
|
|
G0 X{X1} Y0 Z0
|
|
G0 X{X2} Y0 Z0 E10
|
|
RESTORE_GCODE_STATE NAME=clean_nozzle_state
|
|
|
|
[gcode_macro M600]
|
|
description: Change filament
|
|
gcode:
|
|
{% set X = params.X|default(50)|float %}
|
|
{% set Y = params.Y|default(0)|float %}
|
|
{% set Z = params.Z|default(10)|float %}
|
|
SAVE_GCODE_STATE NAME=M600_state
|
|
PAUSE
|
|
G91
|
|
G1 E-.8 F2700
|
|
G1 Z{Z}
|
|
G90
|
|
G1 X{X} Y{Y} F3000
|
|
G91
|
|
G1 E-50 F1000
|
|
RESTORE_GCODE_STATE NAME=M600_state
|
|
|
|
## Remove unused gcodes
|
|
[gcode_macro G29]
|
|
description: Bed Leveling
|
|
gcode:
|
|
G4
|
|
|
|
[gcode_macro M201]
|
|
description: Set Print Max Acceleration
|
|
gcode:
|
|
G4
|
|
|
|
[gcode_macro M203]
|
|
description: Set Max Feedrate
|
|
gcode:
|
|
G4
|
|
|
|
[gcode_macro M205]
|
|
description: Set Advanced Settings
|
|
gcode:
|
|
G4
|
|
|
|
[gcode_macro M900]
|
|
description: Linear Advance Factor
|
|
gcode:
|
|
G4
|
|
|
|
[stepper_x]
|
|
step_pin: PD1
|
|
dir_pin: PD0
|
|
enable_pin: !PD3
|
|
microsteps: 16
|
|
rotation_distance: 32 # 200 * 16 / 100
|
|
endstop_pin: tmc2209_stepper_x:virtual_endstop
|
|
position_endstop: 180.4
|
|
position_min: -2
|
|
position_max: 180.4
|
|
homing_speed: 50
|
|
homing_retract_dist: 0
|
|
|
|
[stepper_y]
|
|
step_pin: PD13
|
|
dir_pin: PD12
|
|
enable_pin: !PD14
|
|
microsteps: 16
|
|
rotation_distance: 32 # 200 * 16 / 100
|
|
endstop_pin: tmc2209_stepper_y:virtual_endstop
|
|
position_endstop: -3
|
|
position_min: -3
|
|
position_max: 180
|
|
homing_speed: 50
|
|
homing_retract_dist: 0
|
|
|
|
[stepper_z]
|
|
step_pin: PD4
|
|
dir_pin: !PD15
|
|
enable_pin: !PD2
|
|
microsteps: 16
|
|
rotation_distance: 4
|
|
endstop_pin: probe:z_virtual_endstop
|
|
position_min: -3
|
|
position_max: 185
|
|
|
|
[extruder]
|
|
step_pin: PD9
|
|
dir_pin: !PD8
|
|
enable_pin: !PD10
|
|
microsteps: 16
|
|
rotation_distance: 26.2564 # (200 * 16 * 48/18) / 325
|
|
gear_ratio: 48:18
|
|
nozzle_diameter: 0.400
|
|
filament_diameter: 1.750
|
|
heater_pin: PB1
|
|
sensor_type: ATC Semitec 104GT-2
|
|
sensor_pin: PC0
|
|
#control: pid
|
|
# Prusa's firmware defaults.
|
|
#pid_Kp: 7
|
|
#pid_Ki: 0.5
|
|
#pid_Kd: 45
|
|
min_temp: 10
|
|
max_temp: 305
|
|
|
|
[tmc2209 stepper_x]
|
|
uart_pin: PD5
|
|
uart_address: 1
|
|
diag_pin: ^PE2
|
|
driver_SGTHRS: 130
|
|
run_current: 0.35
|
|
sense_resistor: 0.22
|
|
stealthchop_threshold: 999999
|
|
|
|
[tmc2209 stepper_y]
|
|
uart_pin: PD5
|
|
uart_address: 3
|
|
diag_pin: ^PE1
|
|
driver_SGTHRS: 130
|
|
run_current: 0.35
|
|
sense_resistor: 0.22
|
|
stealthchop_threshold: 999999
|
|
|
|
[tmc2209 stepper_z]
|
|
uart_pin: PD5
|
|
uart_address: 0
|
|
diag_pin: ^PE3
|
|
driver_SGTHRS: 100
|
|
run_current: 0.35
|
|
sense_resistor: 0.22
|
|
stealthchop_threshold: 999999
|
|
|
|
[tmc2209 extruder]
|
|
uart_pin: PD5
|
|
uart_address: 2
|
|
diag_pin: ^PA15
|
|
driver_SGTHRS: 100
|
|
run_current: 0.4
|
|
sense_resistor: 0.22
|
|
|
|
[heater_bed]
|
|
heater_pin: PB0
|
|
sensor_type: EPCOS 100K B57560G104F
|
|
sensor_pin: PA4
|
|
#control: pid
|
|
# Prusa's firmware defaults.
|
|
#pid_Kp: 120
|
|
#pid_Ki: 1.5
|
|
#pid_Kd: 600
|
|
min_temp: 10
|
|
max_temp: 110
|
|
|
|
# Hotend fan.
|
|
# The stock firmware uses control ranges of PWM 0-50%, RPM 1000-8000.
|
|
# Change fan_speed below to match your preference. Measured speeds:
|
|
# fan_speed 0.5: 50% PWM = 4000RPM (Prusa stock default speed)
|
|
# fan_speed 1.0: 100% PWM = 8000RPM (safe but loud)
|
|
[heater_fan hotend_fan]
|
|
pin: PE9
|
|
tachometer_pin: PE14
|
|
fan_speed: 0.5
|
|
|
|
# Part cooling fan.
|
|
# The stock firmware uses control ranges of PWM 10-50%, RPM 500-5000.
|
|
# To match stock firmware, set the Klipper fan speed to 50%. This speed
|
|
# can be safely increased to 100% for better part cooling. Measured speeds:
|
|
# 50% PWM = 2500RPM (Prusa stock default speed)
|
|
# 100% PWM = 5000RPM (better cooling, still quiet)
|
|
[fan]
|
|
pin: PE11
|
|
tachometer_pin: PE10
|
|
|
|
# The SuperPINDA has built-in temperature compensation and no thermistor output,
|
|
# so no compensation table is needed here.
|
|
[probe]
|
|
pin: PA8
|
|
x_offset: -29
|
|
y_offset: -3
|
|
#z_offset: 0 # set this to your Live Z Offset, but negated (invert the sign)
|
|
speed: 6.0
|
|
|
|
[safe_z_home]
|
|
home_xy_position: 147.4,21.1
|
|
z_hop: 4
|
|
|
|
[bed_mesh]
|
|
speed: 100
|
|
horizontal_move_z: 5
|
|
mesh_min: 10,10
|
|
mesh_max: 141,167
|
|
probe_count: 4,4
|
|
|
|
[filament_switch_sensor filament_sensor]
|
|
switch_pin: ^PB4
|
|
pause_on_runout: True
|
|
|
|
[mcu]
|
|
serial: /dev/serial/by-id/usb-Klipper_stm32f407xx_2B0024001547393432343038-if00
|
|
restart_method: command
|
|
|
|
[printer]
|
|
kinematics: cartesian
|
|
# Prusa firmware defaults.
|
|
max_velocity: 180
|
|
max_accel: 1250
|
|
max_z_velocity: 12
|
|
max_z_accel: 400
|
|
|
|
[display]
|
|
lcd_type: st7789v
|
|
spi_bus: spi2a
|
|
rst_pin: PC8
|
|
cs_pin: PC9
|
|
rs_pin: PD11
|
|
encoder_pins: ^PE13, ^PE15
|
|
click_pin: ^!PE12
|
|
|
|
#*# <---------------------- SAVE_CONFIG ---------------------->
|
|
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
|
|
#*#
|
|
#*# [extruder]
|
|
#*# control = pid
|
|
#*# pid_kp = 21.307
|
|
#*# pid_ki = 0.911
|
|
#*# pid_kd = 124.644
|
|
#*#
|
|
#*# [heater_bed]
|
|
#*# control = pid
|
|
#*# pid_kp = 57.528
|
|
#*# pid_ki = 1.059
|
|
#*# pid_kd = 780.942
|
|
#*#
|
|
#*# [probe]
|
|
#*# z_offset = 1.480
|
|
#*#
|
|
#*# [bed_mesh default]
|
|
#*# version = 1
|
|
#*# points =
|
|
#*# -0.058750, -0.003750, 0.102500, 0.057500
|
|
#*# -0.086250, -0.037500, -0.027500, 0.007500
|
|
#*# -0.022500, -0.057500, -0.070000, -0.011250
|
|
#*# -0.066250, -0.102500, -0.045000, -0.071250
|
|
#*# tension = 0.2
|
|
#*# min_x = 10.0
|
|
#*# algo = lagrange
|
|
#*# y_count = 4
|
|
#*# mesh_y_pps = 2
|
|
#*# min_y = 10.0
|
|
#*# x_count = 4
|
|
#*# max_y = 166.99
|
|
#*# mesh_x_pps = 2
|
|
#*# max_x = 140.98
|