MakerLab创客实验室 — Let's Make something.
现在注册
已注册用户请 登入

Kossel/Rostock等Delta并联三角洲3d打印机固件配置及自动调平

固件配置对打印机非常重要,Delta机型也不例外
简介20 硬件准备及配置0 固件修改配置48 检验、校正你的参数39 G29测试效果18 真实打印测试13
Andy large avatar
MakerLab创客实验室  ›  学习系统  ›  3d 打印  ›  Kossel/Rostock等Delta并联三角洲3d打印机固件配置及自动调平

固件修改配置

By Andy at 2 年前 , 21607 次浏览

Kossel的固件配置基础部分跟普通xyz打印机的配置差不多,详细的配置文件(configuration.h)的说明请参考我的另一篇文章:http://www.makerlab.me/guides/7/articles/43 这里只说明最关键的几个参数,其它参数不要随便改,默认即可。

Delta固件下载:https://github.com/MakerLabMe/Marlin_delta/
如果你还没有安装IDE即上位机软件,请参考:http://www.makerlab.me/guides/7/articles/42

说明,下面所说的代码都见于Configuration.h文件中。

1、板子类型

板子类型是打印机可以正常工作的基础,所以一定要配置正确,常见板子类型有:
ramps1.4板子: 33;
ultimaker板子: 7;
我的合体板子即Mega controller:310;

#ifndef MOTHERBOARD
#define MOTHERBOARD 310
#endif
//根据你的板子类型选自相应的数字在这里,我这里配置为310,是由我们MakerLab最新设计的合体式的控制板Mega Controller

2、温度传感器类型

温度传感器是用来读取温度的,如果配置错误或接线错误会导致打印机错误,请一定要配置正确。

#define TEMP_SENSOR_0 1//第一个打印头的传感器。这里是100K NTC热敏电阻的配置,如果你用其它传感器类型请做相应修改,比如热电偶改为-1(需要另外添加AD597温控板)
#define TEMP_SENSOR_1 0//如果配置为两个挤出头,此传感器需要配置
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_BED 1//热床对应传感器类型,如果你没有用热床,请改为0,如果你用其它传感器类型请做相应修改,比如热电偶改为-1(需要另外添加AD597温控板)

3、限位开关配置

如果你下载的是上面我提供的固件,你不需要做任何修改,保留默认配置即可。

4、脉冲比率配置

这个参数非常关键,delta固件给我们简化了这个计算过程,只需根据你的硬件配置做相应参数的调整就可以。


#define XYZ_FULL_STEPS_PER_ROTATION 200 //步进电机每周的步数,即360/步进电机铭牌上的角度,如1.8度,步数应该是360/1.8=200;
#define XYZ_MICROSTEPS 16 //步进驱动的细分,大部分都配置为16,如果你的不一样,请做相应调整;
#define XYZ_BELT_PITCH 2 //同步带齿间距,单位是毫米,2GT同步带齿间距是2mm;
#define XYZ_PULLEY_TEETH 17 //同步轮齿数,自己数一下,或查看卖家参数即可
#define XYZ_STEPS (XYZ_FULL_STEPS_PER_ROTATION * XYZ_MICROSTEPS / double(XYZ_BELT_PITCH) / double(XYZ_PULLEY_TEETH)) //这是计算公式,请不要修改;

#define DEFAULT_AXIS_STEPS_PER_UNIT {XYZ_STEPS, XYZ_STEPS, XYZ_STEPS, 100}//这是最后的参数,最后100你需要自己改为相应挤出机的参数,其它的不需要改

5、delta相关参数配置

下面是delta打印机特有的参数,各参数与打印机实际尺寸的关系如图所示:

// Center-to-center distance of the holes in the diagonal push rods.
#define DELTA_DIAGONAL_ROD 186.0 // mm

// Horizontal offset from middle of printer to smooth rod center.
#define DELTA_SMOOTH_ROD_OFFSET 128.0 // mm

// Horizontal offset of the universal joints on the end effector.
#define DELTA_EFFECTOR_OFFSET 19.9 // mm

// Horizontal offset of the universal joints on the carriages.
#define DELTA_CARRIAGE_OFFSET 19.5 // mm

// Horizontal distance bridged by diagonal push rods when effector is centered.
#define DELTA_RADIUS (DELTA_SMOOTH_ROD_OFFSET-DELTA_EFFECTOR_OFFSET-DELTA_CARRIAGE_OFFSET)

// Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
#define DELTA_PRINTABLE_RADIUS 70.0 //delta最大打印半径,根据你的实际情况来修改,不要太大,放置出现撞车

另一个跟尺寸相关的参数,是回原点后,打印头到打印平台的距离:

#define MANUAL_Z_HOME_POS 214  

6、打开自动调平功能及相关配置
// #define ENABLE_AUTO_BED_LEVELING // 如果要打开自动调平功能,需要将前面的“//”删除,才会起作用

//这个参数比较关键,尤其是Z轴的偏移,即Z探针刚刚触发时,打印头与探针之间的偏移量,可以通过卡尺或移动轴来记下坐标等方式来确定比较精确的Z偏移
#define X_PROBE_OFFSET_FROM_EXTRUDER -1.0
#define Y_PROBE_OFFSET_FROM_EXTRUDER 21.0
#define Z_PROBE_OFFSET_FROM_EXTRUDER -6.7

7、LCD配置

如果你有LCD,需要打开相关参数,比如你接了MakerLab的MiniPanel,需要做如下修改:

// #define MINIPANEL //删除前面的“//”

由于delta打印机固件需要做很多坐标转换的运算,所以如果打开12864的LCD功能,可能会造成卡顿的现象,可以调节下面参数来修正和缓解这种问题:

#define DELTA_SEGMENTS_PER_SECOND 160 //减小这个数值,来缓解卡顿现象,如修改为120进行测试。

OK,如果你来到了这里,大部分参数都已经配置完成,可以进入下一个环节来验证配置即硬件接线是否正确了。

上传固件的方法,请参考:http://www.makerlab.me/guides/1/articles/2

本文最后更新于:24 天前
48 回复
Andy medium avatar
#1 - 2 年前
Andy

大家如果有不清楚的地方可以在下面这里提出你的疑问,或直接发布新话题。

aoogoost medium avatar
#2 - 2 年前
aoogoost

非常感兴趣用压敏电阻来实现的具体实现,我在淘宝网搜,无法找到合适使用的压敏电阻,是否无源铜基压电陶瓷蜂鸣片能合适使用?如何接线???

Andy medium avatar
#3 - 2 年前
Andy

@aoogoost 我也了解过。相应压敏型号太贵了。不知道普通应变片能不能用。你可以试试看,价格不贵。

旺我 medium avatar
#4 - 2 年前
旺我

这版固件我用后,中文LCD顺利出来了!!但为什么Z轴同样调10MM,向上是对的,向下只有1MM?

Andy medium avatar
#5 - 2 年前
Andy

@旺我 你之前用的固件没有这个问题?刷回原来的固件进行测试,找找两次固件的配置差异。
可能跟最大z轴距离、限位有关系

旺我 medium avatar
#6 - 2 年前
旺我

@/_ @Andy MakerLab创客实验室和QQ那个创客基地是一事吗?????

旺我 medium avatar
#7 - 2 年前
旺我

@/_ @Andy 我用的Repetier-Host上位机!!测试调机怎么做呀?

Andy medium avatar
#8 - 2 年前
Andy

@旺我 跟他们不是一回事。接线、配置固件、通电测试。基本上都有说明。

jinghua medium avatar
#9 - 2 年前
jinghua

用合体版+MINIPANEL,总是卡顿,ST卡都试了好多,用的是你的reprap的固件来装的REPRAP机,也有地方像DETAL机子样的改设置来解决吗?急=》由于delta打印机固件需要做很多坐标转换的运算,所以如果打开12864的LCD功能,可能会造成卡顿的现象,可以调节下面参数来修正和缓解这种问题:

#define DELTA_SEGMENTS_PER_SECOND 160 //减小这个数值,来缓解卡顿现象,如修改为120进行测试。》

jinghua medium avatar
#11 - 2 年前
jinghua

《#define DELTA_SEGMENTS_PER_SECOND 160 //减小这个数值,来缓解卡顿现象,如修改为120进行测试。》在REPRAP固件里,好像没有,哪里呢?

jinlong101 medium avatar
#12 - 2 年前
jinlong101

#define DELTA_DIAGONAL_ROD_2 sq(DELTA_DIAGONAL_ROD)

