自己diy 3D打印机 malin2.0配置说明
Corexy 3D打印机 ramps1.4方案 malin2.0 配置方法
提示:本文是我自己在DIY 一台 Corexy 3D打印机过程中对marlin2.0固件配置的一些经验和总结,使用的硬件是基于Atmega2560 和 ramps1.4。
文章目录
提示:以下是本篇文章正文内容,下面案例可供参考
一、marlin2.0.x 代码下载地址:
https://github.com/MarlinFirmware/Marlin
二、机器设置
如果机器不是Core类型的,此处不需修改。由于我的打印机类型是Corexy类型,所以在 Configuration.h 文件中搜索 //#define COREXY 去掉前面双斜杆即可。
//===========================================================================
//============================= Mechanical Settings =========================
//===========================================================================
// @section machine
// Enable one of the options below for CoreXY, CoreXZ, or CoreYZ kinematics,
// either in the usual order or reversed
//#define COREXY
//#define COREXZ
//#define COREYZ
//#define COREYX
//#define COREZX
//#define COREZY
//#define MARKFORGED_XY // MarkForged. See https://reprap.org/forum/read.php?152,504042
三、LCD屏幕设置
由于我的屏幕是LCD12864类型,所以在 Configuration.h 文件中搜索以下内容,去掉前面双斜杆注释
//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
搜索下面代码,改为 把en 改为 zh_CN ,即可支持中文显示
#define LCD_LANGUAGE en
显示中文需要安装u8glib库,可以从arduino ide 中安装
四、修改电机运动方向和个数
在 Configuration.h 文件中搜索以下内容,根据实际运动结果修改电机方向,一般只用到X,Y,Z,E0,E1
// Invert the stepper direction. Change (or reverse the motor connector) if an axis goes the wrong way.
#define INVERT_X_DIR true
#define INVERT_Y_DIR true
#define INVERT_Z_DIR false
//#define INVERT_I_DIR false
//#define INVERT_J_DIR false
//#define INVERT_K_DIR false
// @section extruder
// For direct drive extruder v9 set to true, for geared extruder set to false.
#define INVERT_E0_DIR true
#define INVERT_E1_DIR true
//#define INVERT_E2_DIR false
//#define INVERT_E3_DIR false
//#define INVERT_E4_DIR false
//#define INVERT_E5_DIR false
//#define INVERT_E6_DIR false
//#define INVERT_E7_DIR false
如果是双Z轴需要使用两个电机的,可以一个接在 Z 口,一个接在 E1 接口,然后在 Configuration_adv.h 文件中搜索以下代码,把 1 改 为 2 即可
#define NUM_Z_STEPPER_DRIVERS 1 // 把1 改为2 即可利用E1驱动另外一个Z轴电机
修改和启动电机驱动器,按实际修改使用的驱动器型号和对应的输出端口
/**
* Stepper Drivers
*
* These settings allow Marlin to tune stepper driver timing and enable advanced options for
* stepper drivers that support them. You may also override timing options in Configuration_adv.h.
*
* A4988 is assumed for unspecified drivers.
*
* Use TMC2208/TMC2208_STANDALONE for TMC2225 drivers and TMC2209/TMC2209_STANDALONE for TMC2226 drivers.
*
* Options: A4988, A5984, DRV8825, LV8729, L6470, L6474, POWERSTEP01,
* TB6560, TB6600, TMC2100,
* TMC2130, TMC2130_STANDALONE, TMC2160, TMC2160_STANDALONE,
* TMC2208, TMC2208_STANDALONE, TMC2209, TMC2209_STANDALONE,
* TMC26X, TMC26X_STANDALONE, TMC2660, TMC2660_STANDALONE,
* TMC5130, TMC5130_STANDALONE, TMC5160, TMC5160_STANDALONE
* :['A4988', 'A5984', 'DRV8825', 'LV8729', 'L6470', 'L6474', 'POWERSTEP01', 'TB6560', 'TB6600', 'TMC2100', 'TMC2130', 'TMC2130_STANDALONE', 'TMC2160', 'TMC2160_STANDALONE', 'TMC2208', 'TMC2208_STANDALONE', 'TMC2209', 'TMC2209_STANDALONE', 'TMC26X', 'TMC26X_STANDALONE', 'TMC2660', 'TMC2660_STANDALONE', 'TMC5130', 'TMC5130_STANDALONE', 'TMC5160', 'TMC5160_STANDALONE']
*/
#define X_DRIVER_TYPE A4988
#define Y_DRIVER_TYPE A4988
#define Z_DRIVER_TYPE A4988
//#define X2_DRIVER_TYPE A4988
//#define Y2_DRIVER_TYPE A4988
//#define Z2_DRIVER_TYPE A4988
//#define Z3_DRIVER_TYPE A4988
//#define Z4_DRIVER_TYPE A4988
//#define I_DRIVER_TYPE A4988
//#define J_DRIVER_TYPE A4988
//#define K_DRIVER_TYPE A4988
#define E0_DRIVER_TYPE A4988
#define E1_DRIVER_TYPE A4988
//#define E2_DRIVER_TYPE A4988
//#define E3_DRIVER_TYPE A4988
//#define E4_DRIVER_TYPE A4988
//#define E5_DRIVER_TYPE A4988
//#define E6_DRIVER_TYPE A4988
//#define E7_DRIVER_TYPE A4988
// Enable this feature if all enabled endstop pins are interrupt-capable.
// This will remove the need to poll the interrupt pins, saving many CPU cycles.
//#define ENDSTOP_INTERRUPTS_FEATURE
五、设置电机脉冲步数
由于我使用的XY轴的传送轮是2GT20齿,步进电机是步进角度是1.8度,驱动器16细分,所以,XY轴转动1mm需要的脉冲是= (360/1.8)16/220=80;Z轴使用的是导程8mm的丝杆,步进电机是步进角度是1.8度,驱动器16细分,所以Z轴移动1mm需要的脉冲数是= (360/1.8)*16/8=400,挤出机使用的是泰坦挤出机,脉冲是382.166。
在 Configuration.h 文件中搜索以下内容,改为
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 382.166 }
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 500 }
六、设置热床大小
在 Configuration.h 文件中搜索以下内容,XY改为实际热床大小和Z改为实际打印高度
// The size of the printable area
#define X_BED_SIZE 200
#define Y_BED_SIZE 200
// Travel limits (mm) after homing, corresponding to endstop positions.
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS X_BED_SIZE
#define Y_MAX_POS Y_BED_SIZE
#define Z_MAX_POS 200
七、设置调平方式
由于我采用的是手动调平,所以在 Configuration.h 文件中搜索以下内容,去掉 //#define MESH_BED_LEVELING 前面双斜杠注释,即可启用手动调平功能
//#define MESH_BED_LEVELING
在 Configuration.h 文件中搜索以下内容,去掉 //#define LCD_BED_LEVELING 前面双斜杠注释
//#define LCD_BED_LEVELING
在 Configuration.h 文件中搜索以下内容,去掉 //#define LEVEL_BED_CORNERS 前面双斜杠注释,启用边角调平
//#define LEVEL_BED_CORNERS
八、设置断料检测
在 Configuration.h 文件中搜索以下内容,去掉#define FILAMENT_RUNOUT_SENSOR前面双斜杠注释,然后根据开关断料检测开关的接法,选择高电平触发还是低电平触发,如果断料开关没有插入材料是常闭的,那么需要在#define FIL_RUNOUT_PULLUP 前面加双下划线添加注释,然后在把 //#define FIL_RUNOUT_PULLDOWN 前面的注释去掉,否则和上面步骤相反即可。
//#define FILAMENT_RUNOUT_SENSOR
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
#define FIL_RUNOUT_ENABLED_DEFAULT true // Enable the sensor on startup. Override with M412 followed by M500.
#define NUM_RUNOUT_SENSORS 1 // Number of sensors, up to one per extruder. Define a FIL_RUNOUT#_PIN for each.
#define FIL_RUNOUT_STATE LOW // Pin state indicating that filament is NOT present.
#define FIL_RUNOUT_PULLUP // Use internal pullup for filament runout pins.
//#define FIL_RUNOUT_PULLDOWN // Use internal pulldown for filament runout pins.
//#define WATCH_ALL_RUNOUT_SENSORS // Execute runout script on any triggering sensor, not only for the active extruder.
// This is automatically enabled for MIXING_EXTRUDERs.
接着在 此时需要在 Marlin\src\pins\ramps\pins_RAMPS.h pins_RAMP.h 文件中的FIL_RUNOUT_PIN指向当前使用的管脚,这里把断料检测开关的G和S分别插入在X+接口的G和S,所以需要把 原来数字 4 改为 2,如下面例子
// RAMPS 1.4 DIO 4 on the servos connector
#ifndef FIL_RUNOUT_PIN
#define FIL_RUNOUT_PIN 2 //使用 X-MAX
#endif
在 Configuration_adv.h 文件中搜索以下代码,去掉前面双斜杆注释
//#define ADVANCED_PAUSE_FEATURE
在 Configuration.h 文件中搜索以下内容,去掉前面双斜杠注释
//#define NOZZLE_PARK_FEATURE
九、设置断电恢复续打
在 Configuration.h 文件中搜索以下内容,去掉 //#define POWER_LOSS_RECOVERY 前面双斜杠注释,并把 false 改为 true ,使其默认打开此功能。
//#define POWER_LOSS_RECOVERY
#if ENABLED(POWER_LOSS_RECOVERY)
#define PLR_ENABLED_DEFAULT false // Power Loss Recovery enabled by default. (Set with 'M413 Sn' & M500)
十、设置打完自动关机1
用1个继电器模块(低电平触发)实现了自动关机
接线如图所示(虚线圈起来的部分),实际上只需要一个继电器模块和五条接线。
+(XSTOP):x轴限位开关的+极,一般是X- 的信号端
IN:是继电器模块的触发信号输入端
工作工程:
打开电源开关,打印机工作。当打印机开始打印(挤出头离开原点后),将电源开关关闭(此时,电源通过继电器供电)。打印结束,挤出头回到原点位置,触发x- stop,继电器释放,电源断开,打印机关机。
当然在打印过程中,可以随时打开电源开关,这样打印机打印完毕就不会关机。
注意两点:
1.使用自动关机功能时,一定挤出头开始出丝打印再关闭电源开关,即让x轴限位开关处于未触发状态才可以;
2.打印完毕后,挤出头必须要回到x轴0点位置才能触发自动关机。一般的切片软件中都会这么设置,如果没有的话,可以手动在GCODE切片代码最后加上让X轴回到0点的命令G28 X0
这部分内容转摘自以下网址 https://tieba.baidu.com/p/4888098253 ↩︎