2 # Copyright 2016 by Bdale Garbee <bdale@gag.com>. GPLv3
4 # Program to emit PCB footprint for 3x3x1mm QFN24 package used by MPU-9250
7 # dimensions in mm from Invensense MPU-9250-Datasheet.pdf
12 PartPinHeight = 0.30 # inward from overall edge
13 Tout = 0.40 # extend pads outside by this much
14 Tin = -0.05 # extend pads inside by this much
15 PinHeight = PartPinHeight + Tout + Tin
16 Overall = PartOverall + (2 * Tout)
18 PinResist = PinWidth + (2 * 0.07)
22 # we're going to use the 1/100 of a mil fundamental unit form
24 return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
26 print '# author: Bdale Garbee'
27 print '# email: bdale@gag.com'
28 print '# dist-license: GPL 2'
29 print '# use-license: unlimited'
31 print 'Element[0x0 "ITG3200" "" "" 0 0 0 0 0 100 0x0]'
35 for pin in range (1,7):
37 mm2mils100((-3.5 + pin) * PinSpacing), \
38 mm2mils100(-Overall/2 + PinWidth/2), \
39 mm2mils100((-3.5 + pin) * PinSpacing), \
40 mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
41 mm2mils100(PinWidth), \
42 mm2mils100(PinSpacing - PinWidth), \
43 mm2mils100(PinResist), \
44 '"pin%i"' % (19-pin), '"%i"' % (19-pin), '0x0100]'
47 mm2mils100((-3.5 + pin) * PinSpacing), \
48 mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
49 mm2mils100((-3.5 + pin) * PinSpacing), \
50 mm2mils100(+Overall/2 - PinWidth/2), \
51 mm2mils100(PinWidth), \
52 mm2mils100(PinSpacing - PinWidth), \
53 mm2mils100(PinResist), \
54 '"pin%i"' % pin, '"%i"' % pin, '0x0100]'
57 mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
58 mm2mils100((-3.5 + pin) * PinSpacing), \
59 mm2mils100(Overall/2 - PinWidth/2), \
60 mm2mils100((-3.5 + pin) * PinSpacing), \
61 mm2mils100(PinWidth), \
62 mm2mils100(PinSpacing - PinWidth), \
63 mm2mils100(PinResist), \
64 '"pin%i"' % (13-pin), '"%i"' % (13-pin), '0x0100]'
67 mm2mils100(-Overall/2 + PinWidth/2), \
68 mm2mils100((-3.5 + pin) * PinSpacing), \
69 mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
70 mm2mils100((-3.5 + pin) * PinSpacing), \
71 mm2mils100(PinWidth), \
72 mm2mils100(PinSpacing - PinWidth), \
73 mm2mils100(PinResist), \
74 '"pin%i"' % (18+pin), '"%i"' % (18+pin), '0x0100]'
76 print ' ElementArc[',\
77 mm2mils100(-(Overall/2)), \
78 mm2mils100(Overall/2), \
79 '500 500 0 360 1000 ]'