MakerLab创客实验室 — Let's Make something.
现在注册
已注册用户请 登入
Andy large avatar
MakerLab创客实验室  ›  学习系统  ›  3d 打印  ›  RAMPS1.4 3d打印控制板接线与测试

配置固件并上传固件

By Andy at 3 年前 , 41342 次浏览

mega 2560板子在3d打印机中相当于大脑,控制这所有的3d打印配件来完成复杂的打印工作,但mega2560不能直接使用,需要上传(upload)固件(firmware)才可以使用。

1、下载固件——Marlin

由于Marlin固件的强大功能和简单易用,所以这里暂时只介绍Marlin固件。
Marlin原版下载地址(很多参数都需要自己配置):
我自己配置的Marlin固件大部分参数已经改好:http://vdisk.weibo.com/s/dt1ol2fSahCM
delta机型固件:http://vdisk.weibo.com/s/dt1ol2fSahjs

我的淘宝店铺:MakerLab

2、配置固件参数

如果你下载的是我提供的固件,那么大部分参数不需要调整,基本上烧入后就可以进行后面的工作了。但下面需要配置的参数还是知道比较好,免得因为固件配置有问题打印机而无法使用。没有提到的参数默认即可。
#define BAUDRATE 250000这是配置串口波特率的,只有上位机波特率和固件波特率相同来能通讯成功,一定需要注意。当然也不能随便改,常见的波特率为:2400,9600,19200,38400,57600,115200,250000。在3d打印机中常用的是后3个。
#define MOTHERBOARD 33 这个参数是配置板子类型的,3d打印机主控板类型非常多,每个板子的io配置不尽相同,所以这个参数必须要跟你自己的板子类型相同,否则无法正常使用。我的板子是RAMPS1.4版本,对应的配置应该为33(单打印头配置),和34(双打印头配置)。如果你使用的是其它板子,请参考旁边的注释并选择合适的配置。
#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_BED 1这两个参数分别配置温度传感器的类型。这是读取温度是否正常的重要参数,如果读取的温度不正常将不能工作甚至有很大的潜在危险(烧毁器件等)。配置为1说明两个都是100K ntc热敏电阻。如果你使用了其它温度传感器需要根据情况自行更改。
#define EXTRUDE_MINTEMP 170 这个参数是为了防止温度未达到而进行挤出操作时带来的潜在风险,如果你做其它3d打印机,比如有朋友做巧克力打印机,挤出温度只需要45度,那么这个参数需要配置为较低数值,比如40度。
const bool X_ENDSTOPS_INVERTING = true;
const bool Y_ENDSTOPS_INVERTING = true;
const bool Z_ENDSTOPS_INVERTING = true; 这里的三个参数是配置3各轴的限位开关类型的,配置为true,限位开关默认状态输出为1,触发状态输出为0,也就是机械限位应该接常开端子。如果你接常闭端子,则将true改为false。
#define INVERT_X_DIR false
#define INVERT_Y_DIR true这两个参数是比较容易错的。根据自己机械的类型不通,两个的配置不尽相同。但是原则就是要保证原点应该在打印平台的左下角(原点位置为[0,0]),或右上角(原点位置为[max,max])。只有这样打印出来的模型才是正确的,否则会是某个轴的镜像而造成模型方位不对。参考下图坐标。
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1 如果原点位置为最小值参数为-1,如果原点位置为最大值配置为1.
#define X_MAX_POS 205
#define X_MIN_POS 0
#define Y_MAX_POS 205
#define Y_MIN_POS 0
#define Z_MAX_POS 200
#define Z_MIN_POS 0 这几个参数是配置打印尺寸的重要参数,参考上面的坐标系图来填写,这里需要说明的是坐标原点并不是打印中心,真正的打印中心一般在[(x.max-x.min)/2,(y.max-y.min)/2]的位置。中心位置的坐标需要在后面的切片工具中使用到,打印中心坐标应该与这里的参数配置匹配,否则很可能会打印到平台以外。
#define HOMING_FEEDRATE {50*60, 50*60, 4*60, 0} 配置回原点的速率,单位为毫米每分钟,如果你使用的是xy轴同步带传动,z轴螺杆传动,这个参数可以使用默认值。
#define DEFAULT_AXIS_STEPS_PER_UNIT {85.3333, 85.3333,2560,158.8308} 这个参数是打印机打印尺寸是否正确的最重要参数,参数含义为运行1mm各轴所需要的脉冲数,分别对应x,y,z,e四轴。多数情况下这个数字都需要自己计算才可以。计算公式可以参考我的文章3d打印机各轴脉冲数计算方法。如果你不想自己计算可以用我的计算器:3d打印机脉冲数计算器
至此,最常用的参数都已经配置完成,可以开始使用了。
另外如果你使用了我的MINIPANEL lcd板子还需要改//#define MINIPANEL将前面的//删除掉才可以正常使用。

3、上传固件

