前言

好像已经好久没有写技术类文章了,最近手痒,干脆记录记录自己的最新成果。

关于klipper

klipper是3D打印上位机固件,最早知道的时候还是因为voron 2.4这个项目,当时因为众所周知的原因,voron 2.4这个项目需要的资金预算是非常大的,而我之前的预算非常有限(已经后悔了),而且安装klipper官方文档是推荐使用树莓派基于Octoprint进行安装,但因为全球疫情导致芯片产能不足,导致树莓派价格一直水涨船高,所以我当时考虑的是用主流的marlin固件+mega2560主板方案。

当时采用的RepRap方案,用的marlin 2.0固件

然后呢。

结果做BLV项目的这家伙跳反了,虽然我当时因为预算问题也没采用他项目的那个方案。

于是我现在又考虑将我的marlin固件+mega2560方案替换成用Klipper固件来带动,但是又因为现在树莓派的价格越来越离谱,所以我打算用orange pi zero来代替树莓派完成klipper固件方案。

唉,废话不多说了,直接介绍一下Klipper吧~

klipper固件官方文档:https://www.klipper3d.org

Klipper主要特点

  • 高精度 stepper movement。Klipper 在计算打印机移动时使用应用处理器(例如低成本的 Raspberry Pi)。应用处理器确定何时步进每个步进电机,它压缩这些事件,将它们传输到微控制器,然后微控制器在请求的时间执行每个事件。每个步进器事件的调度精度为 25 微秒或更高。该软件不使用运动学估计(例如 Bresenham 算法),而是根据加速度物理学和机器运动学物理学计算精确的步进时间。更精确的步进运动转化为更安静、更稳定的打印机操作。

  • 同类最佳表现。Klipper 能够在新旧微控制器上实现高步进率。即使是旧的 8 位微控制器也可以获得超过每秒 175K 步的速率。在较新的微控制器上,速率可能超过每秒 500K 步。更高的步进速率可实现更高的打印速度。步进事件计时即使在高速下也能保持精确,从而提高整体稳定性。

  • Klipper 支持带有多个微控制器的打印机。例如,一个微控制器可用于控制挤出机,而另一个控制打印机的加热器,而第三个控制打印机的其余部分。Klipper 主机软件实现时钟同步以解决微控制器之间的时钟漂移。启用多个微控制器不需要特殊代码——它只需要在配置文件中多加几行。

  • 通过简单的配置文件进行配置。无需重新刷新微控制器即可更改设置。Klipper 的所有配置都存储在一个可以轻松编辑的标准配置文件中。这样可以更轻松地设置和维护硬件。

  • Klipper 支持“平滑压力推进”——一种解释挤出机内压力影响的机制。这减少了挤出机“渗出”并提高了印刷边角的质量。Klipper 的实施不会引入瞬时挤出机速度变化,这提高了整体稳定性和鲁棒性。

  • Klipper 支持“输入整形”以减少振动对打印质量的影响。这可以减少或消除打印中的“振铃”(也称为“重影”、“回声”或“波纹”)。它还可以让人们获得更快的打印速度,同时仍然保持高打印质量。

  • Klipper 使用“迭代求解器”从简单的运动学方程计算精确的步进时间。这使得将 Klipper 移植到新型机器人变得更加容易,并且即使在复杂的运动学中也能保持计时精确(不需要“线段分割”)。

  • 便携式代码。Klipper 适用于基于 ARM、AVR 和 PRU 的微控制器。现有的“reprap”式打印机无需修改硬件即可运行 Klipper - 只需添加一个 Raspberry Pi。Klipper 的内部代码布局也使其更容易支持其他微控制器架构。

  • 更简单的代码。Klipper 对大多数代码使用非常高级的语言 (Python)。运动学算法、G 代码解析、加热和热敏电阻算法等都是*用 Python 编写的。这使得开发新功能变得更加容易。

  • 自定义可编程宏。可以在打印机配置文件中定义新的 G 代码命令(无需更改代码)。这些命令是可编程的——允许它们根据打印机的状态产生不同的动作。

  • 内置 API 服务器。除了标准的 G-Code 接口外,Klipper 还支持丰富的基于 JSON 的应用程序接口。这使程序员能够通过对打印机的详细控制来构建外部应用程序

