From 98c3a0c8d20fecaee2fff5b77e01b41c4f4a52e9 Mon Sep 17 00:00:00 2001 From: Bdale Garbee Date: Wed, 30 Nov 2011 21:29:30 -0700 Subject: [PATCH] catch up on stuff --- pkg/newlib/50milpitch.py | 49 +++++++++++++++++++++++ pkg/newlib/ITG3200.py | 74 ++++++++++++++++++++++++++++++++++ pkg/newlib/KSCJ.py | 67 +++++++++++++++++++++++++++++++ pkg/newlib/SOT23-6.py | 51 ++++++++++++++++++++++++ pkg/newlib/TI-SO-14.py | 85 ++++++++++++++++++++++++++++++++++++++++ pkg/newlib/pj-037a.py | 79 +++++++++++++++++++++++++++++++++++++ sym/STM32L151.sym | 20 +++++----- 7 files changed, 415 insertions(+), 10 deletions(-) create mode 100755 pkg/newlib/50milpitch.py create mode 100755 pkg/newlib/ITG3200.py create mode 100755 pkg/newlib/KSCJ.py create mode 100755 pkg/newlib/SOT23-6.py create mode 100755 pkg/newlib/TI-SO-14.py create mode 100755 pkg/newlib/pj-037a.py diff --git a/pkg/newlib/50milpitch.py b/pkg/newlib/50milpitch.py new file mode 100755 index 0000000..76b1b78 --- /dev/null +++ b/pkg/newlib/50milpitch.py @@ -0,0 +1,49 @@ +#!/usr/bin/python +# Copyright 2011 by Bdale Garbee . GPLv2 +# +# Program to emit PCB footprint for +# Sullins Connector Solutions single row 0.050" header pins +# +# Needs pin count on command line, in range of 2..50 +# + +# dimensions in mm +PinSpacing = 1.27 + +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 ) + +pins = int(sys.argv[1]) +if pins < 2: + sys.stderr.write('Must be at least 2 pins\n') + sys.exit(1) +if pins > 15: + sys.stderr.write('Must be no more than 15 pins\n') + sys.exit(1) + +print '# author: Bdale Garbee' +print '# email: bdale@gag.com' +print '# dist-license: GPL 2' +print '# use-license: unlimited' + +print 'Element[0x0 "50mil%ipin"' % pins,'"" "" 0 0 0 0 0 100 0x0]' +print "(" +for pin in range (1,pins+1): + pinnum = pins + 1 - pin + if pinnum == 1: + Flags = '0x0101' + else: + Flags = '0x0001' + print ' Pin[', \ + mm2mils100((pins-1)*PinSpacing - (pin-1)*PinSpacing), \ + 0, \ + 4200, \ + 1200, \ + 4800, \ + 2800, \ + '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']' + +print ")" diff --git a/pkg/newlib/ITG3200.py b/pkg/newlib/ITG3200.py new file mode 100755 index 0000000..dc1f878 --- /dev/null +++ b/pkg/newlib/ITG3200.py @@ -0,0 +1,74 @@ +#!/usr/bin/python +# Copyright 2011 by Bdale Garbee . GPLv2 +# +# Program to emit PCB footprint for QFN24 package used by ITG-3200 gyro +# + +# dimensions in mm from Invensense PS-ITG-3200-00-01.4.pdf +PinWidth = 0.28 +PinResist = PinWidth + (2 * 0.07) +PinHeight = 0.8 +PinSpacing = 0.50 +Overall = 4.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), '0x0000]' + + 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, '0x0000]' + + 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), '0x0000]' + + 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), '0x0000]' + +print ' ElementArc[',\ + mm2mils100(-(Overall/2)), \ + mm2mils100(Overall/2), \ + '500 500 0 360 1000 ]' +print ")" diff --git a/pkg/newlib/KSCJ.py b/pkg/newlib/KSCJ.py new file mode 100755 index 0000000..07a2d27 --- /dev/null +++ b/pkg/newlib/KSCJ.py @@ -0,0 +1,67 @@ +#!/usr/bin/python +# Copyright 2007 by Bdale Garbee . GPLv2 +# +# Program to emit PCB footprint for C&K KSCJ SPST switch +# + +# dimensions in mm from C&K KSC_31aug10.pdf datasheet + +PadHeight = 1.0 +PadWidth = 2.8 +HSpacing = 4.0 +WSpacing = 3.0 + +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 "PCM12SMTR" "" "" 0 0 0 0 0 100 0x0]' +print "(" +print ' Pad[',\ + mm2mils100(WSpacing/2 + PadHeight/2), \ + mm2mils100(-HSpacing/2), \ + mm2mils100(WSpacing/2 + PadWidth - PadHeight/2), \ + mm2mils100(-HSpacing/2), \ + mm2mils100(PadHeight), \ + 0, \ + mm2mils100(PadHeight)+600, \ + '"pin2" "2" 0x0100]' + +print ' Pad[',\ + mm2mils100(WSpacing/2 + PadHeight/2), \ + mm2mils100(HSpacing/2), \ + mm2mils100(WSpacing/2 + PadWidth - PadHeight/2), \ + mm2mils100(HSpacing/2), \ + mm2mils100(PadHeight), \ + 0, \ + mm2mils100(PadHeight)+600, \ + '"pin1" "1" 0x0100]' + +print ' Pad[',\ + mm2mils100(-WSpacing/2 - PadHeight/2), \ + mm2mils100(HSpacing/2), \ + mm2mils100(-WSpacing/2 - PadWidth + PadHeight/2), \ + mm2mils100(HSpacing/2), \ + mm2mils100(PadHeight), \ + 0, \ + mm2mils100(PadHeight)+600, \ + '"pin1" "1" 0x0100]' + +print ' Pad[',\ + mm2mils100(-WSpacing/2 - PadHeight/2), \ + mm2mils100(-HSpacing/2), \ + mm2mils100(-WSpacing/2 - PadWidth + PadHeight/2), \ + mm2mils100(-HSpacing/2), \ + mm2mils100(PadHeight), \ + 0, \ + mm2mils100(PadHeight)+600, \ + '"pin2" "2" 0x0100]' + +print ")" diff --git a/pkg/newlib/SOT23-6.py b/pkg/newlib/SOT23-6.py new file mode 100755 index 0000000..4db86e3 --- /dev/null +++ b/pkg/newlib/SOT23-6.py @@ -0,0 +1,51 @@ +#!/usr/bin/python +# Copyright 2011 by Bdale Garbee . GPLv2 +# +# Program to emit PCB footprint for SOT23-6 + +# dimensions in mm +PinWidth = 0.70 +PinHeight = 1.00 +PinSpacing = 0.95 +RowSpacing = 1.60 + +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 "SOT23-6" "" "" 0 0 -10161 -12011 0 100 0x0]' +print "(" +for pin in range (0,3): + print ' Pad[',\ + mm2mils100((pin-1) * PinSpacing), \ + mm2mils100(-(RowSpacing/2 + PinWidth/2)), \ + mm2mils100((pin-1) * PinSpacing), \ + mm2mils100(-(RowSpacing/2 + PinHeight - PinWidth/2)), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinWidth)+600, \ + '"pin%i"' % (6 - pin), '"%i"' % (6 - pin), '0x0100]' + + print ' Pad[',\ + mm2mils100((pin-1) * PinSpacing), \ + mm2mils100(RowSpacing/2 + PinWidth/2), \ + mm2mils100((pin-1) * PinSpacing), \ + mm2mils100(RowSpacing/2 + PinHeight - PinWidth/2), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinWidth)+600, \ + '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]' + +print ' ElementArc[',\ + mm2mils100(-PinSpacing), \ + mm2mils100(RowSpacing*1.35), \ + '500 500 0 360 1000 ]' + +print ")" diff --git a/pkg/newlib/TI-SO-14.py b/pkg/newlib/TI-SO-14.py new file mode 100755 index 0000000..c38e7b6 --- /dev/null +++ b/pkg/newlib/TI-SO-14.py @@ -0,0 +1,85 @@ +#!/usr/bin/python +# Copyright 2007 by Bdale Garbee . GPLv2 +# +# Program to emit PCB footprint for SOIC 14 package used by LMV344 from TI +# + +# dimensions in mm from lmv344.pdf + +BodyWidth = 3.90 +BodyHeight = 8.65 + +PinWidth = 0.55 +PinHeight = 1.95 +PinSpacing = 1.27 +RowCenters = 4.80 +RowSpacing = RowCenters - PinHeight + +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 "SOIC14" "" "" 0 0 -10161 -12011 0 100 0x0]' +print "(" +for pin in range (0,7): + print ' Pad[',\ + mm2mils100((pin-3) * PinSpacing), \ + mm2mils100(-(RowSpacing/2 + PinWidth/2)), \ + mm2mils100((pin-3) * PinSpacing), \ + mm2mils100(-(RowSpacing/2 + PinHeight - PinWidth/2)), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinWidth)+600, \ + '"pin%i"' % (14 - pin), '"%i"' % (14 - pin), '0x0100]' + + print ' Pad[',\ + mm2mils100((pin-3) * PinSpacing), \ + mm2mils100(RowSpacing/2 + PinWidth/2), \ + mm2mils100((pin-3) * PinSpacing), \ + mm2mils100(RowSpacing/2 + PinHeight - PinWidth/2), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinWidth)+600, \ + '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]' + +print ' ElementLine[',\ + mm2mils100(-BodyHeight/2), \ + mm2mils100(-BodyWidth/2), \ + mm2mils100(-BodyHeight/2), \ + mm2mils100( BodyWidth/2), \ + '1000 ]' + +print ' ElementLine[',\ + mm2mils100(-BodyHeight/2), \ + mm2mils100( BodyWidth/2), \ + mm2mils100( BodyHeight/2), \ + mm2mils100( BodyWidth/2), \ + '1000 ]' + +print ' ElementLine[',\ + mm2mils100( BodyHeight/2), \ + mm2mils100( BodyWidth/2), \ + mm2mils100( BodyHeight/2), \ + mm2mils100(-BodyWidth/2), \ + '1000 ]' + +print ' ElementLine[',\ + mm2mils100( BodyHeight/2), \ + mm2mils100(-BodyWidth/2), \ + mm2mils100(-BodyHeight/2), \ + mm2mils100(-BodyWidth/2), \ + '1000 ]' + +print ' ElementArc[',\ + mm2mils100(-3 * PinSpacing), \ + mm2mils100(RowSpacing/2-PinHeight/4), \ + '500 500 0 360 1000 ]' + +print ")" diff --git a/pkg/newlib/pj-037a.py b/pkg/newlib/pj-037a.py new file mode 100755 index 0000000..f026d2c --- /dev/null +++ b/pkg/newlib/pj-037a.py @@ -0,0 +1,79 @@ +#!/usr/bin/python +# Copyright 2011 by Bdale Garbee . GPLv2 +# +# Program to emit PCB footprint for CUI PJ-037A +# + +CUIFrontPinDiam = 3.17 +CUIBackPinDiam = 3.65 +CUIFromEdge = 7.7 # flush with PCB edge +CUIBetween = 6.0 + +ARing = 0.8 +Clearance = 0.36 + +BoxWidth = 9.0 +BoxDepth = 14.5 + +LineWidth = 1000 + +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 "PJ-037A" "" "" 0 0 0 0 0 100 0x0]' +print "(" +print ' Pin[', \ + mm2mils100(CUIFromEdge), \ + mm2mils100(0), \ + mm2mils100(CUIFrontPinDiam+ARing), \ + mm2mils100(Clearance), \ + mm2mils100(CUIFrontPinDiam+ARing+Clearance), \ + mm2mils100(CUIFrontPinDiam), \ + '"2" "2"', '0x0001', ']' + +print ' Pin[', \ + mm2mils100(CUIFromEdge+CUIBetween), \ + mm2mils100(0), \ + mm2mils100(CUIBackPinDiam+ARing), \ + mm2mils100(Clearance), \ + mm2mils100(CUIBackPinDiam+ARing+Clearance), \ + mm2mils100(CUIBackPinDiam), \ + '"1" "1"', '0x0001', ']' + +print ' ElementLine[', \ + mm2mils100(0), \ + mm2mils100(-BoxWidth/2), \ + mm2mils100(BoxDepth), \ + mm2mils100(-BoxWidth/2), \ + LineWidth, ']' + +print ' ElementLine[', \ + mm2mils100(0), \ + mm2mils100(+BoxWidth/2), \ + mm2mils100(BoxDepth), \ + mm2mils100(+BoxWidth/2), \ + LineWidth, ']' + +print ' ElementLine[', \ + mm2mils100(0), \ + mm2mils100(+BoxWidth/2), \ + mm2mils100(0), \ + mm2mils100(-BoxWidth/2), \ + LineWidth, ']' + +print ' ElementLine[', \ + mm2mils100(BoxDepth), \ + mm2mils100(+BoxWidth/2), \ + mm2mils100(BoxDepth), \ + mm2mils100(-BoxWidth/2), \ + LineWidth, ']' + +print ")" diff --git a/sym/STM32L151.sym b/sym/STM32L151.sym index 8a791bf..79f24ba 100644 --- a/sym/STM32L151.sym +++ b/sym/STM32L151.sym @@ -67,15 +67,15 @@ T -6400 -1000 8 10 0 0 0 0 1 slot=1 T 400 20100 8 10 1 1 0 0 1 refdes=U? -P 0 19200 400 19200 1 0 0 +P 0 18800 400 18800 1 0 0 { -T 305 19245 5 10 1 1 0 6 1 +T 305 18845 5 10 1 1 0 6 1 pinnumber=20 -T 455 19195 3 10 1 1 0 0 1 +T 455 18795 3 10 1 1 0 0 1 pinlabel=VREF- -T 0 19200 5 10 0 1 0 6 1 +T 0 18800 5 10 0 1 0 6 1 pinseq=25 -T 0 19200 5 10 0 1 0 6 1 +T 0 18800 5 10 0 1 0 6 1 pintype=pwr } P 0 15200 400 15200 1 0 0 @@ -166,15 +166,15 @@ pinseq=20 T 0 18000 5 10 0 1 0 0 1 pintype=in } -P 0 18800 400 18800 1 0 0 +P 0 19200 400 19200 1 0 0 { -T 100 18900 5 10 1 1 0 0 1 +T 100 19300 5 10 1 1 0 0 1 pinnumber=21 -T 500 18800 3 10 1 1 0 0 1 +T 500 19200 3 10 1 1 0 0 1 pinlabel=VREF+ -T -400 18900 5 10 0 1 0 0 1 +T -400 19300 5 10 0 1 0 0 1 pinseq=21 -T 0 18800 5 10 0 1 0 0 1 +T 0 19200 5 10 0 1 0 0 1 pintype=pwr } P 9500 4800 9100 4800 1 0 0 -- 2.30.2