From ec595fc903540564be757bcafa745cd5c4a52cd0 Mon Sep 17 00:00:00 2001 From: whb0514 <112596503+whb0514@users.noreply.github.com> Date: Wed, 6 Aug 2025 14:12:07 +0800 Subject: [PATCH] V1.7.1 --- README.md | 6 +- UI/xindi_800_480.HMI | Bin 36663031 -> 36663031 bytes UI/xindi_800_480.tft | Bin 20463548 -> 20463712 bytes config/box1.cfg | 7 +- config/box2.cfg | 7 +- config/box3.cfg | 7 +- config/box4.cfg | 7 +- config/gcode_macro.cfg | 207 +++++++++-------------------------------- klipper | 2 +- 9 files changed, 70 insertions(+), 173 deletions(-) diff --git a/README.md b/README.md index f2f0364..0c17971 100644 --- a/README.md +++ b/README.md @@ -9,15 +9,15 @@ QIDI PLUS4 is a 3D printer that uses Klipper as its foundation. This repository For convenience, QIDI provides version-specific packaged files. Please download the necessary compressed package file prefixed with "PLUS4." Select the appropriate branch for download, with each branch name reflecting the corresponding version. -## V1.7.0 Update Content +## V1.7.1 Update Content **Note:** After updating, the Klipper configuration file will be replaced. The previous configuration file will be backed up as `printer_{datetime}.cfg`, printer recalibration will be required. If you have a multi-color box, it is recommended to disconnect the box power supply. After the firmware update is completed, connect the multi-color box again, and the box will automatically update the firmware -1. Support multi-color printing related functions. -2. Fixed the bug that printing cannot be paused during printing. +1. Optimized the resume printing function. +2. Optimized the error message for material wrapping during printing. ## The online update version will be uploaded later. If you have already updated this version earlier, please ignore the online update prompt. diff --git a/UI/xindi_800_480.HMI b/UI/xindi_800_480.HMI index 7d2a9d22f2092da4325b1f698325482760bec3e5..0ccaf7c61688df70b8d342651bd752f0205b18b3 100644 GIT binary patch delta 3598 zcmd6pdz6*a8^`x|&!vWpQl>C*=t5&oCQ0dLq7tGggreK%GE=8HU38H#&9^b>TT{AB z7j;56LX*mn>I_0iid;e^qf{eZq?<<0nK`xBZ!PQh@9+1nwZH50KF@yk^E`XM>wVu7 zJJwY@5gLVM1EMx|GH(t%9EB#+jtr_9ZPwm^l~o2;je?n0JF_M*tx4uXA)Zvui!!fj z+33b54TtnH=dV@CUaQqGCOp=4GKFh9na9e8#(cM6u}%HCp)HazsJCs@>deGB- z|Ivg{LH2NSHsdX9&K7LRR&32%naVc2jkmKc+p#_GU6ay)bSEb};l&v7EfNu11lPT^EO&uN^_8Jx)i&f;v& z;atAJd7RGx7w|>C#Fx2{i@2CexRkH(RW9Ree4TG_ISaXhZ*nD9aW&s!5#Q!JT*G&{ zmg~5lK^F5pzRwT1fgkcCe$0*hgrD*=ZsONGZ}=_0<92?}ANV78 za3^>1C+_CYEa5NQ!@c~K`?#M6SjyjckiYW~5Az6*@(&*4pFGYJJjqi$&A)htW&E3G z^B_PLih`n{7$_F11XYIOpbMZ2p(@ZtP&{-oR28ZQT>@2yYCxAl2~bU_7IYbOIdlb- z2-SwJgsy@-(ACg2P#vf)R1c~TT?<_YHGq!D=G3pIppfKs4F(2Y=I=q9KMbTiZx zY6jf`HHTV2EumIWYv@)e6>0H>9z9)KQ%9)h|-4?~YYk3!v{9?)aZ<4{ki7t|Z-1NDW{peLYyP=9CuG!ROMGN3`w zV8{mzfifXKG!z;J4TnZRPeLQ1QP5~;4D=K<7J3@Wf}Vl0p>a?SL})ye3q1?vK@*_o zpox&6Nzh~{ADRM9g`S6|LDQib&`hWRngz{<=0J0y7od62d?)}dfL?@Nf?kFeLW`iq z&=P1V^a}JUviOb)0D$$0dc37?q%T;0Vgyrh6ToaZ$ zVW}IIdSR&_mTSXuU051~B`GY|+u*KK$@c3TV;lM=tk>$m=JX_cbJnrO6<@-W&5Riu zRl(^kjj0t~!8xgp=eBjcvV-H#IvV4T#J1{eOhP2KOIKqOBkb$ucw+bSoMo2ubOG!7 z8Z$DoP?P?~%!}}s>8`kTK4ao+MRE6Ly2Qo9jA;-_wtu8C%_CfAtm7Wpjtj@$VZ`FS0|8H#qM0k>jx&E4aM>mp*llk2e_;`i&~Tc5ZQJ ze0-bZ`0bAC?{M6Dw>yr)UtBYF_Bs2EQfIGx$Yh;==*Ap%-5mPUn42OU)H&%Av^e9q zi^2JaG(FmJPG!e)tKj_l@l|1lM|Lr%`Z*5ue=_0RjWL5RcfsSY4E;Ao0%~33cv(Hi zts6Mrn(UIbO@SF3iG8oJTXTC;$46R(I4iQ%ajDL6bz8@`bZ~rMN5=y?JI?Ovcy>3( zE4sUa>h^T@mVF&(b?xtNGBRMYBUK;t!DK}^W2ocO5sn9rcD#Qq%&5rx-q|pD5k5ee zoCpufgBcg$Lla@fM}^Kmd=1NYj^odlJId{2X1WBYXS?FY%!3&bS?I_DH)qH~oPU4p zTjIKZbeZGLZ@^TK#O_`ZNIiC)ZCy}Y^iFi}@FuU#xEOT5?#W0iPt~hm zTCnzBuYJOXl5A0uty9(G>zj72jx>MT;NX&dUfb2e8#r^oYwO2(eC3gSe8Iu_Nw%%U z&4GRgy|!V*kvTjq_|w!Rn_|&EP;GjWZ65C_oi(NOx#^zY3YV5nTpB!k$ZP9{^M$*v z5omVQYpaJ^8y;RZ6g|KfygOuSb8g0ew!J>IFHQg5Rk3AdbCc}k|FUKIF{eXY7IV6x lJvuCyx+Zio7Zoh(JmiW%kG{z^A#k>^o{bF_d%gA<{R2)<6Mz5! delta 3139 zcmd6phj&#)7sY2!LL$8gp#>pQq!U_bB4|)lkccRtNKud~C66v8luZb-14w|-10n$h zF%;<-IwB%PK$IdyrFS7HM0^h~%zyB$@2++B`pua+_nb5Lt~HZ!VpHA>zolh%3))@< zE4p6~f=Rm3vtTeXZ-uPP(JN07Y9q?&< zvZ`Vwdv~TWSX%|ATFuIneT9O@=HIt}lrP?gc%O~;1;zV<<9%7;eIcuTp_v)~(~POU z&ePbhi@SF8pkl%v+mc?%&Ya)H2`xF0<7WfOY*Xy!2>##2C@mbdAb8Ntde4Z~b znvM7(Ut(jv%vbm-o3JTgV>8C^bvEZ4Y{57A7F)6vTk~zc!!~@EZP||P*@5rzeRgCg ze!$M`!mjMb?(D%2*^|B4n|&BdAN#T&`*Q#Xau5geBM#wE4&!jfaRf(l6i1UB!+4Hm z0>|-Vj;EN&37p7D{DhO4#3`K0X-wvH&frYW;%v_0T&8dy=krr8;AdROR4(FTe$Fqr zgiHA)m+>p6aXD9TC0FrluI3u9Vc-%p?4XNBJ{<;V~ZP37+JyJjK&I!?XO2zw-~C<9S}-MPA}%Ug1?< z<8|KPP2S?4yv;kz;9dU3zj=@MnaO|nAOQkop&%$2$^wNzq0kdhRwx^k9m)aagmOW- zp*&DtC?E7BlpiVpg+T?OLQr9-2vigbhl)W@LB*jGPz3ZeR1zu$m4?bd&p>6Na!`4w z0#p&I1XYHrK#@>Ys2WrqssYu6qM%w(ZKw`Z7pez63)P37gBm~$q359&plGNO^dj^U z)EIghdIfqFY63NdUW1xJG0^K!bLb7I1@tEL7Ss}I1+|9WhTehNK<`3rp>|Mvr~~vK z^gh%P>I8iNb%we?U7>DJcc=&SA=DG<1@(sdK(UYy>I?OQ`a=VtfzTjmF!T{L1R4qr zgN8$K&Cg;l zCNvA04b6e(LMhNZXg>5Qv;g`HS_q{=i=f5O=g=3>5@;#(CA19s3QB{PLo1+_&?@L_ zXf?D3S_`d%)#x3~hn7LffG2&<|@ff{sEzL%%@BpySX9=p^(jbP75Roq^6mzd^r4e?aG;^Uww8B6JD5 z3|)b)Lf4?{&<*G&bPM_ux((fdGN8NAU(nysJ?K7^3H<{-K!O#ltW}UzuvHeT5UWtD zC#wpB3R@MiDrz@|+iX386I&k2 zOwZLL+>Q$lii(U%pV>RyM#kBwsPu?gWo@49DGkq5wxP+Fqqp{$Te7STOYSgfM@V|w z@^D+E{zTR)X8rP1K#B*XL_i_}@^nB-2BcI#N(ZD&K%NOm*?^P_Ncn(Nu<5K-(MH}* zJ`mHVQObl1Wo*HeUimB8sVQwcRkUF#57J88ko1B6Qbs6w(v{8C(?btewsmsmTwHuf zN|Qw}wf#q7my|93gRnx}pX%cxb(-(a;d{k-BJ1a;ak9^G*Z{{<2RqI`3}&#mK5+z0g2x32Guq?nV_`;lTx2|2nlauWWrCZC wn2g8%)Tu5(=^3uL)Y&ityx8!0Zq2L(FoRNXIIoSF*fh4hO>Y`o!Dh_=7se=F(*OVf diff --git a/UI/xindi_800_480.tft b/UI/xindi_800_480.tft index 2fc26c7da49ea39eecee414a9125d1de0a239240..cde0604b390e72e0cc99f3d66755742c995620d0 100644 GIT binary patch delta 27235 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 305 %} - G1 X82 Y324 F6000 + G1 X82.5 Y324 F6000 G1 X95 {% else %} - G1 X82 F12000 + G1 X82.5 F12000 G1 Y310 F12000 G1 Y324 F600 G1 X95 F6000 {% endif %} +[gcode_macro EXTRUSION_AND_FLUSH] +gcode: + {% set hotendtemp = params.HOTEND|int %} + MOVE_TO_TRASH + M109 S{hotendtemp} + M83 + G1 E1 F50 + G1 E28.13 F611 + G1 E0.97 F50 + G1 E8.73 F611 + G1 E0.97 F50 + G1 E8.73 F611 + G1 E0.97 F50 + G1 E-2 F1800 + {% for i in range(1,5) %} + M106 S255 + M400 + G4 P6000 + CLEAR_FLUSH + M106 S60 + G1 E34.8 F611 + G1 E1.2 F50 + G1 E10.8 F611 + G1 E1.2 F50 + G1 E10.8 F611 + G1 E1.2 F50 + G1 E-2 F1800 + {% endfor %} + M106 S255 + M400 + G4 P6000 + CLEAR_FLUSH + M106 S60 + + # Excute when start printing, prior to gcode file [gcode_macro PRINT_START] gcode: @@ -247,139 +282,11 @@ gcode: SAVE_VARIABLE VARIABLE=runout_{i} VALUE=0 G4 P100 {% endfor %} + SAVE_VARIABLE VARIABLE=extrude_state VALUE=-1 {% if printer.save_variables.variables.enable_box == 1 %} - {% set last_load_slot = printer.save_variables.variables.last_load_slot|default("slot-1") %} - {% set value_t = printer.save_variables.variables["value_t" ~ extruder]|default("slot" ~ extruder) %} - {% if printer['hall_filament_width_sensor'].Diameter > 0.5 %} - {% if last_load_slot != value_t and last_load_slot != "slot-1" %} - CUT_FILAMENT - MOVE_TO_TRASH - M109 S{hotendtemp} - EXTRUDER_UNLOAD SLOT={last_load_slot} - M83 - G1 E18 F300 - T{extruder} - G1 E1 F50 - G1 E28.13 F611 - G1 E0.97 F50 - G1 E8.73 F611 - G1 E0.97 F50 - G1 E8.73 F611 - G1 E0.97 F50 - G1 E-2 F1800 - {% for i in range(1,5) %} - M106 S255 - M400 - G91 - G1 X-3 F60 - G1 X3 F60 - G90 - CLEAR_FLUSH - M106 S60 - G1 E34.8 F611 - G1 E1.2 F50 - G1 E10.8 F611 - G1 E1.2 F50 - G1 E10.8 F611 - G1 E1.2 F50 - G1 E-2 F1800 - {% endfor %} - {% elif last_load_slot == value_t and printer.save_variables.variables.slot_sync == "slot-1" %} - MOVE_TO_TRASH - M109 S{hotendtemp} - T{extruder} - M83 - G1 E1 F50 - G1 E28.13 F611 - G1 E0.97 F50 - G1 E8.73 F611 - G1 E0.97 F50 - G1 E8.73 F611 - G1 E0.97 F50 - G1 E-2 F1800 - {% for i in range(1,5) %} - M106 S255 - M400 - G91 - G1 X-3 F60 - G1 X3 F60 - G90 - CLEAR_FLUSH - M106 S60 - G1 E34.8 F611 - G1 E1.2 F50 - G1 E10.8 F611 - G1 E1.2 F50 - G1 E10.8 F611 - G1 E1.2 F50 - G1 E-2 F1800 - {% endfor %} - {% endif %} - {% else %} - {% if last_load_slot != "slot-1" %} - MOVE_TO_TRASH - M109 S{hotendtemp} - M400 - EXTRUDER_UNLOAD SLOT={last_load_slot} - T{extruder} - M83 - G1 E1 F50 - G1 E28.13 F611 - G1 E0.97 F50 - G1 E8.73 F611 - G1 E0.97 F50 - G1 E8.73 F611 - G1 E0.97 F50 - G1 E-2 F1800 - {% for i in range(1,5) %} - M106 S255 - M400 - G91 - G1 X-3 F60 - G1 X3 F60 - G90 - CLEAR_FLUSH - M106 S60 - G1 E34.8 F611 - G1 E1.2 F50 - G1 E10.8 F611 - G1 E1.2 F50 - G1 E10.8 F611 - G1 E1.2 F50 - G1 E-2 F1800 - {% endfor %} - {% else %} - MOVE_TO_TRASH - M109 S{hotendtemp} - T{extruder} - M83 - G1 E1 F50 - G1 E28.13 F611 - G1 E0.97 F50 - G1 E8.73 F611 - G1 E0.97 F50 - G1 E8.73 F611 - G1 E0.97 F50 - G1 E-2 F1800 - {% for i in range(1,5) %} - M106 S255 - M400 - G91 - G1 X-3 F60 - G1 X3 F60 - G90 - CLEAR_FLUSH - M106 S60 - G1 E34.8 F611 - G1 E1.2 F50 - G1 E10.8 F611 - G1 E1.2 F50 - G1 E10.8 F611 - G1 E1.2 F50 - G1 E-2 F1800 - {% endfor %} - {% endif %} - {% endif %} + BOX_PRINT_START EXTRUDER={extruder} HOTENDTEMP={hotendtemp} + M400 + EXTRUSION_AND_FLUSH HOTEND={hotendtemp} {% endif %} {% endif %} M106 S0 @@ -746,41 +653,19 @@ gcode: {% if printer['pause_resume'].is_paused|int == 1 %} {% if printer.save_variables.variables.box_count >= 1 %} {% if printer.save_variables.variables.enable_box == 1 %} - {% set retry_val = printer.save_variables.variables.retry_step %} - {% if retry_val == None %} - {% if printer['hall_filament_width_sensor'].Diameter > 0.5 %} - RESUME_PRINT - {% else %} - {% if printer.save_variables.variables.is_tool_change == 1 %} - RESUME_PRINT - {% endif %} - {% endif %} - {% else %} - {% if (retry_val.startswith('QDE_004_002') - or retry_val.startswith('QDE_004_003') - or retry_val.startswith('QDE_004_004') - or retry_val.startswith('QDE_004_005') - or retry_val.startswith('QDE_004_006') - or retry_val.startswith('QDE_004_009')) %} - TRY_MOVE_AGAIN - {% else %} - {% if printer['hall_filament_width_sensor'].Diameter > 0.5 %} - RESUME_PRINT - {% else %} - {% if printer.save_variables.variables.is_tool_change == 1 %} - RESUME_PRINT - {% endif %} - {% endif %} - {% endif %} - {% endif %} + TRY_RESUME_PRINT {% else %} {% if printer['hall_filament_width_sensor'].Diameter > 0.5 %} RESUME_PRINT + {% else %} + M118 Printer resume failed {% endif %} {% endif %} {% else %} {% if printer['hall_filament_width_sensor'].Diameter > 0.5 %} RESUME_PRINT + {% else %} + M118 Printer resume failed {% endif %} {% endif %} {% endif %} diff --git a/klipper b/klipper index ff03522..4bb7c63 160000 --- a/klipper +++ b/klipper @@ -1 +1 @@ -Subproject commit ff035227c2dc74a767e93786933a4560a790728a +Subproject commit 4bb7c6337936ef273e621d1f55bc0ef92114785d