Marlin 1.1.4 Confuguration.h 汉化 翻译


/**
* Marlin 3D Printer Firmware
* Copyright (C) 2016 MarlinFirmware [https://github.com/MarlinFirmware/Marlin]
*
* Based on Sprinter and grbl.
* Copyright (C) 2011 Camiel Gubbels / Erik van der Zalm
*
*此程序是免费软件:您可以重新分发和/或修改
*根据GNU通用公共许可证的条款发布
*自由软件基金会,许可证的第3版,或
*(随选)任何更新版本。
*
*这个程序是分发的,希望它是有用的,
*但没有任何保证; 甚至没有隐含的保证
*适销性或适用于特定目的。 见
* GNU通用公共许可证,以获得更多细节。
*
*您应该收到GNU通用公共许可证的副本
*与此程序一起。 如果没有,请参阅
*
*/

/**
* QQ:114362908 基于官方GITHUB 2017-08-18同步源码汉化,版本:1.1.4
* 最后修正日期 2017-08-21
*/

/**
* Configuration.h
*
* 基本设置如:
*
* - 电子类型
* - 温度传感器类型
* - 打印机几何
* - 终止配置
* - LCD控制器
* - 额外功能
*
* 高级设置可以在Configuration_adv.h中找到
*
*/
#ifndef CONFIGURATION_H
#define CONFIGURATION_H
#define CONFIGURATION_H_VERSION 010100

//===========================================================================
//============================= Getting Started =============================
//=====================================入门==================================
//===========================================================================

/**
* 以下是使您的机器校准的一些标准链接:
*
* http://reprap.org/wiki/Calibration
* http://youtu.be/wAL9d7FgInk
* http://calculator.josefprusa.cz
* http://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide
* http://www.thingiverse.com/thing:5573
* https://sites.google.com/site/repraplogphase/calibration-of-your-reprap
* http://www.thingiverse.com/thing:298812
*/

//===========================================================================
//============================= 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。
*
* :[0, 1, 2, 3, 4, 5, 6, 7]
*/
#define SERIAL_PORT 0 //配置串口号,0表示忽略该设置,使用arduino bootloader配置

/**
*此设置决定打印机的通讯速度。
 *
*大多数情况下,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

/**
*“混合挤出机”
* - 添加一个新的代码M165来设置当前的混合因子。
* - 扩展步进例程以按照组合的比例移动多个步进器。
* - 可选支持Repetier固件M163,M164和虚拟挤出机。
* - 此实施方案仅支持单个挤出机。
* - 为Pia Taubert的参考实现启用DIRECT_MIXING_IN_G1
*/
//#define MIXING_EXTRUDER
#if ENABLED(MIXING_EXTRUDER)
#define MIXING_STEPPERS 2 //混合挤出机中的步进器数量
#define MIXING_VIRTUAL_TOOLS 16 // //使用M163和M164的虚拟工具方法
//#define DIRECT_MIXING_IN_G1 // 允许ABCDHI混合因子在G1运动命令
#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 203Watts(蓝线连接到PS_ON,红线连接到VCC)
 *
  *:{0:'无电源开关',1:'ATX',2:'X-Box 360'}
 */
//电源型号
#define POWER_SUPPLY 0

#if POWER_SUPPLY > 0
//启用此选项可在启动时关闭PSU。
   //需要使用M80打开步进器和加热器的电源。
//#define PS_DEFAULT_OFF
#endif

// @温度 相关设置

//===========================================================================
//============================= Thermal Settings ============================
//================================== 温度 设置 ==============================
//===========================================================================

