升腾gi945作为klipper上位机

最近攒了一台3D打印机(其实是第二台了),关于之前的两台打印机最近应该也会水两篇文,不过还是先把最近的写了。

Marlin vs. Klipper  

之前一直用的是Marlin固件,但是还是颇有不便,打印的流程经常是这样的:

  1. 在电脑上把模型用cura切片,发现忘记拿sd卡了
  2. 走到打印机前面拔下sd卡
  3. 把sd卡插到读卡器上再把读卡器插到电脑上,然后把文件保存到sd卡
  4. 把读卡器拔下来再把sd卡拔下来
  5. 走到打印机前再把sd卡插回去
  6. 等待主板重启完毕再用编码器选择文件

Klipper是上位机通过串口控制打印机,只要安装了Moonrakerfluidd插件就能通过网页控制打印机并直接上传文件进行打印,而且Klipper还有更多据说能提高打印质量的功能,详见此处

尝试玩客云  

之前用玩客云整了个单臂路由,用了一段时间之后就吃灰了,于是想着用玩客云当上位机,网路上也有一些利用玩客云作上位机的文章,但是因为我的主板是1.3版本的,刷了高版本的armbian之后只有一个usb口是可用的,但是我又需要一个usb口和打印机通信,另一个装usb网卡,低版本的armbian虽然两个usb口都能用了,但是没有usb网卡的驱动,编译者也没有编译kernel headers,想自己编译驱动也不行,在恩山看到有人说这是dtb的问题,于是又去学习了一下linux设备树,自己对照了两个版本的dtb魔改了一下,可惜失败了,于是放弃了此方案。

升腾gi945  

在闲鱼翻找了一下,找到了一款颜值较高,价格低廉且性能“够用”的小主机:升腾gi945, cpu是n270, 1g内存再加一个16g的ssd, 80块到手,很遗憾没赶上几年前35块到手的好时候。

上一任机主装的是centos, 但是卡在开机界面不知道出了什么毛病,因为cpu是32位的,于是选择了debian, 写好启动盘,但是发现bios里面并没有启动项相关的选项,网上搜索了一番只搜到一篇文章,跟着文章里的步骤改了一个bios设置,然后在开机时狂按f12手动选启动项,比较奇怪的是一开始识别不到我的u盘,选了usb cdrom然后提示Operating System Not Found,再重启继续狂按f12, 这时候就能识别到u盘了,不是很懂为什么。

刷好系统之后又出毛病了,网卡驱动有了,也能连上wifi, ssh上去也没问题,但是能看到系统一直在报错,报错内容大致如下:

ata1.00: exception Emask 0x0 SAct 0x0 SErr 0x0 action 0x6 frozen
ata1.00: BMDMA stat 0x24
ata1.00: failed command: WRITE DMA
......

一开始我并没有在意,但是后来发现只要ssh连上进去操作一段时间机器就马上卡死,只有重启可解,一开始怀疑是驱动的锅,于是上github找了另一个驱动,后来发现也一样,搞了数小时后忽然福至心灵:之前似乎在bios里改了一项sata相关设置,sata的全称不就是Serial ATA,而报错似乎又和ata有些关系,不妨把它改回去试试。把设置改了以后又重新刷了一下系统,这次没有任何报错了,直接ssh上去用无比方便的KIAUH装好了相关软体。

fluidd打印中

Klipper的一个优点就是更新配置文件方便,只要重启一下klipper就行了,不像marlin要重新编译、刷入固件。我的配置文件在此,可供参考。

顺便推荐一个cura的插件:Cura2MoonrakerPlugin,在cura里切片完就可以直接通过Moonraker的api上传,这样做往往感到便利。

直接上传