Marlin固件配置
Marlin 固件配置 So,让我们开始吧。首先在Arduino IDE中打开 Configuration.h,注意做好源文件的备 份工作 波特率 - 20 行 define BAUDRATE 250000 //define BAUDRATE 115200 该行是用来决定主控板使用何种波特率来与电脑上的控制软件进行通信的。通常是用 250K 和 115.2K 两种波特率选择, 要选择何种波特率, 只要将该行前面的”//” 删除, 不选择 何种波特率只需要在该行前添加“//” (注意不包括“”)。默认设置 250K 在 Printrun/Pronterface 和 RepSnapper 里面运行都不错。 (我用 lubuntu Pronterface 250K 连接不上的,115.2K 倒没有问题)。 主控板 – 49 行 ifndef MOTHERBOARD define MOTHERBOARD 33 endif 你可以在注释里可以看到 Marlin 固件支持的主控板清单,通过修改define MOTHERBOARD 这行的数字,选择对应的主板编号即可。上面这行是选择 RAMPS 1.3 的 意思, 你可以按自己实际情况修改该项。 Marlin 固件会根据主板信息定义主控板引脚布局。 具体各种主控板的引脚布局可以在pin.h 中看到。 Marlin 固件 温控设置 现在我来看看温控方面的设置,温控设置有点复杂,但是我们不需要考虑那些复杂的 PID 计算设置问题。基本上我们需要做的是选择3D 打印机机温度传感器的类型,如果不是 你自己安装的温度传感器,你可以在RepRap wiki 中了解温度传感器的类型。 热电调节器(热敏电阻) – 78 行 define TEMP_SENSOR_0 1 define TEMP_SENSOR_1 0 define TEMP_SENSOR_2 0 define TEMP_SENSOR_BED 1 如果你仔细阅读 Marlin 固件的配置文件,你会发现支持的固件所支持的温控传感器的 类型对应的编号。TEMP_SENSOR_0 是喷嘴的温控传感器类型、TEMP_SENSOR_BED 是加 热床的温控传感器类型,一般来说都是100K 热敏电阻。 如果你是用 RAMPS 1.3 主控板和 pin.h 中使用默认布局的话, 你可以在主控板的 T0 和 T1 接口分别对应 TEMP_SENSOR_0 和 TEMP_SENSOR_BED。选择 0 即关闭该接口。请选 择合适你打印机的温控传感器吧。 温度限制(最大值) – 99 行 define HEATER_0_MAXTEMP 275 define HEATER_1_MAXTEMP 275 define HEATER_2_MAXTEMP 275 define BED_MAXTEMP 120 有些喷嘴和加热床的最大工作温度会低于 Marlin 固件的默认最大温度,为了减少对喷 嘴和加热床的损害,可以设置最高温度限制。 Marlin 固件的机械设定 机械设定部分包括限位开关、步进电机、最大制造范围和运动位移值。 限位开关和上拉电阻这一节将教你配置 3D 打印机每个轴中的限位开关。用 G28 命令会让 3D 打印机的 3 个轴回零方向运动直到碰到限位开关。 限位开关如果没有 5V 电源 作为产生信号源的话, 配置 ENDSTOPPULLUPS 会确保让固件产生一个信号、 当限位开关接 通时才会产生明确的数字信号0。 如 需 了 解 更 多 请 参 考RepRap wiki 的 ( 机 械 限 位 开 关 ) Mechanical Endstop,OptoEndstop 2.1(光学限位开关) and Gen7 Endstop 1.3.1。(最好就是按机械 开关的原理图来制作限位开关,这样的效果最好。) 限位开关上拉电阻总体控制–194 行 // corse Endstop Settings define ENDSTOPPULLUPS //Comment this out using // at the start of the line to disable the endstoppullup resistors Marlin 固件默认是需要限位开关的上拉电阻的。从 207 行开始固件为每个限位开关分 配独立一个上拉电阻,如果 194 行被取消则从 197 行开始的上拉电阻控制都会一并取消。 这样方便你自己的 3d 打印机采用不同类型的限位开关。一般来说 X 轴和 Y 轴采用机械限 位开关,可以不需要制作 3 线的数据口,而 Z 轴的光学开关默认为 3 线的数据口。这是光 学开关就不需要使用到 ENDSTOPPULLUPS注释。 限位开关上拉电阻细分控制 – 196 行 ifndef ENDSTOPPULLUPS // fine Enstop settings Individual Pullups.will be ignord if ENDSTOPPULLUPS is defined define ENDSTOPPULLUP_XMAX define ENDSTOPPULLUP_YMAX define ENDSTOPPULLUP_ZMAX define ENDSTOPPULLUP_XMIN define ENDSTOPPULLUP_YMIN //define ENDSTOPPULLUP_ZMIN endif 如果 Configuration.h194 行被注释掉的话, 则 196 行的语句将会被执行。 你可以独立控制每 个限位开关的上拉电阻,当然这个是要根据你3D 打印机的限位开关类型来确定. 限位开关方向控制 - 216 行 // The pullups are needed if you directlyconnect a mechanical endswitch between the signal and ground pins. // set to true to invert the logic of theendstops. const bool X_ENDSTOPS_INVERTING false; const bool Y_ENDSTOPS_INVERTING false; const bool Z_ENDSTOPS_INVERTING false; 机械限位开关通常会把连线连在常通NC 端,这就会有个一个数字信号1 输入到主控 中。 如果你的机械限位开关的连线是连在常关 (NO) 端, 这就需要在 ENDSTOPS_INVERTING 采用 ture 从而是数字信号 0 反向变为 1.对于光学开关来说,则一般不用进行调整。 你应该在电脑控制软件中实际试验一下限位开关的方向是否与你的预期相符, 如果轴运 动时触动限位开关就停止则说明,该项设置正常。注意在做此测试时,应该给各个轴 留出足够的运动反应空间。以免损坏机器。 关闭最大限位开关– 219 行 //define DISABLE_MAX_ENDSTOPS 上述这行代码在 marli