/**
* --NORMAL IS 4.7kohm PULLUP!-- 1kohm pullup can be used on hotend sensor, using correct resistor and table
*
* Temperature sensors available:
*
* -3 : thermocouple with MAX31855 (only for sensor 0)
* -2 : thermocouple with MAX6675 (only for sensor 0)
* -1 : thermocouple with AD595
* 0 : not used
* 1 : 100k thermistor - best choice for EPCOS 100k (4.7k pullup)
* 2 : 200k thermistor - ATC Semitec 204GT-2 (4.7k pullup)
* 3 : Mendel-parts thermistor (4.7k pullup)
* 4 : 10k thermistor !! do not use it for a hotend. It gives bad resolution at high temp. !!
* 5 : 100K thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (4.7k pullup)
* 6 : 100k EPCOS - Not as accurate as table 1 (created using a fluke thermocouple) (4.7k pullup)
* 7 : 100k Honeywell thermistor 135-104LAG-J01 (4.7k pullup)
* 71 : 100k Honeywell thermistor 135-104LAF-J01 (4.7k pullup)
* 8 : 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup)
* 9 : 100k GE Sensing AL03006-58.2K-97-G1 (4.7k pullup)
* 10 : 100k RS thermistor 198-961 (4.7k pullup)
* 11 : 100k beta 3950 1% thermistor (4.7k pullup)
* 12 : 100k 0603 SMD Vishay NTCS0603E3104FXT (4.7k pullup) (calibrated for Makibox hot bed)
* 13 : 100k Hisens 3950 1% up to 300°C for hotend "Simple ONE " & "Hotend "All In ONE"
* 20 : the PT100 circuit found in the Ultimainboard V2.x
* 60 : 100k Maker's Tool Works Kapton Bed Thermistor beta=3950
* 66 : 4.7M High Temperature thermistor from Dyze Design
* 70 : the 100K thermistor found in the bq Hephestos 2
* 75 : 100k Generic Silicon Heat Pad with NTC 100K MGB18-104F39050L32 thermistor
*
* 1k ohm pullup tables - This is atypical, and requires changing out the 4.7k pullup for 1k.
* (but gives greater accuracy and more stable PID)
* 51 : 100k thermistor - EPCOS (1k pullup)
* 52 : 200k thermistor - ATC Semitec 204GT-2 (1k pullup)
* 55 : 100k thermistor - ATC Semitec 104GT-2 (Used in ParCan & J-Head) (1k pullup)
*
* 1047 : Pt1000 with 4k7 pullup
* 1010 : Pt1000 with 1k pullup (non standard)
* 147 : Pt100 with 4k7 pullup
* 110 : Pt100 with 1k pullup (non standard)
*
* Use these for Testing or Development purposes. NEVER for production machine.
* 998 : Dummy Table that ALWAYS reads 25°C or the temperature defined below.
* 999 : Dummy Table that ALWAYS reads 100°C or the temperature defined below.
*
* :{ '0': "Not used", '1':"100k / 4.7k - EPCOS", '2':"200k / 4.7k - ATC Semitec 204GT-2", '3':"Mendel-parts / 4.7k", '4':"10k !! do not use for a hotend. Bad resolution at high temp. !!", '5':"100K / 4.7k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '6':"100k / 4.7k EPCOS - Not as accurate as Table 1", '7':"100k / 4.7k Honeywell 135-104LAG-J01", '8':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT", '9':"100k / 4.7k GE Sensing AL03006-58.2K-97-G1", '10':"100k / 4.7k RS 198-961", '11':"100k / 4.7k beta 3950 1%", '12':"100k / 4.7k 0603 SMD Vishay NTCS0603E3104FXT (calibrated for Makibox hot bed)", '13':"100k Hisens 3950 1% up to 300°C for hotend 'Simple ONE ' & hotend 'All In ONE'", '20':"PT100 (Ultimainboard V2.x)", '51':"100k / 1k - EPCOS", '52':"200k / 1k - ATC Semitec 204GT-2", '55':"100k / 1k - ATC Semitec 104GT-2 (Used in ParCan & J-Head)", '60':"100k Maker's Tool Works Kapton Bed Thermistor beta=3950", '66':"Dyze Design 4.7M High Temperature thermistor", '70':"the 100K thermistor found in the bq Hephestos 2", '71':"100k / 4.7k Honeywell 135-104LAF-J01", '147':"Pt100 / 4.7k", '1047':"Pt1000 / 4.7k", '110':"Pt100 / 1k (non-standard)", '1010':"Pt1000 / 1k (non standard)", '-3':"Thermocouple + MAX31855 (only for sensor 0)", '-2':"Thermocouple + MAX6675 (only for sensor 0)", '-1':"Thermocouple + AD595",'998':"Dummy 1", '999':"Dummy 2" }
*/
//设置挤出头温度传感器0接口连接的传感器类型编号,类型根据上面说明设置相应的编号
#define TEMP_SENSOR_0 1
#define TEMP_SENSOR_1 0
#define TEMP_SENSOR_2 0
#define TEMP_SENSOR_3 0
#define TEMP_SENSOR_4 0
//设置热床传感器端口连接的传感器类型。该项如果设置错误将影响加热床温度控制。
#define TEMP_SENSOR_BED 1