// Effective X/Y positions of the three vertical towers.
#define SIN_60 0.8660254037844386
#define COS_60 0.5
#define DELTA_TOWER1_X -SIN_60*DELTA_RADIUS // front left tower
#define DELTA_TOWER1_Y -COS_60*DELTA_RADIUS
#define DELTA_TOWER2_X SIN_60*DELTA_RADIUS // front right tower
#define DELTA_TOWER2_Y -COS_60*DELTA_RADIUS
#define DELTA_TOWER3_X 0.0 // back middle tower
#define DELTA_TOWER3_Y DELTA_RADIUS 这里需要怎么修改呢

Andy medium avatar
#13 - 2 年前
Andy

@jinlong101 这些都是自动计算的。保持默认,不要随便改。

Andy medium avatar
#15 - 2 年前
Andy

@zzj156156 这里的内容改好后板子已经可以正常使用了。其它的没有必要改。不过你可以看看我的那篇文章对各个参数的说明。来决定是否改动

define_ni medium avatar
#16 - 2 年前
define_ni

请教:delta机设置自动调平第1个点坐标的是哪段代码?另,我执行g29,动作时7个检测点的Z坐标不在一个高度,是逐步等距上升的,是怎么回事?

define_ni medium avatar
#17 - 2 年前
define_ni

总算折腾好了,因为调平没采用机械限位,用的传感器没接对。因为太鄙视原版探针式调平就没仔细看,看到机械限位接常开就想当然是闭合触发,原来开才是触发。

Andy medium avatar
#18 - 2 年前
Andy

@define_ni 恭喜恭喜,有什么装机调试经验可以来分享一下

yydyydyyd medium avatar
#19 - 2 年前
yydyydyyd

@Andy 请问我没用自动调平的话 曲率怎么调呢 我现在中心要是2mm高 移到四周会碰玻璃板诶。。。求助

tianjianwudi medium avatar
#20 - 2 年前
tianjianwudi

我试了一下G02和G03圆弧插补,好像不行啊,不知到是我输入的代码有误还是这个3D打印机不能进行圆弧插补。我查看了下切片软件产生的G代码,里面全是G01直线插补,如果应该圆弧插补的地方用圆弧插补打印出来的产品应该比全是直线插补出来的要细腻。不知到切片软件里是否有相应的设置,来产生一些圆弧插补。

Andy medium avatar
#21 - 2 年前
Andy

@tianjianwudi 固件确实支持G2,G3圆弧插补,不过目前开源切片软件貌似都不能很好的支持圆弧G代码导出。

tianjianwudi medium avatar
#22 - 2 年前
tianjianwudi

请问#define DEFAULT_AXIS_STEPS_PER_UNIT {XYZ_STEPS, XYZ_STEPS, XYZ_STEPS, 100}中的最后一个参数100是不是料丝向前1mm所需的脉冲数?

Andy medium avatar
#25 - 2 年前
Andy

@tianjianwudi 一般1万次左右吧。具体可以看看avr官方文档

Robohou medium avatar
#27 - 一年前
Robohou

@Andy 在上面给的固件链接中,打开configure.h为什么没有找到脉冲比例设置的代码呢
#define XYZ_FULL_STEPS_PER_ROTATION 200 //步进电机每周的步数,即360/步进电机铭牌上的角度,如1.8度,步数应该是360/1.8=200;
#define XYZ_MICROSTEPS 16 //步进驱动的细分,大部分都配置为16,如果你的不一样,请做相应调整;
#define XYZ_BELT_PITCH 2 //同步带齿间距,单位是毫米,2GT同步带齿间距是2mm;
#define XYZ_PULLEY_TEETH 17 //同步轮齿数,自己数一下,或查看卖家参数即可
#define XYZ_STEPS (XYZ_FULL_STEPS_PER_ROTATION * XYZ_MICROSTEPS / double(XYZ_BELT_PITCH) / double(XYZ_PULLEY_TEETH)) //这是计算公式,请不要修改;

#define DEFAULT_AXIS_STEPS_PER_UNIT {XYZ_STEPS, XYZ_STEPS, XYZ_STEPS, 100}//这是最后的参数,最后100你需要自己改为相应挤出机的参数,其它的不需要改

Robohou medium avatar
#28 - 一年前
Robohou

@Andy 是不是把两个头文件替换一下原来的马琳的头文件啊

Andy medium avatar
#29 - 一年前
Andy

@Robohou
把这些配置正确后,就可以了,它会自动计算相应的参数

#define XYZ_FULL_STEPS_PER_ROTATION 200 //步进电机每周的步数,即360/步进电机铭牌上的角度,如1.8度,步数应该是360/1.8=200;
#define XYZ_MICROSTEPS 16 //步进驱动的细分,大部分都配置为16,如果你的不一样,请做相应调整;
#define XYZ_BELT_PITCH 2 //同步带齿间距,单位是毫米,2GT同步带齿间距是2mm;
#define XYZ_PULLEY_TEETH 17 //同步轮齿数,自己数一下,或查看卖家参数即可

aaron medium avatar
#30 - 一年前
aaron

請問我的Delta打印直徑170mm 輸入G29會超出打印直徑,我該修改固件(Marlin_delta-makerlab)哪裡?

chongwojj medium avatar
#31 - 一年前
chongwojj

你好。我想问下,挤出头上用的是K型PT100的热电偶,我该怎么配置固件 #define TEMP_SENSOR_0 ?

chongwojj medium avatar
#32 - 一年前
chongwojj

我还想再弱弱的问一句,已经烧录好的固件,我连电脑后怎么打开已经配置好的固件?就是已经烧录到板子上的固件可以打开么?

tianjianwudi medium avatar
#33 - 一年前
tianjianwudi

你好,我最近刚买了PCB热床和高鹏硅玻璃,高鹏硅玻璃放PCB热床上并未完全贴合,我就想在高鹏硅玻璃和PCB热床间涂抹导热硅脂,这样是否能增强PCB热床与高硼硅玻璃之间的导热性能?还有请问您的热床是如何做的?谢谢!

tianjianwudi medium avatar
#34 - 一年前
tianjianwudi

@chongwojj 你可以在烧录固件前先把固件保存一下,这样下次打开时就说上次烧录的固件了

tianjianwudi medium avatar
#35 - 一年前
tianjianwudi

@aaron
#define DELTA_PRINTABLE_RADIUS 70.0 //delta最大打印半径,根据你的实际情况来修改,不要太大,放置出现撞车
如果以上没问题的话调平探针的X,Y偏移量设置的过大也会使打印头超出范围
#define X_PROBE_OFFSET_FROM_EXTRUDER -1.0
#define Y_PROBE_OFFSET_FROM_EXTRUDER 21.0
#define Z_PROBE_OFFSET_FROM_EXTRUDER -6.7

Andy medium avatar
#36 - 一年前
Andy

@tianjianwudi 涂导热硅脂是可行的,但要涂均匀,并且要用夹子夹紧

tianjianwudi medium avatar
#37 - 一年前
tianjianwudi

你好,最近我用ABS打印一个rostock上的零件,打印头温度开到235度 热床温度按ABS厂家要求开到了110度可打印的产品还是出现了严重的翘边,甚至有时直接在高鹏硅上打印产品会沾不住而跑开,后来我又试了在热床上再贴蓝色美纹纸,将热床温度加到120度,打印前热床上沾502胶,或是在打印好前几层后在容易翘边的地方沾502胶,这些方法都试过了效果都不明显,还是有比较严重翘边。请问Andy打印ABS料时有什么方法可以改善翘边。

cyf838438262 medium avatar
#38 - 一年前
cyf838438262

我改变了喷头固定块的大小,也修改了下面的参数,但是固件烧录之后打印出来的东西还是比实际尺寸大,这是什么原因?还有我想打印机调平时少找几个点,把调平范围缩小,应该设置哪里的参数?
// Center-to-center distance of the holes in the diagonal push rods.
#define DELTA_DIAGONAL_ROD 186.0 // mm

// Horizontal offset from middle of printer to smooth rod center.
#define DELTA_SMOOTH_ROD_OFFSET 128.0 // mm

// Horizontal offset of the universal joints on the end effector.
#define DELTA_EFFECTOR_OFFSET 19.9 // mm

// Horizontal offset of the universal joints on the carriages.
#define DELTA_CARRIAGE_OFFSET 19.5 // mm

tianjianwudi medium avatar
#39 - 一年前
tianjianwudi

@cyf838438262 你打印的产品比实际模型大了多少啊,你修改的那几个参数最好是根据你的打印机精确的测量出来,有误差的话也会影响实际尺寸的吧。
如果测量的尺寸没问题,那就看看以下参数设置对了吗,要根据你的打印机参数设置。
#define XYZ_FULL_STEPS_PER_ROTATION 200 //步进电机每周的步数,即360/步进电机铭牌上的角度,如1.8度,步数应该是360/1.8=200;
#define XYZ_MICROSTEPS 16 //步进驱动的细分,大部分都配置为16,如果你的不一样,请做相应调整;
#define XYZ_BELT_PITCH 2 //同步带齿间距,单位是毫米,2GT同步带齿间距是2mm;
#define XYZ_PULLEY_TEETH 17 //同步轮齿数,自己数一下,或查看卖家参数即可

