将启庞KP3S改为Klipper
我的KP3S已经买了一年多了,也打了不少模型,当然一开始我觉得打印效果并不好,一些操控啥的,我自己也觉得不太舒适,我就自己下载了Marlin,自己修改Marlin后,将固件下载进去,并且用了相当长的时间。(调的时候别说多艰苦!)
当然,后面klipper出来之后,我自己也研究了相当一段时间(其实熟悉Linux的话还真的不是很难),我选择的是MKS PI来做的klipper,商品的网址:https://item.taobao.com/item.htm?spm=a21n57.1.0.0.67d3523cF2d9pb&id=677753631669&ns=1&abbucket=14&mt=
这时候会存在两种方式,一种是直接用MKS PI提供的镜像,MKS已经针对自己的PI是配好armbian的镜像(为什么不是Ubuntu?), 并且镜像里面已经安装好klipper和各种插件,一些必备的脚本也做好了,比如U盘自动挂载等等,都是做好了的。

我也为MKS PI打印了一个小盒子,虽然有点丑,等我有空了自己画一个。

喜欢折腾的我当然是自己做自己的镜像啦,这里就不详细说明我是怎么制作镜像的了,过程有点复杂,初学或者不了解ARM Linux的建议直接使用MKS提供的镜像,这差别不大的。
在有镜像的MKS PI上,第一次需要通过串口查找到ip,我使用的是MobaXterm这个工具,当然也可以使用putty这些,使用typeC数据线连接电脑后:


打开串口后可能要敲一下回车才能出现这个。然后输入:sudo ifconfig,回车,会让提示你输入密码,密码是:makerbase, 就会出现下图:

这样我就知道自己的ip地址是192.168.211.20, 这个不同人的网络地址是不一样的。然后直接浏览器打开这个地址,就发现自己登录了fluidd的web了(噢对了,一定要连接网线或者wifi模块,要联网要联网要联网!)。