// 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 ============================
//=================================== 移动设置 ===============================
//=============================================================================
// @移动 相关设置

/**
* 默认设置
*
* 这些设置可以由M502复位
*
* 请注意,如果启用EEPROM,保存的值将覆盖这些。
*/

/**
* With this option each E stepper can have its own factors for the
* following movement settings. If fewer factors are given than the
* total number of extruders, the last value applies to the rest.
*/
//#define DISTINCT_E_FACTORS

/**
*单位默认轴步数(步/ mm)
*用M92覆盖
* X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
*/
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 92 } //脉冲参数 X Y Z E0

/**
*默认最大进给速度(mm / s)
*用M203覆盖
* X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
*/
#define DEFAULT_MAX_FEEDRATE { 300, 300, 5, 25 }

/**
*默认最大加速度(更改/秒)更改= mm / s
*(加速移动的最大启动速度)
*用M201覆盖
* X, Y, Z, E0 [, E1[, E2[, E3[, E4]]]]
*/
#define DEFAULT_MAX_ACCELERATION { 3000, 3000, 100, 10000 }

/**
*默认加速度(change / s)change = mm / s
*用M204覆盖
 *
* M204 P加速度
* M204 R回缩加速度
* M204 T行驶加速
*/
#define DEFAULT_ACCELERATION 3000 // X,Y,Z和E加速度进行打印移动
#define DEFAULT_RETRACT_ACCELERATION 3000 // E加速回抽
#define DEFAULT_TRAVEL_ACCELERATION 3000 // X,Y,Z行驶加速度(非打印)移动

/**
*默认值(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_PROBE_USES_Z_MIN_ENDSTOP_PIN
 *
*为连接到Z Min endstop引脚的探头启用此选项。
 */
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN

/**
* Z_MIN_PROBE_ENDSTOP
 *
*为与Z-Min以外的任何引脚连接的探头启用此选项。
*(默认情况下,Marlin采用Z-Max endstop引脚。)
*要使用自定义Z Probe引脚,请在下方设置Z_MIN_PROBE_PIN。
 *
* - 最简单的选择是使用免费的endstop连接器。
* - 使用5V电源(通常为电感式)传感器。
 *
* - RAMPS 1.3 / 1.4板可以使用5V,GND和Aux4-> D32引脚:
* - 对于简单的开关连接...
* - 常闭切换到GND和D32。
* - 常开切换到5V和D32。
 *
  *警告:设置错误的引脚可能有意想不到的可能
  *灾难性的后果。 谨慎使用,做功课。
 *
 */
//#define Z_MIN_PROBE_ENDSTOP

/**
  *探头类型
 *
  *内六角探头,伺服探头,Z-Sled探头,FIX_MOUNTED_PROBE等
  *您必须激活以下其中一项,才能使用下面的自动床平整。
 */

/**
  *“手动探头”提供了一种在无需探头的情况下进行“自动”床平整的方法。
  *反复使用G29,用移动指令调整每个点的Z高度
  *或(带LCD_BED_LEVELING)LCD控制器。
 */
//#define PROBE_MANUALLY

/**
  *固定安装的探测器不部署或需要手动部署。
  *(例如,感应探头或基于喷嘴的探针开关)
 */
//#define FIX_MOUNTED_PROBE

/**
  * Z伺服探头,例如旋转臂上的终端开关。
 */
//#define Z_ENDSTOP_SERVO_NR 0 // Defaults to SERVO 0 connector.
//#define Z_SERVO_ANGLES {70,0} // Z Servo Deploy and Stow angles

/**
  * BLTouch探头使用霍尔效应传感器并仿真伺服。
 */
//#define BLTOUCH
#if ENABLED(BLTOUCH)
//#define BLTOUCH_DELAY 375 // (ms) Enable and increase if needed
#endif

/**
  *如果探测似乎不可靠,启用。 加热器和/或风扇 - 符合
  *下面选择的选项 - 在探测期间将被禁用,以便最小化
  *通过静音/消音“噪声”来源的潜在EM干扰(变化)
  *流经电线的电流)。 这可能是最有用的用户
  * BLTouch探头,但也可以帮助那些感应或其他探头类型。
 */
//#define PROBING_HEATERS_OFF // Turn heaters off when probing
//#define PROBING_FANS_OFF // Turn fans off when probing

// 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.
//

