【打印虎原创】Repetier-firmware深度配置图解教程

玩过3D打印机一段时间的朋友,对PC客户端的使用方法,比如Repetier-Host或者Cura,应该已经比较熟悉了。今天我们不再介绍PC客户端,而是转向3D打印机固件,搞一个高难度的玩意,仔细研究一下Repetier-firmware的配置方法。

首先解释一下什么是Repetier-firmware。Repetier-Host大家都用过,可以说是玩3D打印机必备的软件。Repetier-firmware就是同一个公司出的3D打印机固件,主要面向RepRap类型的DIY 3D打印机。所谓固件,其实就是芯片里面的软件,看起来是“固定”的,所以就得到了“固件”(Firmware)这个名字。

Repetier-firmware的最新版本,是0.91第7版(Rev 7)。因为要面对很多种不同的3D打印机,所以这个固件程序与普通的固件程序不同,没法简单的下载安装使用,而是有一个重要而且复杂的配置过程。

配置这个固件程序,有两种主要的方法,一种传统的方法是直接在源代码中修改配置文件Configuration.h,按照代码中注释的说明逐项配置。很明显这种方法是非常麻烦的,而且也没有人提示一下哪个配置项更基础更重要,基本上得是专家级的玩家才能顺利搞定了。

为了简化这个配置固件程序的问题,Repetier专门提供了一个在线配置工具(访问http://www.repetier.com/firmware/v091),这个工具提供了结构化配置的UI界面,把3D打印机固件配置划分成了几个模块,方便用户理解。用户逐一配置完成之后,下载配置好的可以直接使用的Repetier-firmware代码。这么好的工具我们一定要仔细研究一下,它是我们成为3D打印高手玩家的捷径。

第一节,开始

访问刚才提到的网址,可以看到这样的起始页面。

image001

在这个页面上,首先给大家简单介绍了这个配置工具。然后,提供了一个上传按钮,你可以把上次配置得到的配置文件(Configuration.h)从这里传入,让所有选项恢复到上次保存时的状态。往下大家就能看到,Repetier-firmware中的可配置项非常多,这个功能可以让用户避免忘记之前配置时所作出的选择,在以前选择的基础上进行微调即可。

我们这里,不需要上传上次的配置文件,直接按下下一步(Next step)。

第二节,通用配置

在通用配置这一栏,用户可以配置3D打印机的基础信息。

image002

第一项,配置级别(Configuration level),用来选择这个配置工具中可见配置项的多少。一共有三项选择,缺省是普通档(Normal, hide only internal settings)。我仔细比较了三种选项的差别,发现差别不多,而且都集中在下面两个面板,机械(Mechanics)和温度(Temperature)之中。对于一般的用户来说,选择普通档已经足够复杂了,似乎没什么必要再给自己找麻烦了。

第二项,处理器(Processer),这里面有两个选项,分别是Atmel 8位板子(Atmel 8-bit based board)以及Arduino DUE板子(Arduino DUE based board)。我想前一种应该是绝大多数人的选择。Arduino DUE是新式的基于Arm核心的Arduino,似乎应用的还比较少。

第三项,主板(Motherboard),其中的选择就很多了,很多RepRap的分支设计都对电路主板进行了重新设计。根据我的研究,国内用户比较多的有其中三种,分别是RAMPS 1.4,Melzi以及Sanguinololu 1.2及以上(Sanguinololu 1.2 and above),大家按照自己的主板型号选择对应的选项就好了。这个选项的实际意义,是把3D打印机的各种设备,比如步进电机,或者加热挤出头的开关,对应到了Arduino系统的某个端口号上。因为每种电路主板的设计都有些许差别,因此不同的设计都需要指定这组端口号。端口号对应错误的话,就会出现本想控制X轴步进电机,结果控制了风扇这类错误,3D打印机肯定不能正常工作的。

第四项,打印机类型(Printer type),指的是3D打印机步进电机的运动方式。最常见的就是笛卡尔式(也就是各自独立的XYZ三个轴的步进电机)。也因为笛卡尔式的3D打印机是最常见的,因此往往3D打印机电路板上会直接把三个步进电机的输出标为X, Y, Z输出。

但是实际上,还有好几种不同的3D打印机设计方式。在国内比较常见的还有并联臂方式,这种方式工作的3D打印机可以实现更快速平稳的加热挤出头运动。如下图,三个红色的并联臂,都可以上下移动,移动的位置决定了位于中心的加热头的位置。很明显,在这种结构设计下,步进电机的运动方式与笛卡尔式设计会完全不同。

image003

另一种现在还不太常见的设计,是Tuga方式。如下图所示,这种方式的设计,XY轴的运动,被两个固定在X轴上的步进电机,通过一个剪刀式机械装置控制。很明显,这种方式的设计可以有效缩小3D打印机所占的空间,但保证这个打印头的稳定会更加麻烦一些。

image004

好,看过了两种不同于笛卡尔式的3D打印机打印头控制方式之后,我们回到Repetier-firmware的设置选择上来。我们假设你的打印机类型就是普通的笛卡尔式(Cartesian printer),继续下面的选项。

第五项,EEPROM使用(EEPROM usage),指的是是否使用Arduino单片机中的EEPROM作为设定参数的存储器。如果使用EEPROM保存参数,那么这里设定的大多数参数,都可以在固件刷到Arduino之后再进行修改,这样会极大方便我们对3D打印机的使用。如果没什么特殊的需求,这里就选择EEPROM Set 1就可以了。如果有特殊的需求,不希望使用EEPROM,选择禁用(Disable EEPROM)就好。至于EEPROM Set 2,作用与EEPROM Set 1完全一样。这里允许选择EEPROM Set 1或者Set 2的意义,在于如果电路板内现在的固件是Set 1,而新刷入的是Set 2,或者反之,电路板内现在的固件是Set 2,而新刷入的是Set 1,会迫使固件程序执行EEPROM的初始化操作。我认为,这是Arduino IDE不能清除EEPROM的一个替代解决方案。

第六项,波特率(Baud rate),是固件程序和PC上的控制软件之间通信所使用的频率。这两边的设置必须一致,才能进行有效的通信。没有特殊情况的话,缺省值115200 ANSI是一个好的选择。

第七项,中断打印方式(Kill method),是3D打印机接收到紧急停机(emergency stop)指令时的处理方式。缺省的重置控制器(Reset controller)方式,简单粗暴,直接进行了硬件重置操作,这样自然所有的加热器都关闭了。另一个选项关闭加热器并等待(Disable heaters, wait forever),用程序的方式逐一关闭加热器,并让CPU进入了死循环,相对是比较文雅的方式,但通常情况下可能没什么必要。

后面的几个选项,就非常简单了。首先是XYZ轴的最小坐标,这里保持缺省的0就很好了。然后是XYZ轴的长度。这个与打印机的物理尺寸直接相关,需要你自己根据情况设定好。我的打印机的输出空间比缺省设置更大,这里可以填入200, 200, 180。

第三节,机械设置

在机械设置这一栏,用户可以配置3D打印机的各种机械装置,主要包括步进电机和限位开关的设置。

image005

我们还是逐一看一下这些设置项。

第一项,允许侧隙游隙补偿(Enable backlash compensation)。所谓侧隙,是一个机械专业用语,指齿轮齿廓之间为了避免摩擦膨胀而卡死预留的间隙。类似的,轴承有类似的游隙。我们DIY的低端3D打印机,并没有在硬件层面上对这些细小的误差进行补偿,但Repetier-firmware允许我们在软件层面做出补偿。当然这里的软件补偿也是很简单的,只是在已有的移动量上增加一个小量。如果这个选项打了勾,那么在下面的XYZ轴的设置上,分别会增加一个Backlash量编辑框,可以对三个轴分别输入一个补偿值。

image006

第二项,允许四倍步进(Enable quad stepping),是指遇到要求步进电机高速步进的时候是否允许特殊处理。因为单片机的运行速度有限,如果每个时钟信号步进1次,就会运行的比较慢,因此当步进电机步进频率比较高的时候(超过12000Hz),就会自动开启两倍步进,每个时钟信号步进2次。如果开启这个选项,而且步进频率比两倍步进更高时(超过24000Hz),就会自动开启四倍步进,每个时钟信号步进4次。很明显这个选项保持缺省打开就好了,3D打印机运行速度会更快。

第三项,在不工作多少秒之后关闭步进电机(Disable steppers after inactivity of),这个选项就很简单了,缺省是360秒,也就是6分钟,一般就不需要修改了。

第四项,在不工作多少秒之后尽量关闭所有东西(Disable as much as possible after inactivity of),这个选项缺省是0,代表不会执行这个操作。这个选项与上一个比较类似,除了关闭步进电机之外,还会关闭加热器等。如果有必要的话,也请设置一个比较大的值。

第五项,XY轴抖动速度(Jerk XY moves),是3D打印机同时在X轴和Y轴上移动时,产生的和速度最大值。比如,3D打印机加热头正在向X轴正方向全速移动,下一条指令变为向Y轴正方向移动。如果同时在X轴和Y轴上改变速度,那么实际产生的速度是X方向的速度和Y方向的速度的向量和,这个比较大的速度变化值,会对3D打印机的机械部件产生不利的影响,而且会造成比较大的噪音。这里的设置,就限制了这个XY轴上和速度的最大值。当然这个值也不能设置的太小,太小的话,首先打印速度会变得很慢,而且打印会产生更多的瑕疵。

第六项,Z轴抖动速度(Z-Jerk),与上面的意义类似,不同点是Z-Jerk是Z轴方向不为0的抖动速度值。因为这项涉及到Z轴的运动,因此最大速度就低多了。第五项和第六项保持缺省值就很好,分别是20mm/s和0.3mm/s。

再往下,是XYZ三个轴分别的设置。三个轴的设置项是一样的,因此我只介绍其中之一了。

第七项,步进电机接口(Stepper socket),指步进电机与电路板上哪个接口相连。我实在不太理解为什么这个选项会被暴露出来。难道有人不把X轴步进电机连接在电路板的X口上么?很显然,这里保持缺省值就好了。

第八项,分辨率(Resolution),每前进1毫米所需要的步进电机步数。这个值是由所选用的3D打印机驱动电路、步进电机、3D打印机机械结构设计综合决定的,计算这个值是一个比较复杂的问题。如果你买的是3D打印机成品或者套件,你应该可以从卖家那里直接得到这个值。如果你在搭建自己设计或修改的3D打印机,可以参考【打印虎原创】RepRap_Prusa_i3_3D打印机步进电机设置图解,这篇文章详细讲解了如何自己计算得到这个值。

第九项,最大的平移速度(Max travel speed),这个值的单位是毫米/秒,X轴和Y轴设定在100~200之间就很好了,200是缺省值。Z轴缺省值是2毫米/秒。

第十项,归零移动速度(Homing speed),因为归零的时候会同时检测限位开关的信号,因此移动太快会导致归零位置不准确。X轴和Y轴设置在40毫米/秒,Z轴设置在2毫米/秒就很好了。

第十一项,平移加速度(Travel acceleration),就是指不打印时,加热头移动的加速度最大值。X轴和Y轴缺省值都是1000毫米每二次方秒,Z轴缺省值是100毫米每二次方秒。缺省值都没什么问题。

第十二项,打印加速度(Print acceleration),就是指打印时,加热头移动的加速度最大值。不知道为什么这里把打印时的加速度和不打印时的加速度分开设置。实际上所有对应的缺省值都是一样的,X轴和Y轴是1000,Z轴是100。使用缺省值就好了。

第十三项,方向取反(Invert direction),指将这个轴的正方向和负方向取反。有些打印机的设计可能是这样的。通常不要打勾。

第十四项,使能信号取反(Invert enable signal),将原本的使能信号取反输出。有些打印机的设计可能是这样的。通常不要打勾。

第十五项,不使用时关闭(Disable when unused),作用是当不再使用某一个步进电机,将其关闭。意义不是很大。缺省值是不打勾。

第十六项,镜像步进电机信号(Mirror motor signals to other stepper driver),将XYZ轴的某一个步进电机的驱动命令,以同样的方式发送到另一个端口上。这个功能还是很奇特的,应该是用于某种特殊的目的。缺省值是不打勾。

好,到这里所有跟步进电机有关的选项已经搞定了。下面开始与限位开关相关的选项。

image007

第十七项,总是检查限位开关(Always check endstops),代表所有的移动指令,都伴随着检查限位开关指令。这是一个很好的防御措施,缺省是打开的。

第十八项,连续三个选项,以负方向作为X/Y/Z归零方向(X/Y/Z homing in negative direction),这个对于通常的3D打印机来说都是要打勾的。如果你的3D打印机很特殊,归零方向不是负方向,那么这里要特殊处理。

第十九项,归零顺序(Homing order),三个轴的归零顺序。其实关系不大,为了避免在热床校正不好的情况下加热头与热床发生剐蹭,可以考虑让Z轴最后归零。我的选择是X, Y then Z。

第二十项,下面的一组选项,是限位开关的连接方式。我的3D打印机是RepRap Prusa i3,因此只有min类型的三个限位开关,没有max类型的,那么min类型的开关,应该选择接地闭路(Switch on GND, normally closed),max类型的开关,应该选择未安装(Not installed),这些都是缺省值,不用改。右侧的端口(Pin),如果你没有对端口做什么手脚的话,也应该保持缺省状态。

第二十一项,最后,是挤出头归零之后限位开关的位置。注意右侧的“[- for X, Y and Z]”,也就是说在编辑框中的数字都会取负值。缺省值是(1, 1, 0),也就是说,当挤出头归零动作完成时,限位开关位于挤出头的(-1, -1, 0)位置处,单位是毫米。与限位开关隔开一点点,可以在3D打印挤出头接近极限位置时(这极少发生),限位开关不会因为误差被触发。这个缺省值用起来还是可以的,不需要修改。

到这里,所有的机械设置已经完成。下面让我们继续下一栏。

第四节,温度设置

温度设置相关的选项也比较多,页面很长,我们还是分成几块来看。

image008

第一项,稳定温度区间(Stabilize temperature corridor),如果设置为一个大于0的值,比如1℃,意味着只有温度在一定时间段内(由观察周期常量EXTx_WATCHPERIOD指定,缺省是1秒,这个配置工具不能修改此值)满足一定要求(温度值在温度预定值±1℃之内),才被认为是“温度达标”。如果设置为0,则没有这项要求了,只要温度达到预定值就算达标了。

第二项,温度控制区间(Temperature control range),在PID温度控制模式下,如果当前温度和预期温度的差大于温度控制区间,比如20℃,则全开加热器;如果当前温度和预期温度的差小于负温度控制区间,比如-20℃,则关闭加热器。这个值只影响PID温度控制模式,关于什么是PID温度控制模式请继续往下阅读。

第三项,跳过等待加热头加温(Skip bed temp. wait if within,注意,这里的英文是页面的写法,但是页面是错误的),如果加热头温度目前在目标温度附近。相差不超过编辑框中的温度值,则当固件接收到PC机发送的M109命令(设置加热头温度并等待命令)时,跳过等待步骤,直接完成返回。这个参数的缺省值是2℃。

第四项,打开挤出机风扇温度(Enable extruder cooler at),当挤出机温度高于这个预定值的时候,打开挤出机风扇。缺省值是50℃。

第五项,最小/最大挤出机温度(Minimum/Maximum extruder temperature),当挤出机温度过小的时候,由于塑料还未软化,直接移动挤出机可能会造成部件受损,因此当温度小于最小挤出机温度时,固件会忽略所有的挤出机移动指令。同样,挤出机也可能由于温度过高损坏,因此当PC机的指令要求挤出机温度超过最大挤出温度时,设置温度的命令会被忽略。缺省值是150℃/275℃。

第六项,最小/最大损坏温度(Minimum/Maximum defect temperature),当热敏电阻报告值超过最小/最大损坏温度时,程序会认为热敏电阻本身损坏了。这个参数的缺省值是-10℃/290℃。

第七项,最大挤出长度(Maximum extrusion length),当PC机发送的指令,要求挤出超过这个设置的长度的塑料时,固件会认为指令出了问题,将忽略这条指令的执行。这里的缺省值是160毫米(指耗材长度)。

第八项,加热器脉冲宽度调制速度(Heater PWM speed),这里可以设置PWM也就是脉冲宽度调制的频率,以及取值范围。频率越高,取值范围越小。我研究了好久,还是没搞懂这里不同的设置在实际效果上的差异,理论上来说几个设置应该是等效的才对。如果有人知道PWM不同参数效果上的差异请QQ上告诉我,我会补充在这里。既然不知道差别,就选缺省的15Hz, 256 values就好了。

第九项,缩放PID值到PID最大值(Scale PID values to max. PID),只在PID温度控制模式下有效,作用是把原来0~255之间的PID值,等比缩放到0~MaxPID之间的值。否则就只做一个整数截断操作,大于MaxPID的值都被当做MaxPID使用。如果MaxPID的值比较低,做这个缩放操作可以获得更好的温度值。

第十项,在不使用时关闭挤出机电机(Disable extruder stepper when unused),这个选项很简单,通常是否关闭都无所谓。

image009

下面一段选项,都与加热床相关。

第十一项,启用加热床功能(Enable heated bed support),首先必须把这个选项选中,下面的更多热床相关的选项才会展现出来。

第十二项,最大热床温度(Max. bed temperature),很简单,缺省的120℃就很好。

第十三项,跳过等待热床加温(Skip temp. wait if within),与上面第三项非常相似,但这里不是针对加热头,而是针对热床。对应的G-code也不是M109,而是M190。再次注意,这里才是针对热床的设置,上面是针对加热头的设置。

第十四项,温度感应器(Temperature sensor),这里列出了很多种常见的温度感应器型号,选择你正在使用的那种就可以了。如果你使用的温度感应器没有列出,还可以自定义温度表。自定义温度表是比较高级的玩法,这里就不介绍了。

第十五项,温度感应器接口(Temperature sensor pin),列出了3D打印机电路板上的IO接口,缺省就好。

第十六项,加热器接口(Heater pin),与上面一样在IO口里面选择,缺省就好。

第十七项,温度控制模式(Temperature manager),有四种不同的选择,下面详细讲解一下。

首先是简单控制模式(Bang bang),特点是简单,没有控制参数,基本上加热器的工作方式就是温度不到就打开,温度到了就关闭。

PID模式(PID controller)是历史悠久的温控方式,具有数学运算法模型,使用普遍,通常PID加温会略超过设定温度然后等降温至设定温度之后开始进行3D打印动作,有人认为PID模式比较精确,但我觉得可能是因为3D打印机的加热器的热容量都不大,因此这个好处不太能体现出来。另外PID模式的参数会多很多,设置起来也比较麻烦。

带延迟简单控制模式(Bang bang every x seconds),与简单模式基本上相同,除了设定了一个最小延迟时间,让加热器开/关的频率不要太高。如果你的电路中使用了继电器,那么最好使用这个模式,可以增加继电器的使用寿命。

最后是空载时间控制模式(Dead time control),这个似乎是Repetier设计的独有的控制模式,可以参考他们的页面,http://www.repetier.com/dead-time-control/,是PID模式的改进版本。这个模式改进了PID模式中的温度曲线,让这条曲线更加稳定的接近目标温度,避免了先超过目标温度再回归的过程。另外,针对PID模式的选项,在“空载时间控制模式”下也是有效的,这个是需要注意的一点。

下面的两个图,直观的比较了PID模式温度控制曲线和空载时间控制温度控制曲线。从图中可以看出,不管是在初始加热的最后阶段,还是当中段温度扰动时,空载时间控制模式都可以把温度曲线控制的更加平稳。

PID模式温度曲线

image010

空载时间控制模式温度曲线

image011

第十八项,最大脉冲宽度调制值(Max PWM value),这个选项只在PID模式下有效,是PID模式下使用的PWM值。在上面的第九项参数中,这个参数就是与其相关的MaxPID值。如果在PID模式下,这个值能够控制热床加热器能够输出的最大功率,通常情况下应该设定在255满额输出,但如果万一电源或者什么其他的东西有问题,可能设定在比较小的值是一个解决方案吧。

这里最奇怪的地方是为什么温度控制模式即使设置在简单模式下,这个选项仍是可见可修改的状态?这个我确实不太懂。结合上面的几项类似的选项看,应该是Repetier做的这个配置工具本身的设计问题。

到这里为止,与热床相关的参数都搞定了,下面开始看温度控制一栏的最后一部分。

image012

加热挤出头的开始部分可以看到有两个按钮,用来增加或者减少挤出头。因为我的3D打印机只有一个挤出头,因此我只需要配置一块就可以了。如果你有多个挤出头,这个页面会长出不少。

第十九项,挤出头步进电机(Extruder stepper),这个很简单,就是指定电路板上的IO端口。如果没有意外就使用缺省值就对了。

第二十项,方向取反(Invert direction),指将这个轴的正方向和负方向取反。有些打印机的设计可能是这样的。通常不要打勾。

第二十一项,使能信号取反(Invert enable signal),将原本的使能信号取反输出。有些打印机的设计可能是这样的。通常不要打勾。

上面两项,我们已经在第三节中见到过类似的选项。它们的意义是一样的,只是第三节中设置的是XYZ轴的步进电机,这里设置的是挤出头的步进电机。

第二十二项,偏移位置X/Y(Offset X/Y),应该指的是双头或者多头3D打印机不同挤出头的相对位置。我只有一个挤出头,因此保持0, 0就没问题了。

第二十三项,启动速度(Start speed),指挤出头从静止开始的挤出速度。缺省值20毫米/秒。

第二十四项,最大速度(Maximum speed),指挤出头挤出的最大速度。缺省值50毫米/秒(很明显,配置工具页面上单位写错了)。

第二十五项,分辨率(Resolution),挤出头步进电机运动多少步对应于实际距离1毫米。与第三节第八项很类似,这个值是非常关键的,而且与不同的步进电机、不同的3D打印机机械结构设计都有关系,尽量从3D打印机卖家处得到这个数值。在3D打印机可以工作之后,再通过校正过程得到比较精确的值。

第二十六项,加速度(Acceleration),与上面的几项相同,指的仍然是挤出头步进电机的加速度值设置。缺省值是5000毫米每二次方秒。

下面的一组设置项,包括温度感应器(Temperature sensor),温度感应器接口(Temperature sensor pin),加热器接口(Heater pin),温度控制模式(Temperature manager),最大脉冲宽度调制值(Max PWM value),都已经在前面介绍过了。不同的是,这里针对的不是加热床,而是加热挤出头了。需要注意一点,温度控制模式在挤出头这里缺省值是Repetier自己开发的算法“空载时间控制模式”(Dead time control)。

在空载时间控制模式下,会比简单模式增加两个选项。分别是

第二十七项,加热时输出值(Power when on),这个值是实际使用的脉冲宽度调制值。至于为什么不直接使用上面已经定义的最大脉冲宽度调制值(Max PWM value)我也不清楚了。我自己感觉这个值独立出来意义不是很大。

第二十八项,空载时间延迟(Dead time lag),这个值指加热器打开多长时间之后,能够从温度感应器上感应到温度的变化。实际上,这个值就是“空载时间控制模式”希望解决的问题的核心,由于热容的存在,加热和测量到加热有一个时间间隔。而PID模式在到达目标温度前一直持续加热,就会造成实际温度超过目标温度,必须再等待一个散热时间,让温度回到目标温度附近才算加热动作完成。“空载时间控制模式”下,在温度达到目标温度之前一段时间,我们就不再持续加热,这样可以保证加热头温度更加稳定。这个值缺省设置是7秒。

最后还有几项其他设定,

第二十九项,挤出机冷却风扇接口(Extruder cooler pin),是很简单的一项设置。选择3D打印机电路板上连接风扇的接口即可。缺省是禁用(Disabled)状态,我按照我的3D打印机的实际情况改为风扇接口(Fan pin)就可以了。

第三十项,冷却风扇脉冲宽度调制值(Cooler PWM speed),在上面选项不再是禁用状态后出现。很明显,这里用缺省值255就很好了。

第三十一项,等待回抽距离(Wait retract distance),在3D打印机挤出头加热等待过程中,将耗材回抽一段距离,可以减少不受控制的塑料丝挤出,避免一些首层打印时的麻烦。如果你不在乎这个,可以保持缺省值0。

到这里,所有的温度设置已经完成。下面让我们继续下一栏。

第五节,功能设置

image013

第一项,允许Z探测(Enable Z-probing),这个功能允许3D打印机在特定硬件的支持下自动找平热床。因为这个功能比较复杂,又包含很多参数,所以如果选中这个选项,这个页面的下方会出现一组新的选项。因为这个东西大多数玩家都没有,特别是我也没有,所以就不仔细研究了。如果有朋友对这个比较了解,也欢迎QQ上告诉我你的心得,我可以加在我的这个教程中,分享给更多的朋友。

第二项,允许伺服电机功能(Enable servo support),这个功能允许3D打印机使用伺服电机工作,更快更精准。可以我也没有这种高档货,所以不深入讨论了。

第三项,允许双头打印(Enable ditto printing),这个功能将同样的信号发给挤出头0和挤出头1,当然结果就是同时3D打印出两件一模一样的模型。在一些特殊的情况下可能有用吧。

第四项,允许看门狗功能(Enable watchdog),看门狗是单片机提供的硬件功能,如果启用这个功能,程序必须至少每秒钟通知看门狗一次,声明自己还活着,否则看门狗将重置单片机。打开这个功能就不会因为程序问题死机了(改成系统重启了)。是否开启大家自己看着办吧。

第五项,允许画弧线功能(Enable arc support),也就是是否支持G-code G2/G3两条指令。不需要特殊硬件支持,完全是软件实现的算法。缺省是打开的。

第六项,记忆当前位置/移动到记忆位置功能(Memory position/move to memory position),也就是是否支持G-code M401/M402两条指令。这个功能很简单,缺省也是打开的。

第七项,强制检查校验和(Force checksums once a checksum is received),意味着G-code代码必须与校验和一起发送,没有校验和的代码被认为是错误的代码。如果选择了这个选项,代表了我们对PC端控制软件提出了更高的要求,不在G-code中附带校验和的软件就不能用了。

第八项,执行时而不是接收时回显指令(Echo commands when executed rather when received),这个选项决定了回显G-code的时机。缺省是选中的。

第九项,当固件空闲时,发送“wait”信息(Send “wait” when firmware is idle),这个消息是从3D打印机端发送给PC端的。当PC端软件支持这个功能的时候,应该打开这个选项,它有助于帮助用户分析通讯故障。

第十项,随着接收确认发送行号(Send line number along with receive confirmation),这个很简单,缺省是打开的,也是便于人工分析通讯故障用的功能。

第十一项,支持SD卡功能(Enable SD support),这个功能需要硬件支持,只对于一部分3D打印机电路板是有效的。如果你的电路板上有SD插口,应该把这个选项打开。这个选项打开之后,会增加两个选项,分别是是否对SD检测信号取反(Invert SD card detect signal)以及SD卡检测接口(SD card detect pin)这两个选项都很简单,按照实际情况选择就可以了。

第十二项,返回扩展的目录信息(Return extended directory information),只在支持SD卡功能打开之后这个设置才有效。当PC端要求列出SD卡目录的时候,固件程序是否把文件尺寸一并返回。根据代码注释,Pronterface软件是不支持这个格式的,因此如果你需要用Pronterface作为PC端控制软件,就不要打开这个选项了。否则可以按照缺省设置打开。

第十三项,允许婴儿步功能(Enable babystepping),这个功能是一个比较新的功能,它允许用户动态微调XYZ某一个轴方向的位置。特别是Z轴方向的位置微调,可以挽救那些第一层打印质量不好的模型。当然,既然这是一个动态微调功能,它必然只在你拥有LED面板的时候才有用。下面的另一个选项,Z轴婴儿步因子(Z Babystepping multiplicator),很显然是直接与这个选项相关的。如果你像我一样还没有LED面板,那么这两个选项就保持缺省值吧。

第十四项,允许耗材冷却风扇控制(Enable fan control for filament cooling),这个选项还对应着下面风扇接口(Fan pin)选项。如果允许风扇控制的话,也要把风扇连接的电路板上的接口设置正确。但在我的3D打印机上,并不存在这样的风扇,因此,我需要把这个选项关闭,或是把风扇接口选项设置为禁用(Disabled)。

第十五项,电路板冷却风扇接口(Fan pin for board cooling),这个选项控制着另一个风扇,在我的3D打印机上也不存在,因此我把这个接口也设置为禁用(Disabled)。

到此为止所有的功能选项已经设置完毕。

第六节,设置完成

在设置完成之前,其实还有用户界面设置栏(User Interface),如下图。但因为我的打印机没有LED显示屏,因此我就没有深入研究这个模块。很简单的把显示控制(Display controller)设置为无显示(No Display)。

image014

最后,全部设置完成,进入下载栏。

image015

在这一栏中,我们可以选择

  • 下载所有的固件文件,包括设置
  • 下载Configuration.h设置文件
  • 下载config.json设置文件

这三种形式各有各的用途,对于3D打印机玩家来说,肯定是用第一种了。完成下载之后,还需要用Arduino IDE对固件进行编译和上传的工作。这些就比较简单了,如果还不熟悉,可以参考打印虎之前的教程【打印虎原创】Prusa_i3_3D打印机软件安装图解教程

第七节,总结

我们前面把所有配置项都过了一遍,看到这里大家能有一个问题,就是如果我第一次玩这个,哪些配置项是最重要的,必须要修改的?我在这里把这些重要而且通常要修改的配置项再列一遍,供大家作为检查列表使用。

编号 项目 说明
1 主板 一定要改为自己使用的主板类型
2 XYZ轴长度 应该改为实际的尺寸
3 XYZ轴步进电机分辨率 重要,一定要根据自己使用的步进电机参数以及打印机的机械设计进行修改
4 限位开关的连接方式 按照实际情况选择选项
5 挤出头步进电机分辨率 同(3),要根据具体情况修改
6 挤出头步进电机方向 有些机械设计方案,需要步进电机反向运行
7 挤出头温度感应器 要根据具体情况修改
8 启用加热床功能 如果有热床,应该打勾
9 热床温度感应器 要根据具体情况修改

可以看出,以上这些配置项都与硬件直接相关,如果不能设置为正确的值,3D打印机很可能是不能正常工作的。因此如果自己不能确定这些项目的值,最好去找硬件的卖家解决问题。不管你买的是整机还是散件,卖家应该都可以回答你的问题的。

其他的配置项,更多的是软件优化或者是个人喜好问题,不影响大局,可以在这些重要的选项配置好,3D打印机已经可以工作之后细致调整。

如果你能读到这里,我认为你绝对是一个Geek了。作为3D打印高手,你一定早就猜到,Repetier提供的这个在线配置工具,其中的每个选项实际上都对应了Repetier-firmware Configuration.h中的一个宏定义。为了搞清楚每个选项的意义,我可是逐一检查了Repetier-firmware的源代码,仔细地研究了每个选项对代码执行过程的影响。跟那些简单地按照文字本身解释一下的资料相比,希望我的这份教程能给你不一样的感觉。

最后祝大家玩机愉快,想看更多的打印虎教程,请访问打印虎原创教程专区。有任何相关的问题,请

联系打印虎 QQ 2404959972