2 # Copyright 2008 by Bdale Garbee <bdale@gag.com>. GPLv2
4 # Program to emit PCB footprint for 44 pin Venus634FLPx GPS receiver module
7 # dimensions in mm from Skytraq-Venus634FLPx_DS_v051-2.pdf
10 PinResist = 0.381 # width of gap in solder resist over pad
17 # we're going to use the 1/100 of a mil fundamental unit form
19 return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
21 print 'Element[0x0 "Venus634FLPx" "" "" 0 0 0 0 0 100 0x0]'
25 for pin in range (1,12):
27 mm2mils100((pin - 6) * PinSpacing), \
28 mm2mils100(-Overall/2 + PinWidth/2), \
29 mm2mils100((pin - 6) * PinSpacing), \
30 mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
31 mm2mils100(PinWidth), \
32 mm2mils100(PinSpacing - PinWidth), \
33 mm2mils100(PinResist), \
34 '"pin%i"' % (12-pin), '"%i"' % (12-pin), '0x0100]'
37 mm2mils100((pin - 6) * PinSpacing), \
38 mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
39 mm2mils100((pin - 6) * PinSpacing), \
40 mm2mils100(+Overall/2 - PinWidth/2), \
41 mm2mils100(PinWidth), \
42 mm2mils100(PinSpacing - PinWidth), \
43 mm2mils100(PinResist), \
44 '"pin%i"' % (22+pin), '"%i"' % (22+pin), '0x0100]'
47 mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
48 mm2mils100((pin - 6) * PinSpacing), \
49 mm2mils100(Overall/2 - PinWidth/2), \
50 mm2mils100((pin - 6) * PinSpacing), \
51 mm2mils100(PinWidth), \
52 mm2mils100(PinSpacing - PinWidth), \
53 mm2mils100(PinResist), \
54 '"pin%i"' % (45-pin), '"%i"' % (45-pin), '0x0100]'
57 mm2mils100(-Overall/2 + PinWidth/2), \
58 mm2mils100((pin - 6) * PinSpacing), \
59 mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
60 mm2mils100((pin - 6) * PinSpacing), \
61 mm2mils100(PinWidth), \
62 mm2mils100(PinSpacing - PinWidth), \
63 mm2mils100(PinResist), \
64 '"pin%i"' % (11+pin), '"%i"' % (11+pin), '0x0100]'
67 print ' ElementLine[',\
68 mm2mils100(-BodySize/2), \
69 mm2mils100(-BodySize/2), \
70 mm2mils100(-BodySize/2), \
71 mm2mils100( BodySize/2), \
74 print ' ElementLine[',\
75 mm2mils100(-BodySize/2), \
76 mm2mils100( BodySize/2), \
77 mm2mils100( BodySize/2), \
78 mm2mils100( BodySize/2), \
81 print ' ElementLine[',\
82 mm2mils100( BodySize/2), \
83 mm2mils100( BodySize/2), \
84 mm2mils100( BodySize/2), \
85 mm2mils100(-BodySize/2), \
88 print ' ElementLine[',\
89 mm2mils100( BodySize/2), \
90 mm2mils100(-BodySize/2), \
91 mm2mils100(-BodySize/2), \
92 mm2mils100(-BodySize/2), \
96 print ' ElementArc[',\
97 mm2mils100( (BodySize/2)+0.3), \
98 mm2mils100(-((BodySize/2)+0.3)), \
99 '500 500 0 360 1000 ]'