上传之前,windows用户需要提前安装驱动。
配置板子类型:Tools > Board > Arduino Mega 2560 ,如图

配置串口: Tools > Serial Port > 你的mega板子对应串口号一般是最后一个,如果是windows系统,串口号一般是com3、com4、com8之类的形式。如图

点击对号按钮来检查是否有错误,如图

再点击向右的箭头按钮来上传固件,如图

上传过程中,2560板子上的TX RX 和L对应的三个led灯都会闪。如果不闪了,说明上传完成,如图

上传中...

上传完成提示

如果上传成功,你就可以进入下一个步骤了,如果上传中出现问题而无法上传,请查看IDE下方的提示框,确认是什么问题后进行进行解决再上传,常见错误板子类型选择错误,串口选择错误等。

本文最后更新于:4 个月前
32 回复
Andy medium avatar
#1 - 2 年前
Andy

如果你用于delta机器(并联,三角洲),那么固件请下载这里的:https://github.com/MakerLabMe/Marlin_delta ,大部分参数安装默认即可,只需要配置机器尺寸及比例相关的参数即可

kerryking medium avatar
#2 - 2 年前
kerryking

我在编译时delta版本时有错误:Marlin.ino:44:101: fatal error: U8glib.h: No such file or directory

864271200 medium avatar
#4 - 2 年前
864271200

为什么电机复位的时候可以动,而要它左转或者右转的时候就只发出声音但不动了?

Andy medium avatar
#7 - 2 年前
Andy

@nishishui 调平代码就在固件里。你可以研究一下

Andy medium avatar
#9 - 2 年前
Andy

@nishishui 抱歉,涉及代码太多了,说不清楚。并且我也没有研究过太详细。要想研究,就要通读代码

elder60 medium avatar
#12 - 一年前
elder60

我按你讲解的方法配置并上传后,Z,E2轴可以动作;X,Y2轴不可以动作.
2个温度控制均可工作.不知什么原因?能否指点一下?

Andy medium avatar
#13 - 一年前
Andy

@elder60 打算用E2步进电机口用在Y轴上?什么板子?我的固件?

Arduino medium avatar
#14 - 一年前
Arduino

请问运行之后出现错误:“undefined reference to `setup'” 是怎么回事?

elder60 medium avatar
#16 - 一年前
elder60

上传后,Z,E 2个轴可以动作;X,Y 2个轴不可以动作. 板子自购的mega2560r3+samps1.4
自己下载的marlin,按你的方法配制的. 我的感觉是模拟口作为数字用的x,y轴都有问题.特请教.

Arduino medium avatar
#17 - 一年前
Arduino

@Andy 我想用3D打印硬件系统做电机驱动,请问怎么通过Arduino软件用G代码写程序?

stupify medium avatar
#18 - 一年前
stupify   via Android

@Andy 大神我的固件上传总是提示low memoryavailable,stability problems may occur 然后测试调平都没有问题 但是载入G代码开始打印就不执行 没放映 是那串提示的原因么?

lork medium avatar
#19 - 一年前
lork

@stupify low memoryavailable=低可用内存
后面是:可能出现稳定问题
是不是存东西多了。。。

Andy medium avatar
#20 - 一年前
Andy

@Arduino 分析一下3d打印机的固件就知道了。

@lork 这个错误是在什么情况下出现的?你自己改过固件?改了哪些东西?

stupify medium avatar
#21 - 一年前
stupify   via Android

@lork 板子的烧写不是自动覆盖的嘛?

stupify medium avatar
#22 - 一年前
stupify   via Android

@Andy 我也是在网上下的固件 除了教程上的参数其他的没有乱改过 因为读不懂程序都没敢乱动

lork medium avatar
#23 - 一年前
lork

@Andy 我说的不是delta的机器结构,是XY方向,有种结构是H型,一根皮带搞定的

Andy medium avatar
#24 - 一年前
Andy

@lork 可以,打开corexy配置选项

MYD medium avatar
#25 - 一年前
MYD   via Android

可以发corexy的固件给我吗,我自己diy了一个感觉白弄了。自己根本不会调试。

Andy medium avatar
#26 - 一年前
Andy

@MYD 打开corexy选项,然后接电机就可以了

lork medium avatar
#27 - 一年前
lork

@Andy 想问下,打印机运动的时候,为什么走一段时间等几秒,又继续走一会,又停下啊,有遇到这个情况的吗?

yiriyanggang medium avatar
#29 - 一年前
yiriyanggang

@ Andy 能否留个qq, corexy选项打开就可以了么

天涯earl medium avatar
#30 - 10 个月前
天涯earl

#error Oops! Make sure you have 'Arduino Mega' selected from the 'Tools -> Boards' menu.
我下载你的配置 显示这个错误不能上传

aape01 medium avatar
#31 - 4 个月前
aape01

我想了解Marlin固件scara的详细坐标转换和说明为什么会超调什么的。

aape01 medium avatar
#32 - 4 个月前
aape01

我要做机械臂abb公司那种!