在 raspberry pi 5 上安装 klipper 的一点经验

  • fennng 

刚刚使用 Klipper 打印了一个拉丝测试件,效果真的比原来好太多了。基本没有拉丝了,原来直接用 Marlin 打的时候拉丝非常多。

Klipper 是一个使用电脑来控制 3D 打印机打印的固件和软件。Klipper 客户端固件要刷进打印机,非常小,只有 27K。服务端安装在电脑上,然后打印指令会由服务端发送给客户端,客户端再控制打印机进行打印。通常 Klipper 是安装在树莓派这种单板电脑上。今天折腾了一下,记录一下经验。

网上大多的教程是直接让刷 OctoPi 或者 Mainsail OS。OctoPi 现在还不支持树莓派 5,所以我是用不了。Mainsail 支不支持没去查,我并不想装这种专用的打印机系统。所以我是直接在树莓派的官方系统 Raspbian 上安装的 Klipper,相关资料在网上就比较少了,网上都是转来转去相同的方法。

最开始我是想跟着 Klipper 官方的教程安装的:https://www.klipper3d.org/Installation.html

没想到没走两步就走不下去了,因为它也是基于 OctoPi 系统的,我起初以为是通用的,没想到不是。到 ./klipper/scripts/install-octopi.sh 这步就失败了,说找不到 python-dev。我发现这个安装脚本是系统相关的,我发现 scripts 文件夹还有好多其它系统的脚本,比如 Ubuntu、CentOS 等。但是没有 Raspbian,所以没走通。虽然走不通,不过上面这个链接的其它资料还是有用的,可以帮助了解安装。

然后网上搜索,发现了这个工具 https://github.com/dw-0/kiauh 非常好用。跟着里面的说明一步一步走就行了,很快就把编译需要的工具都装上了。不过这个说明只告诉你怎么安装工具,只是半个说明。运行 KIAUH 后,就会有个界面,让你选择要安装什么。选择 1 进入安装界面,我依次选择了 1 Klipper、2 Moonraker、3 Mainsail,其他的我没有安装。我之前已经安装过 OctoPrint,我还怕端口冲突,没想到这个脚本把我之前安装的 HAProxy 给删除了。安装好后 Mainsail 占用了原来 OctoPrint 使用的 80 端口。但是 OctoPrint 还是可以在 5000 端口使用。

安装好后 Mainsail 就开始运行了,在 80 端口访问。

进去后到 MACHINE 里面找到 printer.cfg,保留第一行 [include mainsail.cfg],其它的内容删除,然后复制以下链接的配置文件进去。因为我用的是 Ender 3 V2,所以用这个。选择你自己相应的打印机的文件就行。

https://github.com/Klipper3d/klipper/blob/master/config/printer-creality-ender3-v2-2020.cfg

以上文件还有一些重要的信息在文件开头,会告诉你使用 make menuconfig 生成编译配置文件要选的选项(和你的打印机匹配)。

现在服务端已经安装完成,下一步是把客户端固件刷进打印机,不然打印机可不会听树莓派的。

我基本上就跟着这个教程走了几步:https://github.com/BenD780x9/Klipper-for-Ender_3_v2?tab=readme-ov-file。做到第五步吧,第六步看不懂,跳过。第七步我上面有讲到,它这边讲的 printer.cfg 文件放在 ~ 文件夹我感觉是不对的,因为我开始那样放没用。应该就是直接在 Mainsail 里面编辑那个 printer.cfg 文件就行了,那个文件是在 /config 底下。

客户端刷进去后,把树莓派和打印机连在一起,在 Mainsail 里重启 Klipper 就工作了。虽然编译的时候设置的是UART啥的接口,我还以为要从主板上接呢, 其实就是用USB线接打印机的USB口就行。

我安装的是 CR Touch,我没有使用 BL Touch 的那些校正配置,直接测试打印是成功的。不过我现在 CR Touch 红灯闪烁不知道是怎么了,重新打印了一次基本成功,只是没有看到 CR Touch 找平。

所以还是要把 CR Touch 设置一下,于是在网上找了下,得出以下配置,BL Touch 和 CR Touch 的设置是不同的,不能通用。https://www.reddit.com/r/klippers/comments/qgyfms/will_a_cr_touch_work_with_klipper_config_changes/

 

# CRTouch Probe Configuration #################################################
[bltouch]
# https://klipper.discourse.group/t/ender-3-v2-cr-touch/3245
# https://www.klipper3d.org/Probe_Calibrate.html
sensor_pin: ^PB1
control_pin: PB0
x_offset: -31
y_offset: -41
z_offset: 0 # Must be 0 or conflicts with `#*# z_offset` in the auto-generated section at the bottom of this file. See https://www.youtube.com/watch?v=vduYl9Rw5iI
stow_on_each_sample: False
probe_with_touch_mode: True

[bed_mesh]
speed: 120
horizontal_move_z: 5
mesh_min: 10, 10
mesh_max: 190, 190
probe_count: 3, 3 # Number of points to probe
fade_start: 1.0
fade_end: 10.0
fade_target: 0.0

 

加上上面的配置后,我的 CR Touch 熟悉的紫灯亮了。说明之前其实一直在用的是原来的 Endstop Z 开关,因为我没有拔掉,只是之前刷的 Mriscoc 的固件不会去使用它。刚才打印了两次根本没有使用 CR Touch。为了屏蔽 Endstop Z,我修改了 [stepper_z]。

 

[stepper_z]
endstop_pin: probe:z_virtual_endstop
step_pin: PB6
dir_pin: !PB5
enable_pin: !PC3
microsteps: 16
rotation_distance: 8
position_min: -2
position_max: 250

 

然后我发现一个大问题,因为 Home 的时候,CR Touch 的针碰不到热床,所以打印头会一直往下走,不会停。赶紧跟着官方的教程加上以下配置:https://www.klipper3d.org/BLTouch.html

 

[safe_z_home]
home_xy_position: 100, 100 # Change coordinates to the center of your print bed
speed: 50
z_hop: 10 # Move up 10mm
z_hop_speed: 5

现在我的 CR-TOUCH终于正常工作了。

又试打了一下,发现 CR-TOUCH工作后, 打印出来的效果又好了一点, 特别是第一层, 原来第一次压得太紧。我没还没生成高度图呢。

执行 以下指令生成高度图

M190 S60

G28

BED_MESH_CALIBRATE

SAVE_CONFIG

如果你看到这个错误, No trigger on probe after full movement, 你可能要把 position_min 调小一点。

发表评论

您的电子邮箱地址不会被公开。 必填项已用*标注