/**
* Z相对于(0,0)的喷嘴(X,Y)偏移。
* X和Y偏移必须是整数。
 *
*在以下示例中,X和Y偏移均为正值:
* #define X_PROBE_OFFSET_FROM_EXTRUDER 10
* #define Y_PROBE_OFFSET_FROM_EXTRUDER 10
*
* +-- BACK ---+
* | |
* L | (+) P | R <-- probe (20,20) * E | | I * F | (-) N (+) | G <-- nozzle (10,10) * T | | H * | (-) | T * | | * O-- FRONT --+ * (0,0) */ // 打印头和探针之间的偏差值 #define X_PROBE_OFFSET_FROM_EXTRUDER 10 // X offset: -left +right [of the nozzle] #define Y_PROBE_OFFSET_FROM_EXTRUDER 10 // Y offset: -front +behind [the nozzle] #define Z_PROBE_OFFSET_FROM_EXTRUDER 0 // Z offset: -below +above [the nozzle] // X and Y axis travel speed (mm/m) between probes #define XY_PROBE_SPEED 8000 // Speed for the first approach when double-probing (with PROBE_DOUBLE_TOUCH) #define Z_PROBE_SPEED_FAST HOMING_FEEDRATE_Z // Speed for the "accurate" probe of each point #define Z_PROBE_SPEED_SLOW (Z_PROBE_SPEED_FAST / 2) // Use double touch for probing //#define PROBE_DOUBLE_TOUCH /** * Z型探头在部署,收集和移动之间需要清除 *探针点避免撞击床和其他硬件。 *伺服安装式探头需要额外的空间才能使手臂旋转。   感应探头需要空间避免触发。 * *使用这些设置来指定探头的距离(mm)(或 *下床)。 这里设置的值适用于任何(负) *探头Z偏移设置为Z_PROBE_OFFSET_FROM_EXTRUDER,M851或LCD。 *这里只有整数值> = 1。
 *
*示例:“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 ==============================
//================================= 机床调平 ================================
//===========================================================================
// @调平 相关设置

/**
 * 选择以下选项之一启用G29床层面调整。参数
 * 和G29的行为将根据您的选择而改变。
 *
 * 如果使用Z Homing的探头,也可以启用Z_SAFE_HOMING!
 *
*
* - AUTO_BED_LEVELING_3POINT 三点自动调平
* 探测床上任意3点(不共线)
* 指定所有3个点的XY坐标。
* 探测结果是一个倾斜的平面.最适合打印台面平整的机床.
*
* - AUTO_BED_LEVELING_LINEAR 线性网络自动调平
 * 在网格中探测几个点。
 * 指定采样点的矩形和密度。
* 探测结果是一个倾斜的平面. 最适合打印台面平整的机床.
*
* - AUTO_BED_LEVELING_BILINEAR 双线性网络自动调平
* 在网格中探测几个点。
 * 指定采样点的矩形和密度。
* 探测结果是一个网格,最适合打印平台较大或打印平台平整度不高的机床
*
* - AUTO_BED_LEVELING_UBL (Unified Bed Leveling)
* A comprehensive bed leveling system combining the features and benefits
* of other systems. UBL also includes integrated Mesh Generation, Mesh
* Validation and Mesh Editing systems. Currently, UBL is only checked out
* for Cartesian Printers. That said, it was primarily designed to correct
* poor quality Delta Printers. If you feel adventurous and have a Delta,
* please post an issue if something doesn't work correctly. Initially,
* you will need to set a reduced bed size so you have a rectangular area
* to test on.
*
* - MESH_BED_LEVELING 手动探测网格
* Probe a grid manually
* The result is a mesh, suitable for large or uneven beds. (See BILINEAR.)
* For machines without a probe, Mesh Bed Leveling provides a method to perform
* leveling in steps so you can manually adjust the Z height at each grid-point.
* With an LCD controller the process is guided step-by-step.
*/
//#define AUTO_BED_LEVELING_3POINT //三点自动调平
//#define AUTO_BED_LEVELING_LINEAR //线性网络自动调平
//#define AUTO_BED_LEVELING_BILINEAR //双线性网络自动调平
//#define AUTO_BED_LEVELING_UBL
//#define MESH_BED_LEVELING //手动探测网格

/**
* Enable detailed logging of G28, G29, M48, etc.
* Turn on with the command 'M111 S32'.
* NOTE: Requires a lot of PROGMEM!
*/
//#define DEBUG_LEVELING_FEATURE

