From 75502a91c162c38b18c4ac33c9f383e3bb4640f6 Mon Sep 17 00:00:00 2001 From: Hendrie Bosch Date: Mon, 27 May 2024 19:52:51 +0200 Subject: [PATCH] Firmware upload --- ...e_generic-bigtreetech-skr-mini-e3-v1.2.cfg | 120 +++ klipper/DNV-TPU-Ender3/Firmware/klipper.bin | Bin 0 -> 23168 bytes klipper/DNV-TPU-Ender3/Firmware/printer.cfg | 183 ++++ ...r_generic-bigtreetech-skr-mini-e3-v1.2.cfg | 850 ++++++++++++++++++ 4 files changed, 1153 insertions(+) create mode 100644 klipper/DNV-TPU-Ender3/Firmware/example_generic-bigtreetech-skr-mini-e3-v1.2.cfg create mode 100644 klipper/DNV-TPU-Ender3/Firmware/klipper.bin create mode 100644 klipper/DNV-TPU-Ender3/Firmware/printer.cfg create mode 100644 klipper/DNV-TPU-Ender3/Firmware/printer_generic-bigtreetech-skr-mini-e3-v1.2.cfg diff --git a/klipper/DNV-TPU-Ender3/Firmware/example_generic-bigtreetech-skr-mini-e3-v1.2.cfg b/klipper/DNV-TPU-Ender3/Firmware/example_generic-bigtreetech-skr-mini-e3-v1.2.cfg new file mode 100644 index 0000000..a5a306a --- /dev/null +++ b/klipper/DNV-TPU-Ender3/Firmware/example_generic-bigtreetech-skr-mini-e3-v1.2.cfg @@ -0,0 +1,120 @@ +# This file contains common pin mappings for the BIGTREETECH SKR mini +# E3 v1.2. To use this config, the firmware should be compiled for the +# STM32F103 with a "28KiB bootloader" and USB communication. Also, +# select "Enable extra low-level configuration options" and configure +# "GPIO pins to set at micro-controller startup" to "!PC13". + +# The "make flash" command does not work on the SKR mini E3. Instead, +# after running "make", copy the generated "out/klipper.bin" file to a +# file named "firmware.bin" on an SD card and then restart the SKR +# mini E3 with that SD card. + +# See docs/Config_Reference.md for a description of parameters. + +# Note: This board has a design flaw in its thermistor circuits that +# cause inaccurate temperatures (most noticeable at low temperatures). + +[stepper_x] +step_pin: PB13 +dir_pin: !PB12 +enable_pin: !PB14 +microsteps: 16 +rotation_distance: 40 +endstop_pin: ^PC0 +position_endstop: 0 +position_max: 235 +homing_speed: 50 + +[tmc2209 stepper_x] +uart_pin: PB15 +run_current: 0.580 +stealthchop_threshold: 999999 + +[stepper_y] +step_pin: PB10 +dir_pin: !PB2 +enable_pin: !PB11 +microsteps: 16 +rotation_distance: 40 +endstop_pin: ^PC1 +position_endstop: 0 +position_max: 235 +homing_speed: 50 + +[tmc2209 stepper_y] +uart_pin: PC6 +run_current: 0.580 +stealthchop_threshold: 999999 + +[stepper_z] +step_pin: PB0 +dir_pin: PC5 +enable_pin: !PB1 +microsteps: 16 +rotation_distance: 8 +endstop_pin: ^PC2 +position_endstop: 0.0 +position_max: 250 + +[tmc2209 stepper_z] +uart_pin: PC10 +run_current: 0.580 +stealthchop_threshold: 999999 + +[extruder] +step_pin: PB3 +dir_pin: !PB4 +enable_pin: !PD2 +microsteps: 16 +rotation_distance: 33.500 +nozzle_diameter: 0.400 +filament_diameter: 1.750 +heater_pin: PC8 +sensor_type: EPCOS 100K B57560G104F +sensor_pin: PA0 +control: pid +pid_Kp: 21.527 +pid_Ki: 1.063 +pid_Kd: 108.982 +min_temp: 0 +max_temp: 250 + +[tmc2209 extruder] +uart_pin: PC11 +run_current: 0.650 +stealthchop_threshold: 999999 + +[heater_bed] +heater_pin: PC9 +sensor_type: ATC Semitec 104GT-2 +sensor_pin: PC3 +control: pid +pid_Kp: 54.027 +pid_Ki: 0.770 +pid_Kd: 948.182 +min_temp: 0 +max_temp: 130 + +[fan] +pin: PA8 + +[mcu] +serial: /dev/serial/by-id/usb-Klipper_Klipper_firmware_12345-if00 + +[printer] +kinematics: cartesian +max_velocity: 300 +max_accel: 3000 +max_z_velocity: 5 +max_z_accel: 100 + +[static_digital_output usb_pullup_enable] +pins: !PC13 + +[board_pins] +aliases: + # EXP1 header + EXP1_1=PB5, EXP1_3=PA9, EXP1_5=PA10, EXP1_7=PB8, EXP1_9=, + EXP1_2=PB6, EXP1_4=, EXP1_6=PB9, EXP1_8=PB7, EXP1_10=<5V> + +# See the sample-lcd.cfg file for definitions of common LCD displays. diff --git a/klipper/DNV-TPU-Ender3/Firmware/klipper.bin b/klipper/DNV-TPU-Ender3/Firmware/klipper.bin new file mode 100644 index 0000000000000000000000000000000000000000..b2fed5ccce90e5e09cc7ea92144efe9e87e5ab89 GIT binary patch literal 23168 zcmbWf30PBC^Dutyl7&4iDw`S-R5oo8wTN0{60bl|-0Fh1-axfCxJ9&zOJ&o#)rw2& z-deS-ORa!HMMd0dTW#Mr5okfQVznaBe!nuz2TCL}HYe|SE9=l`wU|BcpBN{k6APT!JdQ8c`+s z12xd7UDOTlS!JZ2Og_lS#+k+;=tt~2BvqX?H&NkLT#uv-brq}4p>v41`jT}#K@-tQ z+c;gsHKYBAwEXJ+stPy>@Nl__2;&_*=5yK=zQB_+ zH=Oyik@x^fO{F46GJ$GX#ytu~G2%O%F}4}eHj7O2++wO2C@1+h+cD2Vsro6=(~F@Q zG24qF!jPg5W4ATf`x$xwUzAzNX6l9nj>TcWrdM3-yDm!BAS4_M@S3>)+ zFgE|0Y-7Cy)d&?afLql*u!$d+UqpUMH&G}m@t{D<7;X$txQm~k?k|4+-8^*gpb$~$ z@k!=|NlYA*%tSD5R{IdU?Q8p^l5#8Z2{Z%V2uxKS76DXuyQoGRiJ1BlY2`Np%EdH^ zk&jC3F%p3o@x&4bSkwv>Mix~(;m6r+?^YHvp->hF?YG#aR(t%M_KkwnN=Ogs0t6yD zj)^klLXR>2x9x|rb9?>gnc8F_8VU+=+s9`!syWI3{g;x_NiQ+`ojLI=4sem?NfzV^HfQv zw$fvA6~X!=g3c7k1|^Evpz(v)b?gyAEjuEl$b|~^Q=crF_Yt2#lr>jNJwK=I%O$9T z+1HB6LH=fHkj3JiNb`q<9~-?O{a8p4e^=v??4OOIubcOmd?uu*dYUR5rBGKWT)=x~ zHd52@Na2|Zyv~Lv5uO?Fn48>`+c{ZjkS5q|T| zK9;zgcb27=AOcVQj&F%MbsQxiGZUq{H#utG)g8bvcjMyvg`lE}DajkU?4vAU9F z(!^WKXx>|}E8kfb_h0ZNa7zkzVQk`oN0O12Qfui%El*Sa%PIc39m%B?sB#F@;r*3W zrkjxX;!u)y{7(Wpq)ojq$nrcIR&r^|Dy0l+kTL|f8A?!8+no$1j9tmmET+1Ey><_Uh3V7Sz3fajy$tr@hE)!@OZS}V z`Fk%KC-`UEnB27aay)%J`F)H&fFRQ3n@=j~0Kkrc~}zDZ&SmFhi=& z03D#Cbja#Y`U^x~QXoPOYuYU9mtojV*%+^{Ydk|8<5}E|l-=@7?l60td%#Amk*`Q! zrdW1l*~8^6T*itJvACKjkFSt3&QZI1Ndf%!1%5FuS*h5;Bf-D0AK?@$sqZSD$kcY* zC|Kv4*5i75r8LH^R?!<}-$tS&lK-=v)~{Qkh20(wcsjbBcpfane5EKvjMy=A_3bo6 z>myduNf|7`e`l8);wwsl-g?kYo`39^uW^#>u}Sf;7R&8A{S_{aqm7e;cWJ1)G!Ca7 zwdN)wP0SPt0hdSWJ*_=GrwKhn(ztcHvt!fEJq4mAfa$~M`lRwwX|%aYpbL+;kZ$GH znLa{YR#_Tn5j+dmH@mrAfi%4=Ams4a5p}7}6TD}0M}r5(bO6i`+yeCvuuE`TC~a}0 zy<*zy&cXTgqZwlkV5%(tcf5bsdI8n{O_6j^tZ5ubd+5Ckv$)|f2mH8eEK*1lN&b%u zV!g9u7Dp(qu@sa&ynrh4dd6#rK99#AS%azkB3MT|wQKV?(*R@XK#C)q)0Y!*NAk%c zS;g<=p!byeC2c6eyNuv{?d3|E@ku=;1gMZvbdppMVQV>pAJ_F@^Fg79d^PuD6B(Ai zc7F)5vGqpbNe*&If>aVSH4t=&0o#!eL^7x=os&G+$d)I zsB|7y```#2F<9C{Qb8d}A=?FX**7~*7uM`agoOB-W`%@g7iz{dQ-rUn#e!Q$GjrNE zKegLRIy_&kz;n2*FL3^DmvfI`*@I_DoK2qgN>ag!p4i=Q^%1VQH`&^mg}L*xN~OTd z4C*_@O1mw#L(4=lu?(K?mUaieJiOQL!gy<+j$T41`*R-Zf>xQffG?!{S#XLX34 zKih{Bx2mU{d9I!lX%X`(N**0yAzCc&5Rs|Pb45N(=sl$HOHnc^fz%U&wF0d_p$TPP z)ZdioD#`3%R{eDJ(mv|suNZ^Mu6Kn9AE=<8A`GXi?5f}S3No;tbs9n)6{4*Icy zNOm3Q<1sE|M2sh_K|&&n>CZ$|%KFE`jDJyVw-wooGy#_IV3E#h`FFW2g0uwkQlDNH zq>$--6N61KV`C`3$3?sC4S;Mm6Dkk0-IipBeW-WT=B2`UF@Qn+YZ}E#;$%wi#RixP zK*!}l7kCTKGprl2@XUn=^y-ro=%x3Xkjklx2XWtv$(ot-^E8whYsF-dY20F7Mg+0- z3tr|?rKkQ5cbkw_-vKRB!{=t*VLdo4Pf#ALBnh=#rreoC4z*lEQ@D^|6x~se=bZ<; z3hzb!ED`S0f3sfXHbv++aZ{?uIvO;<9O`Ew@bZ5518QBfCyjUsbpSTsQbVo9mdRf8eaC9`p~K(QM7#S~H=Py^8TVvA$x! zc&ln>C(lmt=ZHup-;kl@b2I$e4EATBbjxzc+MlAL=hjY1o|@zjHjf(W^z8SIMC1@` ziS#Viq?oD581uhGDK%aW+8;IgMD(!m7sn-!gBHqG^-{2umf}{XasKgS#K~H9@)(Q@ zMi`eKY4ne1GzZ5M5g*qkBq#i*4RW;E)rgb}8wnVv%*H@~dA~L`Io8pdbhKXAc*q(6 z<8z`mIyu_eHbdKr99%AM6gfB=--x0{+Y(Q^IdV+n$apGZ^b78EpX9z6Q)})N%*PzS z)DtlEt~+EM3TaqfJkT5cV(RIDI<4`#30G)&dSK#xbhVE!o`x z3z{k9hc=3m#g4qxkssLj7MvYOMyl1YUJ)YHveK8UR-OdwcE}cu%1k`ZHEhuga-}h@ zG|H7mxKf!bl~#)79%dwm6~7K7f0*4?+P%)P)@2nUIYsPhKgy$+qV`-~T8Z~>psoqV z^jRYz=Nn1+pN*9K_eNUY4EqU5|H+Rc5%`HM&`MFlbwL*jkvuiv8yti`{nu->G# zzRAd{R_D4??TGj10@VOx9j*3CM$dE5KT8QEE|)_2+W#uI+X=PZ4ssXfFc6*qc!Kn@ zvwJk*wSg`wJ!+jadL;Es#&n!B`~=>7xhu?8`i%X*I{fDSNYRF#LYohB2(Q|I!$o31<&dwB}9@PQPPRv_96{ zG2Ag~T5BQg^Hy-C#!(Z@VZ6btsRF}~#PC@Tcz!AAfae!L`b&lb9%}v@J{~D}85x|u z&w+oRVV?v4KEuZt-cj@4@IwF|s9|`(?|=vV`wVY7;Bn30@G9sH+qMVxryEV?k*mgV zDBEtE0=7?lDY=?v@;C%Kg5E9%U0RwX2OVf=S9KHZC)R(%=H+Wy(%>0}HTggl!FON4 zx)au$kOKBxY;NgJ@C~qVG8nYigj^Z+&w-v31@FFA3sMF$Ba&_g5^;QVzJRDU3$2LP z2RprZ%2$(9dAT8!>A_55n*qi%I$(Lb1!Jguws>25nM$up4rFcztCA=_yzP}lRWb_m z3#Rz?w$#?Xo-p5U2lS88`^kftmwg58xFI6hyO|`@*kDeTfx)8ra{^b zb@JqEVDX-2Pq1$q?ivmlg1O!)FpB^=8(>3H@L3tm%Hg!!PjuD<>iv@S>=cgTJt=8) zyQN18_KGd(4gjsmd9GlIp23oQBj{)7fzuAf{z(L~5Zmr4H<1*l8%b=Zl4^wP0s?yt zJ?agmq?*Jj$V{jJJ73V!j8uWL{?Z7E;C&irpC01?mR|Sybx^^ z=!xG6NL}$nD3CLfmK$QbtzY-6E0?bXD@OsRn6KRy(h2&Z>%9lO!>kQ<)_8Zu|05@X z+)Fs(A8k51aCvI$r%UX%=N%ZA^Zl=mRM6?di4>9<`o&SZ$zN$l0~UL^#3w5bvu&V||M}=?|KY-FCk-g82sL zi%b;}a>Rpds>ElEsWe8B4|WH(*9pF%qo#@QTfm4JJT4adF3_FfWU_`+1@M-|;?_F zm+jbgeR-mR+yh$#P7!$(rv5q{M^Q{gw)XNF~Dk~@>c$zrE)vm9C+ZfUn2w+~B>BxKC@ zCEx*-P2v3GG!7f6qh7Qh)5F}1S7S~vJmv#a#T;O&nBqqJ6S1cHxHzFYQyg6#Eml>B z>4U&0A&X0PVZtqavF|k%_CuxTaq4?4b1{csncW?^d5}~4oG?orxjB%__4(W^KC#2W z<8=F>M(N3&j`vCSXz{;l#I9Vj{kukY*SpSssnOH*{+hiEpXZ>TV*NaqL0m2Dflb9d z8GWDn5+cqm<>x@K)I%~rqdlqVs8YkK7-Iig!*b6ouu~B5n&)gUE0s9>5Qs0ag9l&f zZ#c|_t#tY#EFc??gKy<;m_v5Tc$EvG{|R-;0fYIF_FGrWSBpsE$>1Jt zfCu+(BRu{Sl;Y6pEY5rIQf|Lvp71)e+iJT1XBjc-EhzuKy9fAa9+f<_(0GLN9%=VD z;48WxmDK-d3Mv7O0~C9sKcZ2 zg`F7q7L1yd4KkmEF(c!=#_!cZ`;%(M9boLXkHA|N67n(lLsFaF|I==Zy?pEft{IOa zmN(n*9K@HpxyDdtZx0gz_H29DO6>bN%tbi7KX%(G7|Vt4V_(fn*!FJ00h|86V0XJ< zd5{qWMPapmda+YROuPp&LYDZ_2H9ZT?@oi}JVNV~8wG{}Bgl@aFJ*@t$f+BU$GbNY zcJBj_%P;j)@VXZ*gxwCOpyM9kd;1YCnD(#!xI}CXBzKg!IZnW{;Gh2x#v4nKU%8L- z_pu6NumMYx0f4U@@VR_|+98SpkVZicX|%TuOQH`2X<>~(=LT638CXdu{^G_sq*H#E zV^6~>!B`2!a7XDThs+XNJsqXdMtm0%m+o0fD1DXZ#!4%-yqt<#LE$w}fc<@Z=|~5~ z7zahxLD2}_O{B2fGX4t}QXGeJyKRQ6)JYd9njEF$U8SK8x=0ae#IPDysZ)L;h0#&^ zs;e}{1$*348sjP*;wa53b4yh*C~OUAO{=?Bap`3(M&FRV8uIqh;85K%7S9FVQx4m* zG!*&(GTYIIZUN6nF{~Ke2f~iWopy}}QdptfZhO(~EPXk45zG>x)6y+x1kk@nK`MuI zcz0HrXDWy>Bc*1KF^CT;!a%g6s z*sBKiFokz50o*)lQ|3_M^}sfra)qqo6J{itfves2>B5<9dKg_M}ju$l-S;FEsc21{gdwl9T9-_pbIA`so+_E z+JAk~k4=OE8Htly1y8vb;|5mKR)J;_Kdi&B_Mjk^6X0|7<9Vdi`J4F&U$b2irVCzj z$F$FsX4 zpgPC2*Yr2d0kwSwMb$mrOvF9R?+G5Xs18g$5_WI5jqAevP}OCP{Gg+j^Kh#{@`?`S zS|!}zD8cvck^GRG4Eqh=R+0Ruj`Xs>+a`D2ZX{ppGpM=_d;yL-9@n|16=#c>4Mnej zXAkiiou@gP$tfoJ7wssFP-X(Q!*G*fF#O6Y3rOA{e5hD9ko@EJfy(rRr4yLvr+I+l4LZQM0@F+?W3I3|!Q5STk+jXy8;ky^AoNsU-Gignx%=h~>o@ z=#lt7KnC~r;((i60hg}6$rgfEmIoHq_mZiVa8qW?6;$%c5)U0!UBJp5x9%F_-e44I ztM_N9V}|;L`%$Mw1@e2iNb{SLu?W6C{g6Td{;QM zMu(kT$)AOtmhClucBmisuw+m+*>a5(HS}U83({G$L$_)~=7%L8YhKhMIS*JUQ#OZF zRCyg_!)189^?@6Uz>naS?5!u_dvKxIGIKOY(;$WztkmUeJXo;2I>^Z=OrrN?dqX6H z2_hw;m=`cl=b-&Xc+SJ4g9q+kU=3ex0||^s{$krhV_Y#{;;uCzg$IKo+rX+*u3IN4 zR1Xa@kRSN&Y-Bvif6;~%sGoAxR3Rc%Ck%!_rV0U`I)HJb?}(LIIw4{HE`NckP z(x84-O(;E(d2ATYK(Age9QV+OqFXJX)u;);l2E=5>@>KEefN&UttRhXB`*T`PgB%8 zW8U$Mx7+SGZe?X4lPTp6u22Y92gA+rBP|WFB@4<6h5jmHgg9;~GPDtBGJ zgOfs`pX#d7I|-LTJcl3Vj?CO4$W?U`@0vnkfb1nL8IupC`9c^(9UQjH85!KB$tsTT zbgo-+@Gi~_7J9G_sH;4IdcBr{6Dp)Q-?c6&{Z)e&-tD%Npi{--b}&zcfKv=708PP7 zxr*e!fqU}9#+P^Ls1o-ZZpTYueEbTEI5?FOI;f&I1iAxNnwzAt!JHr1AS&|?30adi ze>1Gh0=S_(n^6G0bNHW0S!porr6_r!5G|`;uvxReq<0me*sP%na-lS=O0xydSdFqa zf6G3Nyb3AdTvYXfG0zn;jLsYT48sw)>GMyXnX!-kcO$)p7<{`#soP)j634yU1srMg z*I}CY{y##sONfNC6`!ma+t0Nk{j60e+H461iSkHT0Bf2+zaaPrwl$wBT2oNe1Ej+M zb1p-3$0VB=h{qw6)nG?phkK+Ne9#m7TrSyH931#&AFw4xE0-SO>Lr~u%GLFbNEKv` zGkv77TJ{Js83Ap5i))+6xkC*O9c`O@E%;96Zjj8V97vN^`-q{2Iqh3IuwNWS{b8nB zJV;{4n|)}jOak|a?x-J7sFXKgTLA5_+x`Xj&m@8Nr8es!jOJLS8%-E+-JJG<4$u*x z7Wr-B79wBGA0>g6V7j;q9B+|ytN}$Guxtdmp`Gtvt~CTQAW6=`dYN>l zO$xKFQ%?&VoAH~N%)h~=ZIacj<1~gaT^<{{nwbAc;#cjiBQrdcVYOWJg?){0n${bq zqDWnyA&=D=oKU~ln48?kP7Z#+kr_ty1NO0Fk4sAlCaVnZ&xvg*u%EF`B<+XeyXJ!h zt~HM5t{RCEJ#=>@G@~_;HH7>#&{*adU*QUjMQt*JzhQW6?WSJ zJBnyAAK_+&JgK3RcWNHq36z8F1!n|4w{R?hP+E|QqI1k}T6`1CX;b!c1GxP3F&75X zKM1mkeOV=}8PL}IqyBJ)s6gNESHR2Y>(5Ytv=a6EToYraGpC*@;KuT_C{%}{##;bR zt}|dgDoTsbnG=!$H6A)u1Cxm{exSiPtLx}Y6f+pZLTrGHnguZ@TFW}PTc9XtqtX~W zf zS}IDOvPxM@Mu%1+<&-RG1qpEd?Fj0nrBZm8+acA5WEW`M>LmIQZVKS1;09{5hOo@w zq!pe3<88kT@YmsqFZFQPm7ssyK_B2(c4u%W*&|#FOMz|q5G;adgVH$PfHho#-*KrN zpXVUoM4(OBZ8yQ9Q>;Ybv&3-)qD#*69`^n?F*CpcQEnfyii*+HQfovE))Yoregb># zC%CsiXQh4OYx|^57vfnJXfr9D`OGo!YlkGJh05DW>!z{&ZcC&58Ji_u8MP)w-PgSQFow;Ssb zc)x9nJ6?hQf6$Hfl5p@9qDlQo9Ls@k*X_1+I}KxC>!Pi4hh5Tbv$f6Vu$(-}DGkx9 z(?Zt?(W-SIU!#l=-(sw35)tb_Cb9*e7U1!6#$kZ(wqoTc*nj5f!aK~KRfbQ5dI?dD zZ_?ppw0es1ZSs|_`J9T$FcAEsE?g6P2;1*Iu6Dt|Pga@T*4#mW{FbZcLj=)D?ubEI z-ojzM07s4Bh@Tr>f9K&0a^UFY!Xd!jKEZDVI?lGytJlHVc&j+dxDL+7bVH`mOOK)g zDk%l2SSN(bBi6b@T!-Cux4XqCPhTetP`&Kc&I+hkDbukn^E%MLXQY!B_VwZMyV~su zt0@9}+!fuRok1j{a)G}5no&BQwvHsOH~9>`V!(H%@fATZ3%9!9jveq|9K&}w*A@0P z+HD_qr*m0lTB9D$c%3SrRq|3Q-;fLM>1DEtp3wG`t1VuOZjLtVVCACdfJ#z{lz6mt zas^M4{;*G-t(>&tOMAO`UEmlOqU%Uz#)YVryI?n?sFL>lr`1j3Nq&x)I5#@d01}3n z>~`fD^2HKhvqsyDC<0=K{L0rsi}(t6#~H8Y+>%HgE=e~)EQH_75o^Eb2fR)PUJai* z^>eJlzVvn3ZBbxF7i5N%XK>nd+_M0HR(D}oX(>{Qll?YcZbETU_GZnw${>@p z!W&=)bzxl+>ygq@=QxY>ftS6bl%P$57U%Z>Qb2v?tb_AaLpRCNI>~h<|ae7jSx` z6R!izs|n@@M|#0|;ox)gciAr_7$sMIhdRBw3 zMedi(g~&ve+`Ss};NR&1kzFt!L*bqU_%T)B(+5Sj)&JF)Zk!Af`q3RMWjAy>=LgRX z#Iuce*T-;*zV%eoo!0>d%lr6JPsh0+tMhQ43u-tQL@DLcl<_ z1gWy4v)?K)16C<1&z2-%|EXw+n0>%Sfd|y27QwCAHxOfm+r)zWMcDxg0-y>&FUMs< zsSf-)0cQwBc#=OuH24a{E4ws(7?GKX^NqGyqJi(cjy{RqHgTJ|xI4zr5~B!7ig26@ zgfcj(S2AeUDkgmlOQs7I0RZ<@fLN7c>=C5Gx@;l#$Bo{p@o*vqwh>Bq`31Ji_N?1Y zIh?t`ZsCF@oz)`P(_7e`+$?yP=p{*2ELe$#o$PmwZ(IO=!wEG$H^O$o*_5;c!4pm( zV7xRO?x<+!Ngq3vOzSl)Wx%njSZ+Q58SD#>sWiedzD`-_ZvP3S5FXO za4ze@_Ty~}dc|zU(n7+JkNu%Ul@wr=hV zwRszg_6SH-U!p8__+?UQhz%mbGLvQdcL=CxR<`d6j}}UNdC*1y$wC>?4o&S_iFJKY zi-$xMEomV{$~s?02Dd@v*L$+x;N|6pQ7eF${-fl z+9+X&J;aW5=5b>$CXY#DSO)HMl$7bCMltO5Ep4bW7wquMVB@GjzD#yhGv;L8Af)z}Z`Xb(Dawp$YR zsK46&ITyY%4q_N_1WT5H-y$6niv*0dm#}R50ouWLCD~X;1~^)ULX@pjYrG?IuZdmx z(qEAadSI>)ChNv=1Ta5`1nfT|_yYn`>=MF2JC)1R%jiV3BNAvI?{@BYEGsSo4OJ7TSZpmF?wd z{ez=5oc{Cu!Be3%22|b#-_sQEJ)Hxe6L?<}!=R5cHEC6A?6$dJ8{qxX)xn-}ZUVz4hy3cfrqvs?D}C0LV@00-kPxozC!$kC8fUvlGc4FT^7mySYv z^$U>_aQN-jc-5+3h?TcXCI;?-*|}mBlebGmdQqZ>&Tb38MC!q>ro&_2=ThQDB%KXy z#mSN+iGDKY#)WX=#O<10l|jtRP`k|w_{DbVF<2X4!m|!wNj;S~le63GAO~>W`%s2T z-ILw*z8edQX038dM%z&=$dNFoH1PwBcH5J#mwp|5hT^q>&+J{$c3@L(;Dr3 z2@-1ry#f3&PCxkvT|zOoHD*a()adjOr*YY_iojzKrc%Id2CN@hdf9FvLZ$+%lOTVD zJ!H3i*yU`!xC=$xw~R^cPa9eyX(KKKF$V|V6uY7mcrTPLPu zz|?Gs227*D@<;sUT)Ps^0k??p9V;RkiM224w#9>vha%RPGjeJrtuhY}*kvoPtWSqrN3ZQtX+qR=yqCB5DV*MCq7PF&0UpQnWL5JDU4KnJ`ZXr^Z+8h{x zwhw0dwr_lfd2({|b5|fw_Fisd8L%Z|A-brFPpa z7e3H!BN{Es0bf+N3h*r(|IYuw7v5=htm!+jrkye|-?2`xECg>6ScQLcsd8a;2ds}Q z$uCYQ(m|)5uAd2e$^dahICA4$r7zeoZvsVY*TmvCQWV)J3i03O%}$!Fcgqgsx@@Iw zv!M1@Si^|-%bTg+3Gu>GtD4G%v$#BWn*P4PeHy~Kw@5`)t9o(?#B3w}Uf!f+3#WxI zxvo5OBh-QQwu`4Xwz`$!?46dI>aC9N*EuL{aAvm`*X1mWmWCP22Ukk zs~6JoI;CNUI9KYZE+6I3uzp9Z$K`nEblc*(Uar$U@Vy?|9>M2m2g8nexlRi@Rgb?F z!V6*bP_*KZ(SZy0S+B0unS+@==k1SH5Uoqjn(3&@!>)>J`&IHLD zf{9pCSM)r0bSw+eBXZ_8d;s-q(Rh1Y4RGSw;;+mY8;>J+76XL|A5jm}|eg)E1B^uE?dZOc0*hZL$RFsOQ zIezim|DXS~NJFRyytCB&-n@aZt59T4>*TNS4C542?uoxqhzlFPpwX^WCV6B*d?bAL z9H!stIH7HpVUO_lu5d!Qy@1^ip$dzZSXOPlu+?8nS=zSZX!=EYoi?c*ZtqO>zj-8! znVyY!9pg2Q*K#QM9r0Sn`X<&tJz>pXhWt;k=4WIewF=fh-cQG%{w$QEpEftIfqjJa z5PWvwJyHbkST{LtrNpt!p~Nm*VOucV?uUS$KTW4?CY1%6oYsP`_9Z14J+i}LYe!5J9!% z5&G;DZacwq5vt6JrAJrWlD>r|n$*6+wen-&JqiX#i6k%TB)ZjWOA;vV{3JDV1s*jF^uZ@e|VSceJg_C+ju_*~CQbbDuwLiN~ z(!VBwU671RNL<1t!k3H*+|R)2M;c`v;DYnn$@Ld?A~@j>cSxf9TKpOKwyuS0@g_gg z1Xe{dV+3i-eAbIO(U_)BOWeCEfwkLugRjMjr@r=Q=916bEs~HQ{Di+{X}=t$s?y9fTZ;7~T5qR~=hd8Fy;>RSl_g zSA;iU&M?IbK*`B{8SI}Zu$Xfxd9sx8H+9;+>3aXsOm4g8XG7vR4~w8cD@!!%AbPZBX}$M|gZz{N}HRJ+JVDeuZ~0d_*e#YLvkqDt?65HMXH{ z!ZY!P(*{}qYZkBduc5369=zW19w>tIA`wy(JXpr#^^6o)8!pvvC@M|CJ~xgT7^Y;$ zK7IZ50I+7i>{LT6e#(m51P{)<_6VpMF6`H* z^64IZ;Ja6pmdYP>OXVL+Q(Jc}pUpxvbI~=y^UyUxRyf;m4I&`!8v3NCww5l3Z@kB) zw*F*FZM7}Ik-NEzQhAx@?DUV*H%_>p9+)vZV{gXYjL!tM9KP08L)!2e+~K_^1Y84H z|2Q^RuYNjsFhp4AX2>WjnsVetAQh7Rt0bio@754Ex9EMK;}Z0)O46#LNb9RqU`&`m zj&8JMfhVdIZWxxp8d}mJD^G_T0}EJZi}Z7o(pHV<$nrf|@D~OKz=+Jt)Xz_vpBTjM z!LCbHl*x~EMt%6MT`UJW`ml4K{RCU>o*kc*`SeI=K zK(qoxYRXo@S4A{*fv+(PTKhulIH-F8bx9Mp3Vtg0hL<-mowi|JyM$;tic<5x=3-iY z038bVA}Hc_fPW3({Z(F8e_GT)t*M7E;mq)jc(4IS$aG;D3|}(amHmMye-+IPNfk9{ zdy^}{w&l8Qr-b3)i|VpH?{-2B1Y7~CfhnQ}q|DoVmGfnFYyn^r0q+l8F#Un|9x6!# zX)G|_;KmsJ=n#6a!NY+2(E~X9H^A{g5syMoRp^9C4XAPp$aoIcI@Wz&e)EODpLWEp zgR|h%sosi1A?hc&>!fbvQO@ zeO6hoWMB9W{~=f$#2xnrU&fu=>BzO+Az3NA9=sSrg%8;F7(!N$`ooyM?Wy0Zkyg5K z1Za8gN$$ykAh{;6AF$Kmc76&(TeMgx=+!_0d=Nkj>j{|V%k@+sF`fOfWR!VoANMm< z_DM}&vo=)J5CDJwBdChZKB4Jl_U9>|K!&ms)H4ee<6E2Jfb%fZI&CP~fMG=D0~#lU z%>rW&Jti4%vaDo~mT4BlsK}V5>LXSnHViaVe?E6KX{E`#7J4KVBV+!m{i!j4xed{I zzc#L8#=vbE(4&$p>I7w#2gn>f+&pdJ3fNoRHP*vO8T3Z2VT-ZAaLahj;E_qC>oc|K zTQUpMZ)ILf_n1#*=;v!Qw#+ZcxHbP;hFYbLRVUQnRt@&}U$|r{S*$GK*=^6kqN+&( zJwgo+ozQlh9xOHAmV{P7s$+Xi1Un#TD=dDl|R)IRVxM9jnxPo2YS8vUsTe66oIA=L0UBlb%YEQcXtWwaY% zm5aqKlAeTB2C?okdWs;MEsN8^?-U_)wrq$Fey0e5vvu%H5dvnP(dgi}#j-jygz)1% zeS#qV(nmz;dYHW#dekW?#Fu)8_MIlst91gM^A^||#L!bHS{Dg$6j{5fxNKF&{x~7SIT{ifB{s zr>iM61kxFh#zQ*ORiEZgqLGlF)r&@INJ-2r{LnNFo-Pv65_rd1D5Yu0lM=|_$5D=u ztADr|{s*l90#d@!h{oSxB2Rc^@C3jU2u~u4 z9sj^*483v86HZK^$G(PNDExy^0Mr8oFqnWQyaYmC26@tzkAXa#O~?=EkO;{p_MTus z1Tc)}jB=x8lpZZWMr4Bj=AtZs1RT^-v^lc%u3mh1 zn4dlBck)VUulgBD9YYF7FZi}eG=0EVeOE{V*30#G-?*BVWVyC2y7S&&uZHgUHS_C8 z6S1Sm@M{lDzr?j=w3?5P-15m=_l}it%oj)A+4u40z6DK9zs843ZarLVS;BXR2}v;% z4)0W(f60FBgX`N$f0%pwyHBn!j?cOnzxLQp#l4MbuSFj2cXj0u@5ah4lGm4=x*0Oj zEA{aA)<^HYalGMORa=sI)v_VUxBeIwIrwh(w-Mhz8$3QOXm`|nUE1=o9S`0}Nbvf0 zTtn%?D{mb*x{YLiUoG|U`FL*6H$U9kJ?WbbD-IqzKXTiJ$-yp0Z=bj-U33tvk6tMEpF4fLV_*5{@{S!VpEfTO8-KXhFDm5^k+3dw=1JAi_VwSZ z@2%m=OdH&1PHP_fnA-bR(*EmP+h6%$Q9@vL$j+FNQ;gwdQy(n7?SJayuO*KTT)Mhu zRWNgN|DuQ$zyI#`+LKc6s^GL#S^LDdKk2v;5fkytuoj=cy1h4e9yxgC-zVI?WA~FwuRnfm&Xys+)a*(8dgjQf>1X*xg|FAt4;h$|F>CLM zKL%X*jQO+p{Kf5kEJ?4FELXNHbX##eYo$8kwfIGIqQ75MU%%?Y_zOpuw|_b3*HLr) zPt}LdH`YumIlgjsb-2%fY2S_7>C-!<=*!%%&*~@6oZperMKAR@HaGv+^tVes@A&TH zx<55r_}M3?{b?xtv{-ZA;K7-R@;$A)Taef1JEkSL<$e93=K8vj8!_7LKSfFoAF%}Y zIaYW5mf}oxqU`gTD|$2$y$lOA6YnGeZp@iEVIQ7eVp3L(du8Q&OK)A1uT1bh;Wud1#rs>LUUYuC=jnj;>%V>M zz5CI{?Vtbry|%4xdvw>xxc&9Yf*}vh2W6N4ysDV;{<5a+Z~n`0<<5`H+lie~oZm+$ z;zHkFxahU#D_?y5;N8NgMPZ?KuYzCGmnGc4X7Mr4v~0hdw4KelvBAA9Jzni+8uV%A z`0QbZ@aPXJ6Ti;xTdZGMvcmg5zq{w1$zBf{J*G^)Z2fF{TJDdBM&I6b^2PAupXDq+ zx$pM84GZgzX^l&_Jz4gH?wv{Jn+Mixp-mD0`tJUg%rmB5EvAVcNw*KI&Tu~{m2N)a z(^&D~>^QUU{`YreoHvF2;vvZ568HU3uFUNH^X%G(-_bqxRfTIe-;sERgctNV{XDMZ z%bRzOQZGhVEWf$?l@IfiFW&VZ`@!vo9(`_m{=DSC$VVSn82>$Q@vvJ{HY|N%Ra{Ew z@DbhZcXavMoRB#=-C253W^Q*&`XMrzb+nvLax%@(mtNPhbtcTs$5ecyxrOK`04cQW${1de87BCx#m*G znipGM+n^jhdk!~wdN13Ip??f>pME8N)%My8-L@Vc1CFjSEnT^K<+IcJOMLf>*_Gn7 z8>7Pt7ytFIKNmf$?>JdM=i#$6_4o&K@@{>uNopPd_&N z?RQe1pr!$+j$F1*kYiN0VK(J>zdz4c_!#rsrn@ty_! zo<@B=wdc8kpB(*d@#_VD`?xu8c2#{O7ijKZVU0v(V$!{N=mbbql9W zwRP+tHgWwg-4llHTr_pA^!D$+My(7xlQzS5iQB66^Acw2^X8FzZ=HA#oiHAHPyE^R zpMI59Y%NhpHEO7tz?0xTLeAe83>Z+&Sq>PHOJF zTygm0rRSe;pMMhcYKqtMB^$@y7&$q&)Ozk_l0-bPVC3VofwT!|gC zt81P6n{REch?IQh_13QuGg7`txVGn;l(*$?{_uI4WyTNlmaZAMc=7qLV=_tjwx#3G zH17V;>zfOT4+}oZ8q*wK9rEJTmZnn+?%jB&GWCy7tJZ#=daC-w(fhMk#?6Z2d%fjT z_U+xEDAhOGgSW5l@A=n(#Eas|+{Tq&UZ<9guKxLprLX=mh8glu+V$F~vO}ZhPdz_S zjh@wgJpW|%!Y13EVFP{`clZ7!&-O`^s8_Ofe$sZh@7dpFzwCN4{^ySA!qU)-%kHKQ zN+sYO5SA8?&-cOxF?$015-5=?d5Z$NZ zP|L@!NM1YNakt>T`X%Sy8u)z7Lu9Y!jKAz&E2){K*>`UFpABdK758-gpPQFGD4W!> zwe0#Y)G_r?d)>P9ZsQui_fv0tYlwgC&41t6GGt57x+j0++<3bt#-R%S=Z7E(a?kf* zr+fxB1%U``+gJ`l%mut3fO70R!X^f`IeuJ@q#_cL*bc$>cAyG7@Qm66J|rl|c-$Zs zP3nUAW(DM3c-}pVr0($1{vm+bv<*o;0OlyXH|>RcKG!?;PkFg;ZUuh4!Av^_Fmv}o z43!v(i{KsmuD}#?@L+**Uy>lO{Y3!0AK*WSaRQ7#@O%;8mmEOS02dFF0Dlh=5?zM! z-oSrPfd3BOUxz+|Sw&%c3&#Nl0?ZFkj{RpruC^7xe=vneY`YEJjHDsJTQ$IJ2mV7{ z{0Hp^ydp&1h4QvlNZQB6C%*IS>uPJ=h@^7h4cmsl!5wE9ykk2sY#)*;T>Rj80;LQ7 zw<8eS=Xy5+o_?@t@%#YbBVBX%0Lr5P{}X`6cdOAZ z_;MJx80h=&P#z2OH4ysF!}}%}lR>V25io|YP=sUd#%za}AiyIBo;R(6HZI1w#>0G# z0h|HQ7W)!4uJU)GTnl}~YqdA*1)XaQ@!!c9>%ub%#sTb5{Qo~6fW#KL!(M|Lu*1Qc z!(a|Lypf!*xD8Z+sV)H<-L)GXwUU=8oOp57-}PVx;=IGwca@49MF_p&D_gtKfb(Ld#^#1_;-_Di* literal 0 HcmV?d00001 diff --git a/klipper/DNV-TPU-Ender3/Firmware/printer.cfg b/klipper/DNV-TPU-Ender3/Firmware/printer.cfg new file mode 100644 index 0000000..29ef541 --- /dev/null +++ b/klipper/DNV-TPU-Ender3/Firmware/printer.cfg @@ -0,0 +1,183 @@ +# This file contains common pin mappings for the 2018 Creality +# Ender 3. To use this config, the firmware should be compiled for the +# AVR atmega1284p. + +# Note, a number of Melzi boards are shipped with a bootloader that +# requires the following command to flash the board: +# avrdude -p atmega1284p -c arduino -b 57600 -P /dev/ttyUSB0 -U out/klipper.elf.hex +# If the above command does not work and "make flash" does not work +# then one may need to flash a bootloader to the board - see the +# Klipper docs/Bootloaders.md file for more information. + +# See docs/Config_Reference.md for a description of parameters. + +[stepper_x] +step_pin: PD7 +dir_pin: !PC5 +enable_pin: !PD6 +microsteps: 16 +rotation_distance: 40 +endstop_pin: ^PC2 +position_endstop: 0 +position_max: 235 +homing_speed: 50 + +[stepper_y] +step_pin: PC6 +dir_pin: !PC7 +enable_pin: !PD6 +microsteps: 16 +rotation_distance: 40 +endstop_pin: ^PC3 +position_endstop: 0 +position_max: 235 +homing_speed: 50 + +[stepper_z] +step_pin: PB3 +dir_pin: PB2 +enable_pin: !PA5 +microsteps: 16 +rotation_distance: 8 +endstop_pin: ^PC4 +position_endstop: 0.0 +position_max: 250 + +[extruder] +# DropEffect OmniaDrop V2.1 +max_extrude_only_distance: 100.0 +step_pin: PB1 +dir_pin: !PB0 +enable_pin: !PD6 +microsteps: 16 +rotation_distance: 33.683 +nozzle_diameter: 0.400 +filament_diameter: 1.750 +gear_ratio: 5:1 +heater_pin: PD5 +sensor_type: EPCOS 100K B57560G104F +sensor_pin: PA7 +control: pid +# tuned for stock hardware with 200 degree Celsius target +pid_Kp: 21.527 +pid_Ki: 1.063 +pid_Kd: 108.982 +min_temp: 0 +max_temp: 285 + +[heater_bed] +heater_pin: PD4 +sensor_type: EPCOS 100K B57560G104F +sensor_pin: PA6 +control: pid +# tuned for stock hardware with 50 degree Celsius target +pid_Kp: 54.027 +pid_Ki: 0.770 +pid_Kd: 948.182 +min_temp: 0 +max_temp: 130 + +[fan] +pin: PB4 + +[mcu] +serial: /dev/serial/by-id/usb-1a86_USB2.0-Serial-if00-port0 +#baud: 115200 + +[printer] +kinematics: cartesian +max_velocity: 300 +max_accel: 3000 +max_z_velocity: 5 +max_z_accel: 100 + +[display] +lcd_type: st7920 +cs_pin: PA3 +sclk_pin: PA1 +sid_pin: PC1 +encoder_pins: ^PD2, ^PD3 +click_pin: ^!PC0 + +[virtual_sdcard] +path: ~/gcode_files + +[display_status] + +[pause_resume] + +[gcode_macro PAUSE] +description: Pause the actual running print +rename_existing: PAUSE_BASE +# change this if you need more or less extrusion +variable_extrude: 1.0 +gcode: + ##### read E from pause macro ##### + {% set E = printer["gcode_macro PAUSE"].extrude|float %} + ##### set park positon for x and y ##### + # default is your max posion from your printer.cfg + {% set x_park = printer.toolhead.axis_maximum.x|float - 5.0 %} + {% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %} + ##### calculate save lift position ##### + {% set max_z = printer.toolhead.axis_maximum.z|float %} + {% set act_z = printer.toolhead.position.z|float %} + {% if act_z < (max_z - 2.0) %} + {% set z_safe = 2.0 %} + {% else %} + {% set z_safe = max_z - act_z %} + {% endif %} + ##### end of definitions ##### + PAUSE_BASE + G91 + {% if printer.extruder.can_extrude|lower == 'true' %} + G1 E-{E} F2100 + {% else %} + {action_respond_info("Extruder not hot enough")} + {% endif %} + {% if "xyz" in printer.toolhead.homed_axes %} + G1 Z{z_safe} F900 + G90 + G1 X{x_park} Y{y_park} F6000 + {% else %} + {action_respond_info("Printer not homed")} + {% endif %} + +[gcode_macro RESUME] +description: Resume the actual running print +rename_existing: RESUME_BASE +gcode: + ##### read E from pause macro ##### + {% set E = printer["gcode_macro PAUSE"].extrude|float %} + #### get VELOCITY parameter if specified #### + {% if 'VELOCITY' in params|upper %} + {% set get_params = ('VELOCITY=' + params.VELOCITY) %} + {%else %} + {% set get_params = "" %} + {% endif %} + ##### end of definitions ##### + {% if printer.extruder.can_extrude|lower == 'true' %} + G91 + G1 E{E} F2100 + {% else %} + {action_respond_info("Extruder not hot enough")} + {% endif %} + RESUME_BASE {get_params} + +[gcode_macro CANCEL_PRINT] +description: Cancel the actual running print +rename_existing: CANCEL_PRINT_BASE +gcode: + TURN_OFF_HEATERS + CANCEL_PRINT_BASE + +# The print bed can move so far to the front, that the nozzle can reach the +# plastic cover of the print bed heater cable (only when the bed is moved by +# hand). By homing the Y axis before the X axis, it is ensured the nozzle will +# not melt through the plastic part. +# BEWARE: You will lose the ability to home axes individually. The printer will +# always home all axes for every G28 command. +#[homing_override] +#gcode: +# G28 Y0 +# G28 X0 +# G28 Z0 diff --git a/klipper/DNV-TPU-Ender3/Firmware/printer_generic-bigtreetech-skr-mini-e3-v1.2.cfg b/klipper/DNV-TPU-Ender3/Firmware/printer_generic-bigtreetech-skr-mini-e3-v1.2.cfg new file mode 100644 index 0000000..e4cb59d --- /dev/null +++ b/klipper/DNV-TPU-Ender3/Firmware/printer_generic-bigtreetech-skr-mini-e3-v1.2.cfg @@ -0,0 +1,850 @@ +# This file contains common pin mappings for the BIGTREETECH SKR mini +# E3 v1.2. To use this config, the firmware should be compiled for the +# STM32F103 with a "28KiB bootloader" and USB communication. Also, +# select "Enable extra low-level configuration options" and configure +# "GPIO pins to set at micro-controller startup" to "!PC13". + +# The "make flash" command does not work on the SKR mini E3. Instead, +# after running "make", copy the generated "out/klipper.bin" file to a +# file named "firmware.bin" on an SD card and then restart the SKR +# mini E3 with that SD card. + +# See docs/Config_Reference.md for a description of parameters. + +# Note: This board has a design flaw in its thermistor circuits that +# cause inaccurate temperatures (most noticeable at low temperatures). + +# Met de DropEffect OmniDrop V2.1 is het punt links-beneden (dus het 0-punt): X = 12 en Y = 30 + +[stepper_x] +step_pin: PB13 +dir_pin: !PB12 +enable_pin: !PB14 +microsteps: 16 +rotation_distance: 40 +endstop_pin: ^PC0 +position_endstop: -12 +position_min: -13 +position_max: 222 +homing_speed: 50 + +[tmc2209 stepper_x] +uart_pin: PB15 +run_current: 0.580 +hold_current: 0.500 +stealthchop_threshold: 250 + +[stepper_y] +step_pin: PB10 +dir_pin: !PB2 +enable_pin: !PB11 +microsteps: 16 +rotation_distance: 40 +endstop_pin: ^PC1 +position_endstop: -29 +position_min: -30 +position_max: 205 +homing_speed: 50 + +[tmc2209 stepper_y] +uart_pin: PC6 +run_current: 0.580 +hold_current: 0.500 +stealthchop_threshold: 250 + +[stepper_z] +step_pin: PB0 +dir_pin: PC5 +enable_pin: !PB1 +microsteps: 16 +rotation_distance: 8 +endstop_pin: ^PC2 +position_endstop: 0.0 +position_max: 250 + +[tmc2209 stepper_z] +uart_pin: PC10 +run_current: 0.580 +hold_current: 0.500 +stealthchop_threshold: 5 + +[bltouch] +sensor_pin: ^PC14 +control_pin: PA1 +#pin_up_reports_not_triggered: False +#pin_up_touch_mode_reports_triggered: False +x_offset: 32.4 +y_offset: -34.9 +z_offset: 1.6 +pin_move_time: 0.680 + +[extruder] +# DropEffect OmniaDrop V2.1 +step_pin: PB3 +dir_pin: !PB4 +enable_pin: !PD2 +microsteps: 16 +gear_ratio: 5:1 +rotation_distance: 33.500 +nozzle_diameter: 0.400 +filament_diameter: 1.750 +heater_pin: PC8 +sensor_type: EPCOS 100K B57560G104F +sensor_pin: PA0 +#control: pid +#pid_Kp: 21.527 +#pid_Ki: 1.063 +#pid_Kd: 108.982 +min_temp: 0 +max_temp: 285 + +[tmc2209 extruder] +uart_pin: PC11 +run_current: 0.500 +hold_current: 0.400 +stealthchop_threshold: 5 + +[heater_fan my_nozzle_fan] +# Aansturing via PT-DET pinout +pin: PC12 +heater: extruder +heater_temp: 50.0 +fan_speed: 1.0 + +[heater_bed] +heater_pin: PC9 +sensor_type: EPCOS 100K B57560G104F +sensor_pin: PC3 +#control: pid +#pid_Kp: 54.027 +#pid_Ki: 0.770 +#pid_Kd: 948.182 +min_temp: 0 +max_temp: 130 + +[fan] +pin: PA8 + +[mcu] +serial: /dev/serial/by-id/usb-Klipper_stm32f103xe_32FFDA054158323011792557-if00 + +[printer] +kinematics: cartesian +max_velocity: 300 +max_accel: 3000 +max_z_velocity: 5 +max_z_accel: 100 + +[static_digital_output usb_pullup_enable] +pins: !PC13 + +[board_pins] +aliases: + # EXP1 header + EXP1_1=PB5, EXP1_3=PA9, EXP1_5=PA10, EXP1_7=PB8, EXP1_9=, + EXP1_2=PB6, EXP1_4=, EXP1_6=PB9, EXP1_8=PB7, EXP1_10=<5V> + +# See the sample-lcd.cfg file for definitions of common LCD displays. + +[display] +lcd_type: st7920 +cs_pin: EXP1_7 +sclk_pin: EXP1_6 +sid_pin: EXP1_8 +encoder_pins: ^EXP1_5, ^EXP1_3 +click_pin: ^!EXP1_2 + +[output_pin beeper] +pin: EXP1_1 + +[virtual_sdcard] +path: ~/gcode_files + +[display_status] + +[pause_resume] + +[gcode_macro PAUSE] +description: Pause the actual running print +rename_existing: PAUSE_BASE +# change this if you need more or less extrusion +variable_extrude: 1.0 +gcode: + ##### read E from pause macro ##### + {% set E = printer["gcode_macro PAUSE"].extrude|float %} + ##### set park positon for x and y ##### + # default is your max posion from your printer.cfg + {% set x_park = printer.toolhead.axis_maximum.x|float - 5.0 %} + {% set y_park = printer.toolhead.axis_maximum.y|float - 5.0 %} + ##### calculate save lift position ##### + {% set max_z = printer.toolhead.axis_maximum.z|float %} + {% set act_z = printer.toolhead.position.z|float %} + {% if act_z < (max_z - 2.0) %} + {% set z_safe = 2.0 %} + {% else %} + {% set z_safe = max_z - act_z %} + {% endif %} + ##### end of definitions ##### + PAUSE_BASE + G91 + {% if printer.extruder.can_extrude|lower == 'true' %} + G1 E-{E} F2100 + {% else %} + {action_respond_info("Extruder not hot enough")} + {% endif %} + {% if "xyz" in printer.toolhead.homed_axes %} + G1 Z{z_safe} F900 + G90 + G1 X{x_park} Y{y_park} F6000 + {% else %} + {action_respond_info("Printer not homed")} + {% endif %} + +[gcode_macro RESUME] +description: Resume the actual running print +rename_existing: RESUME_BASE +gcode: + ##### read E from pause macro ##### + {% set E = printer["gcode_macro PAUSE"].extrude|float %} + #### get VELOCITY parameter if specified #### + {% if 'VELOCITY' in params|upper %} + {% set get_params = ('VELOCITY=' + params.VELOCITY) %} + {%else %} + {% set get_params = "" %} + {% endif %} + ##### end of definitions ##### + {% if printer.extruder.can_extrude|lower == 'true' %} + G91 + G1 E{E} F2100 + {% else %} + {action_respond_info("Extruder not hot enough")} + {% endif %} + RESUME_BASE {get_params} + +[gcode_macro CANCEL_PRINT] +description: Cancel the actual running print +rename_existing: CANCEL_PRINT_BASE +gcode: + TURN_OFF_HEATERS + CANCEL_PRINT_BASE + +# The print bed can move so far to the front, that the nozzle can reach the +# plastic cover of the print bed heater cable (only when the bed is moved by +# hand). By homing the Y axis before the X axis, it is ensured the nozzle will +# not melt through the plastic part. +# BEWARE: You will lose the ability to home axes individually. The printer will +# always home all axes for every G28 command. +#[homing_override] +#gcode: +# G28 Y0 +# G28 X0 +# G28 Z0 + +[bed_screws] +screw1: 32,32 +screw2: 203,32 +screw3: 203,203 +screw4: 32,203 +screw5: 117,117 + +### menu main ### +[menu __main] +type: list +name: Main + +### menu tune ### +[menu __main __tune] +type: list +enable: {printer.idle_timeout.state == "Printing"} +name: Afstellen + +[menu __main __tune __speed] +type: input +name: Snelheid: {'%3d' % (menu.input*100)}% +input: {printer.gcode_move.speed_factor} +input_min: 0.01 +input_max: 5 +input_step: 0.01 +realtime: True +gcode: + M220 S{'%d' % (menu.input*100)} + +[menu __main __tune __flow] +type: input +name: Flow: {'%3d' % (menu.input*100)}% +input: {printer.gcode_move.extrude_factor} +input_min: 0.01 +input_max: 2 +input_step: 0.01 +realtime: True +gcode: + M221 S{'%d' % (menu.input*100)} + +[menu __main __tune __offsetz] +type: input +name: Offset Z:{'%05.3f' % menu.input} +input: {printer.gcode_move.homing_origin.z} +input_min: -5 +input_max: 5 +input_step: 0.005 +realtime: True +gcode: + SET_GCODE_OFFSET Z={'%.3f' % menu.input} MOVE=1 + +### menu virtual sdcard ### +[menu __main __sdcard] +type: vsdlist +enable: {('virtual_sdcard' in printer)} +name: SD Kaart + +[menu __main __sdcard __start] +type: command +enable: {('virtual_sdcard' in printer) and printer.virtual_sdcard.file_path and not printer.virtual_sdcard.is_active} +name: Start printen +gcode: M24 + +[menu __main __sdcard __resume] +type: command +enable: {('virtual_sdcard' in printer) and printer.print_stats.state == "paused"} +name: Herstart printen +gcode: + {% if "pause_resume" in printer %} + RESUME + {% else %} + M24 + {% endif %} + +[menu __main __sdcard __pause] +type: command +enable: {('virtual_sdcard' in printer) and printer.print_stats.state == "printing"} +name: Pauseer printen +gcode: + {% if "pause_resume" in printer %} + PAUSE + {% else %} + M25 + {% endif %} + +[menu __main __sdcard __cancel] +type: command +enable: {('virtual_sdcard' in printer) and (printer.print_stats.state == "printing" or printer.print_stats.state == "paused")} +name: Annuleer printen +gcode: + {% if 'pause_resume' in printer %} + CANCEL_PRINT + {% else %} + M25 + M27 + M26 S0 + TURN_OFF_HEATERS + {% if printer.toolhead.position.z <= printer.toolhead.axis_maximum.z - 5 %} + G91 + G0 Z5 F1000 + G90 + {% endif %} + {% endif %} + +### menu control ### +[menu __main __control] +type: list +name: Control + +[menu __main __control __home] +type: command +enable: {not printer.idle_timeout.state == "Printing"} +name: Home All +gcode: G28 + +[menu __main __control __homez] +type: command +enable: {not printer.idle_timeout.state == "Printing"} +name: Home Z +gcode: G28 Z + +[menu __main __control __homexy] +type: command +enable: {not printer.idle_timeout.state == "Printing"} +name: Home X/Y +gcode: G28 X Y + +[menu __main __control __disable] +type: command +name: Steppers uit +gcode: + M84 + M18 + +[menu __main __control __fanonoff] +type: input +enable: {'fan' in printer} +name: Koeling: {'ON ' if menu.input else 'OFF'} +input: {printer.fan.speed} +input_min: 0 +input_max: 1 +input_step: 1 +gcode: + M106 S{255 if menu.input else 0} + +[menu __main __control __fanspeed] +type: input +enable: {'fan' in printer} +name: Snelheid koeler: {'%3d' % (menu.input*100)}% +input: {printer.fan.speed} +input_min: 0 +input_max: 1 +input_step: 0.01 +gcode: + M106 S{'%d' % (menu.input*255)} + +[menu __main __control __caselightonoff] +type: input +enable: {'output_pin caselight' in printer} +name: Verlichting: {'ON ' if menu.input else 'OFF'} +input: {printer['output_pin caselight'].value} +input_min: 0 +input_max: 1 +input_step: 1 +gcode: + SET_PIN PIN=caselight VALUE={1 if menu.input else 0} + +[menu __main __control __caselightpwm] +type: input +enable: {'output_pin caselight' in printer} +name: Verlichting: {'%3d' % (menu.input*100)}% +input: {printer['output_pin caselight'].value} +input_min: 0.0 +input_max: 1.0 +input_step: 0.01 +gcode: + SET_PIN PIN=caselight VALUE={menu.input} + +### menu move 10mm ### +[menu __main __control __move_10mm] +type: list +enable: {not printer.idle_timeout.state == "Printing"} +name: Verplaats 10mm + +[menu __main __control __move_10mm __axis_x] +type: input +name: Verplaats X:{'%05.1f' % menu.input} +input: {printer.gcode_move.gcode_position.x} +input_min: {printer.toolhead.axis_minimum.x} +input_max: {printer.toolhead.axis_maximum.x} +input_step: 10.0 +gcode: + SAVE_GCODE_STATE NAME=__move__axis + G90 + G1 X{menu.input} + RESTORE_GCODE_STATE NAME=__move__axis + +[menu __main __control __move_10mm __axis_y] +type: input +name: Verplaats Y:{'%05.1f' % menu.input} +input: {printer.gcode_move.gcode_position.y} +input_min: {printer.toolhead.axis_minimum.y} +input_max: {printer.toolhead.axis_maximum.y} +input_step: 10.0 +gcode: + SAVE_GCODE_STATE NAME=__move__axis + G90 + G1 Y{menu.input} + RESTORE_GCODE_STATE NAME=__move__axis + +[menu __main __control __move_10mm __axis_z] +type: input +enable: {not printer.idle_timeout.state == "Printing"} +name: Verplaats Z:{'%05.1f' % menu.input} +input: {printer.gcode_move.gcode_position.z} +input_min: 0 +input_max: {printer.toolhead.axis_maximum.z} +input_step: 10.0 +gcode: + SAVE_GCODE_STATE NAME=__move__axis + G90 + G1 Z{menu.input} + RESTORE_GCODE_STATE NAME=__move__axis + +[menu __main __control __move_10mm __axis_e] +type: input +enable: {not printer.idle_timeout.state == "Printing"} +name: Draai E:{'%+06.1f' % menu.input} +input: 0 +input_min: -{printer.configfile.config.extruder.max_extrude_only_distance|default(50)} +input_max: {printer.configfile.config.extruder.max_extrude_only_distance|default(50)} +input_step: 10.0 +gcode: + SAVE_GCODE_STATE NAME=__move__axis + M83 + G1 E{menu.input} F240 + RESTORE_GCODE_STATE NAME=__move__axis + +### menu move 1mm ### +[menu __main __control __move_1mm] +type: list +enable: {not printer.idle_timeout.state == "Printing"} +name: Verplaats 1mm + +[menu __main __control __move_1mm __axis_x] +type: input +name: Verplaats X:{'%05.1f' % menu.input} +input: {printer.gcode_move.gcode_position.x} +input_min: {printer.toolhead.axis_minimum.x} +input_max: {printer.toolhead.axis_maximum.x} +input_step: 1.0 +gcode: + SAVE_GCODE_STATE NAME=__move__axis + G90 + G1 X{menu.input} + RESTORE_GCODE_STATE NAME=__move__axis + +[menu __main __control __move_1mm __axis_y] +type: input +name: Verplaats Y:{'%05.1f' % menu.input} +input: {printer.gcode_move.gcode_position.y} +input_min: {printer.toolhead.axis_minimum.y} +input_max: {printer.toolhead.axis_maximum.y} +input_step: 1.0 +gcode: + SAVE_GCODE_STATE NAME=__move__axis + G90 + G1 Y{menu.input} + RESTORE_GCODE_STATE NAME=__move__axis + +[menu __main __control __move_1mm __axis_z] +type: input +enable: {not printer.idle_timeout.state == "Printing"} +name: Verplaats Z:{'%05.1f' % menu.input} +input: {printer.gcode_move.gcode_position.z} +input_min: 0 +input_max: {printer.toolhead.axis_maximum.z} +input_step: 1.0 +gcode: + SAVE_GCODE_STATE NAME=__move__axis + G90 + G1 Z{menu.input} + RESTORE_GCODE_STATE NAME=__move__axis + +[menu __main __control __move_1mm __axis_e] +type: input +enable: {not printer.idle_timeout.state == "Printing"} +name: Draai E:{'%+06.1f' % menu.input} +input: 0 +input_min: -{printer.configfile.config.extruder.max_extrude_only_distance|default(50)} +input_max: {printer.configfile.config.extruder.max_extrude_only_distance|default(50)} +input_step: 1.0 +gcode: + SAVE_GCODE_STATE NAME=__move__axis + M83 + G1 E{menu.input} F240 + RESTORE_GCODE_STATE NAME=__move__axis + +### menu move 0.1mm ### +[menu __main __control __move_01mm] +type: list +enable: {not printer.idle_timeout.state == "Printing"} +name: Verplaats 0.1mm + +[menu __main __control __move_01mm __axis_x] +type: input +name: Verplaats X:{'%05.1f' % menu.input} +input: {printer.gcode_move.gcode_position.x} +input_min: {printer.toolhead.axis_minimum.x} +input_max: {printer.toolhead.axis_maximum.x} +input_step: 0.1 +gcode: + SAVE_GCODE_STATE NAME=__move__axis + G90 + G1 X{menu.input} + RESTORE_GCODE_STATE NAME=__move__axis + +[menu __main __control __move_01mm __axis_y] +type: input +name: Verplaats Y:{'%05.1f' % menu.input} +input: {printer.gcode_move.gcode_position.y} +input_min: {printer.toolhead.axis_minimum.y} +input_max: {printer.toolhead.axis_maximum.y} +input_step: 0.1 +gcode: + SAVE_GCODE_STATE NAME=__move__axis + G90 + G1 Y{menu.input} + RESTORE_GCODE_STATE NAME=__move__axis + +[menu __main __control __move_01mm __axis_z] +type: input +enable: {not printer.idle_timeout.state == "Printing"} +name: Verplaats Z:{'%05.1f' % menu.input} +input: {printer.gcode_move.gcode_position.z} +input_min: 0 +input_max: {printer.toolhead.axis_maximum.z} +input_step: 0.1 +gcode: + SAVE_GCODE_STATE NAME=__move__axis + G90 + G1 Z{menu.input} + RESTORE_GCODE_STATE NAME=__move__axis + +[menu __main __control __move_01mm __axis_e] +type: input +enable: {not printer.idle_timeout.state == "Printing"} +name: Draai E:{'%+06.1f' % menu.input} +input: 0 +input_min: -{printer.configfile.config.extruder.max_extrude_only_distance|default(50)} +input_max: {printer.configfile.config.extruder.max_extrude_only_distance|default(50)} +input_step: 0.1 +gcode: + SAVE_GCODE_STATE NAME=__move__axis + M83 + G1 E{menu.input} F240 + RESTORE_GCODE_STATE NAME=__move__axis + +### menu temperature ### +[menu __main __temp] +type: list +name: Temperatuur + +[menu __main __temp __hotend0_target] +type: input +enable: {('extruder' in printer) and ('extruder' in printer.heaters.available_heaters)} +name: {"Ex0:%3.0f (%4.0f)" % (menu.input, printer.extruder.temperature)} +input: {printer.extruder.target} +input_min: 0 +input_max: {printer.configfile.config.extruder.max_temp} +input_step: 1 +gcode: M104 T0 S{'%.0f' % menu.input} + +[menu __main __temp __hotend1_target] +type: input +enable: {('extruder1' in printer) and ('extruder1' in printer.heaters.available_heaters)} +name: {"Ex1:%3.0f (%4.0f)" % (menu.input, printer.extruder1.temperature)} +input: {printer.extruder1.target} +input_min: 0 +input_max: {printer.configfile.config.extruder1.max_temp} +input_step: 1 +gcode: M104 T1 S{'%.0f' % menu.input} + +[menu __main __temp __hotbed_target] +type: input +enable: {'heater_bed' in printer} +name: {"Bed:%3.0f (%4.0f)" % (menu.input, printer.heater_bed.temperature)} +input: {printer.heater_bed.target} +input_min: 0 +input_max: {printer.configfile.config.heater_bed.max_temp} +input_step: 1 +gcode: M140 S{'%.0f' % menu.input} + +[menu __main __temp __preheat_pla] +type: list +name: Voorverwarmen PLA + +[menu __main __temp __preheat_pla __all] +type: command +enable: {('extruder' in printer) and ('heater_bed' in printer)} +name: Alles voorverwarmen +gcode: + M140 S60 + M104 S200 + +[menu __main __temp __preheat_pla __hotend] +type: command +enable: {'extruder' in printer} +name: Hotend voorverwarmen +gcode: M104 S200 + +[menu __main __temp __preheat_pla __hotbed] +type: command +enable: {'heater_bed' in printer} +name: Hotbed voorverwarmen +gcode: M140 S60 + +[menu __main __temp __preheat_abs] +type: list +name: Voorverwarmen ABS + +[menu __main __temp __preheat_abs __all] +type: command +enable: {('extruder' in printer) and ('heater_bed' in printer)} +name: Alles voorverwarmen +gcode: + M140 S110 + M104 S245 + +[menu __main __temp __preheat_abs __hotend] +type: command +enable: {'extruder' in printer} +name: Hotend voorverwarmen +gcode: M104 S245 + +[menu __main __temp __preheat_abs __hotbed] +type: command +enable: {'heater_bed' in printer} +name: Hotbed voorverwarmen +gcode: M140 S110 + +[menu __main __temp __cooldown] +type: list +name: Afkoelen + +[menu __main __temp __cooldown __all] +type: command +enable: {('extruder' in printer) and ('heater_bed' in printer)} +name: Alles afkoelen +gcode: + M104 S0 + M140 S0 + +[menu __main __temp __cooldown __hotend] +type: command +enable: {'extruder' in printer} +name: Hotend afkoelen +gcode: M104 S0 + +[menu __main __temp __cooldown __hotbed] +type: command +enable: {'heater_bed' in printer} +name: Hotbed afkoelen +gcode: M140 S0 + +### menu filament ### + +[menu __main __filament] +type: list +name: Filament + +[menu __main __filament __hotend0_target] +type: input +enable: {'extruder' in printer} +name: {"Ex0:%3.0f (%4.0f)" % (menu.input, printer.extruder.temperature)} +input: {printer.extruder.target} +input_min: 0 +input_max: {printer.configfile.config.extruder.max_temp} +input_step: 1 +gcode: M104 T0 S{'%.0f' % menu.input} + +[menu __main __filament __loadf] +type: command +name: Fil. snel laden +gcode: + SAVE_GCODE_STATE NAME=__filament__load + M83 + G1 E50 F960 + RESTORE_GCODE_STATE NAME=__filament__load + +[menu __main __filament __loads] +type: command +name: Fil. langzaam laden +gcode: + SAVE_GCODE_STATE NAME=__filament__load + M83 + G1 E50 F240 + RESTORE_GCODE_STATE NAME=__filament__load + +[menu __main __filament __unloadf] +type: command +name: Fil. snel uitwerpen +gcode: + SAVE_GCODE_STATE NAME=__filament__load + M83 + G1 E-50 F960 + RESTORE_GCODE_STATE NAME=__filament__load + +[menu __main __filament __unloads] +type: command +name: Fil. langzaam uitwerpen +gcode: + SAVE_GCODE_STATE NAME=__filament__load + M83 + G1 E-50 F240 + RESTORE_GCODE_STATE NAME=__filament__load + +[menu __main __filament __feed] +type: input +name: Snelheid: {'%.1f' % menu.input} +input: 5 +input_step: 0.1 +gcode: + SAVE_GCODE_STATE NAME=__filament__load + M83 + G1 E{'%.1f' % menu.input} F60 + RESTORE_GCODE_STATE NAME=__filament__load + +### menu setup ### +[menu __main __setup] +type: list +enable: {not printer.idle_timeout.state == "Printing"} +name: Setup + +[menu __main __setup __save_config] +type: command +name: Bewaar configuratie +gcode: SAVE_CONFIG + +[menu __main __setup __restart] +type: list +name: Herstarten + +[menu __main __setup __restart __host_restart] +type: command +enable: {not printer.idle_timeout.state == "Printing"} +name: Herstart host +gcode: RESTART + +[menu __main __setup __restart __firmware_restart] +type: command +enable: {not printer.idle_timeout.state == "Printing"} +name: Herstart FW +gcode: FIRMWARE_RESTART + +[menu __main __setup __tuning] +type: list +name: PID tuning + +[menu __main __setup __tuning __hotend_pid_tuning] +type: command +enable: {(not printer.idle_timeout.state == "Printing") and ('extruder' in printer)} +name: Tune Hotend PID +gcode: PID_CALIBRATE HEATER=extruder TARGET=210 WRITE_FILE=1 + +[menu __main __setup __tuning __hotbed_pid_tuning] +type: command +enable: {(not printer.idle_timeout.state == "Printing") and ('heater_bed' in printer)} +name: Tune Hotbed PID +gcode: PID_CALIBRATE HEATER=heater_bed TARGET=60 WRITE_FILE=1 + +[menu __main __setup __calib] +type: list +name: Calibratie + +[menu __main __setup __calib __bedprobe] +type: command +enable: {not printer.idle_timeout.state == "Printing"} +name: Bed probe +gcode: PROBE + +[menu __main __setup __dump] +type: command +name: Dump parameters +gcode: + {% for name1 in printer %} + {% for name2 in printer[name1] %} + { action_respond_info("printer['%s'].%s = %s" + % (name1, name2, printer[name1][name2])) } + {% else %} + { action_respond_info("printer['%s'] = %s" % (name1, printer[name1])) } + {% endfor %} + {% endfor %} + +#*# <---------------------- SAVE_CONFIG ----------------------> +#*# DO NOT EDIT THIS BLOCK OR BELOW. The contents are auto-generated. +#*# +#*# [extruder] +#*# control = pid +#*# pid_kp = 28.740 +#*# pid_ki = 2.129 +#*# pid_kd = 96.998 +#*# +#*# [heater_bed] +#*# control = pid +#*# pid_kp = 65.356 +#*# pid_ki = 1.168 +#*# pid_kd = 914.164