3D打印机折腾 - XYZPrinting da Vinci 1.0
前言¶
因为某种缘分,我上了一个库存3D打印机的车。买到的打印机是 XYZPrinting 出品的 da Vinci 系列,版本1.0,下面简称达芬奇。现在这个系列都加上了前缀“original”。
该打印机用的是私有协议,而我不喜欢被私有上位机控制的感觉(GNU/Linux上操作、配合其它软件时会很麻烦)。于是折腾了“一下下”。
幸运的是我拿到的版本比较老,可以更换电机驱动器。
机器上手¶
这个设备真的比想象的大不少……明明工作空间只有200*200*200
的说……占地差不多 500*600
,高度 500
,单位都是毫米。
比较可惜的是,设备到我手上时已经因运输不当损坏了多个部件,例如柜门转轴、上翻盖转轴、热床支架、热床玻璃、Z轴底座等等。总之先尝试调平、打印了内置测试件,感觉还行。
可惜这个调平不是长久之计,网上搜索后没有找到合适的热床组件,找商家补发了一个备件。在此期间先研究一下通信协议、耗材限制吧。
在此先记录一下我对于3D打印机到手后的操作建议:
- 检查机械结构
- 上电检查状况
- 检查是否校准并视情况调整(例如使用自动校准功能)
- 装料
- 打印测试
耗材锁与上位机协议¶
我机器随附光盘的程序没法正常运行……网上找到的官方程序也没法成功地在虚拟机里打印…… 可惜了 那正好,必须折腾起来。好在网友留下了大量研究资料1 2(相关论坛资料主要发布于2016年前后,很久远,说明这机器年岁也很高)。
“简单”看了一下,就是用特定串口命令上传文件呗,用Py快速实现了一个小工具3。 第一次上传gcode时一个不小心让打印头撞了一下平台……这好像也给后面打印立方体测试时埋下了隐患,导致模型某个侧面疯狂突出。
用这个方法打印模型需要用USB连接串口。需要注意的是,没调整好的话床很容易撞喷头,具体我就不详细写了。
刷机 - Repetier 固件¶
工具写到一半发现有个现成的开源固件。刷机也很方便,直接短接、清除原固件后就可以直接用 Arduino IDE 或 PlatformIO IDE 上传。但是在使用过程中会遇到一些小问题。 中间虽然尝试了备份原固件,但发现JTAG接口并不能用=_=,算了反正原装固件是枷锁。
我的刷机过程如下,其它设备会略有不同,请参考固件说明。
- 检查型号兼容性
- 断电->短接JP1->上电->过几秒断电->断开JP1
- Clone并打开项目文件夹,修改
src/ArduinoDUE/Repetier/Configuration.h
中的配置 - PlatformIO IDE 编译、上传,随后进行设备校准与检测
- 根据实际设备情况调整参数
- 重新编译、上传,校准与检测
- 终于测试通过了,正常使用
我的挤出头边上的探针(probe)长度与测试点位置的位置好像和程序预定义的有点不同,在使用过程中发现了一些问题。不得不修改了一下代码。
加装WiFi模块¶
ESP3D这个东西还是有点意思的。哦,装了这个玩意儿可能会让USB串口不正常。
以 ESP12F 为例,2.1.x 固件的使用注意点:
供电得足……- 在
esp3d/config.h
中对你需要的功能进行调整 - 刷机前最好用esptool把模块的存储器擦除一遍,以清除所有会影响到的配置
- 刷机后上机工作不太正常是正常的,需要简单配置一下
- 连接热点后上传index.html.gz,找不到可以fzf/find一下
- 走一遍tour,配置工作模式
- 2.x成熟一点,指引直观易用;3.0更先进,但是不知道什么时候才有稳定版,没什么指引不太方便
- 打印机固件也要开启WiFi功能哦
- Repetier for davinci 最大波特率只有 500000,如果你调高了,ESP3D和打印机固件会自动将波特率降下来
硬件连接参考如下(达芬奇1.0 跳线JP1版),可以先看看原项目的示意图5。原项目建议串口加一对分压电阻把RX电平降下来。 该串口的波特率和 USB 串口的波特率(打印机设置的)一样。
+---------+ +---------------+
| GND |___ ___|1 to RX |
| | \/ | |
| TXD |_ /\ _|2 to VCC(3.3V) |
| ESP | \/ \/ | |
| RXD |_/\ /\_|3 to GND |
| | \/ | |
| VCC |___/\___|4 to TX |
+---------+ +---------------+
测试的时候要同时面对好几个疑问真的头疼死了……总之装上去了!
Warning
后续升级达芬奇固件时,一定把ESP3D取下来!不然会有影响!
关于项目仓库提供的连接示意图
ESP3D项目地址中达芬奇1.0/2.0的连接示意图标注的是连接方法,不是引脚定义。即RX接RX,TX接TX。
达芬奇装WiFi模块供电
不要用LDO(或者说不要用低效率的LDO),原本供电刚好 3.3V 且足够ESP8266开热点,过一个LDO可能就不够用了。如果版型和我的一样,串口可以直接对接,电平都是3.3V不会烧。
换电机驱动¶
想用TMS2209换掉原来的A4988。达芬奇的电机驱动板排针间距大概7个单位距离,比常见的5个单位距离宽一些(1单位距离为2.54mm,排针间距),需要改造。
目前想到的办法有魔改双层转接器和自制转接板。结果咧,转接器(双层排母但是两层一样)都做好了,但是怕操作失误把板子弄坏,还是放弃了(网友称其‘fragile’)。
以后有机会用自制转接板改吧,感觉稳妥些。 事实证明 直接直连转接的话需要改一下电机插头线序 只是方向相反而已,另外做的转接板线接错了直接报废。
另外说一句,我搞不太懂这些步进电机的1A2B什么的编号,好像有两种标准很坑人(一种字母对应线圈/相、数字对应正负,另一种反过来)。
只要知道接对了电机会动,接错了电机会原地抖动,估计就没啥问题了。
嘉立创免费打样了一组转接板,配合长排针,把原来的母座改了,同时兼容原版和常见的TMC2209 总之就是直接报废。电机驱动根据soliforum的网友提供的信息6来看,
驱动电流不应该超过1A,大概在0.8A左右合适。100mΩ的情况下调整电压差不多1V应该就行了。
提前预留了活动空间并测试了一下电机驱动方向,发现恰好相反,那么稍微修改一下固件把它矫正过来~
// 需要修改的内容如下,给出的是使用TMC2209时的值
#define INVERT_X_DIR false
#define INVERT_Y_DIR true
#define INVERT_Z_DIR false
继续用原来的长排针,发现单位移动距离好像对,可能是微步设置出现问题,不管三七二十一先重新做了“可靠的”转换器,又实验了好几次,非常不稳定,中间还不小心插反了一个模块(-11CNY (ಥ_ಥ)),只剩3个可用了…… 一筹莫展之际,想到了板子MS1、MS2、MS3是没有隔离的,而且TMC2209的MS3是个TX(输出模式的IO),说不定影响到了微步设置?嗯,咱把对应的引脚剪掉吧!还好只是剪转接器的引脚。oh,还真的是这样!一切终于正常了。
用TMC2209替换A4988的感受嘛,声音确实小了很多,还是挺明显的。在打印精度上基本没有多少提升=_=。总体上确实有提升就是啦。
关于校准¶
平台平衡校准,配合纸片手动调平比根据自动测量数据调整要靠谱得多(说明自动测量是废物/当然也不完全是)。
我建议的校准流程:
- 平台校准
- 清理平台和打印头,这一步在手动校准程序启动时会有个选项;
- 手动校准(Manual leveling),如果觉得不放心可以多来两次练练手(按照固件提示操作走完流程就行);
- 重新检测Zmin(Zmin evaluation);
- 打印测试件验证校准状况。
- 挤出机校准
- 在耗材上做好长度标记,然后按程序挤出一段耗材(比如100mm),测量实际挤出长度;
- 然后嘛就是一个比例计算, \(S_{new} = S_{old} \frac{E_{program}}{E_{actual}}\);
- 也可以参考一下网上资料 7。
挤出头与热端更换¶
目前看到有网友换了 MK8 或 E3D 的热端8 9。以后我得尝试一下。热端拆解得在网上找视频了。看起来以后可以直接换MK8热端。
温度传感器更换¶
参考开源固件讨论区10,有两种做法:一是改主板并更换传感器从而能用既有的通用数据,二是自己测对应的温度数据。
其他人的改造¶
发现有人直接把主板换掉魔改了一番11。我暂时没这个动力……先好好用用看吧,要换也先换热端和电机驱动了。
-
https://www.maxzprint.com.au/stepps-per-mm-calculator/ ↩