381c72ec2db0980c0a51dd2d0d35bfc8a3a42ad1
[hw/altusmetrum] / packages / W3011A.py
1 #!/usr/bin/python2
2 # Copyright 2007 by Bdale Garbee <bdale@gag.com>.  GPLv2
3 #
4 # Program to emit PCB footprint for Pulse Electronics W3011A GPS chip antenna
5 #
6 #   dimensions in mm from W3011.pdf
7 PinWidth = 0.80
8 PinHeight = 0.65
9 PadHeight = 1.60
10 PinSpacing = 2.40
11 ClearWidth = 4.00
12 ClearHeight = 6.25
13
14 import sys
15
16 # we're going to use the 1/100 of a mil fundamental unit form
17 def mm2mils100( mm ):
18         return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
19
20 print '# author: Bdale Garbee'
21 print '# email: bdale@gag.com'
22 print '# dist-license: GPL 2'
23 print '# use-license: unlimited'
24
25 print 'Element[0x0 "W3011A" "" "" 0 0 0 0 0 100 0x0]'
26 print "("
27 # pad 1 (signal trace)
28 print '   Pad[',\
29         mm2mils100(+PinSpacing/2+PinHeight/2), \
30         mm2mils100(1.60 - PinHeight/2), \
31         mm2mils100(+PinSpacing/2+PinWidth+PinHeight/2), \
32         mm2mils100(1.60 - PinHeight/2), \
33         mm2mils100(PinHeight), \
34         0, \
35         mm2mils100(PinHeight + 0.1), \
36         '"pin1" "1" 0x0100]'
37
38 print '   Pad[',\
39         mm2mils100(+PinSpacing/2+PinHeight/2), \
40         mm2mils100(PinHeight/2), \
41         mm2mils100(+PinSpacing/2+PinWidth+PinHeight/2), \
42         mm2mils100(PinHeight/2), \
43         mm2mils100(PinHeight), \
44         0, \
45         mm2mils100(PinHeight + 0.1), \
46         '"pin2" "2" 0x0100]'
47
48 print '   Pad[',\
49         mm2mils100(-PinSpacing/2-PinWidth/2), \
50         mm2mils100(PinWidth/2), \
51         mm2mils100(-PinSpacing/2-PinWidth/2), \
52         mm2mils100(PadHeight - PinWidth/2), \
53         mm2mils100(PinWidth), \
54         0, \
55         mm2mils100(PinWidth + 0.1), \
56         '"pin3" "3" 0x0100]'
57
58 print '   ElementLine[',\
59         mm2mils100(ClearWidth/2), \
60         mm2mils100(0), \
61         mm2mils100(ClearWidth/2), \
62         mm2mils100(ClearHeight), \
63         '1000 ]'
64
65 print '   ElementLine[',\
66         mm2mils100(-ClearWidth/2), \
67         mm2mils100(0), \
68         mm2mils100(-ClearWidth/2), \
69         mm2mils100(ClearHeight), \
70         '1000 ]'
71
72 print '   ElementLine[',\
73         mm2mils100(-ClearWidth/2-0.2), \
74         mm2mils100(0), \
75         mm2mils100(ClearWidth/2+0.2), \
76         mm2mils100(0), \
77         '1000 ]'
78
79 print '   ElementLine[',\
80         mm2mils100(-ClearWidth/2), \
81         mm2mils100(ClearHeight), \
82         mm2mils100(ClearWidth/2), \
83         mm2mils100(ClearHeight), \
84         '1000 ]'
85
86 print ")"