Arduino下编译Marlin2.x
4 个月前
Windows平台下,Arduino编译Marlin2.x,一般会在link阶段报错 “CreateProcess: No such file or directory”,原因是因为编译的参数太长超过Windows限制造成的,详见
用Arduino 1.8.13版本不行,需要用Arduino IDE的hourly-builds版本编译,下载网址:
今天测试升级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一样的编译上传了