2 # Copyright 2011 by Bdale Garbee <bdale@gag.com>. GPLv2
4 # Program to emit PCB footprint for
5 # Hirose Micro USB B SMD R/A connector ZX62-B-5PA(11), DigiKey H11634CT-ND
8 # dimensions in mm from e24200011.pdf page 4
26 # draw a box around the actual connector, and a line a the PCB edge
27 # connector is 7.9mm wide and 5.6mm deep overall, but wants to stick over
28 # the board edge due to flare around opening. The flare should be only 0.6mm
29 # deep, but the recommendation is that the connector face be 1.3mm out...
33 EdgeWidth = 2 * (WingInner + WingWidth)
35 # freedfm.com round-off error bites us if we make this 700...
42 # we're going to use the 1/100 of a mil fundamental unit form
44 return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
46 print '# author: Bdale Garbee'
47 print '# email: bdale@gag.com'
48 print '# dist-license: GPL 2'
49 print '# use-license: unlimited'
51 print 'Element[0x0 "USBmicroB" "" "" 0 0 -10161 -12011 0 100 0x0]'
55 mm2mils100(PinWidth/2), \
57 mm2mils100(PinHeight - PinWidth/2), \
58 mm2mils100(PinWidth), \
60 mm2mils100(PinWidth)+(MaskDelta*2), \
64 mm2mils100(-PinSpacing), \
65 mm2mils100(PinWidth/2), \
66 mm2mils100(-PinSpacing), \
67 mm2mils100(PinHeight - PinWidth/2), \
68 mm2mils100(PinWidth), \
70 mm2mils100(PinWidth)+(MaskDelta*2), \
74 mm2mils100(PinSpacing), \
75 mm2mils100(PinWidth/2), \
76 mm2mils100(PinSpacing), \
77 mm2mils100(PinHeight - PinWidth/2), \
78 mm2mils100(PinWidth), \
80 mm2mils100(PinWidth)+(MaskDelta*2), \
84 mm2mils100(-PinSpacing*2), \
85 mm2mils100(PinWidth/2), \
86 mm2mils100(-PinSpacing*2), \
87 mm2mils100(PinHeight - PinWidth/2), \
88 mm2mils100(PinWidth), \
90 mm2mils100(PinWidth)+(MaskDelta*2), \
94 mm2mils100(PinSpacing*2), \
95 mm2mils100(PinWidth/2), \
96 mm2mils100(PinSpacing*2), \
97 mm2mils100(PinHeight - PinWidth/2), \
98 mm2mils100(PinWidth), \
100 mm2mils100(PinWidth)+(MaskDelta*2), \
103 # the two ground / mounting tabs in line with signal pins
106 mm2mils100(TabInner + TabHeight/2), \
107 mm2mils100(TabHeight/2), \
108 mm2mils100(TabInner + TabWidth - TabHeight/2), \
109 mm2mils100(TabHeight/2), \
110 mm2mils100(TabHeight), \
112 mm2mils100(TabHeight)+(MaskDelta*2), \
116 mm2mils100(-TabInner - TabHeight/2), \
117 mm2mils100(TabHeight/2), \
118 mm2mils100(-TabInner - TabWidth + TabHeight/2), \
119 mm2mils100(TabHeight/2), \
120 mm2mils100(TabHeight), \
122 mm2mils100(TabHeight)+(MaskDelta*2), \
125 # the two ground / mounting tabs near the center of area
128 mm2mils100(PadInner + PadHeight/2), \
129 mm2mils100(PadCenter), \
130 mm2mils100(PadInner + PadWidth - PadHeight/2), \
131 mm2mils100(PadCenter), \
132 mm2mils100(PadHeight), \
134 mm2mils100(PadHeight)+(MaskDelta*2), \
138 mm2mils100(-PadInner - PadHeight/2), \
139 mm2mils100(PadCenter), \
140 mm2mils100(-PadInner - PadWidth + PadHeight/2), \
141 mm2mils100(PadCenter), \
142 mm2mils100(PadHeight), \
144 mm2mils100(PadHeight)+(MaskDelta*2), \
147 # the two "wing tab" ground / mounting pads on the sides
150 mm2mils100(WingInner + WingWidth/2), \
151 mm2mils100(PadCenter - WingHeight/2 + WingWidth/2), \
152 mm2mils100(WingInner + WingWidth/2), \
153 mm2mils100(PadCenter + WingHeight/2 - WingWidth/2), \
154 mm2mils100(WingWidth), \
156 mm2mils100(WingWidth)+(MaskDelta*2), \
160 mm2mils100(-WingInner - WingWidth/2), \
161 mm2mils100(PadCenter - WingHeight/2 + WingWidth/2), \
162 mm2mils100(-WingInner - WingWidth/2), \
163 mm2mils100(PadCenter + WingHeight/2 - WingWidth/2), \
164 mm2mils100(WingWidth), \
166 mm2mils100(WingWidth)+(MaskDelta*2), \
169 # box around actual connector size, with line at PCB edge
171 #print ' ElementLine[',\
172 # mm2mils100(-BoxWidth/2), \
174 # mm2mils100(-BoxWidth/2), \
175 # mm2mils100(BoxHeight), \
178 #print ' ElementLine[',\
179 # mm2mils100(BoxWidth/2), \
181 # mm2mils100(BoxWidth/2), \
182 # mm2mils100(BoxHeight), \
185 #print ' ElementLine[',\
186 # mm2mils100(-BoxWidth/2), \
188 # mm2mils100(BoxWidth/2), \
192 #print ' ElementLine[',\
193 # mm2mils100(-BoxWidth/2), \
194 # mm2mils100(BoxHeight), \
195 # mm2mils100(BoxWidth/2), \
196 # mm2mils100(BoxHeight), \
199 #print ' ElementLine[',\
200 # mm2mils100(-EdgeWidth/2), \
201 # mm2mils100(EdgeHeight), \
202 # mm2mils100(-BoxWidth/2), \
203 # mm2mils100(EdgeHeight), \
206 #print ' ElementLine[',\
207 # mm2mils100(BoxWidth/2), \
208 # mm2mils100(EdgeHeight), \
209 # mm2mils100(EdgeWidth/2), \
210 # mm2mils100(EdgeHeight), \