浅谈klipper固件

描述

最近圈子里的朋友陆陆续续经历了阳到阳康,当然,我也不例外,从上周四开始便连续4天反反复复的烧和退;直到第五天,人感觉没了半条命,好在老天依然眷顾着我,终于在这两天回归了正常人的生活!希望大家保护好自己,新冠非感冒,避免第二次变成小阳人啦!

接下来我们来聊一聊klipper固件。klipper是3D打印机开源固件的其中一种,它结合了树莓派和打印机主板的强大功能,以实现更好的打印机控制,即以更快的打印速度和更好的精度和控制运行打印机。它相比Marlin固件有着不可多得的优势,即打得又快又好!有望成为未来10年内3D打印固件的霸主!

klipper作为一个开源固件,开源地址如下:

 

https://github.com/Klipper3d/klipper

 

它的开发文档也很齐全,并且大部分的文档也都有翻译成中文的版本:

 

http://www.klipper3d.org/zh/

 

其次,它还能搭配许多更高级的硬件来实现更牛逼的功能,例如电机振动抑制、激光雷达调平、摄像头延时摄影、模型缺陷检测等强大的功能。传统的3d打印固件架构如下所示:

固件

而klipper做了一些变革,它主要由两块来构成,分别是:Mcu固件+klipper上位机固件,整体架构如下所示:

固件

以往,3d打印机固件(单片机端运行),它需要完成gcode命令解析(字符串解析)、路径规划运算、温度pid计算等等,它将这一系列复杂的操作都在一个mcu上进行完成了,因此软件方面很难有特别大提升,但这样的稳定性却是相对来说比较高的,维护起来也非常方便;而Marlin固件作为目前全世界最活跃的3d打印固件,更新迭代速度极快,后续我相信会做出更大的改善,支持更多牛逼的功能来与klipper以及其它3D打印固件相互竞争。

固件

klipper相对于Marlin固件来说则有很大的不同了,它将这些复杂的解析逻辑、运算逻辑等等全部扔在了另外一个执行单元(通常是树莓派、香橙派之类的处理器上),处理完成后将对应的消息块进行16进制指令封装,然后将其发送给klipper的mcu固件,mcu固件不需要去做太多太耗时,太耗资源的操作,因此打印效率就大大提高了!但Klipper的缺点是使用的开发平台成本较高,而且多套系统相互结合,使得它的稳定性无法与Marlin相媲美;另外,如果对于不懂二次开发的玩家,原本3d打印自带的串口屏也是无法和klipper进行适配的。再者,klipper固件的版本更新迭代周期也比较缓慢,基本上很久才更新一次。

固件

因此,对于Marlin和Klipper固件,各有各的优势,我只能说“两害相权取其轻”吧。对于如何适配klipper固件,我学习了相应的知识以后尝试的自己配置,最后也成功了,我是用Anycubic的vyper来进行适配的。要在Anycubic Vyper上安装Klipper,我们需要相应的条件,如下所示:

香橙派2(如果有树莓派或者带debian或者ubuntu系统的开发板也可以)

香橙派串口线

MainsailOS

Anycubic Vyper 3D打印机

一根网线

接下来参考OrangePi_Zero2_H616_用户手册_v4.0中的3.31章节中的,通过Kiauh安装Klipper固件上位机的方法即可成功!

固件

以下是我使用klipper固件的实操结果。

由于klipper的前端本质是基于Udp Socket进行通信的,因此我们所见到的这些开源的如MainsailOS 或 FluiddPi Web Ui,它们的本质也是这样来进行通信的,对于我们这种嵌入式玩家来说,Web Ui的东西我就不太感兴趣了,因此可以用Qt或者其它的UI框架来替代它,毕竟Web之类的东西运行在嵌入式平台也是挺重的。因此后续可以用我自己写的这个上位机模拟相应的功能实现,如下所示,目前使用的是Qt + Marlin的gcode操作逻辑。

  审核编辑:汤梓红

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分