无树莓派安装klipper固件

最近翻出了我的一台3d打印机,是21年买的。

记得那个时候我刚代表小学参加一个上海市的3d打印比赛,在4个月内学会了3d建模并且与小组的其他3个人共同建模了母校(现在忘光了)。

当时只拿了第二名,不过第一名是也是我们学校的。

反正回来之后对于3d打印很感兴趣,干脆自己买了一台放在家里玩。于是购入一台创想三维的Ender-3 v1。

现在翻出来,首先随便打印了个东西,发现打印速度、精度都好像有点过时。这三年来3d打印,尤其是小型的打印机发展速度太快了。

于是上网进行搜索,发现换一个固件可以快速有效的解决问题,把打印机的性能大幅提升,于是开始折腾。

首先确定一个目标。经过搜索发现现在最热门的插件是Klipper固件,这个固件能够大幅增加打印速度和精度,并且可以更方便的操控打印机。

随后发现这个固件将原本由打印机内的单片机承担的任务拆分为了上位机和下位机分别承担。上位机一般是树莓派或者香橙派一类的,下位机就是打印机。这样小单片机的压力大大减少,速度精度也就上去了。

但是我没有派…想了想发现上位机其实好像可以是虚拟机。搜索发现windows自带的wsl完全可以胜任。那么明确了目标,就找到了一个前人撰写的教程,真是完美解决了我的问题。

这样我就可以通过windows wsl运行的ubuntu虚拟机作为上位机,用一跟usb线连接打印机和电脑就可以与正常方法一样了。

后面想了想发现这人还真是聪明,wsl作为windows子系统占用非常小,至少比vm或者hyper-v重新部署一个ubuntu系统小太多了。功能也是一样的,在资源管理器里也可以方便的查看wsl文件,后期还可以拓展。

接下来就要按照教程开始了。wsl我以前部署过,也是方便了很多。这里还是给出Microsoft的教程

打住,看了前人的教程,我突然发现没有在打印机上安装klipper固件的部分。我又找到了一个YouTube视频进行补全,你也可以配合着观看。

看了视频,于是我先按照创想三维的Ender-3 v2刷固件教程进行操作,把主板拆开来查看主板型号,发现我的是v4.2.2。一定要搞清楚主板型号,不然就刷不上固件了!!

另外提一嘴,不要按照创想三维的Ender-3 v1刷固件教程,费老大劲把机器拆开了刷机。实测Ender-3 v2也可以用在Ender-3 v1上。

知道了主板型号,就可以按部就班的开始了。我跳过了教程中准备windows这一部分(因为我根本就没刷固件),按照前人的教程下载好kiauh,安装完了klipper以及依赖,接着就开始准备刷固件了。

在ubuntu中进入klipper文件夹,随后:

1
make menuconfig

我找到了klipper推荐的config文件,同样的,上面虽然写着Ender-3 v2适用,但是v1也能完全适配。

其中写道:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
# This file contains pin mappings for the stock 2020 Creality Ender 3
# V2. To use this config, during "make menuconfig" select the
# STM32F103 with a "28KiB bootloader" and serial (on USART1 PA10/PA9)
# communication.

# If you prefer a direct serial connection, in "make menuconfig"
# select "Enable extra low-level configuration options" and select
# serial (on USART3 PB11/PB10), which is broken out on the 10 pin IDC
# cable used for the LCD module as follows:
# 3: Tx, 4: Rx, 9: GND, 10: VCC

# Flash this firmware by copying "out/klipper.bin" to a SD card and
# turning on the printer with the card inserted. The firmware
# filename must end in ".bin" and must not match the last filename
# that was flashed.

# See docs/Config_Reference.md for a description of parameters.

按照注释在menuconfig中选择合适的选项,随后按ESC,再按Y退出,输入:

1
2
make clean
make

开始构建klipper.bin,这就是我们需要的文件。

同时按照创想三维的教程把SD卡格式化。

构建完成后,在kliiper/out文件夹中找到Klipper.bin文件,随后复制到SD卡内,改名为1234,123,什么都行,我也不知道为什么要改,创想三维的教程里说最好改一下。

另外提一嘴,我的3D打印机附赠了一张1GB的SD卡,前人的教程中说需要至少4GB,不过我1GB的卡正常流畅运行klipper。

把SD卡插入3d打印机,发现打印机屏幕亮起但啥也不显示,等了好几分钟也这样。最后发现这是正常的,要连上上位机才开始显示。

等个一分钟让打印机烧录一下固件。随后找一根usb线,连接打印机和电脑。这个时候发现前人的教程出现问题了,建议按照我接下来的。

首先按照前人的指示,找到了3d打印机的COM端口,我的是COM5.如果你不清楚就多插拔几次usb,看看哪个设备一直出现消失就行了。

然后在cmd里(不是ubuntu!!!)运行

1
usbipd list

接下来前人的教程就出现问题了,因为usbipd更新了

首先在cmd中

1
2
3
wsl --list
wsl --setdefault Ubuntu
wsl --list

然后ubuntu中

1
2
sudo apt install linux-tools-virtual hwdata
sudo update-alternatives --install /usr/local/bin/usbip usbip `ls /usr/lib/linux-tools/*/usbip | tail -n1` 20

接着不一样了,首先在ubuntu中输入

1
lsusb

记住此时有几个输出,比如我有两个输出,是

1
2
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

然后在cmd中输入

1
usbipd bind --busid <busid> --force

上面命令输完应该会输出一个空行

然后再

1
usbipd attach --wsl --busid <busid>

输出应该是类似于:

1
2
usbipd: info: Using WSL distribution 'Ubuntu' to attach; the device will be available in all WSL 2 distributions.
usbipd: info: Using IP address 127.0.0.1 to reach the host.

这样就完成了,再次到ubuntu中输入lsusb

应该会发现多出一个usb设备,我的是:

1
2
3
Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub
Bus 001 Device 004: ID 1a86:7523 QinHeng Electronics CH340 serial converter
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

这样打印机就接入wsl了,接下来按照上面给出的youtube视频继续操作就可以了,我直接复制了ender3 v2的cfg文件,发现也能用。

一切就绪,klipper中应该就会显示打印机的相关信息,打印机的屏幕上也会显示数据了。现在可以开始打印了,真是可喜可贺,可口可乐🎉🎉🎉