ВНИМАНИЕ!!! Опубликованный конфиг предоставлен как образец.
Все указанные значения вы применяете для своих принтеров на свой страх и риск!
На всех 3д принтерах я использую метод разбивки конфигурации на файлы, с подключением их в основном файле printer.cfg. Вы можете создать файлы изменив имена на свои, подключив их аналогично определением [include файл.cfg].
Вы можете не разбивать все на файлы, а собрать все в printer.cfg, минимализм иногда может быть и лучше, каждому своё=)
Обязательно требуются калибровки всего! Обнулите z_offset в разделе SAVE_CONFIG. Для другой платы управления лучше взять в пример конфигурацию именно для неё. В остальном макросы и прочее применимо для любых 3д принтеров, при условии замены имени пинов.
Надеюсь данная страница поможет вам в настройке своего 3д принтера.
ТТХ 3д принтера
Если интересует что-то еще, оставьте комментарий с вопросом в конце данной страницы или пишите мне в сообществах.
[mcu]
serial: /dev/serial/by-path/platform-fd500000.pcie-pci-0000:01:00.0-usb-0:1.4:1.0
restart_method: command
[mcu rpi]
serial: /tmp/klipper_host_mcu
[adxl345]
cs_pin: rpi:None
axes_map: z,y,x
[resonance_tester]
accel_chip: adxl345
probe_points:
175, 175, 20 # an example
[printer]
kinematics: corexy
max_velocity: 300
max_accel: 8000 #Max 4000
max_accel_to_decel: 4000
max_z_velocity: 15 #Max 15 for 12V TMC Drivers, can increase for 24V
max_z_accel: 350
square_corner_velocity: 5.0
[include stepper.cfg]
[include extruder.cfg]
[include bed.cfg]
[include fan.cfg]
[include macros.cfg]
[include ledlight.cfg]
[include stealthburner_leds.cfg]
[idle_timeout]
timeout: 1800
[pause_resume]
[display_status]
[exclude_object]
[virtual_sdcard]
path: /home/pi/printer_1_data/gcodes
[temperature_sensor host]
sensor_type: temperature_host
min_temp: 0
max_temp: 100
[temperature_sensor mcu_temp]
sensor_type: temperature_mcu
min_temp: 0
max_temp: 100
[gcode_button press_heating]
pin: !PG12
press_gcode: heating
[gcode_button press_pause]
pin: !PG13
press_gcode: PAUSE
#*# <---------------------- SAVE_CONFIG ---------------------->
#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated.
#*#
#*# [extruder]
#*# control = pid
#*# pid_kp = 35.480
#*# pid_ki = 3.072
#*# pid_kd = 102.449
#*#
#*# [heater_bed]
#*# control = pid
#*# pid_kp = 39.083
#*# pid_ki = 0.219
#*# pid_kd = 1741.136
#*#
#*# [stepper_z]
#*# position_endstop = 0.400
#*#
#*# [probe]
#*# z_offset = 0.450
#*#
#*# [input_shaper]
#*# shaper_type_x = mzv
#*# shaper_freq_x = 63.8
#*# shaper_type_y = mzv
#*# shaper_freq_y = 46.0
#*#
#*# [bed_mesh default]
#*# version = 1
#*# points =
#*# -0.009654, -0.027779, -0.015279, -0.015904, 0.000346
#*# 0.034096, 0.003471, 0.010971, 0.001596, -0.005904
#*# 0.076596, 0.036596, 0.025346, 0.005971, -0.001529
#*# 0.049721, 0.020346, 0.007221, 0.005971, -0.020904
#*# 0.017846, -0.002154, 0.000346, -0.001529, -0.022154
#*# x_count = 5
#*# y_count = 5
#*# mesh_x_pps = 2
#*# mesh_y_pps = 2
#*# algo = lagrange
#*# tension = 0.2
#*# min_x = 25.0
#*# max_x = 265.0
#*# min_y = 25.0
#*# max_y = 265.0
[stepper_x]
step_pin: PF13
dir_pin: PF12
enable_pin: !PF14
rotation_distance: 40
microsteps: 32
full_steps_per_rotation: 200 #set to 400 for 0.9 degree stepper
endstop_pin: PG9
position_min: 0
position_endstop: 300
position_max: 300
homing_speed: 60 #Max 100
homing_retract_dist: 5
homing_positive_dir: true
## Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_x]
uart_pin: PC4
interpolate: False
run_current: 1.3
sense_resistor: 0.110
stealthchop_threshold: 0
## A Stepper - Right
## Connected to MOTOR_1
## Endstop connected to DIAG_1
[stepper_y]
step_pin: PG0
dir_pin: PG1
enable_pin: !PF15
rotation_distance: 40
microsteps: 32
full_steps_per_rotation:200 #set to 400 for 0.9 degree stepper
endstop_pin: !PG6
position_min: 0
position_endstop: 305
position_max: 305
homing_speed: 60 #Max 100
homing_retract_dist: 5
homing_positive_dir: true
[tmc2209 stepper_y]
uart_pin: PD11
interpolate: False
run_current: 1.3
sense_resistor: 0.110
stealthchop_threshold: 0
#####################################################################
# Z Stepper Settings
#####################################################################
[stepper_z]
step_pin: PF11
dir_pin: !PG3
enable_pin: !PG5
# Rotation Distance for TR8x8 = 8, TR8x4 = 4, TR8x2 = 2
rotation_distance: 4
microsteps: 32
endstop_pin: PG10
position_max: 300
position_min: -2.5
homing_speed: 8.0 # Leadscrews are slower than 2.4, 10 is a recommended max.
second_homing_speed: 3
homing_retract_dist: 3
## Make sure to update below for your relevant driver (2208 or 2209)
[tmc2209 stepper_z]
uart_pin: PC6
interpolate: False
run_current: 0.6
sense_resistor: 0.110
stealthchop_threshold: 9999
[stepper_z1]
step_pin: PG4
dir_pin: !PC1
enable_pin: !PA0
# Rotation Distance for TR8x8 = 8, TR8x4 = 4, TR8x2 = 2
rotation_distance: 4
microsteps: 32
[tmc2209 stepper_z1]
uart_pin: PC7
interpolate: False
run_current: 0.6
sense_resistor: 0.110
stealthchop_threshold: 9999
[stepper_z2]
step_pin: PF9
dir_pin: !PF10
enable_pin: !PG2
# Rotation Distance for TR8x8 = 8, TR8x4 = 4, TR8x2 = 2
rotation_distance: 4
microsteps: 32
[tmc2209 stepper_z2]
uart_pin: PF2
interpolate: False
run_current: 0.6
sense_resistor: 0.110
stealthchop_threshold: 9999
[extruder]
step_pin: PE2
dir_pin: !PE3
enable_pin: !PD4
## Update value below when you perform extruder calibration
## If you ask for 100mm of filament, but in reality it is 98mm:
## rotation_distance = <previous_rotation_distance> * <actual_extrude_distance> / 100
## 22.6789511 is a good starting point
rotation_distance: 21.7717930 #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 #BMG Gear Ratio
microsteps: 32
full_steps_per_rotation: 200 #200 for 1.8 degree, 400 for 0.9 degree
nozzle_diameter: 0.400
filament_diameter: 1.75
heater_pin: PA2
## 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: EPCOS 100K B57560G104F
sensor_pin: PF4
min_temp: 10
max_temp: 270
max_power: 1.0
min_extrude_temp: 170
# control: pid
# pid_kp: 26.213
# pid_ki: 1.304
# pid_kd: 131.721
pressure_advance: 0.05
pressure_advance_smooth_time: 0.040
[verify_heater extruder]
hysteresis: 10
max_error: 200
heating_gain: 5
check_gain_time:120
[firmware_retraction]
retract_length: 0.6
retract_speed: 40
unretract_extra_length: 0
unretract_speed: 30
[tmc2209 extruder]
uart_pin: PE1
interpolate: false
run_current: 0.6
sense_resistor: 0.110
stealthchop_threshold: 0
[heater_bed]
## SSR Pin - HE1
## Thermistor - T
heater_pin: PA3
## 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: EPCOS 100K B57560G104F
sensor_pin: PF3
## Adjust Max Power so your heater doesn't warp your bed. Rule of thumb is 0.4 watts / cm^2 .
max_power: 0.7
min_temp: 0
max_temp: 120
# control: pid
# pid_kp: 58.437
# pid_ki: 2.347
# pid_kd: 363.769
[probe]
## Inductive Probe
## This probe is not used for Z height, only Quad Gantry Leveling
# Select the probe port by type:
## For the PROBE port. Will not work with Diode. May need pull-up resistor from signal to 24V.
#pin: ~!PB7
## For the DIAG_7 port. NEEDS BAT85 DIODE! Change to !PG15 if probe is NO.
pin: !PG15
## For Octopus Pro Probe port; NPN and PNP proximity switch types can be set by jumper
#pin: ~!PC5
#--------------------------------------------------------------------
x_offset: 0
y_offset: 25
speed: 10.0
samples: 3
samples_result: median
sample_retract_dist: 3.0
samples_tolerance: 0.006
samples_tolerance_retries: 3
[bed_mesh]
speed: 120
mesh_min: 25,25
mesh_max: 265,265
probe_count: 5,5
fade_start: 1
fade_end: 10
algorithm: lagrange
horizontal_move_z: 10
mesh_pps: 2,2
[safe_z_home]
## XY Location of the Z Endstop Switch
## Update -10,-10 to the XY coordinates of your endstop pin
## (such as 157,305) after going through Z Endstop Pin
## Location Definition step.
home_xy_position: 171,305
speed:100
z_hop:10
[z_tilt]
z_positions:
-50, 18
150, 348
350, 18
points:
30, 5
150, 245
270, 5
speed: 200
horizontal_move_z: 10
retries: 5
retry_tolerance: 0.0075
[fan]
## Print Cooling Fan - FAN0
pin: PD13
kick_start_time: 0.5
## Depending on your fan, you may need to increase this value
## if your fan will not start. Can change cycle_time (increase)
## if your fan is not able to slow down effectively
off_below: 0.10
[heater_fan hotend_fan]
## Hotend Fan - FAN1
pin: PD14
max_power: 1.0
kick_start_time: 0.5
heater: extruder
heater_temp: 50.0
## If you are experiencing back flow, you can reduce fan_speed
#fan_speed: 1.0
[controller_fan controller_fan]
## Controller fan - FAN2
pin: PB10
max_power: 0.6
kick_start_time: 0.5
heater: heater_bed
#[heater_fan exhaust_fan]
## Exhaust fan - FAN3
#pin: PD13
#max_power: 1.0
#shutdown_speed: 0.0
#kick_start_time: 5.0
#heater: heater_bed
#heater_temp: 60
#fan_speed: 1.0
[gcode_macro SHUTDOWN_MACHINE]
gcode:
{action_call_remote_method("shutdown_machine")}
M81
# Добавить следующие строки в начальный джикод слайсера
# Cura: START_PRINT EXTRUDER_TEMP={material_print_temperature_layer_0} BED_TEMP={material_bed_temperature_layer_0}
# PrusaSlicer:
# M140 S0
# M104 S0
# START_PRINT EXTRUDER_TEMP=[first_layer_temperature] BED_TEMP=[first_layer_bed_temperature]
# Добавить в завершающий джикод: END_PRINT
[gcode_macro heating]
gcode:
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET=85
SET_HEATER_TEMPERATURE HEATER=extruder TARGET=230
STSTUS_HEATING
[gcode_macro CANCEL_PRINT]
rename_existing: BASE_CANCEL_PRINT
gcode:
{% set E = printer["gcode_macro START_PRINT"].retract|float %}
TURN_OFF_HEATERS
M107 # turn off fan
G91
G1 E-{E} F1500 # retract
G90
CLEAR_PAUSE
SDCARD_RESET_FILE
BASE_CANCEL_PRINT
PARK
M18
[gcode_macro PAUSE]
rename_existing: BASE_PAUSE
gcode:
{% set E = printer["gcode_macro START_PRINT"].retract|float %}
SAVE_GCODE_STATE NAME=PAUSE_STATE
BASE_PAUSE
G91
G1 E-{E} F1500 # retract
G90
PARK
[gcode_macro RESUME]
rename_existing: BASE_RESUME
gcode:
{% set E = printer["gcode_macro START_PRINT"].retract|float %}
G91
G1 E{E} F1500 # unretract
G90
RESTORE_GCODE_STATE NAME=PAUSE_STATE MOVE=1
BASE_RESUME
STATUS_PRINTING
[gcode_macro PARK]
gcode:
STATUS_MESHING
{% set x_park = params.X|default(10)|float %}
{% set y_park = params.Y|default(180)|float %}
{% set z_park = params.Z|default(10)|float + printer.toolhead.position.z|float %}
{% set x_max = printer.toolhead.axis_maximum.x|float %}
{% set y_max = printer.toolhead.axis_maximum.y|float %}
{% set z_max = printer.toolhead.axis_maximum.z|float %}
{% if x_park > x_max %}
{% set x_park = x_max %}
{% endif %}
{% if y_park > y_max %}
{% set y_park = y_max %}
{% endif %}
{% if z_park > z_max %}
{% set z_park = z_max %}
{% endif %}
SAVE_GCODE_STATE NAME=PARK_STATE
G90 # absolute positioning
G1 Z{z_park} F1500
G1 X{x_park} Y{y_park} F5000
RESTORE_GCODE_STATE name=PARK_STATE
[gcode_macro START_PRINT]
variable_retract: 3
gcode:
M117 Heating
SET_PIN PIN=caselight VALUE=0.6
STATUS_HEATING
{% set extruder_temp = params.EXTRUDER_TEMP|default(220)|float %}
{% set bed_temp = params.BED_TEMP|default(70)|float %}
{% set E = printer["gcode_macro START_PRINT"].retract|float %}
CLEAR_PAUSE
M220 S100 # reset feedrate
M221 S100
SET_HEATER_TEMPERATURE HEATER=heater_bed TARGET={bed_temp} # set bed t℃
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={bed_temp * 0.90} # wait until bed is partially heated
#G4 P300000
SET_HEATER_TEMPERATURE HEATER=extruder TARGET={extruder_temp} # set nozzle t℃
G90 # absolute positioning
M82 # absolute extrusion mode
TEMPERATURE_WAIT SENSOR=heater_bed MINIMUM={bed_temp} # wait until
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={extruder_temp} # wait until\
M117 Home
STATUS_HOMING
G28
CLEANING
# Z_TILT_ADJUST
G0 Z10 F1500 # raise Z
G92 E0 # reset extruder
G1 E{E} F1500 # prime
G92 E0
BED_MESH_PROFILE LOAD=default # reset extruder
M117 Printing...
STATUS_PRINTING
[gcode_macro CLEANING]
gcode:
STATUS_CLEANING
G91
G1 X-100 F6000
G90
M83
G1 E50 F300
[gcode_macro END_PRINT]
gcode:
{% set E = printer["gcode_macro START_PRINT"].retract|float %}
TURN_OFF_HEATERS
M107 # turn off fan
G91 # relative positioning
G1 E-{E} F1500 # retract
G0 X5 Y5 F5000 # wipe
# G0 Z2 F1500 # raise Z
G90 # absolute positioning
PARK
M84 # turn off all motors
M106 S200
G4 P100000
M106 S0
STSTUS_OFF
SET_PIN PIN=caselight VALUE=0.00
[gcode_macro PID_E]
gcode:
{% set T = params.T|default(240) %}
PID_CALIBRATE HEATER=extruder TARGET={T}
[gcode_macro PID_B]
gcode:
{% set T = params.T|default(80) %}
PID_CALIBRATE HEATER=heater_bed TARGET={T}
[gcode_macro MOTOR_OFF]
gcode:
M18
[gcode_macro M81]
gcode:
SET_PIN PIN=POWER_OFF VALUE=1
[output_pin POWER_OFF]
pin: !PE11
shutdown_value: 1
[gcode_macro M81]
gcode:
SET_PIN PIN=POWER_OFF VALUE=1
[gcode_macro INPUTSHAPER]
gcode:
G90
G28
{% set POSITION_X = printer.configfile.settings['stepper_x'].position_max/2 %}
{% set POSITION_Y = printer.configfile.settings['stepper_y'].position_max/2 %}
G1 X{POSITION_X} Y{POSITION_Y} Z5 F6000
SHAPER_CALIBRATE
[output_pin caselight]
pin: PB11
pwm:true
value: 0.4
shutdown_value: 0
cycle_time: 0.01
[neopixel sb_leds]
pin: PB0
# The pin connected to the neopixel. This parameter must be provided.
chain_count: 3
# The number of Neopixel chips that are "daisy chained" to the
# provided pin. The default is 1 (which indicates only a single
# Neopixel is connected to the pin).
color_order: GRB
# Set the pixel order required by the LED hardware. Options are GRB,
# RGB, GRBW, or RGBW. The default is GRB.
initial_RED: 1.0
initial_GREEN: 0.0
initial_BLUE: 1.0
initial_WHITE: 0.0
[gcode_macro _sb_vars]
# User settings for the StealthBurner status leds. You can change the status colors and l
# configurations for the logo and nozzle here.
variable_colors: {
'logo': { # Colors for logo states
'busy': {'r': 0.4, 'g': 0.0, 'b': 0.0, 'w': 0.0},
'cleaning': {'r': 0.0, 'g': 0.02, 'b': 0.5, 'w': 0.0},
'calibrating_z': {'r': 0.8, 'g': 0., 'b': 0.35, 'w': 0.0},
'heating': {'r': 0.3, 'g': 0.18, 'b': 0.0, 'w': 0.0},
'homing': {'r': 0.0, 'g': 0.6, 'b': 0.2, 'w': 0.0},
'leveling': {'r': 0.5, 'g': 0.1, 'b': 0.4, 'w': 0.0},
'meshing': {'r': 0.2, 'g': 1.0, 'b': 0.0, 'w': 0.0},
'off': {'r': 0.0, 'g': 0.0, 'b': 0.0, 'w': 0.0},
'printing': {'r': 1.0, 'g': 0.0, 'b': 0.0, 'w': 0.0},
'standby': {'r': 0.01, 'g': 0.01, 'b': 0.01, 'w': 0.1},
},
'nozzle': { # Colors for nozzle states
'heating': {'r': 0.8, 'g': 0.35, 'b': 0.0, 'w':0.0},
'off': {'r': 0.0, 'g': 0.0, 'b': 0.0, 'w': 0.0},
'on': {'r': 0.8, 'g': 0.8, 'b': 0.8, 'w':1.0},
'standby': {'r': 0.6, 'g': 0.0, 'b': 0.0, 'w':0.0},
},
'thermal': {
'hot': {'r': 1.0, 'g': 0.0, 'b': 0.0, 'w': 0.0},
'cold': {'r': 0.3, 'g': 0.0, 'b': 0.3, 'w': 0.0}
}
}
variable_logo_led_name: "sb_leds"
# The name of the addressable LED chain that contains the logo LED(s)
variable_logo_idx: "1"
# A comma-separated list of indexes LEDs in the logo
variable_nozzle_led_name: "sb_leds"
# The name of the addressable LED chain that contains the nozzle LED(s). This will
# typically be the same LED chain as the logo.
variable_nozzle_idx: "2,3"
# A comma-separated list of indexes of LEDs in the nozzle
gcode:
# This section is required. Do Not Delete.
[gcode_macro _set_sb_leds]
gcode:
{% set red = params.RED|default(0)|float %}
{% set green = params.GREEN|default(0)|float %}
{% set blue = params.BLUE|default(0)|float %}
{% set white = params.WHITE|default(0)|float %}
{% set led = params.LED|string %}
{% set idx = (params.IDX|string).split(',') %}
{% set transmit_last = params.TRANSMIT|default(1) %}
{% for led_index in idx %}
{% set transmit=transmit_last if loop.last else 0 %}
set_led led={led} red={red} green={green} blue={blue} white={white} index={led_index} transmit={transmit}
{% endfor %}
[gcode_macro _set_sb_leds_by_name]
gcode:
{% set leds_name = params.LEDS %}
{% set color_name = params.COLOR %}
{% set color = printer["gcode_macro _sb_vars"].colors[leds_name][color_name] %}
{% set led = printer["gcode_macro _sb_vars"][leds_name + "_led_name"] %}
{% set idx = printer["gcode_macro _sb_vars"][leds_name + "_idx"] %}
{% set transmit = params.TRANSMIT|default(1) %}
_set_sb_leds led={led} red={color.r} green={color.g} blue={color.b} white={color.w} idx="{idx}" transmit={transmit}
[gcode_macro _set_logo_leds]
gcode:
{% set red = params.RED|default(0)|float %}
{% set green = params.GREEN|default(0)|float %}
{% set blue = params.BLUE|default(0)|float %}
{% set white = params.WHITE|default(0)|float %}
{% set led = printer["gcode_macro _sb_vars"].logo_led_name %}
{% set idx = printer["gcode_macro _sb_vars"].logo_idx %}
{% set transmit=params.TRANSMIT|default(1) %}
_set_sb_leds led={led} red={red} green={green} blue={blue} white={white} idx="{idx}" transmit={transmit}
[gcode_macro _set_nozzle_leds]
gcode:
{% set red = params.RED|default(0)|float %}
{% set green = params.GREEN|default(0)|float %}
{% set blue = params.BLUE|default(0)|float %}
{% set white = params.WHITE|default(0)|float %}
{% set led = printer["gcode_macro _sb_vars"].nozzle_led_name %}
{% set idx = printer["gcode_macro _sb_vars"].nozzle_idx %}
{% set transmit=params.TRANSMIT|default(1) %}
_set_sb_leds led={led} red={red} green={green} blue={blue} white={white} idx="{idx}" transmit={transmit}
[gcode_macro set_logo_leds_off]
gcode:
{% set transmit=params.TRANSMIT|default(1) %}
_set_logo_leds red=0 blue=0 green=0 white=0 transmit={transmit}
[gcode_macro set_nozzle_leds_on]
gcode:
{% set transmit=params.TRANSMIT|default(1) %}
_set_sb_leds_by_name leds="nozzle" color="on" transmit={transmit}
[gcode_macro set_nozzle_leds_off]
gcode:
{% set transmit=params.TRANSMIT|default(1) %}
_set_sb_leds_by_name leds="nozzle" color="off" transmit={transmit}
[gcode_macro status_off]
gcode:
set_logo_leds_off transmit=0
set_nozzle_leds_off
[gcode_macro status_ready]
gcode:
_set_sb_leds_by_name leds="logo" color="standby" transmit=0
_set_sb_leds_by_name leds="nozzle" color="standby" transmit=1
[gcode_macro status_busy]
gcode:
_set_sb_leds_by_name leds="logo" color="busy" transmit=0
set_nozzle_leds_on
[gcode_macro status_heating]
gcode:
_set_sb_leds_by_name leds="logo" color="heating" transmit=0
_set_sb_leds_by_name leds="nozzle" color="heating" transmit=1
[gcode_macro status_leveling]
gcode:
_set_sb_leds_by_name leds="logo" color="leveling" transmit=0
set_nozzle_leds_on
[gcode_macro status_homing]
gcode:
_set_sb_leds_by_name leds="logo" color="homing" transmit=0
set_nozzle_leds_on
[gcode_macro status_cleaning]
gcode:
_set_sb_leds_by_name leds="logo" color="cleaning" transmit=0
set_nozzle_leds_on
[gcode_macro status_meshing]
gcode:
_set_sb_leds_by_name leds="logo" color="meshing" transmit=0
set_nozzle_leds_on
[gcode_macro status_calibrating_z]
gcode:
_set_sb_leds_by_name leds="logo" color="calibrating_z" transmit=0
set_nozzle_leds_on
[gcode_macro status_printing]
gcode:
_set_sb_leds_by_name leds="logo" color="printing" transmit=0
set_nozzle_leds_on