#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 (50*60)
#define HOMING_FEEDRATE_Z (4*60)

//=============================================================================
//============================= 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)

/**
* Nozzle Park -- EXPERIMENTAL
*
* Park the nozzle at the given XYZ position on idle or G27.
*
* The "P" parameter controls the action applied to the Z axis:
*
* P0 (Default) If Z is below park Z raise the nozzle.
* P1 Raise the nozzle always to Z-park height.
* P2 Raise the nozzle by Z-park amount, limited to Z_MAX_POS.
*/
//#define NOZZLE_PARK_FEATURE

#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

/**
* Clean Nozzle Feature -- EXPERIMENTAL
*
* Adds the G12 command to perform a nozzle cleaning process.
*
* Parameters:
* P Pattern
* S Strokes / Repetitions
* T Triangles (P1 only)
*
* Patterns:
* P0 Straight line (default). This process requires a sponge type material
* at a fixed bed location. "S" specifies strokes (i.e. back-forth motions)
* between the start / end points.
*
* P1 Zig-zag pattern between (X0, Y0) and (X1, Y1), "T" specifies the
* number of zig-zag triangles to do. "S" defines the number of strokes.
* Zig-zags are done in whichever is the narrower dimension.
* For example, "G12 P1 S1 T3" will execute:
*
* --
* | (X0, Y1) | /\ /\ /\ | (X1, Y1)
* | | / \ / \ / \ |
* A | | / \ / \ / \ |
* | | / \ / \ / \ |
* | (X0, Y0) | / \/ \/ \ | (X1, Y0)
* -- +--------------------------------+
* |________|_________|_________|
* T1 T2 T3
*
* P2 Circular pattern with middle at NOZZLE_CLEAN_CIRCLE_MIDDLE.
* "R" specifies the radius. "S" specifies the stroke count.
* Before starting, the nozzle moves to NOZZLE_CLEAN_START_POINT.
*
* Caveats: The ending Z should be the same as starting Z.
* Attention: EXPERIMENTAL. G-code arguments may change.
*
*/
//#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

/**
* Print Job Timer
*
* 使用 M104/M109/M190 自动启动或停止打印时间统计.
*
* M104 (hotend, no wait) - high temp = none, low temp = stop timer (PS 什么玩意。。)
* M109 (hotend, wait) - high temp = start timer, low temp = stop timer (PS 什么玩意。。)
* M190 (bed, wait) - high temp = start timer, low temp = none (PS 什么玩意。。)
*
*
*定时器也可以通过以下命令进行控制:
 *
* M75 - 启动打印作业计时器
 * M76 - 暂停打印作业计时器
* M77 - 停止打印作业计时器
 */

#define PRINTJOB_TIMER_AUTOSTART

/**
*打印计数器
 *
 *跟踪统计数据,如:
 *
* - 打印作业总计数
* - 打印作业成功计数
 * - 打印作业失败计数
 * - 总打印时间
 *
 *使用M78查看当前统计信息。
 */
//#define PRINTCOUNTER

//=============================================================================
//============================= LCD and SD support ============================
//==================================LCD 和 SD支持 =============================
//=============================================================================

// @LCD显示屏 相关设置

/**
* 屏幕语言
*
* 选择在LCD上显示的语言。 这些语言可用:
*
* en, an, bg, ca, cn, cz, cz_utf8, de, el, el-gr, es, eu, fi, fr, gl, hr,
* it, kana, kana_utf8, nl, pl, pt, pt_utf8, pt-br, pt-br_utf8, ru, tr, uk,
* zh_CN, zh_TW, test
*
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cn':'Chinese', 'cz':'Czech', 'cz_utf8':'Czech (UTF8)', 'de':'German', 'el':'Greek', 'el-gr':'Greek (Greece)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'it':'Italian', 'kana':'Japanese', 'kana_utf8':'Japanese (UTF8)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt-br':'Portuguese (Brazilian)', 'pt-br_utf8':'Portuguese (Brazilian UTF8)', 'pt_utf8':'Portuguese (UTF8)', 'ru':'Russian', 'tr':'Turkish', 'uk':'Ukrainian', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Taiwan)', test':'TEST' }
*/
#define LCD_LANGUAGE cn //设置屏幕语言为中文

