From 3920efc48a0fcf0546f2cd130addf2e0a217e0cf Mon Sep 17 00:00:00 2001 From: Harvey Bates Date: Wed, 21 Oct 2020 09:08:33 +1100 Subject: [PATCH] Update for version 0.1.1 Updated some of the documentation. Adjusted the Raspberry Pi controls of RGB LED's and added a new circuit for RGB control without extra outputs from the motor HAT. --- Phenobottle Circuit Board BOM.csv | 22 - .../Phenobottle Circuit Board BOM.csv | 26 + .../Gerber_BoardOutline.GKO | 0 .../Gerber_BottomLayer.GBL | 0 .../Gerber_BottomSolderMaskLayer.GBS | 0 .../Gerber_Drill_NPTH.DRL | 0 .../Gerber_Drill_PTH.DRL | 0 .../Gerber_TopLayer.GTL | 0 .../Gerber_TopPasteMaskLayer.GTP | 0 .../Gerber_TopSilkLayer.GTO | 0 .../Gerber_TopSolderMaskLayer.GTS | 0 .../How-to-order-PCB.txt | 6 +- .../Phenobottle_Circuit_Schematic.pdf | Bin 0 -> 60319 bytes .../Phenobottle_Circuit_Schematic.pdf | Bin 66821 -> 0 bytes .../Gerber_BoardOutline.GKO | 24 + .../RGB Circuit Gerber/Gerber_BottomLayer.GBL | 29 + .../Gerber_BottomSolderMaskLayer.GBS | 33 + .../RGB Circuit Gerber/Gerber_Drill_PTH.DRL | 23 + .../RGB Circuit Gerber/Gerber_TopLayer.GTL | 2341 +++++++++++++++++ .../Gerber_TopPasteMaskLayer.GTP | 87 + .../Gerber_TopSilkLayer.GTO | 686 +++++ .../Gerber_TopSolderMaskLayer.GTS | 138 + .../RGB Circuit Gerber/How-to-order-PCB.txt | 4 + .../RGB Circuit Schematic.pdf | Bin 0 -> 19149 bytes .../RGB Control Circuit/RGB Control BOM.csv | Bin 0 -> 948 bytes Phenobottle_RaspberryPi.py | 33 +- .../Phenobottle_Teensy.ino | 571 ++-- README.md | 252 +- 28 files changed, 3962 insertions(+), 313 deletions(-) delete mode 100644 Phenobottle Circuit Board BOM.csv create mode 100644 Phenobottle Circuit Board/Main Teensy Circuit Board/Phenobottle Circuit Board BOM.csv rename Phenobottle Circuit Board/{ => Main Teensy Circuit Board}/Phenobottle_Circuit_Gerber/Gerber_BoardOutline.GKO (100%) rename Phenobottle Circuit Board/{ => Main Teensy Circuit Board}/Phenobottle_Circuit_Gerber/Gerber_BottomLayer.GBL (100%) rename Phenobottle Circuit Board/{ => Main Teensy Circuit Board}/Phenobottle_Circuit_Gerber/Gerber_BottomSolderMaskLayer.GBS (100%) rename Phenobottle Circuit Board/{ => Main Teensy Circuit Board}/Phenobottle_Circuit_Gerber/Gerber_Drill_NPTH.DRL (100%) rename Phenobottle Circuit Board/{ => Main Teensy Circuit Board}/Phenobottle_Circuit_Gerber/Gerber_Drill_PTH.DRL (100%) rename Phenobottle Circuit Board/{ => Main Teensy Circuit Board}/Phenobottle_Circuit_Gerber/Gerber_TopLayer.GTL (100%) rename Phenobottle Circuit Board/{ => Main Teensy Circuit Board}/Phenobottle_Circuit_Gerber/Gerber_TopPasteMaskLayer.GTP (100%) rename Phenobottle Circuit Board/{ => Main Teensy Circuit Board}/Phenobottle_Circuit_Gerber/Gerber_TopSilkLayer.GTO (100%) rename Phenobottle Circuit Board/{ => Main Teensy Circuit Board}/Phenobottle_Circuit_Gerber/Gerber_TopSolderMaskLayer.GTS (100%) rename Phenobottle Circuit Board/{ => Main Teensy Circuit Board}/Phenobottle_Circuit_Gerber/How-to-order-PCB.txt (96%) create mode 100644 Phenobottle Circuit Board/Main Teensy Circuit Board/Phenobottle_Circuit_Schematic.pdf delete mode 100644 Phenobottle Circuit Board/Phenobottle_Circuit_Schematic.pdf create mode 100644 Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_BoardOutline.GKO create mode 100644 Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_BottomLayer.GBL create mode 100644 Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_BottomSolderMaskLayer.GBS create mode 100644 Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_Drill_PTH.DRL create mode 100644 Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_TopLayer.GTL create mode 100644 Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_TopPasteMaskLayer.GTP create mode 100644 Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_TopSilkLayer.GTO create mode 100644 Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_TopSolderMaskLayer.GTS create mode 100644 Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/How-to-order-PCB.txt create mode 100644 Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Schematic.pdf create mode 100644 Phenobottle Circuit Board/RGB Control Circuit/RGB Control BOM.csv rename Phenobottle_Teensy.ino => Phenobottle_Teensy/Phenobottle_Teensy.ino (75%) diff --git a/Phenobottle Circuit Board BOM.csv b/Phenobottle Circuit Board BOM.csv deleted file mode 100644 index 7f3cf881..00000000 --- a/Phenobottle Circuit Board BOM.csv +++ /dev/null @@ -1,22 +0,0 @@ -Name,Designator,Footprint,Quantity,Manufacturer Part,Manufacturer,Supplier,Supplier Part,, -5.1K,R9,R0805,1,TC0525F5101T5E,UniOhm,LCSC,C134293,, -BD681G,Q1,TO-225-3_L7.6-W2.8-P2.54-L,1,BD681G,ON,LCSC,C38376,, -Teensy_3.6,U1,TEENSY_3.6,1,Teensy 3.6,,,,, -330nF,C6,805,1,CL21B334KBFNNNE,SAMSUNG,LCSC,C73142,, -"220 R6",R1,R0805,2,AR05DTC2200,Viking Tech,LCSC,C374734,, -3.3K,R8,R0805,1,TC0525F3301T5E,UniOhm,LCSC,C75784,, -KA7812ETU,U3,TO-220(TO-220-3),1,KA7812ETU,FAIRCHILD,LCSC,C112227,, -"5AR2ST10 LED3",LED1,LED2,LED4,LED-TH_BD5.8-P2.54-FD,4,5AR2ST10,KENTO,LCSC,C52721 -9.1K,R11,R0805,1,ARG05FTC9101,Viking Tech,LCSC,C218741,, -5.6,R7,2512,1,CR2512J5R6E04,Ever Ohms Tech,LCSC,C245735,, -"100nF C1",C7,805,2,0805B104J250,Walsin Tech Corp,LCSC,C163184,, -Cf (1pF),C2,805,1,,,,,, -"100nF C4","C3 0805 2 ",,,,,,,, -6.8K,R10,R0805,1,ARG05FTC6801,Viking Tech,LCSC,C218677,, -DC-470-2.1GP,DC1,DC-470-2.1GP,1,DC-470-2.1GP,GANGYUAN,LCSC,C194407,, -47,R4,R0805,1,RTT0547R0FTP,RALEC,LCSC,C104358,, -Temp Input,P1,HDR-3X1/2.54,1,Header-Female-2.54_1x3,Boom Precision Elec,LCSC,C146243,, -20K,R5,R0805,1,AR05DTCW2002,Viking Tech,LCSC,C319768,, -"4.7M R2",R3,805,2,RCT054M7FLF,Hong Kong Resistors,LCSC,C185697,, -OPA320AIDBVR,U2,SOT-23-5,1,OPA320AIDBVR,TI,LCSC,C92494,, -1uF,C5,CAP-SMD_BD4.0-L4.3-W4.3-FD,1,EEEFC1V1R0AR,PANASONIC,LCSC,C401626,, \ No newline at end of file diff --git a/Phenobottle Circuit Board/Main Teensy Circuit Board/Phenobottle Circuit Board BOM.csv b/Phenobottle Circuit Board/Main Teensy Circuit Board/Phenobottle Circuit Board BOM.csv new file mode 100644 index 00000000..e0ffa184 --- /dev/null +++ b/Phenobottle Circuit Board/Main Teensy Circuit Board/Phenobottle Circuit Board BOM.csv @@ -0,0 +1,26 @@ +Name,Designator,Footprint,Quantity,Manufacturer Part,Manufacturer,Supplier,Supplier Part +5.1K,R9,R0805,1,TC0525F5101T5E,UniOhm,LCSC,C134293 +BD681G,Q1,TO-225-3_L7.6-W2.8-P2.54-L,1,BD681G,ON,LCSC,C38376 +Teensy_3.6,U1,TEENSY_3.6,1,Teensy 3.6,,, +330nF,C6,805,1,CL21B334KBFNNNE,SAMSUNG,LCSC,C73142 +"220 R6",R1,R0805,2,AR05DTC2200,Viking Tech,LCSC,C374734 +3.3K,R8,R0805,1,TC0525F3301T5E,UniOhm,LCSC,C75784 +KA7812ETU,U3,TO-220(TO-220-3),1,KA7812ETU,FAIRCHILD,LCSC,C112227 +,,,,,,, +9.1K,R11,R0805,1,ARG05FTC9101,Viking Tech,LCSC,C218741 +5.6,R7,2512,1,CR2512J5R6E04,Ever Ohms Tech,LCSC,C245735 +100nF,"C1, C7",805,2,0805B104J250,Walsin Tech Corp,LCSC,C163184 +Cf (1pF),C2,805,1,,,, +100nF,"C3, C4 ",805,2,,,, +6.8K,R10,R0805,1,ARG05FTC6801,Viking Tech,LCSC,C218677 +DC-470-2.1GP,DC1,DC-470-2.1GP,1,DC-470-2.1GP,GANGYUAN,LCSC,C194407 +47,R4,R0805,1,RTT0547R0FTP,RALEC,LCSC,C104358 +Temp Input,P1,HDR-3X1/2.54,1,Header-Female-2.54_1x3,Boom Precision Elec,LCSC,C146243 +20K,R5,R0805,1,AR05DTCW2002,Viking Tech,LCSC,C319768 +"4.7M R2",R3,805,2,RCT054M7FLF,Hong Kong Resistors,LCSC,C185697 +OPA320AIDBVR,U2,SOT-23-5,1,OPA320AIDBVR,TI,LCSC,C92494 +1uF,C5,CAP-SMD_BD4.0-L4.3-W4.3-FD,1,EEEFC1V1R0AR,PANASONIC,LCSC,C401626 +SIR333-A,LED1,,1,https://www.everlight.com/file/ProductFile/SIR333-A.pdf ,,, +SFH213-FA,LED2,,1,http://www.farnell.com/datasheets/2711593.pdf,,, +SFH213 ,LED3,,1,https://au.element14.com/osram-opto-semiconductors/sfh-213/photo-diode-850nm-t-1-3-4/dp/2981693?st=sfh ,,, +10W COB LED,LED4 ,,1,https://www.ebay.com.au/itm/10W-20W-30W-50W-70W-100W-12V-36V-HighPower-LED-Lamp-Light-COB-SMD-Bulb-Chip-DIY/273884393042 ,,, diff --git a/Phenobottle Circuit Board/Phenobottle_Circuit_Gerber/Gerber_BoardOutline.GKO b/Phenobottle Circuit Board/Main Teensy Circuit Board/Phenobottle_Circuit_Gerber/Gerber_BoardOutline.GKO similarity index 100% rename from Phenobottle Circuit Board/Phenobottle_Circuit_Gerber/Gerber_BoardOutline.GKO rename to Phenobottle Circuit Board/Main Teensy Circuit Board/Phenobottle_Circuit_Gerber/Gerber_BoardOutline.GKO diff --git a/Phenobottle Circuit Board/Phenobottle_Circuit_Gerber/Gerber_BottomLayer.GBL b/Phenobottle Circuit Board/Main Teensy Circuit Board/Phenobottle_Circuit_Gerber/Gerber_BottomLayer.GBL similarity index 100% rename from Phenobottle Circuit Board/Phenobottle_Circuit_Gerber/Gerber_BottomLayer.GBL rename to Phenobottle Circuit Board/Main Teensy Circuit Board/Phenobottle_Circuit_Gerber/Gerber_BottomLayer.GBL diff --git a/Phenobottle Circuit Board/Phenobottle_Circuit_Gerber/Gerber_BottomSolderMaskLayer.GBS b/Phenobottle Circuit Board/Main Teensy Circuit Board/Phenobottle_Circuit_Gerber/Gerber_BottomSolderMaskLayer.GBS similarity index 100% rename from Phenobottle Circuit Board/Phenobottle_Circuit_Gerber/Gerber_BottomSolderMaskLayer.GBS rename to Phenobottle Circuit Board/Main Teensy Circuit Board/Phenobottle_Circuit_Gerber/Gerber_BottomSolderMaskLayer.GBS diff --git a/Phenobottle Circuit Board/Phenobottle_Circuit_Gerber/Gerber_Drill_NPTH.DRL b/Phenobottle Circuit Board/Main Teensy Circuit Board/Phenobottle_Circuit_Gerber/Gerber_Drill_NPTH.DRL similarity index 100% rename from Phenobottle Circuit Board/Phenobottle_Circuit_Gerber/Gerber_Drill_NPTH.DRL rename to Phenobottle Circuit Board/Main Teensy Circuit Board/Phenobottle_Circuit_Gerber/Gerber_Drill_NPTH.DRL diff --git a/Phenobottle Circuit Board/Phenobottle_Circuit_Gerber/Gerber_Drill_PTH.DRL b/Phenobottle Circuit Board/Main Teensy Circuit Board/Phenobottle_Circuit_Gerber/Gerber_Drill_PTH.DRL similarity index 100% rename from Phenobottle Circuit Board/Phenobottle_Circuit_Gerber/Gerber_Drill_PTH.DRL rename to Phenobottle Circuit Board/Main Teensy Circuit Board/Phenobottle_Circuit_Gerber/Gerber_Drill_PTH.DRL diff --git a/Phenobottle Circuit Board/Phenobottle_Circuit_Gerber/Gerber_TopLayer.GTL b/Phenobottle Circuit Board/Main Teensy Circuit Board/Phenobottle_Circuit_Gerber/Gerber_TopLayer.GTL similarity index 100% rename from Phenobottle Circuit Board/Phenobottle_Circuit_Gerber/Gerber_TopLayer.GTL rename to Phenobottle Circuit Board/Main Teensy Circuit Board/Phenobottle_Circuit_Gerber/Gerber_TopLayer.GTL diff --git a/Phenobottle Circuit Board/Phenobottle_Circuit_Gerber/Gerber_TopPasteMaskLayer.GTP b/Phenobottle Circuit Board/Main Teensy Circuit Board/Phenobottle_Circuit_Gerber/Gerber_TopPasteMaskLayer.GTP similarity index 100% rename from Phenobottle Circuit Board/Phenobottle_Circuit_Gerber/Gerber_TopPasteMaskLayer.GTP rename to Phenobottle Circuit Board/Main Teensy Circuit Board/Phenobottle_Circuit_Gerber/Gerber_TopPasteMaskLayer.GTP diff --git a/Phenobottle Circuit Board/Phenobottle_Circuit_Gerber/Gerber_TopSilkLayer.GTO b/Phenobottle Circuit Board/Main Teensy Circuit Board/Phenobottle_Circuit_Gerber/Gerber_TopSilkLayer.GTO similarity index 100% rename from Phenobottle Circuit Board/Phenobottle_Circuit_Gerber/Gerber_TopSilkLayer.GTO rename to Phenobottle Circuit Board/Main Teensy Circuit Board/Phenobottle_Circuit_Gerber/Gerber_TopSilkLayer.GTO diff --git a/Phenobottle Circuit Board/Phenobottle_Circuit_Gerber/Gerber_TopSolderMaskLayer.GTS b/Phenobottle Circuit Board/Main Teensy Circuit Board/Phenobottle_Circuit_Gerber/Gerber_TopSolderMaskLayer.GTS similarity index 100% rename from Phenobottle Circuit Board/Phenobottle_Circuit_Gerber/Gerber_TopSolderMaskLayer.GTS rename to Phenobottle Circuit Board/Main Teensy Circuit Board/Phenobottle_Circuit_Gerber/Gerber_TopSolderMaskLayer.GTS diff --git a/Phenobottle Circuit Board/Phenobottle_Circuit_Gerber/How-to-order-PCB.txt b/Phenobottle Circuit Board/Main Teensy Circuit Board/Phenobottle_Circuit_Gerber/How-to-order-PCB.txt similarity index 96% rename from Phenobottle Circuit Board/Phenobottle_Circuit_Gerber/How-to-order-PCB.txt rename to Phenobottle Circuit Board/Main Teensy Circuit Board/Phenobottle_Circuit_Gerber/How-to-order-PCB.txt index 439b1861..c0005947 100644 --- a/Phenobottle Circuit Board/Phenobottle_Circuit_Gerber/How-to-order-PCB.txt +++ b/Phenobottle Circuit Board/Main Teensy Circuit Board/Phenobottle_Circuit_Gerber/How-to-order-PCB.txt @@ -1,4 +1,4 @@ -How to Order PCB - -Please refer to: +How to Order PCB + +Please refer to: https://docs.easyeda.com/en/PCB/Order-PCB \ No newline at end of file diff --git a/Phenobottle Circuit Board/Main Teensy Circuit Board/Phenobottle_Circuit_Schematic.pdf b/Phenobottle Circuit Board/Main Teensy Circuit Board/Phenobottle_Circuit_Schematic.pdf new file mode 100644 index 0000000000000000000000000000000000000000..eead0ea60bdf08c5cfbd85eda4fef59b5f443b5e GIT binary patch literal 60319 zcmeHw>uwxJvgZGOiuyA+GuR=!>)tgm3{avq)){-GrD%@`%L=; z`!c(avR_;?ySl2oDqA@FX9Q4WMO8({Eh8c$FZGAl=Pyq3(`xaD|NVdd*Z*CV*($sL z`Pao4Uo0d|(yjkFp z$ESzQ)rZCEv{+@oEmqlI7e)4;`2Fi52kvhdIW_Ta@#9ax@fMGHgWmp$5Rg4=7QZZV zyqwd^^dRt^)?k(X=Kn7KYKV%w0Tjfqn$s4)KV%CB;TC~z9a60N&*TERT~v9|$KxQ! zV~~KyAdaV5t^0T!{9wI35U}B(^1>0CP+Z3aA|9xNwg! zH41>J@mCDFUF3O1wzU0FUT?#o5P7f4D^rMKGDw8UK-8RJGMHm3@^ufBK_W~BiZK~1 zU@H2E1Q6p1j~GFPJ@iIo0+W4qxmdo)vo5>*Wx@UH@*6f|v12jhRrc@>T%FddtcBsU ztL*aa;*V#4$}WFhe07zjgFyoJv*AN&xDNVD%o~fUeAxF>oXxEx^nJ8 zOxO9*bbTgd3=kt!$wX}&_HiS&VaC;B*rAlOl~3fh1o#u^jLV)MY9=MMtWEo|lZVbc~b;QKMj(|3|QIoA$IRvKA^s`|!oD-*4{j zf4+Zuy4_^ouTJyRG3Pvm-h9?F#3zHz8@vGU~;(wvj7Ij&C!3h5rUI3_9qB* z4W|$Gi`oQwe)Y6DhQKwfUJw>w2l6cPWxiS#tKt|kA;*%?R!--e_nXbrF@!>r=#z|6 zDFvZNNV2P$LP%0Ieg1Iu+gG23^Rqs`6c%R>Y z_;_^}5qoI7x9#)HJq4dq9TkSBt>cEQr$RhM!8UhqFvRJPX`|7NMlhYLb`7eV? zoP!McZP{{Hdmgf^zV={4Of3JmE9tIPvHGZOt)Q}tMpAvOraHr_#e|Ln>XzdAG9FaZ z0V3BsYFc;X+e1SsSQUlw3FQZ@B8@?;Bdo6ni0qm1Ai4vryMDZ2(wFfd*8O(hD6J*z zUrROKn-s)Y=UREwk)pCo6xGtd`RY8Nn`o6yD;1>@IfSy? zAUc!%lv=F1T{NwfuSy>MlRJ4oM3i}N=2w#k`C5Jqb<1s&2*jEYP8hNR>v>S>15J z`yXOmd|w%&Ok+M_jzEpbPEt#wh)lp#=IEMM?8F`#u`(zk)LD0&c3G-rp}VO#N>rQJ z*c6o1eM?jfYYI|GG$m(!^YWrB%ah?U*pv=j*6Y)<%Bq4aoYY9T68AA<9^7hlH}- zflIZhYDK99ci_IbCUvzwR`HJ&0=i>WiK~PrVKvr!=1Ht0ZHuKb30hcjU_^1%kF6*UQ>$E&FcsOpX;rGpJ0SM9wogswZvniV`dYO zFXO91$k)uiQBZ=xHMMwzru5m8zPM7bV(28o479q$MM9IXS{zbmX?#)~(p1DilhAGV zHL@xp(*2`@P~w`~*8)X8Ss2h+ME8eElR{EoYf&%67@871?H8!g-MvU2ei=T<*~W6? z5p92Z-xdQSt#IOYKV$RyYT?h9j^V3gwe% zHIPbUl9{U2w*y3)4>*QM)lbBFPsU8-T=!2Vw1!f6vXavxIFxUXvPeS5-k8x{xZfYC z*!NX#Vr1@6z$QOcG2aTF2tS|_ol2ZeC}Yfk_~y@6tbpKF>GW$dUsvIN+c^3^{wWbMh;=@{9j zs4@&}VWR6$x~nEtX;>>X7=YhO#{h+AA(f5+3eQyLjIaYf_r{fu0SdSm@y3;o0gR4$ zc}b;XfP&|yIa{wZ$28EOE%cMM?ciM5sIu^A+80+6R!RE`3^z46^(8b3t0_6*HaswGSO?ja0c0)6FshWPUqNy?a4ts7aT- zWA(wR(~3}_{YNc5Pp?J>Qa$*1JHW2(=rB2N(zRivDpJz14r_A^MBPH6^?j>7Yj_Ik zgj|uu>H)ik-RDhK6MeXgy8XJu%2djt?dlpfRh|~DUDxnS=yud&=uN#6ym(fxo948r zGJ6wZsMn5HuJEk3s&|z_eRGT6>nWxEUf=MZ?a{CdeXV7+TH zonm5$b>tK{H2Koc={PW~F3`a^QZSC$Gid#cf!G=_>>Vkw&01{Rna8L!GqL;tSg~x1 zjo&~CDNxDlw?a}0tfltdEv($RW|VBp4(V`>T-8-kpElO>W+yR*4N}yZ&5PEM%^R}I zv;yd&5SKn=ub71`vGw&cs0`CCixVnVPhgWBCUVk3Pceh&_FD{P#+;3W^vXdTF{pCv zY4i@H(Af+;gRnw~0%RcFm_|zxhV@2^F&(wzg9mRpy>L&~Yqpg|gYupVIDdRRoH z^_W3PPGjAa5n;6<7h|1kl0+pWny+bqB{8x*#v~0N)L~1sLaaDc@!B>?8WFM2>wNH6 zV6jFF8Wdz-FT+@|Jkt!_uo`F(D}>}e-rSu@9?Edgz6tFi9A*;{4zrv=Iu3AWaUv?N zI7q~J1XdH!7_GC7kMd4r7F^k6g=(a=S*6(L3cKgnH)KZ$#fP}cH8O<-iz66KtR1WGTv6=Q%+1eKIxeZESWYm|6gcw;UbRN{>WKvw4b@GfWI-ghDGP z4&?6rZajumY78)CM;fXQ2PsvL-+Psip#zg;v%le4H(a3n(q(qRYay-|cG;eGIkvIO zTRiW_Nbwe5B-GzbwUl9KX3qP_$Oi}nTLNUlD%Vw~v`2s?8=jaiS+gjpO`Am?#_CcC zb_i%0(CN@c+p!lpDEn=N_E16v;7M9daL%-Ol`J@H)SceJ)F%4FR#0RbvCcNjSt?1n z*4k*hkb96r`EidV({4nPfl^2+ctxp<0a8h_)HNc>K!bTFl(T1{La`gGi9t4pWBhqV zr%hn0KMZ>EPwC5|7+Zy`%`=i=K|Ksu?mLCTQD&VT>3iVGiVEn>57jeOO zjy>?R(M_Z=uKn1lZvi{|CdPZhZNR@j8`!Sd!)r9!!T?=;0o_+va@Ik>NQ0U@qlx4- zvNlXJVt*ptqei)4lMOq>v4&(yAzBU3s2d5Lzg-c*PA%GRPN4An{lmEepXLu}Ks@DLs-x~(3u%PtD@flZ*YJ}LlLI<94jh_saTCqMM1QhH1=UV z#QFe{ZeZ!GNBS{oq`QE%b_UyD3f6ryo_gG9v#XC{)|gPHK4g3N1}$TMH?*ypQOmad z)j-kqS5J2b_4=$VR%b8IpM8JfgQ3}IF*UuSk%6QAZu(%48}os{+Hw|6JRytDc0;-=v4=|E zOk@yAg2(dJ13TrVxM2R4TBgd?As5^?z&<~MmFjcm8WpR71|9n$tm+iPl#%V~Cnb!= z=>1qd6;!d31S~uBur$H@Y)imU7`qYHSX-0pryZ|L(T&}b-?`!TbMrpGo;ayqqjoLs%|#RjU=E4~V3S3(#xhcxJ_xm!@qjcUq9LDTT~ke& z>~=0m(dlpFN%R4dq7G`^-aum{$^JW0y8J)3_)b+=>P{QXXn2jIHwFp|_SoLT_}5ft zqnDI2&sTN68WuI{Q0Q9sv?ZJ;p|5wnp0#av(_##k8pov)S` zKjh1AU%h#mASdN8Y~z|9Ce?L0hdMV2<8lral*D0}t~}3|m&D=AH?Pt;3=@~LJ&$u3 zl2+$18idU@&XpVId9i%`58sS89g%7;9Pu;Tg*k7UeaG5UP>S}NP?9|_iMQpO=ij(# z&1R4f8sNw}=KDe|oBd7jea@gx*vAYiD2YMdM!+PUSHj@=Su%qSFVtmh!Ew&?Fin_K zHtRG{5`!51sM9;IkFiedlQBf&OXNlZtSPV246?6V46|j!y!gRA-rSDY@b(Nw)+O^7c6~U13QE!)%64X#Yv%7ViNEr+ zZgCif+h!h)44m8Xbo?6|XEY?9E_2CQnvk=ccdEc*`TUL3Hyt77%ZbS-eew9&OC1lo zPun&eGpQ*}k`|-<1t&IAfVlkOI4(m9le-_D&E;+mgVRa5dnR!i=P;6@rE4)HFwyB| zb4_(OgK3V)V45g{$qP=<()kNXOrD&@#HZ6kZ&WEUP>TNQkj3DfoA1p7&hCIAeaVya zmu5GAF;Eg~QT|f6yytROhrA_EPF(8U#Kk~KoJEOC;o_dnS;$)Q{1Yc2G#2;zK}G7Chy4tvrAn`e2oJTG1Tla)wSV6&$%=6onW#t4+1v#ab?#D3w17v)miNfb&=}|} zZ@{68ezyK1SL0E1HiyC0IEN`?AmcEE3E{8>hc5ov97dtSqv>o8L#S{LQ$hvrf5!O{ zA;hD|ne$-wEMJ37*THNyqj*0%lktui;=Qw(67LHf8P~Nq`oc4rH|J-@W(PK15wqD0 z30vs{$JyEp37fN-lCYUK4N3M{u>yB4|JmGyM7#8WGn>1RXghZ))xiS96tLB3aCG*3 zwLA+6*KGE}2&tT%*SL*_5t6f~pqar!*o#KBXU~z?gp6x8dtqoB0_tq-g`uspr=WT4 zp%76*d!ZhYGM%Y$unFae5KQNCX0?YX${T1NXE^!=JLscI5>D!)6b)T3)Vby=uL+4v zh^Dhy3~8DvFR7SRkmJlzh;skQfshzX&SjdA%YQZ8juv$WQLRQU z0|t{*ndo5A5JqP+xSPr(m2*vly;PxSlg+(ePXz(z4#3PrHlUM8e3RdV_wXQ#`tA39tz z&`cHL$Z2%KkiH-p1&0_ig<{xj4nqo4C8sda1gHDaq!dPtG^8+Wq!=-Un%HaxLlRRZ zCowh^9mm3?Bt{twNenZH0aJRG7OgC(ye=@i7w)DpNlOdNkA^gc8N^U2Jx^;xHdA>x zoy#Eni4~sAL=7~v6LP3;Lq&!e#2_gY#par58*-V-!|7}WcXJu~yy1L53f1Ar#5UwI zNfTq5iMAn&sXUO*W^Ff%X_G24Nciz_J~|Oz3-)J6B-w2!#Z(?bXS24OzqBc(m=b*i zi|nJ-kl!a90b)uEC78-b{@W;#hk2V{y!#JJ{iz#>uFd$(wfgSx4 z`lD}U>-R?-W;#SN)_@W@CroP~c+Fd8vmA*IneX<&Cqq>3d;w9nOxdxah-S8vB#)xm zBvkrgvltZ}WeBnjL~eB&DmjE8$A)I|Rzwv#Dx*@+WK?!E1CD1kRM>|us01_}m2#tp z{Iaa{)YX0G{(^yh#$g%=MG@109q#GTXr6J%_tmh=lee2E7>9khpwL~qVAw&}k7#jZ zibn0LcQGn84g*b9gMCS^!0EoKQOb8nqXwFcN{ypn@5Xl4sBsu*Ix5{@QuQguWb-!xPz zFy52Tvab;q7`uX|s?m=!=c8^El^&L;py{ZToA4=!8kQhb?Kw^!7O|&~ySPKn<)8x^ z*n`#f6h%jL*tSRmVJA266ZLWU8dA@mc3KUJR=9(Qa*$8j`DbVxlH{{m$)TELV|U7e zg*xbfsQX>I)f~zyvc$KBNdrwat5%PRX@ar08YT@i8I^{~CK!9GVbVa;QArnUg0Z)H zyq1B+Q0*}n3urb3gxE?Ho5%U%P7*>KeQA{N>VcO?xxatz=fV$}d0)p)S?HM# zib$J;iq9A!V%*Kzhbaw2(oEp8<@1TN5`9Ah`AjbTRFyE5>7Zz$b_$oRo_#@5(qPgm z;|5BwnLaht)j$~8jP00=Wta0flH783`3-+Cf!r@UY5t#f>Cw&p2n~n&p|sHP*O}>r zUf9cv+fNVo`-hT1#MpL*lKD!QA57o-E0$Xiq5IX>(L8^Tekg9_QvWjFw#g~5Zt-BfpR5jEirRugCQVzE|Ka9d{ zbr%xsSq}w@>{$b+Ez3-h>JWA6qGGJac7Mue3w(zd6SP69ukU}`JfzyHCayM{O4gvR ztbzNIzD%nD$T9~YewdlR6(Bv-2~wq8m>Ukkp1$rJgFc4`C~>$cO`6i;6Ny)_)nlY; zU$Ul7P9lsv7k#l(q-viM--S?r)MwN(BZ%cc9>0=nAu)9WSdX<;<`2dA5UO6CZ$67u zLrvMb9etg*C)Hg@ki1GYlDzTn=|s9zBkBgQ9xGKk_!i&&qCCKD^(d(pDvUB5lVjy4 z@}?qHnQlOuxC5!&4(+W7(nFo#0SXO@F?GjdwJ;H3wGZ+b2%n-vpdn8~-_{W+Bn>Mn z*gs)Op098^z&FtWXX2oUv?;@i3RA4iQjAJUG1QZc%W0@&R9lAmiVB}dW$ZKOD=Op& z@}AFERQmDmQl~J+ET=!vtmvQ?l6IJ{s4({$gFZ{Zz$rgDKKq3=D7gfTv+JjuyPNCF zhnshak=Q=ZWfMoFW{q{Bc3Wvc9DsPK*xw2eo-8~(C$*>CFhretHzWA72o~Qh!eMm{ zR)#>nl#3rPSPRCsk|PSnQCPL=TL`@d@dVw14b4zUSLvf3Gt)hS?V}*-G;uV7W5Ldt zD5XLMx6!-eWakAepOD*!nsIOpTWOKc zK$B5vk*`KMPCaX>MLq*fM)T}8Vw@V4oY?n$G zA7;vS`DRZ*Jw%ocV7JKfL2U|I*dV0cC0a2xTUuJ1*doj86~q2?kB@LA1hk!2IA}~R zfhs^kmS-c886lI2yK{IDIJDtX~tqKrlrynUX(3r>Vhm?*!)CV;@4L44`IzZD=RfXKn_xF8twK9|u$L0zZk%E#<|3f4&J zhPCf?vBW0TUMWMP&y{1ai4WM(5aD=xwang*8h}8&w(O)^(SSaiE*9(%_p|<11d*;_ zs1pP`M4cvvG1g;yL5Z8&<2A@WYXDE5Rf4bW|K7Nfq5(9>p7gQk7g_kirV0iIk7vdh&-wF^benhf9S_<&J zs87%y0V)3kA$+@ed-LhTv0@0uV+?s+!lbYR!0l>kuoy=#01?lHev7kpR%g))SpU;{^V1oLz>(dRBx zMp?B}?{Q}rqN72Yf7iDnh(;n8+-#>aM4d&V29dtvvOTJQIsKYV z#c@8!$>!mAA)a!%bR&pLS5YT~4vRj~`Bi;_KZ^^8=crK^#2oUD<)(LBr&JwpEZQI> z6YVazq%Z6+&g4olshk?dA zq~kDo*b9V1ov48b$Gk$OV1R(QV!|_u*$JtUZ0I;4ky&h-$ZOVUG$70;%I?lbg;uvPvd zKQw=_zc1Qu}bd;j16D2;#q$# z|6lk{@Oj-pb|ZkU5x+Z8XqZCcaBg3{gF71h8rVd1wnrjD*Z*E;QW#!iGasBUeRvZc zkf!tS(bME8%-HbNcx(`_<*V@*vp21;;aw>Yiax&TAg%om2ILX{;qQk0%|TJZJ#Frm{6cSbw8--y`kj0aoP1oJI* z1&M*?XrY9wCZ*cDK-XWNwI@Rwag~A;I7bqPxgM#buesOwcBgA0I+q|787BTLFprwheE zk4|G7Lw$leBU~18P}%92ozN$=0c8(1BCZ&RY=X{cbOBIZjAtOBf(0Iz<+S() zA77p1Jm#KEiG19Dmtn^~%`|9J< z&Gpr7c8>49-8}t{-&;FGxLLLGQLLhRtTSg}+p3%XRO=*EG!sIM^3oF~5L>M7AMQVZ ztcN7x3bsp#&WY=@{MCn>;l)9t42u%U!|Nz1CUO+rv?EN^=xQz{u>}5p|FrqbVAeAa zDl$o!}X_|r|iSk@7c$P`+wfN-DLl~zkRxTw|UIoJ#4N>2T$*>?lM|c^XJb% zQc&}6?{BW(bIWh9KA=Igv&rOZglMhFuI{dG@84xl_u1QzKauYpkqXO zC4CX!%nexO0!XDvyT{b&TU(?Kv(u^Qcu)a${F;gCkm8ey@PQ~aEW7mW>Uz=Pz#~$T z-lg#ll#Rp@%I)k**|BS6P2k7g#Dbv+uUrAIwrY1px%%c7y~8}MQU7F0xNVr7T{C5r zAO)TzJ24($9<+kmd0JzIYv9SR%&ox$0Ah_ujc*0^#@Z@)yrxNzXZ|W5#XIM?S7Mm%t*`B(Ry(wMP z@bVQstF7u?=EC39E5$q1m2yk~lXN8m`+&o_^qTdQ;~T)FCy)T1G||#4topL8T2HT(7;oTh!uFkI(NaOZ*KEscZD*0Q>Zq)#*?*bcVnKM zzCAp32q)l4&R3xLWY^p)I&8=SPo)HNIcmnP5J%u_!IRw;>6B1B#V5N`yZ3AE75*mo z7{{yq$y?RCN};@I^zG?SbOayiNd}GZ<#x@|UgMZ3(vzk|G6v8q_*`rbAU)|_?4V*y z@}^y>JlA@y$&J3LiI3uyE8x{u?XFO$ZyJ63^n`URq$e)Tke=*Xq>a;wNKX>|IvHi^ z74(E{6r?A;i&{8ik~i(j^kml}ZF^HRVR%hX)~eoB3gu0sZ;zg6>n$je<+R|*uUXoy z^rr^S0P%?i?})j2b-ie%Klxp5n^wre_FCy(ikF_1yO{e!e6ly;I3v7rMbC0CZtSj5 zXm7^!4#%fLY(frg15bX<(x#aM=qbmNYqTvpQtj$`QQ%YS(39U~s%h>TJQX5O#Y@lX zU6!`L$+B|1swZz%?=lxOBw2Uavfl@VhZjnm0I4e$A9= z9+9_9wc}Nuyj8s$^W^mH;mP`s4DmvLg8ImNsb$MfA?r_a75bCj)gGg7+EuSVVZ$e+ zZ9Nf+hW;I|^5m`RU6vJX6{R<|KMB3Vwr4r3@#NRclVy`awdJtJlVzfISKHP%^-6iN z99AgvH<@b3t2}wDdYAR2JUM-P^wdfo5qyMQOHY?P!n^=#En7Z9@(91nT$qoLydn4q zz1E(tZ>kqiyzV2kRl6%*!QPZBnY0(g^(h&TfU9+@XwLOUxasZOWSokOP$a+_; zO=50qS1M1xW()E+Srd*|_2jMUUD0?YZyJ4j^hAeK#J=3GSx=2*{i+E$&n5WsM#dU` zH`Y@lV++@lU5m8sP0@tmH9c9Yb~o0O)3+z)TIm6yoW~k|%{*BtLj04JBIGKRBJ{2n z9}wu_U9|Kdt9CFZv};TRpr>0ALwcg&wSH=?+Fh1au5W5RLg*c~J>x+t(4oA7fdf&d zcPyTX&csXPh2#M9>P?c)=Qm>=k` z`=5Ws@x`l*et+@B^78kOn{4@-3Z0AP-)`PMWbb&k2v5_1=*ieQa7 z&fEcWEsmncSFLbtDsEK#LpSJw67#AAv)=@t@?&@ihy9?Kj>gEvNOH+GRQ9y&*#HkJTqw+2UqH>Z1; zD_3Udw{gqF6Ad`%2$n3rfr}(VFruXZEoFrz!X4Hr;P0+27>;ds@(iBCaTNT1*Mdt1~+ zDnqMuAJ{~^_yc?Sm^{LO-G=fakp$705mWdXctmQaLj-*TM=f^3K+h` z!@tQ=>={GAWQG42%r-!Fu>FHwmTVU!)A)yNg6u+n*jCgg$R6S!qL;5>7i1gu!*)UY zxk>ND%D@lKk!Qixu!;DG>>&QZx3PpivWeag>zZIa9>^}(?z;S^;Ky3`4v`&vi4`pd zRQM@LRd5gNBGw&!v=p;Vq9=_6nMI$O3D9>Ouw$X5a7EjEnKSbu8yK%9#FJ1L~# z|L>$w^VfeTh5yA#Vc}k4v3&h-fBk0jl>NATef|QjbMvpKZ26Lw=RDKj&-M39&F!); zzJLQovI#5~_zU4*|H2?i|H8^E1x-+zKUUfpe; z-`{@va2K`nuZImLH!*}?AotaObeI!HE5Bp{LzKe+j_+l62E!NtlB0hP!{12y`mh{% z^)?KjvA{sG59=_V>%maL+IhD{v7!GQ#uCsS{c~DsEG^%8cU@sv-+K-x&+N3@wJmaR z!}s)Xb#uFUK=B2!`R0FaNLI^>d#shpx$=UbcK6FYtz%?EdU>Axn0-;T&(^E+6)KYF xUm-0jUUc2+9IGH-JbQtU{G6@7obt#|q^HNHtA{7nQjM{DzWBo*zIyfI{{h?VoA&?! literal 0 HcmV?d00001 diff --git a/Phenobottle Circuit Board/Phenobottle_Circuit_Schematic.pdf b/Phenobottle Circuit Board/Phenobottle_Circuit_Schematic.pdf deleted file mode 100644 index 90f3e5e0c9a9f3f7508487d91b15f5247af7f152..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 66821 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 A@Bjb+ diff --git a/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_BoardOutline.GKO b/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_BoardOutline.GKO new file mode 100644 index 00000000..cc7b5419 --- /dev/null +++ b/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_BoardOutline.GKO @@ -0,0 +1,24 @@ +G04 Layer: BoardOutline* +G04 EasyEDA v6.4.7, 2020-10-21T08:40:06+11:00* +G04 167876914e964c2ea181e253bf9821b7,8b00c40d607e4de580d566db1ee26a9b,10* +G04 Gerber Generator version 0.2* +G04 Scale: 100 percent, Rotated: No, Reflected: No * +G04 Dimensions in millimeters * +G04 leading zeros omitted , absolute positions ,3 integer and 3 decimal * +%FSLAX33Y33*% +%MOMM*% +G90* +D02* + +%ADD10C,0.999998*% +G54D10* +G01X0Y19685D02* +G01X31242Y19685D01* +G01X31242Y0D01* +G01X0Y19685D02* +G01X0Y0D01* +G01X31242Y0D01* + +%LPD*% +M00* +M02* diff --git a/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_BottomLayer.GBL b/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_BottomLayer.GBL new file mode 100644 index 00000000..fa99a3fc --- /dev/null +++ b/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_BottomLayer.GBL @@ -0,0 +1,29 @@ +G04 Layer: BottomLayer* +G04 EasyEDA v6.4.7, 2020-10-21T08:40:06+11:00* +G04 167876914e964c2ea181e253bf9821b7,8b00c40d607e4de580d566db1ee26a9b,10* +G04 Gerber Generator version 0.2* +G04 Scale: 100 percent, Rotated: No, Reflected: No * +G04 Dimensions in millimeters * +G04 leading zeros omitted , absolute positions ,3 integer and 3 decimal * +%FSLAX33Y33*% +%MOMM*% +G90* +D02* + +%ADD13C,1.750060*% +%ADD14R,1.750060X1.750060*% +%ADD15C,1.999996*% + +%LPD*% +G54D13* +G01X4064Y13208D03* +G01X4064Y10668D03* +G01X4064Y8128D03* +G54D14* +G01X4063Y5586D03* +G54D15* +G01X23368Y14657D03* +G01X23368Y9657D03* +G01X23368Y4657D03* +M00* +M02* diff --git a/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_BottomSolderMaskLayer.GBS b/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_BottomSolderMaskLayer.GBS new file mode 100644 index 00000000..046a3ad5 --- /dev/null +++ b/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_BottomSolderMaskLayer.GBS @@ -0,0 +1,33 @@ +G04 Layer: BottomSolderMaskLayer* +G04 EasyEDA v6.4.7, 2020-10-21T08:40:06+11:00* +G04 167876914e964c2ea181e253bf9821b7,8b00c40d607e4de580d566db1ee26a9b,10* +G04 Gerber Generator version 0.2* +G04 Scale: 100 percent, Rotated: No, Reflected: No * +G04 Dimensions in millimeters * +G04 leading zeros omitted , absolute positions ,3 integer and 3 decimal * +%FSLAX33Y33*% +%MOMM*% +G90* +D02* + +%ADD19C,1.953260*% +%ADD22C,2.203196*% + +%LPD*% +G54D19* +G01X4064Y13208D03* +G01X4064Y10668D03* +G01X4064Y8128D03* +G36* +G01X3086Y4610D02* +G01X3086Y6563D01* +G01X5039Y6563D01* +G01X5039Y4610D01* +G01X3086Y4610D01* +G37* +G54D22* +G01X23368Y14657D03* +G01X23368Y9657D03* +G01X23368Y4657D03* +M00* +M02* diff --git a/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_Drill_PTH.DRL b/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_Drill_PTH.DRL new file mode 100644 index 00000000..76d92ea1 --- /dev/null +++ b/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_Drill_PTH.DRL @@ -0,0 +1,23 @@ +;Layer: Drill PTH +;EasyEDA v6.4.7, 2020-10-21T08:40:06+11:00 +;167876914e964c2ea181e253bf9821b7,8b00c40d607e4de580d566db1ee26a9b,10 +;Gerber Generator version 0.2 +M48 +METRIC,LZ,000.000 +;Holesize 1 = 1.141 METRIC +T01C1.141 +;Holesize 2 = 1.301 METRIC +T02C1.301 +% +G05 +G90 +T01 +X+004064Y+013208 +X+004064Y+010668 +X+004064Y+008128 +X+004063Y+005586 +T02 +X+023368Y+014657 +X+023368Y+009657 +X+023368Y+004657 +M30 diff --git a/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_TopLayer.GTL b/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_TopLayer.GTL new file mode 100644 index 00000000..504301af --- /dev/null +++ b/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_TopLayer.GTL @@ -0,0 +1,2341 @@ +G04 Layer: TopLayer* +G04 EasyEDA v6.4.7, 2020-10-21T08:40:06+11:00* +G04 167876914e964c2ea181e253bf9821b7,8b00c40d607e4de580d566db1ee26a9b,10* +G04 Gerber Generator version 0.2* +G04 Scale: 100 percent, Rotated: No, Reflected: No * +G04 Dimensions in millimeters * +G04 leading zeros omitted , absolute positions ,3 integer and 3 decimal * +%FSLAX33Y33*% +%MOMM*% +G90* +D02* + +%ADD10C,0.999998*% +%ADD11R,0.999998X1.550010*% +%ADD13C,1.750060*% +%ADD14R,1.750060X1.750060*% +%ADD15C,1.999996*% + +%LPD*% +G36* +G01X29997Y18669D02* +G01X1117Y18669D01* +G01X1103Y18667D01* +G01X1089Y18664D01* +G01X1075Y18659D01* +G01X1062Y18652D01* +G01X1051Y18644D01* +G01X1040Y18633D01* +G01X1032Y18622D01* +G01X1025Y18609D01* +G01X1020Y18595D01* +G01X1017Y18581D01* +G01X1016Y18567D01* +G01X1016Y1117D01* +G01X1017Y1103D01* +G01X1020Y1089D01* +G01X1025Y1075D01* +G01X1032Y1062D01* +G01X1040Y1051D01* +G01X1051Y1040D01* +G01X1062Y1032D01* +G01X1075Y1025D01* +G01X1089Y1020D01* +G01X1103Y1017D01* +G01X1117Y1016D01* +G01X29997Y1016D01* +G01X30011Y1017D01* +G01X30025Y1020D01* +G01X30039Y1025D01* +G01X30052Y1032D01* +G01X30063Y1040D01* +G01X30074Y1051D01* +G01X30082Y1062D01* +G01X30089Y1075D01* +G01X30094Y1089D01* +G01X30097Y1103D01* +G01X30099Y1117D01* +G01X30099Y18567D01* +G01X30097Y18581D01* +G01X30094Y18595D01* +G01X30089Y18609D01* +G01X30082Y18622D01* +G01X30074Y18633D01* +G01X30063Y18644D01* +G01X30052Y18652D01* +G01X30039Y18659D01* +G01X30025Y18664D01* +G01X30011Y18667D01* +G01X29997Y18669D01* +G37* + +%LPC*% +G36* +G01X13652Y3408D02* +G01X13134Y3408D01* +G01X13134Y3321D01* +G01X13135Y3298D01* +G01X13138Y3275D01* +G01X13143Y3251D01* +G01X13151Y3229D01* +G01X13161Y3207D01* +G01X13172Y3187D01* +G01X13186Y3167D01* +G01X13201Y3149D01* +G01X13218Y3132D01* +G01X13235Y3117D01* +G01X13255Y3103D01* +G01X13276Y3092D01* +G01X13297Y3082D01* +G01X13320Y3075D01* +G01X13343Y3069D01* +G01X13367Y3066D01* +G01X13390Y3065D01* +G01X13652Y3065D01* +G01X13652Y3408D01* +G37* +G36* +G01X14947Y3408D02* +G01X14429Y3408D01* +G01X14429Y3065D01* +G01X14690Y3065D01* +G01X14714Y3066D01* +G01X14738Y3069D01* +G01X14760Y3075D01* +G01X14783Y3082D01* +G01X14805Y3092D01* +G01X14825Y3103D01* +G01X14845Y3117D01* +G01X14863Y3132D01* +G01X14880Y3149D01* +G01X14895Y3167D01* +G01X14908Y3187D01* +G01X14920Y3207D01* +G01X14930Y3229D01* +G01X14937Y3251D01* +G01X14942Y3275D01* +G01X14946Y3298D01* +G01X14947Y3321D01* +G01X14947Y3408D01* +G37* +G36* +G01X23419Y5912D02* +G01X23368Y5913D01* +G01X23318Y5912D01* +G01X23267Y5909D01* +G01X23217Y5904D01* +G01X23167Y5897D01* +G01X23117Y5888D01* +G01X23068Y5877D01* +G01X23019Y5864D01* +G01X22971Y5849D01* +G01X22924Y5832D01* +G01X22876Y5813D01* +G01X22831Y5792D01* +G01X22785Y5769D01* +G01X22741Y5745D01* +G01X22697Y5719D01* +G01X22655Y5691D01* +G01X22614Y5662D01* +G01X22575Y5631D01* +G01X22536Y5598D01* +G01X22499Y5564D01* +G01X22463Y5528D01* +G01X22429Y5491D01* +G01X22396Y5452D01* +G01X22365Y5413D01* +G01X22335Y5372D01* +G01X22325Y5359D01* +G01X22312Y5348D01* +G01X22299Y5340D01* +G01X22284Y5333D01* +G01X22268Y5329D01* +G01X22251Y5328D01* +G01X16440Y5328D01* +G01X16400Y5327D01* +G01X16359Y5324D01* +G01X16319Y5318D01* +G01X16279Y5311D01* +G01X16240Y5301D01* +G01X16201Y5289D01* +G01X16163Y5276D01* +G01X16089Y5242D01* +G01X16054Y5222D01* +G01X16020Y5200D01* +G01X15987Y5177D01* +G01X15955Y5152D01* +G01X15941Y5141D01* +G01X15924Y5134D01* +G01X15908Y5130D01* +G01X15890Y5128D01* +G01X15790Y5128D01* +G01X15767Y5127D01* +G01X15743Y5124D01* +G01X15720Y5118D01* +G01X15698Y5110D01* +G01X15676Y5101D01* +G01X15655Y5090D01* +G01X15636Y5076D01* +G01X15617Y5061D01* +G01X15601Y5044D01* +G01X15585Y5026D01* +G01X15572Y5006D01* +G01X15561Y4986D01* +G01X15551Y4964D01* +G01X15543Y4942D01* +G01X15538Y4918D01* +G01X15535Y4895D01* +G01X15534Y4872D01* +G01X15534Y4271D01* +G01X15535Y4248D01* +G01X15538Y4225D01* +G01X15543Y4201D01* +G01X15551Y4179D01* +G01X15561Y4157D01* +G01X15572Y4137D01* +G01X15585Y4117D01* +G01X15601Y4099D01* +G01X15617Y4082D01* +G01X15636Y4067D01* +G01X15655Y4053D01* +G01X15676Y4042D01* +G01X15698Y4033D01* +G01X15720Y4025D01* +G01X15743Y4019D01* +G01X15767Y4016D01* +G01X15790Y4015D01* +G01X15890Y4015D01* +G01X15907Y4013D01* +G01X15924Y4009D01* +G01X15940Y4002D01* +G01X15955Y3991D01* +G01X15987Y3966D01* +G01X16020Y3943D01* +G01X16054Y3921D01* +G01X16089Y3901D01* +G01X16126Y3883D01* +G01X16163Y3867D01* +G01X16201Y3854D01* +G01X16240Y3842D01* +G01X16279Y3832D01* +G01X16319Y3825D01* +G01X16359Y3819D01* +G01X16400Y3816D01* +G01X16440Y3815D01* +G01X22391Y3815D01* +G01X22407Y3814D01* +G01X22423Y3810D01* +G01X22438Y3803D01* +G01X22452Y3795D01* +G01X22464Y3784D01* +G01X22502Y3747D01* +G01X22541Y3710D01* +G01X22582Y3676D01* +G01X22624Y3644D01* +G01X22667Y3613D01* +G01X22712Y3585D01* +G01X22758Y3558D01* +G01X22805Y3533D01* +G01X22853Y3511D01* +G01X22902Y3490D01* +G01X22951Y3471D01* +G01X23002Y3454D01* +G01X23053Y3440D01* +G01X23105Y3428D01* +G01X23157Y3418D01* +G01X23210Y3410D01* +G01X23262Y3405D01* +G01X23315Y3401D01* +G01X23368Y3400D01* +G01X23419Y3401D01* +G01X23470Y3404D01* +G01X23520Y3409D01* +G01X23570Y3416D01* +G01X23619Y3425D01* +G01X23669Y3437D01* +G01X23718Y3450D01* +G01X23766Y3465D01* +G01X23814Y3482D01* +G01X23861Y3501D01* +G01X23907Y3521D01* +G01X23952Y3544D01* +G01X23996Y3568D01* +G01X24040Y3595D01* +G01X24082Y3623D01* +G01X24123Y3652D01* +G01X24163Y3683D01* +G01X24202Y3716D01* +G01X24239Y3751D01* +G01X24274Y3786D01* +G01X24309Y3823D01* +G01X24341Y3862D01* +G01X24373Y3902D01* +G01X24402Y3943D01* +G01X24430Y3985D01* +G01X24457Y4028D01* +G01X24481Y4073D01* +G01X24503Y4118D01* +G01X24524Y4164D01* +G01X24543Y4211D01* +G01X24560Y4259D01* +G01X24575Y4307D01* +G01X24588Y4356D01* +G01X24599Y4405D01* +G01X24609Y4455D01* +G01X24616Y4505D01* +G01X24621Y4555D01* +G01X24624Y4606D01* +G01X24625Y4656D01* +G01X24624Y4707D01* +G01X24621Y4757D01* +G01X24616Y4808D01* +G01X24609Y4858D01* +G01X24599Y4908D01* +G01X24588Y4957D01* +G01X24575Y5006D01* +G01X24560Y5055D01* +G01X24543Y5102D01* +G01X24524Y5149D01* +G01X24503Y5195D01* +G01X24481Y5241D01* +G01X24457Y5285D01* +G01X24430Y5328D01* +G01X24402Y5371D01* +G01X24373Y5411D01* +G01X24341Y5451D01* +G01X24309Y5490D01* +G01X24274Y5527D01* +G01X24239Y5563D01* +G01X24202Y5597D01* +G01X24163Y5630D01* +G01X24123Y5661D01* +G01X24082Y5691D01* +G01X24040Y5719D01* +G01X23996Y5745D01* +G01X23952Y5769D01* +G01X23907Y5792D01* +G01X23861Y5813D01* +G01X23814Y5831D01* +G01X23766Y5849D01* +G01X23718Y5863D01* +G01X23669Y5877D01* +G01X23619Y5888D01* +G01X23570Y5897D01* +G01X23520Y5904D01* +G01X23470Y5909D01* +G01X23419Y5912D01* +G37* +G36* +G01X13652Y4178D02* +G01X13390Y4178D01* +G01X13367Y4177D01* +G01X13343Y4174D01* +G01X13320Y4168D01* +G01X13297Y4161D01* +G01X13276Y4151D01* +G01X13255Y4140D01* +G01X13235Y4126D01* +G01X13218Y4111D01* +G01X13201Y4094D01* +G01X13186Y4076D01* +G01X13172Y4056D01* +G01X13161Y4036D01* +G01X13151Y4014D01* +G01X13143Y3992D01* +G01X13138Y3969D01* +G01X13135Y3945D01* +G01X13134Y3921D01* +G01X13134Y3835D01* +G01X13652Y3835D01* +G01X13652Y4178D01* +G37* +G36* +G01X14690Y4178D02* +G01X14429Y4178D01* +G01X14429Y3835D01* +G01X14947Y3835D01* +G01X14947Y3921D01* +G01X14946Y3945D01* +G01X14942Y3969D01* +G01X14937Y3992D01* +G01X14930Y4014D01* +G01X14920Y4036D01* +G01X14908Y4056D01* +G01X14895Y4076D01* +G01X14880Y4094D01* +G01X14863Y4111D01* +G01X14845Y4126D01* +G01X14825Y4140D01* +G01X14805Y4151D01* +G01X14783Y4161D01* +G01X14760Y4168D01* +G01X14738Y4174D01* +G01X14714Y4177D01* +G01X14690Y4178D01* +G37* +G36* +G01X14040Y6278D02* +G01X11094Y6278D01* +G01X11055Y6277D01* +G01X11015Y6274D01* +G01X10976Y6269D01* +G01X10937Y6262D01* +G01X10898Y6252D01* +G01X10861Y6241D01* +G01X10823Y6228D01* +G01X10786Y6212D01* +G01X10751Y6196D01* +G01X10716Y6177D01* +G01X10682Y6156D01* +G01X10650Y6134D01* +G01X10618Y6109D01* +G01X10588Y6084D01* +G01X10559Y6056D01* +G01X10517Y6014D01* +G01X10504Y6004D01* +G01X10491Y5995D01* +G01X10476Y5989D01* +G01X10461Y5985D01* +G01X10445Y5984D01* +G01X10024Y5984D01* +G01X10001Y5983D01* +G01X9977Y5980D01* +G01X9954Y5974D01* +G01X9932Y5966D01* +G01X9910Y5957D01* +G01X9889Y5946D01* +G01X9870Y5932D01* +G01X9852Y5917D01* +G01X9835Y5900D01* +G01X9820Y5882D01* +G01X9806Y5862D01* +G01X9795Y5842D01* +G01X9785Y5820D01* +G01X9778Y5798D01* +G01X9772Y5774D01* +G01X9769Y5751D01* +G01X9768Y5728D01* +G01X9768Y4177D01* +G01X9769Y4154D01* +G01X9772Y4131D01* +G01X9778Y4107D01* +G01X9785Y4085D01* +G01X9795Y4063D01* +G01X9806Y4043D01* +G01X9820Y4023D01* +G01X9835Y4005D01* +G01X9852Y3988D01* +G01X9870Y3973D01* +G01X9889Y3959D01* +G01X9910Y3948D01* +G01X9932Y3939D01* +G01X9954Y3931D01* +G01X9977Y3925D01* +G01X10001Y3922D01* +G01X10024Y3921D01* +G01X11025Y3921D01* +G01X11048Y3922D01* +G01X11072Y3925D01* +G01X11095Y3931D01* +G01X11117Y3939D01* +G01X11139Y3948D01* +G01X11160Y3959D01* +G01X11179Y3973D01* +G01X11197Y3988D01* +G01X11214Y4005D01* +G01X11229Y4023D01* +G01X11243Y4043D01* +G01X11254Y4063D01* +G01X11264Y4085D01* +G01X11271Y4107D01* +G01X11277Y4131D01* +G01X11280Y4154D01* +G01X11281Y4177D01* +G01X11281Y4596D01* +G01X11282Y4612D01* +G01X11286Y4628D01* +G01X11292Y4643D01* +G01X11300Y4656D01* +G01X11311Y4668D01* +G01X11378Y4735D01* +G01X11390Y4745D01* +G01X11404Y4754D01* +G01X11418Y4760D01* +G01X11434Y4764D01* +G01X11450Y4765D01* +G01X14040Y4765D01* +G01X14081Y4766D01* +G01X14121Y4769D01* +G01X14162Y4775D01* +G01X14201Y4782D01* +G01X14241Y4792D01* +G01X14279Y4804D01* +G01X14317Y4817D01* +G01X14355Y4833D01* +G01X14391Y4851D01* +G01X14427Y4871D01* +G01X14461Y4893D01* +G01X14494Y4916D01* +G01X14526Y4941D01* +G01X14540Y4951D01* +G01X14556Y4959D01* +G01X14574Y4963D01* +G01X14591Y4965D01* +G01X14690Y4965D01* +G01X14714Y4966D01* +G01X14738Y4969D01* +G01X14760Y4975D01* +G01X14783Y4982D01* +G01X14805Y4992D01* +G01X14825Y5003D01* +G01X14845Y5017D01* +G01X14863Y5032D01* +G01X14880Y5049D01* +G01X14895Y5067D01* +G01X14908Y5087D01* +G01X14920Y5107D01* +G01X14930Y5129D01* +G01X14937Y5151D01* +G01X14942Y5174D01* +G01X14946Y5198D01* +G01X14947Y5222D01* +G01X14947Y5822D01* +G01X14946Y5845D01* +G01X14942Y5868D01* +G01X14937Y5892D01* +G01X14930Y5914D01* +G01X14920Y5936D01* +G01X14908Y5956D01* +G01X14895Y5976D01* +G01X14880Y5994D01* +G01X14863Y6011D01* +G01X14845Y6026D01* +G01X14825Y6040D01* +G01X14805Y6051D01* +G01X14783Y6061D01* +G01X14760Y6068D01* +G01X14738Y6074D01* +G01X14714Y6077D01* +G01X14690Y6078D01* +G01X14591Y6078D01* +G01X14573Y6080D01* +G01X14556Y6084D01* +G01X14540Y6091D01* +G01X14526Y6102D01* +G01X14494Y6127D01* +G01X14461Y6150D01* +G01X14426Y6172D01* +G01X14391Y6192D01* +G01X14355Y6209D01* +G01X14317Y6226D01* +G01X14279Y6239D01* +G01X14240Y6251D01* +G01X14201Y6261D01* +G01X14162Y6268D01* +G01X14121Y6274D01* +G01X14081Y6277D01* +G01X14040Y6278D01* +G37* +G36* +G01X4112Y11798D02* +G01X4065Y11799D01* +G01X4016Y11798D01* +G01X3969Y11795D01* +G01X3921Y11790D01* +G01X3873Y11783D01* +G01X3826Y11774D01* +G01X3779Y11763D01* +G01X3733Y11750D01* +G01X3687Y11734D01* +G01X3642Y11718D01* +G01X3598Y11699D01* +G01X3555Y11678D01* +G01X3512Y11656D01* +G01X3471Y11631D01* +G01X3431Y11605D01* +G01X3391Y11577D01* +G01X3353Y11548D01* +G01X3317Y11517D01* +G01X3281Y11484D01* +G01X3247Y11450D01* +G01X3215Y11415D01* +G01X3184Y11378D01* +G01X3155Y11341D01* +G01X3127Y11301D01* +G01X3101Y11261D01* +G01X3076Y11219D01* +G01X3054Y11177D01* +G01X3033Y11134D01* +G01X3014Y11090D01* +G01X2997Y11044D01* +G01X2982Y10999D01* +G01X2969Y10952D01* +G01X2958Y10906D01* +G01X2949Y10859D01* +G01X2942Y10811D01* +G01X2937Y10764D01* +G01X2934Y10716D01* +G01X2933Y10668D01* +G01X2934Y10619D01* +G01X2937Y10571D01* +G01X2942Y10524D01* +G01X2949Y10476D01* +G01X2958Y10429D01* +G01X2969Y10383D01* +G01X2982Y10336D01* +G01X2997Y10291D01* +G01X3014Y10245D01* +G01X3033Y10201D01* +G01X3054Y10158D01* +G01X3076Y10116D01* +G01X3101Y10074D01* +G01X3127Y10034D01* +G01X3155Y9994D01* +G01X3184Y9957D01* +G01X3215Y9920D01* +G01X3247Y9885D01* +G01X3281Y9851D01* +G01X3317Y9818D01* +G01X3353Y9787D01* +G01X3391Y9758D01* +G01X3431Y9730D01* +G01X3471Y9704D01* +G01X3512Y9679D01* +G01X3555Y9657D01* +G01X3598Y9636D01* +G01X3642Y9617D01* +G01X3687Y9601D01* +G01X3733Y9585D01* +G01X3779Y9572D01* +G01X3826Y9561D01* +G01X3873Y9552D01* +G01X3921Y9545D01* +G01X3969Y9540D01* +G01X4016Y9537D01* +G01X4065Y9536D01* +G01X4084Y9536D01* +G01X4100Y9535D01* +G01X4115Y9531D01* +G01X4130Y9525D01* +G01X4143Y9517D01* +G01X4155Y9506D01* +G01X4233Y9428D01* +G01X4243Y9417D01* +G01X4252Y9403D01* +G01X4258Y9388D01* +G01X4262Y9373D01* +G01X4263Y9357D01* +G01X4262Y9343D01* +G01X4259Y9328D01* +G01X4247Y9302D01* +G01X4238Y9290D01* +G01X4228Y9280D01* +G01X4204Y9264D01* +G01X4190Y9259D01* +G01X4176Y9256D01* +G01X4162Y9255D01* +G01X4153Y9256D01* +G01X4065Y9259D01* +G01X4016Y9258D01* +G01X3969Y9255D01* +G01X3921Y9250D01* +G01X3873Y9243D01* +G01X3826Y9234D01* +G01X3779Y9223D01* +G01X3733Y9210D01* +G01X3687Y9194D01* +G01X3642Y9178D01* +G01X3598Y9159D01* +G01X3555Y9138D01* +G01X3512Y9116D01* +G01X3471Y9091D01* +G01X3431Y9065D01* +G01X3391Y9037D01* +G01X3353Y9008D01* +G01X3317Y8977D01* +G01X3281Y8944D01* +G01X3247Y8910D01* +G01X3215Y8875D01* +G01X3184Y8838D01* +G01X3155Y8801D01* +G01X3127Y8761D01* +G01X3101Y8721D01* +G01X3076Y8679D01* +G01X3054Y8637D01* +G01X3033Y8594D01* +G01X3014Y8550D01* +G01X2997Y8504D01* +G01X2982Y8459D01* +G01X2969Y8412D01* +G01X2958Y8366D01* +G01X2949Y8319D01* +G01X2942Y8271D01* +G01X2937Y8224D01* +G01X2934Y8176D01* +G01X2933Y8128D01* +G01X2934Y8079D01* +G01X2937Y8031D01* +G01X2942Y7984D01* +G01X2949Y7936D01* +G01X2958Y7889D01* +G01X2969Y7843D01* +G01X2982Y7796D01* +G01X2997Y7751D01* +G01X3014Y7705D01* +G01X3033Y7661D01* +G01X3054Y7618D01* +G01X3076Y7576D01* +G01X3101Y7534D01* +G01X3127Y7494D01* +G01X3155Y7454D01* +G01X3184Y7417D01* +G01X3215Y7380D01* +G01X3247Y7345D01* +G01X3281Y7311D01* +G01X3317Y7278D01* +G01X3353Y7247D01* +G01X3391Y7218D01* +G01X3431Y7190D01* +G01X3471Y7164D01* +G01X3512Y7139D01* +G01X3555Y7117D01* +G01X3598Y7096D01* +G01X3642Y7077D01* +G01X3687Y7061D01* +G01X3733Y7045D01* +G01X3779Y7032D01* +G01X3826Y7021D01* +G01X3873Y7012D01* +G01X3921Y7005D01* +G01X3969Y7000D01* +G01X4016Y6997D01* +G01X4065Y6996D01* +G01X4115Y6997D01* +G01X4165Y7000D01* +G01X4215Y7006D01* +G01X4265Y7014D01* +G01X4314Y7024D01* +G01X4363Y7036D01* +G01X4411Y7051D01* +G01X4459Y7067D01* +G01X4505Y7086D01* +G01X4552Y7106D01* +G01X4596Y7129D01* +G01X4640Y7154D01* +G01X4683Y7180D01* +G01X4724Y7209D01* +G01X4765Y7239D01* +G01X4804Y7271D01* +G01X4841Y7305D01* +G01X4877Y7340D01* +G01X4889Y7351D01* +G01X4903Y7359D01* +G01X4918Y7366D01* +G01X4934Y7370D01* +G01X4950Y7371D01* +G01X4995Y7371D01* +G01X5011Y7370D01* +G01X5026Y7366D01* +G01X5041Y7360D01* +G01X5055Y7352D01* +G01X5067Y7341D01* +G01X7738Y4670D01* +G01X7749Y4657D01* +G01X7757Y4644D01* +G01X7763Y4629D01* +G01X7767Y4614D01* +G01X7768Y4598D01* +G01X7768Y4177D01* +G01X7769Y4154D01* +G01X7772Y4131D01* +G01X7778Y4107D01* +G01X7785Y4085D01* +G01X7795Y4063D01* +G01X7806Y4043D01* +G01X7820Y4023D01* +G01X7835Y4005D01* +G01X7852Y3988D01* +G01X7870Y3973D01* +G01X7889Y3959D01* +G01X7910Y3948D01* +G01X7932Y3939D01* +G01X7954Y3931D01* +G01X7977Y3925D01* +G01X8001Y3922D01* +G01X8024Y3921D01* +G01X9025Y3921D01* +G01X9048Y3922D01* +G01X9072Y3925D01* +G01X9095Y3931D01* +G01X9117Y3939D01* +G01X9139Y3948D01* +G01X9160Y3959D01* +G01X9179Y3973D01* +G01X9197Y3988D01* +G01X9214Y4005D01* +G01X9229Y4023D01* +G01X9243Y4043D01* +G01X9254Y4063D01* +G01X9264Y4085D01* +G01X9271Y4107D01* +G01X9277Y4131D01* +G01X9280Y4154D01* +G01X9281Y4177D01* +G01X9281Y4920D01* +G01X9282Y4953D01* +G01X9281Y4985D01* +G01X9281Y5728D01* +G01X9280Y5751D01* +G01X9277Y5774D01* +G01X9271Y5798D01* +G01X9264Y5820D01* +G01X9254Y5842D01* +G01X9243Y5862D01* +G01X9229Y5882D01* +G01X9214Y5900D01* +G01X9197Y5917D01* +G01X9179Y5932D01* +G01X9160Y5946D01* +G01X9139Y5957D01* +G01X9117Y5966D01* +G01X9095Y5974D01* +G01X9072Y5980D01* +G01X9048Y5983D01* +G01X9025Y5984D01* +G01X8606Y5984D01* +G01X8590Y5985D01* +G01X8575Y5989D01* +G01X8560Y5995D01* +G01X8546Y6004D01* +G01X8534Y6014D01* +G01X5885Y8662D01* +G01X5857Y8690D01* +G01X5795Y8740D01* +G01X5762Y8762D01* +G01X5729Y8783D01* +G01X5694Y8802D01* +G01X5622Y8834D01* +G01X5584Y8847D01* +G01X5546Y8859D01* +G01X5508Y8868D01* +G01X5469Y8875D01* +G01X5430Y8880D01* +G01X5390Y8883D01* +G01X5350Y8884D01* +G01X4950Y8884D01* +G01X4934Y8885D01* +G01X4918Y8889D01* +G01X4903Y8896D01* +G01X4889Y8904D01* +G01X4877Y8915D01* +G01X4818Y8972D01* +G01X4806Y8984D01* +G01X4797Y8998D01* +G01X4790Y9014D01* +G01X4785Y9030D01* +G01X4784Y9047D01* +G01X4785Y9062D01* +G01X4788Y9076D01* +G01X4793Y9090D01* +G01X4800Y9102D01* +G01X4809Y9114D01* +G01X4819Y9124D01* +G01X4831Y9133D01* +G01X4843Y9140D01* +G01X4857Y9145D01* +G01X4871Y9148D01* +G01X4885Y9149D01* +G01X7550Y9149D01* +G01X7565Y9148D01* +G01X7580Y9145D01* +G01X7594Y9139D01* +G01X7607Y9131D01* +G01X7618Y9122D01* +G01X7629Y9111D01* +G01X7637Y9099D01* +G01X7644Y9085D01* +G01X7649Y9071D01* +G01X7655Y9049D01* +G01X7663Y9028D01* +G01X7673Y9007D01* +G01X7685Y8988D01* +G01X7699Y8969D01* +G01X7714Y8952D01* +G01X7730Y8936D01* +G01X7749Y8922D01* +G01X7767Y8910D01* +G01X7788Y8899D01* +G01X7809Y8890D01* +G01X7830Y8883D01* +G01X7853Y8878D01* +G01X7876Y8875D01* +G01X7898Y8874D01* +G01X8898Y8874D01* +G01X8922Y8875D01* +G01X8945Y8878D01* +G01X8968Y8884D01* +G01X8991Y8892D01* +G01X9012Y8901D01* +G01X9033Y8912D01* +G01X9053Y8926D01* +G01X9071Y8941D01* +G01X9088Y8958D01* +G01X9103Y8976D01* +G01X9117Y8996D01* +G01X9128Y9016D01* +G01X9137Y9038D01* +G01X9145Y9060D01* +G01X9151Y9084D01* +G01X9154Y9107D01* +G01X9155Y9130D01* +G01X9155Y10681D01* +G01X9154Y10704D01* +G01X9151Y10727D01* +G01X9145Y10751D01* +G01X9137Y10773D01* +G01X9128Y10795D01* +G01X9117Y10815D01* +G01X9103Y10835D01* +G01X9088Y10853D01* +G01X9071Y10870D01* +G01X9053Y10885D01* +G01X9033Y10899D01* +G01X9012Y10910D01* +G01X8991Y10919D01* +G01X8968Y10927D01* +G01X8945Y10933D01* +G01X8922Y10936D01* +G01X8898Y10937D01* +G01X7898Y10937D01* +G01X7876Y10936D01* +G01X7853Y10933D01* +G01X7830Y10928D01* +G01X7809Y10921D01* +G01X7788Y10912D01* +G01X7767Y10901D01* +G01X7749Y10889D01* +G01X7730Y10875D01* +G01X7714Y10859D01* +G01X7699Y10842D01* +G01X7685Y10823D01* +G01X7673Y10804D01* +G01X7663Y10783D01* +G01X7655Y10762D01* +G01X7649Y10740D01* +G01X7644Y10726D01* +G01X7637Y10712D01* +G01X7629Y10700D01* +G01X7618Y10689D01* +G01X7607Y10680D01* +G01X7594Y10672D01* +G01X7580Y10666D01* +G01X7565Y10663D01* +G01X7550Y10662D01* +G01X5294Y10662D01* +G01X5279Y10663D01* +G01X5264Y10666D01* +G01X5250Y10672D01* +G01X5236Y10680D01* +G01X5225Y10689D01* +G01X5214Y10700D01* +G01X5206Y10713D01* +G01X5199Y10726D01* +G01X5195Y10741D01* +G01X5192Y10756D01* +G01X5188Y10804D01* +G01X5181Y10851D01* +G01X5172Y10899D01* +G01X5161Y10946D01* +G01X5148Y10993D01* +G01X5133Y11038D01* +G01X5117Y11084D01* +G01X5098Y11128D01* +G01X5077Y11172D01* +G01X5055Y11215D01* +G01X5031Y11256D01* +G01X5005Y11297D01* +G01X4977Y11337D01* +G01X4947Y11375D01* +G01X4916Y11412D01* +G01X4884Y11447D01* +G01X4850Y11482D01* +G01X4815Y11514D01* +G01X4778Y11546D01* +G01X4740Y11575D01* +G01X4701Y11603D01* +G01X4660Y11630D01* +G01X4618Y11654D01* +G01X4576Y11677D01* +G01X4532Y11698D01* +G01X4488Y11717D01* +G01X4443Y11734D01* +G01X4397Y11749D01* +G01X4351Y11762D01* +G01X4304Y11773D01* +G01X4257Y11783D01* +G01X4209Y11790D01* +G01X4161Y11795D01* +G01X4112Y11798D01* +G37* +G36* +G01X5195Y5085D02* +G01X4564Y5085D01* +G01X4564Y4455D01* +G01X4938Y4455D01* +G01X4962Y4456D01* +G01X4985Y4459D01* +G01X5008Y4464D01* +G01X5031Y4472D01* +G01X5053Y4482D01* +G01X5073Y4493D01* +G01X5093Y4506D01* +G01X5111Y4522D01* +G01X5128Y4538D01* +G01X5156Y4576D01* +G01X5168Y4597D01* +G01X5177Y4619D01* +G01X5185Y4641D01* +G01X5190Y4664D01* +G01X5193Y4687D01* +G01X5195Y4711D01* +G01X5195Y5085D01* +G37* +G36* +G01X3562Y5085D02* +G01X2932Y5085D01* +G01X2932Y4711D01* +G01X2931Y4711D01* +G01X2933Y4687D01* +G01X2936Y4664D01* +G01X2941Y4641D01* +G01X2949Y4619D01* +G01X2958Y4597D01* +G01X2970Y4576D01* +G01X2983Y4557D01* +G01X2998Y4538D01* +G01X3015Y4522D01* +G01X3033Y4506D01* +G01X3053Y4493D01* +G01X3073Y4482D01* +G01X3095Y4472D01* +G01X3118Y4464D01* +G01X3141Y4459D01* +G01X3164Y4456D01* +G01X3188Y4455D01* +G01X3562Y4455D01* +G01X3562Y5085D01* +G37* +G36* +G01X4938Y6718D02* +G01X4564Y6718D01* +G01X4564Y6087D01* +G01X5195Y6087D01* +G01X5195Y6461D01* +G01X5193Y6485D01* +G01X5190Y6509D01* +G01X5185Y6531D01* +G01X5177Y6554D01* +G01X5168Y6576D01* +G01X5156Y6596D01* +G01X5142Y6616D01* +G01X5128Y6634D01* +G01X5111Y6651D01* +G01X5093Y6666D01* +G01X5073Y6679D01* +G01X5053Y6691D01* +G01X5031Y6701D01* +G01X5008Y6708D01* +G01X4985Y6713D01* +G01X4962Y6717D01* +G01X4938Y6718D01* +G37* +G36* +G01X3562Y6718D02* +G01X3188Y6718D01* +G01X3164Y6717D01* +G01X3141Y6713D01* +G01X3118Y6708D01* +G01X3095Y6701D01* +G01X3073Y6691D01* +G01X3053Y6679D01* +G01X3033Y6666D01* +G01X3015Y6651D01* +G01X2998Y6634D01* +G01X2983Y6616D01* +G01X2970Y6596D01* +G01X2958Y6576D01* +G01X2949Y6554D01* +G01X2941Y6531D01* +G01X2936Y6509D01* +G01X2933Y6485D01* +G01X2931Y6461D01* +G01X2932Y6461D01* +G01X2932Y6087D01* +G01X3562Y6087D01* +G01X3562Y6718D01* +G37* +G36* +G01X13906Y8234D02* +G01X13388Y8234D01* +G01X13388Y8147D01* +G01X13389Y8124D01* +G01X13392Y8101D01* +G01X13397Y8077D01* +G01X13405Y8055D01* +G01X13415Y8033D01* +G01X13426Y8013D01* +G01X13440Y7993D01* +G01X13455Y7975D01* +G01X13472Y7958D01* +G01X13489Y7943D01* +G01X13509Y7929D01* +G01X13530Y7918D01* +G01X13551Y7908D01* +G01X13574Y7901D01* +G01X13597Y7895D01* +G01X13621Y7892D01* +G01X13644Y7891D01* +G01X13906Y7891D01* +G01X13906Y8234D01* +G37* +G36* +G01X15201Y8234D02* +G01X14683Y8234D01* +G01X14683Y7891D01* +G01X14944Y7891D01* +G01X14968Y7892D01* +G01X14992Y7895D01* +G01X15014Y7901D01* +G01X15037Y7908D01* +G01X15059Y7918D01* +G01X15079Y7929D01* +G01X15099Y7943D01* +G01X15117Y7958D01* +G01X15134Y7975D01* +G01X15149Y7993D01* +G01X15162Y8013D01* +G01X15174Y8033D01* +G01X15184Y8055D01* +G01X15191Y8077D01* +G01X15196Y8101D01* +G01X15200Y8124D01* +G01X15201Y8147D01* +G01X15201Y8234D01* +G37* +G36* +G01X23419Y10912D02* +G01X23368Y10913D01* +G01X23316Y10912D01* +G01X23265Y10909D01* +G01X23213Y10904D01* +G01X23162Y10896D01* +G01X23111Y10886D01* +G01X23060Y10875D01* +G01X23010Y10861D01* +G01X22961Y10845D01* +G01X22912Y10828D01* +G01X22865Y10808D01* +G01X22817Y10786D01* +G01X22771Y10762D01* +G01X22726Y10737D01* +G01X22682Y10709D01* +G01X22640Y10680D01* +G01X22598Y10649D01* +G01X22557Y10617D01* +G01X22481Y10547D01* +G01X22445Y10509D01* +G01X22411Y10470D01* +G01X22378Y10430D01* +G01X22347Y10389D01* +G01X22317Y10346D01* +G01X22290Y10302D01* +G01X22264Y10257D01* +G01X22241Y10211D01* +G01X22232Y10197D01* +G01X22222Y10184D01* +G01X22210Y10174D01* +G01X22196Y10166D01* +G01X22181Y10159D01* +G01X22166Y10155D01* +G01X22149Y10154D01* +G01X16694Y10154D01* +G01X16654Y10153D01* +G01X16613Y10150D01* +G01X16573Y10144D01* +G01X16533Y10137D01* +G01X16494Y10127D01* +G01X16455Y10115D01* +G01X16417Y10102D01* +G01X16343Y10068D01* +G01X16308Y10048D01* +G01X16274Y10026D01* +G01X16241Y10003D01* +G01X16209Y9978D01* +G01X16195Y9967D01* +G01X16178Y9960D01* +G01X16162Y9956D01* +G01X16144Y9954D01* +G01X16044Y9954D01* +G01X16021Y9953D01* +G01X15997Y9950D01* +G01X15974Y9944D01* +G01X15952Y9936D01* +G01X15930Y9927D01* +G01X15909Y9916D01* +G01X15890Y9902D01* +G01X15871Y9887D01* +G01X15855Y9870D01* +G01X15839Y9852D01* +G01X15826Y9832D01* +G01X15815Y9812D01* +G01X15805Y9790D01* +G01X15797Y9768D01* +G01X15792Y9744D01* +G01X15789Y9721D01* +G01X15788Y9698D01* +G01X15788Y9097D01* +G01X15789Y9074D01* +G01X15792Y9051D01* +G01X15797Y9027D01* +G01X15805Y9005D01* +G01X15815Y8983D01* +G01X15826Y8963D01* +G01X15839Y8943D01* +G01X15855Y8925D01* +G01X15871Y8908D01* +G01X15890Y8893D01* +G01X15909Y8879D01* +G01X15930Y8868D01* +G01X15952Y8859D01* +G01X15974Y8851D01* +G01X15997Y8845D01* +G01X16021Y8842D01* +G01X16044Y8841D01* +G01X16144Y8841D01* +G01X16161Y8839D01* +G01X16178Y8835D01* +G01X16194Y8828D01* +G01X16209Y8817D01* +G01X16241Y8792D01* +G01X16274Y8769D01* +G01X16308Y8747D01* +G01X16343Y8727D01* +G01X16380Y8709D01* +G01X16417Y8693D01* +G01X16455Y8680D01* +G01X16494Y8668D01* +G01X16533Y8658D01* +G01X16573Y8651D01* +G01X16613Y8645D01* +G01X16654Y8642D01* +G01X16694Y8641D01* +G01X22596Y8641D01* +G01X22612Y8640D01* +G01X22626Y8637D01* +G01X22641Y8630D01* +G01X22654Y8623D01* +G01X22696Y8595D01* +G01X22740Y8569D01* +G01X22784Y8544D01* +G01X22829Y8522D01* +G01X22875Y8501D01* +G01X22922Y8482D01* +G01X22970Y8465D01* +G01X23019Y8450D01* +G01X23067Y8437D01* +G01X23117Y8426D01* +G01X23166Y8417D01* +G01X23217Y8409D01* +G01X23267Y8404D01* +G01X23318Y8401D01* +G01X23369Y8400D01* +G01X23419Y8401D01* +G01X23470Y8404D01* +G01X23520Y8409D01* +G01X23570Y8417D01* +G01X23619Y8425D01* +G01X23669Y8436D01* +G01X23718Y8450D01* +G01X23766Y8465D01* +G01X23814Y8482D01* +G01X23861Y8500D01* +G01X23907Y8521D01* +G01X23952Y8544D01* +G01X23996Y8568D01* +G01X24040Y8594D01* +G01X24082Y8622D01* +G01X24123Y8652D01* +G01X24163Y8683D01* +G01X24202Y8716D01* +G01X24239Y8750D01* +G01X24274Y8786D01* +G01X24309Y8823D01* +G01X24341Y8862D01* +G01X24373Y8902D01* +G01X24402Y8943D01* +G01X24430Y8985D01* +G01X24457Y9028D01* +G01X24481Y9073D01* +G01X24503Y9118D01* +G01X24524Y9164D01* +G01X24543Y9211D01* +G01X24560Y9259D01* +G01X24575Y9307D01* +G01X24588Y9356D01* +G01X24599Y9405D01* +G01X24609Y9455D01* +G01X24616Y9505D01* +G01X24621Y9555D01* +G01X24624Y9606D01* +G01X24625Y9657D01* +G01X24624Y9707D01* +G01X24621Y9758D01* +G01X24616Y9808D01* +G01X24609Y9858D01* +G01X24599Y9908D01* +G01X24588Y9957D01* +G01X24575Y10006D01* +G01X24560Y10054D01* +G01X24543Y10102D01* +G01X24524Y10149D01* +G01X24503Y10195D01* +G01X24481Y10240D01* +G01X24457Y10285D01* +G01X24430Y10328D01* +G01X24402Y10370D01* +G01X24373Y10411D01* +G01X24341Y10451D01* +G01X24309Y10490D01* +G01X24274Y10527D01* +G01X24239Y10563D01* +G01X24202Y10597D01* +G01X24163Y10630D01* +G01X24123Y10661D01* +G01X24082Y10691D01* +G01X24040Y10719D01* +G01X23996Y10745D01* +G01X23952Y10769D01* +G01X23907Y10792D01* +G01X23861Y10813D01* +G01X23814Y10832D01* +G01X23718Y10864D01* +G01X23669Y10877D01* +G01X23619Y10888D01* +G01X23570Y10897D01* +G01X23520Y10904D01* +G01X23470Y10909D01* +G01X23419Y10912D01* +G37* +G36* +G01X14944Y9004D02* +G01X14683Y9004D01* +G01X14683Y8661D01* +G01X15201Y8661D01* +G01X15201Y8747D01* +G01X15200Y8771D01* +G01X15196Y8795D01* +G01X15191Y8818D01* +G01X15184Y8840D01* +G01X15174Y8862D01* +G01X15162Y8882D01* +G01X15149Y8902D01* +G01X15134Y8920D01* +G01X15117Y8937D01* +G01X15099Y8952D01* +G01X15079Y8966D01* +G01X15059Y8977D01* +G01X15037Y8987D01* +G01X15014Y8994D01* +G01X14992Y9000D01* +G01X14968Y9003D01* +G01X14944Y9004D01* +G37* +G36* +G01X13906Y9004D02* +G01X13644Y9004D01* +G01X13621Y9003D01* +G01X13597Y9000D01* +G01X13574Y8994D01* +G01X13551Y8987D01* +G01X13530Y8977D01* +G01X13509Y8966D01* +G01X13489Y8952D01* +G01X13472Y8937D01* +G01X13455Y8920D01* +G01X13440Y8902D01* +G01X13426Y8882D01* +G01X13415Y8862D01* +G01X13405Y8840D01* +G01X13397Y8818D01* +G01X13392Y8795D01* +G01X13389Y8771D01* +G01X13388Y8747D01* +G01X13388Y8661D01* +G01X13906Y8661D01* +G01X13906Y9004D01* +G37* +G36* +G01X14294Y11104D02* +G01X10840Y11104D01* +G01X10800Y11103D01* +G01X10760Y11100D01* +G01X10721Y11094D01* +G01X10681Y11087D01* +G01X10643Y11077D01* +G01X10605Y11066D01* +G01X10566Y11053D01* +G01X10530Y11037D01* +G01X10494Y11020D01* +G01X10459Y11001D01* +G01X10425Y10979D01* +G01X10392Y10957D01* +G01X10378Y10948D01* +G01X10363Y10942D01* +G01X10348Y10938D01* +G01X10332Y10937D01* +G01X9898Y10937D01* +G01X9875Y10936D01* +G01X9851Y10933D01* +G01X9828Y10927D01* +G01X9805Y10919D01* +G01X9784Y10910D01* +G01X9763Y10899D01* +G01X9743Y10885D01* +G01X9726Y10870D01* +G01X9709Y10853D01* +G01X9694Y10835D01* +G01X9680Y10815D01* +G01X9669Y10795D01* +G01X9659Y10773D01* +G01X9652Y10751D01* +G01X9646Y10727D01* +G01X9643Y10704D01* +G01X9642Y10681D01* +G01X9642Y9130D01* +G01X9643Y9107D01* +G01X9646Y9084D01* +G01X9652Y9060D01* +G01X9659Y9038D01* +G01X9669Y9016D01* +G01X9680Y8996D01* +G01X9694Y8976D01* +G01X9709Y8958D01* +G01X9726Y8941D01* +G01X9743Y8926D01* +G01X9763Y8912D01* +G01X9784Y8901D01* +G01X9805Y8892D01* +G01X9828Y8884D01* +G01X9851Y8878D01* +G01X9875Y8875D01* +G01X9898Y8874D01* +G01X10898Y8874D01* +G01X10922Y8875D01* +G01X10945Y8878D01* +G01X10968Y8884D01* +G01X10991Y8892D01* +G01X11012Y8901D01* +G01X11033Y8912D01* +G01X11053Y8926D01* +G01X11071Y8941D01* +G01X11088Y8958D01* +G01X11103Y8976D01* +G01X11117Y8996D01* +G01X11128Y9016D01* +G01X11137Y9038D01* +G01X11145Y9060D01* +G01X11151Y9084D01* +G01X11154Y9107D01* +G01X11155Y9130D01* +G01X11155Y9489D01* +G01X11156Y9504D01* +G01X11159Y9518D01* +G01X11164Y9532D01* +G01X11171Y9544D01* +G01X11180Y9556D01* +G01X11190Y9566D01* +G01X11201Y9575D01* +G01X11214Y9582D01* +G01X11242Y9590D01* +G01X11256Y9591D01* +G01X14294Y9591D01* +G01X14335Y9592D01* +G01X14375Y9595D01* +G01X14416Y9601D01* +G01X14455Y9608D01* +G01X14495Y9618D01* +G01X14533Y9630D01* +G01X14571Y9643D01* +G01X14609Y9659D01* +G01X14645Y9677D01* +G01X14681Y9697D01* +G01X14715Y9719D01* +G01X14748Y9742D01* +G01X14780Y9767D01* +G01X14794Y9777D01* +G01X14810Y9785D01* +G01X14828Y9789D01* +G01X14845Y9791D01* +G01X14944Y9791D01* +G01X14968Y9792D01* +G01X14992Y9795D01* +G01X15014Y9801D01* +G01X15037Y9808D01* +G01X15059Y9818D01* +G01X15079Y9829D01* +G01X15099Y9843D01* +G01X15117Y9858D01* +G01X15134Y9875D01* +G01X15149Y9893D01* +G01X15162Y9913D01* +G01X15174Y9933D01* +G01X15184Y9955D01* +G01X15191Y9977D01* +G01X15196Y10000D01* +G01X15200Y10024D01* +G01X15201Y10048D01* +G01X15201Y10648D01* +G01X15200Y10671D01* +G01X15196Y10694D01* +G01X15191Y10718D01* +G01X15184Y10740D01* +G01X15174Y10762D01* +G01X15162Y10782D01* +G01X15149Y10802D01* +G01X15134Y10820D01* +G01X15117Y10837D01* +G01X15099Y10852D01* +G01X15079Y10866D01* +G01X15059Y10877D01* +G01X15037Y10887D01* +G01X15014Y10894D01* +G01X14992Y10900D01* +G01X14968Y10903D01* +G01X14944Y10904D01* +G01X14845Y10904D01* +G01X14827Y10906D01* +G01X14810Y10910D01* +G01X14794Y10917D01* +G01X14780Y10928D01* +G01X14748Y10953D01* +G01X14715Y10976D01* +G01X14680Y10998D01* +G01X14645Y11018D01* +G01X14609Y11035D01* +G01X14571Y11052D01* +G01X14533Y11065D01* +G01X14494Y11077D01* +G01X14455Y11087D01* +G01X14416Y11094D01* +G01X14375Y11100D01* +G01X14335Y11103D01* +G01X14294Y11104D01* +G37* +G36* +G01X8771Y15128D02* +G01X7770Y15128D01* +G01X7748Y15127D01* +G01X7725Y15124D01* +G01X7703Y15119D01* +G01X7681Y15112D01* +G01X7660Y15103D01* +G01X7640Y15092D01* +G01X7621Y15080D01* +G01X7603Y15066D01* +G01X7586Y15050D01* +G01X7571Y15033D01* +G01X7545Y14995D01* +G01X7527Y14953D01* +G01X7521Y14931D01* +G01X7516Y14917D01* +G01X7510Y14903D01* +G01X7501Y14891D01* +G01X7491Y14880D01* +G01X7479Y14871D01* +G01X7466Y14863D01* +G01X7452Y14857D01* +G01X7437Y14854D01* +G01X7422Y14853D01* +G01X4954Y14853D01* +G01X4914Y14852D01* +G01X4874Y14849D01* +G01X4835Y14844D01* +G01X4796Y14837D01* +G01X4757Y14828D01* +G01X4719Y14816D01* +G01X4682Y14803D01* +G01X4610Y14771D01* +G01X4575Y14752D01* +G01X4541Y14731D01* +G01X4509Y14709D01* +G01X4477Y14684D01* +G01X4447Y14659D01* +G01X4418Y14631D01* +G01X4155Y14369D01* +G01X4143Y14358D01* +G01X4130Y14350D01* +G01X4115Y14344D01* +G01X4100Y14340D01* +G01X4084Y14339D01* +G01X4065Y14339D01* +G01X4016Y14338D01* +G01X3969Y14335D01* +G01X3921Y14330D01* +G01X3873Y14323D01* +G01X3826Y14314D01* +G01X3779Y14303D01* +G01X3733Y14290D01* +G01X3687Y14274D01* +G01X3642Y14258D01* +G01X3598Y14239D01* +G01X3555Y14218D01* +G01X3512Y14196D01* +G01X3471Y14171D01* +G01X3431Y14145D01* +G01X3391Y14117D01* +G01X3353Y14088D01* +G01X3317Y14057D01* +G01X3281Y14024D01* +G01X3247Y13990D01* +G01X3215Y13955D01* +G01X3184Y13918D01* +G01X3155Y13881D01* +G01X3127Y13841D01* +G01X3101Y13801D01* +G01X3076Y13759D01* +G01X3054Y13717D01* +G01X3033Y13674D01* +G01X3014Y13630D01* +G01X2997Y13584D01* +G01X2982Y13539D01* +G01X2969Y13492D01* +G01X2958Y13446D01* +G01X2949Y13399D01* +G01X2942Y13351D01* +G01X2937Y13304D01* +G01X2934Y13256D01* +G01X2933Y13208D01* +G01X2934Y13159D01* +G01X2937Y13111D01* +G01X2942Y13064D01* +G01X2949Y13016D01* +G01X2958Y12969D01* +G01X2969Y12923D01* +G01X2982Y12876D01* +G01X2997Y12831D01* +G01X3014Y12785D01* +G01X3033Y12741D01* +G01X3054Y12698D01* +G01X3076Y12656D01* +G01X3101Y12614D01* +G01X3127Y12574D01* +G01X3155Y12534D01* +G01X3184Y12497D01* +G01X3215Y12460D01* +G01X3247Y12425D01* +G01X3281Y12391D01* +G01X3317Y12358D01* +G01X3353Y12327D01* +G01X3391Y12298D01* +G01X3431Y12270D01* +G01X3471Y12244D01* +G01X3512Y12219D01* +G01X3555Y12197D01* +G01X3598Y12176D01* +G01X3642Y12157D01* +G01X3687Y12141D01* +G01X3733Y12125D01* +G01X3779Y12112D01* +G01X3826Y12101D01* +G01X3873Y12092D01* +G01X3921Y12085D01* +G01X3969Y12080D01* +G01X4016Y12077D01* +G01X4065Y12076D01* +G01X4112Y12077D01* +G01X4160Y12080D01* +G01X4208Y12085D01* +G01X4256Y12092D01* +G01X4303Y12101D01* +G01X4350Y12112D01* +G01X4396Y12125D01* +G01X4486Y12157D01* +G01X4530Y12176D01* +G01X4574Y12197D01* +G01X4616Y12219D01* +G01X4657Y12244D01* +G01X4698Y12270D01* +G01X4737Y12298D01* +G01X4775Y12327D01* +G01X4812Y12358D01* +G01X4847Y12391D01* +G01X4881Y12425D01* +G01X4914Y12460D01* +G01X4945Y12497D01* +G01X4974Y12534D01* +G01X5002Y12574D01* +G01X5028Y12614D01* +G01X5052Y12656D01* +G01X5074Y12698D01* +G01X5095Y12741D01* +G01X5114Y12785D01* +G01X5131Y12831D01* +G01X5146Y12876D01* +G01X5159Y12923D01* +G01X5170Y12969D01* +G01X5180Y13016D01* +G01X5187Y13064D01* +G01X5192Y13111D01* +G01X5195Y13159D01* +G01X5196Y13208D01* +G01X5196Y13227D01* +G01X5197Y13243D01* +G01X5200Y13258D01* +G01X5207Y13273D01* +G01X5215Y13287D01* +G01X5225Y13299D01* +G01X5249Y13321D01* +G01X5262Y13329D01* +G01X5277Y13335D01* +G01X5293Y13339D01* +G01X5309Y13340D01* +G01X7422Y13340D01* +G01X7437Y13339D01* +G01X7452Y13336D01* +G01X7466Y13330D01* +G01X7479Y13322D01* +G01X7491Y13313D01* +G01X7501Y13302D01* +G01X7510Y13290D01* +G01X7516Y13276D01* +G01X7521Y13262D01* +G01X7527Y13240D01* +G01X7545Y13198D01* +G01X7571Y13160D01* +G01X7586Y13143D01* +G01X7603Y13127D01* +G01X7621Y13113D01* +G01X7640Y13101D01* +G01X7660Y13090D01* +G01X7681Y13081D01* +G01X7703Y13074D01* +G01X7725Y13069D01* +G01X7748Y13066D01* +G01X7770Y13065D01* +G01X8771Y13065D01* +G01X8794Y13066D01* +G01X8818Y13069D01* +G01X8841Y13075D01* +G01X8863Y13083D01* +G01X8885Y13092D01* +G01X8906Y13103D01* +G01X8925Y13117D01* +G01X8943Y13132D01* +G01X8960Y13149D01* +G01X8975Y13167D01* +G01X8989Y13187D01* +G01X9000Y13207D01* +G01X9010Y13229D01* +G01X9017Y13251D01* +G01X9023Y13275D01* +G01X9026Y13298D01* +G01X9027Y13321D01* +G01X9027Y14064D01* +G01X9028Y14097D01* +G01X9027Y14129D01* +G01X9027Y14872D01* +G01X9026Y14895D01* +G01X9023Y14918D01* +G01X9017Y14942D01* +G01X9010Y14964D01* +G01X9000Y14986D01* +G01X8989Y15006D01* +G01X8975Y15026D01* +G01X8960Y15044D01* +G01X8943Y15061D01* +G01X8925Y15076D01* +G01X8906Y15090D01* +G01X8885Y15101D01* +G01X8863Y15110D01* +G01X8841Y15118D01* +G01X8818Y15124D01* +G01X8794Y15127D01* +G01X8771Y15128D01* +G37* +G36* +G01X14040Y16311D02* +G01X11729Y16311D01* +G01X11690Y16310D01* +G01X11650Y16307D01* +G01X11611Y16302D01* +G01X11572Y16295D01* +G01X11533Y16285D01* +G01X11496Y16274D01* +G01X11458Y16261D01* +G01X11421Y16245D01* +G01X11386Y16229D01* +G01X11351Y16210D01* +G01X11317Y16189D01* +G01X11285Y16167D01* +G01X11253Y16142D01* +G01X11223Y16117D01* +G01X11194Y16089D01* +G01X10263Y15158D01* +G01X10250Y15148D01* +G01X10237Y15139D01* +G01X10222Y15133D01* +G01X10207Y15129D01* +G01X10191Y15128D01* +G01X9770Y15128D01* +G01X9747Y15127D01* +G01X9723Y15124D01* +G01X9700Y15118D01* +G01X9678Y15110D01* +G01X9656Y15101D01* +G01X9635Y15090D01* +G01X9616Y15076D01* +G01X9598Y15061D01* +G01X9581Y15044D01* +G01X9566Y15026D01* +G01X9552Y15006D01* +G01X9541Y14986D01* +G01X9531Y14964D01* +G01X9524Y14942D01* +G01X9518Y14918D01* +G01X9515Y14895D01* +G01X9514Y14872D01* +G01X9514Y13321D01* +G01X9515Y13298D01* +G01X9518Y13275D01* +G01X9524Y13251D01* +G01X9531Y13229D01* +G01X9541Y13207D01* +G01X9552Y13187D01* +G01X9566Y13167D01* +G01X9581Y13149D01* +G01X9598Y13132D01* +G01X9616Y13117D01* +G01X9635Y13103D01* +G01X9656Y13092D01* +G01X9678Y13083D01* +G01X9700Y13075D01* +G01X9723Y13069D01* +G01X9747Y13066D01* +G01X9770Y13065D01* +G01X10771Y13065D01* +G01X10794Y13066D01* +G01X10818Y13069D01* +G01X10841Y13075D01* +G01X10863Y13083D01* +G01X10885Y13092D01* +G01X10906Y13103D01* +G01X10925Y13117D01* +G01X10943Y13132D01* +G01X10960Y13149D01* +G01X10975Y13167D01* +G01X10989Y13187D01* +G01X11000Y13207D01* +G01X11010Y13229D01* +G01X11017Y13251D01* +G01X11023Y13275D01* +G01X11026Y13298D01* +G01X11027Y13321D01* +G01X11027Y13740D01* +G01X11028Y13756D01* +G01X11032Y13772D01* +G01X11038Y13787D01* +G01X11046Y13800D01* +G01X11057Y13812D01* +G01X12013Y14768D01* +G01X12025Y14778D01* +G01X12039Y14787D01* +G01X12053Y14793D01* +G01X12069Y14797D01* +G01X12085Y14798D01* +G01X14040Y14798D01* +G01X14081Y14799D01* +G01X14121Y14802D01* +G01X14162Y14808D01* +G01X14201Y14815D01* +G01X14241Y14825D01* +G01X14279Y14837D01* +G01X14317Y14850D01* +G01X14355Y14866D01* +G01X14391Y14884D01* +G01X14427Y14904D01* +G01X14461Y14926D01* +G01X14494Y14949D01* +G01X14526Y14974D01* +G01X14540Y14984D01* +G01X14556Y14992D01* +G01X14574Y14996D01* +G01X14591Y14998D01* +G01X14690Y14998D01* +G01X14714Y14999D01* +G01X14738Y15002D01* +G01X14760Y15008D01* +G01X14783Y15015D01* +G01X14805Y15025D01* +G01X14825Y15036D01* +G01X14845Y15050D01* +G01X14863Y15065D01* +G01X14880Y15082D01* +G01X14895Y15100D01* +G01X14908Y15120D01* +G01X14920Y15140D01* +G01X14930Y15162D01* +G01X14937Y15184D01* +G01X14942Y15207D01* +G01X14946Y15231D01* +G01X14947Y15255D01* +G01X14947Y15855D01* +G01X14946Y15878D01* +G01X14942Y15901D01* +G01X14937Y15925D01* +G01X14930Y15947D01* +G01X14920Y15969D01* +G01X14908Y15989D01* +G01X14895Y16009D01* +G01X14880Y16027D01* +G01X14863Y16044D01* +G01X14845Y16059D01* +G01X14825Y16073D01* +G01X14805Y16084D01* +G01X14783Y16094D01* +G01X14760Y16101D01* +G01X14738Y16107D01* +G01X14714Y16110D01* +G01X14690Y16111D01* +G01X14591Y16111D01* +G01X14573Y16113D01* +G01X14556Y16117D01* +G01X14540Y16124D01* +G01X14526Y16135D01* +G01X14494Y16160D01* +G01X14461Y16183D01* +G01X14426Y16205D01* +G01X14391Y16225D01* +G01X14355Y16242D01* +G01X14317Y16259D01* +G01X14279Y16272D01* +G01X14240Y16284D01* +G01X14201Y16294D01* +G01X14162Y16301D01* +G01X14121Y16307D01* +G01X14081Y16310D01* +G01X14040Y16311D01* +G37* +G36* +G01X13652Y13441D02* +G01X13134Y13441D01* +G01X13134Y13354D01* +G01X13135Y13331D01* +G01X13138Y13308D01* +G01X13143Y13284D01* +G01X13151Y13262D01* +G01X13161Y13240D01* +G01X13172Y13220D01* +G01X13186Y13200D01* +G01X13201Y13182D01* +G01X13218Y13165D01* +G01X13235Y13150D01* +G01X13255Y13136D01* +G01X13276Y13125D01* +G01X13297Y13115D01* +G01X13320Y13108D01* +G01X13343Y13102D01* +G01X13367Y13099D01* +G01X13390Y13098D01* +G01X13652Y13098D01* +G01X13652Y13441D01* +G37* +G36* +G01X14947Y13441D02* +G01X14429Y13441D01* +G01X14429Y13098D01* +G01X14690Y13098D01* +G01X14714Y13099D01* +G01X14738Y13102D01* +G01X14760Y13108D01* +G01X14783Y13115D01* +G01X14805Y13125D01* +G01X14825Y13136D01* +G01X14845Y13150D01* +G01X14863Y13165D01* +G01X14880Y13182D01* +G01X14895Y13200D01* +G01X14908Y13220D01* +G01X14920Y13240D01* +G01X14930Y13262D01* +G01X14937Y13284D01* +G01X14942Y13308D01* +G01X14946Y13331D01* +G01X14947Y13354D01* +G01X14947Y13441D01* +G37* +G36* +G01X23419Y15912D02* +G01X23368Y15913D01* +G01X23317Y15912D01* +G01X23266Y15909D01* +G01X23215Y15904D01* +G01X23165Y15896D01* +G01X23115Y15887D01* +G01X23065Y15876D01* +G01X23015Y15862D01* +G01X22967Y15847D01* +G01X22918Y15830D01* +G01X22824Y15790D01* +G01X22779Y15766D01* +G01X22735Y15741D01* +G01X22691Y15715D01* +G01X22648Y15687D01* +G01X22607Y15657D01* +G01X22567Y15625D01* +G01X22528Y15591D01* +G01X22491Y15556D01* +G01X22455Y15520D01* +G01X22421Y15482D01* +G01X22388Y15443D01* +G01X22357Y15402D01* +G01X22346Y15390D01* +G01X22335Y15380D01* +G01X22321Y15372D01* +G01X22306Y15366D01* +G01X22291Y15362D01* +G01X22275Y15361D01* +G01X16440Y15361D01* +G01X16400Y15360D01* +G01X16359Y15357D01* +G01X16319Y15351D01* +G01X16279Y15344D01* +G01X16240Y15334D01* +G01X16201Y15322D01* +G01X16163Y15309D01* +G01X16089Y15275D01* +G01X16054Y15255D01* +G01X16020Y15233D01* +G01X15987Y15210D01* +G01X15955Y15185D01* +G01X15941Y15174D01* +G01X15924Y15167D01* +G01X15908Y15163D01* +G01X15890Y15161D01* +G01X15790Y15161D01* +G01X15767Y15160D01* +G01X15743Y15157D01* +G01X15720Y15151D01* +G01X15698Y15143D01* +G01X15676Y15134D01* +G01X15655Y15123D01* +G01X15636Y15109D01* +G01X15617Y15094D01* +G01X15601Y15077D01* +G01X15585Y15059D01* +G01X15572Y15039D01* +G01X15561Y15019D01* +G01X15551Y14997D01* +G01X15543Y14975D01* +G01X15538Y14951D01* +G01X15535Y14928D01* +G01X15534Y14905D01* +G01X15534Y14304D01* +G01X15535Y14281D01* +G01X15538Y14258D01* +G01X15543Y14234D01* +G01X15551Y14212D01* +G01X15561Y14190D01* +G01X15572Y14170D01* +G01X15585Y14150D01* +G01X15601Y14132D01* +G01X15617Y14115D01* +G01X15636Y14100D01* +G01X15655Y14086D01* +G01X15676Y14075D01* +G01X15698Y14066D01* +G01X15720Y14058D01* +G01X15743Y14052D01* +G01X15767Y14049D01* +G01X15790Y14048D01* +G01X15890Y14048D01* +G01X15907Y14046D01* +G01X15924Y14042D01* +G01X15940Y14035D01* +G01X15955Y14024D01* +G01X15987Y13999D01* +G01X16020Y13976D01* +G01X16054Y13954D01* +G01X16089Y13934D01* +G01X16126Y13916D01* +G01X16163Y13900D01* +G01X16201Y13887D01* +G01X16240Y13875D01* +G01X16279Y13865D01* +G01X16319Y13858D01* +G01X16359Y13852D01* +G01X16400Y13849D01* +G01X16440Y13848D01* +G01X22360Y13848D01* +G01X22377Y13847D01* +G01X22394Y13843D01* +G01X22409Y13835D01* +G01X22423Y13826D01* +G01X22436Y13815D01* +G01X22472Y13776D01* +G01X22509Y13739D01* +G01X22549Y13704D01* +G01X22589Y13671D01* +G01X22631Y13639D01* +G01X22674Y13609D01* +G01X22718Y13581D01* +G01X22764Y13555D01* +G01X22810Y13531D01* +G01X22858Y13508D01* +G01X22906Y13488D01* +G01X22956Y13470D01* +G01X23006Y13453D01* +G01X23056Y13439D01* +G01X23107Y13427D01* +G01X23159Y13418D01* +G01X23211Y13410D01* +G01X23263Y13405D01* +G01X23316Y13401D01* +G01X23368Y13400D01* +G01X23419Y13401D01* +G01X23470Y13404D01* +G01X23520Y13409D01* +G01X23570Y13416D01* +G01X23619Y13425D01* +G01X23669Y13437D01* +G01X23718Y13450D01* +G01X23766Y13465D01* +G01X23814Y13482D01* +G01X23861Y13501D01* +G01X23907Y13521D01* +G01X23952Y13544D01* +G01X23996Y13568D01* +G01X24040Y13595D01* +G01X24082Y13623D01* +G01X24123Y13652D01* +G01X24163Y13683D01* +G01X24202Y13716D01* +G01X24239Y13751D01* +G01X24274Y13786D01* +G01X24309Y13823D01* +G01X24341Y13862D01* +G01X24373Y13902D01* +G01X24402Y13943D01* +G01X24430Y13985D01* +G01X24457Y14028D01* +G01X24481Y14073D01* +G01X24503Y14118D01* +G01X24524Y14164D01* +G01X24543Y14211D01* +G01X24560Y14259D01* +G01X24575Y14307D01* +G01X24588Y14356D01* +G01X24599Y14405D01* +G01X24609Y14455D01* +G01X24616Y14505D01* +G01X24621Y14555D01* +G01X24624Y14606D01* +G01X24625Y14656D01* +G01X24624Y14707D01* +G01X24621Y14758D01* +G01X24616Y14808D01* +G01X24609Y14858D01* +G01X24599Y14908D01* +G01X24588Y14957D01* +G01X24575Y15006D01* +G01X24560Y15055D01* +G01X24543Y15102D01* +G01X24524Y15149D01* +G01X24503Y15195D01* +G01X24481Y15241D01* +G01X24457Y15285D01* +G01X24430Y15328D01* +G01X24402Y15371D01* +G01X24373Y15411D01* +G01X24341Y15451D01* +G01X24309Y15490D01* +G01X24274Y15527D01* +G01X24239Y15563D01* +G01X24202Y15597D01* +G01X24163Y15630D01* +G01X24123Y15661D01* +G01X24082Y15691D01* +G01X24040Y15719D01* +G01X23996Y15745D01* +G01X23952Y15769D01* +G01X23907Y15792D01* +G01X23861Y15813D01* +G01X23814Y15831D01* +G01X23766Y15849D01* +G01X23718Y15863D01* +G01X23669Y15877D01* +G01X23619Y15888D01* +G01X23570Y15897D01* +G01X23520Y15904D01* +G01X23470Y15909D01* +G01X23419Y15912D01* +G37* +G36* +G01X14690Y14211D02* +G01X14429Y14211D01* +G01X14429Y13868D01* +G01X14947Y13868D01* +G01X14947Y13954D01* +G01X14946Y13978D01* +G01X14942Y14002D01* +G01X14937Y14025D01* +G01X14930Y14047D01* +G01X14920Y14069D01* +G01X14908Y14089D01* +G01X14895Y14109D01* +G01X14880Y14127D01* +G01X14863Y14144D01* +G01X14845Y14159D01* +G01X14825Y14173D01* +G01X14805Y14184D01* +G01X14783Y14194D01* +G01X14760Y14201D01* +G01X14738Y14207D01* +G01X14714Y14210D01* +G01X14690Y14211D01* +G37* +G36* +G01X13652Y14211D02* +G01X13390Y14211D01* +G01X13367Y14210D01* +G01X13343Y14207D01* +G01X13320Y14201D01* +G01X13297Y14194D01* +G01X13276Y14184D01* +G01X13255Y14173D01* +G01X13235Y14159D01* +G01X13218Y14144D01* +G01X13201Y14127D01* +G01X13186Y14109D01* +G01X13172Y14089D01* +G01X13161Y14069D01* +G01X13151Y14047D01* +G01X13143Y14025D01* +G01X13138Y14002D01* +G01X13135Y13978D01* +G01X13134Y13954D01* +G01X13134Y13868D01* +G01X13652Y13868D01* +G01X13652Y14211D01* +G37* + +%LPD*% +G54D10* +G01X16694Y9397D02* +G01X23109Y9397D01* +G01X23368Y9657D01* +G01X16440Y14604D02* +G01X23316Y14604D01* +G01X23368Y14657D01* +G01X16440Y4571D02* +G01X23283Y4571D01* +G01X23368Y4657D01* +G01X10525Y4953D02* +G01X11094Y5521D01* +G01X14040Y5521D01* +G01X8525Y4953D02* +G01X5350Y8128D01* +G01X4064Y8128D01* +G01X10271Y14097D02* +G01X11729Y15554D01* +G01X14040Y15554D01* +G01X10398Y9906D02* +G01X10840Y10347D01* +G01X14294Y10347D01* +G01X4064Y10668D02* +G01X4826Y9906D01* +G01X8398Y9906D01* +G01X4064Y13208D02* +G01X4953Y14097D01* +G01X8271Y14097D01* +G54D11* +G01X8398Y9906D03* +G01X10398Y9906D03* +G36* +G01X13644Y8747D02* +G01X14944Y8747D01* +G01X14944Y8147D01* +G01X13644Y8147D01* +G01X13644Y8747D01* +G37* +G36* +G01X16044Y9697D02* +G01X17344Y9697D01* +G01X17344Y9098D01* +G01X16044Y9098D01* +G01X16044Y9697D01* +G37* +G36* +G01X13644Y10648D02* +G01X14944Y10648D01* +G01X14944Y10048D01* +G01X13644Y10048D01* +G01X13644Y10648D01* +G37* +G36* +G01X13390Y13954D02* +G01X14690Y13954D01* +G01X14690Y13354D01* +G01X13390Y13354D01* +G01X13390Y13954D01* +G37* +G36* +G01X15790Y14904D02* +G01X17090Y14904D01* +G01X17090Y14305D01* +G01X15790Y14305D01* +G01X15790Y14904D01* +G37* +G36* +G01X13390Y15855D02* +G01X14690Y15855D01* +G01X14690Y15255D01* +G01X13390Y15255D01* +G01X13390Y15855D01* +G37* +G36* +G01X13390Y3921D02* +G01X14690Y3921D01* +G01X14690Y3321D01* +G01X13390Y3321D01* +G01X13390Y3921D01* +G37* +G36* +G01X15790Y4871D02* +G01X17090Y4871D01* +G01X17090Y4272D01* +G01X15790Y4272D01* +G01X15790Y4871D01* +G37* +G36* +G01X13390Y5822D02* +G01X14690Y5822D01* +G01X14690Y5222D01* +G01X13390Y5222D01* +G01X13390Y5822D01* +G37* +G01X8271Y14097D03* +G01X10270Y14097D03* +G01X8525Y4953D03* +G01X10524Y4953D03* +G54D13* +G01X4064Y13208D03* +G01X4064Y10668D03* +G01X4064Y8128D03* +G54D14* +G01X4063Y5586D03* +G54D15* +G01X23368Y14657D03* +G01X23368Y9657D03* +G01X23368Y4657D03* +M00* +M02* diff --git a/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_TopPasteMaskLayer.GTP b/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_TopPasteMaskLayer.GTP new file mode 100644 index 00000000..6ee08802 --- /dev/null +++ b/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_TopPasteMaskLayer.GTP @@ -0,0 +1,87 @@ +G04 Layer: TopPasteMaskLayer* +G04 EasyEDA v6.4.7, 2020-10-21T08:40:06+11:00* +G04 167876914e964c2ea181e253bf9821b7,8b00c40d607e4de580d566db1ee26a9b,10* +G04 Gerber Generator version 0.2* +G04 Scale: 100 percent, Rotated: No, Reflected: No * +G04 Dimensions in millimeters * +G04 leading zeros omitted , absolute positions ,3 integer and 3 decimal * +%FSLAX33Y33*% +%MOMM*% +G90* +D02* + +%ADD11R,0.999998X1.550010*% + +%LPD*% +G54D11* +G01X8398Y9906D03* +G01X10398Y9906D03* +G36* +G01X13644Y8747D02* +G01X14944Y8747D01* +G01X14944Y8147D01* +G01X13644Y8147D01* +G01X13644Y8747D01* +G37* +G36* +G01X16044Y9697D02* +G01X17344Y9697D01* +G01X17344Y9098D01* +G01X16044Y9098D01* +G01X16044Y9697D01* +G37* +G36* +G01X13644Y10648D02* +G01X14944Y10648D01* +G01X14944Y10048D01* +G01X13644Y10048D01* +G01X13644Y10648D01* +G37* +G36* +G01X13390Y13954D02* +G01X14690Y13954D01* +G01X14690Y13354D01* +G01X13390Y13354D01* +G01X13390Y13954D01* +G37* +G36* +G01X15790Y14904D02* +G01X17090Y14904D01* +G01X17090Y14305D01* +G01X15790Y14305D01* +G01X15790Y14904D01* +G37* +G36* +G01X13390Y15855D02* +G01X14690Y15855D01* +G01X14690Y15255D01* +G01X13390Y15255D01* +G01X13390Y15855D01* +G37* +G36* +G01X13390Y3921D02* +G01X14690Y3921D01* +G01X14690Y3321D01* +G01X13390Y3321D01* +G01X13390Y3921D01* +G37* +G36* +G01X15790Y4871D02* +G01X17090Y4871D01* +G01X17090Y4272D01* +G01X15790Y4272D01* +G01X15790Y4871D01* +G37* +G36* +G01X13390Y5822D02* +G01X14690Y5822D01* +G01X14690Y5222D01* +G01X13390Y5222D01* +G01X13390Y5822D01* +G37* +G01X8271Y14097D03* +G01X10270Y14097D03* +G01X8525Y4953D03* +G01X10524Y4953D03* +M00* +M02* diff --git a/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_TopSilkLayer.GTO b/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_TopSilkLayer.GTO new file mode 100644 index 00000000..7115c2b0 --- /dev/null +++ b/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_TopSilkLayer.GTO @@ -0,0 +1,686 @@ +G04 Layer: TopSilkLayer* +G04 EasyEDA v6.4.7, 2020-10-21T08:40:06+11:00* +G04 167876914e964c2ea181e253bf9821b7,8b00c40d607e4de580d566db1ee26a9b,10* +G04 Gerber Generator version 0.2* +G04 Scale: 100 percent, Rotated: No, Reflected: No * +G04 Dimensions in millimeters * +G04 leading zeros omitted , absolute positions ,3 integer and 3 decimal * +%FSLAX33Y33*% +%MOMM*% +G90* +D02* + +%ADD16C,0.254000*% +%ADD17C,0.203200*% +%ADD18C,0.152400*% + +%LPD*% + +%LPD*% +G36* +G01X1909Y6337D02* +G01X1847Y6337D01* +G01X1847Y5550D01* +G01X1278Y5550D01* +G01X1278Y5493D01* +G01X2478Y5493D01* +G01X2478Y5550D01* +G01X1909Y5550D01* +G01X1909Y6337D01* +G37* + +%LPD*% +G36* +G01X2248Y5230D02* +G01X1507Y5230D01* +G01X1507Y5172D01* +G01X2248Y5172D01* +G01X2248Y5230D01* +G37* + +%LPD*% +G36* +G01X2052Y4896D02* +G01X1703Y4896D01* +G01X1703Y4839D01* +G01X2052Y4839D01* +G01X2052Y4896D01* +G37* + +%LPD*% +G54D16* +G01X5334Y14478D02* +G01X2794Y14478D01* +G01X5334Y4318D02* +G01X2794Y4318D01* +G01X2794Y14478D02* +G01X2794Y4318D01* +G01X5334Y14478D02* +G01X5334Y4318D01* +G01X9898Y8886D02* +G01X11148Y8886D01* +G01X9898Y10925D02* +G01X11148Y10925D01* +G01X8898Y8886D02* +G01X7648Y8886D01* +G01X8898Y10925D02* +G01X7648Y10925D01* +G01X11148Y8886D02* +G01X11148Y10925D01* +G01X7648Y8886D02* +G01X7648Y10925D01* +G01X27599Y1947D02* +G01X18599Y1947D01* +G01X27569Y17447D02* +G01X18569Y17447D01* +G01X27599Y17447D02* +G01X27599Y1947D01* +G01X25769Y17477D02* +G01X25769Y1977D01* +G01X26999Y17447D02* +G01X26999Y1947D01* +G01X18569Y17447D02* +G01X18569Y1947D01* +G01X14794Y9711D02* +G01X14794Y9084D01* +G01X16194Y10897D02* +G01X16194Y10033D01* +G01X16194Y8762D02* +G01X16194Y7898D01* +G01X16194Y10897D02* +G01X15194Y10897D01* +G01X16194Y7898D02* +G01X15194Y7898D01* +G01X14540Y14918D02* +G01X14540Y14291D01* +G01X15940Y16104D02* +G01X15940Y15240D01* +G01X15940Y13969D02* +G01X15940Y13105D01* +G01X15940Y16104D02* +G01X14940Y16104D01* +G01X15940Y13105D02* +G01X14940Y13105D01* +G01X14540Y4885D02* +G01X14540Y4258D01* +G01X15940Y6071D02* +G01X15940Y5207D01* +G01X15940Y3936D02* +G01X15940Y3072D01* +G01X15940Y6071D02* +G01X14940Y6071D01* +G01X15940Y3072D02* +G01X14940Y3072D01* +G01X9770Y13077D02* +G01X11021Y13077D01* +G01X9770Y15116D02* +G01X11021Y15116D01* +G01X8771Y13077D02* +G01X7520Y13077D01* +G01X8771Y15116D02* +G01X7520Y15116D01* +G01X11021Y13077D02* +G01X11021Y15116D01* +G01X7520Y13077D02* +G01X7520Y15116D01* +G01X10024Y3933D02* +G01X11275Y3933D01* +G01X10024Y5972D02* +G01X11275Y5972D01* +G01X9025Y3933D02* +G01X7774Y3933D01* +G01X9025Y5972D02* +G01X7774Y5972D01* +G01X11275Y3933D02* +G01X11275Y5972D01* +G01X7774Y3933D02* +G01X7774Y5972D01* +G54D17* +G01X28303Y3937D02* +G01X30241Y3937D01* +G01X28303Y3937D02* +G01X28303Y4767D01* +G01X28394Y5044D01* +G01X28486Y5138D01* +G01X28671Y5229D01* +G01X28856Y5229D01* +G01X29042Y5138D01* +G01X29133Y5044D01* +G01X29225Y4767D01* +G01X29225Y3937D01* +G01X29225Y4584D02* +G01X30241Y5229D01* +G01X28303Y9017D02* +G01X30241Y9017D01* +G01X28303Y9017D02* +G01X28303Y9847D01* +G01X28394Y10124D01* +G01X28486Y10218D01* +G01X28671Y10309D01* +G01X28856Y10309D01* +G01X29042Y10218D01* +G01X29133Y10124D01* +G01X29225Y9847D01* +G01X29225Y9017D02* +G01X29225Y9847D01* +G01X29319Y10124D01* +G01X29410Y10218D01* +G01X29596Y10309D01* +G01X29872Y10309D01* +G01X30058Y10218D01* +G01X30149Y10124D01* +G01X30241Y9847D01* +G01X30241Y9017D01* +G01X28892Y15354D02* +G01X28707Y15262D01* +G01X28521Y15077D01* +G01X28430Y14894D01* +G01X28430Y14523D01* +G01X28521Y14338D01* +G01X28707Y14155D01* +G01X28892Y14061D01* +G01X29169Y13970D01* +G01X29629Y13970D01* +G01X29908Y14061D01* +G01X30091Y14155D01* +G01X30276Y14338D01* +G01X30368Y14523D01* +G01X30368Y14894D01* +G01X30276Y15077D01* +G01X30091Y15262D01* +G01X29908Y15354D01* +G01X29629Y15354D01* +G01X29629Y14894D02* +G01X29629Y15354D01* +G01X1239Y13723D02* +G01X1104Y13655D01* +G01X967Y13517D01* +G01X899Y13380D01* +G01X899Y13108D01* +G01X967Y12971D01* +G01X1104Y12837D01* +G01X1239Y12768D01* +G01X1445Y12700D01* +G01X1785Y12700D01* +G01X1991Y12768D01* +G01X2125Y12837D01* +G01X2263Y12971D01* +G01X2331Y13108D01* +G01X2331Y13380D01* +G01X2263Y13517D01* +G01X2125Y13655D01* +G01X1991Y13723D01* +G01X1785Y13723D01* +G01X1785Y13380D02* +G01X1785Y13723D01* +G01X899Y10414D02* +G01X2331Y10414D01* +G01X899Y10414D02* +G01X899Y11028D01* +G01X967Y11231D01* +G01X1036Y11300D01* +G01X1170Y11369D01* +G01X1308Y11369D01* +G01X1445Y11300D01* +G01X1513Y11231D01* +G01X1582Y11028D01* +G01X1582Y10414D02* +G01X1582Y11028D01* +G01X1648Y11231D01* +G01X1717Y11300D01* +G01X1854Y11369D01* +G01X2057Y11369D01* +G01X2194Y11300D01* +G01X2263Y11231D01* +G01X2331Y11028D01* +G01X2331Y10414D01* +G01X899Y7747D02* +G01X2331Y7747D01* +G01X899Y7747D02* +G01X899Y8361D01* +G01X967Y8564D01* +G01X1036Y8633D01* +G01X1170Y8702D01* +G01X1308Y8702D01* +G01X1445Y8633D01* +G01X1513Y8564D01* +G01X1582Y8361D01* +G01X1582Y7747D01* +G01X1582Y8224D02* +G01X2331Y8702D01* +G01X1270Y2783D02* +G01X1270Y1351D01* +G01X1270Y2783D02* +G01X1884Y2783D01* +G01X2087Y2715D01* +G01X2156Y2646D01* +G01X2225Y2512D01* +G01X2225Y2374D01* +G01X2156Y2237D01* +G01X2087Y2169D01* +G01X1884Y2100D01* +G01X1270Y2100D01* +G01X1747Y2100D02* +G01X2225Y1351D01* +G01X3698Y2443D02* +G01X3629Y2578D01* +G01X3492Y2715D01* +G01X3355Y2783D01* +G01X3083Y2783D01* +G01X2946Y2715D01* +G01X2811Y2578D01* +G01X2743Y2443D01* +G01X2674Y2237D01* +G01X2674Y1897D01* +G01X2743Y1691D01* +G01X2811Y1557D01* +G01X2946Y1419D01* +G01X3083Y1351D01* +G01X3355Y1351D01* +G01X3492Y1419D01* +G01X3629Y1557D01* +G01X3698Y1691D01* +G01X3698Y1897D01* +G01X3355Y1897D02* +G01X3698Y1897D01* +G01X4147Y2783D02* +G01X4147Y1351D01* +G01X4147Y2783D02* +G01X4759Y2783D01* +G01X4965Y2715D01* +G01X5034Y2646D01* +G01X5102Y2512D01* +G01X5102Y2374D01* +G01X5034Y2237D01* +G01X4965Y2169D01* +G01X4759Y2100D01* +G01X4147Y2100D02* +G01X4759Y2100D01* +G01X4965Y2034D01* +G01X5034Y1965D01* +G01X5102Y1828D01* +G01X5102Y1625D01* +G01X5034Y1488D01* +G01X4965Y1419D01* +G01X4759Y1351D01* +G01X4147Y1351D01* +G01X7625Y2443D02* +G01X7556Y2578D01* +G01X7419Y2715D01* +G01X7284Y2783D01* +G01X7010Y2783D01* +G01X6875Y2715D01* +G01X6738Y2578D01* +G01X6670Y2443D01* +G01X6601Y2237D01* +G01X6601Y1897D01* +G01X6670Y1691D01* +G01X6738Y1557D01* +G01X6875Y1419D01* +G01X7010Y1351D01* +G01X7284Y1351D01* +G01X7419Y1419D01* +G01X7556Y1557D01* +G01X7625Y1691D01* +G01X8415Y2306D02* +G01X8277Y2237D01* +G01X8143Y2100D01* +G01X8074Y1897D01* +G01X8074Y1760D01* +G01X8143Y1557D01* +G01X8277Y1419D01* +G01X8415Y1351D01* +G01X8620Y1351D01* +G01X8755Y1419D01* +G01X8892Y1557D01* +G01X8961Y1760D01* +G01X8961Y1897D01* +G01X8892Y2100D01* +G01X8755Y2237D01* +G01X8620Y2306D01* +G01X8415Y2306D01* +G01X9410Y2306D02* +G01X9410Y1351D01* +G01X9410Y2034D02* +G01X9616Y2237D01* +G01X9751Y2306D01* +G01X9956Y2306D01* +G01X10093Y2237D01* +G01X10160Y2034D01* +G01X10160Y1351D01* +G01X10815Y2783D02* +G01X10815Y1625D01* +G01X10883Y1419D01* +G01X11021Y1351D01* +G01X11155Y1351D01* +G01X10612Y2306D02* +G01X11087Y2306D01* +G01X11605Y2306D02* +G01X11605Y1351D01* +G01X11605Y1897D02* +G01X11673Y2100D01* +G01X11811Y2237D01* +G01X11948Y2306D01* +G01X12151Y2306D01* +G01X12943Y2306D02* +G01X12806Y2237D01* +G01X12669Y2100D01* +G01X12600Y1897D01* +G01X12600Y1760D01* +G01X12669Y1557D01* +G01X12806Y1419D01* +G01X12943Y1351D01* +G01X13147Y1351D01* +G01X13284Y1419D01* +G01X13418Y1557D01* +G01X13487Y1760D01* +G01X13487Y1897D01* +G01X13418Y2100D01* +G01X13284Y2237D01* +G01X13147Y2306D01* +G01X12943Y2306D01* +G01X13936Y2783D02* +G01X13936Y1351D01* +G01X14389Y2783D02* +G01X14389Y1351D01* +G01X14838Y1897D02* +G01X15656Y1897D01* +G01X15656Y2034D01* +G01X15587Y2169D01* +G01X15519Y2237D01* +G01X15384Y2306D01* +G01X15179Y2306D01* +G01X15041Y2237D01* +G01X14907Y2100D01* +G01X14838Y1897D01* +G01X14838Y1760D01* +G01X14907Y1557D01* +G01X15041Y1419D01* +G01X15179Y1351D01* +G01X15384Y1351D01* +G01X15519Y1419D01* +G01X15656Y1557D01* +G01X16106Y2306D02* +G01X16106Y1351D01* +G01X16106Y1897D02* +G01X16174Y2100D01* +G01X16311Y2237D01* +G01X16446Y2306D01* +G01X16652Y2306D01* +G01X1724Y18407D02* +G01X1724Y17680D01* +G01X1678Y17543D01* +G01X1633Y17498D01* +G01X1541Y17452D01* +G01X1452Y17452D01* +G01X1361Y17498D01* +G01X1315Y17543D01* +G01X1270Y17680D01* +G01X1270Y17772D01* +G01X2570Y18089D02* +G01X2570Y17452D01* +G01X2570Y17952D02* +G01X2479Y18044D01* +G01X2387Y18089D01* +G01X2252Y18089D01* +G01X2161Y18044D01* +G01X2070Y17952D01* +G01X2024Y17818D01* +G01X2024Y17726D01* +G01X2070Y17589D01* +G01X2161Y17498D01* +G01X2252Y17452D01* +G01X2387Y17452D01* +G01X2479Y17498D01* +G01X2570Y17589D01* +G01X2870Y18089D02* +G01X2870Y17452D01* +G01X2870Y17907D02* +G01X3007Y18044D01* +G01X3096Y18089D01* +G01X3233Y18089D01* +G01X3324Y18044D01* +G01X3370Y17907D01* +G01X3370Y17452D01* +G01X4414Y18181D02* +G01X4414Y18227D01* +G01X4460Y18315D01* +G01X4505Y18361D01* +G01X4597Y18407D01* +G01X4780Y18407D01* +G01X4869Y18361D01* +G01X4914Y18315D01* +G01X4960Y18227D01* +G01X4960Y18135D01* +G01X4914Y18044D01* +G01X4823Y17907D01* +G01X4368Y17452D01* +G01X5006Y17452D01* +G01X5577Y18407D02* +G01X5443Y18361D01* +G01X5351Y18227D01* +G01X5306Y17998D01* +G01X5306Y17863D01* +G01X5351Y17635D01* +G01X5443Y17498D01* +G01X5577Y17452D01* +G01X5669Y17452D01* +G01X5806Y17498D01* +G01X5897Y17635D01* +G01X5943Y17863D01* +G01X5943Y17998D01* +G01X5897Y18227D01* +G01X5806Y18361D01* +G01X5669Y18407D01* +G01X5577Y18407D01* +G01X6289Y18181D02* +G01X6289Y18227D01* +G01X6334Y18315D01* +G01X6377Y18361D01* +G01X6469Y18407D01* +G01X6652Y18407D01* +G01X6743Y18361D01* +G01X6789Y18315D01* +G01X6832Y18227D01* +G01X6832Y18135D01* +G01X6789Y18044D01* +G01X6697Y17907D01* +G01X6243Y17452D01* +G01X6878Y17452D01* +G01X7452Y18407D02* +G01X7315Y18361D01* +G01X7223Y18227D01* +G01X7178Y17998D01* +G01X7178Y17863D01* +G01X7223Y17635D01* +G01X7315Y17498D01* +G01X7452Y17452D01* +G01X7543Y17452D01* +G01X7678Y17498D01* +G01X7769Y17635D01* +G01X7815Y17863D01* +G01X7815Y17998D01* +G01X7769Y18227D01* +G01X7678Y18361D01* +G01X7543Y18407D01* +G01X7452Y18407D01* +G54D18* +G01X7493Y12329D02* +G01X7493Y11239D01* +G01X7493Y12329D02* +G01X7961Y12329D01* +G01X8116Y12278D01* +G01X8169Y12225D01* +G01X8220Y12120D01* +G01X8220Y12016D01* +G01X8169Y11912D01* +G01X8116Y11861D01* +G01X7961Y11811D01* +G01X7493Y11811D01* +G01X7856Y11811D02* +G01X8220Y11239D01* +G01X8616Y12070D02* +G01X8616Y12120D01* +G01X8667Y12225D01* +G01X8720Y12278D01* +G01X8824Y12329D01* +G01X9030Y12329D01* +G01X9134Y12278D01* +G01X9187Y12225D01* +G01X9238Y12120D01* +G01X9238Y12016D01* +G01X9187Y11912D01* +G01X9083Y11757D01* +G01X8563Y11239D01* +G01X9292Y11239D01* +G01X14283Y12456D02* +G01X14179Y12405D01* +G01X14074Y12301D01* +G01X14021Y12197D01* +G01X13970Y12039D01* +G01X13970Y11780D01* +G01X14021Y11625D01* +G01X14074Y11521D01* +G01X14179Y11417D01* +G01X14283Y11366D01* +G01X14491Y11366D01* +G01X14593Y11417D01* +G01X14697Y11521D01* +G01X14750Y11625D01* +G01X14801Y11780D01* +G01X14801Y12039D01* +G01X14750Y12197D01* +G01X14697Y12301D01* +G01X14593Y12405D01* +G01X14491Y12456D01* +G01X14283Y12456D01* +G01X14438Y11572D02* +G01X14750Y11262D01* +G01X15197Y12197D02* +G01X15197Y12247D01* +G01X15248Y12352D01* +G01X15301Y12405D01* +G01X15405Y12456D01* +G01X15611Y12456D01* +G01X15715Y12405D01* +G01X15769Y12352D01* +G01X15819Y12247D01* +G01X15819Y12143D01* +G01X15769Y12039D01* +G01X15664Y11884D01* +G01X15144Y11366D01* +G01X15873Y11366D01* +G01X14410Y17790D02* +G01X14306Y17739D01* +G01X14201Y17635D01* +G01X14148Y17531D01* +G01X14097Y17373D01* +G01X14097Y17114D01* +G01X14148Y16959D01* +G01X14201Y16855D01* +G01X14306Y16751D01* +G01X14410Y16700D01* +G01X14618Y16700D01* +G01X14720Y16751D01* +G01X14824Y16855D01* +G01X14877Y16959D01* +G01X14928Y17114D01* +G01X14928Y17373D01* +G01X14877Y17531D01* +G01X14824Y17635D01* +G01X14720Y17739D01* +G01X14618Y17790D01* +G01X14410Y17790D01* +G01X14565Y16906D02* +G01X14877Y16596D01* +G01X15271Y17581D02* +G01X15375Y17635D01* +G01X15532Y17790D01* +G01X15532Y16700D01* +G01X14283Y7503D02* +G01X14179Y7452D01* +G01X14074Y7348D01* +G01X14021Y7244D01* +G01X13970Y7086D01* +G01X13970Y6827D01* +G01X14021Y6672D01* +G01X14074Y6568D01* +G01X14179Y6464D01* +G01X14283Y6413D01* +G01X14491Y6413D01* +G01X14593Y6464D01* +G01X14697Y6568D01* +G01X14750Y6672D01* +G01X14801Y6827D01* +G01X14801Y7086D01* +G01X14750Y7244D01* +G01X14697Y7348D01* +G01X14593Y7452D01* +G01X14491Y7503D01* +G01X14283Y7503D01* +G01X14438Y6619D02* +G01X14750Y6309D01* +G01X15248Y7503D02* +G01X15819Y7503D01* +G01X15507Y7086D01* +G01X15664Y7086D01* +G01X15769Y7035D01* +G01X15819Y6985D01* +G01X15873Y6827D01* +G01X15873Y6723D01* +G01X15819Y6568D01* +G01X15715Y6464D01* +G01X15560Y6413D01* +G01X15405Y6413D01* +G01X15248Y6464D01* +G01X15197Y6515D01* +G01X15144Y6619D01* +G01X7366Y16647D02* +G01X7366Y15557D01* +G01X7366Y16647D02* +G01X7834Y16647D01* +G01X7989Y16596D01* +G01X8042Y16543D01* +G01X8093Y16438D01* +G01X8093Y16334D01* +G01X8042Y16230D01* +G01X7989Y16179D01* +G01X7834Y16129D01* +G01X7366Y16129D01* +G01X7729Y16129D02* +G01X8093Y15557D01* +G01X8436Y16438D02* +G01X8540Y16492D01* +G01X8697Y16647D01* +G01X8697Y15557D01* +G01X7747Y7503D02* +G01X7747Y6413D01* +G01X7747Y7503D02* +G01X8215Y7503D01* +G01X8370Y7452D01* +G01X8423Y7399D01* +G01X8474Y7294D01* +G01X8474Y7190D01* +G01X8423Y7086D01* +G01X8370Y7035D01* +G01X8215Y6985D01* +G01X7747Y6985D01* +G01X8110Y6985D02* +G01X8474Y6413D01* +G01X8921Y7503D02* +G01X9492Y7503D01* +G01X9182Y7086D01* +G01X9337Y7086D01* +G01X9441Y7035D01* +G01X9492Y6985D01* +G01X9546Y6827D01* +G01X9546Y6723D01* +G01X9492Y6568D01* +G01X9388Y6464D01* +G01X9233Y6413D01* +G01X9078Y6413D01* +G01X8921Y6464D01* +G01X8870Y6515D01* +G01X8817Y6619D01* +M00* +M02* diff --git a/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_TopSolderMaskLayer.GTS b/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_TopSolderMaskLayer.GTS new file mode 100644 index 00000000..a91ec1da --- /dev/null +++ b/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/Gerber_TopSolderMaskLayer.GTS @@ -0,0 +1,138 @@ +G04 Layer: TopSolderMaskLayer* +G04 EasyEDA v6.4.7, 2020-10-21T08:40:06+11:00* +G04 167876914e964c2ea181e253bf9821b7,8b00c40d607e4de580d566db1ee26a9b,10* +G04 Gerber Generator version 0.2* +G04 Scale: 100 percent, Rotated: No, Reflected: No * +G04 Dimensions in millimeters * +G04 leading zeros omitted , absolute positions ,3 integer and 3 decimal * +%FSLAX33Y33*% +%MOMM*% +G90* +D02* + +%ADD19C,1.953260*% +%ADD22C,2.203196*% + +%LPD*% +G54D19* +G01X4064Y13208D03* +G01X4064Y10668D03* +G01X4064Y8128D03* +G36* +G01X3086Y4610D02* +G01X3086Y6563D01* +G01X5039Y6563D01* +G01X5039Y4610D01* +G01X3086Y4610D01* +G37* +G36* +G01X7797Y9029D02* +G01X7797Y10782D01* +G01X8999Y10782D01* +G01X8999Y9029D01* +G01X7797Y9029D01* +G37* +G36* +G01X9796Y9029D02* +G01X9796Y10782D01* +G01X11000Y10782D01* +G01X11000Y9029D01* +G01X9796Y9029D01* +G37* +G54D22* +G01X23368Y14657D03* +G01X23368Y9657D03* +G01X23368Y4657D03* +G36* +G01X13543Y8046D02* +G01X13543Y8849D01* +G01X15046Y8849D01* +G01X15046Y8046D01* +G01X13543Y8046D01* +G37* +G36* +G01X15943Y8996D02* +G01X15943Y9799D01* +G01X17447Y9799D01* +G01X17447Y8996D01* +G01X15943Y8996D01* +G37* +G36* +G01X13543Y9946D02* +G01X13543Y10749D01* +G01X15046Y10749D01* +G01X15046Y9946D01* +G01X13543Y9946D01* +G37* +G36* +G01X13289Y13253D02* +G01X13289Y14056D01* +G01X14792Y14056D01* +G01X14792Y13253D01* +G01X13289Y13253D01* +G37* +G36* +G01X15689Y14203D02* +G01X15689Y15006D01* +G01X17193Y15006D01* +G01X17193Y14203D01* +G01X15689Y14203D01* +G37* +G36* +G01X13289Y15153D02* +G01X13289Y15956D01* +G01X14792Y15956D01* +G01X14792Y15153D01* +G01X13289Y15153D01* +G37* +G36* +G01X13289Y3220D02* +G01X13289Y4023D01* +G01X14792Y4023D01* +G01X14792Y3220D01* +G01X13289Y3220D01* +G37* +G36* +G01X15689Y4170D02* +G01X15689Y4973D01* +G01X17193Y4973D01* +G01X17193Y4170D01* +G01X15689Y4170D01* +G37* +G36* +G01X13289Y5120D02* +G01X13289Y5923D01* +G01X14792Y5923D01* +G01X14792Y5120D01* +G01X13289Y5120D01* +G37* +G36* +G01X7668Y13220D02* +G01X7668Y14973D01* +G01X8872Y14973D01* +G01X8872Y13220D01* +G01X7668Y13220D01* +G37* +G36* +G01X9669Y13220D02* +G01X9669Y14973D01* +G01X10873Y14973D01* +G01X10873Y13220D01* +G01X9669Y13220D01* +G37* +G36* +G01X7922Y4076D02* +G01X7922Y5829D01* +G01X9126Y5829D01* +G01X9126Y4076D01* +G01X7922Y4076D01* +G37* +G36* +G01X9923Y4076D02* +G01X9923Y5829D01* +G01X11127Y5829D01* +G01X11127Y4076D01* +G01X9923Y4076D01* +G37* +M00* +M02* diff --git a/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/How-to-order-PCB.txt b/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/How-to-order-PCB.txt new file mode 100644 index 00000000..c0005947 --- /dev/null +++ b/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Gerber/How-to-order-PCB.txt @@ -0,0 +1,4 @@ +How to Order PCB + +Please refer to: +https://docs.easyeda.com/en/PCB/Order-PCB \ No newline at end of file diff --git a/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Schematic.pdf b/Phenobottle Circuit Board/RGB Control Circuit/RGB Circuit Schematic.pdf new file mode 100644 index 0000000000000000000000000000000000000000..72e5cbc1b319bd783dbce95f046be700ec0a7748 GIT binary patch literal 19149 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 E1C;>yCjbBd literal 0 HcmV?d00001 diff --git a/Phenobottle Circuit Board/RGB Control Circuit/RGB Control BOM.csv b/Phenobottle Circuit Board/RGB Control Circuit/RGB Control BOM.csv new file mode 100644 index 0000000000000000000000000000000000000000..643e495afc34a39178cbdc86017e698936c1bc52 GIT binary patch literal 948 zcmZ{jTTcQp5QWbx{0d^?8<1tW`lx`4EC>r~eA*zOl88$XV*K;!*X~7B$fn)t%;}jq z)AsALqn0x2Yoev*SS{u^E%c;Ud>e&Y<2~mevRbiP5ZT}xY74^H3&sbYo?UPC$bX7& z3wqATX@F;KcOAlHGy=ckdx6jF`tSMS$?8ZYMut(b{2espbji+%W_EuRz1hJ9)M0P| zxVBEw+Lq6%hjkINC9Hio-eDY}s&eCqt8Q%hRFEf6+0IGa zm!k%w8l%c7x~FCub5(?~3&SyWM|sBdI;5s$y!OD47*VuI9v9ZSYC6GZYD&28bcOBk z-Kqelh*iKdi1!ZCUNv=1zCO`0y$UR*0500&;MvFZn=R?&KICpzpYED7pTNIHS)}8y zss`s=Lsg`x5~Diw)#Lm;tJz7rKg7y&Lrv$0ss0hF#%OZ!1a?o69u?41q8DYX0Ua^E zDz-;gP5&#{XXJ_MN_u%H^F0c-+>{B5% - // Copyright (C) <2020> - - // This program is free software: you can redistribute it and/or modify - // it under the terms of the GNU General Public License as published by - // the Free Software Foundation, either version 3 of the License, or - // (at your option) any later version. - - // This program is distributed in the hope that it will be useful, - // but WITHOUT ANY WARRANTY; without even the implied warranty of - // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - // GNU General Public License for more details. - - // You should have received a copy of the GNU General Public License - // along with this program. If not, see - - // For more information contact: harvey.bates@student.uts.edu.au - -// Required Imports -#include -#include -#include - -// Analog Pins -#define readPin 33 -#define odRead 34 -#define tempPin 35 - -// Digital Pins -#define actinicPin 21 -#define ODemitPower 23 -#define ODdetectPower 22 -#define tempPower 20 - -//RGB Control -#define Red 36 -#define Green 37 -#define Blue 38 - -int baseRead[5]; -int microRead [1000]; -int milliRead[1000]; - -int baseCycles = 5; -int microCycles = 1000; -int milliCycles = 1000; - -float h[5]; -float t[1000]; -float p[1000]; -String command; - -int microMax = 0; -int milliMax = 0; -float foread = 0; - -int ODMeasure; -float Fo; -float Fm; -float VarFluoro; -float transmittance; -float FvoverFm; -double od_real; - -float initalOD = 800; - -void setup() { - Serial.begin(115200); - - analogReadResolution(12); - analogReference(DEFAULT); - - pinMode(tempPower, OUTPUT); - pinMode(ODemitPower, OUTPUT); - pinMode(ODdetectPower, OUTPUT); - pinMode(actinicPin, OUTPUT); - pinMode(Red, OUTPUT); - pinMode(Green, OUTPUT); - pinMode(Blue, OUTPUT); - - digitalWrite(actinicPin, LOW); - digitalWrite(ODemitPower, LOW); - digitalWrite(ODdetectPower, HIGH); - digitalWrite(Red, LOW); - digitalWrite(Green, LOW); - digitalWrite(Blue, LOW); -} - -void redON(){ - digitalWrite(Red, HIGH); -} - -void blueON(){ - digitalWrite(Blue, HIGH); -} - -void rgblightsOFF(){ - digitalWrite(Red, LOW); - digitalWrite(Green, LOW); - digitalWrite(Blue, LOW); -} - -void greenON(){ - digitalWrite(Green, HIGH); -} - -void measureOpticalDensity(){ - digitalWrite(ODemitPower, HIGH); - analogReference(DEFAULT); - delay(1000); - analogRead(odRead); - delay(100); - ODMeasure = analogRead(odRead); - Serial.println(ODMeasure); - delay(10); - digitalWrite(ODemitPower, LOW); - delay(100); -} - -void measureFluoro() { - analogReference(DEFAULT); - delay(10); - - analogRead(readPin); - delay (1000); - - digitalWrite(actinicPin, HIGH); - - long timer = micros(); - - for (int i = 0; i < microCycles; i++) - { - microRead[i] = analogRead(readPin); - t[i] = micros() - timer; - } - - for (int o = 0; o < milliCycles; o++) - { - milliRead[o] = analogRead(readPin); - p[o] = micros() - timer; - delay(1); - } - - digitalWrite(actinicPin, LOW); - delay(10); - - int microMax = microRead[1]; - for (int u = 1; u < microCycles; u++){ - if(microRead[u] > microMax){ - microMax = microRead[u]; - } - } - - int milliMax = milliRead[0]; - for (int i = 0; i < milliCycles; i++){ - if(milliRead[i] > milliMax){ - milliMax = milliRead[i]; - } - } - - for (int q = 0; q < microCycles; q++) - { - float millCounts = t[q]; - float millicountsConverted = millCounts/1000; - float milliReal = millicountsConverted; - Serial.print(milliReal, 3); - Serial.print("\t"); - Serial.println(microRead[q]); - delay(1); - } - - for (int l = 0; l < milliCycles; l++) - { - float milliTime = p[l]; - float millitimeConverted = milliTime/1000; - float milliReal = millitimeConverted; - Serial.print(milliReal, 3); - Serial.print("\t"); - Serial.println(milliRead[l]); - delay(1); - } - -} - -void testADC(){ - for (int i = 0; i < 2000; i++){ - int value = analogRead(14); - Serial.println(value); - delay(100); - } -} - -void calibrateFo(){ - analogReference(DEFAULT); - delay(10); - analogRead(readPin); - delay(10); - for (int k = 0; k < 5; k++){ - digitalWrite(actinicPin, HIGH); - delayMicroseconds(20); - for (int i = 0; i <= 2; i++){ - foread = analogRead(readPin); - Serial.println((foread/4096) * 3.3); - } - digitalWrite(actinicPin, LOW); - Serial.print("Final Fo = "); - Serial.println((foread/4096) * 3.3); - delay(2000); - } -} - -void calibrateRise(){ - for (int i = 0; i < 200; i++){ - digitalWrite(actinicPin, HIGH); - delayMicroseconds(100); - digitalWrite(actinicPin, LOW); - delay(200); - } -} - -void measureLight(){ - digitalWrite(actinicPin, HIGH); - delay(3000); - digitalWrite(actinicPin, LOW); - delay(20); -} - -void loop(){ - if(Serial.available()){ - command = Serial.readStringUntil('\n'); - if(command.equals("MeasureOpticalDensity")){ - measureOpticalDensity(); - } - else if(command.equals("MeasureFluorescence")){ - measureFluoro(); - } - else if(command.equals("MF")){ - measureFluoro(); - } - else if(command.equals("CFo")){ - calibrateFo(); - } - else if(command.equals("Measure Light")){ - measureFluoro(); - } - else if(command.equals("ML")){ - measureLight(); - } - else if(command.equals("c")){ - calibrateRise(); - } - else if(command.equals("t")){ - testADC(); - } - else if(command.equals("RedON")){ - redON(); - } - else if(command.equals("GreenON")){ - greenON(); - } - else if(command.equals("BlueON")){ - blueON(); - } - else if(command.equals("RGBOFF")){ - rgblightsOFF(); - } - else{ - delay(100); - } - } -} +// + // Copyright (C) <2020> + + // This program is free software: you can redistribute it and/or modify + // it under the terms of the GNU General Public License as published by + // the Free Software Foundation, either version 3 of the License, or + // (at your option) any later version. + + // This program is distributed in the hope that it will be useful, + // but WITHOUT ANY WARRANTY; without even the implied warranty of + // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + // GNU General Public License for more details. + + // You should have received a copy of the GNU General Public License + // along with this program. If not, see + + // For more information contact: harvey.bates@student.uts.edu.au + +// Required Imports +#include +#include +#include +#include + +// Analog Pins +#define readPin 33 +#define odRead 34 +#define tempPin 35 + +// Digital Pins +#define actinicPin 21 +#define ODemitPower 23 +#define ODdetectPower 22 +#define tempPower 20 + +//RGB Control +#define Red 36 +#define Green 37 +#define Blue 38 + +int baseRead[5]; +int microRead [1000]; +int milliRead[1000]; + +int baseCycles = 5; +int microCycles = 1000; +int milliCycles = 1000; + +float h[5]; +float t[1000]; +float p[1000]; +String command; + +int microMax = 0; +int milliMax = 0; +float foread = 0; + +int ODMeasure; +float Fo; +float Fm; +float VarFluoro; +float transmittance; +float FvoverFm; +double od_real; + +float initalOD = 800; + +void setup() { + Serial.begin(115200); + + analogReadResolution(12); + analogReference(DEFAULT); + + pinMode(tempPower, OUTPUT); + pinMode(ODemitPower, OUTPUT); + pinMode(ODdetectPower, OUTPUT); + pinMode(actinicPin, OUTPUT); + pinMode(Red, OUTPUT); + pinMode(Green, OUTPUT); + pinMode(Blue, OUTPUT); + + digitalWrite(actinicPin, LOW); + digitalWrite(ODemitPower, LOW); + digitalWrite(ODdetectPower, HIGH); + digitalWrite(Red, LOW); + digitalWrite(Green, LOW); + digitalWrite(Blue, LOW); +} + +void LED_light_on(int redColor, int redFreq, int greenColor, int greenFreq, int blueColor, int blueFreq){ + analogWrite(redColor, redFreq); + analogWrite(greenColor, greenFreq); + analogWrite(blueColor, blueFreq); + if (redFreq == 0){ + digitalWrite(redColor, LOW); + } + if (greenFreq == 0){ + digitalWrite(greenColor, LOW); + } + if (blueFreq == 0){ + digitalWrite(blueColor, LOW); + } +} + +void LED_light_off(int color){ + digitalWrite(color, LOW); +} + +void rgblightsOFF(){ + digitalWrite(Red, LOW); + digitalWrite(Green, LOW); + digitalWrite(Blue, LOW); +} + +String getValue(String data, char separator, int index) +{ + int found = 0; + int strIndex[] = { 0, -1 }; + int maxIndex = data.length() - 1; + + for (int i = 0; i <= maxIndex && found <= index; i++) { + if (data.charAt(i) == separator || i == maxIndex) { + found++; + strIndex[0] = strIndex[1] + 1; + strIndex[1] = (i == maxIndex) ? i+1 : i; + } + } + return found > index ? data.substring(strIndex[0], strIndex[1]) : ""; +} + +void measureOpticalDensity(){ + digitalWrite(ODemitPower, HIGH); + analogReference(DEFAULT); + delay(1000); + analogRead(odRead); + delay(100); + ODMeasure = analogRead(odRead); + Serial.println(ODMeasure); + delay(10); + digitalWrite(ODemitPower, LOW); + delay(100); +} + +void measureFluoro() { + analogReference(DEFAULT); + delay(10); + + analogRead(readPin); + delay (1000); + + digitalWrite(actinicPin, HIGH); + + long timer = micros(); + + for (int i = 0; i < microCycles; i++) + { + microRead[i] = analogRead(readPin); + t[i] = micros() - timer; + } + + for (int o = 0; o < milliCycles; o++) + { + milliRead[o] = analogRead(readPin); + p[o] = micros() - timer; + delay(1); + } + + digitalWrite(actinicPin, LOW); + delay(10); + + int microMax = microRead[1]; + for (int u = 1; u < microCycles; u++){ + if(microRead[u] > microMax){ + microMax = microRead[u]; + } + } + + int milliMax = milliRead[0]; + for (int i = 0; i < milliCycles; i++){ + if(milliRead[i] > milliMax){ + milliMax = milliRead[i]; + } + } + + for (int q = 0; q < microCycles; q++) + { + float millCounts = t[q]; + float millicountsConverted = millCounts/1000; + float milliReal = millicountsConverted; + Serial.print(milliReal, 3); + Serial.print("\t"); + Serial.println(microRead[q]); + delay(1); + } + + for (int l = 0; l < milliCycles; l++) + { + float milliTime = p[l]; + float millitimeConverted = milliTime/1000; + float milliReal = millitimeConverted; + Serial.print(milliReal, 3); + Serial.print("\t"); + Serial.println(milliRead[l]); + delay(1); + } + +} + +void testADC(){ + for (int i = 0; i < 2000; i++){ + int value = analogRead(14); + Serial.println(value); + delay(100); + } +} + +void calibrateFo(){ + analogReference(DEFAULT); + delay(10); + analogRead(readPin); + delay(10); + for (int k = 0; k < 5; k++){ + digitalWrite(actinicPin, HIGH); + delayMicroseconds(20); + for (int i = 0; i <= 2; i++){ + foread = analogRead(readPin); + Serial.println((foread/4096) * 3.3); + } + digitalWrite(actinicPin, LOW); + Serial.print("Final Fo = "); + Serial.println((foread/4096) * 3.3); + delay(2000); + } +} + +void calibrateRise(){ + for (int i = 0; i < 200; i++){ + digitalWrite(actinicPin, HIGH); + delayMicroseconds(100); + digitalWrite(actinicPin, LOW); + delay(200); + } +} + +void measureLight(){ + digitalWrite(actinicPin, HIGH); + delay(3000); + digitalWrite(actinicPin, LOW); + delay(20); +} + +void loop(){ + if(Serial.available()){ + command = Serial.readStringUntil('\n'); + if(command.equals("MeasureOpticalDensity")){ + measureOpticalDensity(); + } + else if(command.equals("MeasureFluorescence")){ + measureFluoro(); + } + else if(command.equals("MF")){ + measureFluoro(); + } + else if(command.equals("CFo")){ + calibrateFo(); + } + else if(command.equals("Measure Light")){ + measureFluoro(); + } + else if(command.equals("ML")){ + measureLight(); + } + else if(command.equals("c")){ + calibrateRise(); + } + else if(command.equals("t")){ + testADC(); + } + else if(command.equals("RGBOFF")){ + rgblightsOFF(); + } + else if(command.startsWith("LED_light_ON")){ + String red_col = getValue(command, ';', 1); + String red_freq = getValue(command, ';', 2); + String green_col = getValue(command, ';', 3); + String green_freq = getValue(command, ';', 4); + String blue_col = getValue(command, ';', 5); + String blue_freq = getValue(command, ';', 6); + LED_light_on(red_col.toInt(), red_freq.toInt(), green_col.toInt(), + green_freq.toInt(), blue_col.toInt(), blue_freq.toInt()); + } + else if(command.startsWith("LED_light_OFF")){ + String col = getValue(command, ';', 1); + LED_light_off(col.toInt()); + } + else{ + delay(100); + } + } +} diff --git a/README.md b/README.md index b100697d..01a2e006 100644 --- a/README.md +++ b/README.md @@ -1,9 +1,13 @@ # Phenobottle -The Phenobottle is an open-source Raspberry Pi based tissue culture flask photobioreactor used for assessing growth and photophysiology in microalgae. +The Phenobottle is an open-source Raspberry Pi based tissue culture flask photobioreactor used for assessing growth and photophysiology in microalgae. ![Phenobottle](https://github.com/Phenobottle/Phenobottle/blob/master/Phenobottle%20Image.png) -Each Phenobottle has integrated physiological sensors such as optical density (which provides a proxy for the growth rate of the microalgal culture) and chlorophyll a fluorescence (which provides information regarding the light reactions of photosynthesis). +The first version of the Phenobottle (v0.1) was developed as a way of conducting high-time series physiological experiments with microalgae. Version 0.1 of the device features a range of environmental controls (light (quality/quantity), air(CO2) and mixing) and phyiological sensors (optical density (growth), chlorophyll fluorescence (photosynthesis)). + +### Click [Here](https://youtu.be/7FyAfFrLizw) The Phenobottle in Action + +[![PhenobottleGIF](https://j.gifs.com/mO31ZE.gif)](https://youtu.be/7FyAfFrLizw) The architecture of the Phenobottle from both a software and hardware perspective can be adjusted to accommodate new sensors, novel operational routines, graphing procedures etc. @@ -13,8 +17,252 @@ In this repository users can find: 3. Scripts for running the Phenobottles 4. Additional information such as a bill of materials etc. +## Downloading files from this repository +As the Phenobottle is being updated constantly, please download the released versions of the device from the releases tab (located on the right hand side of the screen). This contains all the files needed to 3D-print and control Phenobottles as well as some information about the required equipment. + +If you wish to clone the main repository you may; however, as there are new versions of the Phenobottle in the works, the files may not work as planned. + [![DOI](https://zenodo.org/badge/248412211.svg)](https://zenodo.org/badge/latestdoi/248412211) +# Raspberry Pi Commands +## Python dependencies +A number of packages are included in the [Phenobottle_RaspberryPi.py](Phenobottle_RaspberryPi.py). Some of which are already installed on a Raspberry Pi and as such wont be discussed. Others need to be installed using the Raspberry Pi terminal before compiling, these include: +### PyMySQL - For SQL connection +#### Terminal +```bash +pip3 install PyMySQL +``` +#### Python +```python +import pymysql.cursors +``` +This requires a Raspberry Pi to be configured as a dedicated SQL server. Information on how to do that can be found [here](https://pimylifeup.com/raspberry-pi-mysql/). It is recomended that you use a dedicated Raspberry Pi for the SQL server; however, if you are on a budget one of the Phenobottle's Raspberry Pi's can be used as a server. + +### Adafruit_MotorHAT - For I2C communication with the [Adafruit-MotorHAT](https://www.adafruit.com/product/2348) +#### Terminal +```bash +git clone https://github.com/adafruit/Adafruit-Motor-HAT-Python-Library.git +cd Adafruit-Motor-HAT-Python-Library +python3 setup.py install +``` +#### Python +```python +from Adafruit_MotorHAT import Adafruit_MotorHAT +``` +Unfortunatly this package is depreciated; however, its still fine to use for the Phenobottle. + +### Twilio - SMS messaging +#### Terminal +```bash +pip3 install twilio +``` +#### Python +```python +from twilio.rest import Client +``` +This package is not required if you do not want to recieve SMS updates. Twilio is a paid service that you must sign up for [here](https://www.twilio.com/). However, this is non-essential and the Phenobottle runs fine without this addition. This can be handy if you are away from The Phenobottle and need to know how the experiment is running. + +### pySerial - Serial (USB) communication with the microcontroller +#### Terminal +```bash +python3 -m pip install pyserial +``` +#### Python +```python +import serial +``` +Required for communication with the Teensy 3.6 microcontroller. Documentation on this package can be found [here](https://pyserial.readthedocs.io/en/latest/index.html). + +## Required setup in [Phenobottle_RaspberryPi.py](Phenobottle_RaspberryPi.py) +### Basic Setup +```python +PHENOBOTTLE_NUMBER = 3 # Arbitary number to differentiate between Phenobottles + + +INITIAL_OPTICAL_DENSITY = 888 # 12-bit value obtained by calibrating the optical density sensor + +ARDUINO_FLUORESCENCE_REFERENCE = 3.3 # Teensy microntrollers have 2 analog reference values 1.1 and 3.3 + +MIXING_SPEED = 32 # Mixing speed of the mixing motor (0 - 255) +BUBBLING_INTENSITY = 60 # Bubbling intensity of the bubbling motor (0 - 255) +LIGHT_INTENSITY = 220 # Overall light intensity of the grow lights (0 - 255) +PERISTALTIC_SPEED = 160 # Speed of the peristaltic pump (0 - 255) +EXPERIMENT_START_TIME = "07:00:00" # Specify when the experiment should start + +ser = serial.Serial('/dev/ttyACM0', 115200) # Serial port and baud rate of Teensy 3.6 microcontroller +``` +The `INITAL_OPTICAL_DENSITY` value is obtained by reading the raw value of optical density BEFORE adding microalgae to the flask. This can be acheived by writing "MeasureOpticalDensity" in the serial input of the Teensy 3.6 microcontroller (in the ArduinoIDE) or calling `Test.prelim_od()` in the python [file](Phenobottle_RaspberryPi.py). This is required to obtain a 100% transmission reading for which optical density measurments can be formulated from in the code. + +### SQL Setup +```python +connection = pymysql.connect(host='IP_ADDRESS', # IP address of Raspberry Pi SQL server + port=port_number, # Usually 3306 + user='Username', # Username of phpmyadmin + password='Password', # Password of phpmyadmin + db='Phenobottle No.%s' %PHENOBOTTLE_NUMBER, # Database name + charset='utf8mb4', + cursorclass=pymysql.cursors.DictCursor) +``` +For a SQL server connection this command must be compiled. See [here](https://pypi.org/project/PyMySQL/) for some documentation related to PyMySQL. For the database name you can change this to whichever name you choose; however, here we have premaded databases in out SQL server named "Phenobottle No.1", "Phenobottle No.2" ..., so that the `PHENOBOTTLE_NUMBER` corresponds with the correct database. + +### Messaging Setup +```python +acc_sid = "Account SSID" # Accound SSID from Twilio +auth_token = "Account Token" # Accound token from Twilio + +client = Client(acc_sid, auth_token) + +from_number = "Twilio Phone Number" # Designated twilio phone number +to_number = "Mobile Phone Number" # Your phone number +``` +As mentioned above, this part isn't really nessessary. However, information regarding the setup of SMS messaging can be found [here](https://www.twilio.com/). + +## Experimental procedure +### Measurment Intervals +The Phenobottle is capable of measuring/controling environmental variables at described intervals. This is done through this set of commands: +```python +""" Here we can check if the current time in minutes is devisable by our required measuring interval in this case 10 minutes. This means every 10 minutes a routine (day or night) will be run.""" +if datetime.datetime.now().minute % 10 == 0: + """ Here we can setup or morning (8:00) and night times (20:00)""" + if Experiment.experiment_schedule(datetime.time(8, 00), datetime.time(20, 00)): + NOW = datetime.datetime.now() + Experiment.day_routine() # Runs the day routine + else: + NOW = datetime.datetime.now() + Experiment.night_routine() # Runs the night routine +``` +### Routines +The day and the night routine are idential except for the fact that during the night the LED grow lights are constantly switched OFF. +```python +MotorsAndLights.light_on(None) # Turn on lights (daytime only) with desired color +MotorsAndLights.mixing_motor_on() # Mixing on at set speed +time.sleep(30) # Wait 30 seconds for mixing + +MotorsAndLights.mixing_motor_off() # Mixing off +MotorsAndLights.light_off() # Lights off to ensure no noise from PWM interferes with measurments +Sensors.measure_optical_density() # Measures optical density +Sensors.measure_fluorescence() # Measures fluorescence + +MotorsAndLights.light_on(None) # Turn on lights (daytime only) with desired color +MotorsAndLights.peristaltic_motor_on() # Pump on to clear cuvette +Database.upload() # Upload to SQL server +Excel.upload() # Upload to local .csv file +time.sleep(20) # Wait for pump to clear cuvette + +MotorsAndLights.peristaltic_motor_off() # Stop pump +MotorsAndLights.bubbling_motor_on() # Bubble main culture flask on +MotorsAndLights.mixing_motor_on() # Mixing on to homogenate culture +time.sleep(30) # Wait 30 seconds for bubbling and mixing + +MotorsAndLights.bubbling_motor_off() # Bubbling off +MotorsAndLights.mixing_motor_off() # Mixing off +``` +This procedure is completely customisable, i.e. methods can be swapped around and the length of certain processes such as the bubbling time can be increased easily. + +# [Teensy 3.6](https://www.pjrc.com/store/teensy36.html) Microcontroller +Analog functions are carried out by a Teensy 3.6 microcontroller which is connected to the Rasberry Pi via a serial (USB) connection. These analog functions include the measurement of optical density (growth), temperture and chlorophyll fluorescence (photosynthesis). + +The Teensy microcontroller can be programed with the [Arduino IDE](https://www.arduino.cc/en/Main/Software) on the Raspberry Pi if the additional software provided by [PJRC](https://www.pjrc.com/) called [Teensyduino](https://www.pjrc.com/teensy/teensyduino.html) is installed. + +The Teensy [code](Phenobottle_Teensy.ino) is flashed to the Teensy board and doesn't need modifying as it acts as a slave to the Raspberry Pi. + +## Teensy Setup +```c +void setup() { + Serial.begin(115200); // Baud rate must match the baud rate in the .py script + analogReadResolution(12); // Set the resolution of the analog measurments (can be up-to 16-bit but this sacrifices speed) + analogReference(DEFAULT); // Default (3.3) or 1.1 V reference voltage for the analog measurements + ... +} +``` +## Teensy Slave Setup +The Teensy is constantly checking if there is requests in its serial port from the Raspberry Pi. It does this by the main loop: +```c +void loop(){ + if(Serial.available()){ // Check serial port + command = Serial.readStringUntil('\n'); // Read request + if(command.equals("MeasureOpticalDensity")){ // Request to measure optical density + measureOpticalDensity(); // Measure + } + else if(command.equals("MeasureFluorescence")){ // Request to measure fluorescence + measureFluoro(); // Measure + } + ... +} +``` +This simple design makes it easy to add new requests from the Raspberry Pi [.py](Phenobottle_RaspberryPi.py) file and the Teensy [.ino](Phenobottle_Teensy.ino) file by adding a new `else if` statement to this loop. + +## Fluorescence Measurment +### Setup +The Teensy in its current configuration takes a one second measurement of chlorophyll fluorescence, this however, can be adjusted as described below. The first part is to create arrays of different sizes corresponding to the time between measurements of fluorescence. The one second measurement is comprised of over 2000 data points which are comprised of baseline, fast (microsecond timescales) and slow (millisecond timescales) measurments: +1. Baseline - Reads fluorescence intensity while the actinic LED is switched off (mostly used for debugging purposes) +2. Micro - Comprised of microsecond measurments (~8 us between measurments) of a set amount +3. Milli - Comprised of millisecond measurements (~1 ms between measurements) of a set amount +```c +int baseRead[5]; // Create a baseline array with 5 values +int microRead [1000]; // Create a microread array with 1000 values +int milliRead[1000]; // Create a milliread array with 1000 values + +int baseCycles = 5; // Set the size of the array (can just use sizeof(baseRead)) +int microCycles = 1000; // Set the size of the array (can just use sizeof(microRead)) +int milliCycles = 1000; // Set the size of the array (can just use sizeof(milliRead)) + +float h[5]; // Create an identially sized array of baseRead for the timepoints +float t[1000]; // Create an identially sized array of microRead for the timepoints +float p[1000]; // Create an identially sized array of milliRead for the timepoints +``` +### Read +The measurment procedure is as follows: +```c +void measureFluoro() { + analogReference(DEFAULT); // Set the required analog reference voltage + delay(10); // Pause + analogRead(readPin); // Single read to initiate the reference voltage + delay (1000); // Pause + digitalWrite(actinicPin, HIGH); // Turn on actinic LED + long timer = micros(); // Start the timer + ... +``` +The measurment is carried out in two seperate parts (1) `microRead` and (2) `milliRead` (`baseRead` is not used for measuring). The `analogRead` values are stored in their respective arrays with corresponding timestamps in their own array. +```c +for (int i = 0; i < microCycles; i++) // Micro reads for desired length + { + microRead[i] = analogRead(readPin); // Store analog values + t[i] = micros() - timer; // Stores timestamps + // No delay needed here as we want to measure FAST + } +for (int o = 0; o < milliCycles; o++) // Milli reads for desired length + { + milliRead[o] = analogRead(readPin); // Store analog values + p[o] = micros() - timer; // Stores timestamps + delay(1); // Millisecond delay between measurments + } + ... +``` +Any processing (converting timestamps from `micros` to milliseconds) of the arrays after this measurment is carried out after the actinic LED is switched off. This speeds up the `analogRead` function as we only need to store array values while measuring. + +## Optical Density +Measurment of optical density is really simple. +```c +void measureOpticalDensity(){ + digitalWrite(ODemitPower, HIGH); // Set the emitting IR-LED ON + analogReference(DEFAULT); // Set the analog reference voltage + delay(1000); + analogRead(odRead); // Read to initalise the reference voltage + delay(100); + ODMeasure = analogRead(odRead); // Read optical density + Serial.println(ODMeasure); // Print out OD for the Raspberry Pi to read + delay(10); + digitalWrite(ODemitPower, LOW); // Turn off the IR-LED + delay(100); +} +``` + +# Future of The Phenobottle +The Phenobottle is currently being updated to version 0.2. This will feature several environmental controls that were not featured the original version (v0.1) of the device. Additonal environmental sensors will also feature in version 0.2 along with a graphical user interface. + +If you would like to learn more about the progress of this version please email: [harvey_bates@hotmail.com](harvey_bates@hotmail.com) or [harvey.bates@student.uts.edu.au](harvey.bates@student.uts.edu.au) + # Open-Source Licensing The software in this work is licensed under GNU AFFERO GENERAL PUBLIC LICENSE