From e9d909204992d6f646c27104ea4b09e28878340b Mon Sep 17 00:00:00 2001 From: Bdale Garbee Date: Thu, 8 Oct 2015 16:27:45 -0600 Subject: [PATCH] D-shell connectors from cncfpga, reusing 9-pin for cortexelf --- packages/Makefile | 5 +- packages/norcomp/182.py | 134 +++++++++++++++++++++++++++++ packages/norcomp/189.py | 171 ++++++++++++++++++++++++++++++++++++++ packages/norcomp/Makefile | 26 ++++++ 4 files changed, 334 insertions(+), 2 deletions(-) create mode 100755 packages/norcomp/182.py create mode 100755 packages/norcomp/189.py create mode 100644 packages/norcomp/Makefile diff --git a/packages/Makefile b/packages/Makefile index 44188a4..0e48f41 100644 --- a/packages/Makefile +++ b/packages/Makefile @@ -4,10 +4,11 @@ DIRS= \ diodes \ jst \ molex \ + norcomp \ + phoenix \ pinheader \ switches \ - tyco \ - phoenix + tyco SOIC=soic-16.fp diff --git a/packages/norcomp/182.py b/packages/norcomp/182.py new file mode 100755 index 0000000..f02ca3e --- /dev/null +++ b/packages/norcomp/182.py @@ -0,0 +1,134 @@ +#!/usr/bin/python +# Copyright 2011 by Bdale Garbee . GPLv2 +# +# Program to emit PCB footprint for Norcomp 182-YYY-213RYY1 connectors +# Female, right angle, 0.318 setback +# +# Needs pin count on command line, 9/15/25/37 are valid +# + +# dimensions in mm from R182-YYY-213RYY1-1.pdf + +PinDiam = 1.09 +PinSpacing = 2.77 +RowSpacing = 2.84 +MntDiam = 3.05 +BoxY = 12.42 +FaceY = 8.08 +ARing = 0.8 +Clearance = 0.36 + +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 ) + +pins = int(sys.argv[1]) + +if pins == 9: + BoxX = 30.81 + MntX = 24.99 +elif pins == 15: + BoxX = 39.14 + MntX = 33.32 +elif pins == 25: + BoxX = 53.04 + MntX = 47.04 +elif pins == 37: + BoxX = 69.32 + MntX = 63.50 +else: + sys.stderr.write('Valid pin counts are 9|15|25|37\n') + sys.exit(1) + +pinoffset = (pins - 1) / 4 * PinSpacing +if pins == 15: + pinoffset += PinSpacing/2 + +print '# author: Bdale Garbee' +print '# email: bdale@gag.com' +print '# dist-license: GPL 2' +print '# use-license: unlimited' + +print 'Element[0x0 "DB%iF"' % pins,'"" "" 0 0 0 0 0 100 0x0]' +print "(" +for col in range ((pins+1)/2): + pinnum = col + 1 + if pinnum == 1: + Flags = '0x0101' + else: + Flags = '0x0001' + + print ' Pin[', \ + mm2mils100((pinnum-1)*PinSpacing-pinoffset), \ + mm2mils100(RowSpacing/2), \ + mm2mils100(PinDiam+ARing), \ + mm2mils100(Clearance), \ + mm2mils100(PinDiam+ARing+Clearance), \ + mm2mils100(PinDiam), \ + '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']' + + pinnum = col + 1 + (pins+1)/2 + Flags = '0x0001' + if pinnum <= pins: + print ' Pin[', \ + mm2mils100((col)*PinSpacing-pinoffset+PinSpacing/2), \ + mm2mils100(-RowSpacing/2), \ + mm2mils100(PinDiam+ARing), \ + mm2mils100(Clearance), \ + mm2mils100(PinDiam+ARing+Clearance), \ + mm2mils100(PinDiam), \ + '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']' + + + +print ' Pin[', \ + mm2mils100(MntX/2), \ + mm2mils100(0), \ + mm2mils100(MntDiam+ARing), \ + mm2mils100(Clearance), \ + mm2mils100(MntDiam+ARing+Clearance), \ + mm2mils100(MntDiam), \ + '"mnt" "0"', '0x0001', ']' + +print ' Pin[', \ + mm2mils100(-MntX/2), \ + mm2mils100(0), \ + mm2mils100(MntDiam+ARing), \ + mm2mils100(Clearance), \ + mm2mils100(MntDiam+ARing+Clearance), \ + mm2mils100(MntDiam), \ + '"mnt" "0"', '0x0001', ']' + +print ' ElementLine[', \ + mm2mils100(-BoxX/2), \ + mm2mils100(-FaceY-RowSpacing/2), \ + mm2mils100(BoxX/2), \ + mm2mils100(-FaceY-RowSpacing/2), \ + LineWidth, ']' + +print ' ElementLine[', \ + mm2mils100(-BoxX/2), \ + mm2mils100(BoxY-FaceY-RowSpacing/2), \ + mm2mils100(BoxX/2), \ + mm2mils100(BoxY-FaceY-RowSpacing/2), \ + LineWidth, ']' + +print ' ElementLine[', \ + mm2mils100(BoxX/2), \ + mm2mils100(-FaceY-RowSpacing/2), \ + mm2mils100(BoxX/2), \ + mm2mils100(BoxY-FaceY-RowSpacing/2), \ + LineWidth, ']' + +print ' ElementLine[', \ + mm2mils100(-BoxX/2), \ + mm2mils100(-FaceY-RowSpacing/2), \ + mm2mils100(-BoxX/2), \ + mm2mils100(BoxY-FaceY-RowSpacing/2), \ + LineWidth, ']' + +print ")" diff --git a/packages/norcomp/189.py b/packages/norcomp/189.py new file mode 100755 index 0000000..46be29b --- /dev/null +++ b/packages/norcomp/189.py @@ -0,0 +1,171 @@ +#!/usr/bin/python +# Copyright 2011 by Bdale Garbee . GPLv2 +# +# Program to emit PCB footprint for Norcomp 182-YYY-213RYY1 connectors +# dual (stacked) female, right angle, 0.318 setback +# +# Needs pin count on command line, 9/15/25/37 are valid +# + +# dimensions in mm from 189-YYY-513R571.pdf + +PinDiam = 1.20 +PinSpacing = 2.77 +RowSpacing = 2.84 +DualSpacing = 6.58 +MntDiam = 3.05 +BoxY = 19.304 +FaceY = 8.08 +ARing = 0.8 +Clearance = 0.36 + +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 ) + +pins = int(sys.argv[1]) + +if pins == 9: + BoxX = 30.58 + MntX = 24.99 +elif pins == 15: + BoxX = 38.99 + MntX = 33.32 +elif pins == 25: + BoxX = 52.78 + MntX = 46.99 +elif pins == 37: + BoxX = 69.19 + MntX = 63.50 +else: + sys.stderr.write('Valid pin counts are 9|15|25|37\n') + sys.exit(1) + +pinoffset = (pins - 1) / 4 * PinSpacing +if pins == 15: + pinoffset += PinSpacing/2 + +print '# author: Bdale Garbee' +print '# email: bdale@gag.com' +print '# dist-license: GPL 2' +print '# use-license: unlimited' + +print 'Element[0x0 "DB%iF"' % pins,'"" "" 0 0 0 0 0 100 0x0]' +print "(" +for col in range ((pins+1)/2): + pinnum = col + 1 + if pinnum == 1: + Flags = '0x0101' + else: + Flags = '0x0001' + + print ' Pin[', \ + mm2mils100((pinnum-1)*PinSpacing-pinoffset), \ + mm2mils100(RowSpacing/2), \ + mm2mils100(PinDiam+ARing), \ + mm2mils100(Clearance), \ + mm2mils100(PinDiam+ARing+Clearance), \ + mm2mils100(PinDiam), \ + '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']' + + pinnum2 = pinnum + pins + print ' Pin[', \ + mm2mils100((pinnum-1)*PinSpacing-pinoffset), \ + mm2mils100(RowSpacing/2+DualSpacing), \ + mm2mils100(PinDiam+ARing), \ + mm2mils100(Clearance), \ + mm2mils100(PinDiam+ARing+Clearance), \ + mm2mils100(PinDiam), \ + '"pin%i"' % pinnum2, '"%i"' % pinnum2, Flags, ']' + + pinnum = col + 1 + (pins+1)/2 + Flags = '0x0001' + if pinnum <= pins: + print ' Pin[', \ + mm2mils100((col)*PinSpacing-pinoffset+PinSpacing/2), \ + mm2mils100(-RowSpacing/2), \ + mm2mils100(PinDiam+ARing), \ + mm2mils100(Clearance), \ + mm2mils100(PinDiam+ARing+Clearance), \ + mm2mils100(PinDiam), \ + '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']' + + pinnum2 = pinnum + pins + print ' Pin[', \ + mm2mils100((col)*PinSpacing-pinoffset+PinSpacing/2), \ + mm2mils100(-RowSpacing/2+DualSpacing), \ + mm2mils100(PinDiam+ARing), \ + mm2mils100(Clearance), \ + mm2mils100(PinDiam+ARing+Clearance), \ + mm2mils100(PinDiam), \ + '"pin%i"' % pinnum2, '"%i"' % pinnum2, Flags, ']' + +print ' Pin[', \ + mm2mils100(MntX/2), \ + mm2mils100(-RowSpacing/2), \ + mm2mils100(MntDiam+ARing), \ + mm2mils100(Clearance), \ + mm2mils100(MntDiam+ARing+Clearance), \ + mm2mils100(MntDiam), \ + '"mnt" "0"', '0x0001', ']' + +print ' Pin[', \ + mm2mils100(-MntX/2), \ + mm2mils100(-RowSpacing/2), \ + mm2mils100(MntDiam+ARing), \ + mm2mils100(Clearance), \ + mm2mils100(MntDiam+ARing+Clearance), \ + mm2mils100(MntDiam), \ + '"mnt" "0"', '0x0001', ']' + +print ' Pin[', \ + mm2mils100(MntX/2), \ + mm2mils100(DualSpacing), \ + mm2mils100(MntDiam+ARing), \ + mm2mils100(Clearance), \ + mm2mils100(MntDiam+ARing+Clearance), \ + mm2mils100(MntDiam), \ + '"mnt" "0"', '0x0001', ']' + +print ' Pin[', \ + mm2mils100(-MntX/2), \ + mm2mils100(DualSpacing), \ + mm2mils100(MntDiam+ARing), \ + mm2mils100(Clearance), \ + mm2mils100(MntDiam+ARing+Clearance), \ + mm2mils100(MntDiam), \ + '"mnt" "0"', '0x0001', ']' + +print ' ElementLine[', \ + mm2mils100(-BoxX/2), \ + mm2mils100(-FaceY-RowSpacing/2), \ + mm2mils100(BoxX/2), \ + mm2mils100(-FaceY-RowSpacing/2), \ + LineWidth, ']' + +print ' ElementLine[', \ + mm2mils100(-BoxX/2), \ + mm2mils100(BoxY-FaceY-RowSpacing/2), \ + mm2mils100(BoxX/2), \ + mm2mils100(BoxY-FaceY-RowSpacing/2), \ + LineWidth, ']' + +print ' ElementLine[', \ + mm2mils100(BoxX/2), \ + mm2mils100(-FaceY-RowSpacing/2), \ + mm2mils100(BoxX/2), \ + mm2mils100(BoxY-FaceY-RowSpacing/2), \ + LineWidth, ']' + +print ' ElementLine[', \ + mm2mils100(-BoxX/2), \ + mm2mils100(-FaceY-RowSpacing/2), \ + mm2mils100(-BoxX/2), \ + mm2mils100(BoxY-FaceY-RowSpacing/2), \ + LineWidth, ']' + +print ")" diff --git a/packages/norcomp/Makefile b/packages/norcomp/Makefile new file mode 100644 index 0000000..a2b3e28 --- /dev/null +++ b/packages/norcomp/Makefile @@ -0,0 +1,26 @@ +all: 182-all 189-all + +182-all: 182-9.fp 182-15.fp 182-25.fp 182-37.fp + +182-9.fp: 182.py + ./182.py 9 > 182-9.fp +182-15.fp: 182.py + ./182.py 15 > 182-15.fp +182-25.fp: 182.py + ./182.py 25 > 182-25.fp +182-37.fp: 182.py + ./182.py 37 > 182-37.fp + +189-all: 189-9.fp 189-15.fp 189-25.fp 189-37.fp + +189-9.fp: 189.py + ./189.py 9 > 189-9.fp +189-15.fp: 189.py + ./189.py 15 > 189-15.fp +189-25.fp: 189.py + ./189.py 25 > 189-25.fp +189-37.fp: 189.py + ./189.py 37 > 189-37.fp + +clean: + rm -f *.fp -- 2.47.2