/**
*液晶字符集
 *
*注意:此选项不适用于图形显示。
 *
*所有基于字符的LCD提供ASCII加上其中之一
*语言扩展:
 *
* - JAPANESE ...最常见的
* - WESTERN ...有更多重音字符
* - CYRILLIC ...为俄语
 *
*确定您的控制器上安装的语言扩展名
 *
* - 使用LCD_LANGUAGE编译和上传设置为“测试”
* - 点击控制器查看LCD菜单
* - 液晶显示屏将显示日文,西方或西里尔文字
 *
*请参阅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库是完整图形显示所必需的!
  * https://github.com/olikraus/U8glib_Arduino
 */
//#define ULTRA_LCD // Character based
//#define DOGLCD // Full graphics display

/**
* SD卡
 *
*默认情况下禁用SD卡支持。 如果您的控制器有一个SD插槽,
*您必须取消注释以下选项,否则将无法正常工作。
 *
 */
//#define SDSUPPORT

/**
* SD卡:SPI SPEED
 *
*对于较慢的SPI传输速度,启用以下项目之一。
*这可能需要解决“卷初始化”错误。
 */
//#define SPI_SPEED SPI_HALF_SPEED
//#define SPI_SPEED SPI_QUARTER_SPEED
//#define SPI_SPEED SPI_EIGHTH_SPEED

/**
* SD卡:启用CRC
 *
*在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

/**
* Encoder Direction Options
*
* Test your encoder's behavior first with both options disabled.
*
* Reversed Value Edit and Menu Nav? Enable REVERSE_ENCODER_DIRECTION.
* Reversed Menu Navigation only? Enable REVERSE_MENU_DIRECTION.
* Reversed Value Editing only? Enable BOTH options.
*/

//
// 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

/**
  * RGB LED / LED灯条控制
 *
  *支持连接到5V数字引脚的RGB LED,或
  *连接到由数字引脚控制的MOSFET的RGB条。
 *
  *添加M150命令来设置LED(或LED条)颜色。
  *如果引脚是PWM能力的(例如,4,5,6,11)
  *亮度值可以设置为0到255。
 *
  * ***小心***
  * LED条需要在PWM线和LED之间的MOFSET芯片,
  *因为Arduino无法处理LED将需要的电流。
  *未遵守此预防措施可能会破坏您的Arduino!
  * ***小心***
 *
 */

//#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

/**
* 打印机事件LED
*
* 打印期间,LED将反映打印机状态:
*
* - 随着热床达到目标温度,逐渐从蓝色变为紫色
* - 随着挤出头达到目标温度,渐渐地从紫变红
* - 变为白色以照亮工作表面
* - 一旦打印结束,更改为绿色
* - 打印结束后,用户按下按钮即可关闭
*/
#if ENABLED(BLINKM) || ENABLED(RGB_LED) || ENABLED(RGBW_LED) || ENABLED(PCA9632)
#define PRINTER_EVENT_LEDS
#endif

/*********************************************************************\
* R/C SERVO support
* Sponsored by TrinityLabs, Reworked by codexmas
**********************************************************************/

//舵机数量
//
//如果您选择下面的配置,它将会收到一个默认值,不需要手动设置
//如果您拥有比挤出机更多的舵机,并且希望手动控制一些,则手动设置
//保留未定义或定义为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

/**
* Filament Width Sensor
*
* Measures the filament width in real-time and adjusts
* flow rate to compensate for any irregularities.
*
* Also allows the measured filament diameter to set the
* extrusion rate, so the slicer only has to specify the
* volume.
*
* Only a single extruder is supported at this time.
*
* 34 RAMPS_14 : Analog input 5 on the AUX2 connector
* 81 PRINTRBOARD : Analog input 2 on the Exp1 connector (version B,C,D,E)
* 301 RAMBO : Analog input 3
*
* Note: May require analog pins to be defined for other boards.
*/

/** (原文没删 在上面)
  *耗材宽度传感器
  *
  *实时测量耗材宽度,调整流量以补偿任何不规则现象。
  *
  *还允许测量的长丝直径来设定挤出速率,因此切片机只需要指定体积。
  *
  *此时仅支持一台挤出机。
 *
  * 34 RAMPS_14:AUX2连接器上的模拟输入5
  * 81 PRINTRBOARD:Exp1连接器上的模拟输入2(版本B,C,D,E)
  * 301 RAMBO:模拟输入3
 *
  *注意:可能需要为其他电路板定义模拟引脚。
 */

//#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

shashou47

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: