查看: 14737|回复: 4
打印 上一主题 下一主题

Marlin固件V1基本配置设置指南

[复制链接]

68

主题

115

帖子

5554

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
5554
跳转到指定楼层
楼主
发表于 2014-1-9 12:05:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

Marlin固件V1基本配置设置指南
原文链接:
http://airtripper.com/1145/marlin-firmware-v1-basic-configuration-set-up-guide/
     我刚刚更新的Marlin固件上我的Sumpod 3d打印机,因为我总是渴望有最新的功能和bug修复。说实话,我没有对该固件进行过多的修改,如果它不是我的最后一个版本的配置文件,我会努力记住配置文件的设置,我将在最新的固件版本上进行修改。

  不管怎么说,我对3D打印机固件的了解仍是比较粗浅,我将给大家介绍一些固件配置之上的注意事项,从而使一台3D打印机能正常工作。这些注意事项是针对Marlin 固件 V1 ,包括通信端口、运动方式等,还包括如何使smart contoller 正常工作。

  Marlin固件配置的准备

  在Marlin固件配置文件中列有对支持主控板明细,固件中有些选项或者功能不被这些主板所支持。本文是按RAMPS 1.3 硬件进行配置的,但本文的配置方式适用于任何Marlin固件兼容板。(RAMPS 1.4 、Ultimaker 1.57都是可以完美支持的)
  那些想自己配置自己的3d打印机参数或者想从Marlin 固件的注释中了解更多信息的人来说,Marlin固件是一个非常不错的选择。这份指南是一份简单的用户指南,告诉你设置的基本信息、怎么运用这些设置、根据不同的需求制定特色功能。我不保证此的Marlin固件引导中的信息是准确的,Marlin固件在本文发表后很可能会进行更新。如果你发现任何错误,请在结束后发表评论。



  Marlin固件 V1 需要用Arduino 0023 IDE来编辑、保存和上传(现在已经可以使用Arduino 1.01 IDE),下文中,需要修改的语句我将会用行数表示,行数可以在Arduino 1.01 IDE左下方显示。Marlin 固件的配置信息存放在Configuration.h中。

  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 endstop pullup 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 directly connect a mechanical endswitch between the signal and ground pins.
// set to true to invert the logic of the endstops.
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

上述这行代码在marlin 固件Configuration.h(219行),通常情况下是被注释掉的。如果你的打印机的原点开关安装在X、Y、Z轴最大位置的话,这个就需要去掉注释符号。

通常情况下Z轴的限位开关是放在Z轴最大限位,这样可以使hot end 可以免受挤压。为了达到这个目的,这样就需要去掉注释。但是这行对于那些没有最大限位开关的主控板是没有用的哦!




关闭轴 – 228 行

// Disables axis when it’s not being used.
#define DISABLE_X false
#define DISABLE_Y false
#define DISABLE_Z true
#define DISABLE_E false // For all extruders

通常情况下上面的代码是不改动的,所有轴都是选择 false 的。然而,如果你的3d打印机z轴有手动调整的部件,可以在#define DISABLE_Z 行选 true ,这样在打印机打印时,可以手动调整z轴。



步进电机
我们已经来到了设置步进电机部分,这部分主要设置步进电机运行方向、限位开关逻辑、行程、步进长度单位。前面部分的限位开关已经测试好了,所以这部分的测试就相对简单很多了。

步进电机运转方向–  233 行

#define INVERT_X_DIR true
#define INVERT_Y_DIR true
#define INVERT_Z_DIR true
#define INVERT_E0_DIR true
#define INVERT_E1_DIR false
#define INVERT_E2_DIR false

这部分是决定3d打印机各个轴的运行方向的,默认的选项不一定适合每一种打印机,所以我个人建议是先测试其他项目,最后才测试这部分。





英文版权归原作者所有,中文版由珠海创客空间sakunamary翻译,欢迎转载
回复

使用道具 举报

1

主题

17

帖子

62

积分

橙蚂蚁

Rank: 2

积分
62
QQ
板凳
发表于 2015-1-4 16:09:03 | 只看该作者
这是初学马林很好的教材啊  谢谢
回复 支持 反对

使用道具 举报

1

主题

17

帖子

125

积分

橙蚂蚁

Rank: 2

积分
125
地板
发表于 2015-2-27 11:03:24 | 只看该作者
好教材,最新版的固件谁研究过
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|3D小蚂蚁工作室 ( 赣ICP备13006545号 )

GMT+8, 2024-5-2 14:32 , Processed in 0.076200 second(s), 19 queries .

Powered by 版权所有 X3

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表