Marlin 1.1.4 Confuguration.h 汉化 翻译
/**
*此程序是免费软件:您可以重新分发和/或修改
*根据GNU通用公共许可证的条款发布
*自由软件基金会,许可证的第3版,或
*(随选)任何更新版本。
*
*这个程序是分发的,希望它是有用的,
*但没有任何保证; 甚至没有隐含的保证
*适销性或适用于特定目的。 见
*您应该收到GNU通用公共许可证的副本
*与此程序一起。 如果没有,请参阅。
*
*/
/**
/**
*/
#ifndef CONFIGURATION_H
#define CONFIGURATION_H
#define CONFIGURATION_H_VERSION 010100
//===========================================================================
//============================= Getting Started =============================
//=入门
//=========================================================================
/**
//===========================================================================
//============================= DELTA Printer ===============================
//============================= DELTA 打印机 ===============================
//===========================================================================
//对于Delta打印机,从其中的一个配置文件开始
//example_configurations/delta目录,并为您的机器定制。
//
//===========================================================================
//============================= SCARA Printer ===============================
//============================= SCARA 打印机 ===============================
//===========================================================================
// 对于SCARA打印机,从中配置文件开始
// example_configurations/SCARA,并为您的机器定制。
//
// @部分信息
//在[Pronterface等]终端窗口中显示此构建的用户指定的版本信息
//启动。 Braino教授实施一个想法,通知用户对此做出的任何更改
//建立由用户已成功上传到固件。
#define STRING_CONFIG_H_AUTHOR “(none, default config)” // 谁做出的修改.
#define SHOW_BOOTSCREEN //显示启动屏幕
#define STRING_SPLASH_LINE1 SHORT_BUILD_VERSION // 将在第1行中启动时显示
#define STRING_SPLASH_LINE2 WEBSITE_URL // 将在第2行中启动时显示
//
// *** 供应商请阅读 *****************************************************
//
// Marlin现在允许你有一个供应商启动映像显示在机器上
// 开始 当SHOW_CUSTOM_BOOTSCREEN被定义时,Marlin将首先显示你的
// 自定义启动映像,然后显示默认的Marlin引导映像。
//
// 我们建议你利用这个新功能,并保持Marlin
// 启动映像未修改。 有一个例子看看bq Hephestos 2
// 示例配置文件夹。
//
//#define SHOW_CUSTOM_BOOTSCREEN
// @机床 相关设置
/**
*选择板上的哪个串口用于与主机通讯。
*这允许将无线适配器(例如)连接到非默认端口引脚。
*无论此设置如何,Arduino引导加载程序始终使用串行端口0。
*
/**
*此设置决定打印机的通讯速度。
*
*大多数情况下,250000串口波特率,但如果可以尝试较低的速度
*您在主机打印时通常会遇到退出。
*
*:[2400,9600,19200,38400,57600,115200,250000]
*/
#define BAUDRATE 250000 //设置波特率,默认即可。(这里要与pc中连接控制板软件设置的波特率相同,否则无法通信)
// //启用AT90USB设备上的蓝牙串行接口
//#define BLUETOOTH
//以下定义选择您拥有的开源板。
//请选择与您的设置相匹配的boards.h中的名称
#ifndef MOTHERBOARD
#define MOTHERBOARD BOARD_MKS_13 //这里设置的是MKS-GEN_L V1.0主板
#endif
//您的RepStrap或其他自定义机器的可选自定义名称
//在液晶显示屏上显示“就绪”信息
//#define CUSTOM_MACHINE_NAME “3D Printer”
//定义此设置为此打印机设置唯一的标识符(由某些程序用于区分机器)
//您可以使用在线服务来生成随机的UUID。 (例如http://www.uuidgenerator.net/version4)
//#define MACHINE_UUID“00000000-0000-0000-0000-000000000000”
// @挤出机 相关设置
//这定义了挤出机的数量
// :[1, 2, 3, 4, 5]
#define EXTRUDERS 1 //默认1个挤出头
//对于Cyclops或任何“多挤出机”,共享一个喷嘴。
//#define SINGLENOZZLE
/**
*PrůšaMK2单喷嘴多材料多路复用器和变体。
*
*该设备允许控制板上的一个步进驱动器驱动
*两到八台步进电机,一次一个,以适合的方式
*用于挤出机。
*
*此选项仅允许多路复用器切换工具更换。
*配置自定义E移动的其他选项正在等待。
*/
//#define MK2_MULTIPLEXER
#if ENABLED(MK2_MULTIPLEXER)
//如果需要,覆盖这里的默认DIO选择器引脚。
//某些引脚文件可能会为这些引脚提供默认值。
//#define E_MUX0_PIN 40 // Always Required
//#define E_MUX1_PIN 42 // Needed for 3 to 8 steppers
//#define E_MUX2_PIN 44 // Needed for 5 to 8 steppers
#endif
//使用单步进电机的双挤出机
//#define SWITCHING_EXTRUDER
#if ENABLED(SWITCHING_EXTRUDER)
#define SWITCHING_EXTRUDER_SERVO_NR 0
#define SWITCHING_EXTRUDER_SERVO_ANGLES { 0, 90 } // Angles for E0, E1[, E2, E3]
#if EXTRUDERS > 3
#define SWITCHING_EXTRUDER_E23_SERVO_NR 1
#endif
#endif
//使用伺服电机升/降一个喷嘴的双喷嘴
//#define SWITCHING_NOZZLE
#if ENABLED(SWITCHING_NOZZLE)
#define SWITCHING_NOZZLE_SERVO_NR 0
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1
//#define HOTEND_OFFSET_Z { 0.0, 0.0 }
#endif
/**
*“混合挤出机”
//挤出机的偏移量(如果使用不止一个而取消注释,并且在更换时依靠固件进行定位)。
//偏移量必须为X = 0,Y = 0,对于挤出机0 hotend(默认挤出机)。
//对于其他的热门,它们是与挤出机0的距离。
//#定义每个挤出机的HOTEND_OFFSET_X {0.0,20.00} //(以mm为单位),热端在X轴上的偏移量
//每个挤出机定义HOTEND_OFFSET_Y {0.0,5.00} //(以mm为单位),热轴在Y轴上的偏移量
// @机床 相关设置
/**
*在这里选择您的电源。 如果您尚未连接PS_ON_PIN,请使用0
*
*:{0:‘无电源开关’,1:‘ATX’,2:‘X-Box 360’}
*/
//电源型号
#define POWER_SUPPLY 0
#if POWER_SUPPLY > 0
//启用此选项可在启动时关闭PSU。
//需要使用M80打开步进器和加热器的电源。
//#define PS_DEFAULT_OFF
#endif
// @温度 相关设置
//===========================================================================
//============================= Thermal Settings ============================
//================================== 温度 设置 ==============================
//===========================================================================
/**
// Dummy thermistor constant temperature readings, for use with 998 and 999
//虚拟热敏电阻恒温读数,用于998和999
#define DUMMY_THERMISTOR_998_VALUE 25
#define DUMMY_THERMISTOR_999_VALUE 100
//使用温度传感器1作为传感器0的冗余传感器。如果读数
//从两个传感器的差异太大,打印将被中止。
//#define TEMP_SENSOR_1_AS_REDUNDANT //是否启动
#define MAX_REDUNDANT_TEMP_SENSOR_DIFF 10 //温度最大偏差范围
// Extruder temperature must be close to target for this long before M109 returns success
//打印之前通过M109检查当前(挤出头)温度已经接近设置温度,并等待N秒作为缓冲。
#define TEMP_RESIDENCY_TIME 10 // (seconds)
#define TEMP_HYSTERESIS 3 // (degC) range of +/- temperatures considered “close” to the target one
#define TEMP_WINDOW 1 // (degC) Window around target to start the residency timer x degC early.
// Bed temperature must be close to target for this long before M190 returns success
//打印之前通过M190检查当前(热床)温度已经接近设置温度,并等待N秒作为缓冲。
#define TEMP_BED_RESIDENCY_TIME 10 // (seconds)
#define TEMP_BED_HYSTERESIS 3 // (degC) range of +/- temperatures considered “close” to the target one
#define TEMP_BED_WINDOW 1 // (degC) Window around target to start the residency timer x degC early.
//最低温度低于N时,加热将不会工作。该功能确保温度传感器连接或配置错误时不会烧毁设备。
//检查热敏电阻是否正常。
//如果热敏电阻工作不正常,将使加热头电源一直工作。这是非常危险的。
#define HEATER_0_MINTEMP 5 //挤出头未加热之前的最低温度
#define HEATER_1_MINTEMP 5
#define HEATER_2_MINTEMP 5
#define HEATER_3_MINTEMP 5
#define HEATER_4_MINTEMP 5
#define BED_MINTEMP 5 //热床未加热之前的最低温度
//当温度超过最大设置值,加热头会自动关闭。
//该项配置是为了保护你的设备,避免加热温度过高产生以外。但不能防止温度传感器非正常工作的情况。
//你应该使用MINTEMP选项来保证温度传感器短路或损坏时的设备安全。
#define HEATER_0_MAXTEMP 275 //挤出头加热的最高温度
#define HEATER_1_MAXTEMP 275
#define HEATER_2_MAXTEMP 275
#define HEATER_3_MAXTEMP 275
#define HEATER_4_MAXTEMP 275
#define BED_MAXTEMP 150 //热床加热的最高温度
//===========================================================================
//============================= PID Settings ================================
//=============================== PID 设置 ================================
//===========================================================================
// PID Tuning Guide here: http://reprap.org/wiki/PID_Tuning
// Comment the following line to disable PID and enable bang-bang.
#define PIDTEMP
#define BANG_MAX 255 // limits current to nozzle while in bang-bang mode; 255=full current
#define PID_MAX BANG_MAX // limits current to nozzle while PID is active (see PID_FUNCTIONAL_RANGE below); 255=full current
#if ENABLED(PIDTEMP)
//#define PID_AUTOTUNE_MENU // Add PID Autotune to the LCD “Temperature” menu to run M303 and apply the result.
//#define PID_DEBUG // Sends debug data to the serial port.
//#define PID_OPENLOOP 1 // Puts PID in open loop. M104/M140 sets the output power from 0 to PID_MAX
//#define SLOW_PWM_HEATERS // PWM with very low frequency (roughly 0.125Hz=8s) and minimum state time of approximately 1s useful for heaters driven by a relay
//#define PID_PARAMS_PER_HOTEND // Uses separate PID parameters for each extruder (useful for mismatched extruders)
// Set/get with gcode: M301 E[extruder number, 0-2]
#define PID_FUNCTIONAL_RANGE 10 // If the temperature difference between the target temperature and the actual temperature
// is more than PID_FUNCTIONAL_RANGE then the PID will be shut off and the heater will be set to min/max.
#define K1 0.95 //smoothing factor within the PID
// If you are using a pre-configured hotend then you can use one of the value sets by uncommenting it
// Ultimaker
#define DEFAULT_Kp 22.2
#define DEFAULT_Ki 1.08
#define DEFAULT_Kd 114
// MakerGear
//#define DEFAULT_Kp 7.0
//#define DEFAULT_Ki 0.1
//#define DEFAULT_Kd 12
// Mendel Parts V9 on 12V
//#define DEFAULT_Kp 63.0
//#define DEFAULT_Ki 2.25
//#define DEFAULT_Kd 440
#endif // PIDTEMP
//===========================================================================
//============================= PID > Bed Temperature Control ===============
//=================================== PID > 床温控制 ========================
//===========================================================================
//用PIDTEMPBED选择PID或bang-bang。 如果bang-bang,BED_LIMIT_SWITCHING将启用滞后
//
//取消注释以在床上启用PID。 它使用与挤出机相同的频率PWM。
//如果您的PID_dT是默认值,并且对于您的硬件/配置是正确的,这意味着7.689Hz,
//将方波驱动到电阻性负载中并不会对FET加热产生显着影响。
//这也适用于Fotek SSR-10DA固态继电器进入250W加热器。
//如果您的配置与此显着不同,并且您不明白涉及的问题,您可能会
//不要使用床PID,直到别人验证你的硬件工作。
//如果启用,请在下面找到您自己的PID常量。
//#define PIDTEMPBED
//#define BED_LIMIT_SWITCHING
//设置发送到床的最大功率,并替换HEATER_BED_DUTY_CYCLE_DIVIDER选项。
//所有形式的床位控制服从这一点(PID,砰砰声,bang-bang与滞后)
//将此设置为255以外的其他任何方式,可以像HEATER_BED_DUTY_CYCLE_DIVIDER那样在床上形成一个PWM形式,
//所以你不应该使用它,除非你在床上使用PWM。 (请参阅启用PIDTEMPBED的注释)
#define MAX_BED_POWER 255 // limits duty cycle to bed; 255=满载工作模式
#if ENABLED(PIDTEMPBED)
//#define PID_BED_DEBUG // 发送debug数据到串口
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
//from FOPDT model - kp=.39 Tp=405 Tdead=66, Tc set to 79.2, aggressive factor of .15 (vs .1, 1, 10)
#define DEFAULT_bedKp 10.00
#define DEFAULT_bedKi .023
#define DEFAULT_bedKd 305.4
//120V 250W silicone heater into 4mm borosilicate (MendelMax 1.5+)
//from pidautotune
//#define DEFAULT_bedKp 97.1
//#define DEFAULT_bedKi 1.41
//#define DEFAULT_bedKd 1675.16
// FIND YOUR OWN: “M303 E-1 C8 S90” to run autotune on the bed at 90 degreesC for 8 cycles.
#endif // PIDTEMPBED
// @挤出机 相关设置
//如果温度低于EXTRUDE_MINTEMP,则此选项可防止挤出。
//还可以使M302命令设置最小的挤出温度
//或者允许移动挤出机,而不考虑热端温度。
// 很高兴推荐使用此选项!
#define PREVENT_COLD_EXTRUSION
#define EXTRUDE_MINTEMP 170 //设置挤出头运行的最低温度
//此选项可防止单个挤出时间超过EXTRUDE_MAXLENGTH。
//请注意,对于Bowden挤出机来说,这个值太小可能会阻止加载。
#define PREVENT_LENGTHY_EXTRUDE
// 避免非常长的挤出操作
#define EXTRUDE_MAXLENGTH 200
//===========================================================================
//======================== Thermal Runaway Protection =======================
//================================ 温度失控保护 =============================
//===========================================================================
/**
*热保护保护您的打印机免受损坏和火灾
*热敏电阻脱落或温度传感器以任何方式失败。
*
*问题:如果热敏电阻掉落或温度传感器故障,
Marlin不能再感受到实际的温度。 由于断开连接
*热敏电阻读为低温,固件将保持加热器的开启状态。
*
*如果您遇到“热失控”或“加热故障”错误
*可以在Configuration_adv.h中调整详细信息
*/
#define THERMAL_PROTECTION_HOTENDS //启用所有挤出机的热保护
#define THERMAL_PROTECTION_BED //启用加热床的热保护
//===========================================================================
//============================= Mechanical Settings =========================
//===================================== 机械设置 ============================
//===========================================================================
// @机床 相关设置
//取消注释其中一个选项以启用CoreXY,CoreXZ或CoreYZ运动学
//按照通常的顺序或反转
//#define COREXY
//#define COREXZ
//#define COREYZ
//#define COREYX
//#define COREZX
//#define COREZY
//===========================================================================
//============================== Endstop Settings ===========================
//================================= 限位开关 设置 ===========================
//===========================================================================
// @机床回零 相关设置
//在此处指定连接到任何endstop或probe的所有endstop连接器。
//几乎所有的打印机都将使用一个轴。 探头将使用一个或多个
//额外的连接器。 不定义任何用于非终止和非探测目的。
#define USE_XMIN_PLUG
#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
//#define USE_XMAX_PLUG
//#define USE_YMAX_PLUG
//#define USE_ZMAX_PLUG
//是否一次性启用所有轴限位开关上拉电阻,如果用//注释 在下面单独设置每个轴每个方向是否需要上拉电阻
#define ENDSTOPPULLUPS //是否使用上拉电阻
#if DISABLED(ENDSTOPPULLUPS) //如果上一行被注释
// 每个轴每个方向单独的上拉电阻。 如果定义了ENDSTOPPULLUPS,将被忽略
//#define ENDSTOPPULLUP_XMAX
//#define ENDSTOPPULLUP_YMAX
//#define ENDSTOPPULLUP_ZMAX
//#define ENDSTOPPULLUP_XMIN
//#define ENDSTOPPULLUP_YMIN
//#define ENDSTOPPULLUP_ZMIN
//#define ENDSTOPPULLUP_ZMIN_PROBE
#endif
//机械端接COM到地,NC到信号在这里使用“false”(最常见的设置)。
// 如果你使用机械式的限位开关,并且接到了信号和GND两个接口,那么上面的上拉配置需要打开
// 配置3个轴的限位开关类型的,配置为true,限位开关应该接常开端子。如果你接常闭端子,则将true改为false
// 设置为true来颠倒限位开关逻辑值。如果设置为true时,限位开关实际的开/合与检测相反,则将该参数配置为false
#define X_MIN_ENDSTOP_INVERTING true //设置为true以反转endstop的逻辑。
#define Y_MIN_ENDSTOP_INVERTING true //设置为true以反转endstop的逻辑。
#define Z_MIN_ENDSTOP_INVERTING true //设置为true以反转endstop的逻辑。
#define X_MAX_ENDSTOP_INVERTING false //设置为true以反转endstop的逻辑。
#define Y_MAX_ENDSTOP_INVERTING false //设置为true以反转endstop的逻辑。
#define Z_MAX_ENDSTOP_INVERTING false //设置为true以反转endstop的逻辑。
#define Z_MIN_PROBE_ENDSTOP_INVERTING false // set to true to invert the logic of the probe.
//如果所有使能的endstop引脚都具有中断能力,则启用此功能。
//这样就不需要轮询中断引脚,节省了很多CPU周期。
//#define ENDSTOP_INTERRUPTS_FEATURE
//=============================================================================
//============================== Movement Settings ============================
//=================================== 移动设置 ===============================
//=============================================================================
// @移动 相关设置
/**
/**
/**
*单位默认轴步数(步/ mm)
*用M92覆盖
/**
*默认最大进给速度(mm / s)
*用M203覆盖
/**
*默认最大加速度(更改/秒)更改= mm / s
*(加速移动的最大启动速度)
*用M201覆盖
/**
*默认加速度(change / s)change = mm / s
*用M204覆盖
*
/**
*默认值(mm / s)
*覆盖M205 X Y Z E
*
*“Jerk”指定需要加速的最小速度变化。
*当改变速度和方向时,如果差值小于
*值设置在这里,它可能会立即发生。
*/
#define DEFAULT_XJERK 20.0
#define DEFAULT_YJERK 20.0
#define DEFAULT_ZJERK 0.4
#define DEFAULT_EJERK 5.0
//===========================================================================
//============================= Z Probe Options =============================
//================================ Z 探头 选项===============================
//===========================================================================
// @探针 相关设置
//
//参见http://marlinfw.org/configuration/probes.html
//
/**
*为连接到Z Min endstop引脚的探头启用此选项。
*/
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
/**
*为与Z-Min以外的任何引脚连接的探头启用此选项。
*(默认情况下,Marlin采用Z-Max endstop引脚。)
*要使用自定义Z Probe引脚,请在下方设置Z_MIN_PROBE_PIN。
*
*警告:设置错误的引脚可能有意想不到的可能
*灾难性的后果。 谨慎使用,做功课。
*
*/
//#define Z_MIN_PROBE_ENDSTOP
/**
*探头类型
*
*内六角探头,伺服探头,Z-Sled探头,FIX_MOUNTED_PROBE等
*您必须激活以下其中一项,才能使用下面的自动床平整。
*/
/**
*“手动探头”提供了一种在无需探头的情况下进行“自动”床平整的方法。
*反复使用G29,用移动指令调整每个点的Z高度
*或(带LCD_BED_LEVELING)LCD控制器。
*/
//#define PROBE_MANUALLY
/**
*固定安装的探测器不部署或需要手动部署。
*(例如,感应探头或基于喷嘴的探针开关)
*/
//#define FIX_MOUNTED_PROBE
/**
/**
/**
*如果探测似乎不可靠,启用。 加热器和/或风扇 - 符合
*下面选择的选项 - 在探测期间将被禁用,以便最小化
*通过静音/消音“噪声”来源的潜在EM干扰(变化)
*流经电线的电流)。 这可能是最有用的用户
// A probe that is deployed and stowed with a solenoid pin (SOL1_PIN)
//#define SOLENOID_PROBE
// A sled-mounted probe like those designed by Charles Bell.
//#define Z_PROBE_SLED
//#define SLED_DOCKING_OFFSET 5 // The extra distance the X axis must travel to pickup the sled. 0 should be fine but you can push it further if you’d like.
//
// For Z_PROBE_ALLEN_KEY see the Delta example configurations.
//
/**
*在以下示例中,X和Y偏移均为正值:
*示例:“M851 Z-5”,从床到喷嘴的间距为4 => 9mm。
*但是:“M851 Z + 1”,从床到喷嘴的间距为2 => 2mm。
*/
#define Z_CLEARANCE_DEPLOY_PROBE 10 // Z Clearance for Deploy/Stow 放下探针升高距离
#define Z_CLEARANCE_BETWEEN_PROBES 5 // Z Clearance between probe points 探测之间升高距离
// For M851 give a range for adjusting the Z probe offset
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MAX 20
// Enable the M48 repeatability test to test probe accuracy
//#define Z_MIN_PROBE_REPEATABILITY_TEST
//对于反相步进使能引脚(低电平有效)使用0,非反相(高电平有效)使用1
// :{ 0:‘Low’, 1:‘High’ } (4988模块保持0即可)
#define X_ENABLE_ON 0
#define Y_ENABLE_ON 0
#define Z_ENABLE_ON 0
#define E_ENABLE_ON 0 // /所有挤出机
//在不使用轴时立即停止轴步进。
//警告:当电机关闭时,有可能失去位置精度!
#define DISABLE_X false
#define DISABLE_Y false
#define DISABLE_Z false
//显示关于可能降低精度的警告
//#define DISABLE_REDUCED_ACCURACY_WARNING
// @挤出机 相关设置
#define DISABLE_E false //所有挤出机
#define DISABLE_INACTIVE_EXTRUDER true //只允许有效的挤出机启用。
//反转步进电机方向。 如果轴错误,请更换(或反转电机连接器)。
#define INVERT_X_DIR false
#define INVERT_Y_DIR true
#define INVERT_Z_DIR true
//为东芝步进驱动程序启用此选项
//#define CONFIG_STEPPERS_TOSHIBA
// @挤出机 相关设置
//对于直驱式挤出机v9设定为true,用于齿轮式挤出机设为false。
#define INVERT_E0_DIR false
#define INVERT_E1_DIR false
#define INVERT_E2_DIR false
#define INVERT_E3_DIR false
#define INVERT_E4_DIR false
// @机床回零 相关设置
//#define Z_HOMING_HEIGHT 4
//如果取消注释,则设置三轴回零时Z轴先向远离零点方向运动的距离(单位mm),防止喷头直接在打印平台表面运动损坏喷头
//如果不取消注释 默认好像为4mm
//(以mm为单位)在床上Z间隙之前的最小z高度(G28)
//确保这个距离不超过Z_MAX。
//归位方向; 1 = MAX,-1 = MIN
// :[-1,1]
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1
// @机床 相关设置
// Travel limits after homing (units are in mm)
三轴碰到限位开关之后的坐标(单位mm)
#define X_MIN_POS 0
#define Y_MIN_POS 0
#define Z_MIN_POS 0
#define X_MAX_POS 205
#define Y_MAX_POS 205
#define Z_MAX_POS 315
//如果启用,轴将不会在MIN_POS下移动以响应移动命令。
#define MIN_SOFTWARE_ENDSTOPS
//如果启用,轴将不会在MAX_POS下移动以响应移动命令。
#define MAX_SOFTWARE_ENDSTOPS
/**
*耗材径向传感器
*使用机械或光学终端来检查耗材丝的存在。
*
*基于RAMPS的电路板使用SERVO3_PIN。
*对于其他单板,您可能需要定义FIL_RUNOUT_PIN。
*默认情况下,固件为HIGH =有材料,LOW =已耗尽
*/
//#define FILAMENT_RUNOUT_SENSOR
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
#define FIL_RUNOUT_INVERTING false //设置为true以反转传感器的逻辑。
#define ENDSTOPPULLUP_FIL_RUNOUT // 启用上拉电阻
#define FILAMENT_RUNOUT_SCRIPT “M600”
#endif
//===========================================================================
//=============================== Bed Leveling ==============================
//================================= 机床调平 ================================
//===========================================================================
// @调平 相关设置
/**
/**
#if ENABLED(MESH_BED_LEVELING) || ENABLED(AUTO_BED_LEVELING_BILINEAR) || ENABLED(AUTO_BED_LEVELING_UBL)
// Gradually reduce leveling correction until a set height is reached,
// at which point movement will be level to the machine’s XY plane.
// The height can be set with M420 Z
#define ENABLE_LEVELING_FADE_HEIGHT
#endif
#if ENABLED(AUTO_BED_LEVELING_LINEAR) || ENABLED(AUTO_BED_LEVELING_BILINEAR)
// Set the number of grid points per dimension.
#define GRID_MAX_POINTS_X 3
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
// Set the boundaries for probing (where the probe can reach).
#define LEFT_PROBE_BED_POSITION 15
#define RIGHT_PROBE_BED_POSITION 170
#define FRONT_PROBE_BED_POSITION 20
#define BACK_PROBE_BED_POSITION 170
// The Z probe minimum outer margin (to validate G29 parameters).
#define MIN_PROBE_EDGE 10
// Probe along the Y axis, advancing X after each column
//#define PROBE_Y_FIRST
#if ENABLED(AUTO_BED_LEVELING_BILINEAR)
// Beyond the probed grid, continue the implied tilt?
// Default is to maintain the height of the nearest edge.
//#define EXTRAPOLATE_BEYOND_GRID
//
// Experimental Subdivision of the grid by Catmull-Rom method.
// Synthesizes intermediate points to produce a more detailed mesh.
//
//#define ABL_BILINEAR_SUBDIVISION
#if ENABLED(ABL_BILINEAR_SUBDIVISION)
// Number of subdivisions between probe points
#define BILINEAR_SUBDIVISIONS 3
#endif
#endif
#elif ENABLED(AUTO_BED_LEVELING_3POINT)
// 3 arbitrary points to probe.
// A simple cross-product is used to estimate the plane of the bed.
#define ABL_PROBE_PT_1_X 15
#define ABL_PROBE_PT_1_Y 180
#define ABL_PROBE_PT_2_X 15
#define ABL_PROBE_PT_2_Y 20
#define ABL_PROBE_PT_3_X 170
#define ABL_PROBE_PT_3_Y 20
#elif ENABLED(AUTO_BED_LEVELING_UBL)
//===========================================================================
//========================= Unified Bed Leveling ============================
//===========================================================================
#define UBL_MESH_INSET 1 // Mesh inset margin on print area
#define GRID_MAX_POINTS_X 10 // Don’t use more than 15 points per axis, implementation limited.
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
#define UBL_PROBE_PT_1_X 39 // Probing points for 3-Point leveling of the mesh
#define UBL_PROBE_PT_1_Y 180
#define UBL_PROBE_PT_2_X 39
#define UBL_PROBE_PT_2_Y 20
#define UBL_PROBE_PT_3_X 180
#define UBL_PROBE_PT_3_Y 20
#define UBL_G26_MESH_VALIDATION // Enable G26 mesh validation
#define UBL_MESH_EDIT_MOVES_Z // Sophisticated users prefer no movement of nozzle
#elif ENABLED(MESH_BED_LEVELING)
//===========================================================================
//=================================== Mesh ==================================
//=================================== 网格 ==================================
//===========================================================================
#define MESH_INSET 10 // Mesh inset margin on print area
#define GRID_MAX_POINTS_X 3 // Don’t use more than 7 points per axis, implementation limited.
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
//#define MESH_G28_REST_ORIGIN // After homing all axes (‘G28’ or ‘G28 XYZ’) rest Z at Z_MIN_POS
#endif // BED_LEVELING
/**
*使用LCD控制器进行床层平整
*需要MESH_BED_LEVELING或PROBE_MANUALLY
*/
//#define LCD_BED_LEVELING
#if ENABLED(LCD_BED_LEVELING)
#define MBL_Z_STEP 0.025 //手动探测Z轴时的步长。
#define LCD_PROBE_Z_RANGE 4 // Z范围以Z_MIN_POS为中心进行LCD Z调整
#endif
/**
*命令在G29探测结束时执行。
*有助于缩回或移动Z探头。
*/
//#define Z_PROBE_END_SCRIPT “G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10”
// @机床回零 相关设置
// The center of the bed is at (X=0, Y=0)
//#define BED_CENTER_AT_0_0
// 手动设置原点位置。 如果未定义则保留为自动设置。
// ELTA打印机,这是笛卡尔坐标顶部中心。
//#define MANUAL_X_HOME_POS 0
//#define MANUAL_Y_HOME_POS 0
//#define MANUAL_Z_HOME_POS 0
//使用“Z安全归位”,以避免在床区域外使用Z探头进行归位。
//
//启用此功能:
//
// - 仅在X和Y归位和步进驱动器仍然启用后才允许Z归位。
// - 如果步进驱动程序超时,则在Z归位之前,需要X和Y归位。
// - 将Z探头(或喷嘴)移动到归零所有轴(G28)之前的Z回原点时的定义XY点。
// - 当Z探头位于床区外时,防止Z归位。
//
//#define Z_SAFE_HOMING
#if ENABLED(Z_SAFE_HOMING)
#define Z_SAFE_HOMING_X_POINT ((X_MIN_POS + X_MAX_POS) / 2) // X point for Z homing when homing all axis (G28).
#define Z_SAFE_HOMING_Y_POINT ((Y_MIN_POS + Y_MAX_POS) / 2) // Y point for Z homing when homing all axis (G28).
#endif
// 机床三轴回零速度 (mm/m)
#define HOMING_FEEDRATE_XY (5060)
#define HOMING_FEEDRATE_Z (460)
//=============================================================================
//============================= Additional Features ===========================
//================================== 附加功能 =================================
//=============================================================================
// @section extras
//
// EEPROM
//
//微控制器可以将设置存储在EEPROM中,例如 最大速度…
// M500 - 将参数存储在EEPROM中
// M501 - 从EEPROM读取参数(如果您在暂时更改后需要重新设置)。
// M502 - 恢复到默认的“出厂设置”。 如果您想要,您仍然需要将它们存储在EEPROM中。
//
#define EEPROM_SETTINGS // 启用M500和M501命令
//#define DISABLE_M503 // Saves ~2700 bytes of PROGMEM. Disable for release!
#define EEPROM_CHITCHAT // Give feedback on EEPROM commands. Disable to save PROGMEM.
//
// 主板保持活动状态
//
// 启用时,Marlin将向主机发送忙碌状态消息
// 当它不能接受命令时候,每隔几秒发送一次
//
#define HOST_KEEPALIVE_FEATURE // 如果你不喜欢这个功能 可以注释关闭
#define DEFAULT_KEEPALIVE_INTERVAL 2 // 间隔多少秒发送忙碌信息. 可以用M113设置.
//
// M100 监测剩余内存
//
//#define M100_FREE_MEMORY_WATCHER // 取消注释,为了调试目的添加M100自由内存监视器
//
// G20/G21 英寸模式支持
//
//#define INCH_MODE_SUPPORT
//
// M149 设置温度单位支持
//
//#define TEMPERATURE_UNITS_SUPPORT
// @温度 相关设置
// //预热常数 //这里是设置两组温度可供快速选择的温度参数
#define PREHEAT_1_TEMP_HOTEND 180 //第一组喷头预热温度
#define PREHEAT_1_TEMP_BED 70 //第一组热床预热温度
#define PREHEAT_1_FAN_SPEED 0 // 风扇转速 PWM范围(0~255)
#define PREHEAT_2_TEMP_HOTEND 240 //第二组喷头预热温度
#define PREHEAT_2_TEMP_BED 110 //第二组热床预热温度
#define PREHEAT_2_FAN_SPEED 0 //风扇转速 PWM范围(0~255)
/**
#if ENABLED(NOZZLE_PARK_FEATURE)
// Specify a park position as { X, Y, Z }
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#endif
/**
*/
//#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE)
// Default number of pattern repetitions
#define NOZZLE_CLEAN_STROKES 12
// Default number of triangles
#define NOZZLE_CLEAN_TRIANGLES 3
// Specify positions as { X, Y, Z }
#define NOZZLE_CLEAN_START_POINT { 30, 30, (Z_MIN_POS + 1)}
#define NOZZLE_CLEAN_END_POINT {100, 60, (Z_MIN_POS + 1)}
// Circular pattern radius
#define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
// Circular pattern circle fragments number
#define NOZZLE_CLEAN_CIRCLE_FN 10
// Middle point of circle
#define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT
// Moves the nozzle to the initial position
#define NOZZLE_CLEAN_GOBACK
#endif
/**
*定时器也可以通过以下命令进行控制:
*
#define PRINTJOB_TIMER_AUTOSTART
/**
*打印计数器
*
*跟踪统计数据,如:
*
*使用M78查看当前统计信息。
*/
//#define PRINTCOUNTER
//=============================================================================
//============================= LCD and SD support ============================
//LCD 和 SD支持 =============================
//===========================================
// @LCD显示屏 相关设置
/**
/**
*液晶字符集
*
*注意:此选项不适用于图形显示。
*
*所有基于字符的LCD提供ASCII加上其中之一
*语言扩展:
*
*确定您的控制器上安装的语言扩展名
*
*请参阅https://github.com/MarlinFirmware/Marlin/wiki/LCD-Language
*
*:[‘JAPANESE’,‘WESTERN’,‘CYRILLIC’]
*/
#define DISPLAY_CHARSET_HD44780 JAPANESE
/**
*液晶显示类型
*
*为16x2,16x4,20x2或20x4基于字符的LCD启用ULTRA_LCD。
*为128x64(ST7565R)完整图形显示启用DOGLCD。
*(这些选项将为大多数显示器自动启用。)
*
*重要信息:U8glib库是完整图形显示所必需的!
/**
*默认情况下禁用SD卡支持。 如果您的控制器有一个SD插槽,
*您必须取消注释以下选项,否则将无法正常工作。
*
*/
//#define SDSUPPORT
/**
*对于较慢的SPI传输速度,启用以下项目之一。
*这可能需要解决“卷初始化”错误。
*/
//#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED
/**
*在SD通信中使用CRC校验和重试。
*/
//#define SD_CHECK_AND_RETRY
//
// ENCODER SETTINGS
//
// This option overrides the default number of encoder pulses needed to
// produce one step. Should be increased for high-resolution encoders.
//
//#define ENCODER_PULSES_PER_STEP 1
//
// Use this option to override the number of step signals required to
// move between next/prev menu items.
//
//#define ENCODER_STEPS_PER_MENU_ITEM 5
/**
//
// This option reverses the encoder direction everywhere.
//
// Set this option if CLOCKWISE causes values to DECREASE
//
//#define REVERSE_ENCODER_DIRECTION
//
//该选项反转导航LCD菜单的编码器方向。
//
// If CLOCKWISE normally moves DOWN this makes it go UP. (PS 什么玩意。。)
//如果顺时针向下移动,则使其变为向上。
// If CLOCKWISE normally moves UP this makes it go DOWN. (PS 什么玩意。。)
//如果顺时针向通常向上移动,则会使其下降。
//#define REVERSE_MENU_DIRECTION
//
//各轴单独回零菜单
//
//将独立的项目(X回零,Y回零,Z回零)添加到LCD菜单。
//
//#define INDIVIDUAL_AXIS_HOMING_MENU
//
//扬声器/蜂鸣器
//
//如果您有一个可以产生色调的扬声器,请在此处启用。
//默认情况下,Marlin假设你有一个固定频率的蜂鸣器。
//
//#define SPEAKER
//
// UI反馈声音的持续时间和频率。
//将其设置为0以禁用LCD菜单中的音频反馈。
//
//注意:使用G代码测试音频输出:
// M300 S <频率Hz> P <持续时间ms>
//
//#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 100
//#define LCD_FEEDBACK_FREQUENCY_HZ 1000
//=============================================================================
//=============================== 控制器选择开始===============================
//=============================================================================
//
//控制器类型:标准
//
// Marlin支持各种各样的控制器。
//启用以下选项之一来指定控制器。
//控制器选择开始======================================
//
//
// ULTIMAKER Controller.
// ULTIMAKER控制器
//
//#define ULTIMAKERCONTROLLER
//
// ULTIPANEL as seen on Thingiverse.
// 这是一个控制器名称 - -!
//
//#define ULTIPANEL
//
// Cartesio UI
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
//
//#define CARTESIO_UI
//
// PanelOne from T3P3 (via RAMPS 1.4 AUX2/AUX3)
// http://reprap.org/wiki/PanelOne
//
//#define PANEL_ONE
//
// MaKr3d Makr-Panel with graphic controller and SD support.
// http://reprap.org/wiki/MaKr3d_MaKrPanel
//
//#define MAKRPANEL
//
// ReprapWorld Graphical LCD
// https://reprapworld.com/?products_details&products_id/1218
//
//#define REPRAPWORLD_GRAPHICAL_LCD
//
// Activate one of these if you have a Panucatt Devices
// Viki 2.0 or mini Viki with Graphic LCD
// http://panucatt.com
//
//#define VIKI2
//#define miniVIKI
//
// Adafruit ST7565 Full Graphic Controller.
// https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/
//
//#define ELB_FULL_GRAPHIC_CONTROLLER
//
// RepRapDiscount Smart Controller.
// http://reprap.org/wiki/RepRapDiscount_Smart_Controller
//
// Note: Usually sold with a white PCB.
//
//#define REPRAP_DISCOUNT_SMART_CONTROLLER
//
// GADGETS3D G3D LCD/SD Controller
// http://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel
//
// Note: Usually sold with a blue PCB.
//
//#define G3D_PANEL
//
// RepRapDiscount FULL GRAPHIC Smart Controller
// http://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller
//
//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
//
// MakerLab Mini Panel with graphic
// controller and SD support - http://reprap.org/wiki/Mini_panel
//
//#define MINIPANEL
//
// RepRapWorld REPRAPWORLD_KEYPAD v1.1
// http://reprapworld.com/?products_details&products_id=202&cPath=1591_1626
//
// REPRAPWORLD_KEYPAD_MOVE_STEP sets how much should the robot move when a key
// is pressed, a value of 10.0 means 10mm per click.
//
//#define REPRAPWORLD_KEYPAD
//#define REPRAPWORLD_KEYPAD_MOVE_STEP 1.0
//
// RigidBot Panel V1.0
// http://www.inventapart.com/
//
//#define RIGIDBOT_PANEL
//
// BQ LCD Smart Controller shipped by
// default with the BQ Hephestos 2 and Witbox 2.
//
//#define BQ_LCD_SMART_CONTROLLER
//
// ANET_10 Controller supported displays.
//
//#define ANET_KEYPAD_LCD // Requires ADC_KEYPAD_PIN to be assigned to an analog pin.
// This LCD is known to be susceptible to electrical interference
// which scrambles the display. Pressing any button clears it up.
//#define ANET_FULL_GRAPHICS_LCD // Anet 128x64 full graphics lcd with rotary encoder as used on Anet A6
// A clone of the RepRapDiscount full graphics display but with
// different pins/wiring (see pins_ANET_10.h).
//
// LCD for Melzi Card with Graphical LCD
//
//#define LCD_FOR_MELZI
//
// CONTROLLER TYPE: I2C
//
// Note: These controllers require the installation of Arduino’s LiquidCrystal_I2C
// library. For more info: https://github.com/kiyoshigawa/LiquidCrystal_I2C
//
//
// Elefu RA Board Control Panel
// http://www.elefu.com/index.php?route=product/product&product_id=53
//
//#define RA_CONTROL_PANEL
//
// Sainsmart YW Robot (LCM1602) LCD Display
//
// Note: This controller requires F.Malpartida’s LiquidCrystal_I2C library
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
//
//#define LCD_I2C_SAINSMART_YWROBOT
//
// Generic LCM1602 LCD adapter
//
//#define LCM1602
//
// PANELOLU2 LCD with status LEDs,
// separate encoder and click inputs.
//
// Note: This controller requires Arduino’s LiquidTWI2 library v1.2.3 or later.
// For more info: https://github.com/lincomatic/LiquidTWI2
//
// Note: The PANELOLU2 encoder click input can either be directly connected to
// a pin (if BTN_ENC defined to != -1) or read through I2C (when BTN_ENC == -1).
//
//#define LCD_I2C_PANELOLU2
//
// Panucatt VIKI LCD with status LEDs,
// integrated click & L/R/U/D buttons, separate encoder inputs.
//
//#define LCD_I2C_VIKI
//
// SSD1306 OLED full graphics generic display
//
//#define U8GLIB_SSD1306
//
// SAV OLEd LCD module support using either SSD1306 or SH1106 based LCD modules
//
//#define SAV_3DGLCD
#if ENABLED(SAV_3DGLCD)
//#define U8GLIB_SSD1306
#define U8GLIB_SH1106
#endif
//
// CONTROLLER TYPE: Shift register panels
//
// 2 wire Non-latching LCD SR from https://goo.gl/aJJ4sH
// LCD configuration: http://reprap.org/wiki/SAV_3D_LCD
//
//#define SAV_3DLCD
//
// TinyBoy2 128x64 OLED / Encoder Panel
//
//#define OLED_PANEL_TINYBOY2
//=============================================================================
//=============================== 控制器选择结束===============================
//=============================================================================
//=============================================================================
//=============================== Extra Features ==============================
//================================== 附加功能 ================================
//=============================================================================
// @section extras
// Increase the FAN PWM frequency. Removes the PWM noise but increases heating in the FET/Arduino
//#define FAST_PWM_FAN
// Use software PWM to drive the fan, as for the heaters. This uses a very low frequency
// which is not as annoying as with the hardware PWM. On the other hand, if this frequency
// is too low, you should also increment SOFT_PWM_SCALE.
//#define FAN_SOFT_PWM
// Incrementing this by 1 will double the software PWM frequency,
// affecting heaters, and the fan if FAN_SOFT_PWM is enabled.
// However, control resolution will be halved for each increment;
// at zero value, there are 128 effective control positions.
#define SOFT_PWM_SCALE 0
//如果SOFT_PWM_SCALE设置为高于0的值,则可以使用抖动来减轻相关的分辨率损失。 如果启用,
//一些PWM周期被平均拉伸,达到所需的占空比。
//#define SOFT_PWM_DITHER
// Temperature status LEDs that display the hotend and bed temperature.
// 如果所有的挤出头,床温和目标温度都在54℃以下,则蓝色LED亮起。 否则红色LED亮起。 (1C滞后)
//#define TEMP_STAT_LEDS
// M240通过模拟佳能RC-1遥控器触发相机
//数据来自:http://www.doc-diy.net/photo/rc-1_hacked/
//#define PHOTOGRAPH_PIN 23
//使用Arc Point作为圆角过程时,SkeinForge发送错误的弧g代码
//#define SF_ARC_FIX
//支持BarraCUDA粘贴挤出机
//#define BARICUDA
//支持BlinkM / CyzRgb
//#define BLINKM
//支持PCA9632 PWM LED驱动
//#define PCA9632
/**
*支持连接到5V数字引脚的RGB LED,或
*连接到由数字引脚控制的MOSFET的RGB条。
*
*添加M150命令来设置LED(或LED条)颜色。
*如果引脚是PWM能力的(例如,4,5,6,11)
*亮度值可以设置为0到255。
*
*/
//#define RGB_LED
//#define RGBW_LED
#if ENABLED(RGB_LED) || ENABLED(RGBW_LED)
#define RGB_LED_R_PIN 34
#define RGB_LED_G_PIN 43
#define RGB_LED_B_PIN 35
#define RGB_LED_W_PIN -1
#endif
/**
/*********************************************************************\
//舵机数量
//
//如果您选择下面的配置,它将会收到一个默认值,不需要手动设置
//如果您拥有比挤出机更多的舵机,并且希望手动控制一些,则手动设置
//保留未定义或定义为0将禁用伺服子系统
//如果不确定,请禁用
//
//#define NUM_SERVOS 3 // Servo index starts with 0 for M280 command /使用M280命令,舵机索引开始为0
//在下一次移动之前的延迟(以毫秒为单位)开始,以使舵机运动时间达到其目标角度。
// 300ms是一个很好的数值,但你可以尝试更少的延迟。
//如果舵机无法达到要求的位置,请增加。
#define SERVO_DELAY 300
// Servo deactivation / 停用舵机
//
//使用此选项,伺服仅在运动期间供电,然后关闭以防止抖动。
//#define DEACTIVATE_SERVOS_AFTER_MOVE
/**
/** (原文没删 在上面)
*耗材宽度传感器
*
*实时测量耗材宽度,调整流量以补偿任何不规则现象。
*
*还允许测量的长丝直径来设定挤出速率,因此切片机只需要指定体积。
*
*此时仅支持一台挤出机。
*
*注意:可能需要为其他电路板定义模拟引脚。
*/
//#define FILAMENT_WIDTH_SENSOR
#define DEFAULT_NOMINAL_FILAMENT_DIA 3.00 // (单位mm) 通常使用 1.75 或者 3.00
#if ENABLED(FILAMENT_WIDTH_SENSOR)
#define FILAMENT_SENSOR_EXTRUDER_NUM 0 // 拥有传感器的挤出机编号
#define MEASUREMENT_DELAY_CM 14 // (cm) 从传感器到喷头(熔化料的地方)的距离
#define MEASURED_UPPER_LIMIT 3.30 // (mm) Upper limit used to validate sensor reading
#define MEASURED_LOWER_LIMIT 1.90 // (mm) Lower limit used to validate sensor reading
#define MAX_MEASUREMENT_DELAY 20 // (bytes) Buffer size for stored measurements (1 byte per cm). Must be larger than MEASUREMENT_DELAY_CM.
#define DEFAULT_MEASURED_FILAMENT_DIA DEFAULT_NOMINAL_FILAMENT_DIA // Set measured to nominal initially
//在LCD状态行显示耗材宽度。 5秒钟后状态信息将到期。
//#define FILAMENT_LCD_DISPLAY
#endif
#endif // CONFIGURATION_H