加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
文件
该仓库未声明开源许可证文件(LICENSE),使用请关注具体项目描述及其代码上游依赖。
克隆/下载
中文翻译Configuration.h 121.07 KB
一键复制 编辑 原始数据 按行查看 历史
余金渠 提交于 2024-08-15 23:17 . 中文翻译配置文件
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304
/**
* 马林3D打印机固件
* 版权所有(c)2020 Marlin固件 https://github.com/MarlinFirmware/Marlin
* 马琳官网https://marlinfw.org/(查个g代码,以及一些冷门功能的资料,贼详细)
* 吔!!!!!五十万匹马力,我命令你给我一键三连https://space.bilibili.com/10833027
*
*
*
*
* !!!!!!!!!!!!!!!!!很重要,请务必看完这些内容!!!!!!!!!!!!!!!!!!!!!!!!!
* 在整个固件中有一些设置非常关键,这决定了你的打印机能否正常启动,如果设置有问题可能会所怀设备甚至人(打印机杀人事件)
* 我会在很重要的设置后门标注(很重要)这三个字,请先搜索这三个字来确保每个重要选项都没有错过
* 一些进阶设置(如自动调平,拐角加速度,无限位归零,双z双限位双挤出等)我会标注(进阶)强烈推荐也看一遍
* 有一些无关打印机性能功能的我会标注(个性化)包括自定义开机动画,内置游戏,蜂鸣器选项等
* !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
* !!!!!!!!!!!!!!!!请善用“康戳+艾弗”的搜索功能!!!!!!!!!!!!!!!!!!!!!!!!!(又没对齐,干)
* 一些非常高端的设置我也没接触过,我会进行标注,如需了解请自行查找攻略(看完记得艾特我)
* 记得搜索:很重要 进阶 个性化 这三个关键词
* 像是一些双z 自动调平 双限位 你们也可以直接搜索
* 总之想要改的东西,先搜索,搜就完力!!!!
*
*/
#pragma once //
/**
* Configuration.h文件(本文件)是一个基础设置文件
*
* 其中设置包括但不限于以下:
*
* - 设备类型
* - 温度以及热敏类型
* - 打印机的尺寸以及运动结构
* - 限位开关的相关设置
* - LCD控制器
* - 其他
*
* 更多设置在Configuration_adv.h文件夹
*/
#define CONFIGURATION_H_VERSION 02010200 //这行是马琳的版本信息,如果以后要升级马琳的话再回来修改
//===========================================================================
//============================= 天才第一步 =============================
//===========================================================================
/**
* 一些实用的调机网站
*
* 示例配置: https://github.com/MarlinFirmware/Configurations/branches/all
*
* Průša 计算器(计算诸如步进数,加速度等): https://blog.prusaprinters.org/calculator_3416/
*
* 调机攻略: https://reprap.org/wiki/Calibration
* https://reprap.org/wiki/Triffid_Hunter%27s_Calibration_Guide
* https://sites.google.com/site/repraplogphase/calibration-of-your-reprap
* https://space.bilibili.com/10833027
*
* 这几行连接对不齐我真的太难受了(这行字没卵用)
*
* 调机用的测试模型: https://www.thingiverse.com/thing:5573
* https://www.thingiverse.com/thing:1278865
*
*
*
* (很重要)1:为了新世界的幸福请先选则你的主板主控芯片在platformio.ini文件中(左边橙色外星人图标那个)default_envs =后填写你的主板芯片(问你的厂商)
*
*/
// @信息设置
// 固件信息(就是开机的时候那个)
#define STRING_CONFIG_H_AUTHOR "(none, default config)" // 开机显示作者信息(没啥用)(个性化)
//#define CUSTOM_VERSION_FILE Version.h // 根目录的路径(无引号)
/**
* *** 马琳官方の自夸 ***
*
* 马琳允许为您的LCD屏幕添加自定义图像
* 我们鼓励您使用这一功能
* 但也恭敬地请求您保留未修改的马林鱼启动屏幕(大雾这马琳官方好卑微555)
*/
// 开机显示马琳动画(我没关过,我还挺喜欢这个的) (个性化)
#define SHOW_BOOTSCREEN
// 启动时显示自定义图像,具体教程:https://www.bilibili.com/video/BV1r14y1K7XV/(感谢这个大佬给大佬磕头)(个性化)
//#define SHOW_CUSTOM_BOOTSCREEN
// 开机之后左上角的自定义logo,你们去看上面那个教程不要下次一定(个性化)
//#define CUSTOM_STATUS_SCREEN_IMAGE
//
// 设置你的打印机主板型号(很重要)boards.h在这个文件里面可以找到你的主板名字别填错了(不知道问商家) (俺の最爱主板:BOARD_MKS_GEN_L_V21)
// 路径Marlin:src :core boards.h
#ifndef MOTHERBOARD
#define MOTHERBOARD BOARD_MKS_GEN_L_V21
#endif
/**
* 串口类型(很重要)
* 例如,如果您需要将无线适配器连接到非默认端口引脚,请更改此项
* 如果你不知道请问你的主板厂家别瞎填
*
* 示例值:[-1, 0, 1, 2, 3, 4, 5, 6, 7]
*/
#define SERIAL_PORT 0
/**
* 串行端口波特率(很重要)
* 这是所有串行端口的默认通信速度
* 250000大多数机器,如果你没有经验还是要去问你的主板厂家
*
* 示例值:[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000]
*/
#define BAUDRATE 250000
//#define BAUD_RATE_GCODE // 开启之后能用gcode改波特率(没啥用)
/**
* 选择板上用于与主机通信的辅助串行端口(一般用不到)
* 目前,以太网(-2)仅在Teensy 4.1板上受支持
* 下面是设置辅助串口的类型和波特率
* 整个固件中涉及到修改数值的都会出现下面这个格式的注释:[]
* :[-2, -1, 0, 1, 2, 3, 4, 5, 6, 7]
*/
//#define SERIAL_PORT_2 -1
//#define BAUDRATE_2 250000 // :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000] 启用以覆盖BAUDRATE
/**
* 选择板上用于与主机通信的第三个串行端口(一般用不到)
* 目前仅支持 AVR, DUE, LPC1768/9 and STM32/STM32F1
* :[-1, 0, 1, 2, 3, 4, 5, 6, 7]
*/
//#define SERIAL_PORT_3 1
//#define BAUDRATE_3 250000 // :[2400, 9600, 19200, 38400, 57600, 115200, 250000, 500000, 1000000] 启用以覆盖BAUDRATE
// 启用蓝牙串行接口。适用于基于 AT90USB 的主板。
//#define BLUETOOTH
// 显示屏幕中准备完毕信息和3d打印机的名字(个性化)
#define CUSTOM_MACHINE_NAME "3D Printer"
//打印机的唯一ID,某些程序用来区分机器.
// 选择您自己的或使用类似的服务 https://www.uuidgenerator.net/version4
//#define MACHINE_UUID "00000000-0000-0000-0000-000000000000"
// 步进电机相关设置
/**
* 选择要开启的电机以及电机驱动类型(很重要)
*你用哪个轴就开哪个,驱动型号别选错了(非常非常重要)
双z一般开启z2(双z)记得开启对应的限位以及去高级设置里面修改双限位的具体接口
详细教程https://www.bilibili.com/video/BV173411g7eP
* 更多设置在 Configuration_adv.h.
*
* 对于TMC2225驱动程序,使用TMC2208/TMC2208_STANDALONE;对于TMC2226驱动程序,则使用TMC2209/TMC2209_STANDALOE
*
* 驱动类型: A4988, A5984, DRV8825, LV8729, 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', '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 TMC2209
#define Y_DRIVER_TYPE TMC2209
#define Z_DRIVER_TYPE TMC2209
//#define X2_DRIVER_TYPE A4988
//#define Y2_DRIVER_TYPE A4988
#define Z2_DRIVER_TYPE TMC2209
//#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 U_DRIVER_TYPE A4988
//#define V_DRIVER_TYPE A4988
//#define W_DRIVER_TYPE A4988
#define E0_DRIVER_TYPE TMC2209
//#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
/**
* 附加轴设置(这是啥我不到啊,没用过)
* 我没用过,我不知道,研究好了记得艾特我
* 为所有旋转或枢轴的轴定义AXIS_ROTATES
* 旋转轴坐标以度表示
* axis_NAME定义(大多数)G代码命令中用于引用轴的字母
* 按照惯例,名称和角色通常为
* 'A' :轴线平行于 X
* 'B' :轴线平行于 Y
* 'C' :轴线平行于Z
* 'U' :轴线平行于 X
* 'V' :轴线平行于Y
* 'W' :轴线平行于Z
*
* 无论这些设置如何,轴都在内部命名为I, J, K, U, V, W.
*/
#ifdef I_DRIVER_TYPE
#define 'A' // :['A', 'B', 'C', 'U', 'V', 'W']
#define AXIS4_ROTATES
#endif
#ifdef J_DRIVER_TYPE
#define AXIS5_NAME 'B' // :['B', 'C', 'U', 'V', 'W']
#define AXIS5_ROTATES
#endif
#ifdef K_DRIVER_TYPE
#define AXIS6_NAME 'C' // :['C', 'U', 'V', 'W']
#define AXIS6_ROTATES
#endif
#ifdef U_DRIVER_TYPE
#define AXIS7_NAME 'U' // :['U', 'V', 'W']
//#define AXIS7_ROTATES
#endif
#ifdef V_DRIVER_TYPE
#define AXIS8_NAME 'V' // :['V', 'W']
//#define AXIS8_ROTATES
#endif
#ifdef W_DRIVER_TYPE
#define AXIS9_NAME 'W' // :['W']
//#define AXIS9_ROTATES
#endif
// 多挤出
// 挤出机数量,有几个写几个(很重要)
// :[0, 1, 2, 3, 4, 5, 6, 7, 8]
#define EXTRUDERS 1
// 耗材直径(预期直径)一般为1.75或者3()很重要
#define DEFAULT_NOMINAL_FILAMENT_DIA 1.75
// 如果有 E3D Cyclops 或任何其他共享单个喷嘴的“多挤出机”系统,请启用
//#define SINGLENOZZLE
// 刀库换头
// 使用M104/106/109为未选择的刀具设置备用。。。
#if ENABLED(SINGLENOZZLE)
//#define SINGLENOZZLE_STANDBY_TEMP
//#define SINGLENOZZLE_STANDBY_FAN
#endif
// 单喷嘴多材料
/**
* 多材料单位
* 设置为以下预定义模型之一
*
* PRUSA_MMU1 : Průša MMU1 ("多路复用器" 版本)
* PRUSA_MMU2 : Průša MMU2
* PRUSA_MMU2S : Průša MMU2S (需要带运动传感器的MK3S挤出机为5)
* EXTENDABLE_EMU_MMU2 : 具有可配置耗材数量的MMU(ERCF、SMuFF或与Průša MMU2兼容的固件类似)
* EXTENDABLE_EMU_MMU2S : 同上
*
* 需要NOZZLE_PARK_FEATURE来停放打印头,以防MMU单元发生故障。
* 请参阅Configuration_adv.h中的其他选项。
* :["PRUSA_MMU1", "PRUSA_MMU2", "PRUSA_MMU2S", "EXTENDABLE_EMU_MMU2", "EXTENDABLE_EMU_MMU2S"]
*/
//#define MMU_MODEL PRUSA_MMU2
// 使用单步进电机的双挤出机
//#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_E1_SERVO_NR 1 // If two servos are used, the index of the second
#define SWITCHING_NOZZLE_SERVO_ANGLES { 0, 90 } // Angles for E0, E1 (single servo) or lowered/raised (dual servo)
#define SWITCHING_NOZZLE_SERVO_DWELL 2500 // Dwell time to wait for servo to make physical move
#endif
/**
* 磁性停车挤出机(电磁阀)
*
*啊我没搞过这个啊,我不到哇
* 通过螺线管对接机构。需要SOL1_PIN和SOL2_PIN。
*/
//#define PARKING_EXTRUDER
/**
* 磁性停车挤出机(磁铁)
* 通过螺线管对接机构。需要SOL1_PIN和SOL2_PIN。
*
* 资料 : https://www.thingiverse.com/thing:3080893
* 好康的 : https://youtu.be/0xCEiG9VS3k
* https://youtu.be/Bqbcs0CU2FE
*/
//#define MAGNETIC_PARKING_EXTRUDER
#if EITHER(PARKING_EXTRUDER, MAGNETIC_PARKING_EXTRUDER)
#define PARKING_EXTRUDER_PARKING_X { -78, 184 } // 用于停放挤出机的X位置
#define PARKING_EXTRUDER_GRAB_DISTANCE 1 // (mm)移动超过停车点以抓住挤出机的距离
#if ENABLED(PARKING_EXTRUDER)
#define PARKING_EXTRUDER_SOLENOIDS_INVERT // 如果启用,电磁阀不会被施加的电压磁化
#define PARKING_EXTRUDER_SOLENOIDS_PINS_ACTIVE LOW // LOW(低)或HIGH(高)引脚信号使线圈通电
#define PARKING_EXTRUDER_SOLENOIDS_DELAY 250 // (ms)磁场延迟。如果0或未定义,则无延迟。
//#define MANUAL_SOLENOID_CONTROL // 使用M380 S/M381手动控制对接电磁阀
#elif ENABLED(MAGNETIC_PARKING_EXTRUDER)
#define MPE_FAST_SPEED 9000 // (mm/min)最后距离点之前的行驶速度
#define MPE_SLOW_SPEED 4500 // (mm/min)到停车场和情侣的最后距离行驶速度
#define MPE_TRAVEL_DISTANCE 10 // (mm)最后距离点
#define MPE_COMPENSATION 0 // 偏移补偿-1,0,1(乘法器)仅用于耦合
#endif
#endif
/**
* 切换工具头
*
* 支持可交换和可停靠的工具头,例如 E3D 工具快换装置。工具头用伺服器锁定
*/
//#define SWITCHING_TOOLHEAD
/**
* 磁性开关工具头
*
* 支持可插拔和可停靠的工具头,具有磁性对接机构,使用移动和无伺服
*/
//#define MAGNETIC_SWITCHING_TOOLHEAD
/**
* 电磁开关工具头
*
* 对于 CoreXY / HBot 运动学,工具头停在一个边缘并用电磁铁固定。
* 支持2个以上的工具头。请参阅 https://youtu.be/JolbsAKTKf4
*/
//#define ELECTROMAGNETIC_SWITCHING_TOOLHEAD
#if ANY(SWITCHING_TOOLHEAD, MAGNETIC_SWITCHING_TOOLHEAD, ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_Y_POS 235 // (mm)刀头底座的Y位置
#define SWITCHING_TOOLHEAD_Y_SECURITY 10 // (mm)Y轴安全距离
#define SWITCHING_TOOLHEAD_Y_CLEAR 60 // (mm)无障碍X轴距码头的最小距离
#define SWITCHING_TOOLHEAD_X_POS { 215, 0 } // (mm)用于停放挤出机的X位置
#if ENABLED(SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_SERVO_NR 2 // 伺服接头索引
#define SWITCHING_TOOLHEAD_SERVO_ANGLES { 0, 180 } // (度)锁定、解锁角度
#elif ENABLED(MAGNETIC_SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_Y_RELEASE 5 // (mm)Y轴安全距离
#define SWITCHING_TOOLHEAD_X_SECURITY { 90, 150 } // (mm)安全距离X轴(T0,T1)
//#define PRIME_BEFORE_REMOVE // 从码头释放前,给喷嘴注油
#if ENABLED(PRIME_BEFORE_REMOVE)
#define SWITCHING_TOOLHEAD_PRIME_MM 20 // (mm)挤出机主要长度
#define SWITCHING_TOOLHEAD_RETRACT_MM 10 // (mm)充注后缩回长度
#define SWITCHING_TOOLHEAD_PRIME_FEEDRATE 300 // (mm/min)挤出机主要进料速度
#define SWITCHING_TOOLHEAD_RETRACT_FEEDRATE 2400 // (mm/min)挤出机缩回进给速率
#endif
#elif ENABLED(ELECTROMAGNETIC_SWITCHING_TOOLHEAD)
#define SWITCHING_TOOLHEAD_Z_HOP 2 // (mm)开关Z上升
#endif
#endif
/**
* "多色混料(希望有成熟的diy作业让我超55555555555)"
* - 扩展步进程序,以按照混合比例移动多个步进器
* - 可选支持Repetier固件的“M164 s<index>”支持虚拟工具.
* - 此实施方式最多支持两台混合挤出机
* - 启用M165的DIRECT_MIXING_IN_G1和G1中的混合(来自Pia Taubert的参考实现)
*/
//#define MIXING_EXTRUDER
#if ENABLED(MIXING_EXTRUDER)
#define MIXING_STEPPERS 2 // 混合挤出机中的步进器数量
#define MIXING_VIRTUAL_TOOLS 16 // 对M163和M164使用虚拟工具方法
//#define DIRECT_MIXING_IN_G1 // 允许G1移动命令中的ABCDHI mix
//#define GRADIENT_MIX // 支持M166和LCD的渐变混合
//#define MIXING_PRESETS // 为2个或3个MIXING_STEPPERS指定8个默认V形刀具预设
#if ENABLED(GRADIENT_MIX)
//#define GRADIENT_VTOOL // 添加M166 T以使用V形工具索引作为渐变别名
#endif
#endif
// 挤出机的ffset(如果使用多个挤出机并且在更改时依赖于固件来定位,则取消注释)
// 挤出机0 热端(默认挤出机)的偏移必须为X=0,Y=0。
// 对于其他热端,它是它们与挤出机0热端的距离。
//#define HOTEND_OFFSET_X { 0.0, 20.00 } // (mm) relative X-offset for each nozzle
//#define HOTEND_OFFSET_Y { 0.0, 5.00 } // (mm) relative Y-offset for each nozzle
//#define HOTEND_OFFSET_Z { 0.0, 0.00 } // (mm) relative Z-offset for each nozzle
// @电源设置
/**
* 电源控制(多电源)
*
* 启用电源并将其连接到PS_ON_PIN。
* 指定电源是激活的高电平还是激活的低电平。
*/
//#define PSU_CONTROL
//#define PSU_NAME "Power Supply"
#if ENABLED(PSU_CONTROL)
//#define MKS_PWC // 使用MKS PWC插件
//#define PS_OFF_CONFIRM // 关闭电源时确认对话框
//#define PS_OFF_SOUND // 电源关闭时发出蜂鸣声1秒
#define PSU_ACTIVE_STATE LOW // 为ATX设置“低”,为X-Box设置“高”
//#define PSU_DEFAULT_OFF // 保持电源关闭,直到直接使用M80启用
//#define PSU_POWERUP_DELAY 250 // (ms)PSU预热至满功率的延迟
//#define LED_POWEROFF_TIMEOUT 10000 // (ms)在断电后关闭LED,并具有此延迟量
//#define POWER_OFF_TIMER // 使M81 D <秒>在延迟后关闭电源
//#define POWER_OFF_WAIT_FOR_COOLDOWN // 使M81 S 仅在冷却后关闭电源
//#define PSU_POWERUP_GCODE "M355 S1" //开机后运行的G代码(例如,机箱灯亮起)
//#define PSU_POWEROFF_GCODE "M355 S0" // 关机前运行的G代码(例如,机箱灯关闭)
//#define AUTO_POWER_CONTROL // 启用PS_ON引脚的自动控制
#if ENABLED(AUTO_POWER_CONTROL)
#define AUTO_POWER_FANS // 如果风扇需要电源,请打开电源
#define AUTO_POWER_E_FANS
#define AUTO_POWER_CONTROLLERFAN
#define AUTO_POWER_CHAMBER_FAN
#define AUTO_POWER_COOLER_FAN
#define POWER_TIMEOUT 30 // (喵) 如果机器在此期间处于闲置状态,请关闭电源
//#define POWER_OFF_DELAY 60 // (秒) M81命令后断电延迟。有助于让球迷跑得更久。
#endif
#if EITHER(AUTO_POWER_CONTROL, POWER_OFF_WAIT_FOR_COOLDOWN)
//#define AUTO_POWER_E_TEMP 50 // (°C) 如果任何挤出机超过此温度,打开电源
//#define AUTO_POWER_CHAMBER_TEMP 30 // (°C) 如果舱内超过此温度,打开电源
//#define AUTO_POWER_COOLER_TEMP 26 // (°C) 如果风扇超过此温度,打开电源
#endif
#endif
//===========================================================================
//============================= 散热温度热敏 ============================
//===========================================================================
// @热敏设置
/**
* 可用热敏:
*
* SPI RTD/热电偶板-重要事项:阅读以下注释!
* -------
* -5 : MAX31865,带Pt100/Pt1000、2、3或4线(仅适用于传感器0-1)
* NOTE: 必须取消注释/设置以下MAX31865_*_OHMS_n定义。
* -3 : 带热电偶的MAX31855,-200°C至+700°C(仅适用于传感器0-1)
* -2 : 带热电偶的MAX6675,0°C至+700°C(仅适用于传感器0-1)
*
* NOTE: 确保使用SPI热电偶在引脚文件中为每个TEMP_SENSOR_n设置TEMP_n_CS_PIN。默认情况下,
*使用默认串行总线上的硬件SPI。如果还设置了TEMP_n_SCK_PIN和TEMP_n_MISO_PIN,
*软件SPI将用于这些端口。您可以在Configuration_adv.h文件。此时,不支持传感器的单独硬件SPI总线。
*
* 热敏类型(绝大多数用的都是100kΩ的,下边数值为1,不确定请问你的厂商)
* 型号你们对照着填,这些型号都没咋接触过
* -------
* -4 : AD8495 with Thermocouple
* -1 : AD595 with Thermocouple
*
* -------
* 1 : 100kΩ EPCOS - Best choice for EPCOS thermistors
* 331 : 100kΩ Same as #1, but 3.3V scaled for MEGA
* 332 : 100kΩ Same as #1, but 3.3V scaled for DUE
* 2 : 200kΩ ATC Semitec 204GT-2
* 202 : 200kΩ Copymaster 3D
* 3 : ???Ω Mendel-parts thermistor
* 4 : 10kΩ Generic Thermistor !! DO NOT use for a hotend - it gives bad resolution at high temp. !!
* 5 : 100kΩ ATC Semitec 104GT-2/104NT-4-R025H42G - Used in ParCan, J-Head, and E3D, SliceEngineering 300°C
* 501 : 100kΩ Zonestar - Tronxy X3A
* 502 : 100kΩ Zonestar - used by hot bed in Zonestar Průša P802M
* 503 : 100kΩ Zonestar (Z8XM2) Heated Bed thermistor
* 504 : 100kΩ Zonestar P802QR2 (Part# QWG-104F-B3950) Hotend Thermistor
* 505 : 100kΩ Zonestar P802QR2 (Part# QWG-104F-3950) Bed Thermistor
* 512 : 100kΩ RPW-Ultra hotend
* 6 : 100kΩ EPCOS - Not as accurate as table #1 (created using a fluke thermocouple)
* 7 : 100kΩ Honeywell 135-104LAG-J01
* 71 : 100kΩ Honeywell 135-104LAF-J01
* 8 : 100kΩ Vishay 0603 SMD NTCS0603E3104FXT
* 9 : 100kΩ GE Sensing AL03006-58.2K-97-G1
* 10 : 100kΩ RS PRO 198-961
* 11 : 100kΩ Keenovo AC silicone mats, most Wanhao i3 machines - beta 3950, 1%
* 12 : 100kΩ Vishay 0603 SMD NTCS0603E3104FXT (#8) - calibrated for Makibox hot bed
* 13 : 100kΩ Hisens up to 300°C - for "Simple ONE" & "All In ONE" hotend - beta 3950, 1%
* 15 : 100kΩ Calibrated for JGAurora A5 hotend
* 18 : 200kΩ ATC Semitec 204GT-2 Dagoma.Fr - MKS_Base_DKU001327
* 22 : 100kΩ GTM32 Pro vB - hotend - 4.7kΩ pullup to 3.3V and 220Ω to analog input
* 23 : 100kΩ GTM32 Pro vB - bed - 4.7kΩ pullup to 3.3v and 220Ω to analog input
* 30 : 100kΩ Kis3d Silicone heating mat 200W/300W with 6mm precision cast plate (EN AW 5083) NTC100K - beta 3950
* 60 : 100kΩ Maker's Tool Works Kapton Bed Thermistor - beta 3950
* 61 : 100kΩ Formbot/Vivedino 350°C Thermistor - beta 3950
* 66 : 4.7MΩ Dyze Design / Trianglelab T-D500 500°C High Temperature Thermistor
* 67 : 500kΩ SliceEngineering 450°C Thermistor
* 68 : PT100 amplifier board from Dyze Design
* 70 : 100kΩ bq Hephestos 2
* 75 : 100kΩ Generic Silicon Heat Pad with NTC100K MGB18-104F39050L32
* 2000 : 100kΩ Ultimachine Rambo TDK NTCG104LH104KT1 NTC100K motherboard Thermistor
*
*
* -------
* 51 : 100kΩ EPCOS (1kΩ pullup)
* 52 : 200kΩ ATC Semitec 204GT-2 (1kΩ pullup)
* 55 : 100kΩ ATC Semitec 104GT-2 - Used in ParCan & J-Head (1kΩ pullup)
*
*
* -------
* 99 : 100kΩ Found on some Wanhao i3 machines with a 10kΩ pull-up resistor
*
* Analog RTDs (Pt100/Pt1000)
* -------
* 110 : Pt100 with 1kΩ pullup (atypical)
* 147 : Pt100 with 4.7kΩ pullup
* 1010 : Pt1000 with 1kΩ pullup (atypical)
* 1022 : Pt1000 with 2.2kΩ pullup
* 1047 : Pt1000 with 4.7kΩ pullup (E3D)
* 20 : Pt100 with circuit in the Ultimainboard V2.x with mainboard ADC reference voltage = INA826 amplifier-board supply voltage.
* NOTE: (1) Must use an ADC input with no pullup. (2) Some INA826 amplifiers are unreliable at 3.3V so consider using sensor 147, 110, or 21.
* 21 : Pt100 with circuit in the Ultimainboard V2.x with 3.3v ADC reference voltage (STM32, LPC176x....) and 5V INA826 amplifier board supply.
* NOTE: ADC pins are not 5V tolerant. Not recommended because it's possible to damage the CPU by going over 500°C.
* 201 : Pt100 with circuit in Overlord, similar to Ultimainboard V2.x
*
* Custom/Dummy/Other Thermal Sensors
* ------
* 0 : not used
* 1000 : Custom - Specify parameters in Configuration_adv.h
*
* !!! 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.
*
*
*
*
*
* 热敏(很重要)
* 上边这些不用太在意,热敏的型号别填错就行,记得问你的厂家,100kΩ的值为1
* 其他型号没用过5555555555555555
* 需要用到哪个热敏就写哪个一般是TEMP_SENSOR_0为热端热敏
* TEMP_SENSOR_BOARD为热床热敏
*
*
*/
#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_5 0
#define TEMP_SENSOR_6 0
#define TEMP_SENSOR_7 0
#define TEMP_SENSOR_BED 1 //热床
#define TEMP_SENSOR_PROBE 0
#define TEMP_SENSOR_CHAMBER 0
#define TEMP_SENSOR_COOLER 0
#define TEMP_SENSOR_BOARD 0
#define TEMP_SENSOR_REDUNDANT 0
// 马琳提供了两个用于测试目的的虚拟传感器。在此处设置其恒温读数。
#define DUMMY_THERMISTOR_998_VALUE 25
#define DUMMY_THERMISTOR_999_VALUE 100
// 在TEMP_SENSOR_0/1上使用MAX31865传感器时的电阻值(-5)
#if TEMP_SENSOR_IS_MAX_TC(0)
#define MAX31865_SENSOR_OHMS_0 100 // (Ω) 通常为100或1000(PT100 或 PT1000)
#define MAX31865_CALIBRATION_OHMS_0 430 // (Ω) Adafruit PT100通常为430;Adafruit PT1000为4300
#endif
#if TEMP_SENSOR_IS_MAX_TC(1)
#define MAX31865_SENSOR_OHMS_1 100
#define MAX31865_CALIBRATION_OHMS_1 430
#endif
#if TEMP_SENSOR_IS_MAX_TC(2)
#define MAX31865_SENSOR_OHMS_2 100
#define MAX31865_CALIBRATION_OHMS_2 430
#endif
#if HAS_E_TEMP_SENSOR
#define TEMP_RESIDENCY_TIME 10 // (秒)在M109中等待热端“加热”的时间
#define TEMP_WINDOW 1 // (°C) “设定温度”计时器的温度窗口
#define TEMP_HYSTERESIS 3 // (°C) 温度接近度被认为“足够接近”目标的温度
#endif
#if TEMP_SENSOR_BED
#define TEMP_BED_RESIDENCY_TIME 10 // (秒)在M109中等待热床“加热”的时间
#define TEMP_BED_WINDOW 1 // (°C) “设定温度”计时器的温度窗口
#define TEMP_BED_HYSTERESIS 3 // (°C) 温度接近度被认为“足够接近”目标的温度
#endif
#if TEMP_SENSOR_CHAMBER
#define TEMP_CHAMBER_RESIDENCY_TIME 10 // (秒)在M191中等待仓室“加热”的时间
#define TEMP_CHAMBER_WINDOW 1 // (°C) “设定温度”计时器的温度窗口
#define TEMP_CHAMBER_HYSTERESIS 3 // (°C) 温度接近度被认为“足够接近”目标的温度
#endif
/**
* 冗余温度传感器(TEMP_SENSOR_REDUNDANT)
*
* 使用温度传感器作为另一个读数的冗余传感器。 选择一个未使用的温度传感器和另一个
*您希望它是冗余的传感器。 如果两个热敏电阻相差TEMP_SENSOR_REDUNDANT_MAX_DIFF(°C),
*打印将被中止。 无论选择哪个传感器,其正常功能都将被禁用
*床传感器(-1)将禁用床加热/监测。
*
* 用于选择目标用途:风扇、热头、热床、加热仓;E0、E1、E2、E3、E4、E5、E6、E7
*/
#if TEMP_SENSOR_REDUNDANT
#define TEMP_SENSOR_REDUNDANT_SOURCE E1 // 将提供冗余读数的传感器
#define TEMP_SENSOR_REDUNDANT_TARGET E0 // 将提供冗余读数的传感器
#define TEMP_SENSOR_REDUNDANT_MAX_DIFF 10 // (°C) 将触发打印中止的温差
#endif
// 低于此温度时,无法加热(很重要)
// 因为这可能代表着热敏脱离或其他硬件损坏,请设置停止阈值,一般五度就行
//HEATER是热敏,BED是热床
#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 HEATER_5_MINTEMP 5
#define HEATER_6_MINTEMP 5
#define HEATER_7_MINTEMP 5
#define BED_MINTEMP 5
#define CHAMBER_MINTEMP 5
// 高温保护()很重要
// 这些设置能避免葬身火海
//刚入坑的时候好多教程说这里是设定最高温度,这种解释其实是错的,这是设定打印机自动停止加热的温度
//请注意加热头或者加热块只能加热到停止温度减15度
//之前气死我了我要用到加热270度就设置的280度,然后机器只能开到265气死我了这个千万要注意
// HEATER是热敏,BED是热床
#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 HEATER_5_MAXTEMP 275
#define HEATER_6_MAXTEMP 275
#define HEATER_7_MAXTEMP 275
#define BED_MAXTEMP 95
#define CHAMBER_MAXTEMP 60
/**
* 过载温度:这一条就是上边所说的
*马琳为了防止温度微微上升就触发高温保护
*但是实现的原理却是降低最高实际设置温度来实现的
*这一条折磨我好久好久
*
*/
#define HOTEND_OVERSHOOT 15 // (°C) 禁止温度超过高温保护上限(机器会让最高打印温度减少的数值)(热端)
#define BED_OVERSHOOT 10 // (°C) 热床
#define COOLER_OVERSHOOT 2 // (°C) 风扇
//===========================================================================
//============================= PID 设置 ================================
//===========================================================================
// bang-bang加热模式请禁用这两个功能
//一般只更改DEFAULT_Kp ki kd三个数值
#define PIDTEMP // 启用PID调节 请参阅PID调节指南https://reprap.org/wiki/PID_Tuning(b站也有的是攻略555)
//#define MPCTEMP // 马琳的实验功能我也不知道是干嘛的55555官网也没找到这个
#define BANG_MAX 255 // 当处于bang-bang模式时,限制喷嘴的电流; 255=全电流
#define PID_MAX BANG_MAX // 当PID激活时,限制喷嘴的电流(参见下面的PID_FUNCTIONAL_RANGE); 255=全电流
#define PID_K1 0.95 // 任何PID回路内的平滑系数
#if ENABLED(PIDTEMP)
//#define PID_DEBUG // 将PID调试数据打印到串行端口。 使用“M303 D”切换激活。
//#define PID_PARAMS_PER_HOTEND // 对每个挤出机使用单独的PID参数(适用于不匹配的挤出机)
// 设置/获取G代码:M301 E[挤出机编号,0-2],不知道这一行去哪了,马琳没删干净把
#if ENABLED(PID_PARAMS_PER_HOTEND)
#define DEFAULT_Kp_LIST { 22.20, 22.20 }
#define DEFAULT_Ki_LIST { 1.08, 1.08 }
#define DEFAULT_Kd_LIST { 114.00, 114.00 }
#else
#define DEFAULT_Kp 22.20 //改这里
#define DEFAULT_Ki 1.08 //改这里
#define DEFAULT_Kd 114.00 //改这里
#endif
#endif
/**
* 物理(物理性质)模型(mpc算法)预测控制(我没用过555)
*
* 使用热端的物理模型来控制温度。 正确配置时
*提供了比PID更好的响应性和稳定性,也消除了需要
*用于PID_EXTRUSION_SCALING和PID_FAN_SCALING。 使用M306 T自动调整模型。
// @mpc设置
*/
#if ENABLED(MPCTEMP)
//#define MPC_EDIT_MENU // 将MPC编辑添加到“高级设置”菜单。 (约1300字节的闪存)
//#define MPC_AUTOTUNE_MENU // 将MPC自动调谐添加到“高级设置”菜单。 (约350字节的闪存)
#define MPC_MAX BANG_MAX // (0.. 255)MPC激活时流向喷嘴的电流。
#define MPC_HEATER_POWER { 40.0f } // (W) 加热筒功率。
#define MPC_INCLUDE_FAN // 风扇的物理模型(马琳这里写的是Model the fan speed?)可能这个真的不常用把
// Measured physical constants from M306
#define MPC_BLOCK_HEAT_CAPACITY { 16.7f } // (J/K) 加热块热容。
#define MPC_SENSOR_RESPONSIVENESS { 0.22f } // (K/s per ∆K) 来自加热块的传感器温度变化率。
#define MPC_AMBIENT_XFER_COEFF { 0.068f } // (W/K) 风扇关闭时,从热块到室内空气的传热系数。
#if ENABLED(MPC_INCLUDE_FAN)
#define MPC_AMBIENT_XFER_COEFF_FAN255 { 0.097f } // (W/K) 风扇全开时,从热块到室内空气的传热系数。
#endif
// 对于一个风扇和多个酒店,MPC需要知道如何应用风扇冷却效果。
#if ENABLED(MPC_INCLUDE_FAN)
//#define MPC_FAN_0_ALL_HOTENDS
//#define MPC_FAN_0_ACTIVE_HOTEND
#endif
#define FILAMENT_HEAT_CAPACITY_PERMM { 5.6e-3f } // 0.0056 J/K/mm for 1.75mm PLA (0.0149 J/K/mm for 2.85mm PLA).
//#define FILAMENT_HEAT_CAPACITY_PERMM { 3.6e-3f } // 0.0036 J/K/mm for 1.75mm PETG (0.0094 J/K/mm for 2.85mm PETG).
// Advanced options
#define MPC_SMOOTHING_FACTOR 0.5f // (0.0...1.0) 有噪声的温度传感器可能需要较低的稳定值
#define MPC_MIN_AMBIENT_CHANGE 1.0f // (K/s) 修正模型误差时,模型环境温度变化率
#define MPC_STEADYSTATE 0.5f // (K/s) 执行稳态逻辑的温度变化率
#define MPC_TUNING_POS { X_CENTER, Y_CENTER, 1.0f } // (mm) M306自动调节位置,理想情况下床中心位于第一层高度
#define MPC_TUNING_END_Z 10.0f // (mm) M306自动调整最终Z位置
#endif
//===========================================================================
//====================== PID>床层温度控制======================
//===========================================================================
/**
* PID热床加热
*
* 如果启用此选项,请在下面设置PID常量。
*如果禁用此选项,将使用bang-bang,BED_LIMIT_SWITCHING将启用滞后。
*
* PID频率将与挤出机PWM相同。
*如果PID_dT是默认值,并且硬件/配置正确,即7.689Hz,
*这对于将方波驱动到电阻负载中是很好的
*冲击FET加热。 这在Fotek SSR-10DA固态继电器上也能很好地工作到250W
*加热器。 如果您的配置与此显著不同,并且您不了解
*所涉及的问题,在其他人验证您的硬件工作之前,不要使用床PID。
// @热床pid
*/
//#define PIDTEMPBED
//#define BED_LIMIT_SWITCHING
/**
* 最大床功率
* 适用于所有形式的床控制
* 当设置为低于255的任何值时,启用床的PWM形式,其作用类似于分频器
* 所以不要使用它,除非你对床上的PWM没有问题
*/
#define MAX_BED_POWER 255 // 255=全电流
#if ENABLED(PIDTEMPBED)
//#define MIN_BED_POWER 0
//#define PID_BED_DEBUG // 将床PID调试数据打印到串行端口。
// 120V 250W硅加热器,4mm硼硅酸盐(MendelMax 1.5+)
// 根据FOPDT模型,kp=.39 Tp=405 Tdead=66,Tc设置为79.2,侵蚀因子为.15(vs.1,1,10)
#define DEFAULT_bedKp 10.00
#define DEFAULT_bedKi .023
#define DEFAULT_bedKd 305.4
// 找到自己的:“M303 E-1 C8 S90”在床上以90度C运行自动调谐8个循环。
#endif // PIDTEMPBED
//===========================================================================
//==================== PID > 舱内温度控制 ====================
//===========================================================================
/**
* 如果启用此选项,请在下面设置PID常量。如果禁用此选项,将使用bang-bang,CHAMBER_LIMIT_SWITCHING将启用滞后。
*
* PID频率将与挤出机PWM相同。
*如果PID_dT是默认值,并且硬件/配置正确,即7.689Hz,
*这对于将方波驱动到电阻负载中是很好的
*冲击FET加热。 这在Fotek SSR-10DA固态继电器上也能很好地工作到200W
*加热器。 如果您的配置与此显著不同,并且您不了解
*在其他人验证您的硬件工作之前,不要使用腔室PID。
// @仓pid
*/
//#define PIDTEMPCHAMBER
//#define CHAMBER_LIMIT_SWITCHING
/**
* 最大加热仓功绿
* 适用于所有形式的腔室控制(PID、砰砰和带有滞后的砰砰)。
*当设置为低于255的任何值时,可为腔室加热器启用一种PWM形式,其作用类似于分频器
*所以不要使用它,除非你对加热器的PWM没有问题。 (参见启用PIDTEMPCHAMBER的注释)
*/
#define MAX_CHAMBER_POWER 255 //255=全电流
#if ENABLED(PIDTEMPCHAMBER)
#define MIN_CHAMBER_POWER 0
//#define PID_CHAMBER_DEBUG // 将腔室PID调试数据打印到串行端口。
// Lasko“MyHeat Personal Heater”(200w)采用Fotek SSR-10DA改装,仅控制加热元件并放置在小型Creality打印机内
//
#define DEFAULT_chamberKp 37.04
#define DEFAULT_chamberKi 1.40
#define DEFAULT_chamberKd 655.17
// M309 P37.04 I1.04 D655.17
// 找到你自己的:“M303 E-2 C8 S50”在50度C的温度下运行自动调谐8个循环。
#endif // PIDTEMPCHAMBER
#if ANY(PIDTEMP, PIDTEMPBED, PIDTEMPCHAMBER)
//#define PID_OPENLOOP // 将PID置于开环。 M104/M140将输出功率从0设置为PID_MAX
//#define SLOW_PWM_HEATERS // PWM频率非常低(约0.125Hz=8s),最小状态时间约1秒,适用于继电器驱动的加热器
#define PID_FUNCTIONAL_RANGE 10 // 如果目标温度与实际温度之间的温差
// 大于PID_FUNCTIONAL_RANGE,则PID将关闭,加热器将设置为最小/最大值。
//#define PID_EDIT_MENU // 将PID编辑添加到“高级设置”菜单。 (约700字节的闪存)
//#define PID_AUTOTUNE_MENU // 将PID自动调谐添加到“高级设置”菜单。 (~250字节闪存
#endif
// @安全性措施(雾)
/**
* 如果温度低于设定值,则防止挤出(很重要)
* 在热端温度过低时挤出会导致损坏(不过打印机应该不会咬人)
*一般设置为170就行,不要设置的太高170——180就行惹
* *** 马琳官方强烈建议开启此功能 ***
*/
#define PREVENT_COLD_EXTRUSION
#define EXTRUDE_MINTEMP 170
/**
* 单次指令挤出距离的最大值
* 注:对于Bowden挤出机,使其足够大以允许装载/卸载
*/
#define PREVENT_LENGTHY_EXTRUDE
#define EXTRUDE_MAXLENGTH 200
//===========================================================================
//======================== 热失控保护 =======================
//===========================================================================
/**
* 没事别关这些,谨防打印机喷火事件
* 热保护为打印机提供额外的保护,使其免受损坏和失火。 马林鱼始终包括安全的最低和最高温度范围
* 防止热敏电阻导线断裂或断开问题:如果热敏电阻脱落,它将报告更低的温度
* 室内空气的温度,固件将保持加热器打开。
*
*如果出现“热失控”或“加热失败”错误
*可以在Configuration_adv.h中调整详细信息
*/
#define THERMAL_PROTECTION_HOTENDS // 挤出机热保护
#define THERMAL_PROTECTION_BED // 热床热保护
#define THERMAL_PROTECTION_CHAMBER // 仓热保护
#define THERMAL_PROTECTION_COOLER // 风扇热保护
//===========================================================================
//============================= 机械设置 =========================
//===========================================================================
// @打印机类型
// 为CoreXY、CoreXZ或CoreYZ运动方式启用以下选项之一(很重要)非联动结构不设置
#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
//#define MARKFORGED_YX
// 无限z开启
//#define BELTPRINTER
// 极坐标打印机开启(妈呀真的听说过没见过好奇宝宝5555555555555555555555555)
//#define POLARGRAPH
#if ENABLED(POLARGRAPH)
#define POLARGRAPH_MAX_BELT_LEN 1035.0
#define DEFAULT_SEGMENTS_PER_SECOND 5
#endif
// @三角洲
// 启用三角洲(真的好想diy一台555)
//#define DELTA
#if ENABLED(DELTA)
//
// 从多条直线生成增量曲线(线性插值)这是在可见角(没有足够的线段)之间的权衡以及处理器过载
//
#define DEFAULT_SEGMENTS_PER_SECOND 200
// 复位后,向下移动到XY移动不受限制的高度
//#define DELTA_HOME_TO_SAFE_ZONE
// 三角洲校准菜单
// 将三点校准添加到MarlinUI菜单
// http://minow.blogspot.com/index.html#4918805519571907051
//#define DELTA_CALIBRATION_MENU
// G33 Delta自动校准。启用EEPROM_SETTINGS以存储结果。
//#define DELTA_AUTO_CALIBRATION
#if ENABLED(DELTA_AUTO_CALIBRATION)
// 探测点数量
#define DELTA_CALIBRATION_DEFAULT_POINTS 4
#endif
#if EITHER(DELTA_AUTO_CALIBRATION, DELTA_CALIBRATION_MENU)
// 纸张测试探测的步长
#define PROBE_MANUALLY_STEP 0.05 // (mm)
#endif
// 打印表面直径/2减去无法到达的空间(避免与垂直塔碰撞)。
#define DELTA_PRINTABLE_RADIUS 140.0 // (mm)
// 最大可达面积
#define DELTA_MAX_RADIUS 140.0 // (mm)
// 对角推杆孔的中心距。
#define DELTA_DIAGONAL_ROD 250.0 // (mm)
// 床和喷嘴Z原点之间的距离
#define DELTA_HEIGHT 250.00 // (mm) 从G33自动校准中获取此值
#define DELTA_ENDSTOP_ADJ { 0.0, 0.0, 0.0 } // 从G33自动校准中获取此值
// 当效应器居中时,对角推杆桥接的水平距离。
#define DELTA_RADIUS 124.0 // (mm) 从G33自动校准中获取此值
// 单个塔的微调
//X和Y塔/旋转XYZ的塔角修正,使Z塔角=0
//从打印机上方看,以逆时针角度测量
#define DELTA_TOWER_ANGLE_TRIM { 0.0, 0.0, 0.0 } // 从G33自动校准中获取此值
// 三角形半径和斜杆调整(mm)
//#define DELTA_RADIUS_TRIM_TOWER { 0.0, 0.0, 0.0 }
//#define DELTA_DIAGONAL_ROD_TRIM_TOWER { 0.0, 0.0, 0.0 }
#endif
// @scara结构
/**
* MORGAN_SCARA由南非QHARLEY于2012-2013年开发。
*2014年6月,JCERNY实施并略微修改。
*
* 大部分打印阶梯是由Tyler Williams设计的开源设计。参见:
* https://www.thingiverse.com/thing:2487048
* https://www.thingiverse.com/thing:1241491
*/
//#define MORGAN_SCARA
//#define MP_SCARA
#if EITHER(MORGAN_SCARA, MP_SCARA)
// 如果运动不稳定,尝试降低该值
#define DEFAULT_SEGMENTS_PER_SECOND 200
// 内外支撑臂的长度。精确测量臂长。
#define SCARA_LINKAGE_1 150 // (mm)
#define SCARA_LINKAGE_2 150 // (mm)
// SCARA塔偏移(塔相对于床零位置的位置)
// 这需要合理准确,因为它定义了SCARA空间中的打印床位置
#define SCARA_OFFSET_X 100 // (mm)
#define SCARA_OFFSET_Y -56 // (mm)
#if ENABLED(MORGAN_SCARA)
//#define DEBUG_SCARA_KINEMATICS
#define SCARA_FEEDRATE_SCALING // 将XY进给速度从mm/s转换为度/秒
// 手臂无法到达的中心周围的半径
#define MIDDLE_DEAD_ZONE_R 0 // (mm)
#define THETA_HOMING_OFFSET 0 // 根据校准指南和M360/M114计算 See http://reprap.harleystudio.co.za/?page_id=1073
#define PSI_HOMING_OFFSET 0 // 根据校准指南和M360/M114计算 See http://reprap.harleystudio.co.za/?page_id=1073
#elif ENABLED(MP_SCARA)
#define SCARA_OFFSET_THETA1 12 // 度
#define SCARA_OFFSET_THETA2 131 // 度
#endif
#endif
// @tpara结构
// 启用TPARA运动学并配置如下
//#define AXEL_TPARA
#if ENABLED(AXEL_TPARA)
#define DEBUG_TPARA_KINEMATICS
#define DEFAULT_SEGMENTS_PER_SECOND 200
// 内外支撑臂的长度。精确测量臂长。
#define TPARA_LINKAGE_1 120 // (mm)
#define TPARA_LINKAGE_2 120 // (mm)
// SCARA塔偏移(塔相对于床零位置的位置)
// 这需要合理准确,因为它定义了SCARA空间中的打印床位置。
#define TPARA_OFFSET_X 0 // (mm)
#define TPARA_OFFSET_Y 0 // (mm)
#define TPARA_OFFSET_Z 0 // (mm)
#define SCARA_FEEDRATE_SCALING // 动态将XY进给速度从mm/s转换为度/秒
// 手臂无法到达的中心周围的半径
#define MIDDLE_DEAD_ZONE_R 0 // (mm)
// 根据校准指南和M360/M114计算 See http://reprap.harleystudio.co.za/?page_id=1073
#define THETA_HOMING_OFFSET 0
#define PSI_HOMING_OFFSET 0
#endif
// @铰接机器人
// 关节直接映射到没有运动学的轴。
//#define ARTICULATED_ROBOT_ARM
// 对于具有平行水平轴(X,I)的热线切割机,其中两根电线的高度
// 端部由平行轴(Y、J)控制。关节直接映射到轴(无运动学)
//#define FOAMCUTTER_XYUV
//===========================================================================
//============================== 限位开关设置 ===========================
//===========================================================================
// @限位
// 选择开启哪个限位(很重要)
//
//
#define USE_XMIN_PLUG
#define USE_YMIN_PLUG
#define USE_ZMIN_PLUG
//#define USE_IMIN_PLUG
//#define USE_JMIN_PLUG
//#define USE_KMIN_PLUG
//#define USE_UMIN_PLUG
//#define USE_VMIN_PLUG
//#define USE_WMIN_PLUG
//#define USE_XMAX_PLUG
//#define USE_YMAX_PLUG
#define USE_ZMAX_PLUG
//#define USE_IMAX_PLUG
//#define USE_JMAX_PLUG
//#define USE_KMAX_PLUG
//#define USE_UMAX_PLUG
//#define USE_VMAX_PLUG
//#define USE_WMAX_PLUG
// 开启上拉电阻(低电平)
#define ENDSTOPPULLUPS
#if DISABLED(ENDSTOPPULLUPS)
// 禁用ENDSTOPPULPS以单独设置上拉
//#define ENDSTOPPULLUP_XMIN
//#define ENDSTOPPULLUP_YMIN
//#define ENDSTOPPULLUP_ZMIN
//#define ENDSTOPPULLUP_IMIN
//#define ENDSTOPPULLUP_JMIN
//#define ENDSTOPPULLUP_KMIN
//#define ENDSTOPPULLUP_UMIN
//#define ENDSTOPPULLUP_VMIN
//#define ENDSTOPPULLUP_WMIN
//#define ENDSTOPPULLUP_XMAX
//#define ENDSTOPPULLUP_YMAX
//#define ENDSTOPPULLUP_ZMAX
//#define ENDSTOPPULLUP_IMAX
//#define ENDSTOPPULLUP_JMAX
//#define ENDSTOPPULLUP_KMAX
//#define ENDSTOPPULLUP_UMAX
//#define ENDSTOPPULLUP_VMAX
//#define ENDSTOPPULLUP_WMAX
//#define ENDSTOPPULLUP_ZMIN_PROBE
#endif
// 开启下拉电阻(高电平)
//#define ENDSTOPPULLDOWNS
#if DISABLED(ENDSTOPPULLDOWNS)
// 禁用ENDSTOPPULPS以单独设置下拉
//#define ENDSTOPPULLDOWN_XMIN
//#define ENDSTOPPULLDOWN_YMIN
//#define ENDSTOPPULLDOWN_ZMIN
//#define ENDSTOPPULLDOWN_IMIN
//#define ENDSTOPPULLDOWN_JMIN
//#define ENDSTOPPULLDOWN_KMIN
//#define ENDSTOPPULLDOWN_UMIN
//#define ENDSTOPPULLDOWN_VMIN
//#define ENDSTOPPULLDOWN_WMIN
//#define ENDSTOPPULLDOWN_XMAX
//#define ENDSTOPPULLDOWN_YMAX
//#define ENDSTOPPULLDOWN_ZMAX
//#define ENDSTOPPULLDOWN_IMAX
//#define ENDSTOPPULLDOWN_JMAX
//#define ENDSTOPPULLDOWN_KMAX
//#define ENDSTOPPULLDOWN_UMAX
//#define ENDSTOPPULLDOWN_VMAX
//#define ENDSTOPPULLDOWN_WMAX
//#define ENDSTOPPULLDOWN_ZMIN_PROBE
#endif
// 限位反转(磁场反转!九十九万九千九百九十九匹力量!这句话没啥用)(很重要)如果限位失效请更改此项,哪个失效改哪个,把false 改为true,反之亦然
//如果你启用了无限限位归零则为false
#define X_MIN_ENDSTOP_INVERTING false // 失效把false 改为true,反之亦然
#define Y_MIN_ENDSTOP_INVERTING false // 失效把false 改为true,反之亦然
#define Z_MIN_ENDSTOP_INVERTING true // 失效把false 改为true,反之亦然
#define I_MIN_ENDSTOP_INVERTING false // 失效把false 改为true,反之亦然
#define J_MIN_ENDSTOP_INVERTING false // 失效把false 改为true,反之亦然
#define K_MIN_ENDSTOP_INVERTING false // 失效把false 改为true,反之亦然
#define U_MIN_ENDSTOP_INVERTING false // 失效把false 改为true,反之亦然
#define V_MIN_ENDSTOP_INVERTING false // 失效把false 改为true,反之亦然
#define W_MIN_ENDSTOP_INVERTING false // 失效把false 改为true,反之亦然
#define X_MAX_ENDSTOP_INVERTING false // 失效把false 改为true,反之亦然
#define Y_MAX_ENDSTOP_INVERTING false // 失效把false 改为true,反之亦然
#define Z_MAX_ENDSTOP_INVERTING true // 失效把false 改为true,反之亦然
#define I_MAX_ENDSTOP_INVERTING false // 失效把false 改为true,反之亦然
#define J_MAX_ENDSTOP_INVERTING false // 失效把false 改为true,反之亦然
#define K_MAX_ENDSTOP_INVERTING false // 失效把false 改为true,反之亦然
#define U_MAX_ENDSTOP_INVERTING false // 失效把false 改为true,反之亦然
#define V_MAX_ENDSTOP_INVERTING false // 失效把false 改为true,反之亦然
#define W_MAX_ENDSTOP_INVERTING false // 失效把false 改为true,反之亦然
#define Z_MIN_PROBE_ENDSTOP_INVERTING false // 失效把false 改为true,反之亦然
// 如果所有启用的端止引脚都支持中断,请启用此功能。这将消除轮询中断引脚的需要
//从而节省许多 CPU 周期
//#define ENDSTOP_INTERRUPTS_FEATURE
/**
* 限位噪波阈值(这个是啥不知道求解答)
*
* 如果由于噪声导致探头或端部停止错误触发,则启用。
*
*-较高的值可能会影响某些床探头的重复性或精度。
*-为了修复噪声,在开关上安装一个100nF陶瓷电容器。
*-安装在PCB上的普通微动开关不需要此功能
*基于已经具有100nF电容器的Makerbot设计。
*
* :[2,3,4,5,6,7]
*/
//#define ENDSTOP_NOISE_THRESHOLD 2
// 在归位移动过程中,检查是否卡住或断开
//#define DETECT_BROKEN_ENDSTOP
//=============================================================================
//============================== 移动设置 ============================
//=============================================================================
//
/**
* 如果你是多挤出机,并且每个挤出机不一样则开启此项
*/
//#define DISTINCT_E_FACTORS
/**
* 脉冲值(步进值)(很重要)先装好机器,之后调机的时候在改这些设置
* 每单位默认轴步数(线性=步数/mm,旋转=步数/°)
* 挤出机步进值bmg泰坦一般为409左右,非减速挤出机每家不一样问厂家
* X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]]
*/
#define DEFAULT_AXIS_STEPS_PER_UNIT { 80, 80, 400, 388.2 }
/**
* 默认最大速度(很重要)按需修改
* 用M203复写
* X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]]
*/
#define DEFAULT_MAX_FEEDRATE { 300, 300, 5, 25 }
//#define LIMITED_MAX_FR_EDITING // 通过M203或LCD将编辑限制为DEFAULT_MAX_FEEDRATE*2
#if ENABLED(LIMITED_MAX_FR_EDITING)
#define MAX_FEEDRATE_EDIT_VALUES { 600, 600, 10, 50 } //
#endif
/**
* 最大加速度(很重要)按需修改
* 用M201复写
* X, Y, Z [, I [, J [, K...]]], E0 [, E1[, E2...]]
*/
#define DEFAULT_MAX_ACCELERATION { 8000, 8000, 100, 10000 }
//#define LIMITED_MAX_ACCEL_EDITING // 通过M201或LCD将编辑限制为DEFAULT_MAX_ACCELERATION*2
#if ENABLED(LIMITED_MAX_ACCEL_EDITING)
#define MAX_ACCEL_EDIT_VALUES { 6000, 6000, 200, 20000 } //
#endif
/**
* 默认加速度(很重要)按需修改 (linear=mm/(s^2), rotational=°/(s^2))
* 用M204复写
*不要把这些设置得太高。较大的加速度值会导致振动过大、步进器噪音大,甚至跳过步进。较低的加速度可产生更平稳的运动,消除振动,并有助于减少机械部件的磨损
*/
#define DEFAULT_ACCELERATION 3000 // x y z e加速度
#define DEFAULT_RETRACT_ACCELERATION 5000 // 回抽加速度
#define DEFAULT_TRAVEL_ACCELERATION 3000 // 空驶加速度
/**
* 默认抖动极限(mm/s)
* 用M205 X Y Z . . . E 复写
*
* “Jerk”指定需要加速的最小速度变化
* 改变速度和方向时,如果差值小于设定值,它可能在瞬间发生
* Jerk值:在加速的过程中,可拆分的最小加速距离。当加速距离小于该距离时,加速度值将不会被调整,延续之前的数值
* 加速和抖动都会影响打印质量。如果抖动太低,挤出机会在小段和角落上停留太久,可能会留下斑点。如果抖动设置得太高,方向变化将施加太大的扭矩
*/
//#define CLASSIC_JERK
#if ENABLED(CLASSIC_JERK)
#define DEFAULT_XJERK 10.0
#define DEFAULT_YJERK 10.0
#define DEFAULT_ZJERK 0.3
//#define DEFAULT_IJERK 0.3
//#define DEFAULT_JJERK 0.3
//#define DEFAULT_KJERK 0.3
//#define DEFAULT_UJERK 0.3
//#define DEFAULT_VJERK 0.3
//#define DEFAULT_WJERK 0.3
//#define TRAVEL_EXTRA_XYJERK 0.0 // 所有行程移动的附加加速余量
//#define LIMITED_JERK_EDITING // 通过M205或LCD将编辑限制为DEFAULT_aJERK*2
#if ENABLED(LIMITED_JERK_EDITING)
#define MAX_JERK_EDIT_VALUES { 20, 20, 0.6, 10 } //
#endif
#endif
#define DEFAULT_EJERK 5.0 // 可被线性提前使用
/**
* 连接偏差(进阶)
*结点偏差决定了转弯速度。值越小,转弯速度越慢
* 下面连接用公式
* https://reprap.org/forum/read.php?1,739819
* https://blog.kyneticcnc.com/2018/10/computing-junction-deviation-for-marlin.html
*/
#if DISABLED(CLASSIC_JERK)
#define JUNCTION_DEVIATION_MM 0.013 // (mm) 与实际边缘的距离
#define JD_HANDLE_SMALL_SEGMENTS // 使用曲率估计而不仅仅是接合角
// 对于具有大接合角(>135°)的小段(<1mm)
#endif
/**
* 曲线加速度
*
* 此选项通过安装Bézier消除打印过程中的振动
* 曲线移动加速度,产生更平滑的方向变化
*
* See https://github.com/synthetos/TinyG/wiki/Jerk-Controlled-Motion-Explained
*/
//#define S_CURVE_ACCELERATION
//===========================================================================
//============================= Z 探头选项 =============================
//===========================================================================
// @探头
//
// See https://marlinfw.org/docs/configuration/probes.html
//
/**
* 启用该项,是为了探头连接到Z最小限位开关的引脚
* 探头替代Z-Min的限位开关,并用于Z轴回零
*/
#define Z_MIN_PROBE_USES_Z_MIN_ENDSTOP_PIN
// 强制使用探针进行Z轴归位
//#define USE_PROBE_FOR_Z_HOMING
/**
* 如果已将探头连接到 Z MIN 端挡引脚以外的引脚,请使用此选项
* 启用此选项后,默认情况下,Marlin 将使用主板引脚文件中指定的引脚(通常是 X 或 Z MAX 端挡引脚,因为这些引脚最有可能未使用)
* 如果需要使用其他引脚,请在Z_MIN_PROBE_PIN中定义自定义引脚编号
*/
//#define Z_MIN_PROBE_PIN 32 // 引脚32为默认值
/**
* 探针类型
*
* 点状探针、舵机探针
* 你得激活其中任意一个才能启动自动调平
*/
/**
* 启动人肉自动调平(没有探针)
* 重复使用G29,通过移动命令调整每个点的Z高度
*/
//#define PROBE_MANUALLY
/**
* 启用固定安装的探头
* 此选项适用于任何固定到位的探头,无需部署或收起。为电感式探头或使用喷嘴本身作为探头时指定此类型。
*/
//#define FIX_MOUNTED_PROBE
/**
* 喷嘴探头
* 使用喷嘴作为探头,如同使用导电材料(这个没接触过求科普)
*/
//#define NOZZLE_AS_PROBE
/**
* Z轴舵机探针, 如在一个旋转臂上安装一个限位开关
*/
//#define Z_PROBE_SERVO_NR 0 // 默认为SERVO 0连接器。
//#define Z_SERVO_ANGLES { 70, 0 } // Z伺服展开和收起角度
/**
* 使用BLTouch霍尔传感器模拟伺服。
*/
//#define BLTOUCH
/**
* MDD的MagLev V4探针(磁悬浮?这是啥求科普)
*
* 该探头通过为内置电磁铁供电来展开和激活。
*/
//#define MAGLEV4
#if ENABLED(MAGLEV4)
//#define MAGLEV_TRIGGER_PIN 11 // 设置为连接的数字输出
#define MAGLEV_TRIGGER_DELAY 15 // 更改此设置可能会导致线圈过热(3d打印机烧人事件!来力!)
#endif
/**
* 触摸式小米探头(没接触过)
*找到了个diy方案https://www.thingiverse.com/thing:3659699
* 通过将X轴移动到床边缘的磁铁上,可展开并激活该探头
* 默认情况下,假设磁铁位于左侧,并由支架激活。如果磁铁是在右侧,启用TOUCH_MI_DEPLOY_XPOS并将其设置为部署位置
*
* 还需要: BABYSTEPPING, BABYSTEP_ZPROBE_OFFSET, Z_SAFE_HOMING,
* and a minimum Z_HOMING_HEIGHT of 10.
*/
//#define TOUCH_MI_PROBE
#if ENABLED(TOUCH_MI_PROBE)
#define TOUCH_MI_RETRACT_Z 0.5 // 探头缩回的高度
//#define TOUCH_MI_DEPLOY_XPOS (X_MAX_BED + 2) // 磁铁在右边
//#define TOUCH_MI_MANUAL_DEPLOY // 在lcd菜单中打开手动开启支架选项
#endif
// 使用电磁阀销(SOL1_pin)展开和存放的探针
//#define SOLENOID_PROBE
// 雪橇探针
/**
*
* 这种类型的探头安装在位于X轴远端的可拆卸“雪橇”上
* 在探测之前,X 滑块移动到远端并拿起雪橇
* 探测完成后,它会将雪橇放下
* 指定 X 轴拾取雪橇时必须行进的额外距离
* 0 应该没问题,但如果需要,可以进一步曾家
*/
//#define Z_PROBE_SLED
//#define SLED_DOCKING_OFFSET 5 // X轴必须移动以拾取滑块的额外距离 0应该够了,但如果您愿意,可以将其推得更远
// 齿轮齿条式探头(木有见过求科普)
/**
*
* 通过移动X轴部署的探头(例如,由Marty Rice设计的Wilson II的齿轮齿条式探头。
*
*/
//#define RACK_AND_PINION_PROBE
#if ENABLED(RACK_AND_PINION_PROBE)
#define Z_PROBE_DEPLOY_X X_MIN_POS
#define Z_PROBE_RETRACT_X X_MAX_POS
#endif
/**
* 磁性安装探头
* 用于Euclid、Klicky、Klckender等探头
*/
//#define MAG_MOUNTED_PROBE
#if ENABLED(MAG_MOUNTED_PROBE)
#define PROBE_DEPLOY_FEEDRATE (133*60) // (mm/min) 探头展开速度
#define PROBE_STOW_FEEDRATE (133*60) // (mm/min) 探头收起速度
#define MAG_MOUNTED_DEPLOY_1 { PROBE_DEPLOY_FEEDRATE, { 245, 114, 30 } } // 移动到侧面对接并连接探头
#define MAG_MOUNTED_DEPLOY_2 { PROBE_DEPLOY_FEEDRATE, { 210, 114, 30 } } // 将探头移出底座
#define MAG_MOUNTED_DEPLOY_3 { PROBE_DEPLOY_FEEDRATE, { 0, 0, 0 } } // 如果需要,额外移动
#define MAG_MOUNTED_DEPLOY_4 { PROBE_DEPLOY_FEEDRATE, { 0, 0, 0 } } // 如果需要,额外移动
#define MAG_MOUNTED_DEPLOY_5 { PROBE_DEPLOY_FEEDRATE, { 0, 0, 0 } } // 如果需要,额外移动
#define MAG_MOUNTED_STOW_1 { PROBE_STOW_FEEDRATE, { 245, 114, 20 } } // 移动到底座(dock)
#define MAG_MOUNTED_STOW_2 { PROBE_STOW_FEEDRATE, { 245, 114, 0 } } // 将探头放在拆卸器旁边
#define MAG_MOUNTED_STOW_3 { PROBE_STOW_FEEDRATE, { 230, 114, 0 } } // 侧移以移除探头
#define MAG_MOUNTED_STOW_4 { PROBE_STOW_FEEDRATE, { 210, 114, 20 } } // 侧移以移除探头
#define MAG_MOUNTED_STOW_5 { PROBE_STOW_FEEDRATE, { 0, 0, 0 } } // 如果需要,额外移动
#endif
// 双重智能效果器?(马琳告诉我这是三角洲的我真的不知道这是啥,这个链接也打不开555) - https://bit.ly/2ul5U7J
// 定义引脚后,可以使用M672设置/重置探头灵敏度。
//#define DUET_SMART_EFFECTOR
#if ENABLED(DUET_SMART_EFFECTOR)
#define SMART_EFFECTOR_MOD_PIN -1 // 将GPIO引脚连接到Smart Effector MOD引脚
#endif
/**
* 使用StallGuard2用喷嘴探测床。
* 需要支持stallGuard的Trinamic步进驱动器。
* 小心:这可能会损坏带Z导螺杆的机器。
* 设置此功能时请格外小心。
*/
//#define SENSORLESS_PROBING
/**
* 在许多Kossel三角洲打印机上看到的Allen key可伸缩z探头(???这又是啥探头) - https://reprap.org/wiki/Kossel#Automatic_bed_leveling_probe
* 通过触摸z轴皮带展开。通过向下推动探头缩回(挺抽象的)
*/
//#define Z_PROBE_ALLEN_KEY
#if ENABLED(Z_PROBE_ALLEN_KEY)
// 用于在G29上展开和缩回弹簧加载的触摸探针的2或3组坐标
// 如果未定义伺服驱动的触摸探针。根据打印机/探头的情况取消注释。
#define Z_PROBE_ALLEN_KEY_DEPLOY_1 { 30.0, DELTA_PRINTABLE_RADIUS, 100.0 }
#define Z_PROBE_ALLEN_KEY_DEPLOY_1_FEEDRATE XY_PROBE_FEEDRATE
#define Z_PROBE_ALLEN_KEY_DEPLOY_2 { 0.0, DELTA_PRINTABLE_RADIUS, 100.0 }
#define Z_PROBE_ALLEN_KEY_DEPLOY_2_FEEDRATE (XY_PROBE_FEEDRATE)/10
#define Z_PROBE_ALLEN_KEY_DEPLOY_3 { 0.0, (DELTA_PRINTABLE_RADIUS) * 0.75, 100.0 }
#define Z_PROBE_ALLEN_KEY_DEPLOY_3_FEEDRATE XY_PROBE_FEEDRATE
#define Z_PROBE_ALLEN_KEY_STOW_1 { -64.0, 56.0, 23.0 } // 将探头移动到位
#define Z_PROBE_ALLEN_KEY_STOW_1_FEEDRATE XY_PROBE_FEEDRATE
#define Z_PROBE_ALLEN_KEY_STOW_2 { -64.0, 56.0, 3.0 } // 向下推?
#define Z_PROBE_ALLEN_KEY_STOW_2_FEEDRATE (XY_PROBE_FEEDRATE)/10
#define Z_PROBE_ALLEN_KEY_STOW_3 { -64.0, 56.0, 50.0 } // 向上移动以清洁?(这到底是个啥探针求科普)
#define Z_PROBE_ALLEN_KEY_STOW_3_FEEDRATE XY_PROBE_FEEDRATE
#define Z_PROBE_ALLEN_KEY_STOW_4 { 0.0, 0.0, 50.0 }
#define Z_PROBE_ALLEN_KEY_STOW_4_FEEDRATE XY_PROBE_FEEDRATE
#endif // Z_PROBE_ALLEN_KEY
/**
* Z探头相对于喷嘴位置{ X, Y, Z }的补偿
* 下面这段太长了。。。大致讲了补偿的测试和计算方法,有需要的你们查一下资料
* X and Y offset
* Use a caliper or ruler to measure the distance from the tip of
* the Nozzle to the center-point of the Probe in the X and Y axes.
*
* Z offset
* - For the Z offset use your best known value and adjust at runtime.
* - Common probes trigger below the nozzle and have negative values for Z offset.
* - Probes triggering above the nozzle height are uncommon but do exist. When using
* probes such as this, carefully set Z_CLEARANCE_DEPLOY_PROBE and Z_CLEARANCE_BETWEEN_PROBES
* to avoid collisions during probing.
*
* Tune and Adjust
* - Probe Offsets can be tuned at runtime with 'M851', LCD menus, babystepping, etc.
* - PROBE_OFFSET_WIZARD (configuration_adv.h) can be used for setting the Z offset.
*
* Assuming the typical work area orientation:
* - Probe to RIGHT of the Nozzle has a Positive X offset
* - Probe to LEFT of the Nozzle has a Negative X offset
* - Probe in BACK of the Nozzle has a Positive Y offset
* - Probe in FRONT of the Nozzle has a Negative Y offset
*
* Some examples:
* #define NOZZLE_TO_PROBE_OFFSET { 10, 10, -1 } // Example "1"
* #define NOZZLE_TO_PROBE_OFFSET {-10, 5, -1 } // Example "2"
* #define NOZZLE_TO_PROBE_OFFSET { 5, -5, -1 } // Example "3"
* #define NOZZLE_TO_PROBE_OFFSET {-15,-10, -1 } // Example "4"
*
* +-- BACK ---+
* | [+] |
* L | 1 | R <-- Example "1" (right+, back+)
* E | 2 | I <-- Example "2" ( left-, back+)
* F |[-] N [+]| G <-- Nozzle
* T | 3 | H <-- Example "3" (right+, front-)
* | 4 | T <-- Example "4" ( left-, front-)
* | [-] |
* O-- FRONT --+
*/
#define NOZZLE_TO_PROBE_OFFSET { 10, 10, 0 }
// 大多数探头应该远离床的边缘, 但是使用喷嘴作为探头的情况下,对于更大的探测区域,这可能是负面的?(我是不太理解这句话)
#define PROBING_MARGIN 10
// 探测时xy的最大移动速度
#define XY_PROBE_FEEDRATE (133*60)
// 在探测两次的模式下,z轴的移动速度
#define Z_PROBE_FEEDRATE_FAST (4*60)
// 每个点探头的速度(mm/min)
#define Z_PROBE_FEEDRATE_SLOW (Z_PROBE_FEEDRATE_FAST / 2)
/**
* 探针激活开关(没看懂这些是啥不知道指的是哪个,求解答)
* 指示正确展开的开关或光学开关当打印头靠近床时,开关触发
*/
//#define PROBE_ACTIVATION_SWITCH
#if ENABLED(PROBE_ACTIVATION_SWITCH)
#define PROBE_ACTIVATION_SWITCH_STATE LOW // 指示探头激活的状态
//#define PROBE_ACTIVATION_SWITCH_PIN PC6 // 覆盖默认引脚
#endif
/**
* 在每个探针之前,对探针进行皮重测量(确定零点)
* 适用于需要考虑因素的应变计或压电传感器
* 例如拉动托架的电线
*/
//#define PROBE_TARE
#if ENABLED(PROBE_TARE)
#define PROBE_TARE_TIME 200 // (ms) 抓住皮重销的时间
#define PROBE_TARE_DELAY 200 // (ms) 去皮后延迟
#define PROBE_TARE_STATE HIGH // 保存皮重销的状态
//#define PROBE_TARE_PIN PA5 // 覆盖默认引脚
#if ENABLED(PROBE_ACTIVATION_SWITCH)
//#define PROBE_TARE_ONLY_WHILE_INACTIVE // 如果probe_ACTIVATION_SWITCH激活,则无法去皮/探针
#endif
#endif
/**
* 探针启用/禁用
* 探头仅在启用时提供触发信号
*/
//#define PROBE_ENABLE_DISABLE
#if ENABLED(PROBE_ENABLE_DISABLE)
//#define PROBE_ENABLE_PIN -1 // 在此处覆盖默认插针
#endif
/**
* 多重探测(多探头)
*
* 通过探测2次或更多次,您可能会获得更好的结果
* 使用EXTRA_PROBING,将忽略异常读数
*/
//#define MULTIPLE_PROBING 2
//#define EXTRA_PROBING 1
/**
* 在探测、收起或探测点之间移动时,为避免触碰其他硬件或热床,Z轴探针需要确保足够的空间
* 安装在伺服装置上的探头也许需要足够的空间来保证机械臂旋转。
* 而感应探针则需要足够的空间来避免过早被碰撞
* 使用这些设置来确保探针在探测移动过程中的距离(或降低热床)
* 示例:“M851 Z-5”,从床到喷嘴的间隙为4=>9mm。
* 但是:“M851 Z+1”,从底座到喷嘴的间隙为2=>2mm(这个我也不太懂)
*/
#define Z_CLEARANCE_DEPLOY_PROBE 10 // Z展开/收起许可
#define Z_CLEARANCE_BETWEEN_PROBES 5 // Z探针点之间的间隙
#define Z_CLEARANCE_MULTI_PROBE 5 // Z多个探头之间的间隙
//#define Z_AFTER_PROBING 5 // 探测完成后的Z位置
#define Z_PROBE_LOW_POINT -2 // 停止前距离触发点最远的距离
// 对于M851,给出调整Z探头偏移的范围
#define Z_PROBE_OFFSET_RANGE_MIN -20
#define Z_PROBE_OFFSET_RANGE_MAX 20
// 启用M48重复性测试以测试探针精度
//#define Z_MIN_PROBE_REPEATABILITY_TEST
// 展开/收起前暂停以供确认
//#define PAUSE_BEFORE_DEPLOY_STOW
#if ENABLED(PAUSE_BEFORE_DEPLOY_STOW)
//#define PAUSE_PROBE_DEPLOY_WHEN_TRIGGERED // 用于手动部署Allen key探测器
#endif
/**
* 如果探测似乎不可靠,请启用以下一项或多项。
* 在探测过程中可禁用加热器和/或风扇,以最大限度地减少电气干扰噪声。还可以添加延迟以允许噪声和振动稳定。
* 这些选项对BLTouch探头最有用,但也可能提高感应探头和压电传感器的读数
*/
//#define PROBING_HEATERS_OFF // 探测时关闭加热
#if ENABLED(PROBING_HEATERS_OFF)
//#define WAIT_FOR_BED_HEATER // 等待床加热(以提高精度)
//#define WAIT_FOR_HOTEND // 等待热端加热(以提高精度并防止冷挤压)
#endif
//#define PROBING_FANS_OFF // 探测时关闭风扇
//#define PROBING_ESTEPPERS_OFF // 探测时关闭所有挤出机步进器(没这个必要把5555)
//#define PROBING_STEPPERS_OFF // 探测(包括挤出机)时,关闭所有步进器(除非需要保持位置)
//#define DELAY_BEFORE_PROBING 200 // (ms)防止振动触发压电传感器(这是啥)
// 探测需要最低喷嘴和/或床层温度
//#define PREHEAT_BEFORE_PROBING
#if ENABLED(PREHEAT_BEFORE_PROBING)
#define PROBING_NOZZLE_TEMP 120 // (°C) 此时仅适用于E0
#define PROBING_BED_TEMP 50
#endif
// 反转电机的引脚驱动(低电平使能为0、高电平使能为1)
// :{ 0:'Low', 1:'High' }
#define X_ENABLE_ON 0
#define Y_ENABLE_ON 0
#define Z_ENABLE_ON 0
#define E_ENABLE_ON 0 // 适用于所有挤出机
//#define I_ENABLE_ON 0
//#define J_ENABLE_ON 0
//#define K_ENABLE_ON 0
//#define U_ENABLE_ON 0
//#define V_ENABLE_ON 0
//#define W_ENABLE_ON 0
// 当某个轴上的步进电机不需要使用时可禁用它
// 警告:当电机关闭时,有可能失去位置精度!
#define DISABLE_X false
#define DISABLE_Y false
#define DISABLE_Z false
//#define DISABLE_I false
//#define DISABLE_J false
//#define DISABLE_K false
//#define DISABLE_U false
//#define DISABLE_V false
//#define DISABLE_W false
// 关闭关于 “精度降低” 的警告的闪烁显示
//#define DISABLE_REDUCED_ACCURACY_WARNING
// @挤出机设置
#define DISABLE_E false // 不步进时禁用挤出机
#define DISABLE_INACTIVE_EXTRUDER // 仅启用活动挤出机
// @运动设置
// 反转步进电机的方向(很重要)如果运动方向相反则把false改为ture反之亦然,corexy请看https://www.bilibili.com/video/BV1214y1Y7eJ调整方向
#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
//#define INVERT_U_DIR false
//#define INVERT_V_DIR false
//#define INVERT_W_DIR false
// @又是挤出机设置
// 挤出机方向(很重要)如果运动方向相反则把false改为ture反之亦然
#define INVERT_E0_DIR true
#define INVERT_E1_DIR false
#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
// @回零设置
//#define NO_MOTION_BEFORE_HOMING // 在所有轴归位之前禁止移动。同时启用HOME_AFTER_DEACTIVATE以获得额外的安全性。
//#define HOME_AFTER_DEACTIVATE // 停用步进器后需要重新启动。同时启用NO_MOTION_BEFORE_HOMING以获得额外的安全性。
/**
* 如果禁用步进器时Z轴自行移动,则设置Z_IDLE_HIGHT
* - 如果喷嘴落到热床上,则使用低值(即Z_MIN_POS)。
* - 如果热床跌落,远离喷嘴,则使用较大的值(即Z_MAX_POS)。
*/
//#define Z_IDLE_HEIGHT Z_HOME_POS
//#define Z_HOMING_HEIGHT 4 // 在归零时让Z轴抬起的高度
//#define Z_AFTER_HOMING 10 // (mm) 复位Z后移动到的高度
// 归位时终点的方向;1=最大值,-1=最小值
// :[-1,1]
#define X_HOME_DIR -1
#define Y_HOME_DIR -1
#define Z_HOME_DIR -1
//#define I_HOME_DIR -1
//#define J_HOME_DIR -1
//#define K_HOME_DIR -1
//#define U_HOME_DIR -1
//#define V_HOME_DIR -1
//#define W_HOME_DIR -1
// @图形设置(当然是amd yyds 雾)
// 可打印区域大小(很重要)不是热床大小是 可 打 印 区 域
#define X_BED_SIZE 310
#define Y_BED_SIZE 310
// 归零的行程限制(一般不进行设置)
#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 300 //z最大行程(很重要)
//#define I_MIN_POS 0
//#define I_MAX_POS 50
//#define J_MIN_POS 0
//#define J_MAX_POS 50
//#define K_MIN_POS 0
//#define K_MAX_POS 50
//#define U_MIN_POS 0
//#define U_MAX_POS 50
//#define V_MIN_POS 0
//#define V_MAX_POS 50
//#define W_MIN_POS 0
//#define W_MAX_POS 50
/**
* 软件止动器
*
* 启用这些选项可将移动限制在计算机的物理边界内
* 不超过切片软件的最高行程
*/
// 最小软件终点限制在最小坐标范围内移动
#define MIN_SOFTWARE_ENDSTOPS
#if ENABLED(MIN_SOFTWARE_ENDSTOPS)
#define MIN_SOFTWARE_ENDSTOP_X
#define MIN_SOFTWARE_ENDSTOP_Y
#define MIN_SOFTWARE_ENDSTOP_Z
#define MIN_SOFTWARE_ENDSTOP_I
#define MIN_SOFTWARE_ENDSTOP_J
#define MIN_SOFTWARE_ENDSTOP_K
#define MIN_SOFTWARE_ENDSTOP_U
#define MIN_SOFTWARE_ENDSTOP_V
#define MIN_SOFTWARE_ENDSTOP_W
#endif
// 最大软件终点限制在最大坐标范围内移动
#define MAX_SOFTWARE_ENDSTOPS
#if ENABLED(MAX_SOFTWARE_ENDSTOPS)
#define MAX_SOFTWARE_ENDSTOP_X
#define MAX_SOFTWARE_ENDSTOP_Y
#define MAX_SOFTWARE_ENDSTOP_Z
#define MAX_SOFTWARE_ENDSTOP_I
#define MAX_SOFTWARE_ENDSTOP_J
#define MAX_SOFTWARE_ENDSTOP_K
#define MAX_SOFTWARE_ENDSTOP_U
#define MAX_SOFTWARE_ENDSTOP_V
#define MAX_SOFTWARE_ENDSTOP_W
#endif
#if EITHER(MIN_SOFTWARE_ENDSTOPS, MAX_SOFTWARE_ENDSTOPS)
//#define SOFT_ENDSTOPS_MENU_ITEM // 在lcd中添加禁止软件限制
#endif
/**
* 开启断料检测(进阶)
*/
//#define FILAMENT_RUNOUT_SENSOR
#if ENABLED(FILAMENT_RUNOUT_SENSOR)
#define FIL_RUNOUT_ENABLED_DEFAULT true // 启动时启用传感器。用M412复写,然后是M500
#define NUM_RUNOUT_SENSORS 1 // 传感器数量,每个挤出机一个
#define FIL_RUNOUT_STATE LOW // 引脚状态指示耗材不存在
#define FIL_RUNOUT_PULLUP // 高电平断料检测开关(断料检测失灵开启下边关闭这一行)
//#define FIL_RUNOUT_PULLDOWN // 低电平断料检测开关(有耗材停止打印,没耗材继续打印则为失灵)
//#define WATCH_ALL_RUNOUT_SENSORS // 在任何触发传感器上执行跳动脚本,而不仅仅是针对活动挤出机.
// 这将自动为MIXING_EXTRUDER启用。
// 如果断料检测器变化,则分别复写
//#define FIL_RUNOUT1_STATE LOW
//#define FIL_RUNOUT1_PULLUP
//#define FIL_RUNOUT1_PULLDOWN
//#define FIL_RUNOUT2_STATE LOW
//#define FIL_RUNOUT2_PULLUP
//#define FIL_RUNOUT2_PULLDOWN
//#define FIL_RUNOUT3_STATE LOW
//#define FIL_RUNOUT3_PULLUP
//#define FIL_RUNOUT3_PULLDOWN
//#define FIL_RUNOUT4_STATE LOW
//#define FIL_RUNOUT4_PULLUP
//#define FIL_RUNOUT4_PULLDOWN
//#define FIL_RUNOUT5_STATE LOW
//#define FIL_RUNOUT5_PULLUP
//#define FIL_RUNOUT5_PULLDOWN
//#define FIL_RUNOUT6_STATE LOW
//#define FIL_RUNOUT6_PULLUP
//#define FIL_RUNOUT6_PULLDOWN
//#define FIL_RUNOUT7_STATE LOW
//#define FIL_RUNOUT7_PULLUP
//#define FIL_RUNOUT7_PULLDOWN
//#define FIL_RUNOUT8_STATE LOW
//#define FIL_RUNOUT8_PULLUP
//#define FIL_RUNOUT8_PULLDOWN
// 耗材变化时执行的命令
// 对于多个断料传感器,在命令中使用当前刀具的%c占位符(例如,“M600 T%c”)
// 注意:在“M412 H1”之后,主机处理耗材跳动,此脚本不适用。(这两行具体啥意思求解答1)
#define FILAMENT_RUNOUT_SCRIPT "M600"
// 检测到断料后,继续打印此长度的耗材
// before executing the runout script. Useful for a sensor at the end of
// 在执行退出脚本之前。用于进料管末端的传感器。每个传感器需要4字节SRAM
//#define FILAMENT_RUNOUT_DISTANCE_MM 25
#ifdef FILAMENT_RUNOUT_DISTANCE_MM
// 启用此选项可使用编码器盘,在耗材移动时切换跳动销(确保设置FILAMENT_RUNOUT_DISTANCE_MM足够大以避免误报。)
//#define FILAMENT_MOTION_SENSOR
#endif
#endif
//===========================================================================
//=============================== 调平热床 ==============================
//===========================================================================
// @校准设置
/**
* 选择下列选项之一以使用G29来调整热床水平
* G29的参数及运行动作将会随着你所设置的选项而发生改变
*
* 如果使用Z归零探针,请注意开启 Z_SAFE_HOMING !
*
* - AUTO_BED_LEVELING_3POINT:
* 探测热床上的任意3点(3点不在一条线上)
* Y需要指定3个点的XY坐标
* 结果是一个单一的倾斜平面,适用于较平热床
*
* - AUTO_BED_LEVELING_LINEAR:
* 探测网格中的几个点
* 您需要指定的矩形以及采样点的密度
* 结果是一个单一的倾斜平面,适用于较平热床
*
* - AUTO_BED_LEVELING_BILINEAR:
* 探测网格中的几个点
* 您需要指定的矩形以及采样点的密度
* 结果形成了网状结构,最适合大床或不均匀床
*
* - AUTO_BED_LEVELING_UBL (Unified Bed Leveling)
* 一个结合了其他系统特点及优势的全面调平系统
* 联合热床调平 同样包括集成的网格生成,网格验证及网格编辑系统
*
* - MESH_BED_LEVELING(人肉调平555555555555555)
* 探测一个手动网格
* 其结果是一个网格,适合大型或凹凸不平的床
* 对于没有探针的机器 , 网床找平提供了一种在台阶上进行水准测量的方法,以便在每个网格点上手动调整z高度
* 根据LCD控制器的指示一步一步进行调整
*/
//#define AUTO_BED_LEVELING_3POINT
//#define AUTO_BED_LEVELING_LINEAR
//#define AUTO_BED_LEVELING_BILINEAR
//#define AUTO_BED_LEVELING_UBL
//#define MESH_BED_LEVELING
/**
* 通常情况下,G28在完成时禁用调平
* 启用以下之一这些选项可恢复以前的调平状态或始终启用G28之后立即调平
*/
//#define RESTORE_LEVELING_AFTER_G28
//#define ENABLE_LEVELING_AFTER_G28
/**
* 自动调平时预热
*/
//#define PREHEAT_BEFORE_LEVELING
#if ENABLED(PREHEAT_BEFORE_LEVELING)
#define LEVELING_NOZZLE_TEMP 120 //热端温度
#define LEVELING_BED_TEMP 50 //热床温度
#endif
/**
* 热床距离传感器
*
* 测量床与喷嘴之间的距离,精度为0.01mm
* 有关此传感器的信息 https://github.com/markniu/Bed_Distance_sensor
* 使用I2C端口,因此需要I2C library markyue/Panda_SoftMasterI2C
*/
//#define BD_SENSOR
/**
* 启用G28、G29、M48等的详细日志记录
* 使用命令“M111 S32”打开
* 性能不高的主板谨慎使用
*/
//#define DEBUG_LEVELING_FEATURE
#if ANY(MESH_BED_LEVELING, AUTO_BED_LEVELING_UBL, PROBE_MANUALLY)
// 设置开始手动调整的高度
#define MANUAL_PROBE_START_Z 0.2 // (mm) 注释以使用上次测量的高度
#endif
#if ANY(MESH_BED_LEVELING, AUTO_BED_LEVELING_BILINEAR, AUTO_BED_LEVELING_UBL)
/**
* 逐渐进行热床水平修正直到刚刚达到所设置X,Y坐标所对应的高度
* 这个高度可以使用 M420 Z<height> 来进行设置
*/
#define ENABLE_LEVELING_FADE_HEIGHT
#if ENABLED(ENABLE_LEVELING_FADE_HEIGHT)
#define DEFAULT_LEVELING_FADE_HEIGHT 10.0 // (mm) 默认渐变高度
#endif
/**
* 对于笛卡尔机器分裂成像三角洲一样的小段
* 以下是床的轮廓比边缘到边缘的直线移动更接近。
*/
#define SEGMENT_LEVELED_MOVES
#define LEVELED_SEGMENT_LENGTH 5.0 // (mm)所有节段的长度(最后一节除外)
/**
* 启用G26网格验证模式工具。
*/
//#define G26_MESH_VALIDATION
#if ENABLED(G26_MESH_VALIDATION)
#define MESH_TEST_NOZZLE_SIZE 0.4 // (mm)主喷嘴直径。
#define MESH_TEST_LAYER_HEIGHT 0.2 // (mm)G26的默认层高度。
#define MESH_TEST_HOTEND_TEMP 205 // (°C)G26的默认喷嘴温度。
#define MESH_TEST_BED_TEMP 60 // (°C)G26的默认床温。
#define G26_XY_FEEDRATE 20 // (mm/s)G26 XY移动的进给速度。
#define G26_XY_FEEDRATE_TRAVEL 100 // (mm/s)G26 XY移动的进给速度。
#define G26_RETRACT_MULTIPLIER 1.0 // G26 Q(回抽)在网格测试元件之间默认使用。
#endif
#endif
#if EITHER(AUTO_BED_LEVELING_LINEAR, AUTO_BED_LEVELING_BILINEAR)
// 设置每个标注的网格点数
#define GRID_MAX_POINTS_X 3
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
// 先沿Y轴探测,然后在每列完成之后探测x轴方向
//#define PROBE_Y_FIRST
#if ENABLED(AUTO_BED_LEVELING_BILINEAR)
// 超出探测范围之后还要继续尝试探测么?
// 默认是保持最近边缘的高度.
//#define EXTRAPOLATE_BEYOND_GRID
//
// 用Catmull-Rom方法对网格进行实验细分
// 合成中间点以生成更详细的网格.
//
//#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_UBL)
//===========================================================================
//========================= 统一床平整选项====================================
//===========================================================================
//#define MESH_EDIT_GFX_OVERLAY // 编辑网格时显示图形覆盖
#define MESH_INSET 1 // 将网格边界设置为床的嵌入区域
#define GRID_MAX_POINTS_X 10 // 每个轴使用的点不要超过15个,实施受限
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
//#define UBL_HILBERT_CURVE // 在探测多个点时,使用希尔伯特分布减少行程
#define UBL_MESH_EDIT_MOVES_Z // 有经验的用户更喜欢不移动喷嘴
#define UBL_SAVE_ACTIVE_ON_M500 // 将当前活动网格保存在M500中
//#define UBL_Z_RAISE_WHEN_OFF_MESH 2.5 // 当喷嘴脱离网格时,
// 该值用作Z高度校正值
//#define UBL_MESH_WIZARD // 连续运行多个命令以获得完整的网格
#elif ENABLED(MESH_BED_LEVELING)
//===========================================================================
//=================================== 网格 ==================================
//===========================================================================
#define MESH_INSET 10 // 将网格边界设置为床的嵌入区域
#define GRID_MAX_POINTS_X 3 // 每个轴使用的点不要超过7个,实施受限
#define GRID_MAX_POINTS_Y GRID_MAX_POINTS_X
//#define MESH_G28_REST_ORIGIN // 复位所有轴(“G28”或“G28 XYZ”)后,将Z静止在Z_MIN_POS
#endif // BED_LEVELING
/**
* 为ABL或MBL添加床位调平子菜单
* 如果启用了手动探测,则包括指导程序
*/
//#define LCD_BED_LEVELING
#if ENABLED(LCD_BED_LEVELING)
#define MESH_EDIT_Z_STEP 0.025 // (mm) 手动调平时Z轴时的长度
#define LCD_PROBE_Z_RANGE 4 // (mm) Z范围以Z_MIN_POS为中心,用于LCD Z调整(与限位的距离)
//#define MESH_EDIT_MENU // 添加菜单以编辑网格点
#endif
// 添加菜单项以在床角之间移动以手动调平床
//#define LCD_BED_TRAMMING
#if ENABLED(LCD_BED_TRAMMING)
#define BED_TRAMMING_INSET_LFRB { 30, 30, 30, 30 } // (mm) 左、前、右、后
#define BED_TRAMMING_HEIGHT 0.0 // (mm) 水平点处喷嘴的Z高度
#define BED_TRAMMING_Z_HOP 4.0 // (mm) 水平点之间喷嘴的Z高度
//#define BED_TRAMMING_INCLUDE_CENTER // 移动到最后一个拐角后的中心
//#define BED_TRAMMING_USE_PROBE
#if ENABLED(BED_TRAMMING_USE_PROBE)
#define BED_TRAMMING_PROBE_TOLERANCE 0.1 // (mm)
#define BED_TRAMMING_VERIFY_RAISED // 调整触发探头后,重新探头以验证
//#define BED_TRAMMING_AUDIO_FEEDBACK
#endif
/**
* 拐角调平顺序
*
* 设置2或4个点。当给出2个点时,第3个点是相对边的中心
*
* LF :左前 RF :有钱
* LB :左后 RB :右后
*
* 示例:
*
* 默认滴 {LF,RB,LB,RF} {LF,RF} {LB,LF}
* LB --------- RB LB --------- RB LB --------- RB LB --------- RB
* | 4 3 | | 3 2 | | <3> | | 1 |
* | | | | | | | <3>|
* | 1 2 | | 1 4 | | 1 2 | | 2 |
* LF --------- RF LF --------- RF LF --------- RF LF --------- RF
*/
#define BED_TRAMMING_LEVELING_ORDER { LF, RF, RB, LB }
#endif
/**
* 在G29探测结束时执行的命令
* 用于缩回或移开Z探头
*/
//#define Z_PROBE_END_SCRIPT "G1 Z10 F12000\nG1 X15 Y330\nG1 Z0.5\nG1 Z10"
// @原点设置
// 床的中心在 (X=0, Y=0)
//#define BED_CENTER_AT_0_0
// 手动设置初始位置。对于DELTA(三角洲),这是笛卡尔打印体积的顶部中心
//#define MANUAL_X_HOME_POS 0
//#define MANUAL_Y_HOME_POS 0
//#define MANUAL_Z_HOME_POS 0
//#define MANUAL_I_HOME_POS 0
//#define MANUAL_J_HOME_POS 0
//#define MANUAL_K_HOME_POS 0
//#define MANUAL_U_HOME_POS 0
//#define MANUAL_V_HOME_POS 0
//#define MANUAL_W_HOME_POS 0
/**
* 使用“Z安全归位”避免在床区外使用Z探头归位。(建议开)
*
* - 在Z原点之前,将Z探头(或喷嘴)移动到定义的XY点。
* - 仅当XY位置已知且可信时,才允许Z原点。
* - 如果步进驱动器休眠,则可能需要在Z归位之前再次进行XY归位。
*/
//#define Z_SAFE_HOMING
#if ENABLED(Z_SAFE_HOMING)
#define Z_SAFE_HOMING_X_POINT X_CENTER // x点
#define Z_SAFE_HOMING_Y_POINT Y_CENTER // y点
#endif
// 归位速度(线性=mm/min,旋转=°/min)
#define HOMING_FEEDRATE_MM_M { (50*60), (50*60), (4*60) }
// 验证终点是否在归位移动时触发
#define VALIDATE_HOMING_ENDSTOPS
// @校准设置
/**
* 床倾斜补偿
*
* 此功能可校正XYZ轴中的安装误差
*
* 执行以下步骤以获取XY平面中的床倾斜:
* 1. 打印测试方块 (e.g., https://www.thingiverse.com/thing:2563185)
* 2. 对于XY_DIAG_AC,测量对角线A到C
* 3. 对于XY_DIAG_BD,测量对角线B到D
* 4. 对于XY_SIDE_AD,测量边缘A到D
*
* 马林根据这些测量值自动计算倾斜因子。
* 也可以手动计算和设置倾斜系数:
*
* - Compute AB : SQRT(2*AC*AC+2*BD*BD-4*AD*AD)/2
* - XY_SKEW_FACTOR : TAN(PI/2-ACOS((AC*AC-AB*AB-AD*AD)/(2*AB*AD)))
*
* 如果需要,请对XZ和YZ执行相同的步骤。
* 使用这些图表作为参考:
*
* Y Z Z
* ^ B-------C ^ B-------C ^ B-------C
* | / / | / / | / /
* | / / | / / | / /
* | A-------D | A-------D | A-------D
* +-------------->X +-------------->X +-------------->Y
* XY_SKEW_FACTOR XZ_SKEW_FACTOR YZ_SKEW_FACTOR
*/
//#define SKEW_CORRECTION
#if ENABLED(SKEW_CORRECTION)
// 在此处输入所有长度测量值:
#define XY_DIAG_AC 282.8427124746
#define XY_DIAG_BD 282.8427124746
#define XY_SIDE_AD 200
// 或者,直接设置XY倾斜因子(上边有公式):
//#define XY_SKEW_FACTOR 0.0
//#define SKEW_CORRECTION_FOR_Z
#if ENABLED(SKEW_CORRECTION_FOR_Z)
#define XZ_DIAG_AC 282.8427124746
#define XZ_DIAG_BD 282.8427124746
#define YZ_DIAG_AC 282.8427124746
#define YZ_DIAG_BD 282.8427124746
#define YZ_SIDE_AD 200
// 或者,直接设置Z扭曲因子:
//#define XZ_SKEW_FACTOR 0.0
//#define YZ_SKEW_FACTOR 0.0
#endif
// 为M852启用此选项以在运行时设置歪斜
//#define SKEW_CORRECTION_GCODE
#endif
//=============================================================================
//============================= 其他功能 =======================================
//=============================================================================
// @eeprom设置
/**
* EEPROM
*
* 在重新启动期间保留可配置的设置
*
* M500 - 将设置存储到EEPROM
* M501 - 从EEPROM读取设置。(即,丢弃未保存的更改)
* M502 - 将设置恢复为“出厂”默认值。(按照M500初始化EEPROM。)
*/
#define EEPROM_SETTINGS // M500和M501的永久存储(建议完整配置完固件之后再开启此项,不然有时候会出现刷不进去固件的情况) (很重要)
//#define DISABLE_M503 // 节省约2700字节的闪存。禁用以释放!
#define EEPROM_CHITCHAT // 反馈EEPROM命令。禁用以保存PROGMEM。
#define EEPROM_BOOT_SILENT // 保持M503安静,仅在首次加载时出错
#if ENABLED(EEPROM_SETTINGS)
//#define EEPROM_AUTO_INIT // 出现任何错误时自动初始化EEPROM。
//#define EEPROM_INIT_NOW // 在新构建后首次启动时初始化EEPROM。
#endif
// @主机设置
//
// Keepalive主机
//
// 启用后,马林将向主机发送忙状态消息
// 每隔几秒就会向主机发送一条忙碌状态消息。
//
#define HOST_KEEPALIVE_FEATURE // 如果您的主机不喜欢保活消息,请禁用此功能
#define DEFAULT_KEEPALIVE_INTERVAL 2 // “忙”消息之间的秒数。设置M113。
#define BUSY_WHILE_HEATING // 有些主机甚至在加热期间也需要“忙”消息
// @单位设置
//
// G20/G21 英寸模式支持(万恶的美帝用这阴间的单位)
//
//#define INCH_MODE_SUPPORT
//
// M149设置温度装置支架
//
//#define TEMPERATURE_UNITS_SUPPORT
// @预热设置
//
// 预热常数-最多支持10个,无需更改(很重要)
//
#define PREHEAT_1_LABEL "PLA"
#define PREHEAT_1_TEMP_HOTEND 205
#define PREHEAT_1_TEMP_BED 70
#define PREHEAT_1_TEMP_CHAMBER 35
#define PREHEAT_1_FAN_SPEED 0 // 风扇速度0-255
#define PREHEAT_2_LABEL "PETG"
#define PREHEAT_2_TEMP_HOTEND 250
#define PREHEAT_2_TEMP_BED 75
#define PREHEAT_2_TEMP_CHAMBER 35
#define PREHEAT_2_FAN_SPEED 0 // 风扇速度0-255
// @运动设置
/**
* 喷嘴驻车(进阶)
*如需开启断料检测请开启此项
* 在怠速或G27时,将喷嘴停在给定的XYZ位置
*
* P 参数控制应用于Z轴的动作:
*
* P0 (默认值)如果Z低于停车Z,则升高喷嘴。
* P1 始终将喷嘴升高至Z驻车高度。
* P2 将喷嘴提升Z停车量,限制为Z_MAX_POS。
*/
//#define NOZZLE_PARK_FEATURE
#if ENABLED(NOZZLE_PARK_FEATURE)
// 将驻车位置指定为 { X, Y, Z_raise }
#define NOZZLE_PARK_POINT { (X_MIN_POS + 10), (Y_MAX_POS - 10), 20 }
#define NOZZLE_PARK_MOVE 0 // 驻车运动:0=XY移动,1=仅X,2=仅Y,3=Y之前的X,4=X之前的Y
#define NOZZLE_PARK_Z_RAISE_MIN 2 // (mm) 始终将Z升高至少此距离
#define NOZZLE_PARK_XY_FEEDRATE 100 // (mm/s) X和Y轴进给速度(也用于Z轴增量)
#define NOZZLE_PARK_Z_FEEDRATE 5 // (mm/s) Z轴进给速度(不适用鱼三角洲打印机)
#endif
/**
* 实验功能:喷嘴自动清洁(切片软件中的起始gcode完全可以做到还方便)
*
* 添加G12命令以执行喷嘴清洁过程。
*
* 参数:
* P 图案
* S 笔划/重复
* T 三角形(仅限P1)
*
* 模式:
* P0 直线(默认)。该工艺需要海绵型材料
*在固定床位置。“S”表示冲程(即前后运动)
*开始/结束点之间。
*
* P1 (X0,Y0)和(X1,Y1)之间的Z字形图案,“T”指定
*要做的Z字形三角形的数量。“S”定义笔划的数量。
*以较窄的尺寸进行Z字形。
*例如,“G12 P1 S1 T3”将执行:
*
* --
* | (X0, Y1) | /\ /\ /\ | (X1, Y1)
* | | / \ / \ / \ |
* A | | / \ / \ / \ |
* | | / \ / \ / \ |
* | (X0, Y0) | / \/ \/ \ | (X1, Y0)
* -- +--------------------------------+
* |________|_________|_________|
* T1 T2 T3
*
* P2 中间位于NOZZLE_CLEAN_CIRCLE_middle的圆形图案。
*“R”指定半径。“S”指定笔划计数。
*启动前,喷嘴移动到nozzle_CLEAN_START_POINT。
*
* 注意:结束Z应与开始Z相同。
* 注意:实验。G代码参数可能会更改。
*/
//#define NOZZLE_CLEAN_FEATURE
#if ENABLED(NOZZLE_CLEAN_FEATURE)
// 默认模式重复次数
#define NOZZLE_CLEAN_STROKES 12
// 默认三角形数
#define NOZZLE_CLEAN_TRIANGLES 3
// 位置设定为{{X,Y,Z},{X、Y、Z}}
// 双喷头系统可以使用{{-20,(Y_BED_SIZE/2),(Z_MIN_POS+1)},{420,(Y_BED_SIZE+2),(Z _MIN_POS+1)}}
#define NOZZLE_CLEAN_START_POINT { { 30, 30, (Z_MIN_POS + 1) } }
#define NOZZLE_CLEAN_END_POINT { { 100, 60, (Z_MIN_POS + 1) } }
// 圆形图案半径
#define NOZZLE_CLEAN_CIRCLE_RADIUS 6.5
// 圆形图案圆形碎片数
#define NOZZLE_CLEAN_CIRCLE_FN 10
// 圆的中点
#define NOZZLE_CLEAN_CIRCLE_MIDDLE NOZZLE_CLEAN_START_POINT
// 清洁后将喷嘴移动到初始位置
#define NOZZLE_CLEAN_GOBACK
// 对于始终处于机架高度的净化/清洁站(因此没有Z移动)
//#define NOZZLE_CLEAN_NO_Z
// 对于安装在X轴上的净化/清洁站
//#define NOZZLE_CLEAN_NO_Y
// 清洁需要最低温度
#define NOZZLE_CLEAN_MIN_TEMP 170
//#define NOZZLE_CLEAN_HEATUP // 加热喷嘴,而不是跳过擦拭
// 显式擦除G代码脚本适用于无参数的G12。
//#define WIPE_SEQUENCE_COMMANDS "G1 X-17 Y25 Z10 F4000\nG1 Z1\nM114\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 X-17 Y25\nG1 X-17 Y95\nG1 Z15\nM400\nG0 X-10.0 Y-9.0"
#endif
// @计时器设置
/**
* 打印作业计时器
*
* 自动启动和停止M104/M109/M140/M190/M41/M191上的打印作业计时器。
* 只有当床/室目标温度低于bed_MINTEMP/chamber_MINTEMP时,打印作业计时器才会停止。
*
* M104(热端,无等待)-高温=无,低温=停止计时器
*M109(热端,等待)-高温=启动计时器,低温=停止计时器
*M140(热床,无等待)-高温=无,低温=停止计时器
*M190(热床,等待)-高温=启动计时器,低温=无
*M141(腔室,无等待)-高温=无,低温=停止计时器
*M191(腔室,等待)-高温=启动计时器,低温=无
*
*对于M104/M109,高温高于EXTRUDE_MINTEMP/2。
*对于M140/M190,高温高于BED_MINTEMP。
*对于M141/M191,高温高于CHAMBER_MINTEMP。
*
*也可以通过以下命令控制计时器:
*
*M75-启动打印作业计时器
*M76-暂停打印作业计时器
*M77-停止打印作业计时器
*/
#define PRINTJOB_TIMER_AUTOSTART
// @统计设置
/**
* 打印计数器(生涯系统 雾)
*开启此功能可能会占用过多eeprom
* 跟踪统计数据,如:
*
* - 打印作业总数
* - 成功打印作业总数
* - Total failed print jobs(光辉事迹)
* - 游戏总时长
* (完了兄弟们,pets了 魔兽世界关服了我好难受从小学玩到工作)
*
* 使用M78查看当前统计数据。
*/
//#define PRINTCOUNTER
#if ENABLED(PRINTCOUNTER)
#define PRINTCOUNTER_SAVE_INTERVAL 60 // (分钟)打印期间EEPROM保存间隔。值为0将在打印结束时保存统计数据。
#endif
// @安全设置
/**
* 密码(。。。。。。。。。)
*
* 为可以请求的打印机设置数字密码:
*
* - 打印机启动时
* - 打开“从打印”菜单时(联机打印)
* - SD打印完成或中止时
*
* 可以使用以下G代码:
*
* M510 - 锁定打印机。阻止除M511以外的所有命令。
* M511 - 解锁打印机。
* M512 - 设置、更改和删除密码。
*
* 如果您忘记密码并被锁定,则需要重新刷新
*禁用功能的固件,重置EEPROM,以及(可选)
*启用此功能后,再次刷新固件。
*/
//#define PASSWORD_FEATURE
#if ENABLED(PASSWORD_FEATURE)
#define PASSWORD_LENGTH 6 // (#) 密码位数(1-9)。建议使用3或4
#define PASSWORD_ON_STARTUP
#define PASSWORD_UNLOCK_GCODE // 使用M511 P<密码>命令解锁。禁用以防止暴力破解。(好家伙穷举法解3d打印机了)
#define PASSWORD_CHANGE_GCODE // 使用M512 P<旧>S<新>更改密码。
//#define PASSWORD_ON_SD_PRINT_MENU // 这不会阻止gcode运行
//#define PASSWORD_AFTER_SD_PRINT_END
//#define PASSWORD_AFTER_SD_PRINT_ABORT
//#include "Configuration_Secure.h" // 带有PASSWORD_DEFAULT_VALUE的外部文件
#endif
//=============================================================================
//============================ LCD小屏幕以及sd卡设置 ===========================(这一行又没对齐)
//=============================================================================
// @界面设置
/**
* LCD屏幕语言(很重要)
*
* 选择要在LCD上显示的语言。这些语言可用:
*
* en, an, bg, ca, cz, da, de, el, el_CY, es, eu, fi, fr, gl, hr, hu, it,
* jp_kana, ko_KR, nl, pl, pt, pt_br, ro, ru, sk, sv, tr, uk, vi, zh_CN, zh_TW
*
* :{ 'en':'English', 'an':'Aragonese', 'bg':'Bulgarian', 'ca':'Catalan', 'cz':'Czech', 'da':'Danish', 'de':'German', 'el':'Greek (Greece)', 'el_CY':'Greek (Cyprus)', 'es':'Spanish', 'eu':'Basque-Euskera', 'fi':'Finnish', 'fr':'French', 'gl':'Galician', 'hr':'Croatian', 'hu':'Hungarian', 'it':'Italian', 'jp_kana':'Japanese', 'ko_KR':'Korean (South Korea)', 'nl':'Dutch', 'pl':'Polish', 'pt':'Portuguese', 'pt_br':'Portuguese (Brazilian)', 'ro':'Romanian', 'ru':'Russian', 'sk':'Slovak', 'sv':'Swedish', 'tr':'Turkish', 'uk':'Ukrainian', 'vi':'Vietnamese', 'zh_CN':'Chinese (Simplified)', 'zh_TW':'Chinese (Traditional)' }
*/
#define LCD_LANGUAGE zh_CN //直接 zh_CN 就完啦
/**
* LCD字符集
*
* 注意:此选项不适用于图形显示。
*
* 所有基于字符的LCD都提供ASCII加上其中一个
* 语言扩展:
*
* - JAPANESE ... 最常见的
* - WESTERN ... 带有更多重音字符
* - CYRILLIC ... 俄语
*
* 要确定控制器上安装的语言扩展:
*
* - 编译并上传LCD_LANGUAGE设置为“测试”
* - 单击控制器以查看LCD菜单
* - LCD将显示日语、西文或西里尔文文本
*
* See https://marlinfw.org/docs/development/lcd_language.html
*
* :['JAPANESE', 'WESTERN', 'CYRILLIC']
*/
#define DISPLAY_CHARSET_HD44780 JAPANESE
/**
* 信息屏幕样式(0:经典,1:Průša)
*
* :[0:'Classic', 1:'Průša']
*/
#define LCD_INFO_SCREEN_STYLE 0
/**
* sd卡(很重要)
*
* SD卡支持默认禁用。如果您的控制器有SD插槽,
* 您必须取消注释以下选项,否则它将不起作用。
*/
#define SDSUPPORT
/**
* SD CARD: 启用CRC
*
* 在SD通信上使用CRC检查和重试。
*/
//#define SD_CHECK_AND_RETRY
/**
* LCD菜单项
*
* 禁用所有菜单并仅显示状态屏幕,或只需删除一些无关的菜单项即可恢复空间。
*/
//#define NO_LCD_MENUS
//#define SLIM_LCD_MENUS
//
// 编码器设置(小旋扭)
//
// 此选项覆盖产生一个步长所需的默认编码器脉冲数。对于高分辨率编码器,应增加
//
//#define ENCODER_PULSES_PER_STEP 4
//
// 使用此选项可覆盖在下一个/上一个菜单项之间移动所需的步进信号数
//
//#define ENCODER_STEPS_PER_MENU_ITEM 1
/**
* 编码器方向选项
*
* 在禁用这两个选项的情况下,首先测试编码器的行为。
*
* 反向值编辑和菜单导航?启用REVERSE_ENCODER_DIRECTION.
* 仅反向菜单导航?启用REVERSE_MENU_DIRECTION。
* 仅反向值编辑?启用两个选项。
*/
//
// 此选项在所有位置反转编码器方向。
//
// 如果CLOCKWISE导致值减少,则设置此选项
//
//#define REVERSE_ENCODER_DIRECTION
//
// 此选项反转用于导航LCD菜单的编码器方向。
//
// 如果顺时针方向通常向下移动,则会向上移动。
// 如果顺时针通常向上移动,则会使其向下移动。
//
//#define REVERSE_MENU_DIRECTION
//
// 此选项反转选择屏幕的编码器方向。
//
// 如果顺时针通常向左移动,则会向右移动。
// 如果顺时针方向通常向右移动,则会向左移动。
//
//#define REVERSE_SELECT_DIRECTION
//
// 编码器EMI噪声滤波器
//
// 此选项增加编码器采样,以滤除EMI噪声引起的幻象编码器咔哒声
//
//#define ENCODER_NOISE_FILTER
#if ENABLED(ENCODER_NOISE_FILTER)
#define ENCODER_SAMPLES 10
#endif
//
// 单轴归位(这个功能不知道为什么我点x归为 z和y轴的电机依然会开启)
//
// 在LCD菜单中添加单独的轴原点项目(原点X、原点Y和原点Z)。
//
//#define INDIVIDUAL_AXIS_HOMING_MENU
//#define INDIVIDUAL_AXIS_HOMING_SUBMENU
//
// 扬声器/蜂鸣器(个性)
//
// 如果您有一个可以发出音调的扬声器,请在此处启用它。
// 默认情况下,马林假设你有一个固定频率的蜂鸣器。
//
//#define SPEAKER
//
// UI反馈声音的持续时间和频率(烦人的菜单bibi声)(个性化)默认没开启下面两项,我怕烦给关了,如需开启声音请关闭下边两项
// 将这些设置为0以禁用LCD菜单中的音频反馈。
//
// 注意:使用G代码测试音频输出:
// M300 S<频率Hz>P<持续时间ms>
//
#define LCD_FEEDBACK_FREQUENCY_DURATION_MS 0
#define LCD_FEEDBACK_FREQUENCY_HZ 0
//=============================================================================
//============================== LCD/控制器选择 ================================
//============================ (基于字符的LCD) ===========================
//=============================================================================
// @lcd设置 选择你的屏幕
//
// RepRapDiscount Smart Controller.
// https://reprap.org/wiki/RepRapDiscount_Smart_Controller
//
// 注:通常与白色PCB一起出售。
//
//#define REPRAP_DISCOUNT_SMART_CONTROLLER
//
// GT2560 (YHCB2004) LCD显示器
//
// 需要Testato、Koepel软件线库和Andriy Golovnya的LiquidCrystal_AIP31068库。
//
//#define YHCB2004
//
// 原始RADDS LCD显示器+编码器+SDCardReader
// http://doku.radds.org/dokumentation/lcd-display/
//
//#define RADDS_DISPLAY
//
// ULTIMAKER控制器
//
//#define ULTIMAKERCONTROLLER
//
// t站上的ULTIPANEL(马琳没给连接 求个连接)
//
//#define ULTIPANEL
//
// 来自T3P3的Panelone(通过RAMPS 1.4 AUX2/AUX3)
// https://reprap.org/wiki/PanelOne
//
//#define PANEL_ONE
//
// GADGETS3D G3D LCD/SD控制器
// https://reprap.org/wiki/RAMPS_1.3/1.4_GADGETS3D_Shield_with_Panel
//
// 注:通常与蓝色PCB一起出售
//
//#define G3D_PANEL
//
// RigidBot Panel V1.0
// http://www.inventapart.com/
//
//#define RIGIDBOT_PANEL
//
// Makeboard 3D打印机零件3D打印机迷你显示器1602迷你控制器
// https://www.aliexpress.com/item/32765887917.html
//
//#define MAKEBOARD_MINI_2_LINE_DISPLAY_1602
//
// ANET和Tronxy 20x4控制器
//
//#define ZONESTAR_LCD // 需要将ADC_KEYPAD_PIN分配给模拟引脚。
// 已知该LCD易受电气干扰
// 这扰乱了显示器。按下任何按钮都可以清除。
// 这是一个带有5个模拟按钮的LCD2004显示器。
//
// 基于16x2、16x4、20x2或20x4字符的通用LCD。
//
//#define ULTRA_LCD
//=============================================================================
//============================== LCD/控制器选择 ================================
//========================== (I2C和移位寄存器LCD) ========================
//=============================================================================
//
// 控制器类型:I2C
//
// 注:这些控制器需要安装Arduino的LiquidCrystal_I2C
// library. For more info: https://github.com/kiyoshigawa/LiquidCrystal_I2C
//
//
// Elefu RA板控制面板
// http://www.elefu.com/index.php?route=product/product&product_id=53
//
//#define RA_CONTROL_PANEL
//
// Sainsmart(YwRobot)LCD显示屏
//
// These require F.Malpartida's LiquidCrystal_I2C library
// https://bitbucket.org/fmalpartida/new-liquidcrystal/wiki/Home
//
//#define LCD_SAINSMART_I2C_1602
//#define LCD_SAINSMART_I2C_2004
//
// 通用LCM1602 LCD适配器
//
//#define LCM1602
//
// PANELOLU2 LCD,带状态LED,独立编码器和点击输入。
//
// 注意:此控制器需要Arduino的LiquidTWI2库v1.23或更高版本。
// For more info: https://github.com/lincomatic/LiquidTWI2
//
// 注:PANELOLU2编码器点击输入可以直接连接到引脚(如果BTN_ENC定义为!=-1)或通过I2C读取(当BTN_ENC==-1)。
//
//#define LCD_I2C_PANELOLU2
//
// Panucat VIKI LCD,带状态LED,集成点击和L/R/U/D按钮,独立编码器输入。
//
//#define LCD_I2C_VIKI
//
// 控制器类型:移位寄存器面板
//
//
// 2线非锁定LCD SR,来自 https://goo.gl/aJJ4sH
// LCD配置: https://reprap.org/wiki/SAV_3D_LCD
//
//#define SAV_3DLCD
//
// 使用74HC4094的带闪光灯的3线SR LCD
// https://github.com/mikeshub/SailfishLCD
// Uses the code directly from Sailfish
//
//#define FF_INTERFACEBOARD
//
// TFT GLCD面板,Marlin UI面板通过SPI或I2C接口连接到主板。
// See https://github.com/Serhiy-K/TFTGLCDAdapter
//
//#define TFTGLCD_PANEL_SPI
//#define TFTGLCD_PANEL_I2C
//=============================================================================
//============================== LCD/控制器选择 =============================
//============================= (图形LCD) ===========================
//=============================================================================
//(很重要)请选择你的小屏幕,如果不知道型号请问你的商家
//
// 控制器类型:图形128x64(DOGM)
//
// 重要提示:图形显示需要U8glib库!
// https://github.com/olikraus/U8glib_Arduino
//
// 注意:如果LCD没有响应,您可能需要反转插头。
//
//
// RepRapDiscount全图形智能控制器
// https://reprap.org/wiki/RepRapDiscount_Full_Graphic_Smart_Controller
//
//#define REPRAP_DISCOUNT_FULL_GRAPHIC_SMART_CONTROLLER
//
// K、 3D全图形智能控制器
//
//#define K3D_FULL_GRAPHIC_SMART_CONTROLLER
//
// RepapWorld图形LCD
// https://reprapworld.com/electronics/3d-printer-modules/autonomous-printing/graphical-lcd-screen-v1-0/
//
//#define REPRAPWORLD_GRAPHICAL_LCD
//
// 如果您有Panucat设备Viki 2.0或带有图形LCD的迷你Viki,请激活其中一个
// https://www.panucatt.com
//
//#define VIKI2
//#define miniVIKI
//
// Alfawise Ex8打印机LCD标记为WYH L12864 COG
//
//#define WYH_L12864
//
// 带有图形的MakerLab迷你面板
// controller and SD support - https://reprap.org/wiki/Mini_panel
//
//#define MINIPANEL
//
// MaKr3d Makr面板,带有图形控制器和SD支持。
// https://reprap.org/wiki/MaKr3d_MaKrPanel
//
//#define MAKRPANEL
//
// Adafruit ST7565全图形控制器。
// https://github.com/eboston/Adafruit-ST7565-Full-Graphic-Controller/
//
//#define ELB_FULL_GRAPHIC_CONTROLLER
//
// BQ LCD智能控制器
// 默认为BQ Hechestos 2和Witbox 2。
//
//#define BQ_LCD_SMART_CONTROLLER
//
// Cartesio UI
// http://mauk.cc/webshop/cartesio-shop/electronics/user-interface
//
//#define CARTESIO_UI
//
// 带有图形LCD的Melzi卡LCD
//
//#define LCD_FOR_MELZI
//
// Ultimaker 2打印机原装Ulticontroller,带SSD1309 I2C显示器和编码器
// https://github.com/Ultimaker/Ultimaker2/tree/master/1249_Ulticontroller_Board_(x1)
//
//#define ULTI_CONTROLLER
//
// 唯一の神(MKS MINI12864)
// https://reprap.org/wiki/MKS_MINI_12864
//
#define MKS_MINI_12864
//
// MKS MINI12864 V3是FYSETC_MINI_12864_2_1的别名
//
//#define MKS_MINI_12864_V3
//
// 带有图形控制器和SD支持的MKS LCD12864A/B。遵循MKS_MINI_12864引脚输出。
// https://www.aliexpress.com/item/33018110072.html
//
//#define MKS_LCD12864A
//#define MKS_LCD12864B
//
// 带有SD支持的MINI12864图形控制器的FYSETC变体
// https://wiki.fysetc.com/Mini12864_Panel/
//
//#define FYSETC_MINI_12864_X_X // Type C/D/E/F. No tunable RGB Backlight by default
//#define FYSETC_MINI_12864_1_2 // Type C/D/E/F. Simple RGB Backlight (always on)
//#define FYSETC_MINI_12864_2_0 // Type A/B. Discreet RGB Backlight
//#define FYSETC_MINI_12864_2_1 // Type A/B. NeoPixel RGB Backlight
//#define FYSETC_GENERIC_12864_1_1 // Larger display with basic ON/OFF backlight.
//
// BigTreeTech Mini 12864 V1.0是FYSETC_Mini_12864_2_1的别名。A/B型。NeoPixel RGB背光。
//
//#define BTT_MINI_12864_V1
//
// 创想家的 CR-10工厂显示器
// https://www.aliexpress.com/item/32833148327.html
//
// 这是RAMPS兼容的,使用单个10针连接器。
// (适用于希望更换Melzi Creality板但保留显示屏的CR-10车主)
//
//#define CR10_STOCKDISPLAY
//
// Ender-2 OEM显示器,MKS_MINI_12864的变体
//
//#define ENDER2_STOCKDISPLAY
//
// ANET和Tronxy图形控制器
//
// Anet 128x64全图形液晶显示器,带旋转编码器,用于Anet A6
// RepRapDiscount完整图形显示的克隆,但具有不同的引脚/接线(请参见pins_ANET_10.h)。启用其中之一。
//
//#define ANET_FULL_GRAPHICS_LCD
//#define ANET_FULL_GRAPHICS_LCD_ALT_WIRING
//
// AZSMZ 12864 LCD,带SD
// https://www.aliexpress.com/item/32837222770.html
//
//#define AZSMZ_12864
//
// silvergate GLCD控制器
// https://github.com/android444/Silvergate
//
//#define SILVER_GATE_GLCD_CONTROLLER
//
// 带SD的eMotion Tech LCD
// https://www.reprap-france.com/produit/1234568748-ecran-graphique-128-x-64-points-2-1
//
//#define EMOTION_TECH_LCD
//=============================================================================
//=============================== OLED显示器 ================================
//=============================================================================
//
// !!!!!!下边都是显示器型号我不翻译了没啥意义!!!!!!!
//
// 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
//
// TinyBoy2 128x64 OLED / Encoder Panel
//
//#define OLED_PANEL_TINYBOY2
//
// MKS OLED 1.3" 128×64 Full Graphics Controller
// https://reprap.org/wiki/MKS_12864OLED
//
// Tiny, but very sharp OLED display
//
//#define MKS_12864OLED // Uses the SH1106 controller (default)
//#define MKS_12864OLED_SSD1306 // Uses the SSD1306 controller
//
// Zonestar OLED 128×64 Full Graphics Controller
//
//#define ZONESTAR_12864LCD // Graphical (DOGM) with ST7920 controller
//#define ZONESTAR_12864OLED // 1.3" OLED with SH1106 controller (default)
//#define ZONESTAR_12864OLED_SSD1306 // 0.96" OLED with SSD1306 controller
//
// Einstart S OLED SSD1306
//
//#define U8GLIB_SH1106_EINSTART
//
// Overlord OLED display/controller with i2c buzzer and LEDs
//
//#define OVERLORD_OLED
//
// FYSETC OLED 2.42" 128×64 Full Graphics Controller with WS2812 RGB
// Where to find : https://www.aliexpress.com/item/4000345255731.html
//#define FYSETC_242_OLED_12864 // Uses the SSD1309 controller
//
// K.3D SSD1309 OLED 2.42" 128×64 Full Graphics Controller
//
//#define K3D_242_OLED_CONTROLLER // Software SPI
//=============================================================================
//=============================== 可扩展UI显示 ================================
//=============================================================================
/**
* DGUS Touch Display with DWIN OS. (Choose one.)
* ORIGIN : https://www.aliexpress.com/item/32993409517.html
* FYSETC : https://www.aliexpress.com/item/32961471929.html
* MKS : https://www.aliexpress.com/item/1005002008179262.html
*
* Flash display with DGUS Displays for Marlin:
* - Format the SD card to FAT32 with an allocation size of 4kb.
* - Download files as specified for your type of display.
* - Plug the microSD card into the back of the display.
* - Boot the display and wait for the update to complete.
*
* ORIGIN (Marlin DWIN_SET)
* - Download https://github.com/coldtobi/Marlin_DGUS_Resources
* - Copy the downloaded DWIN_SET folder to the SD card.
*
* FYSETC (Supplier default)
* - Download https://github.com/FYSETC/FYSTLCD-2.0
* - Copy the downloaded SCREEN folder to the SD card.
*
* HIPRECY (Supplier default)
* - Download https://github.com/HiPrecy/Touch-Lcd-LEO
* - Copy the downloaded DWIN_SET folder to the SD card.
*
* MKS (MKS-H43) (Supplier default)
* - Download https://github.com/makerbase-mks/MKS-H43
* - Copy the downloaded DWIN_SET folder to the SD card.
*
* RELOADED (T5UID1)
* - Download https://github.com/Desuuuu/DGUS-reloaded/releases
* - Copy the downloaded DWIN_SET folder to the SD card.
*/
//#define DGUS_LCD_UI_ORIGIN
//#define DGUS_LCD_UI_FYSETC
//#define DGUS_LCD_UI_HIPRECY
//#define DGUS_LCD_UI_MKS
//#define DGUS_LCD_UI_RELOADED
#if ENABLED(DGUS_LCD_UI_MKS)
#define USE_MKS_GREEN_UI
#endif
//
// Touch-screen LCD for Malyan M200/M300 printers
//
//#define MALYAN_LCD
//
// Touch UI for FTDI EVE (FT800/FT810) displays
// See Configuration_adv.h for all configuration options.
//
//#define TOUCH_UI_FTDI_EVE
//
// Touch-screen LCD for Anycubic printers
//
//#define ANYCUBIC_LCD_I3MEGA
//#define ANYCUBIC_LCD_CHIRON
#if EITHER(ANYCUBIC_LCD_I3MEGA, ANYCUBIC_LCD_CHIRON)
//#define ANYCUBIC_LCD_DEBUG
//#define ANYCUBIC_LCD_GCODE_EXT // Add ".gcode" to menu entries for DGUS clone compatibility
#endif
//
// 320x240 Nextion 2.8" serial TFT Resistive Touch Screen NX3224T028
//
//#define NEXTION_TFT
//
// Third-party or vendor-customized controller interfaces.
// Sources should be installed in 'src/lcd/extui'.
//
//#define EXTENSIBLE_UI
#if ENABLED(EXTENSIBLE_UI)
//#define EXTUI_LOCAL_BEEPER // Enables use of local Beeper pin with external display
#endif
//=============================================================================
//================================== 图形TFT ==================================
//=============================================================================
/**
* Specific TFT Model Presets. Enable one of the following options
* or enable TFT_GENERIC and set sub-options.
*/
//
// 480x320, 3.5", SPI Display with Rotary Encoder from MKS
// Usually paired with MKS Robin Nano V2 & V3
//
//#define MKS_TS35_V2_0
//
// 320x240, 2.4", FSMC Display From MKS
// Usually paired with MKS Robin Nano V1.2
//
//#define MKS_ROBIN_TFT24
//
// 320x240, 2.8", FSMC Display From MKS
// Usually paired with MKS Robin Nano V1.2
//
//#define MKS_ROBIN_TFT28
//
// 320x240, 3.2", FSMC Display From MKS
// Usually paired with MKS Robin Nano V1.2
//
//#define MKS_ROBIN_TFT32
//
// 480x320, 3.5", FSMC Display From MKS
// Usually paired with MKS Robin Nano V1.2
//
//#define MKS_ROBIN_TFT35
//
// 480x272, 4.3", FSMC Display From MKS
//
//#define MKS_ROBIN_TFT43
//
// 320x240, 3.2", FSMC Display From MKS
// Usually paired with MKS Robin
//
//#define MKS_ROBIN_TFT_V1_1R
//
// 480x320, 3.5", FSMC Stock Display from Tronxy
//
//#define TFT_TRONXY_X5SA
//
// 480x320, 3.5", FSMC Stock Display from AnyCubic
//
//#define ANYCUBIC_TFT35
//
// 320x240, 2.8", FSMC Stock Display from Longer/Alfawise
//
//#define LONGER_LK_TFT28
//
// 320x240, 2.8", FSMC Stock Display from ET4
//
//#define ANET_ET4_TFT28
//
// 480x320, 3.5", FSMC Stock Display from ET5
//
//#define ANET_ET5_TFT35
//
// 1024x600, 7", RGB Stock Display with Rotary Encoder from BIQU-BX
//
//#define BIQU_BX_TFT70
//
// 480x320, 3.5", SPI Stock Display with Rotary Encoder from BIQU B1 SE Series
//
//#define BTT_TFT35_SPI_V1_0
//
// Generic TFT with detailed options
//
//#define TFT_GENERIC
#if ENABLED(TFT_GENERIC)
// :[ 'AUTO', 'ST7735', 'ST7789', 'ST7796', 'R61505', 'ILI9328', 'ILI9341', 'ILI9488' ]
#define TFT_DRIVER AUTO
// Interface. Enable one of the following options:
//#define TFT_INTERFACE_FSMC
//#define TFT_INTERFACE_SPI
// TFT Resolution. Enable one of the following options:
//#define TFT_RES_320x240
//#define TFT_RES_480x272
//#define TFT_RES_480x320
//#define TFT_RES_1024x600
#endif
/**
* TFT UI - User Interface Selection. Enable one of the following options:
*
* TFT_CLASSIC_UI - Emulated DOGM - 128x64 Upscaled
* TFT_COLOR_UI - Marlin Default Menus, Touch Friendly, using full TFT capabilities
* TFT_LVGL_UI - A Modern UI using LVGL
*
* For LVGL_UI also copy the 'assets' folder from the build directory to the
* root of your SD card, together with the compiled firmware.
*/
//#define TFT_CLASSIC_UI
//#define TFT_COLOR_UI
//#define TFT_LVGL_UI
#if ENABLED(TFT_COLOR_UI)
//#define TFT_SHARED_SPI // SPI is shared between TFT display and other devices. Disable async data transfer
#endif
#if ENABLED(TFT_LVGL_UI)
//#define MKS_WIFI_MODULE // MKS WiFi module
#endif
/**
* TFT Rotation. Set to one of the following values:
*
* TFT_ROTATE_90, TFT_ROTATE_90_MIRROR_X, TFT_ROTATE_90_MIRROR_Y,
* TFT_ROTATE_180, TFT_ROTATE_180_MIRROR_X, TFT_ROTATE_180_MIRROR_Y,
* TFT_ROTATE_270, TFT_ROTATE_270_MIRROR_X, TFT_ROTATE_270_MIRROR_Y,
* TFT_MIRROR_X, TFT_MIRROR_Y, TFT_NO_ROTATION
*/
//#define TFT_ROTATION TFT_NO_ROTATION
//=============================================================================
//================================ 其他控制器 =================================
//=============================================================================
//
// Ender-3 v2 OEM display. A DWIN display with Rotary Encoder.
//
//#define DWIN_CREALITY_LCD // Creality UI
//#define DWIN_LCD_PROUI // Pro UI by MRiscoC
//#define DWIN_CREALITY_LCD_JYERSUI // Jyers UI by Jacob Myers
//#define DWIN_MARLINUI_PORTRAIT // MarlinUI (portrait orientation)
//#define DWIN_MARLINUI_LANDSCAPE // MarlinUI (landscape orientation)
//
// 触摸屏设置
//
//#define TOUCH_SCREEN
#if ENABLED(TOUCH_SCREEN)
#define BUTTON_DELAY_EDIT 50 // (ms) Button repeat delay for edit screens
#define BUTTON_DELAY_MENU 250 // (ms) Button repeat delay for menus
//#define DISABLE_ENCODER // Disable the click encoder, if any
//#define TOUCH_IDLE_SLEEP_MINS 5 // (minutes) Display Sleep after a period of inactivity. Set with M255 S.
#define TOUCH_SCREEN_CALIBRATION
//#define TOUCH_CALIBRATION_X 12316
//#define TOUCH_CALIBRATION_Y -8981
//#define TOUCH_OFFSET_X -43
//#define TOUCH_OFFSET_Y 257
//#define TOUCH_ORIENTATION TOUCH_LANDSCAPE
#if BOTH(TOUCH_SCREEN_CALIBRATION, EEPROM_SETTINGS)
#define TOUCH_CALIBRATION_AUTO_SAVE // Auto save successful calibration values to EEPROM
#endif
#if ENABLED(TFT_COLOR_UI)
//#define SINGLE_TOUCH_NAVIGATION
#endif
#endif
//
// RepRapWorld REPRAPWORLD_KEYPAD v1.1
// https://reprapworld.com/products/electronics/ramps/keypad_v1_0_fully_assembled/
//
//#define REPRAPWORLD_KEYPAD
//#define REPRAPWORLD_KEYPAD_MOVE_STEP 10.0 // (mm) Distance to move per key-press
//
// EasyThreeD ET-4000+ with button input and status LED
//
//#define EASYTHREED_UI
//=============================================================================
//================================== 其他功能 ==================================
//=============================================================================
// @风扇设置
// 设置用户控制的风扇数量。禁用以使用所有板定义的风扇.
// :[1,2,3,4,5,6,7,8]
//#define NUM_M106_FANS 1
// 使用软件PWM驱动风扇,如加热器。这使用非常低的频率,这不像硬件PWM那样令人讨厌。另一方面,如果该频率太低,还应增加SOFT_PWM_SCALE
//#define FAN_SOFT_PWM
// 将其增加1将使软件PWM频率加倍,
// 如果启用fan_SOFT_PWM,则影响加热器和风扇。
// 然而,每增加一次,控制分辨率将减半;
// 在零值时有128个有效控制位置。
// :[0,1,2,3,4,5,6,7]
#define SOFT_PWM_SCALE 0
// 如果SOFT_PWM_SCALE设置为大于0的值,则可以使用抖动来减轻相关的分辨率损失。如果启用,一些PWM周期将被拉伸,从而平均达到所需的占空比。
//#define SOFT_PWM_DITHER
// @额外设置
// BariCUDA膏体挤出机支架(这是啥)
//#define BARICUDA
// @灯光设置
// 温度状态LED,显示热端和热床温度。如果所有温度、床层温度和目标温度都低于54C,则蓝色led亮起。否则红色led亮起(1C滞后)
//#define TEMP_STAT_LEDS
// 支持BlinkM/CyzRgb
//#define BLINKM
// 支持PCA9632 PWM LED驱动器
//#define PCA9632
// 支持PCA9533 PWM LED驱动器
//#define PCA9533
/**
* RGB LED/LED条形控制
*
* 启用对连接到5V数字引脚的RGB LED的支持,或
*连接到由数字引脚控制的MOSFET的RGB条。
*
*添加M150命令以设置LED(或LED条带)颜色。
*如果引脚具有PWM功能(例如4、5、6、11)
*亮度值可以从0设置到255。
*对于NeoPixel LED,还可以使用整体亮度参数。
*
*==警告===
*LED条带需要PWM线和LED之间的MOSFET芯片,
*因为Arduino无法处理LED所需的电流。
*不遵守此预防措施可能会破坏您的Arduino!
*
*注意:需要单独的5V电源!NeoPixel LED需要
*比Arduino 5V线性稳压器产生的电流更大。
*
*要求PWM频率在50<>100Hz之间(检查HAL或变体)
*如果可能,请使用FAST_PWM_FAN降低风扇噪音。
*/
// LED类型。仅启用以下两个选项之一:
//#define RGB_LED
//#define RGBW_LED
#if EITHER(RGB_LED, 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
//#define RGB_STARTUP_TEST // 对于PWM引脚,在所有颜色之间换色
#if ENABLED(RGB_STARTUP_TEST)
#define RGB_STARTUP_TEST_INNER_MS 10 // (ms) 换色速度
#endif
#endif
// 支持Adafruit NeoPixel LED驱动程序
//#define NEOPIXEL_LED
#if ENABLED(NEOPIXEL_LED)
#define NEOPIXEL_TYPE NEO_GRBW // NEO_GRBW, NEO_RGBW, NEO_GRB, NEO_RBG, etc.
// See https://github.com/adafruit/Adafruit_NeoPixel/blob/master/Adafruit_NeoPixel.h
//#define NEOPIXEL_PIN 4 // LED driving pin
//#define NEOPIXEL2_TYPE NEOPIXEL_TYPE
//#define NEOPIXEL2_PIN 5
#define NEOPIXEL_PIXELS 30 // 条带中的LED数量。(禁用NEOPIXEL2_PARATE时最长的条带。)
#define NEOPIXEL_IS_SEQUENTIAL // 温度变化的顺序显示-一个LED一个LED。禁用以立即更改所有LED。
#define NEOPIXEL_BRIGHTNESS 127 // 初始亮度(0-255)
//#define NEOPIXEL_STARTUP_TEST // 启动时循环使用颜色
// 支持由M150 S1控制的第二个Adafruit NeoPixel LED驱动器。。。
//#define NEOPIXEL2_SEPARATE
#if ENABLED(NEOPIXEL2_SEPARATE)
#define NEOPIXEL2_PIXELS 15 // 第二条带中的LED数量
#define NEOPIXEL2_BRIGHTNESS 127 // 初始亮度(0-255)
#define NEOPIXEL2_STARTUP_TEST // 启动时循环使用颜色
#define NEOPIXEL_M150_DEFAULT -1 // M150不带“S”的默认条带。默认情况下,使用-1设置所有值。
#else
//#define NEOPIXEL2_INSERIES // 默认行为是并行的NeoPixel 2
#endif
// 使用一些NeoPixel LED进行静态(背景)照明
//#define NEOPIXEL_BKGD_INDEX_FIRST 0 // Index of the first background LED
//#define NEOPIXEL_BKGD_INDEX_LAST 5 // Index of the last background LED
//#define NEOPIXEL_BKGD_COLOR { 255, 255, 255, 0 } // R, G, B, W
//#define NEOPIXEL_BKGD_ALWAYS_ON // Keep the backlight on when other NeoPixels are off
#endif
/**
* 打印机事件指示灯
*
* 在打印期间,LED将反映打印机状态:
*
*-当加热床达到目标温度时,逐渐从蓝色变为紫色
*-随着温度的升高,逐渐从紫色变为红色
*-改为白色以照亮工作表面
*-打印完成后变为绿色
*-打印完成且用户按下按钮后关闭
*/
#if ANY(BLINKM, RGB_LED, RGBW_LED, PCA9632, PCA9533, NEOPIXEL_LED)
#define PRINTER_EVENT_LEDS
#endif
// @伺服系统设置
/**
* 伺服数量
*
* 对于某些伺服相关选项,NUM_SERVOS将自动设置。
* 如果有额外的伺服需要手动控制,则手动设置此值。
* 设置为0可关闭伺服支持。
*/
//#define NUM_SERVOS 3 // Note: Servo index starts with 0 for M280-M282 commands
// (ms)下一次移动开始前的延迟,为伺服系统提供到达目标角度的时间。300ms是一个不错的值,但您可以尝试减少延迟。如果伺服系统无法到达请求的位置,请增加延迟。
#define SERVO_DELAY { 300 }
// 仅在运动过程中为伺服系统供电,否则请关闭以防止抖动
//#define DEACTIVATE_SERVOS_AFTER_MOVE
// 使用M281编辑伺服角度,并使用M500保存到EEPROM
//#define EDITABLE_SERVO_ANGLES
// 禁用M282伺服,以减少功耗、噪音和不使用时的热量
//#define SERVO_DETACH_GCODE
马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化