Arduino下编译Marlin2.x

4 个月前

Windows平台下,Arduino编译Marlin2.x,一般会在link阶段报错 “CreateProcess: No such file or directory”,原因是因为编译的参数太长超过Windows限制造成的,详见

Marlin 2.0 not compiling

用Arduino 1.8.13版本不行,需要用Arduino IDE的hourly-builds版本编译,下载网址:

Software

今天测试升级Marlin2.0.7.2成功,配置修改.h文件步骤和1.x版本几乎是一样的,除了语言名称从 cn 改成 zh_CN

下面把我的打印机全部修改.h文件内容全列出来供参考:

我的打印机规格是:MEGA2560主控板、RAMPS1.4扩展板、12864 LCD屏幕,改进UM型,3个机械限位开关在最小值位置。没有热床只有一个风扇,风扇改接D8输出口温度50度以上才开启,加装断料检测开关可断料暂停换料

修改 Configuration.h 部分:

如果原始有加热控制PID设定可以抄过来,我的没有。

修改数值 远程挤出增加长度,不加装断料检测开关不需要改,近程也不需要改

define EXTRUDE_MAXLENGTH 600

修改从 false 到 true 机械限位开关极性相反,其实不用都改,但都改也无所谓了

define X_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.

define Y_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.

define Z_MIN_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.

define X_MAX_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.

define Y_MAX_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.

define Z_MAX_ENDSTOP_INVERTING true // set to true to invert the logic of the endstop.

define Z_MIN_PROBE_ENDSTOP_INVERTING true // set to true to invert the logic of the probe.

修改数值 XYZ和挤出机的脉冲数这个每个打印机都不一样,原样抄过来就行,如果不知道,可以先从LCD屏幕找到数值记录下来,我这个已经更换4个A4988到TMC2225脉冲数加倍

define DEFAULT_AXIS_STEPS_PER_UNIT { 320, 320, 1600, 388 }

修改前2个数值 只是为了降低噪声修改的,不然保持默认。减少速度,减少空驶噪声

define DEFAULT_MAX_FEEDRATE { 80, 80, 5, 25 }

修改前2个数值 只是为了降低噪声修改的,不然保持默认。减少加速度,减少换向撞击噪声

define DEFAULT_MAX_ACCELERATION { 1200, 1200, 100, 10000 }

修改数值 按自己打印机的打印区域大小修改

define X_BED_SIZE 230

define Y_BED_SIZE 220

define Z_MAX_POS 270

取消注释 断料传感器,不加装断料检测开关不要改

define FILAMENT_RUNOUT_SENSOR

取消注释 暂停功能,不加装断料检测开关不要改

define NOZZLE_PARK_FEATURE

修改暂停Y停靠位置 因为Y是最小值限位,不加装断料检测开关不要改

define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MIN_POS + 10), 20 }

修改定义 语言中文 注意需要安装 U8glib_Arduino-1.19.1,到Arduino程序所在的libraries目录下,不然编译报错

define LCD_LANGUAGE zh_CN // 1.x 版本是 cn

取消注释 开启SD卡支持

define SDSUPPORT

取消注释 12864 液晶控制器选这个

define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER

如LCD花屏在下面接着增加三行,参考 折腾3D打印机(4)LCD12868花屏问题的解决方案 - 3D打印/雕刻机 数码之家

define ST7920_DELAY_1 DELAY_NS(0)

define ST7920_DELAY_2 DELAY_NS(200) //花屏情况改变这个数值,每次增大50,我看到有大神用到400才解决问题

define ST7920_DELAY_3 DELAY_NS(0)

修改 Configuration_adv.h 部分:如果不改风扇50度以上开启或加装断料检测开关,完全不需要动

修改数值 定义D8口为风扇口,Marlin不允许D9口,因已自动定义D9为FAN_PIN

define E0_AUTO_FAN_PIN 8 // RAMPS_D8_PIN not allow using D9

改后看RAMPS1..4手册把风扇接在D8输出口,注意风扇电源是有极性的,不要反了,如果D8输出口已经当热床用了,就不能用这个办法了,改起来比较复杂,B站有教程。

取消注释 高级暂停功能,后面都是加装断料检测开关相关修改

define ADVANCED_PAUSE_FEATURE

修改数值 断料后快速卸料距离,自己定义

define FILAMENT_CHANGE_UNLOAD_LENGTH 7 // (mm) The length of filament for a complete unload.

修改数值 装料后快速送料距离,自己定义

define FILAMENT_CHANGE_FAST_LOAD_LENGTH 7 // (mm) Load length of filament, from extruder gear to nozzle.

修改数值 装料后慢速送料距离,自己定义

define ADVANCED_PAUSE_PURGE_LENGTH 70 // (mm) Length to extrude after loading.

修改 pins_RAMPS.h 部分:加装断料检测开关才需要改,注意市面上断料检测其实里面就是微动开关,一定要用万用表量下,我的就和说明图反的烧了主板电源。

修改数值 断料传感器引脚

define FIL_RUNOUT_PIN 19 // Z_MAX_PIN

修改都完成后,就和1.x一样的编译上传了

最后修改:2021 年 08 月 21 日
如果觉得我的文章对你有用,请随意赞赏