调平范围缩应该是按照打印范围来的
// Print surface diameter/2 minus unreachable space (avoid collisions with vertical towers).
#define DELTA_PRINTABLE_RADIUS 70.0 //delta最大打印半径

为什么要减少探测点呢,我认为自动调平的探测点越多对调平的效果更好。总共就二十几个点,探测完也用不了多少时间。

cyf838438262 medium avatar
#40 - 一年前
cyf838438262

大了6mm。机器之前是可以正常工作的,我做了一些改装,换了个大的喷头固定块,修改了那几个参数打出来的还是比实际大。
我想缩小调平范围的原因是我在热床周边加了一些东西,其高度已经高出热床平面了,如果不缩小调平范围的话,风扇会撞在上面。

WT medium avatar
#41 - 一年前
WT

楼主你好 请问我从上面链接下的固件 编译报错 何解
错误信息
Arduino:1.6.6 Hourly Build 2015/10/30 03:43 (Windows 7), 开发板:"Arduino/Genuino Mega or Mega 2560, ATmega2560 (Mega 2560)"

sketch\qr_solve.cpp:7:18: fatal error: time.h: No such file or directory

#include

              ^

compilation terminated.

exit status 1

编译有误。

报告将会包含更多的信息
"在编译时,输出详细信息"
在 文件>首选项 中启用

lucky漫游小子 medium avatar
#42 - 一年前
lucky漫游小子

点击回原点限位开关能用,单独移动轴的时候限位开关没反应,求助求助

Andy medium avatar
#43 - 一年前
Andy

@lucky漫游小子
一般来说限位开关都只在复位时才用到,当然你可以改变这个选项,如果你想始终检查限位,可以在Configuration_adv.h中把这句代码见面加上//(注释掉):

#define ENDSTOPS_ONLY_FOR_HOMING // If defined the endstops will only be used for homing

@WT
这是因为IDE版本问题,你可以去这个文件中,qr_solve.cpp
include<time.h>这句代码前面加上//注释掉

中国汉字 medium avatar
#45 - 10 个月前
中国汉字

我刚接触打印机 就买了一台 三角洲的 我有很多问题想请教 可是我小白菜一个,问的有点水 若觉得。。。就不必回复了
1,这卖家不是很正规的 资金不足情况下买了这个经过玩家群介绍来的1050 自己DIY机子 除了安装说明什么都没有 安装出了很多问题不过还是安装好了,感觉机器还可以,我们唯一联系方式就是qq ,这快过年了 他可能也比较忙 (好几天没回复我,)昨天给我远程控制了下机器 ,没弄好 说今天正 又没音了 在此之前得几天 我由于心急 不想等了 就自己查资料 问管理员 最后说要刷固件 我又查什么事固件,然后 下了软件开刷机 ,总报错 ,这是那边回话了 整了半天 他们给刷完机器了 ,他给我整了一个.stl文件 打印一看 。。。打印头直撞玻璃,他说明天整 。。(过年了他可能也忙,自己又贪便宜,那边态度也还可以,也没想搞别的,一心想尽快打印东西,没在催他)
2当我刷固件遇到的问题是 我不知道怎么刷 查资料比如一个。。。conf....h 的文件 ,满篇都是“//” ,这“//”应该都删除吗?
不然不起作用啊,问别人都说什么XYZ轴。、,不明白什么是XYZ轴,这些基础 大虾们或者玩家 都是怎么学到的 ,查两天资料没找到。。。我应该试着自己刷机锻炼一下 ,还是怎样呢?(也是长个教训 ,那边说忙,不想搞得太不好,就不想管他了)

中国汉字 medium avatar
#46 - 10 个月前
中国汉字

现在问题是 在一个已经刷好的机器上面就差调试了的情况下,被重新刷机了,并且重新刷的好像没成功,也可能把以前的搞坏了 ,,反正结果是,撞玻璃。。。我应该怎么办?

这些打印机术语 你们都是怎么接触明白的呢? 呜呜呜。。。

ChuYao medium avatar
#47 - 5 个月前
ChuYao

@Andy 你好,我想问delta机设置自动调平第1个点坐标的是哪段代码?另,我执行g29,动作时7个检测点的Z坐标不在一个高度,是逐步等距上升的,是怎么回事?