iMaker 3D打印机Marlin固件编译以及故障排除

几年之前买的一台 iMaker 3D打印机,已经在角落里面落灰许久了,本质上是一台  Ultimaker v1.5.7硬件的机器,因此使用 Ultimaker 的软件跟固件都是没有问题的。貌似这家公司现在已经快不行了的样子。 官网都已经打不开了。

具体信息如下:搬家之前,由于房间空间限制,已经在角落里落灰许久了。最近搬完家,有地方折腾了,打算打印几个小物件玩玩。可是实际运行时候发生打印严重变形的问题。具体的表现就是Z轴上(也就是高度方向上)发生严重的拉伸现象,整个打印物体的高度被拉伸,比如那个自带的三厘米左右的小机器人,被莫名拉伸到十几厘米,导致结构松散,严重变形,易碎。刚刚开始以为是升级固件导致的问题,但是还原到以前可以正常使用的固件,问题依旧。以为是USB通讯导致的问题,使用SD卡打印的效果依旧是这个样子。一时间毫无头绪。于是准备拆开看看硬件部分是不是损坏了。结果发现 Z 轴控制器中的一个跳线帽丢了! 如下图:
底部电路
Z轴部分跳线

从上图可以看到 Z 轴的 MS3 位置的跳线帽丢了。根据说明,这个跳线帽插上之后是 1/16 细分,否则是1/8细分,相当于把 Z 轴的下降速度提升了一倍!

这个设备使用的是开源的 Ultimaker v1.5.7 的电路图,大家可以在本站下载到 Arduino MEGA Ultimaker Shield SchArduino_MEGA_Ultimaker_Shield_v1.5.7

更详细的内容参考 Ultimaker's v1.5.7 PCB

正常的跳线状态,如下图所示:

找了个跳线帽插上之后,恢复正常。

由于这个板子是使用的官方的电路图进行了简单的修改,因此应该可以直接刷官方的 MarlinUltimaker 固件的,但是使用官方提供的 MarlinUltimaker 固件之后,加热床失效了。无论如何都不能加热。

看了一下官方的固件代码,发现默认情况下,加热床是关闭的。也就是官方提供的固件默认是没有加热床的(源代码的 Configuration.h,中 #define TEMP_SENSOR_BED 0 我们需要根据实际情况修改,一般修改为#define TEMP_SENSOR_BED 1 即可。但是如果是某些特殊品牌的,根据 Configuration.h 里面的说明进行修改)。因此我们只能自己从官方固件代码修改之后重新编译。

iMaker自带的热床没有牌子,一般是 4.7K 的上拉热敏电阻。因此定义 #define TEMP_SENSOR_BED 1 即可。

编译方法

1.下载一份最新的代码,Linux下命令行操作如下:

Windows 下可以浏览器直接下载最新代码 https://codeload.github.com/Ultimaker/Marlin/zip/Marlin_v1,然后手动修改 Configuration.h 文件,参考 Linux下的操作。

2.下载 Arduino 开发工具  https://www.arduino.cc/en/Main/Software?setlang=cn  使用最新的 Arduino 1.8.9 版本,这个版本的库比较全,已经不需要安装其它附加库了。也可以本站下载一份拷贝。 arduino-1.8.9-windows.exe

3.使用 Arduino 1.8.9 打开项目目录下的Marlin目录下的Marlin.ino 并将设备选择成Arduino Mega 2560,如下图:


然后选择 “项目” 菜单中的 “导出已编译的二进制文件”,如下图:

编译完成后,会在代码目录下生成 Marlin.ino.mega.hex,Marlin.ino.with_bootloader.mega.hex两个文件,我们使用第一个即可, bootloader尽量不要升级。

文件可以用 Ultimaker Cura 进行升级即可。

目前我使用的固件代码,可以在这里下载 Marlin-Marlin_v1 里面包含已经编译好的固件。

iMaker当时给的使用说明如下:

View Fullscreen

参考链接


发布者

默默

默默码农

发表评论

电子邮件地址不会被公开。 必填项已用*标注