安装klipper

klipper安装有两种方法,一种是直接在官方文档里进行安装,而我采用的是第二种,直接使用脚本安装,这样更简单,也更方便,这里我使用的是kiauh安装助手这个脚本:

kiauh是由大神th33xitus编写的专门用于在linux设备上安装klipper及相关依赖和网页界面的脚本

项目地址:https://github.com/th33xitus/kiauh

然后开始操作

首先,下单orange pi zero后在Armbian官网找到orange pi zero,下载Armbian Buster系统
Armbian官网里的orange pi zero项目

地址:https://www.armbian.com/orange-pi-zero/

然后找到Armbian Buster系统镜像下载下来。
这里需要准备一张8G以上的SD卡(请使用大品牌高速卡,class10以上)

在香橙派中插入8G以上的TF卡进行格式化,然后使用win32 Disk Image将Armbian Buster系统镜像烧写进SD卡。

写入成功

将写入好后的tf卡插入pi zero,再插Micro USB接口上电开机,然后在orange pi zero网线接口直接连接好网线,到路由器的后台找到orange pi ip地址,没有网线的话也可以使用usb-ttl工具连接串口(波特率115200)。

打开路由器的后台,每个路由器有自己的后台,找到香橙派的端口,打开

使用ssh工具登录pi zero(我使用的是MobaXterm)

然后输入默认登录用户名:root,敲击回车,再输入密码:1234

登陆进去后重新设置你的新的密码

密码设置好完成后会让你选择bash风格还是zsh风格的command shell,我选择的是zsh(有代码高亮,好用)。

然后修改源:

输入命令

nano /etc/apt/sources.list

回车

然后把列表里面的deb开头用#注释掉,或者全部删除,然后再添加进去以下源地址

deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-proposed main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
deb http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-proposed main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
deb-src http://mirrors.ustc.edu.cn/ubuntu-ports/ bionic-updates main multiverse

列表修改完后:

输入Ctrl+O 保存

Enter 确认

Ctrl+X 退出

再次输入

sudo nano /etc/apt/sources.list.d/armbian.list

进入界面后可以直接输入#号键注释原生源

再输入Ctrl+O 保存

Enter 确认

Ctrl+X 退出

然后更新系统库(可更新可不更,不更并不影响使用)

sudo apt-get update

更新完成后配置无线网

其实以后打算一直用网线的可以忽略这一步,什么时候都可以配置的。

出现下面选项后我们选择Network回车

再选择WIFI回车

找到我们自己的WiFi名后,回车输入自己的WiFi密码回车

再按ESC键返回然后输入ifconfig查看网络信息

使用kiauh脚本安装klipper

切换到klipper用户

su klipper

切换到klipper用户根目录
中间有空格

cd ~

下载kiauh安装助手

git clone https://github.com/th33xitus/kiauh.git

网速不好的话可以git国内源

git clone https://gitee.com/zm112/kiauh.git

然后输入

./kiauh/kiauh.sh

运行脚本,可以看到这个界面

然后就特简单了

先选1,再回车进入安装界面

再选1安装klipper

完成后选2安装Moonraker

然后再选择一个你喜欢的网页界面,此时我选择的是Fluidd

如果你要用摄像头的话,可以同时安装MJPG-Streamer(这里因为我没有摄像头所以选的N)

安装完成(按Q返回确认一下,一般来说三条绿的说明已经安装成功)

结语

kiauh安装助手安装的过程中或许需要等待很久,这个不要着急,因为国内网速不好等原因,可能安装还会报错,所以可以按Q返回界面,然后按3卸载掉,然后重新安装就可以了。