南极熊导读:3D打印机本身是由多种机械零部件搭建组合起来的产物,但3D打印机固件会赋予它极大的“生命力”。固件从切片机读取G代码并将其转换为控制打印机的电脉冲,从而制造出具有精细结构的物体。目前,Klipper 是最火的桌面级3D打印机固件之一,它以极大的优势占据着固件市场的一席之地。作为全球消费级FDM 3D打印机产地之一,中国众多厂商(安克创新、创想三维等)已经采用这套固件,推出高速版本的FDM机器,打印速度高达 250mm/s ,是普通固件机器的5倍。那么Klipper 的具体功能有哪些?如何运行?优势有哪些?与市场中较为火爆的Marlin有什么区别,该如何选择呢?别着急,南极熊带您一探究竟!
控制打印机的打印过程远不止表面上看到的那么简单,它往往需要进行数百万次计算才能控制步进电机、风扇和加热器。快速和高精度的打印过程更是对固件提出了相当高的要求。Klipper 是由 GitHub 用户KevinOConnor开发的开源 3D 打印机固件。与传统的 3D 打印机固件不同,Klipper与3D打印机主板以及额外的单板计算机(如Raspberry Pi 或类似产品)一起使用。Klipper 利用额外的计算能力来辅助主板处理命令,让用户打印更快、更准确。
Klipper的功能
Klipper固件是一个独特的程序,它为用户提供特殊功能,从而帮助打印机提高打印性能。Kipper的功能还真不少,有十一大最具特色的功能和许多支持其他标准的3d打印机功能:
最具特色的功能:
●高精度的步进运动。Klipper在计算打印机运动时利用了一个应用处理器(Raspberry Pi),决定步进电机的运动,将其传送给微控制器,由微控制器在要求的时间执行。每个步进事件的精度为25微秒或更高,与运动学算法(如Bresenham算法)相比,能够提供更安静且更稳定的打印机操作过程。
●稳定的高步进速率。 Klipper能够在新旧微控制器上实现高步进速率,即使使用旧的8位微控制器也可以实现高达每秒175,000步的速率。在较新的32位微控制器上,可实现每秒数百万步。更高的步进速率可以实现更高的打印速度步,进事件计时即使在高速下也能保持精确,提高了整体稳定性。
●支持带有多个微控制器的打印机。例如,一个微控制器可以用来控制挤出机,而另一个用来控制加热器,第三个微控制器控制其他的打印机组件。Klipper 主机程序实现了时钟同步,解决了微处理器之间的时钟漂移(抖动频率小于10Hz)。启用多个控制器只需要在配置文件中添加几行代码,不需要任何特殊代码。
●简单的配置文件。修改设置不需要重新刷写微控制器。Klipper 的所有配置都被存储在一个易编辑的配置文件中,大大减少了配置与维护硬件的难度。
●压力变化平稳。此种设计考虑了挤出机内的压力影响,可以减少喷嘴溢料并改善转角的打印质量,不会使挤出机速度突然变化,改善了打印整体稳定性和稳健性。
△Klipper 使用的压力平稳功能
●支持使用“输入整形”来减少振动对打印质量的影响。这项功能可以减少或消除打印件的“振纹(ringing)”,在一些情况下可以在保持打印质量的同时提高打印速度。
●能够计算精准的步进时间。Klipper使用“迭代求解器”从简单的运动学方程中计算精准的步进时间,降低了将Klipper用到新的机械结构上的难度并保证了精确的步进计时。
●时间精确与硬件无关。Klipper致力于使用户得到同样精确的时间,而不受低级电子硬件的影响,其微控制器代码始终遵循Klipper主机软件提供的时间表
●易移植的代码。Klipper可以在 ARM,AVR,和PRU架构的微控制器上运行。现有的“reprap”类打印机不需要改动任何硬件就可以运行 Klipper,Klipper 的内部代码结构可简单的移植到其他框架中
●简洁的代码。大部分 Klipper 代码使用一个极高级编程语言(Python),包括了运动算法,G代码,加热,温度传感器算法和其他,降低了开发新功能的难度。
●自定义可编程脚本。用户可以在打印机配置文件中定义新的G代码命令(而不需要修改任何代码),这些命令都是可编程的,可以能根据打印机的状态做出不同的响应。
●内置API服务器。除了标准G代码接口,Klipper也支持富JSON API。使程序员能编写对打印机进行精细控制的外置程序。
支持其他标准的3d打印机功能(兼容性功能):
●提供多种网络接口。Kipper与Mainsail、Fluidd、OctoPrint和其他公司合作,使用普通的网络浏览器就可以控制打印机。运行Klipper的Raspberry Pi也可以运行网络界面。
●标准 G 代码支持。支持由常见“切片软件”(SuperSlicer、Cura、PrusaSlicer 等)生成的通用 G 代码命令。
●支持多挤出机。包括对共享热端的挤出机(多进一出)和多头(IDEX)的支持。△Klipper 使用独立的双挤出机
●支持多种坐标系打印机。支持笛卡尔坐标系、旋转坐标系等打印机。
●打印平台自调平。Klipper用于床身倾斜检测或网床调平。如果打印机使用多个Z向步进器,Klipper也可以独立操纵Z步进器进行调平。支持大多数Z高度探头,包括BL-Touch探头和伺服激活的探头。
●支持自动delta校准。校准工具可以进行基本的高度校准,以及增强的X和Y尺寸校准。校准可以用Z型高度探头或通过手动探测来完成。
●支持运行时 "排除对象"。配置后,该模块可以方便取消多部分打印中的一个对象。
●支持常见的温度传感器(例如,常见的热敏电阻、AD595、AD597、AD849x、PT100、PT1000、MAX6675、MAX31855、MAX31856、MAX31865、BME280、HTU21D、DS18B20和LM75)。用户还可以配置自定义热敏电阻和自定义模拟温度传感器,监测微控制器和 Raspberry Pi 内部的温度传感器。
●默认启用基本加热器保护。
●支持标准风扇、喷嘴风扇和温控风扇。不需要在打印机闲置时保持风扇运转,可以在带有转速表的风扇上监测风扇速度。
●支持多种驱动机配置。支持TMC2130、TMC2208/TMC2224、TMC2209、TMC2660和TMC5160步进电机驱动器的运行时配置。还支持通过AD5206、DAC084S085、MCP4451、MCP4728、MCP4018和PWM引脚,对传统步进驱动器进行电流控制。
●支持直接连接到打印机的普通LCD显示器。。显示器和菜单的内容可以通过配置文件完全定制。
●恒定加速和前瞻。所有打印机移动将从静止逐渐加速到设定速度,然后减速回到静止。Kippe可以对传入的G代码移动命令流进行排队和分析 ,将优化类似方向上的移动之间的加速度,以减少打印停顿并改善整体打印时间。
●Klipper 实现了一种“步进相位限位”算法,可以提高限位开关的精度,并且提高打印件首层和打印床的附着力。
●支持打印丝存在传感器、打印丝运动传感器和打印丝宽度传感器。
●支持使用adxl345、mpu9250和mpu6050加速度计测量和记录加速度。
●支持限制短距离“之”字形移动的最高速度,以减少打印机的振动和噪音。
Kipper如何运行?
大多数打印机都使用 8 位主板(许多打印机至今仍在使用),这种机器读取和执行G 代码命令时的处理时间很慢。Klipper 旨在通过将任务转移到另一台设备来降低此处理时间并提高打印性能。简单来说,Klipper利用额外的计算能力预先开发G代码命令,因此打印机只需要执行命令,而不是处理它们。所以,Klipper利用额外的计算能力和内置算法更好地计算电机动作的步进时间,实现25微秒或更高的运动精度
△压力控制功能可以在打印品上产生光滑的表面
使用外部计算机处理运动过程还可以让打印机在给定时间内执行更多操作。Klipper 在8位主板上可以达到每秒175,000步,在较新的32位主板上可以达到每秒 500,000 步。这些速度比使用Marlin固件获得的速度快得多,许多用户也是因为这一点选择了Klipper。
额外的计算能力还意味着Klipper固件包可以促进许多其他强大的功能,而打印机主板本身不会过度工作。这包括 Klipper 的压力推进功能,该功能与线性推进非常相似,可以实现更准确和一致的挤压,使打印品表面看起来更光滑。Klipper的另一个特点是内置的步进相位停止算法。正确调整后,此功能可以提高第一层附着力,因为它提高了机器限位器(限位开关)的准确性。
Klipper 还具有许多面向兼容性的功能,它可以在具有独立双挤压、特殊温度传感器和其他独特属性的打印机上工作。Klipper 为如此多的打印机和配件提供了集成,例如BLTouch 传感器。与其他固件不同,因为 Klipper 不能与某些直接显示器(如Ender 3 V2 LCD)一起使用,所以用户需要一个网络界面来控制您的机器。这些在线程序允许用户远程控制打印机,包括执行设置温度、移动组件、开始打印等任务。
如何寻求Kipper帮助?
许多用户在使用固件时会很迷茫,不知从何下手修改代码或者调整功能,您不必担心,南极熊发现Kipper的大部分信息都是可以公开获取和学习的。通过这些信息,您可以轻松在打印机上使用Kipper。
在使用 Klipper 时遇到问题时,您可以通过以下三个途径寻找帮助:
△您可以在 GitHub 页面上查询Klipper固件的问题解决方案
●Klipper的源文件在GitHub页面上,该页面经常修订。如有疑问或问题,您可以前往Klipper 的 GitHub 页面上的问题部分查找现有和已解决的案例。如果问题中没有提到你的问题,你也可以打开一个新问题案例,向一些用户寻求帮助。
●您可以查看Klipper的支持文档,包括Klippe 官方网站上的文档、常见问题解答和联系页面。
●您也可以在主流的3D打印论坛上寻求帮助,南极熊发现,现在有一个拥有超过 4,500 名用户的“Klippers”subreddit(”美版贴吧“),您也可以去此平台逛一逛,说不定会有新收获。
Klipper vs Marlin?
△Klipper 的打印(左)看起来比使用 Marlin 固件打印的模型更平滑
Marlin 在市场上占主导地位,于 2011 年由Erik van der Zalm为 Ultimaker 开发,旨在用于经济实惠的 8 位Arduino 微控制器。Klipper 于 2016 年由Kevin O'Connor首次发布,采用了一种非常不同的 3D 打印机控制方法。Klipper认识到小型微控制器对打印机的能力施加了限制,Klipper 将大量数学计算转移到更强大的设备(通常是Raspberry Pi)。
从理论上讲,这使 Klipper 能够实现更大的计算量,提高打印速度和打印质量。然而,Marlin也不甘示弱,引入了支持更强大的 32 位控制器的版本。Marlin 的开发人员在 2.1 及更高版本中继续添加新的改进。那么除了设计差异外,Marlin 和 Klipper 在支持可用性、安装简易性等方面有何不同呢?用户该如何选择呢?
配置方面
●如果用户想更改 Marlin 的配置,例如更换或升级组件,需要更改一个或两个配置文件:configuration.h 和 configuration-adv.h。这些文件是“编译器指令”,告诉编译器构建固件需要什么。对这些进行更改可能会让新手望而生畏,任何新配置仍然需要完全替换和重新刷新现有固件。
●Klipper 的配置存储在可编辑的文本文件中,每次启动时都会读取这些文件。修改这些文件相对容易,而且由于不需要刷新控制器,因此可以快速进行配置更改。这对于那些从头开始构建新机器或需要进行多项配置更改的人很有吸引力,例如,发送新硬件或微调性能。
安装方面
●安装或更新 Marlin 是将新的(正确配置和编译的)固件刷写到目标控制器上的问题。具体方法因设备类型而异,但通常使用 USB 线或 SD 卡来完成。传统上,此过程由 Arduino IDE 执行,但对于 32 位板,现在通常使用与 VSCode 绑定的PlatformIO来完成。Marlin 的开发人员为此过程开发了简单易懂的教程。
△Klipper 有一个帮助程序来安装和更新各种组件
●Klipper 需要在打印机控制器上安装正确配置的固件,该过程与 Marlin 大致相同。安装在 Raspberry Pi(或其他基于 Linux 的主机设备)上运行的 Klipper 部分可能涉及更多步骤。随着文档的改进和Klipper 安装和更新帮助程序 (KIAUH)的引入,使用一个简单的程序,可以直接安装 Klipper 和其他附加组件。然而,虽然 Klipper 更容易更新,但与 Marlin 相比,在线帮助的可用性并不相同。
功能性
Marlin 和 Klipper 都有很多相同的核心功能,但 Klipper 支持几个独特的高级功能。两个固件之间还有其他功能差异。例如,Marlin 支持一组丰富的 G 代码;Klipper 支持关键的 G 代码选项,但更倾向于使用宏,这允许从向用户界面添加新按钮到打印机的条件控制等方面提供很大的灵活性。Marlin 和 Klipper 都在持续快速的开发中,以改进功能并支持更广泛的控制器板和其他硬件。
用户如何选择?
随着3D打印的不断发展,Marlin 和 Klipper 都在不断发展和改进。那么今天,什么是正确的选择?关于这个话题在各种在线3D打印论坛上有很多争论,用户给出了广泛的利弊列表。然而,答案取决于多种因素。
32 位板上的 Marlin 2.1+ 具有可供绝大多数3D打印机使用的处理能力。它得到庞大用户群的良好支持,安装和配置相对简单,并提供满足几乎所有打印场景的功能。
Klipper 最初设置起来比较复杂,但随后进行后续配置更改会更容易、更快捷。它还支持提高高速打印质量的独特功能。对于那些寻求改进的打印质量、更高的打印速度或参与临时打印机构建或打印修改的人来说,它无疑具有更多的优势。
FDM高速3D打印机爆发
南极熊注意到,一批消费级3D打印厂商纷纷推出基于Klipper固件的FDM 3D打印机。例如深圳创想三维、深圳安克创新等。
△深圳创想三维音速屏是一款基于Klipper固件的3D打印智能平板。音速屏性能强大,通过 USB 线连接到 3D 打印机,取代原有固件实现控制,使用优势算法,全面加快打印速度。目前,已预先适配创想三维Ender-3 V2、Ender-3 S1、Ender-3 S1 Pro等23款产品。其他具备USB接口的打印机,也可根据通用操作指引,手动适配。能同时控制4台打印机。详情https://www.nanjixiong.com/thread-159576-1-1.html
△2022年深圳安克创新的AnkerMakeM5,在海外众筹平台Kickstarter众筹金额达到888万美元,登顶该平台3D打印机历史第一。宣称的5倍打印速度,打印时间缩短70%。对于很多使用FDM 3D打印机的用户来讲,打印速度慢一直是一个痛点。如果能实现 250mm/s 速度下的高品质打印,是很有吸引力的。