能进来说明成功了一半了,然后用USB线把KP3S和MKS PI连接起来(像联机打印那样连接MKS PI的USB 口),在MobaXterm上输入:ls /dev/serial/by-id/*, 会出现一段端口:

再回到网页,修改printer.cfg,可以直接用我做好的基础版printer.cfg:
#####################################################################
# KINGROON KLP1 V1.0
####################################################################
# [include MKS_THR.cfg]
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
restart_method: command
#####################################################################
# 速度
####################################################################
[printer]
kinematics:cartesian#打印机类型
max_velocity: 500#最大速度
max_accel:5000#最大加速度
max_accel_to_decel:3000#最大加速度到减速度
max_z_velocity:20#Z轴最大速度
max_z_accel: 100#Z轴最大加速度
square_corner_velocity: 15#方形拐角速度
#####################################################################
# 运动和驱动参数
####################################################################
[stepper_x]
step_pin: PE3
dir_pin: PE2
enable_pin: !PE4 #使能引脚
microsteps: 32 #细分
rotation_distance: 40 #主动轮周长mm
full_steps_per_rotation:200 #单圈脉冲数量
endstop_pin:!PA15
position_min: 0 #限位最小行程
position_endstop: 0 #回零的位置
position_max: 210 #最大限位行程
homing_speed:50 #回零速度
second_homing_speed: 2
homing_retract_dist:0 #后撤距离
homing_positive_dir:False #回零方向
step_pulse_duration:0.000002
[stepper_y]
step_pin: PE0
dir_pin: PB9
enable_pin: !PE1
microsteps:32
rotation_distance: 40
full_steps_per_rotation:200
endstop_pin: !PA12
position_min: 0
position_endstop:0
position_max:210
homing_speed:50
second_homing_speed: 2
homing_retract_dist:0
homing_positive_dir:false
step_pulse_duration:0.000002
[stepper_z]
step_pin: PB5
dir_pin: !PB4
enable_pin: !PB8
microsteps: 32
rotation_distance:8
full_steps_per_rotation: 200
#gear_ratio: 40:20
endstop_pin: !PA11
position_endstop:0.17
position_max: 210
position_min: 0.17
homing_speed:5
second_homing_speed: 2
homing_positive_dir:false
step_pulse_duration:0.000002
# [tmc2208 stepper_x]
# uart_pin: PA5
# run_current: 0.8
# interpolate: True
# stealthchop_threshold: 0
# [tmc2208 stepper_y]
# uart_pin: PC13
# run_current: 0.8
# interpolate: True
# stealthchop_threshold: 0
# [tmc2208 stepper_z]
# uart_pin: PC7
# run_current: 0.8
# hold_current: 1.0
# interpolate: True
# stealthchop_threshold: 99999
#####################################################################
# 挤出机
#####################################################################
[extruder]
step_pin: PD6
dir_pin: !PD3
enable_pin: !PB3
rotation_distance:25.12
gear_ratio: 30:10 #减速比
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: PC3
sensor_pin: PC1
# sensor_type: ATC Semitec 104GT-2
sensor_type: NTC 100K MGB18-104F39050L32
min_temp: -100 #最小温度
max_temp: 240 #最大温度
max_power:0.7 #最大功率
min_extrude_temp: 60
control = pid
#PID_CALIBRATE HEATER=extruder TARGET=170
pid_kp = 14.488#先将模型冷却风扇设置为25%的转速( M106 S64 ),然后发送命令PID_CALIBRATE HEATER=extruder TARGET=245 它将执行一个PID校准程序,将持续约5分钟,完成后控制台将返回PID数值,将其复制到配置文件即可。
pid_ki = 3.715
pid_kd = 14.125
pressure_advance: 0.02 #压力提前数据
pressure_advance_smooth_time: 0.09
max_extrude_cross_section:0.64#500挤出线条横截面的最大面积(以平方毫米为单位) (例如:挤出线宽乘层高)这个设置能防止在相对较小的XY移动时产生过度的挤出,默认值是:4.0 * 喷嘴直径 ^ 2
instantaneous_corner_velocity: 10.000 #两次挤出之间最大的速度变化(以毫米每秒为单位)
max_extrude_only_distance: 100.0# 一次挤出或回抽的最大长度(以毫米耗材的长度为单位)
max_extrude_only_velocity:5000# 最大的挤出和回抽速度(以毫米每秒为单位)
max_extrude_only_accel:2000# 和加速度(以毫米每二次方秒为单位)
step_pulse_duration:0.000002
# [tmc2208 extruder]
# uart_pin: PA10
# interpolate: True
# run_current: 0.8
# hold_current: 0.8
# sense_resistor: 0.110
# stealthchop_threshold:0
#####################################################################
# 回零动作
####################################################################
#####################################################################
# 热床
####################################################################
[heater_bed]
heater_pin: PA0
sensor_type: NTC 100K MGB18-104F39050L32
sensor_pin: PC0
max_power: 1.0
control = pid
pid_kp = 71.039
pid_ki = 2.223
pid_kd = 567.421
min_temp: 0
max_temp: 100
#####################################################################
# 风扇
####################################################################
[temperature_sensor mcu_temp]
sensor_type: temperature_mcu
min_temp: 0
max_temp: 110
[temperature_sensor KINGROONG Pi]
sensor_type: temperature_host
min_temp: 0
max_temp: 100
####################################################################
# 一键预热
#####################################################################
[gcode_macro START_PRINT]
gcode:
{% set BED_TEMP = params.BED_TEMP|default(60)|float %}
{% set EXTRUDER_TEMP = params.EXTRUDER_TEMP|default(220)|float %}
M140 S{BED_TEMP} #加热热床到目标温度
M104 S{EXTRUDER_TEMP}
M190 S{BED_TEMP}
M109 S{EXTRUDER_TEMP}
G90
G28
G1 Z5 F3000
G1 Z0.15 F100
[gcode_macro PAUSE]
rename_existing: BASE_PAUSE
gcode:
# Parameters
{% set z = params.Z|default(10)|int %} ; z hop amount
{% set e = params.E|default(1) %}
{% if printer['pause_resume'].is_paused|int == 0 %}
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE={z} ; set z hop variable for reference in resume macro
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=etemp VALUE={printer['extruder'].target} ; set hotend temp variable for reference in resume macro
# SET_FILAMENT_SENSOR SENSOR=fila ENABLE=0 ; disable filament sensor
SAVE_GCODE_STATE NAME=PAUSE ; save current print position for resume
BASE_PAUSE ; pause print
{% if (printer.gcode_move.position.z + z) < printer.toolhead.axis_maximum.z %} ; check that zhop doesn't exceed z max
G91 ; relative positioning
G1 Z{z} F900 ; raise Z up by z hop amount
{% else %}
# { action_respond_info("Pause zhop exceeds maximum Z height.") } ; if z max is exceeded, show message and set zhop value for resume to 0
SET_GCODE_VARIABLE MACRO=RESUME VARIABLE=zhop VALUE=0
{% endif %}
G1 E-{e} F2100
SAVE_GCODE_STATE NAME=PAUSEPARK
G90 ; absolute positioning
G1 X10 Y0 F6000 ; park toolhead at front center
#M104 S0 ; turn off hotend
SET_IDLE_TIMEOUT TIMEOUT=43200 ; set timeout to 12 hours
{% endif %}
[gcode_macro RESUME]
rename_existing: BASE_RESUME
variable_zhop: 0
variable_etemp: 0
gcode:
# Parameters
{% set e = params.E|default(2.5)|int %} ; hotend prime amount (in mm)
{% if printer['pause_resume'].is_paused|int == 1 %}
#SET_FILAMENT_SENSOR SENSOR=fila ENABLE=1 ; enable filament sensor
#INITIAL_RGB ; reset LCD color
SET_IDLE_TIMEOUT TIMEOUT={printer.configfile.settings.idle_timeout.timeout} ; set timeout back to configured value
{% if etemp > 0 %}
M109 S{etemp|int} ; wait for hotend to heat back up
{% endif %}
RESTORE_GCODE_STATE NAME=PAUSEPARK MOVE=1 MOVE_SPEED=100 ; go back to parked position in case toolhead was moved during pause (otherwise the return zhop can error)
G91 ; relative extruder positioning
M83 ; restore position
{% if printer[printer.toolhead.extruder].temperature >= printer.configfile.settings.extruder.min_extrude_temp %}
G1 Z{zhop * -1} E{e} F900 ; prime nozzle by E, lower Z back down
{% else %}
G1 Z{zhop * -1} F900 ; lower Z back down without priming (just in case we are testing the macro with cold hotend)
{% endif %}
M400
RESTORE_GCODE_STATE NAME=PAUSE MOVE=1 MOVE_SPEED=60
BASE_RESUME ; resume print
{% endif %}
[gcode_macro M205]
gcode:
M105
[gcode_macro END_PRINT]
gcode:
G91
G1 X-2 Y-2 E-3 F300
G1 Z10 F3000
G90
M84
M140 S60
M104 S200
M106 S0
####################################################################
# 共振补偿
#####################################################################
[idle_timeout]
timeout: 3600
# [gcode_macro G40]
# gcode:
# ACCELEROMETER_QUERY
# SET_INPUT_SHAPER SHAPER_FREQ_X=0 SHAPER_FREQ_Y=0
# G28
# M106 S255
# SHAPER_CALIBRATE
# SAVE_CONFIG
# [gcode_macro SHAPER_CALIBRATE]
# rename_existing: RESHAPER_CALIBRATE
# gcode:
# RESHAPER_CALIBRATE FREQ_START=5 FREQ_END=100
# [resonance_tester]
# accel_chip: adxl345
# probe_points:
# 100, 100, 20 # 共振补偿开始的位置
# accel_per_hz: 300
# [adxl345]
# cs_pin: MKS_THR:gpio13
# spi_software_sclk_pin: MKS_THR:gpio14
# spi_software_mosi_pin: MKS_THR:gpio15
# spi_software_miso_pin: MKS_THR:gpio12
# [input_shaper]
# #shaper_freq_x: 96.6
# #shaper_type_x: mzv
# #shaper_freq_y: 136.0
# #shaper_type_y: 2hump_ei
[virtual_sdcard]
path: /home/sola/printer_data/gcodes
[pause_resume]
[exclude_object]
[gcode_macro CANCEL_PRINT]
description: Cancel the actual running print
rename_existing: CANCEL_PRINT_BASE
gcode:
TURN_OFF_HEATERS
CANCEL_PRINT_BASE
G1 X10 F3000
M84
M106 S0
####################################################################
# 断料检测
#####################################################################
# [filament_switch_sensor fila]
# pause_on_runout: True#当设置为 "True "时,会在检测到耗尽后立即暂停打印机。
# runout_gcode:
# G91
# G1 Z10
# G90
# G1 X10 Y10 F3000
# M104 S220
# M105
# M109 S220
# G91
# G1 E30 F3000
# G1 E-27 F9000
# M104 S62
# M105
# M109 S62
# G1 E-50 F300
# SET_HEATER_TEMPERATURE HEATER=extruder TARGET=0
# event_delay: 3.0
# pause_delay: 0.5
# switch_pin:PA1
[display_status]
[verify_heater extruder]
max_error: 120
check_gain_time:120
hysteresis: 10
heating_gain: 2
[verify_heater heater_bed]
max_error: 120
check_gain_time:120
hysteresis: 10
heating_gain: 2
# [probe]
# pin:!MKS_THR:gpio21
# x_offset: 18
# y_offset: 10
# speed:5 #自动调平速度
# samples:3
# samples_result:median
# sample_retract_dist: 1.2 #调平两点之间的抬升高度
# samples_tolerance: 0.05
# samples_tolerance_retries: 3
# [probe]
#z_offset: 0#2.0 #6.25
# [gcode_macro G29]
# gcode:
# G28
# G0 Z10 F1000
# G1 X105 Y105 F1000
# PROBE_CALIBRATE
# [gcode_macro G30]
# gcode:
# BED_MESH_CLEAR #清除调平数据
# G28
# BED_MESH_CALIBRATE #自动调平
# BED_MESH_PROFILE SAVE="name" #保存调平数据
# SAVE_CONFIG
# BED_MESH_PROFILE LOAD="name" #加载调平数据
# [gcode_macro G31]
# gcode:
# TESTZ Z=-1
# [gcode_macro G32]
# gcode:
# TESTZ Z=-0.5
# [gcode_macro G33]
# gcode:
# TESTZ Z=-0.1
# [gcode_macro G34]
# gcode:
# TESTZ Z=0.1
# [gcode_macro G35]
# gcode:
# TESTZ Z=0.5
# [gcode_macro G36]
# gcode:
# TESTZ Z=1
# [gcode_macro G37]
# gcode:
# ACCEPT
# #####################################################################
# # 自动退料
# #####################################################################
# [gcode_macro G50]
# gcode:
# M104 S220
# M105
# M109 S220
# G91
# G1 E30 F3000
# G1 E-27 F9000
# M104 S62
# M105
# M109 S62
# G1 E-50 F300
# M84
# SET_HEATER_TEMPERATURE HEATER=extruder TARGET=0
[duplicate_pin_override]
pins:
PB5
# [display]
# lcd_type:uc1701
# cs_pin: PE11
# a0_pin: PE9
# rst_pin: PE10
# contrast: 63
# encoder_pins:^PE13,^PE14
# click_pin: ^!PE15
# ## Some micro-controller boards may require an spi bus to be specified:
# #spi_bus: spi
# ## Alternatively, some micro-controller boards may work with software spi:
# spi_software_miso_pin:PB5
# spi_software_mosi_pin:PB5
# spi_software_sclk_pin:PB3
# [output_pin beeper]
# pin: PC5
# [neopixel mini12864]
# pin: PE12
# chain_count: 3
# color_order: RGB
# initial_RED: 1.0
# initial_GREEN: 1.0
# initial_BLUE: 0.0
[gcode_macro M109]
rename_existing: M99109
gcode:
#Parameters
{% set s = params.S|float %}
M104 {% for p in params %}{'%s%s' % (p, params[p])}{% endfor %} ; Set hotend temp
{% if s != 0 %}
TEMPERATURE_WAIT SENSOR=extruder MINIMUM={s} MAXIMUM={s+1} ; Wait for hotend temp (within 1 degree)
{% endif %}
#####################################################################
# 风扇
#####################################################################
[fan]
pin:PB1
# [fan_generic fan1]
# pin:PB1
# max_power: 1.0
# kick_start_time: 1.0
# off_below: 0.7
把上面这段直接复制到printer.cfg里面,修改
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
serial:后面改为刚刚读出来的那串东西。
这时候,点击这里:

等重启完成之后,就会惊奇发现已经可以愉快地使用了,用MKS PI的话还可以用HDMI屏幕或者TS35的屏幕,我就喜欢用网页。。