將啟龐KP3S改為Klipper
我的KP3S已經(jīng)買(mǎi)了一年多了,也打了不少模型,當(dāng)然一開(kāi)始我覺(jué)得打印效果并不好,一些操控啥的,我自己也覺(jué)得不太舒適,我就自己下載了Marlin,自己修改Marlin后,將固件下載進(jìn)去,并且用了相當(dāng)長(zhǎng)的時(shí)間。(調(diào)的時(shí)候別說(shuō)多艱苦?。?/p>
當(dāng)然,后面klipper出來(lái)之后,我自己也研究了相當(dāng)一段時(shí)間(其實(shí)熟悉Linux的話還真的不是很難),我選擇的是MKS PI來(lái)做的klipper,商品的網(wǎng)址:https://item.taobao.com/item.htm?spm=a21n57.1.0.0.67d3523cF2d9pb&id=677753631669&ns=1&abbucket=14&mt=
這時(shí)候會(huì)存在兩種方式,一種是直接用MKS PI提供的鏡像,MKS已經(jīng)針對(duì)自己的PI是配好armbian的鏡像(為什么不是Ubuntu?), 并且鏡像里面已經(jīng)安裝好klipper和各種插件,一些必備的腳本也做好了,比如U盤(pán)自動(dòng)掛載等等,都是做好了的。

我也為MKS PI打印了一個(gè)小盒子,雖然有點(diǎn)丑,等我有空了自己畫(huà)一個(gè)。

喜歡折騰的我當(dāng)然是自己做自己的鏡像啦,這里就不詳細(xì)說(shuō)明我是怎么制作鏡像的了,過(guò)程有點(diǎn)復(fù)雜,初學(xué)或者不了解ARM Linux的建議直接使用MKS提供的鏡像,這差別不大的。
在有鏡像的MKS PI上,第一次需要通過(guò)串口查找到ip,我使用的是MobaXterm這個(gè)工具,當(dāng)然也可以使用putty這些,使用typeC數(shù)據(jù)線連接電腦后:


打開(kāi)串口后可能要敲一下回車(chē)才能出現(xiàn)這個(gè)。然后輸入:sudo ifconfig,回車(chē),會(huì)讓提示你輸入密碼,密碼是:makerbase, 就會(huì)出現(xiàn)下圖:

這樣我就知道自己的ip地址是192.168.211.20, 這個(gè)不同人的網(wǎng)絡(luò)地址是不一樣的。然后直接瀏覽器打開(kāi)這個(gè)地址,就發(fā)現(xiàn)自己登錄了fluidd的web了(噢對(duì)了,一定要連接網(wǎng)線或者wifi模塊,要聯(lián)網(wǎng)要聯(lián)網(wǎng)要聯(lián)網(wǎng)?。?/p>
能進(jìn)來(lái)說(shuō)明成功了一半了,然后用USB線把KP3S和MKS PI連接起來(lái)(像聯(lián)機(jī)打印那樣連接MKS PI的USB 口),在MobaXterm上輸入:ls /dev/serial/by-id/*, 會(huì)出現(xiàn)一段端口:

再回到網(wǎng)頁(yè),修改printer.cfg,可以直接用我做好的基礎(chǔ)版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#打印機(jī)類(lèi)型
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#方形拐角速度
#####################################################################
# 運(yùn)動(dòng)和驅(qū)動(dòng)參數(shù)
####################################################################
[stepper_x]
step_pin: PE3
dir_pin: PE2
enable_pin: !PE4? ? ? ? ? ?#使能引腳
microsteps: 32? ? ? ? ? ? ? #細(xì)分
rotation_distance: 40? ? ? ? #主動(dòng)輪周長(zhǎng)mm
full_steps_per_rotation:200? #單圈脈沖數(shù)量
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
#####################################################################
#? ?擠出機(jī)
#####################################################################
[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? ? ? ? ? # 進(jìn)入擠出機(jī)的耗材上標(biāo)的直徑(以毫米為單位)
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#先將模型冷卻風(fēng)扇設(shè)置為25%的轉(zhuǎn)速( M106 S64 ),然后發(fā)送命令PID_CALIBRATE HEATER=extruder TARGET=245 它將執(zhí)行一個(gè)PID校準(zhǔn)程序,將持續(xù)約5分鐘,完成后控制臺(tái)將返回PID數(shù)值,將其復(fù)制到配置文件即可。
pid_ki = 3.715
pid_kd = 14.125
pressure_advance: 0.02? ?#壓力提前數(shù)據(jù)
pressure_advance_smooth_time: 0.09
max_extrude_cross_section:0.64#500擠出線條橫截面的最大面積(以平方毫米為單位) (例如:擠出線寬乘層高)這個(gè)設(shè)置能防止在相對(duì)較小的XY移動(dòng)時(shí)產(chǎn)生過(guò)度的擠出,默認(rèn)值是:4.0 * 噴嘴直徑 ^ 2
instantaneous_corner_velocity: 10.000? ?#兩次擠出之間最大的速度變化(以毫米每秒為單位)
max_extrude_only_distance: 100.0#? ?一次擠出或回抽的最大長(zhǎng)度(以毫米耗材的長(zhǎng)度為單位)
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
#####################################################################
# 回零動(dòng)作
####################################################################
#####################################################################
# 熱床
####################################################################
[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
#####################################################################
# 風(fēng)扇
####################################################################
[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?
####################################################################
# 一鍵預(yù)熱
#####################################################################
[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} #加熱熱床到目標(biāo)溫度
? ? 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
####################################################################
# 共振補(bǔ)償
#####################################################################
[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? # 共振補(bǔ)償開(kāi)始的位置
# 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
####################################################################
# 斷料檢測(cè)
#####################################################################
# [filament_switch_sensor fila]
# pause_on_runout: True#當(dāng)設(shè)置為 "True "時(shí),會(huì)在檢測(cè)到耗盡后立即暫停打印機(jī)。
# 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? ? ? ? ? ? ? #自動(dòng)調(diào)平速度
# samples:3
# samples_result:median
# sample_retract_dist: 1.2? #調(diào)平兩點(diǎn)之間的抬升高度
# 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? ? ? #清除調(diào)平數(shù)據(jù)
#? ? ?G28? ??
#? ? ?BED_MESH_CALIBRATE? #自動(dòng)調(diào)平
#? ? ?BED_MESH_PROFILE SAVE="name" #保存調(diào)平數(shù)據(jù)
#? ? ?SAVE_CONFIG
#? ? ?BED_MESH_PROFILE LOAD="name" #加載調(diào)平數(shù)據(jù)
# [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
# #####################################################################
# #? ?自動(dòng)退料
# #####################################################################?
# [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 %}
#####################################################################
#? ? ? ? ? ? ? 風(fēng)扇
#####################################################################
[fan]
pin:PB1
# [fan_generic fan1]
# pin:PB1
# max_power: 1.0
# kick_start_time: 1.0
# off_below: 0.7
把上面這段直接復(fù)制到printer.cfg里面,修改
[mcu]
serial: /dev/serial/by-id/usb-1a86_USB_Serial-if00-port0
serial:后面改為剛剛讀出來(lái)的那串東西。
這時(shí)候,點(diǎn)擊這里:

等重啟完成之后,就會(huì)驚奇發(fā)現(xiàn)已經(jīng)可以愉快地使用了,用MKS PI的話還可以用HDMI屏幕或者TS35的屏幕,我就喜歡用網(wǎng)頁(yè)。。