--- /dev/null
+#!/usr/bin/python
+# Copyright 2016 by Bdale Garbee <bdale@gag.com>. GPLv3
+#
+# Program to emit PCB footprint for 3x3x1mm QFN24 package used by MPU-9250
+#
+
+# dimensions in mm from Invensense MPU-9250-Datasheet.pdf
+PinWidth = 0.20
+PinResist = PinWidth + (2 * 0.07)
+PinHeight = 0.30
+PinSpacing = 0.40
+Overall = 3.80
+
+import sys
+
+# we're going to use the 1/100 of a mil fundamental unit form
+def mm2mils100( mm ):
+ return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
+
+print '# author: Bdale Garbee'
+print '# email: bdale@gag.com'
+print '# dist-license: GPL 2'
+print '# use-license: unlimited'
+
+print 'Element[0x0 "ITG3200" "" "" 0 0 0 0 0 100 0x0]'
+print "("
+
+# pins
+for pin in range (1,7):
+ print ' Pad[',\
+ mm2mils100((-3.5 + pin) * PinSpacing), \
+ mm2mils100(-Overall/2 + PinWidth/2), \
+ mm2mils100((-3.5 + pin) * PinSpacing), \
+ mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
+ mm2mils100(PinWidth), \
+ mm2mils100(PinSpacing - PinWidth), \
+ mm2mils100(PinResist), \
+ '"pin%i"' % (19-pin), '"%i"' % (19-pin), '0x0100]'
+
+ print ' Pad[',\
+ mm2mils100((-3.5 + pin) * PinSpacing), \
+ mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
+ mm2mils100((-3.5 + pin) * PinSpacing), \
+ mm2mils100(+Overall/2 - PinWidth/2), \
+ mm2mils100(PinWidth), \
+ mm2mils100(PinSpacing - PinWidth), \
+ mm2mils100(PinResist), \
+ '"pin%i"' % pin, '"%i"' % pin, '0x0100]'
+
+ print ' Pad[',\
+ mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
+ mm2mils100((-3.5 + pin) * PinSpacing), \
+ mm2mils100(Overall/2 - PinWidth/2), \
+ mm2mils100((-3.5 + pin) * PinSpacing), \
+ mm2mils100(PinWidth), \
+ mm2mils100(PinSpacing - PinWidth), \
+ mm2mils100(PinResist), \
+ '"pin%i"' % (13-pin), '"%i"' % (13-pin), '0x0100]'
+
+ print ' Pad[',\
+ mm2mils100(-Overall/2 + PinWidth/2), \
+ mm2mils100((-3.5 + pin) * PinSpacing), \
+ mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
+ mm2mils100((-3.5 + pin) * PinSpacing), \
+ mm2mils100(PinWidth), \
+ mm2mils100(PinSpacing - PinWidth), \
+ mm2mils100(PinResist), \
+ '"pin%i"' % (18+pin), '"%i"' % (18+pin), '0x0100]'
+
+print ' ElementArc[',\
+ mm2mils100(-(Overall/2)), \
+ mm2mils100(Overall/2), \
+ '500 500 0 360 1000 ]'
+print ")"
--- /dev/null
+v 20130925 2
+P 0 3000 300 3000 1 0 0
+{
+T 0 3000 5 10 0 0 0 0 1
+pintype=pwr
+T 355 2995 5 10 1 1 0 0 1
+pinlabel=VDD
+T 205 3045 5 10 1 1 0 6 1
+pinnumber=13
+T 0 3000 5 10 0 0 0 0 1
+pinseq=13
+}
+P 2700 200 2400 200 1 0 0
+{
+T 2700 200 5 10 0 0 0 0 1
+pintype=io
+T 2345 195 5 10 1 1 0 6 1
+pinlabel=SDA/SDI
+T 2495 245 5 10 1 1 0 0 1
+pinnumber=24
+T 2700 200 5 10 0 0 0 0 1
+pinseq=24
+}
+B 300 0 2100 3300 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
+T 1295 2195 8 10 0 1 0 0 1
+device=IC
+T 295 3395 8 10 1 1 0 0 1
+refdes=U?
+P 2700 2600 2400 2600 1 0 0
+{
+T 2700 2600 5 10 0 0 0 6 1
+pintype=in
+T 2345 2595 5 10 1 1 0 6 1
+pinlabel=FSYNC
+T 2495 2645 5 10 1 1 0 0 1
+pinnumber=11
+T 2700 2600 5 10 0 0 0 6 1
+pinseq=11
+}
+P 2700 1400 2400 1400 1 0 0
+{
+T 2700 1400 5 10 0 0 0 6 1
+pintype=in
+T 2345 1395 5 10 1 1 0 6 1
+pinlabel=nCS
+T 2495 1445 5 10 1 1 0 0 1
+pinnumber=22
+T 2700 1400 5 10 0 0 0 6 1
+pinseq=22
+}
+P 2700 600 2400 600 1 0 0
+{
+T 2700 600 5 10 0 0 0 0 1
+pintype=in
+T 2345 595 5 10 1 1 0 6 1
+pinlabel=SCL/SCLK
+T 2495 645 5 10 1 1 0 0 1
+pinnumber=23
+T 2700 600 5 10 0 0 0 0 1
+pinseq=23
+}
+P 2700 2200 2400 2200 1 0 0
+{
+T 2700 2200 5 10 0 0 0 0 1
+pintype=out
+T 2345 2195 5 10 1 1 0 6 1
+pinlabel=INT
+T 2495 2245 5 10 1 1 0 0 1
+pinnumber=12
+T 2700 2200 5 10 0 0 0 0 1
+pinseq=12
+}
+P 2700 1000 2400 1000 1 0 0
+{
+T 2700 1000 5 10 0 0 0 0 1
+pintype=io
+T 2345 995 5 10 1 1 0 6 1
+pinlabel=AD0/SDO
+T 2495 1045 5 10 1 1 0 0 1
+pinnumber=9
+T 2700 1000 5 10 0 0 0 0 1
+pinseq=9
+}
+P 0 200 300 200 1 0 0
+{
+T 0 200 5 10 0 0 0 0 1
+pintype=pwr
+T 355 195 5 10 1 1 0 0 1
+pinlabel=GND
+T 205 245 5 10 1 1 0 6 1
+pinnumber=18
+T 0 200 5 10 0 0 0 0 1
+pinseq=18
+}
+P 2700 3000 2400 3000 1 0 0
+{
+T 2700 3000 5 10 0 0 0 0 1
+pintype=in
+T 2345 2995 5 10 1 1 0 6 1
+pinlabel=RESV
+T 2495 3045 5 10 1 1 0 0 1
+pinnumber=1
+T 2700 3000 5 10 0 0 0 0 1
+pinseq=1
+}
+T 1495 3395 8 10 1 1 0 0 1
+value=MPU-9250
+P 0 2200 300 2200 1 0 0
+{
+T 0 2200 5 10 0 0 0 0 1
+pintype=pwr
+T 355 2195 5 10 1 1 0 0 1
+pinlabel=REGOUT
+T 205 2245 5 10 1 1 0 6 1
+pinnumber=10
+T 0 2200 5 10 0 0 0 0 1
+pinseq=10
+}
+P 0 1800 300 1800 1 0 0
+{
+T 0 1800 5 10 0 0 0 0 1
+pintype=pwr
+T 355 1795 5 10 1 1 0 0 1
+pinlabel=RESV
+T 205 1845 5 10 1 1 0 6 1
+pinnumber=20
+T 0 1800 5 10 0 0 0 0 1
+pinseq=20
+}
+P 0 1400 300 1400 1 0 0
+{
+T 0 1400 5 10 0 0 0 6 1
+pintype=io
+T 355 1395 5 10 1 1 0 0 1
+pinlabel=AUX_DA
+T 205 1445 5 10 1 1 0 6 1
+pinnumber=21
+T 0 1400 5 10 0 0 0 6 1
+pinseq=21
+}
+P 0 1000 300 1000 1 0 0
+{
+T 0 1000 5 10 0 0 0 6 1
+pintype=out
+T 355 995 5 10 1 1 0 0 1
+pinlabel=AUX_CL
+T 205 1045 5 10 1 1 0 6 1
+pinnumber=7
+T 0 1000 5 10 0 0 0 6 1
+pinseq=7
+}
+P 0 2600 300 2600 1 0 0
+{
+T 0 2600 5 10 0 0 0 0 1
+pintype=pwr
+T 355 2595 5 10 1 1 0 0 1
+pinlabel=VDDIO
+T 205 2645 5 10 1 1 0 6 1
+pinnumber=8
+T 0 2600 5 10 0 0 0 0 1
+pinseq=8
+}