From ce7e9001c830e36935a13e550ed9781a3f78ad8c Mon Sep 17 00:00:00 2001 From: Jingyan Ling <jingyanling2018@u.northwestern.edu> Date: Mon, 29 Jul 2019 11:23:01 -0700 Subject: [PATCH] update lib code --- README.md | 44 +- .../__pycache__/dsn_module.cpython-36.pyc | Bin 0 -> 2381 bytes .../__pycache__/dsn_rule.cpython-36.pyc | Bin 0 -> 1178 bytes .../__pycache__/dsnwritier.cpython-36.pyc | Bin 0 -> 3958 bytes dsn_python/dsn_module.py | 109 ++ dsn_python/dsn_rule.py | 42 + dsn_python/dsnwritier.py | 243 +++ dsn_python/dsnwritier.pyc | Bin 0 -> 2091 bytes dsn_python/test_dsn_python.py | 75 + dsn_python/testdsn.dsn | 52 + kicad_board.dsn | 1369 +++-------------- kicad_board.rules | 76 - kicad_board_routed.dsn | 1234 +++++++++++++++ 13 files changed, 2003 insertions(+), 1241 deletions(-) create mode 100644 dsn_python/__pycache__/dsn_module.cpython-36.pyc create mode 100644 dsn_python/__pycache__/dsn_rule.cpython-36.pyc create mode 100644 dsn_python/__pycache__/dsnwritier.cpython-36.pyc create mode 100644 dsn_python/dsn_module.py create mode 100644 dsn_python/dsn_rule.py create mode 100644 dsn_python/dsnwritier.py create mode 100644 dsn_python/dsnwritier.pyc create mode 100644 dsn_python/test_dsn_python.py create mode 100644 dsn_python/testdsn.dsn delete mode 100644 kicad_board.rules create mode 100644 kicad_board_routed.dsn diff --git a/README.md b/README.md index ec13a1f..3631c27 100644 --- a/README.md +++ b/README.md @@ -384,6 +384,9 @@ - Draw lines directly in `pcbnew` by using line information in `dxf` - Create a python script serving as Python API by drawing everything on `pcbnew` +- Dependencies: + - ezdxf + - pykicad - Successfully import `dxf` as outlines from script -  @@ -399,4 +402,43 @@ - Potential Solutions: - 1. Explore existing supported export API, and see if modification can be made based on existing API structure - - 2. Learn `dsn` file specification and python library to generate `dsn` file based on design information \ No newline at end of file + - 2. Learn `dsn` file specification and python library to generate `dsn` file based on design information + +### 07/24/2019 + +- Pipeline change: (skipping `KiCAD`) + - Use (`dxf`+ `pretty` (footprint library) + `net` information ) to generate `dsn` file + - Send `dsn` file to auto-router, save as new `dsn` file + - Read `dsn` file `wiring` information and draw it back on `dxf` + +- Analysis on `dsn` file format: +~~~ + |--pcb + | |--parser + | |--resolution + | |--unit + | |--structure + | | |--layer 1 + | | |-- ... + | | |--boundary + | | |--keepout 1 + | | |-- ... + | | |--via + | | |--rule + | |--placement + | | |--component 1 + | | |-- ... + | |--library + | | |--image [ref**] 1 + | | | |--outline + | | | |--pin + | | |-- ... + | | |--padstack + | | |--... + | |--network + | | |--net [name] 1 + | | | |--pins + | | |-- ... + | |--wiring + | | |--wire +~~~ \ No newline at end of file diff --git a/dsn_python/__pycache__/dsn_module.cpython-36.pyc b/dsn_python/__pycache__/dsn_module.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..765aff856af9170e04400c4ecb60a3633bba594c GIT binary patch literal 2381 zcma)7OLH7G5FU+YW@q-{EFmEYPXpmG0qod;6M;&K6mXyx7x8JSlo&?Z^_Y1fX$#vm zIVDvo4*3WE1N<djIpr_pM7MT!@j7;uRi&@HXY^?4>u%i{47ykU{`yhVb)0{l6U_tt z9(45+0Czaaon7Y#hr66UbvPB|2_3s&d)x=xw>AYk;2p3#*7m>-c?5Q3ZJ&1^I&tp> ztmwqVkXtEgix#$u`VAD}j0tzfE+=CuJlyrz1?gGo3;!DI*?tSGgne5(M9HIL*zMRI zclhv`Ga-D9UwRsi!)K1?j3e;kH4}YT6?IjLQky7Us-6^+t=KgkRwq&kX?&JwEe(F( zHg2MgH_5Zw^eUOb)I?`hX}mHiMC==K+mJ0owhg&6c6UaxD+h2E<JWnTijnarvMRMC z@Gb2CU_*%~r_j|lKm%vK;q<J$>onvs)s7~O^TgeE8`99mZM?>B0`5K!2rvU@p`#bL zW*kT#gv8}!gaD*EvWL(Ih^g__tQJz@W+r4TD>Kbl+%cXK`D8xZPP9v$noUf^SehqF zG4_x1a(8pDD#Ye~R!$F-a`Qoz&I-5?wW(%BAtbD=g)CVvikaM$Ra!BTi&V=jP4Z2y zN>(50y{fcoQSn(WHtIup6+HV8x(WasvPL{|ba_eC#?obPBrn4NdzYiQi-$oD7&BeQ z=F5TJXY9{elDB`TPNv4w;y|0AoE5(VxgGR!3QC~TJy9ffe=}&$nTkATOkT&05Mm;) zp?(7a?+}wjy$ui&kGdrAq0<05%6T7pc4P{JmTkek`Vl^zjC7218|6MkyAQcEmmQQm zJf<1R$T;AA8_`|fgNW|fhz=nN2B!1#Oy^lCOsASFHvEoyb)xsyRW>b?-1vWGT<<|- z;ss0e#0=WeOzA{wi0t`fCQ2StyM$cB!IuC=DV`Y{N(?u=2lXbvN|?G0<>WbS1JoVC zLLb2x`7y#L0Px`o>PWV|_1Kedpnhstd*zk`d+!(_-#}L`fJ2Uk?V<mV4LTZ);z*)T z@+|~pNWO!xj_@AB`v|y}`~cx>j?uYKp(}J1ICfp)LSJ$lSoc@B#Vf(49sr!=c3H*z zwu%KJSX40{98;)NJ<DsvyDOEdZ|F`|8d?K{08Ag&Vuip6zh)&D2PQx@(XaCM^7UV; zS;>FB|7a)SZ0oD-FWIcP5SbLJ4%DPoGH=1@<Yx$<11!kIyILW0IYQ!uMgFXkxdVR| zWcGKma)n6w1<vc9N#?t_+d9I<8AT88L03b7HfwFB2Bc3V{ym#boO3Rln56-}gpj3k zCcBnNeEUwmIXx47Usbx6P<4!-70FZ>3h&BEGIv`8ifu8=bynwMLFP^HLB;^*B%ysh zoPBsXrtn%kb{o{G)u|>LY<NQ~o3AG4ZCrb~LF}2xz72V%^gK^DZ~*4ZB2Q1vI5STt zFutwiebR?YzC8X4$xy)0C)gGU8(0@gS@d%kw>?d;OZvXVzoR%XgZl6fc!>Ch5(l+3 r^!~$LTc+pb$nItjyetdz0)Yj{gm>rf%ePp7R0t5d!<)nF!z=#*b&t^j literal 0 HcmV?d00001 diff --git a/dsn_python/__pycache__/dsn_rule.cpython-36.pyc b/dsn_python/__pycache__/dsn_rule.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..2f388616b908083da37a765322a2ff98fef510cd GIT binary patch literal 1178 zcmaJ=J8u**5VpOK+e_|32yYOgL5dck94I9y3Id7liX_!Z$XeD;ZiDxM?G?G`s1hj^ z;t!;w;xD<SK=}))m~p~!5`mHY&Di4|&*R(met+Rx_Tt^wfRG<#PC~FZVVS1@f(WX} z4tYxi6TvYNfuu*lh`~M-5$q$s4@A68(#{!tK~n1IlN_zzf)P>727n|ZD#(ZlItpZn zQBRqSAR1^9i5ReR%0{v1oseBB7R2Ilchor{AsHp`M&ET`E1Bu6%BAb(Gc&H*^1ak4 za~<Af+DPppo>>dZP8xZz1D+5q*X4C%i@M4b9MNZvKL5Fn5)_-m9Gc+;HKvW)+y$`2 z(kVG&`)o?5ko*@$p*fHc8>UQ0a6=~mY2YH$Hd1T+(j}Z1Rbe@Y^Uz4OJ9m>pCOlV} zF`R!V=UanuUCP0JQSD8#YVfAc+fr863`|>=QbQaob;Xq|TRqTqUUR8rZgr7oY9LI- zn~5FQl{a;(<XSV)*C2-*unYqr^l)X?y0uwiO!vVzOuLwDm6einx4?N>3kU*skMoah zrY=2!&Gvi^&`fz?U2O8PEHnR->tEKBOQks1D-hR1O7(TLF%{nz?5tS=NN5-^8i%l0 zFYvw`j%R{>Mfr<4$Qv0Jw4fpc_ITca{eR|!TTqe<u{$pMR0uoPF$C9`4)DWoU?^p) zY|$tQCyVIr0i2x!{DU5k!8IlOWXkq{AfK6~mU*fKS5f65hQt@s&~-gIRAH>fZs-RH zIJ7j-%V__(eAz<ZQ{P9twhGH&EJAziu#e@<5B3o_V6gfoXnhOeHo_eQ&sgNBzK4L( z^nHY@r-qr~$8%FlU}}sm#XjpHRMT%JAApTw&B%jByWrLKj-Tj7S+lqoFJKKWd3iyz N4gZ^AAqibx`32Eh`+)!e literal 0 HcmV?d00001 diff --git a/dsn_python/__pycache__/dsnwritier.cpython-36.pyc b/dsn_python/__pycache__/dsnwritier.cpython-36.pyc new file mode 100644 index 0000000000000000000000000000000000000000..e0f4d92ed1c145a9a3eba0cd9019a8b1c13527ff GIT binary patch literal 3958 zcmb7HTW{RP73T0x?yj_wuW=GbP+Fv$*1FhAqg<N0w$Y+UAh?N<25bX@;>=2vxg<Lz zBkf|H7a8!A(LbO+(ErlsKFn*M{L&wwr=D}T7i}Y_Er~gEhMXDB%=euO?{zx<s~4Yq z8{g2he`*&l6ZHE~$}tG8ah7UNnwn9qr~1GMjDZ=L44)gR9$3HAxXG>O8n=XfY6K3n zZSFwZp|%TcmwV9msO>@9=PhWrsO>|$%{$QUP`kyAue9FMD_DWnV~V}s)0Ouy9~5~e zvPyZs&GV{|NmlK}*kyWI6Qz6viqHbawLs@AFoel<Zk*}Df@MMt%QO=<k@lGx*u3*X z>oeZs?dM+LywFT7aB&IBejLeCNM#pI?f<3DD-p(rk%UD#;pDLuMpY$Mr^=s-tPJxk z%=>-m!a90p&@L-j>_JFFgX?7x#Uf0yrp?1<jB*e2vI^sft2Sxh30Wq2cFxw74%O1< z$-{`hSFSyd_cL*Pe*1%s?TveP`u+Wn`giYszq|8&y<cZly}i4!wX?AuPY(lY8;Sv? zd<#USRcx%C>PPyRjrFlHHaUAqSi*+&y`Cu@=p}s=Efj4KJwsV#T?i?0KIMk6{-g@S zo~6uEr2R|BFy)0|oJM6ChJVw}pKKoH1F?AoM=^}D%}04$4*<?`v#bXLAz{W!$Sh37 zpq865kMmHZB8H=jqjZy(Sy&9K!#qRvSSD2><VG=+tFWFopp<ynn%!nP+@s|NwvE|3 zP1%9hatXyUiY|zrhdarlfe1t8hv6XSb&7gB1aP8s^2Vs517%j?qzdezD8npQb{QXv zK}26yoyjg^k)~lNui^A4dQ4tL{W=OfH$2!9TP`yVo!L}uqit#oZ|bwaXao+g^3Nb% z$LLdF@&hn9C=L`CibpK>f%iUY!1dOd0W5C^4(}4vm-sR;-6f`b0Q`!wzKDiG23Crd zGI8%cohU3l_&RJkImn_ku!{T``wfy4!2|oK9sn(rS)-L$)vypJ%1SaWPJlCP3(gH5 zDYuY0bgPDv!CZSWdKtX1#*-m-Zh%s0N9>tV!HXlt*@v30g{;ymjTmb*jOF@E1APxH z+t_=B6ZQ=G4ped-#k=^xl((T$9<3w<7ReQShirj&S5W_t5fiWoJwgooegvf?6qwDH z*l39kX-+F$u0fBzo-e_VYVsxuWTU)=;!O~N^F;!@j#7!nCx3<lXO?fHxST7v^q)d0 zkv>zdTqnNhY{@ir+S~$D@DTAT?}NC=6s`jc3~rM51OEr!&qhW78ysLmi`d|Ce}N5c z<vz&kj7M^)-2I6*a*L=sTr1*z<?Txj_KF~1q=<<f;K@&54T^0~utse0!W!|$y8HzQ z!WyuBJ=TD<K0{i*2V-D%94dc~x+#08)0xiUH5z#5-7ZD;F^rretB+Qu8=iy9UW2Q0 z&{Z8^RLJVVJ~+ky9a>!Qukq99e*jt?E&_JRHW_Va0akKq*!>$2uYnaJFTra<%xz$H zsJ0>IBHZ2?xB-IP;VT69GVd<Hy{eqgg(&j6QqI#xAq>ex77(_|!wBq{><l3wFaQTc zT;2hp*j>f$O*nAQ*3R|yb>e|?iaZ@2<QZ8^JoRi?qgy0WAn$(|p2ijgC~HCk2vAnT z05V@%!(A9gO9D4QG}yuiWa{<>E?hR?QfibiywpKx`lvfOm^mv<`AeK0-H!Ya#Ttko zaR3tCn%qP|H2H7FkBk2rN{KFH#t>^7E}DAPlGty7D;TWtD*pjukt-ZhpoBpf09PO& zN4ud>%fc3Ews5$^T?!SRaA&$NyqVsD^a-*w>azqReHyuZW<ifG@N9*z@++b>?N4v7 z!n13lz3}Y%nH_Za4Sw@L2l>Y2zSY!ypBVZke+wA8#NXz(pKHM~g{dz1`*)P_sLVzy zj~_l*TYn0f0T1`{Nb+@wM51V=d@0I2tt&{LAS^+eqHKz3<&z1O11}uZX_XYIkniKL zZ4iO+T@on=L|C0v3#2zCWCcLG8Oh~69JK>Nv7MeCc#z=LaaBtJQ|ASK83LtOq>$)g ziqkkmFP>(wfs-ct5}m7+459<kvoD)lenuboAkgc<D@@1sM%UKAPNF|;-P!&&+}+yx zcxP)XtOx7y6nU&MTO(sCKpAUC+SojRZ10&#x<R@@x<$H0x=p%Gx<|T4x=*@aK@7ea zfyd_98rx%M?2f&$59aC5&C{0{H08%A2$WAyo1L@#6q~<7fqqcl2LU-U1Zv19(*#bE zOn4XHkqNgN6aN1vz0|h<4)d1izO+u8&2Gb|v=LLs`8{d_)n;}dlS6=Uc(|AlJ%mys zL}PXYze%U8Tpd%&@{B=(&G3(dn=g&OUVWyIG1=CRj8pBDG3}3#y8J==Qv0S!VXVE8 zxdAz?V#gz^uKIU&;g`o1S)6molzS%XygW{-LuEn^l_?9eUtn65hs}=#xV<Z|4swf% z_2)?iWuD4`j{PJR|H1`RKw&;}S(lAkxWUQW-pZvZ4CWP-$24vXJ#-Uv(fug%ORx-y zCn7PjUvO~0$L5cuIEe2MN{OznNpW0LXKg61jTm6-hq7&A(%jr_>WBL3iamKYeW$bT zO^M&=wS!JEBu}wXijzVHE}V6U79IGgH97x$56W(y1jcW^dO{gFC0p}N)3g`Pc$P3K a_tR$RXGoPvfX8!o_3rKNt?rHPyZ;7hxfYQC literal 0 HcmV?d00001 diff --git a/dsn_python/dsn_module.py b/dsn_python/dsn_module.py new file mode 100644 index 0000000..a4bfd5a --- /dev/null +++ b/dsn_python/dsn_module.py @@ -0,0 +1,109 @@ +#!/usr/bin/env python3 +from pykicad.sexpr import * + +class Component(AST): + tag='component' + schema={ + '0':{ + '_parser':text, + '_attr':'ref1', + # '_multiple':True + }, + 'place':{ + '0':{ + '_parser':text, + '_attr':'ref2', + }, + '1':{ + '_parser':number + number, + '_attr':'at' + }, + '2':{ + '_parser':text, + '_attr':'flip' + }, + '3':{ + '_parser':integer, + '_attr':'orientation' + }, + 'PN':{ + '_parser':text, + '_attr':'name' + } + } + } + def __init__(self,ref1,at,ref2=None,flip='front',orientation=0,name=None): + at[1]=-at[1] #flip y for dsn + ref2=ref1 + super(Component,self).__init__(ref1=ref1,ref2=ref2,at=at,flip=flip,orientation=orientation,name=name) + +class Outline(AST): + tag='outline' + schema={ + '0':{ + 'path signal':{ + '0':{ + '_parser':integer, + '_attr':'width' + }, + '1':{ + '_parser':number, + '_attr':'outline_start' + }, + '2':{ + '_parser':number, + '_attr':'outline_end' + } + } + + } + } + def __init__(self,width=None,outline_start=None,outline_end=None): + super(Outline,self).__init__(width=width,outline_start=outline_start,outline_end=outline_end) + +class Pin(AST): + tag='pin' + schema={ + '0':{ + '_parser':text, + '_attr':'pin_type', + }, + '1':{ + '_parser':integer, + '_attr':'pin_index', + }, + '2':{ + '_parser':number+number, + '_attr':'pin_at', + } + } + def __init__(self,pin_index=None,pin_at=None,pin_type='Round[A]Pad_1524_um'): + super(Pin,self).__init__(pin_type=pin_type,pin_index=pin_index,pin_at=pin_at) + + +class Footprint(AST): + tag='image' + schema={ + '0':{ + '_parser':text, + '_attr':'ref', + }, + 'outline':{ + '_parser':Outline, + '_multiple':True + }, + 'pin':{ + '_parser':Pin, + '_multiple':True + + } + + } + def __init__(self,ref=None,outline=None,pin=None): + outline=self.init_list(outline,[]) + pin=self.init_list(pin,[]) + super(Footprint,self).__init__(ref=ref,outline=outline,pin=pin) + + + +# def load_module(file) \ No newline at end of file diff --git a/dsn_python/dsn_rule.py b/dsn_python/dsn_rule.py new file mode 100644 index 0000000..8af63ef --- /dev/null +++ b/dsn_python/dsn_rule.py @@ -0,0 +1,42 @@ + + +from pykicad.sexpr import * +class Clearance(AST): + tag='clearance' + schema={ + '0':{ + '_parser':number, + '_attr':'number' + }, + '1':{ + 'type':{ + '_parser':text, + '_attr':'typex' + }, + '_optional':True + }, + } + def __init__(self,number=200.1,typex=None): + super(Clearance,self).__init__(number=number,typex=typex) + +class Rule(AST): + tag='rule' + schema={ + '0':{ + 'width':{ + '_parser': number + }, + }, + '1':{ + 'clearance':{ + '_parser':Clearance, + '_multiple':True + }, + + }, + } + + def __init__(self,width=250,clearance=None): + clearance=self.init_list(clearance,[]) + + super(Rule,self).__init__(width=width,clearance=clearance) \ No newline at end of file diff --git a/dsn_python/dsnwritier.py b/dsn_python/dsnwritier.py new file mode 100644 index 0000000..8a7b153 --- /dev/null +++ b/dsn_python/dsnwritier.py @@ -0,0 +1,243 @@ +#!/usr/bin/env python3 +from pykicad.sexpr import * +from dsn_rule import * +from dsn_module import Component,Footprint +import dsn_module as module + +class Parser(AST): + tag = 'parser' + schema = { + 'string_quote' : { + '_parser' : text, + '_attr' : 'quote_char' + }, + 'space_in_quoted_tokens' : { + '_parser': yes_no, + '_attr' : 'tokens_on_off' + }, + 'host_cad':{ + '_parser': text + }, + 'host_version':{ + '_parser':text + } + } + def __init__(self, + quote_char='\"', + tokens_on_off='on', + host_cad= "KiCad's Pcbnew", + host_version="5.1.3-ffb9f22~84~ubuntu18.04.1"): + + super(Parser,self).__init__(quote_char=quote_char, + tokens_on_off=tokens_on_off, + host_cad=host_cad, + host_version=host_version) + + +class Layer(AST): + tag='layer' + schema={ + '0':{ + '_parser': text, + '_attr': 'name' + }, + 'type':{ + '_parser': Literal('signal') | 'power' | 'mixed' | 'jumper' | 'user', + '_attr': 'typex' + }, + 'property':{ + 'index':{ + '_parser':text, + '_attr':'index' + }, + }, + } + index_ctr=0 + + def __init__(self,name,typex='signal',index=None): + index=Layer.index_ctr + Layer.index_ctr+=1 + super(Layer,self).__init__(name=name,typex=typex,index=index) + + +class Boundary(AST): + tag='boundary' + schema={ + 'path pcb':{ + '0':{ + '_parser':integer, + '_attr':'brd_index' + }, + '1':{ + '_parser': number, + '_attr': 'path' + }, + + } + } + + index_ctr=0 + def __init__(self,path,brd_index=None): + brd_index=Boundary.index_ctr + Boundary.index_ctr+=1 + + super(Boundary,self).__init__(path=path,brd_index=brd_index) + +class Keepout(AST): + tag='keepout' + schema={ + '0':{ + '0':{ + '_parser':text, + '_attr':'name' + }, + + ' ':{ + '0': { + '_parser':text, + '_attr':'shape' + }, + '1':{ + '_parser':text, + '_attr':'typex' + }, + '2':{ + '_parser':integer, + '_attr':'brd_index' + }, + '3':{ + '_parser': number, + '_attr':'path' + }, + }, + }, + } + def __init__(self,path,name='\"\"',brd_index=0,shape='polygon',typex='signal'): + + super(Keepout,self).__init__(path=path,name=name,brd_index=brd_index,shape=shape,typex=typex) + + + +class Dsn(AST): + tag = 'PCB "kicad_board"' + schema = { + '0':{ + 'parser' : { + '_parser': Parser + }, + }, + '1':{ + 'resolution':{ + '_parser': text + integer + }, + }, + '2':{ + 'unit':{ + '_parser': text + }, + }, + '3':{ + 'structure':{ + '0':{ + 'layers':{ + '_parser':Layer, + '_multiple':True + }, + }, + '1':{ + 'boundary':{ + '_parser':Boundary, + '_multiple':True + }, + }, + '2':{ + 'keepout':{ + '_parser': Keepout, + '_multiple': True + }, + }, + '3':{ + 'via':{ + '_parser': text, + '_attr': 'via_txt' + }, + }, + '4':{ + 'rule':{ + '_parser': Rule + } + } + }, + '_optional':True + }, + '4':{ + 'placement':{ + '0':{ + 'component':{ + '_parser':Component, + '_multiple':True + }, + }, + }, + }, + '5':{ + 'library':{ + '0':{ + 'image':{ + '_parser': Footprint, + '_multiple': True + }, + } + + # 'padstack':{ + # '_parser':Padstack, + # '_multiple': True + # } + + } + } + + + + } + + def __init__(self, + resolution=['um',10], + unit='um', + parser=None, + layers=None, + boundary=None, + keepout=None, + via_txt='"Via[0-1]_800:400_um"', + rule=None, + component=None, + image=None + ): + + layers=self.init_list(layers,[]) + parser=self.init_list(parser,[]) + boundary=self.init_list(boundary,[]) + keepout=self.init_list(keepout,[]) + component=self.init_list(component,[]) + image=self.init_list(image,[]) + + + super(Dsn,self).__init__( + resolution=resolution, + unit=unit, + parser=parser, + layers=layers, + boundary=boundary, + keepout=keepout, + via_txt=via_txt, + rule=rule, + component=component, + image=image + ) + + def to_file(self, path): + if not path.endswith('.dsn'): + path += '.dsn' + with open(path, 'w', encoding='utf-8') as f: + f.write(self.to_string()) + diff --git a/dsn_python/dsnwritier.pyc b/dsn_python/dsnwritier.pyc new file mode 100644 index 0000000000000000000000000000000000000000..b54d2f136e0a7eed1bceb4c152ea8ba6585e81cf GIT binary patch literal 2091 zcmcgs+io015UrlQ_>$OBtPl+1A(#hNL3rOB6d@Giya6j`YzeSHt;tNUcbwVjWx5w< zrS+5j&d2fra88Zafe(mhr)ztvFI9EwRCWH|+Wa$l{(CMrPY3@mFv4?)0<V!u<fKT% z85tWXI&v*?CGzWOB1Lzl?cHiSQuO6`u!iI1KX?WPvq<qY_92h5Cb;I-UKgsD7~v-f zCvplCkcpJ~I$USu0On!%0QL@`UnzU7vM&dxT`AV2SeIf$t`j-!NqRik#EoilrY0j@ zvNv<C{W15^*?f{UvB#w>#wOm!EX1a)&#bP;EhwUY>*`>AZT)y0A9Kqr%bhLjc2i;7 z9f4u)#RSsVIicj><%byI3y7#-ECFF6=ZMP45)mh|OaN+P5c~0fhej!pN$InGtBYYi zb4{v%u4BQ%fiha#Zs7jls_}mgLL&o;Z~`%$_^BJ7BeX?U4`2CwK6P~r!!VytU4y%# zYie7$>AV>>KKIsDE(a8ORt<|#+u0&ce9h@aQ^wLY`?E!Q4;MeA1)7)ct{E`Nv30M` zrq0?(u&tf?VqWo+;l=DM@<ep+qUI>%6F1HDI`#Oy_;9`xNG2ydg6NyR>EO3!?j@Al z-HuULUxhlyx;{*Yvh_zy{>N4$rMV?$(lQd<1uwzUKG}JOY;WqjF4uiIg%V^1*Vjl^ z;ur|z(c#M{dv5`HVc+<yDfUw0m6B5}z0wU%w;_Hg53}OS@Z>0eQ@abL-F#XS?VOHs zkiCZ(!9sv_=a79lQ~F)@SDM~R(_^LLq8ol{@!j$h6}Z%pmKxPk1H)}sz^))~X>g>e zUsaH@R%=76Z{kBlU`mL_1z*i$>1&NmNl;}A*Mxx*gHbBIt1`rtL8Uts1WGNXEY*~$ zOFyDuS*9OT5UX?-;x0%;e}2OV^iI}y%ucccDy@DwonZ!97Mh9Im;h5`0>yu2Bz&eV zz{s;pBX!#zv?Ty<@aHNqe|;*K+9A*|n8OYr=SlN3V1NCKVox5Av<UZ6pn+B|zS3N{ zI`;*NK5)xCj=%n<1(+r3>LOf}aiX>8XJ`l9#PW8L35eddsniyui0jr_hBGXm@f|>{ z)PX1CvT`0a13ee>z-*aaGaB$KCC^jVMEZb&uBEId^>*ZIr@To&hw8n@I{R?#g@pJ7 zBaoS^_OktgO{QZuFz#=S+Emc{*+PqcKe%_ZMjOxf$0uzdyy&jHR?2+a_UiAn>986% IJC7gz3$Fyj*#H0l literal 0 HcmV?d00001 diff --git a/dsn_python/test_dsn_python.py b/dsn_python/test_dsn_python.py new file mode 100644 index 0000000..86f6e43 --- /dev/null +++ b/dsn_python/test_dsn_python.py @@ -0,0 +1,75 @@ +#!/usr/bin/env python3 +import dsnwritier +from pykicad import pcb + +test=dsnwritier.Dsn() + +############################################################################### +layers=[ + dsnwritier.Layer('F.Cu'), + dsnwritier.Layer('B.Cu') +] + + +bdata=[137735, -31864.8, 165736, -31864.8, 165736, -113335, 137735, -113335, + 137735, -113864, 160735, -113864, 160735, -151336, 150736, -151336, + 150736, -151865, 160735, -151865, 160735, -211335, 150736, -211335, + 150736, -211865, 169735, -211865, 169735, -249335, 96264.4,-249335, + 96264.4, -211865, 138264, -211865, 138264, -211335, 37264.4, -211335, + 37264.4, -151865, 138264, -151865, 138264, -151336, 87264.4, -151336, + 87264.4, -113864, 119265, -113864, 119265, -113335, 264.583, -113335, + 264.583, -31864.8, 78264.5, -31864.8, 78264.5, -264.632, 137735, -264.632, + 137735, -31864.8] + +kdata1=[138725, -221865, 138725, -244336, 150275, -244336, 150275, -221865, + 138725, -221865] +kdata2=[98235.3, -224531, 98764.5, -224531, 98764.5, -219905, 103236, -224376, + 103236, -236824, 98764.5, -241294, 98764.5, -236669, 98235.3, -236669, + 98235.3, -242572, 103610, -237198, 103765, -237198, 103765, -237043, + 103874, -236933, 103765, -236824, 103765, -224376, 103874, -224266, + 103765, -224157, 103765, -224002, 103610, -224002, 98235.3, -218628, + 98235.3, -224531] + +####################################################################################### +parsers= dsnwritier.Parser() + +boundary=dsnwritier.Boundary(bdata) + +keepout=[ + dsnwritier.Keepout(kdata1), + dsnwritier.Keepout(kdata2)] + +rule=dsnwritier.Rule() +clearance=[ + dsnwritier.Clearance(200.1), + dsnwritier.Clearance(200.1,'default_smd'), + dsnwritier.Clearance(50,'smd_smd')] +rule.clearance=clearance + +component=[dsnwritier.Component('U1',[103000,48000],name='"DEV"'), + dsnwritier.Component('J1',[103000,48000],name='"DEV"')] + + +image1_outline=[ + dsnwritier.module.Outline(width=120,outline_start=[-7620, 11430],outline_end=[7540, 11430]), + dsnwritier.module.Outline(width=120,outline_start=[-7620, 11430],outline_end=[7540, -13570]), + dsnwritier.module.Outline(width=120,outline_start=[-7620, -13570],outline_end=[-7620, -13570]), + dsnwritier.module.Outline(width=120,outline_start=[-7620, -13570],outline_end=[-7620, 11430])] +# image1_outline=[dsnwritier.module.Outline(120)] +image1_pin=[ + dsnwritier.module.Pin(1,[-6350, 10160]), + dsnwritier.module.Pin(2,[-6350, 7620])] + +image1=dsnwritier.Footprint('U1',image1_outline,image1_pin) +image=[image1] + +######################################################################################## +test.parser=parsers +test.layers=layers +test.boundary=boundary +test.keepout=keepout +test.rule=rule +test.component=component +test.image=image + +test.to_file('testdsn.dsn') diff --git a/dsn_python/testdsn.dsn b/dsn_python/testdsn.dsn new file mode 100644 index 0000000..14da9ab --- /dev/null +++ b/dsn_python/testdsn.dsn @@ -0,0 +1,52 @@ + +(PCB "kicad_board" +(parser + (string_quote ") + (space_in_quoted_tokens on) + (host_cad "KiCad's Pcbnew") + (host_version 5.1.3-ffb9f22~84~ubuntu18.04.1)) + (resolution um 10) + (unit um) + (structure +(layer F.Cu + (type signal) + (property + (index 0))) +(layer B.Cu + (type signal) + (property + (index 1))) +(boundary + (path pcb 0 137735 -31864.8000000000 165736 -31864.8000000000 165736 -113335 137735 -113335 137735 -113864 160735 -113864 160735 -151336 150736 -151336 150736 -151865 160735 -151865 160735 -211335 150736 -211335 150736 -211865 169735 -211865 169735 -249335 96264.4000000000 -249335 96264.4000000000 -211865 138264 -211865 138264 -211335 37264.4000000000 -211335 37264.4000000000 -151865 138264 -151865 138264 -151336 87264.4000000000 -151336 87264.4000000000 -113864 119265 -113864 119265 -113335 264.5830000000 -113335 264.5830000000 -31864.8000000000 78264.5000000000 -31864.8000000000 78264.5000000000 -264.6320000000 137735 -264.6320000000 137735 -31864.8000000000)) +(keepout "" + ( polygon signal 0 138725 -221865 138725 -244336 150275 -244336 150275 -221865 138725 -221865)) +(keepout "" + ( polygon signal 0 98235.3000000000 -224531 98764.5000000000 -224531 98764.5000000000 -219905 103236 -224376 103236 -236824 98764.5000000000 -241294 98764.5000000000 -236669 98235.3000000000 -236669 98235.3000000000 -242572 103610 -237198 103765 -237198 103765 -237043 103874 -236933 103765 -236824 103765 -224376 103874 -224266 103765 -224157 103765 -224002 103610 -224002 98235.3000000000 -218628 98235.3000000000 -224531)) + (via "Via[0-1]_800:400_um") +(rule + (width 250) +(clearance 200.1000000000) +(clearance 200.1000000000 + (type default_smd)) +(clearance 50 + (type smd_smd)))) + (placement +(component U1 + (place U1 103000 -48000 front 0 + (PN "DEV"))) +(component J1 + (place J1 103000 -48000 front 0 + (PN "DEV")))) + (library +(image U1 +(outline + (path signal 120 -7620 11430 7540 11430)) +(outline + (path signal 120 -7620 11430 7540 -13570)) +(outline + (path signal 120 -7620 -13570 -7620 -13570)) +(outline + (path signal 120 -7620 -13570 -7620 11430)) +(pin Round[A]Pad_1524_um 1 -6350 10160) +(pin Round[A]Pad_1524_um 2 -6350 7620)) +)) \ No newline at end of file diff --git a/kicad_board.dsn b/kicad_board.dsn index bf4e54d..aa33aa9 100644 --- a/kicad_board.dsn +++ b/kicad_board.dsn @@ -1,1208 +1,249 @@ - -(PCB "kicad_board" +(pcb /home/jingyan/Documents/summer_intern_lemur/roco_electrical/kicad_board.dsn (parser (string_quote ") (space_in_quoted_tokens on) (host_cad "KiCad's Pcbnew") (host_version "5.1.3-ffb9f22~84~ubuntu18.04.1") - (generated_by_freeroute) ) (resolution um 10) + (unit um) (structure - (boundary - (rect pcb 164.6 -249435.0 169835.0 -164.6) - ) - (boundary - (polygon signal 0 - 96264.4 -249335.0 - 169735.0 -249335.0 - 169735.0 -211865.0 - 150736.0 -211865.0 - 150736.0 -211335.0 - 160735.0 -211335.0 - 160735.0 -151865.0 - 150736.0 -151865.0 - 150736.0 -151336.0 - 160735.0 -151336.0 - 160735.0 -113864.0 - 137735.0 -113864.0 - 137735.0 -113335.0 - 165736.0 -113335.0 - 165736.0 -31864.8 - 137735.0 -31864.8 - 137735.0 -264.6 - 78264.5 -264.6 - 78264.5 -31864.8 - 264.6 -31864.8 - 264.6 -113335.0 - 119265.0 -113335.0 - 119265.0 -113864.0 - 87264.4 -113864.0 - 87264.4 -151336.0 - 138264.0 -151336.0 - 138264.0 -151865.0 - 37264.4 -151865.0 - 37264.4 -211335.0 - 138264.0 -211335.0 - 138264.0 -211865.0 - 96264.4 -211865.0 - ) - ) - (snap_angle - fortyfive_degree - ) - (via "Via[0-1]_800:400_um") - (control - (via_at_smd off) - ) - (rule - (width 1000.0) - (clear 200.2) - (clear 125.0 (type smd_to_turn_gap)) - (clear 50.0 (type smd_smd)) - ) (layer F.Cu (type signal) + (property + (index 0) + ) ) (layer B.Cu (type signal) - ) - (autoroute_settings - (fanout off) - (autoroute on) - (postroute on) - (vias on) - (via_costs 50) - (plane_via_costs 5) - (start_ripup_costs 100) - (start_pass_no 4) - (layer_rule F.Cu - (active on) - (preferred_direction vertical) - (preferred_direction_trace_costs 1.0) - (against_preferred_direction_trace_costs 2.5) - ) - (layer_rule B.Cu - (active on) - (preferred_direction horizontal) - (preferred_direction_trace_costs 1.0) - (against_preferred_direction_trace_costs 1.7) - ) - ) - (keepout - (polygon B.Cu 0 - 101735.0 -31764.5 - 114264.0 -31764.5 - 114264.0 -13235.4 - 113735.0 -13235.4 - 113735.0 -31235.4 - 102265.0 -31235.4 - 102265.0 -13235.4 - 101735.0 -13235.4 - ) - (clearance_class default) - ) - (keepout - (polygon F.Cu 0 - 101735.0 -31764.5 - 114264.0 -31764.5 - 114264.0 -13235.4 - 113735.0 -13235.4 - 113735.0 -31235.4 - 102265.0 -31235.4 - 102265.0 -13235.4 - 101735.0 -13235.4 - ) - (clearance_class default) - ) - (keepout - (polygon B.Cu 0 - 31485.4 -45614.8 - 32514.8 -45614.8 - 32514.8 -35585.5 - 31485.4 -35585.5 - ) - (clearance_class default) - ) - (keepout - (polygon F.Cu 0 - 31485.4 -45614.8 - 32514.8 -45614.8 - 32514.8 -35585.5 - 31485.4 -35585.5 - ) - (clearance_class default) - ) - (keepout - (polygon B.Cu 0 - 150265.0 -50835.2 - 153735.0 -50835.2 - 153735.0 -42364.4 - 150265.0 -42364.4 - ) - (clearance_class default) - ) - (keepout - (polygon F.Cu 0 - 150265.0 -50835.2 - 153735.0 -50835.2 - 153735.0 -42364.4 - 150265.0 -42364.4 - ) - (clearance_class default) - ) - (keepout - (polygon B.Cu 0 - 6985.6 -61932.7 - 8014.5 -61932.7 - 8014.5 -45994.6 - 6985.6 -45994.6 - ) - (clearance_class default) - ) - (keepout - (polygon F.Cu 0 - 6985.6 -61932.7 - 8014.5 -61932.7 - 8014.5 -45994.6 - 6985.6 -45994.6 - ) - (clearance_class default) - ) - (keepout - (polygon B.Cu 0 - 163500.0 -66792.3 - 163610.0 -66682.8 - 163765.0 -66682.8 - 163765.0 -66527.8 - 163874.0 -66418.2 - 163765.0 -66308.7 - 163765.0 -61153.4 - 163236.0 -61153.4 - 163236.0 -65779.5 - 158764.0 -61308.4 - 158764.0 -46618.9 - 163236.0 -42147.9 - 163236.0 -46773.9 - 163765.0 -46773.9 - 163765.0 -41618.7 - 163874.0 -41509.1 - 163765.0 -41399.6 - 163765.0 -41244.6 - 163610.0 -41244.6 - 163500.0 -41135.0 - 163391.0 -41244.6 - 163236.0 -41244.6 - 163236.0 -41399.6 - 158390.0 -46244.8 - 158235.0 -46244.8 - 158235.0 -46399.3 - 158126.0 -46509.3 - 158235.0 -46618.9 - 158235.0 -61308.4 - 158126.0 -61418.0 - 158235.0 -61527.6 - 158235.0 -61682.6 - 158390.0 -61682.6 - 163236.0 -66527.8 - 163236.0 -66682.8 - 163391.0 -66682.8 - ) - (clearance_class default) - ) - (keepout - (polygon F.Cu 0 - 163500.0 -66792.3 - 163610.0 -66682.8 - 163765.0 -66682.8 - 163765.0 -66527.8 - 163874.0 -66418.2 - 163765.0 -66308.7 - 163765.0 -61153.4 - 163236.0 -61153.4 - 163236.0 -65779.5 - 158764.0 -61308.4 - 158764.0 -46618.9 - 163236.0 -42147.9 - 163236.0 -46773.9 - 163765.0 -46773.9 - 163765.0 -41618.7 - 163874.0 -41509.1 - 163765.0 -41399.6 - 163765.0 -41244.6 - 163610.0 -41244.6 - 163500.0 -41135.0 - 163391.0 -41244.6 - 163236.0 -41244.6 - 163236.0 -41399.6 - 158390.0 -46244.8 - 158235.0 -46244.8 - 158235.0 -46399.3 - 158126.0 -46509.3 - 158235.0 -46618.9 - 158235.0 -61308.4 - 158126.0 -61418.0 - 158235.0 -61527.6 - 158235.0 -61682.6 - 158390.0 -61682.6 - 163236.0 -66527.8 - 163236.0 -66682.8 - 163391.0 -66682.8 + (property + (index 1) ) - (clearance_class default) ) - (keepout - (polygon B.Cu 0 - 81014.7 -74585.7 - 107485.0 -74585.7 - 107485.0 -67114.8 - 81014.7 -67114.8 - ) - (clearance_class default) - ) - (keepout - (polygon F.Cu 0 - 81014.7 -74585.7 - 107485.0 -74585.7 - 107485.0 -67114.8 - 81014.7 -67114.8 - ) - (clearance_class default) - ) - (keepout - (polygon B.Cu 0 - 6985.6 -99205.4 - 8014.5 -99205.4 - 8014.5 -83267.3 - 6985.6 -83267.3 - ) - (clearance_class default) - ) - (keepout - (polygon F.Cu 0 - 6985.6 -99205.4 - 8014.5 -99205.4 - 8014.5 -83267.3 - 6985.6 -83267.3 - ) - (clearance_class default) - ) - (keepout - (polygon B.Cu 0 - 163500.0 -104065.0 - 163610.0 -103955.0 - 163765.0 -103955.0 - 163765.0 -103800.0 - 163874.0 -103691.0 - 163765.0 -103581.0 - 163765.0 -98426.1 - 163236.0 -98426.1 - 163236.0 -103052.0 - 158764.0 -98581.1 - 158764.0 -83891.6 - 163236.0 -79420.5 - 163236.0 -84046.6 - 163765.0 -84046.6 - 163765.0 -78891.3 - 163874.0 -78781.8 - 163765.0 -78672.2 - 163765.0 -78517.2 - 163610.0 -78517.2 - 163500.0 -78407.7 - 163391.0 -78517.2 - 163236.0 -78517.2 - 163236.0 -78672.2 - 158390.0 -83517.4 - 158235.0 -83517.4 - 158235.0 -83672.5 - 158126.0 -83782.0 - 158235.0 -83891.6 - 158235.0 -98581.1 - 158126.0 -98690.7 - 158235.0 -98800.7 - 158235.0 -98955.2 - 158390.0 -98955.2 - 163236.0 -103800.0 - 163236.0 -103955.0 - 163391.0 -103955.0 - ) - (clearance_class default) - ) - (keepout - (polygon F.Cu 0 - 163500.0 -104065.0 - 163610.0 -103955.0 - 163765.0 -103955.0 - 163765.0 -103800.0 - 163874.0 -103691.0 - 163765.0 -103581.0 - 163765.0 -98426.1 - 163236.0 -98426.1 - 163236.0 -103052.0 - 158764.0 -98581.1 - 158764.0 -83891.6 - 163236.0 -79420.5 - 163236.0 -84046.6 - 163765.0 -84046.6 - 163765.0 -78891.3 - 163874.0 -78781.8 - 163765.0 -78672.2 - 163765.0 -78517.2 - 163610.0 -78517.2 - 163500.0 -78407.7 - 163391.0 -78517.2 - 163236.0 -78517.2 - 163236.0 -78672.2 - 158390.0 -83517.4 - 158235.0 -83517.4 - 158235.0 -83672.5 - 158126.0 -83782.0 - 158235.0 -83891.6 - 158235.0 -98581.1 - 158126.0 -98690.7 - 158235.0 -98800.7 - 158235.0 -98955.2 - 158390.0 -98955.2 - 163236.0 -103800.0 - 163236.0 -103955.0 - 163391.0 -103955.0 - ) - (clearance_class default) - ) - (keepout - (polygon B.Cu 0 - 138725.0 -108336.0 - 150275.0 -108336.0 - 150275.0 -85864.6 - 138725.0 -85864.6 - ) - (clearance_class default) - ) - (keepout - (polygon F.Cu 0 - 138725.0 -108336.0 - 150275.0 -108336.0 - 150275.0 -85864.6 - 138725.0 -85864.6 - ) - (clearance_class default) - ) - (keepout - (polygon B.Cu 0 - 65725.7 -108336.0 - 77274.4 -108336.0 - 77274.4 -85864.6 - 65725.7 -85864.6 - ) - (clearance_class default) - ) - (keepout - (polygon F.Cu 0 - 65725.7 -108336.0 - 77274.4 -108336.0 - 77274.4 -85864.6 - 65725.7 -85864.6 - ) - (clearance_class default) - ) - (keepout - (polygon B.Cu 0 - 93985.5 -139448.0 - 95014.4 -139448.0 - 95014.4 -125752.0 - 93985.5 -125752.0 - ) - (clearance_class default) - ) - (keepout - (polygon F.Cu 0 - 93985.5 -139448.0 - 95014.4 -139448.0 - 95014.4 -125752.0 - 93985.5 -125752.0 - ) - (clearance_class default) - ) - (keepout - (polygon B.Cu 0 - 138725.0 -141336.0 - 150275.0 -141336.0 - 150275.0 -118865.0 - 138725.0 -118865.0 - ) - (clearance_class default) - ) - (keepout - (polygon F.Cu 0 - 138725.0 -141336.0 - 150275.0 -141336.0 - 150275.0 -118865.0 - 138725.0 -118865.0 - ) - (clearance_class default) - ) - (keepout - (polygon B.Cu 0 - 158500.0 -144308.0 - 158609.0 -144198.0 - 158764.0 -144198.0 - 158764.0 -144043.0 - 158874.0 -143933.0 - 158764.0 -143824.0 - 158764.0 -138669.0 - 158235.0 -138669.0 - 158235.0 -143295.0 - 153765.0 -138824.0 - 153765.0 -126376.0 - 158235.0 -121905.0 - 158235.0 -126531.0 - 158764.0 -126531.0 - 158764.0 -121376.0 - 158874.0 -121267.0 - 158764.0 -121157.0 - 158764.0 -121002.0 - 158609.0 -121002.0 - 158500.0 -120892.0 - 158390.0 -121002.0 - 158235.0 -121002.0 - 158235.0 -121157.0 - 153391.0 -126002.0 - 153236.0 -126002.0 - 153236.0 -126157.0 - 153126.0 -126267.0 - 153236.0 -126376.0 - 153236.0 -138824.0 - 153126.0 -138933.0 - 153236.0 -139043.0 - 153236.0 -139198.0 - 153391.0 -139198.0 - 158235.0 -144043.0 - 158235.0 -144198.0 - 158390.0 -144198.0 - ) - (clearance_class default) - ) - (keepout - (polygon F.Cu 0 - 158500.0 -144308.0 - 158609.0 -144198.0 - 158764.0 -144198.0 - 158764.0 -144043.0 - 158874.0 -143933.0 - 158764.0 -143824.0 - 158764.0 -138669.0 - 158235.0 -138669.0 - 158235.0 -143295.0 - 153765.0 -138824.0 - 153765.0 -126376.0 - 158235.0 -121905.0 - 158235.0 -126531.0 - 158764.0 -126531.0 - 158764.0 -121376.0 - 158874.0 -121267.0 - 158764.0 -121157.0 - 158764.0 -121002.0 - 158609.0 -121002.0 - 158500.0 -120892.0 - 158390.0 -121002.0 - 158235.0 -121002.0 - 158235.0 -121157.0 - 153391.0 -126002.0 - 153236.0 -126002.0 - 153236.0 -126157.0 - 153126.0 -126267.0 - 153236.0 -126376.0 - 153236.0 -138824.0 - 153126.0 -138933.0 - 153236.0 -139043.0 - 153236.0 -139198.0 - 153391.0 -139198.0 - 158235.0 -144043.0 - 158235.0 -144198.0 - 158390.0 -144198.0 - ) - (clearance_class default) - ) - (keepout - (polygon B.Cu 0 - 43985.4 -192114.0 - 45014.8 -192114.0 - 45014.8 -171085.0 - 43985.4 -171085.0 - ) - (clearance_class default) - ) - (keepout - (polygon F.Cu 0 - 43985.4 -192114.0 - 45014.8 -192114.0 - 45014.8 -171085.0 - 43985.4 -171085.0 - ) - (clearance_class default) - ) - (keepout - (polygon B.Cu 0 - 158500.0 -196974.0 - 158609.0 -196865.0 - 158764.0 -196865.0 - 158764.0 -196709.0 - 158874.0 -196600.0 - 158764.0 -196490.0 - 158764.0 -191336.0 - 158235.0 -191336.0 - 158235.0 -195961.0 - 153765.0 -191490.0 - 153765.0 -171709.0 - 158235.0 -167239.0 - 158235.0 -171864.0 - 158764.0 -171864.0 - 158764.0 -165961.0 - 153391.0 -171335.0 - 153236.0 -171335.0 - 153236.0 -171490.0 - 153126.0 -171600.0 - 153236.0 -171709.0 - 153236.0 -191710.0 - 158235.0 -196709.0 - 158235.0 -196865.0 - 158390.0 -196865.0 - ) - (clearance_class default) - ) - (keepout - (polygon F.Cu 0 - 158500.0 -196974.0 - 158609.0 -196865.0 - 158764.0 -196865.0 - 158764.0 -196709.0 - 158874.0 -196600.0 - 158764.0 -196490.0 - 158764.0 -191336.0 - 158235.0 -191336.0 - 158235.0 -195961.0 - 153765.0 -191490.0 - 153765.0 -171709.0 - 158235.0 -167239.0 - 158235.0 -171864.0 - 158764.0 -171864.0 - 158764.0 -165961.0 - 153391.0 -171335.0 - 153236.0 -171335.0 - 153236.0 -171490.0 - 153126.0 -171600.0 - 153236.0 -171709.0 - 153236.0 -191710.0 - 158235.0 -196709.0 - 158235.0 -196865.0 - 158390.0 -196865.0 - ) - (clearance_class default) - ) - (keepout - (polygon B.Cu 0 - 129515.0 -208585.0 - 136985.0 -208585.0 - 136985.0 -182115.0 - 129515.0 -182115.0 - ) - (clearance_class default) - ) - (keepout - (polygon F.Cu 0 - 129515.0 -208585.0 - 136985.0 -208585.0 - 136985.0 -182115.0 - 129515.0 -182115.0 - ) - (clearance_class default) - ) - (keepout - (polygon B.Cu 0 - 161985.0 -237448.0 - 163014.0 -237448.0 - 163014.0 -223752.0 - 161985.0 -223752.0 - ) - (clearance_class default) - ) - (keepout - (polygon F.Cu 0 - 161985.0 -237448.0 - 163014.0 -237448.0 - 163014.0 -223752.0 - 161985.0 -223752.0 - ) - (clearance_class default) - ) - (keepout - (polygon B.Cu 0 - 98235.3 -242572.0 - 103610.0 -237198.0 - 103765.0 -237198.0 - 103765.0 -237043.0 - 103874.0 -236933.0 - 103765.0 -236824.0 - 103765.0 -224376.0 - 103874.0 -224266.0 - 103765.0 -224157.0 - 103765.0 -224002.0 - 103610.0 -224002.0 - 98235.3 -218628.0 - 98235.3 -224531.0 - 98764.5 -224531.0 - 98764.5 -219905.0 - 103236.0 -224376.0 - 103236.0 -236824.0 - 98764.5 -241294.0 - 98764.5 -236669.0 - 98235.3 -236669.0 - ) - (clearance_class default) - ) - (keepout - (polygon F.Cu 0 - 98235.3 -242572.0 - 103610.0 -237198.0 - 103765.0 -237198.0 - 103765.0 -237043.0 - 103874.0 -236933.0 - 103765.0 -236824.0 - 103765.0 -224376.0 - 103874.0 -224266.0 - 103765.0 -224157.0 - 103765.0 -224002.0 - 103610.0 -224002.0 - 98235.3 -218628.0 - 98235.3 -224531.0 - 98764.5 -224531.0 - 98764.5 -219905.0 - 103236.0 -224376.0 - 103236.0 -236824.0 - 98764.5 -241294.0 - 98764.5 -236669.0 - 98235.3 -236669.0 - ) - (clearance_class default) - ) - (keepout - (polygon B.Cu 0 - 138725.0 -244336.0 - 150275.0 -244336.0 - 150275.0 -221865.0 - 138725.0 -221865.0 - ) - (clearance_class default) - ) - (keepout - (polygon F.Cu 0 - 138725.0 -244336.0 - 150275.0 -244336.0 - 150275.0 -221865.0 - 138725.0 -221865.0 - ) - (clearance_class default) + (boundary + (path pcb 0 137735 -31864.8 165736 -31864.8 165736 -113335 137735 -113335 + 137735 -113864 160735 -113864 160735 -151336 150736 -151336 + 150736 -151865 160735 -151865 160735 -211335 150736 -211335 + 150736 -211865 169735 -211865 169735 -249335 96264.4 -249335 + 96264.4 -211865 138264 -211865 138264 -211335 37264.4 -211335 + 37264.4 -151865 138264 -151865 138264 -151336 87264.4 -151336 + 87264.4 -113864 119265 -113864 119265 -113335 264.583 -113335 + 264.583 -31864.8 78264.5 -31864.8 78264.5 -264.632 137735 -264.632 + 137735 -31864.8) + ) + (keepout "" (polygon signal 0 138725 -221865 138725 -244336 150275 -244336 150275 -221865 + 138725 -221865)) + (keepout "" (polygon signal 0 98235.3 -224531 98764.5 -224531 98764.5 -219905 103236 -224376 + 103236 -236824 98764.5 -241294 98764.5 -236669 98235.3 -236669 + 98235.3 -242572 103610 -237198 103765 -237198 103765 -237043 + 103874 -236933 103765 -236824 103765 -224376 103874 -224266 + 103765 -224157 103765 -224002 103610 -224002 98235.3 -218628 + 98235.3 -224531)) + (keepout "" (polygon signal 0 161985 -223752 161985 -237448 163014 -237448 163014 -223752 + 161985 -223752)) + (keepout "" (polygon signal 0 129515 -182115 129515 -208585 136985 -208585 136985 -182115 + 129515 -182115)) + (keepout "" (polygon signal 0 153391 -171335 153236 -171335 153236 -171490 153126 -171600 + 153236 -171709 153236 -191710 158235 -196709 158235 -196865 + 158390 -196865 158500 -196974 158609 -196865 158764 -196865 + 158764 -196709 158874 -196600 158764 -196490 158764 -191336 + 158235 -191336 158235 -195961 153765 -191490 153765 -171709 + 158235 -167239 158235 -171864 158764 -171864 158764 -165961 + 153391 -171335)) + (keepout "" (polygon signal 0 43985.4 -171085 43985.4 -192114 45014.8 -192114 45014.8 -171085 + 43985.4 -171085)) + (keepout "" (polygon signal 0 158390 -121002 158235 -121002 158235 -121157 153391 -126002 + 153236 -126002 153236 -126157 153126 -126267 153236 -126376 + 153236 -138824 153126 -138933 153236 -139043 153236 -139198 + 153391 -139198 158235 -144043 158235 -144198 158390 -144198 + 158500 -144308 158609 -144198 158764 -144198 158764 -144043 + 158874 -143933 158764 -143824 158764 -138669 158235 -138669 + 158235 -143295 153765 -138824 153765 -126376 158235 -121905 + 158235 -126531 158764 -126531 158764 -121376 158874 -121267 + 158764 -121157 158764 -121002 158609 -121002 158500 -120892 + 158390 -121002)) + (keepout "" (polygon signal 0 138725 -118865 138725 -141336 150275 -141336 150275 -118865 + 138725 -118865)) + (keepout "" (polygon signal 0 93985.5 -125752 93985.5 -139448 95014.4 -139448 95014.4 -125752 + 93985.5 -125752)) + (keepout "" (polygon signal 0 65725.7 -85864.6 65725.7 -108336 77274.4 -108336 77274.4 -85864.6 + 65725.7 -85864.6)) + (keepout "" (polygon signal 0 138725 -85864.6 138725 -108336 150275 -108336 150275 -85864.6 + 138725 -85864.6)) + (keepout "" (polygon signal 0 163391 -78517.2 163236 -78517.2 163236 -78672.2 158390 -83517.4 + 158235 -83517.4 158235 -83672.5 158126 -83782 158235 -83891.6 + 158235 -98581.1 158126 -98690.7 158235 -98800.7 158235 -98955.2 + 158390 -98955.2 163236 -103800 163236 -103955 163391 -103955 + 163500 -104065 163610 -103955 163765 -103955 163765 -103800 + 163874 -103691 163765 -103581 163765 -98426.1 163236 -98426.1 + 163236 -103052 158764 -98581.1 158764 -83891.6 163236 -79420.5 + 163236 -84046.6 163765 -84046.6 163765 -78891.3 163874 -78781.8 + 163765 -78672.2 163765 -78517.2 163610 -78517.2 163500 -78407.7 + 163391 -78517.2)) + (keepout "" (polygon signal 0 6985.62 -83267.3 6985.62 -99205.4 8014.5 -99205.4 8014.5 -83267.3 + 6985.62 -83267.3)) + (keepout "" (polygon signal 0 81014.7 -67114.8 81014.7 -74585.7 107485 -74585.7 107485 -67114.8 + 81014.7 -67114.8)) + (keepout "" (polygon signal 0 163391 -41244.6 163236 -41244.6 163236 -41399.6 158390 -46244.8 + 158235 -46244.8 158235 -46399.3 158126 -46509.3 158235 -46618.9 + 158235 -61308.4 158126 -61418 158235 -61527.6 158235 -61682.6 + 158390 -61682.6 163236 -66527.8 163236 -66682.8 163391 -66682.8 + 163500 -66792.3 163610 -66682.8 163765 -66682.8 163765 -66527.8 + 163874 -66418.2 163765 -66308.7 163765 -61153.4 163236 -61153.4 + 163236 -65779.5 158764 -61308.4 158764 -46618.9 163236 -42147.9 + 163236 -46773.9 163765 -46773.9 163765 -41618.7 163874 -41509.1 + 163765 -41399.6 163765 -41244.6 163610 -41244.6 163500 -41135 + 163391 -41244.6)) + (keepout "" (polygon signal 0 6985.62 -45994.6 6985.62 -61932.7 8014.5 -61932.7 8014.5 -45994.6 + 6985.62 -45994.6)) + (keepout "" (polygon signal 0 150265 -42364.4 150265 -50835.2 153735 -50835.2 153735 -42364.4 + 150265 -42364.4)) + (keepout "" (polygon signal 0 31485.4 -35585.5 31485.4 -45614.8 32514.8 -45614.8 + 32514.8 -35585.5 31485.4 -35585.5)) + (keepout "" (polygon signal 0 101735 -13235.4 101735 -31764.5 114264 -31764.5 114264 -13235.4 + 113735 -13235.4 113735 -31235.4 102265 -31235.4 102265 -13235.4 + 101735 -13235.4)) + (keepout "" (polygon signal 0 105736 -17735.4 105736 -27264.5 110265 -27264.5 110265 -26735.3 + 106265 -26735.3 106265 -18264.6 110265 -18264.6 110265 -17735.4 + 105736 -17735.4)) + (via "Via[0-1]_800:400_um") + (rule + (width 250) + (clearance 200.1) + (clearance 200.1 (type default_smd)) + (clearance 50 (type smd_smd)) ) ) - (placement +50 (placement (component U1 - (place - U1 103000.0 -48000.0 front 90 - (pin 1 (clearance_class default)) - (pin 2 (clearance_class default)) - (pin 3 (clearance_class default)) - (pin 4 (clearance_class default)) - (pin 5 (clearance_class default)) - (pin 6 (clearance_class default)) - (pin 7 (clearance_class default)) - (pin 8 (clearance_class default)) - (pin 9 (clearance_class default)) - (pin 10 (clearance_class default)) - (pin 11 (clearance_class default)) - (pin 12 (clearance_class default)) - (pin 13 (clearance_class default)) - (pin 14 (clearance_class default)) - (pin 15 (clearance_class default)) - (pin 16 (clearance_class default)) - (pin 17 (clearance_class default)) - (pin 18 (clearance_class default)) - (pin 19 (clearance_class default)) - (pin 20 (clearance_class default)) - (pin 21 (clearance_class default)) - (pin 22 (clearance_class default)) - (pin 23 (clearance_class default)) - (pin 24 (clearance_class default)) - (pin 25 (clearance_class default)) - (pin 26 (clearance_class default)) - (pin 27 (clearance_class default)) - (pin 28 (clearance_class default)) - (pin 29 (clearance_class default)) - (pin 30 (clearance_class default)) - ) + (place U1 103000 -48000 front 90 (PN "ESP12F-Devkit-V3")) ) (component J1 - (place - J1 100000.0 -87000.0 front 270 - (pin 1 (clearance_class default)) - (pin 2 (clearance_class default)) - (pin 3 (clearance_class default)) - (pin 4 (clearance_class default)) - (pin 5 (clearance_class default)) - (pin 6 (clearance_class default)) - (pin 7 (clearance_class default)) - (pin 8 (clearance_class default)) - (pin 9 (clearance_class default)) - (pin 10 (clearance_class default)) - ) + (place J1 100000 -87000 front 270 (PN "mpu-9250")) ) ) (library (image U1 - (side front) - (pin "Round[A]Pad_1524_um" 1 -12065.0 19050.0) - (pin "Round[A]Pad_1524_um" 2 -12065.0 16510.0) - (pin "Round[A]Pad_1524_um" 3 -12065.0 13970.0) - (pin "Round[A]Pad_1524_um" 4 -12065.0 11430.0) - (pin "Round[A]Pad_1524_um" 5 -12065.0 8890.0) - (pin "Round[A]Pad_1524_um" 6 -12065.0 6350.0) - (pin "Round[A]Pad_1524_um" 7 -12065.0 3810.0) - (pin "Round[A]Pad_1524_um" 8 -12065.0 1270.0) - (pin "Round[A]Pad_1524_um" 9 -12065.0 -1270.0) - (pin "Round[A]Pad_1524_um" 10 -12065.0 -3810.0) - (pin "Round[A]Pad_1524_um" 11 -12065.0 -6350.0) - (pin "Round[A]Pad_1524_um" 12 -12065.0 -8890.0) - (pin "Round[A]Pad_1524_um" 13 -12065.0 -11430.0) - (pin "Round[A]Pad_1524_um" 14 -12065.0 -13970.0) - (pin "Round[A]Pad_1524_um" 15 -12065.0 -16510.0) - (pin "Round[A]Pad_1524_um" 16 11430.0 -16510.0) - (pin "Round[A]Pad_1524_um" 17 11430.0 -13970.0) - (pin "Round[A]Pad_1524_um" 18 11430.0 -11430.0) - (pin "Round[A]Pad_1524_um" 19 11430.0 -8890.0) - (pin "Round[A]Pad_1524_um" 20 11430.0 -6350.0) - (pin "Round[A]Pad_1524_um" 21 11430.0 -3810.0) - (pin "Round[A]Pad_1524_um" 22 11430.0 -1270.0) - (pin "Round[A]Pad_1524_um" 23 11430.0 1270.0) - (pin "Round[A]Pad_1524_um" 24 11430.0 3810.0) - (pin "Round[A]Pad_1524_um" 25 11430.0 6350.0) - (pin "Round[A]Pad_1524_um" 26 11430.0 8890.0) - (pin "Round[A]Pad_1524_um" 27 11430.0 11430.0) - (pin "Round[A]Pad_1524_um" 28 11430.0 13970.0) - (pin "Round[A]Pad_1524_um" 29 11430.0 16510.0) - (pin "Round[A]Pad_1524_um" 30 11430.0 19050.0) - (outline - (polygon signal 0 - 3778.9 -22935.0 - 11461.1 -22935.0 - 11505.0 -22891.1 - 11505.0 -22828.9 - 11461.1 -22785.0 - 3778.9 -22785.0 - 3735.0 -22828.9 - 3735.0 -22891.1 - ) - ) - (outline - (polygon signal 0 - -5531.1 18195.0 - 5531.1 18195.0 - 5575.0 18238.9 - 5575.0 18301.1 - 5531.1 18345.0 - -5531.1 18345.0 - -5575.0 18301.1 - -5575.0 18238.9 - ) - ) - (outline - (polygon signal 0 - 5468.9 18195.0 - 5531.1 18195.0 - 5575.0 18238.9 - 5575.0 25431.1 - 5531.1 25475.0 - 5468.9 25475.0 - 5425.0 25431.1 - 5425.0 18238.9 - ) - ) - (outline - (polygon signal 0 - -5531.1 18195.0 - -5468.9 18195.0 - -5425.0 18238.9 - -5425.0 25431.1 - -5468.9 25475.0 - -5531.1 25475.0 - -5575.0 25431.1 - -5575.0 18238.9 - ) - ) - (outline - (polygon signal 0 - -3831.1 -23935.0 - -3768.9 -23935.0 - -3725.0 -23891.1 - -3725.0 -18098.9 - -3768.9 -18055.0 - -3831.1 -18055.0 - -3875.0 -18098.9 - -3875.0 -23891.1 - ) - ) - (outline - (polygon signal 0 - -3831.1 -18205.0 - 3831.1 -18205.0 - 3875.0 -18161.1 - 3875.0 -18098.9 - 3831.1 -18055.0 - -3831.1 -18055.0 - -3875.0 -18098.9 - -3875.0 -18161.1 - ) - ) - (outline - (polygon signal 0 - 3768.9 -23935.0 - 3831.1 -23935.0 - 3875.0 -23891.1 - 3875.0 -18098.9 - 3831.1 -18055.0 - 3768.9 -18055.0 - 3725.0 -18098.9 - 3725.0 -23891.1 - ) - ) - (outline - (polygon signal 0 - -3831.1 -23935.0 - 3831.1 -23935.0 - 3875.0 -23891.1 - 3875.0 -23828.9 - 3831.1 -23785.0 - -3831.1 -23785.0 - -3875.0 -23828.9 - -3875.0 -23891.1 - ) - ) - (outline - (polygon signal 0 - 12668.9 -21665.0 - 12731.1 -21665.0 - 12775.0 -21621.1 - 12775.0 24161.1 - 12731.1 24205.0 - 12668.9 24205.0 - 12625.0 24161.1 - 12625.0 -21621.1 - ) - ) - (outline - (polygon signal 0 - -13366.1 -21665.0 - -13303.9 -21665.0 - -13260.0 -21621.1 - -13260.0 24161.1 - -13303.9 24205.0 - -13366.1 24205.0 - -13410.0 24161.1 - -13410.0 -21621.1 - ) - ) - (outline - (polygon signal 0 - -12096.1 -22935.0 - -3778.9 -22935.0 - -3735.0 -22891.1 - -3735.0 -22828.9 - -3778.9 -22785.0 - -12096.1 -22785.0 - -12140.0 -22828.9 - -12140.0 -22891.1 - ) - ) - (outline - (polygon signal 0 - -12731.1 25325.0 - 11461.1 25325.0 - 11505.0 25368.9 - 11505.0 25431.1 - 11461.1 25475.0 - -12731.1 25475.0 - -12775.0 25431.1 - -12775.0 25368.9 - ) - ) - (outline - (polygon signal 0 - 10291.530499999999 -22186.0 - 10302.527455919397 -22186.0 - 10843.97169166293 -22062.463585293 - 11325.947013782543 -21784.152986217458 - 11333.023404255318 -21777.07659574468 - 11706.60450939226 -21374.569111791534 - 11948.7281602337 -20871.76907233432 - 12031.1 -20325.30726817043 - 12031.1 -20314.69273182957 - 11948.7281602337 -19768.23092766568 - 11706.60450939226 -19265.430888208466 - 11333.023404255318 -18862.92340425532 - 11325.947013782543 -18855.847013782542 - 10843.97169166293 -18577.536414707 - 10302.527455919397 -18454.0 - 10291.530499999999 -18454.0 - 9743.298242366403 -18495.073778432932 - 9224.211525157132 -18698.833284525917 - 8793.049528301886 -19042.650471698114 - 8785.39658848614 -19050.303411513858 - 8473.459064925266 -19507.763513208072 - 8309.0 -20040.952724968312 - 8309.0 -20599.047275031688 - 8473.459064925266 -21132.236486791928 - 8785.39658848614 -21589.696588486142 - 8793.049528301886 -21597.349528301886 - 9224.211525157132 -21941.166715474083 - 9743.298242366403 -22144.926221567068 - ) - ) - (outline - (polygon signal 0 - -10663.469500000001 -22186.0 - -10652.472544080603 -22186.0 - -10111.02830833707 -22062.463585293 - -9629.052986217457 -21784.152986217458 - -9621.976595744682 -21777.07659574468 - -9248.39549060774 -21374.569111791534 - -9006.2718397663 -20871.76907233432 - -8923.9 -20325.30726817043 - -8923.9 -20314.69273182957 - -9006.2718397663 -19768.23092766568 - -9248.39549060774 -19265.430888208466 - -9621.976595744682 -18862.92340425532 - -9629.052986217457 -18855.847013782542 - -10111.02830833707 -18577.536414707 - -10652.472544080603 -18454.0 - -10663.469500000001 -18454.0 - -11211.701757633597 -18495.073778432932 - -11730.788474842868 -18698.833284525917 - -12161.950471698114 -19042.650471698114 - -12169.60341151386 -19050.303411513858 - -12481.540935074734 -19507.763513208072 - -12646.0 -20040.952724968312 - -12646.0 -20599.047275031688 - -12481.540935074734 -21132.236486791928 - -12169.60341151386 -21589.696588486142 - -12161.950471698114 -21597.349528301886 - -11730.788474842868 -21941.166715474083 - -11211.701757633597 -22144.926221567068 - ) - ) - (outline - (polygon signal 0 - -10663.469500000001 20994.0 - -10652.472544080603 20994.0 - -10111.02830833707 21117.536414707 - -9629.052986217457 21395.847013782542 - -9621.976595744682 21402.92340425532 - -9248.39549060774 21805.430888208466 - -9006.2718397663 22308.23092766568 - -8923.9 22854.69273182957 - -8923.9 22865.30726817043 - -9006.2718397663 23411.76907233432 - -9248.39549060774 23914.569111791534 - -9621.976595744682 24317.07659574468 - -9629.052986217457 24324.152986217458 - -10111.02830833707 24602.463585293 - -10652.472544080603 24726.0 - -10663.469500000001 24726.0 - -11211.701757633597 24684.926221567068 - -11730.788474842868 24481.166715474083 - -12161.950471698114 24137.349528301886 - -12169.60341151386 24129.696588486142 - -12481.540935074734 23672.236486791928 - -12646.0 23139.047275031688 - -12646.0 22580.952724968312 - -12481.540935074734 22047.763513208072 - -12169.60341151386 21590.303411513858 - -12161.950471698114 21582.650471698114 - -11730.788474842868 21238.833284525917 - -11211.701757633597 21035.073778432932 - ) - ) - (outline - (polygon signal 0 - 10291.530499999999 20994.0 - 10302.527455919397 20994.0 - 10843.97169166293 21117.536414707 - 11325.947013782543 21395.847013782542 - 11333.023404255318 21402.92340425532 - 11706.60450939226 21805.430888208466 - 11948.7281602337 22308.23092766568 - 12031.1 22854.69273182957 - 12031.1 22865.30726817043 - 11948.7281602337 23411.76907233432 - 11706.60450939226 23914.569111791534 - 11333.023404255318 24317.07659574468 - 11325.947013782543 24324.152986217458 - 10843.97169166293 24602.463585293 - 10302.527455919397 24726.0 - 10291.530499999999 24726.0 - 9743.298242366403 24684.926221567068 - 9224.211525157132 24481.166715474083 - 8793.049528301886 24137.349528301886 - 8785.39658848614 24129.696588486142 - 8473.459064925266 23672.236486791928 - 8309.0 23139.047275031688 - 8309.0 22580.952724968312 - 8473.459064925266 22047.763513208072 - 8785.39658848614 21590.303411513858 - 8793.049528301886 21582.650471698114 - 9224.211525157132 21238.833284525917 - 9743.298242366403 21035.073778432932 - ) - ) + (outline (path signal 150 11430 -22860 3810 -22860)) + (outline (path signal 150 5500 18270 -5500 18270)) + (outline (path signal 150 5500 25400 5500 18270)) + (outline (path signal 150 -5500 18270 -5500 25400)) + (outline (path signal 150 -3800 -23860 -3800 -18130)) + (outline (path signal 150 -3800 -18130 3800 -18130)) + (outline (path signal 150 3800 -18130 3800 -23860)) + (outline (path signal 150 3800 -23860 -3800 -23860)) + (outline (path signal 150 12700 24130 12700 -21590)) + (outline (path signal 150 -13335 24130 -13335 -21590)) + (outline (path signal 150 -3810 -22860 -12065 -22860)) + (outline (path signal 150 11430 25400 -12700 25400)) + (outline (path signal 150 11956.1 -20320 11876.3 -20849.4 11644 -21331.8 11279.8 -21724.2 + 10816.2 -21991.9 10294.2 -22111 9760.34 -22071 9261.97 -21875.4 + 8843.4 -21541.6 8541.81 -21099.3 8384.01 -20587.7 8384.01 -20052.3 + 8541.81 -19540.7 8843.4 -19098.4 9261.97 -18764.6 9760.34 -18569 + 10294.2 -18529 10816.2 -18648.1 11279.8 -18915.8 11644 -19308.2 + 11876.3 -19790.6 11956.1 -20320)) + (outline (path signal 150 -8998.95 -20320 -9078.74 -20849.4 -9311.03 -21331.8 + -9675.18 -21724.2 -10138.8 -21991.9 -10660.8 -22111 -11194.7 -22071 + -11693 -21875.4 -12111.6 -21541.6 -12413.2 -21099.3 -12571 -20587.7 + -12571 -20052.3 -12413.2 -19540.7 -12111.6 -19098.4 -11693 -18764.6 + -11194.7 -18569 -10660.8 -18529 -10138.8 -18648.1 -9675.18 -18915.8 + -9311.03 -19308.2 -9078.74 -19790.6 -8998.95 -20320)) + (outline (path signal 150 -8998.95 22860 -9078.74 22330.6 -9311.03 21848.2 -9675.18 21455.8 + -10138.8 21188.1 -10660.8 21069 -11194.7 21109 -11693 21304.6 + -12111.6 21638.4 -12413.2 22080.7 -12571 22592.3 -12571 23127.7 + -12413.2 23639.3 -12111.6 24081.6 -11693 24415.4 -11194.7 24611 + -10660.8 24651 -10138.8 24531.9 -9675.18 24264.2 -9311.03 23871.8 + -9078.74 23389.4 -8998.95 22860)) + (outline (path signal 150 11956.1 22860 11876.3 22330.6 11644 21848.2 11279.8 21455.8 + 10816.2 21188.1 10294.2 21069 9760.34 21109 9261.97 21304.6 + 8843.4 21638.4 8541.81 22080.7 8384.01 22592.3 8384.01 23127.7 + 8541.81 23639.3 8843.4 24081.6 9261.97 24415.4 9760.34 24611 + 10294.2 24651 10816.2 24531.9 11279.8 24264.2 11644 23871.8 + 11876.3 23389.4 11956.1 22860)) + (pin Round[A]Pad_1524_um 1 -12065 19050) + (pin Round[A]Pad_1524_um 2 -12065 16510) + (pin Round[A]Pad_1524_um 3 -12065 13970) + (pin Round[A]Pad_1524_um 4 -12065 11430) + (pin Round[A]Pad_1524_um 5 -12065 8890) + (pin Round[A]Pad_1524_um 6 -12065 6350) + (pin Round[A]Pad_1524_um 7 -12065 3810) + (pin Round[A]Pad_1524_um 8 -12065 1270) + (pin Round[A]Pad_1524_um 9 -12065 -1270) + (pin Round[A]Pad_1524_um 10 -12065 -3810) + (pin Round[A]Pad_1524_um 11 -12065 -6350) + (pin Round[A]Pad_1524_um 12 -12065 -8890) + (pin Round[A]Pad_1524_um 13 -12065 -11430) + (pin Round[A]Pad_1524_um 14 -12065 -13970) + (pin Round[A]Pad_1524_um 15 -12065 -16510) + (pin Round[A]Pad_1524_um 16 11430 -16510) + (pin Round[A]Pad_1524_um 17 11430 -13970) + (pin Round[A]Pad_1524_um 18 11430 -11430) + (pin Round[A]Pad_1524_um 19 11430 -8890) + (pin Round[A]Pad_1524_um 20 11430 -6350) + (pin Round[A]Pad_1524_um 21 11430 -3810) + (pin Round[A]Pad_1524_um 22 11430 -1270) + (pin Round[A]Pad_1524_um 23 11430 1270) + (pin Round[A]Pad_1524_um 24 11430 3810) + (pin Round[A]Pad_1524_um 25 11430 6350) + (pin Round[A]Pad_1524_um 26 11430 8890) + (pin Round[A]Pad_1524_um 27 11430 11430) + (pin Round[A]Pad_1524_um 28 11430 13970) + (pin Round[A]Pad_1524_um 29 11430 16510) + (pin Round[A]Pad_1524_um 30 11430 19050) ) (image J1 - (side front) - (pin "Round[A]Pad_1524_um" 1 -6350.0 10160.0) - (pin "Round[A]Pad_1524_um" 2 -6350.0 7620.0) - (pin "Round[A]Pad_1524_um" 3 -6350.0 5080.0) - (pin "Round[A]Pad_1524_um" 4 -6350.0 2540.0) - (pin "Round[A]Pad_1524_um" 5 -6350.0 0.0) - (pin "Round[A]Pad_1524_um" 6 -6350.0 -2540.0) - (pin "Round[A]Pad_1524_um" 7 -6350.0 -5080.0) - (pin "Round[A]Pad_1524_um" 8 -6350.0 -7620.0) - (pin "Round[A]Pad_1524_um" 9 -6350.0 -10160.0) - (pin "Round[A]Pad_1524_um" 10 -6350.0 -12700.0) - (outline - (polygon signal 0 - -7644.9 11370.0 - 7564.9 11370.0 - 7600.0 11405.1 - 7600.0 11454.9 - 7564.9 11490.0 - -7644.9 11490.0 - -7680.0 11454.9 - -7680.0 11405.1 - ) - ) - (outline - (polygon signal 0 - 7595.1 -13630.0 - 7644.9 -13630.0 - 7680.0 -13594.9 - 7680.0 11454.9 - 7644.9 11490.0 - 7595.1 11490.0 - 7560.0 11454.9 - 7560.0 -13594.9 - ) - ) - (outline - (polygon signal 0 - -7644.9 -13630.0 - 7644.9 -13630.0 - 7680.0 -13594.9 - 7680.0 -13545.1 - 7644.9 -13510.0 - -7644.9 -13510.0 - -7680.0 -13545.1 - -7680.0 -13594.9 - ) - ) - (outline - (polygon signal 0 - -7644.9 -13630.0 - -7595.1 -13630.0 - -7560.0 -13594.9 - -7560.0 11454.9 - -7595.1 11490.0 - -7644.9 11490.0 - -7680.0 11454.9 - -7680.0 -13594.9 - ) - ) - ) - (padstack "Round[A]Pad_1524_um" - (shape - (circle F.Cu 1524.0 0.0 0.0) - ) - (shape - (circle B.Cu 1524.0 0.0 0.0) - ) + (outline (path signal 120 -7620 11430 7540 11430)) + (outline (path signal 120 7620 11430 7620 -13570)) + (outline (path signal 120 7620 -13570 -7620 -13570)) + (outline (path signal 120 -7620 -13570 -7620 11430)) + (pin Round[A]Pad_1524_um 1 -6350 10160) + (pin Round[A]Pad_1524_um 2 -6350 7620) + (pin Round[A]Pad_1524_um 3 -6350 5080) + (pin Round[A]Pad_1524_um 4 -6350 2540) + (pin Round[A]Pad_1524_um 5 -6350 0) + (pin Round[A]Pad_1524_um 6 -6350 -2540) + (pin Round[A]Pad_1524_um 7 -6350 -5080) + (pin Round[A]Pad_1524_um 8 -6350 -7620) + (pin Round[A]Pad_1524_um 9 -6350 -10160) + (pin Round[A]Pad_1524_um 10 -6350 -12700) + ) + (padstack Round[A]Pad_1524_um + (shape (circle F.Cu 1524)) + (shape (circle B.Cu 1524)) (attach off) ) (padstack "Via[0-1]_800:400_um" - (shape - (circle F.Cu 800.0 0.0 0.0) - ) - (shape - (circle B.Cu 800.0 0.0 0.0) - ) + (shape (circle F.Cu 800)) + (shape (circle B.Cu 800)) (attach off) ) ) (network - (net 3v3 1 - (pins - J1-1 - U1-3 - ) - ) - (net VIN 1 - (pins - U1-1 - ) - ) - (via - "Via[0-1]_800:400_um" "Via[0-1]_800:400_um" default - ) - (via - "Via[0-1]_800:400_um-kicad_default" "Via[0-1]_800:400_um" "kicad_default" + (net 3v3 + (pins U1-3 J1-1) ) - (via_rule - default "Via[0-1]_800:400_um" + (net VIN + (pins U1-1) ) - (via_rule - "kicad_default" "Via[0-1]_800:400_um-kicad_default" - ) - (via_rule - default "Via[0-1]_800:400_um" - ) - (class default - 3v3 VIN - (clearance_class default) - (via_rule default) - (rule - (width 1000.0) + (class kicad_default "" + (circuit + (use_via Via[0-1]_800:400_um) ) - (circuit - (use_layer F.Cu B.Cu) + (rule + (width 250) + (clearance 200.1) ) ) - (class "kicad_default" - (clearance_class "kicad_default") - (via_rule kicad_default) - (rule - (width 250.0) + (class default 3v3 GND VIN + (circuit + (use_via Via[0-1]_800:400_um) ) - (circuit - (use_layer F.Cu B.Cu) + (rule + (width 1000) + (clearance 200.1) ) ) ) (wiring - (wire - (polyline_path B.Cu 1000.0 - 110160.0 -80650.0 110159.9 -80650.0 - 110160.0 -80650.0 110160.0 -68737.2 - 110160.0 -68737.2 104063.6 -62640.8 - 104063.6 -62640.8 89030.0 -62640.8 - 89030.0 -60065.0 89029.9 -60064.9 - 89030.0 -60065.0 89030.1 -60065.0 - ) - (net 3v3 1) - (clearance_class default) - ) ) -) \ No newline at end of file +) diff --git a/kicad_board.rules b/kicad_board.rules deleted file mode 100644 index 35b82c1..0000000 --- a/kicad_board.rules +++ /dev/null @@ -1,76 +0,0 @@ - -(rules PCB kicad_board - (snap_angle - fortyfive_degree - ) - (autoroute_settings - (fanout off) - (autoroute on) - (postroute on) - (vias on) - (via_costs 50) - (plane_via_costs 5) - (start_ripup_costs 100) - (start_pass_no 4) - (layer_rule F.Cu - (active on) - (preferred_direction vertical) - (preferred_direction_trace_costs 1.0) - (against_preferred_direction_trace_costs 2.5) - ) - (layer_rule B.Cu - (active on) - (preferred_direction horizontal) - (preferred_direction_trace_costs 1.0) - (against_preferred_direction_trace_costs 1.7) - ) - ) - (rule - (width 1000.0) - (clear 200.2) - (clear 125.0 (type smd_to_turn_gap)) - (clear 50.0 (type smd_smd)) - ) - (padstack "Via[0-1]_800:400_um" - (shape - (circle F.Cu 800.0 0.0 0.0) - ) - (shape - (circle B.Cu 800.0 0.0 0.0) - ) - (attach off) - ) - (via - "Via[0-1]_800:400_um" "Via[0-1]_800:400_um" default - ) - (via - "Via[0-1]_800:400_um-kicad_default" "Via[0-1]_800:400_um" default - ) - (via_rule - "kicad_default" "Via[0-1]_800:400_um-kicad_default" - ) - (via_rule - default "Via[0-1]_800:400_um" - ) - (class default - 3v3 VIN - (clearance_class default) - (via_rule default) - (rule - (width 1000.0) - ) - (circuit - (use_layer F.Cu B.Cu) - ) - ) - (class "kicad_default" - (clearance_class default) - (via_rule kicad_default) - (rule - (width 250.0) - ) - (circuit - (use_layer F.Cu B.Cu) - ) - ) -) \ No newline at end of file diff --git a/kicad_board_routed.dsn b/kicad_board_routed.dsn new file mode 100644 index 0000000..654197b --- /dev/null +++ b/kicad_board_routed.dsn @@ -0,0 +1,1234 @@ + +(PCB "kicad_board" + (parser + (string_quote ") + (space_in_quoted_tokens on) + (host_cad "KiCad's Pcbnew") + (host_version "5.1.3-ffb9f22~84~ubuntu18.04.1") + (generated_by_freeroute) + ) + (resolution um 10) + (structure + (boundary + (rect pcb 164.6 -249435.0 169835.0 -164.6) + ) + (boundary + (polygon signal 0 + 96264.4 -249335.0 + 169735.0 -249335.0 + 169735.0 -211865.0 + 150736.0 -211865.0 + 150736.0 -211335.0 + 160735.0 -211335.0 + 160735.0 -151865.0 + 150736.0 -151865.0 + 150736.0 -151336.0 + 160735.0 -151336.0 + 160735.0 -113864.0 + 137735.0 -113864.0 + 137735.0 -113335.0 + 165736.0 -113335.0 + 165736.0 -31864.8 + 137735.0 -31864.8 + 137735.0 -264.6 + 78264.5 -264.6 + 78264.5 -31864.8 + 264.6 -31864.8 + 264.6 -113335.0 + 119265.0 -113335.0 + 119265.0 -113864.0 + 87264.4 -113864.0 + 87264.4 -151336.0 + 138264.0 -151336.0 + 138264.0 -151865.0 + 37264.4 -151865.0 + 37264.4 -211335.0 + 138264.0 -211335.0 + 138264.0 -211865.0 + 96264.4 -211865.0 + ) + ) + (snap_angle + fortyfive_degree + ) + (via "Via[0-1]_800:400_um") + (control + (via_at_smd off) + ) + (rule + (width 1000.0) + (clear 200.2) + (clear 125.0 (type smd_to_turn_gap)) + (clear 50.0 (type smd_smd)) + ) + (layer F.Cu + (type signal) + ) + (layer B.Cu + (type signal) + ) + (autoroute_settings + (fanout off) + (autoroute on) + (postroute on) + (vias on) + (via_costs 50) + (plane_via_costs 5) + (start_ripup_costs 100) + (start_pass_no 7) + (layer_rule F.Cu + (active on) + (preferred_direction vertical) + (preferred_direction_trace_costs 1.0) + (against_preferred_direction_trace_costs 2.5) + ) + (layer_rule B.Cu + (active on) + (preferred_direction horizontal) + (preferred_direction_trace_costs 1.0) + (against_preferred_direction_trace_costs 1.7) + ) + ) + (keepout + (polygon B.Cu 0 + 105736.0 -27264.5 + 110265.0 -27264.5 + 110265.0 -26735.3 + 106265.0 -26735.3 + 106265.0 -18264.6 + 110265.0 -18264.6 + 110265.0 -17735.4 + 105736.0 -17735.4 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 105736.0 -27264.5 + 110265.0 -27264.5 + 110265.0 -26735.3 + 106265.0 -26735.3 + 106265.0 -18264.6 + 110265.0 -18264.6 + 110265.0 -17735.4 + 105736.0 -17735.4 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 101735.0 -31764.5 + 114264.0 -31764.5 + 114264.0 -13235.4 + 113735.0 -13235.4 + 113735.0 -31235.4 + 102265.0 -31235.4 + 102265.0 -13235.4 + 101735.0 -13235.4 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 101735.0 -31764.5 + 114264.0 -31764.5 + 114264.0 -13235.4 + 113735.0 -13235.4 + 113735.0 -31235.4 + 102265.0 -31235.4 + 102265.0 -13235.4 + 101735.0 -13235.4 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 31485.4 -45614.8 + 32514.8 -45614.8 + 32514.8 -35585.5 + 31485.4 -35585.5 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 31485.4 -45614.8 + 32514.8 -45614.8 + 32514.8 -35585.5 + 31485.4 -35585.5 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 150265.0 -50835.2 + 153735.0 -50835.2 + 153735.0 -42364.4 + 150265.0 -42364.4 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 150265.0 -50835.2 + 153735.0 -50835.2 + 153735.0 -42364.4 + 150265.0 -42364.4 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 6985.6 -61932.7 + 8014.5 -61932.7 + 8014.5 -45994.6 + 6985.6 -45994.6 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 6985.6 -61932.7 + 8014.5 -61932.7 + 8014.5 -45994.6 + 6985.6 -45994.6 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 163500.0 -66792.3 + 163610.0 -66682.8 + 163765.0 -66682.8 + 163765.0 -66527.8 + 163874.0 -66418.2 + 163765.0 -66308.7 + 163765.0 -61153.4 + 163236.0 -61153.4 + 163236.0 -65779.5 + 158764.0 -61308.4 + 158764.0 -46618.9 + 163236.0 -42147.9 + 163236.0 -46773.9 + 163765.0 -46773.9 + 163765.0 -41618.7 + 163874.0 -41509.1 + 163765.0 -41399.6 + 163765.0 -41244.6 + 163610.0 -41244.6 + 163500.0 -41135.0 + 163391.0 -41244.6 + 163236.0 -41244.6 + 163236.0 -41399.6 + 158390.0 -46244.8 + 158235.0 -46244.8 + 158235.0 -46399.3 + 158126.0 -46509.3 + 158235.0 -46618.9 + 158235.0 -61308.4 + 158126.0 -61418.0 + 158235.0 -61527.6 + 158235.0 -61682.6 + 158390.0 -61682.6 + 163236.0 -66527.8 + 163236.0 -66682.8 + 163391.0 -66682.8 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 163500.0 -66792.3 + 163610.0 -66682.8 + 163765.0 -66682.8 + 163765.0 -66527.8 + 163874.0 -66418.2 + 163765.0 -66308.7 + 163765.0 -61153.4 + 163236.0 -61153.4 + 163236.0 -65779.5 + 158764.0 -61308.4 + 158764.0 -46618.9 + 163236.0 -42147.9 + 163236.0 -46773.9 + 163765.0 -46773.9 + 163765.0 -41618.7 + 163874.0 -41509.1 + 163765.0 -41399.6 + 163765.0 -41244.6 + 163610.0 -41244.6 + 163500.0 -41135.0 + 163391.0 -41244.6 + 163236.0 -41244.6 + 163236.0 -41399.6 + 158390.0 -46244.8 + 158235.0 -46244.8 + 158235.0 -46399.3 + 158126.0 -46509.3 + 158235.0 -46618.9 + 158235.0 -61308.4 + 158126.0 -61418.0 + 158235.0 -61527.6 + 158235.0 -61682.6 + 158390.0 -61682.6 + 163236.0 -66527.8 + 163236.0 -66682.8 + 163391.0 -66682.8 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 81014.7 -74585.7 + 107485.0 -74585.7 + 107485.0 -67114.8 + 81014.7 -67114.8 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 81014.7 -74585.7 + 107485.0 -74585.7 + 107485.0 -67114.8 + 81014.7 -67114.8 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 6985.6 -99205.4 + 8014.5 -99205.4 + 8014.5 -83267.3 + 6985.6 -83267.3 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 6985.6 -99205.4 + 8014.5 -99205.4 + 8014.5 -83267.3 + 6985.6 -83267.3 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 163500.0 -104065.0 + 163610.0 -103955.0 + 163765.0 -103955.0 + 163765.0 -103800.0 + 163874.0 -103691.0 + 163765.0 -103581.0 + 163765.0 -98426.1 + 163236.0 -98426.1 + 163236.0 -103052.0 + 158764.0 -98581.1 + 158764.0 -83891.6 + 163236.0 -79420.5 + 163236.0 -84046.6 + 163765.0 -84046.6 + 163765.0 -78891.3 + 163874.0 -78781.8 + 163765.0 -78672.2 + 163765.0 -78517.2 + 163610.0 -78517.2 + 163500.0 -78407.7 + 163391.0 -78517.2 + 163236.0 -78517.2 + 163236.0 -78672.2 + 158390.0 -83517.4 + 158235.0 -83517.4 + 158235.0 -83672.5 + 158126.0 -83782.0 + 158235.0 -83891.6 + 158235.0 -98581.1 + 158126.0 -98690.7 + 158235.0 -98800.7 + 158235.0 -98955.2 + 158390.0 -98955.2 + 163236.0 -103800.0 + 163236.0 -103955.0 + 163391.0 -103955.0 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 163500.0 -104065.0 + 163610.0 -103955.0 + 163765.0 -103955.0 + 163765.0 -103800.0 + 163874.0 -103691.0 + 163765.0 -103581.0 + 163765.0 -98426.1 + 163236.0 -98426.1 + 163236.0 -103052.0 + 158764.0 -98581.1 + 158764.0 -83891.6 + 163236.0 -79420.5 + 163236.0 -84046.6 + 163765.0 -84046.6 + 163765.0 -78891.3 + 163874.0 -78781.8 + 163765.0 -78672.2 + 163765.0 -78517.2 + 163610.0 -78517.2 + 163500.0 -78407.7 + 163391.0 -78517.2 + 163236.0 -78517.2 + 163236.0 -78672.2 + 158390.0 -83517.4 + 158235.0 -83517.4 + 158235.0 -83672.5 + 158126.0 -83782.0 + 158235.0 -83891.6 + 158235.0 -98581.1 + 158126.0 -98690.7 + 158235.0 -98800.7 + 158235.0 -98955.2 + 158390.0 -98955.2 + 163236.0 -103800.0 + 163236.0 -103955.0 + 163391.0 -103955.0 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 138725.0 -108336.0 + 150275.0 -108336.0 + 150275.0 -85864.6 + 138725.0 -85864.6 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 138725.0 -108336.0 + 150275.0 -108336.0 + 150275.0 -85864.6 + 138725.0 -85864.6 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 65725.7 -108336.0 + 77274.4 -108336.0 + 77274.4 -85864.6 + 65725.7 -85864.6 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 65725.7 -108336.0 + 77274.4 -108336.0 + 77274.4 -85864.6 + 65725.7 -85864.6 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 93985.5 -139448.0 + 95014.4 -139448.0 + 95014.4 -125752.0 + 93985.5 -125752.0 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 93985.5 -139448.0 + 95014.4 -139448.0 + 95014.4 -125752.0 + 93985.5 -125752.0 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 138725.0 -141336.0 + 150275.0 -141336.0 + 150275.0 -118865.0 + 138725.0 -118865.0 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 138725.0 -141336.0 + 150275.0 -141336.0 + 150275.0 -118865.0 + 138725.0 -118865.0 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 158500.0 -144308.0 + 158609.0 -144198.0 + 158764.0 -144198.0 + 158764.0 -144043.0 + 158874.0 -143933.0 + 158764.0 -143824.0 + 158764.0 -138669.0 + 158235.0 -138669.0 + 158235.0 -143295.0 + 153765.0 -138824.0 + 153765.0 -126376.0 + 158235.0 -121905.0 + 158235.0 -126531.0 + 158764.0 -126531.0 + 158764.0 -121376.0 + 158874.0 -121267.0 + 158764.0 -121157.0 + 158764.0 -121002.0 + 158609.0 -121002.0 + 158500.0 -120892.0 + 158390.0 -121002.0 + 158235.0 -121002.0 + 158235.0 -121157.0 + 153391.0 -126002.0 + 153236.0 -126002.0 + 153236.0 -126157.0 + 153126.0 -126267.0 + 153236.0 -126376.0 + 153236.0 -138824.0 + 153126.0 -138933.0 + 153236.0 -139043.0 + 153236.0 -139198.0 + 153391.0 -139198.0 + 158235.0 -144043.0 + 158235.0 -144198.0 + 158390.0 -144198.0 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 158500.0 -144308.0 + 158609.0 -144198.0 + 158764.0 -144198.0 + 158764.0 -144043.0 + 158874.0 -143933.0 + 158764.0 -143824.0 + 158764.0 -138669.0 + 158235.0 -138669.0 + 158235.0 -143295.0 + 153765.0 -138824.0 + 153765.0 -126376.0 + 158235.0 -121905.0 + 158235.0 -126531.0 + 158764.0 -126531.0 + 158764.0 -121376.0 + 158874.0 -121267.0 + 158764.0 -121157.0 + 158764.0 -121002.0 + 158609.0 -121002.0 + 158500.0 -120892.0 + 158390.0 -121002.0 + 158235.0 -121002.0 + 158235.0 -121157.0 + 153391.0 -126002.0 + 153236.0 -126002.0 + 153236.0 -126157.0 + 153126.0 -126267.0 + 153236.0 -126376.0 + 153236.0 -138824.0 + 153126.0 -138933.0 + 153236.0 -139043.0 + 153236.0 -139198.0 + 153391.0 -139198.0 + 158235.0 -144043.0 + 158235.0 -144198.0 + 158390.0 -144198.0 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 43985.4 -192114.0 + 45014.8 -192114.0 + 45014.8 -171085.0 + 43985.4 -171085.0 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 43985.4 -192114.0 + 45014.8 -192114.0 + 45014.8 -171085.0 + 43985.4 -171085.0 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 158500.0 -196974.0 + 158609.0 -196865.0 + 158764.0 -196865.0 + 158764.0 -196709.0 + 158874.0 -196600.0 + 158764.0 -196490.0 + 158764.0 -191336.0 + 158235.0 -191336.0 + 158235.0 -195961.0 + 153765.0 -191490.0 + 153765.0 -171709.0 + 158235.0 -167239.0 + 158235.0 -171864.0 + 158764.0 -171864.0 + 158764.0 -165961.0 + 153391.0 -171335.0 + 153236.0 -171335.0 + 153236.0 -171490.0 + 153126.0 -171600.0 + 153236.0 -171709.0 + 153236.0 -191710.0 + 158235.0 -196709.0 + 158235.0 -196865.0 + 158390.0 -196865.0 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 158500.0 -196974.0 + 158609.0 -196865.0 + 158764.0 -196865.0 + 158764.0 -196709.0 + 158874.0 -196600.0 + 158764.0 -196490.0 + 158764.0 -191336.0 + 158235.0 -191336.0 + 158235.0 -195961.0 + 153765.0 -191490.0 + 153765.0 -171709.0 + 158235.0 -167239.0 + 158235.0 -171864.0 + 158764.0 -171864.0 + 158764.0 -165961.0 + 153391.0 -171335.0 + 153236.0 -171335.0 + 153236.0 -171490.0 + 153126.0 -171600.0 + 153236.0 -171709.0 + 153236.0 -191710.0 + 158235.0 -196709.0 + 158235.0 -196865.0 + 158390.0 -196865.0 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 129515.0 -208585.0 + 136985.0 -208585.0 + 136985.0 -182115.0 + 129515.0 -182115.0 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 129515.0 -208585.0 + 136985.0 -208585.0 + 136985.0 -182115.0 + 129515.0 -182115.0 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 161985.0 -237448.0 + 163014.0 -237448.0 + 163014.0 -223752.0 + 161985.0 -223752.0 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 161985.0 -237448.0 + 163014.0 -237448.0 + 163014.0 -223752.0 + 161985.0 -223752.0 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 98235.3 -242572.0 + 103610.0 -237198.0 + 103765.0 -237198.0 + 103765.0 -237043.0 + 103874.0 -236933.0 + 103765.0 -236824.0 + 103765.0 -224376.0 + 103874.0 -224266.0 + 103765.0 -224157.0 + 103765.0 -224002.0 + 103610.0 -224002.0 + 98235.3 -218628.0 + 98235.3 -224531.0 + 98764.5 -224531.0 + 98764.5 -219905.0 + 103236.0 -224376.0 + 103236.0 -236824.0 + 98764.5 -241294.0 + 98764.5 -236669.0 + 98235.3 -236669.0 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 98235.3 -242572.0 + 103610.0 -237198.0 + 103765.0 -237198.0 + 103765.0 -237043.0 + 103874.0 -236933.0 + 103765.0 -236824.0 + 103765.0 -224376.0 + 103874.0 -224266.0 + 103765.0 -224157.0 + 103765.0 -224002.0 + 103610.0 -224002.0 + 98235.3 -218628.0 + 98235.3 -224531.0 + 98764.5 -224531.0 + 98764.5 -219905.0 + 103236.0 -224376.0 + 103236.0 -236824.0 + 98764.5 -241294.0 + 98764.5 -236669.0 + 98235.3 -236669.0 + ) + (clearance_class default) + ) + (keepout + (polygon B.Cu 0 + 138725.0 -244336.0 + 150275.0 -244336.0 + 150275.0 -221865.0 + 138725.0 -221865.0 + ) + (clearance_class default) + ) + (keepout + (polygon F.Cu 0 + 138725.0 -244336.0 + 150275.0 -244336.0 + 150275.0 -221865.0 + 138725.0 -221865.0 + ) + (clearance_class default) + ) + ) + (placement + (component U1 + (place + U1 103000.0 -48000.0 front 90 + (pin 1 (clearance_class default)) + (pin 2 (clearance_class default)) + (pin 3 (clearance_class default)) + (pin 4 (clearance_class default)) + (pin 5 (clearance_class default)) + (pin 6 (clearance_class default)) + (pin 7 (clearance_class default)) + (pin 8 (clearance_class default)) + (pin 9 (clearance_class default)) + (pin 10 (clearance_class default)) + (pin 11 (clearance_class default)) + (pin 12 (clearance_class default)) + (pin 13 (clearance_class default)) + (pin 14 (clearance_class default)) + (pin 15 (clearance_class default)) + (pin 16 (clearance_class default)) + (pin 17 (clearance_class default)) + (pin 18 (clearance_class default)) + (pin 19 (clearance_class default)) + (pin 20 (clearance_class default)) + (pin 21 (clearance_class default)) + (pin 22 (clearance_class default)) + (pin 23 (clearance_class default)) + (pin 24 (clearance_class default)) + (pin 25 (clearance_class default)) + (pin 26 (clearance_class default)) + (pin 27 (clearance_class default)) + (pin 28 (clearance_class default)) + (pin 29 (clearance_class default)) + (pin 30 (clearance_class default)) + ) + ) + (component J1 + (place + J1 100000.0 -87000.0 front 270 + (pin 1 (clearance_class default)) + (pin 2 (clearance_class default)) + (pin 3 (clearance_class default)) + (pin 4 (clearance_class default)) + (pin 5 (clearance_class default)) + (pin 6 (clearance_class default)) + (pin 7 (clearance_class default)) + (pin 8 (clearance_class default)) + (pin 9 (clearance_class default)) + (pin 10 (clearance_class default)) + ) + ) + ) + (library + (image U1 + (side front) + (pin "Round[A]Pad_1524_um" 1 -12065.0 19050.0) + (pin "Round[A]Pad_1524_um" 2 -12065.0 16510.0) + (pin "Round[A]Pad_1524_um" 3 -12065.0 13970.0) + (pin "Round[A]Pad_1524_um" 4 -12065.0 11430.0) + (pin "Round[A]Pad_1524_um" 5 -12065.0 8890.0) + (pin "Round[A]Pad_1524_um" 6 -12065.0 6350.0) + (pin "Round[A]Pad_1524_um" 7 -12065.0 3810.0) + (pin "Round[A]Pad_1524_um" 8 -12065.0 1270.0) + (pin "Round[A]Pad_1524_um" 9 -12065.0 -1270.0) + (pin "Round[A]Pad_1524_um" 10 -12065.0 -3810.0) + (pin "Round[A]Pad_1524_um" 11 -12065.0 -6350.0) + (pin "Round[A]Pad_1524_um" 12 -12065.0 -8890.0) + (pin "Round[A]Pad_1524_um" 13 -12065.0 -11430.0) + (pin "Round[A]Pad_1524_um" 14 -12065.0 -13970.0) + (pin "Round[A]Pad_1524_um" 15 -12065.0 -16510.0) + (pin "Round[A]Pad_1524_um" 16 11430.0 -16510.0) + (pin "Round[A]Pad_1524_um" 17 11430.0 -13970.0) + (pin "Round[A]Pad_1524_um" 18 11430.0 -11430.0) + (pin "Round[A]Pad_1524_um" 19 11430.0 -8890.0) + (pin "Round[A]Pad_1524_um" 20 11430.0 -6350.0) + (pin "Round[A]Pad_1524_um" 21 11430.0 -3810.0) + (pin "Round[A]Pad_1524_um" 22 11430.0 -1270.0) + (pin "Round[A]Pad_1524_um" 23 11430.0 1270.0) + (pin "Round[A]Pad_1524_um" 24 11430.0 3810.0) + (pin "Round[A]Pad_1524_um" 25 11430.0 6350.0) + (pin "Round[A]Pad_1524_um" 26 11430.0 8890.0) + (pin "Round[A]Pad_1524_um" 27 11430.0 11430.0) + (pin "Round[A]Pad_1524_um" 28 11430.0 13970.0) + (pin "Round[A]Pad_1524_um" 29 11430.0 16510.0) + (pin "Round[A]Pad_1524_um" 30 11430.0 19050.0) + (outline + (polygon signal 0 + 3778.9 -22935.0 + 11461.1 -22935.0 + 11505.0 -22891.1 + 11505.0 -22828.9 + 11461.1 -22785.0 + 3778.9 -22785.0 + 3735.0 -22828.9 + 3735.0 -22891.1 + ) + ) + (outline + (polygon signal 0 + -5531.1 18195.0 + 5531.1 18195.0 + 5575.0 18238.9 + 5575.0 18301.1 + 5531.1 18345.0 + -5531.1 18345.0 + -5575.0 18301.1 + -5575.0 18238.9 + ) + ) + (outline + (polygon signal 0 + 5468.9 18195.0 + 5531.1 18195.0 + 5575.0 18238.9 + 5575.0 25431.1 + 5531.1 25475.0 + 5468.9 25475.0 + 5425.0 25431.1 + 5425.0 18238.9 + ) + ) + (outline + (polygon signal 0 + -5531.1 18195.0 + -5468.9 18195.0 + -5425.0 18238.9 + -5425.0 25431.1 + -5468.9 25475.0 + -5531.1 25475.0 + -5575.0 25431.1 + -5575.0 18238.9 + ) + ) + (outline + (polygon signal 0 + -3831.1 -23935.0 + -3768.9 -23935.0 + -3725.0 -23891.1 + -3725.0 -18098.9 + -3768.9 -18055.0 + -3831.1 -18055.0 + -3875.0 -18098.9 + -3875.0 -23891.1 + ) + ) + (outline + (polygon signal 0 + -3831.1 -18205.0 + 3831.1 -18205.0 + 3875.0 -18161.1 + 3875.0 -18098.9 + 3831.1 -18055.0 + -3831.1 -18055.0 + -3875.0 -18098.9 + -3875.0 -18161.1 + ) + ) + (outline + (polygon signal 0 + 3768.9 -23935.0 + 3831.1 -23935.0 + 3875.0 -23891.1 + 3875.0 -18098.9 + 3831.1 -18055.0 + 3768.9 -18055.0 + 3725.0 -18098.9 + 3725.0 -23891.1 + ) + ) + (outline + (polygon signal 0 + -3831.1 -23935.0 + 3831.1 -23935.0 + 3875.0 -23891.1 + 3875.0 -23828.9 + 3831.1 -23785.0 + -3831.1 -23785.0 + -3875.0 -23828.9 + -3875.0 -23891.1 + ) + ) + (outline + (polygon signal 0 + 12668.9 -21665.0 + 12731.1 -21665.0 + 12775.0 -21621.1 + 12775.0 24161.1 + 12731.1 24205.0 + 12668.9 24205.0 + 12625.0 24161.1 + 12625.0 -21621.1 + ) + ) + (outline + (polygon signal 0 + -13366.1 -21665.0 + -13303.9 -21665.0 + -13260.0 -21621.1 + -13260.0 24161.1 + -13303.9 24205.0 + -13366.1 24205.0 + -13410.0 24161.1 + -13410.0 -21621.1 + ) + ) + (outline + (polygon signal 0 + -12096.1 -22935.0 + -3778.9 -22935.0 + -3735.0 -22891.1 + -3735.0 -22828.9 + -3778.9 -22785.0 + -12096.1 -22785.0 + -12140.0 -22828.9 + -12140.0 -22891.1 + ) + ) + (outline + (polygon signal 0 + -12731.1 25325.0 + 11461.1 25325.0 + 11505.0 25368.9 + 11505.0 25431.1 + 11461.1 25475.0 + -12731.1 25475.0 + -12775.0 25431.1 + -12775.0 25368.9 + ) + ) + (outline + (polygon signal 0 + 10291.530499999999 -22186.0 + 10302.527455919397 -22186.0 + 10843.97169166293 -22062.463585293 + 11325.947013782543 -21784.152986217458 + 11333.023404255318 -21777.07659574468 + 11706.60450939226 -21374.569111791534 + 11948.7281602337 -20871.76907233432 + 12031.1 -20325.30726817043 + 12031.1 -20314.69273182957 + 11948.7281602337 -19768.23092766568 + 11706.60450939226 -19265.430888208466 + 11333.023404255318 -18862.92340425532 + 11325.947013782543 -18855.847013782542 + 10843.97169166293 -18577.536414707 + 10302.527455919397 -18454.0 + 10291.530499999999 -18454.0 + 9743.298242366403 -18495.073778432932 + 9224.211525157132 -18698.833284525917 + 8793.049528301886 -19042.650471698114 + 8785.39658848614 -19050.303411513858 + 8473.459064925266 -19507.763513208072 + 8309.0 -20040.952724968312 + 8309.0 -20599.047275031688 + 8473.459064925266 -21132.236486791928 + 8785.39658848614 -21589.696588486142 + 8793.049528301886 -21597.349528301886 + 9224.211525157132 -21941.166715474083 + 9743.298242366403 -22144.926221567068 + ) + ) + (outline + (polygon signal 0 + -10663.469500000001 -22186.0 + -10652.472544080603 -22186.0 + -10111.02830833707 -22062.463585293 + -9629.052986217457 -21784.152986217458 + -9621.976595744682 -21777.07659574468 + -9248.39549060774 -21374.569111791534 + -9006.2718397663 -20871.76907233432 + -8923.9 -20325.30726817043 + -8923.9 -20314.69273182957 + -9006.2718397663 -19768.23092766568 + -9248.39549060774 -19265.430888208466 + -9621.976595744682 -18862.92340425532 + -9629.052986217457 -18855.847013782542 + -10111.02830833707 -18577.536414707 + -10652.472544080603 -18454.0 + -10663.469500000001 -18454.0 + -11211.701757633597 -18495.073778432932 + -11730.788474842868 -18698.833284525917 + -12161.950471698114 -19042.650471698114 + -12169.60341151386 -19050.303411513858 + -12481.540935074734 -19507.763513208072 + -12646.0 -20040.952724968312 + -12646.0 -20599.047275031688 + -12481.540935074734 -21132.236486791928 + -12169.60341151386 -21589.696588486142 + -12161.950471698114 -21597.349528301886 + -11730.788474842868 -21941.166715474083 + -11211.701757633597 -22144.926221567068 + ) + ) + (outline + (polygon signal 0 + -10663.469500000001 20994.0 + -10652.472544080603 20994.0 + -10111.02830833707 21117.536414707 + -9629.052986217457 21395.847013782542 + -9621.976595744682 21402.92340425532 + -9248.39549060774 21805.430888208466 + -9006.2718397663 22308.23092766568 + -8923.9 22854.69273182957 + -8923.9 22865.30726817043 + -9006.2718397663 23411.76907233432 + -9248.39549060774 23914.569111791534 + -9621.976595744682 24317.07659574468 + -9629.052986217457 24324.152986217458 + -10111.02830833707 24602.463585293 + -10652.472544080603 24726.0 + -10663.469500000001 24726.0 + -11211.701757633597 24684.926221567068 + -11730.788474842868 24481.166715474083 + -12161.950471698114 24137.349528301886 + -12169.60341151386 24129.696588486142 + -12481.540935074734 23672.236486791928 + -12646.0 23139.047275031688 + -12646.0 22580.952724968312 + -12481.540935074734 22047.763513208072 + -12169.60341151386 21590.303411513858 + -12161.950471698114 21582.650471698114 + -11730.788474842868 21238.833284525917 + -11211.701757633597 21035.073778432932 + ) + ) + (outline + (polygon signal 0 + 10291.530499999999 20994.0 + 10302.527455919397 20994.0 + 10843.97169166293 21117.536414707 + 11325.947013782543 21395.847013782542 + 11333.023404255318 21402.92340425532 + 11706.60450939226 21805.430888208466 + 11948.7281602337 22308.23092766568 + 12031.1 22854.69273182957 + 12031.1 22865.30726817043 + 11948.7281602337 23411.76907233432 + 11706.60450939226 23914.569111791534 + 11333.023404255318 24317.07659574468 + 11325.947013782543 24324.152986217458 + 10843.97169166293 24602.463585293 + 10302.527455919397 24726.0 + 10291.530499999999 24726.0 + 9743.298242366403 24684.926221567068 + 9224.211525157132 24481.166715474083 + 8793.049528301886 24137.349528301886 + 8785.39658848614 24129.696588486142 + 8473.459064925266 23672.236486791928 + 8309.0 23139.047275031688 + 8309.0 22580.952724968312 + 8473.459064925266 22047.763513208072 + 8785.39658848614 21590.303411513858 + 8793.049528301886 21582.650471698114 + 9224.211525157132 21238.833284525917 + 9743.298242366403 21035.073778432932 + ) + ) + ) + (image J1 + (side front) + (pin "Round[A]Pad_1524_um" 1 -6350.0 10160.0) + (pin "Round[A]Pad_1524_um" 2 -6350.0 7620.0) + (pin "Round[A]Pad_1524_um" 3 -6350.0 5080.0) + (pin "Round[A]Pad_1524_um" 4 -6350.0 2540.0) + (pin "Round[A]Pad_1524_um" 5 -6350.0 0.0) + (pin "Round[A]Pad_1524_um" 6 -6350.0 -2540.0) + (pin "Round[A]Pad_1524_um" 7 -6350.0 -5080.0) + (pin "Round[A]Pad_1524_um" 8 -6350.0 -7620.0) + (pin "Round[A]Pad_1524_um" 9 -6350.0 -10160.0) + (pin "Round[A]Pad_1524_um" 10 -6350.0 -12700.0) + (outline + (polygon signal 0 + -7644.9 11370.0 + 7564.9 11370.0 + 7600.0 11405.1 + 7600.0 11454.9 + 7564.9 11490.0 + -7644.9 11490.0 + -7680.0 11454.9 + -7680.0 11405.1 + ) + ) + (outline + (polygon signal 0 + 7595.1 -13630.0 + 7644.9 -13630.0 + 7680.0 -13594.9 + 7680.0 11454.9 + 7644.9 11490.0 + 7595.1 11490.0 + 7560.0 11454.9 + 7560.0 -13594.9 + ) + ) + (outline + (polygon signal 0 + -7644.9 -13630.0 + 7644.9 -13630.0 + 7680.0 -13594.9 + 7680.0 -13545.1 + 7644.9 -13510.0 + -7644.9 -13510.0 + -7680.0 -13545.1 + -7680.0 -13594.9 + ) + ) + (outline + (polygon signal 0 + -7644.9 -13630.0 + -7595.1 -13630.0 + -7560.0 -13594.9 + -7560.0 11454.9 + -7595.1 11490.0 + -7644.9 11490.0 + -7680.0 11454.9 + -7680.0 -13594.9 + ) + ) + ) + (padstack "Round[A]Pad_1524_um" + (shape + (circle F.Cu 1524.0 0.0 0.0) + ) + (shape + (circle B.Cu 1524.0 0.0 0.0) + ) + (attach off) + ) + (padstack "Via[0-1]_800:400_um" + (shape + (circle F.Cu 800.0 0.0 0.0) + ) + (shape + (circle B.Cu 800.0 0.0 0.0) + ) + (attach off) + ) + ) + (network + (net 3v3 1 + (pins + J1-1 + U1-3 + ) + ) + (net VIN 1 + (pins + U1-1 + ) + ) + (via + "Via[0-1]_800:400_um" "Via[0-1]_800:400_um" default + ) + (via + "Via[0-1]_800:400_um-kicad_default" "Via[0-1]_800:400_um" default + ) + (via_rule + default "Via[0-1]_800:400_um" + ) + (via_rule + "kicad_default" "Via[0-1]_800:400_um-kicad_default" + ) + (via_rule + default "Via[0-1]_800:400_um" + ) + (class default + 3v3 VIN + (clearance_class default) + (via_rule default) + (rule + (width 1000.0) + ) + (circuit + (use_layer F.Cu B.Cu) + ) + ) + (class "kicad_default" + (clearance_class default) + (via_rule kicad_default) + (rule + (width 250.0) + ) + (circuit + (use_layer F.Cu B.Cu) + ) + ) + ) + (wiring + (wire + (polyline_path B.Cu 1000.0 + 110160.0 -80650.0 110159.9 -80650.0 + 110160.0 -80650.0 110160.0 -68737.2 + 110160.0 -68737.2 104063.6 -62640.8 + 104063.6 -62640.8 89030.0 -62640.8 + 89030.0 -60065.0 89029.9 -60064.9 + 89030.0 -60065.0 89030.1 -60065.0 + ) + (net 3v3 1) + (clearance_class default) + ) + ) +) \ No newline at end of file -- GitLab