phoenix \
pinheader \
switches \
- tyco
+ te-connectivity
SOIC= \
soic-16.fp \
--- /dev/null
+#!/usr/bin/python
+# Copyright 2014 by Bdale Garbee <bdale@gag.com>. GPLv2
+#
+# Program to emit PCB footprint for
+# Tyco Electronics 3.5mm pitch right-angle terminal blocks ala 284512-4
+#
+# Needs pin count on command line, in range of 2..25
+#
+
+# dimensions in mm from ENG_CD_284512_E3.pdf
+PinDiam = 1.2
+PinSpacing = 3.5
+RowOffset = 8.0
+BoxHeight = 9.2
+BoxEnd = 2.75
+LineWidth = 600
+Thickness = 2.0
+Clearance = .32
+Mask = Thickness + 0.32
+
+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 > 25:
+ sys.stderr.write('Must be no more than 25 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 "284512-%i"' % 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(BoxEnd + (pin-1)*PinSpacing), \
+ mm2mils100(RowOffset), \
+ mm2mils100(Thickness), \
+ mm2mils100(Clearance), \
+ mm2mils100(Mask), \
+ mm2mils100(PinDiam), \
+ '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
+
+BoxWidth = (BoxEnd * 2) + ((pins - 1) * PinSpacing);
+
+print ' ElementLine[', \
+ mm2mils100(0), \
+ mm2mils100(0), \
+ mm2mils100(0), \
+ mm2mils100(BoxHeight), \
+ LineWidth, ']'
+
+print ' ElementLine[', \
+ mm2mils100(0), \
+ mm2mils100(BoxHeight), \
+ mm2mils100(BoxWidth), \
+ mm2mils100(BoxHeight), \
+ LineWidth, ']'
+
+print ' ElementLine[', \
+ mm2mils100(BoxWidth), \
+ mm2mils100(BoxHeight), \
+ mm2mils100(BoxWidth), \
+ mm2mils100(0), \
+ LineWidth, ']'
+
+print ' ElementLine[', \
+ mm2mils100(BoxWidth), \
+ mm2mils100(0), \
+ mm2mils100(0), \
+ mm2mils100(0), \
+ LineWidth, ']'
+
+print ")"
--- /dev/null
+#!/bin/sh
+
+for i in 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
+do
+ FILE="284512-"$i
+ ./3.5mm-ra.py $i > $FILE.fp
+done
--- /dev/null
+all: 284512-4.fp 282834-10.fp 0-215079-4.fp tphybrid.fp bnc-th.fp
+
+bnc-th.fp: bnc-th.py
+ ./bnc-th.py > bnc-th.fp
+
+284512-4.fp: 3.5mm-ra.py 3.5mm-series.sh
+ ./3.5mm-series.sh
+
+282834-10.fp: buchanan.py buchanan-Series.sh
+ ./buchanan-Series.sh
+
+0-215079-4.fp: micromatch micromatch-th-v.py
+ ./micromatch
+
+tphybrid.fp: tphybrid.py
+ ./tphybrid.py > tphybrid.fp
+
+clean:
+ rm -f *.fp
--- /dev/null
+#!/usr/bin/python
+# Copyright 2017 by Bdale Garbee <bdale@gag.com>. GPLv2+
+#
+# Program to emit PCB footprint for
+# TE Connectivity (AMP) through-hole BNC connectors 5227673 & 5227677
+#
+# This footprint is meant to allow the right-angle connector to be installed
+# on the "top" surface of the board, and the straight connector to be
+# installed on the top or bottom of the board.
+#
+# dimensions in mm from ENG_CD_5227673_A.pdf & ENG_CD_5227677_A1.pdf
+
+PinDiam = 0.89
+PinSpacing = 2.54
+
+MntDiam = 2.01
+MntSpacing = 10.16
+Mnt2Edge = 7.75
+
+SilkBox = 14.76
+
+LineWidth = 600
+ThicknessDelta = 1.0
+Clearance = .32
+MaskDelta = 0.32
+
+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 "AMP BNC" "" "" 0 0 0 0 0 100 0x0]'
+print "("
+
+print ' Pin[', \
+ 0, \
+ 0, \
+ mm2mils100(PinDiam+ThicknessDelta), \
+ mm2mils100(Clearance), \
+ mm2mils100(PinDiam+ThicknessDelta+MaskDelta), \
+ mm2mils100(PinDiam), \
+ '"1"', \
+ '"1"', \
+ "0x0001", ']'
+
+print ' Pin[', \
+ 0, \
+ mm2mils100(-PinSpacing), \
+ mm2mils100(PinDiam+ThicknessDelta), \
+ mm2mils100(Clearance), \
+ mm2mils100(PinDiam+ThicknessDelta+MaskDelta), \
+ mm2mils100(PinDiam), \
+ '"GND"', \
+ '"2"', \
+ "0x0001", ']'
+
+print ' Pin[', \
+ mm2mils100(MntSpacing/2), \
+ mm2mils100(MntSpacing/2), \
+ mm2mils100(MntDiam+ThicknessDelta), \
+ mm2mils100(Clearance), \
+ mm2mils100(MntDiam+ThicknessDelta+MaskDelta), \
+ mm2mils100(MntDiam), \
+ '"GND"', \
+ '"2"', \
+ "0x0001", ']'
+
+print ' Pin[', \
+ mm2mils100(-MntSpacing/2), \
+ mm2mils100(MntSpacing/2), \
+ mm2mils100(MntDiam+ThicknessDelta), \
+ mm2mils100(Clearance), \
+ mm2mils100(MntDiam+ThicknessDelta+MaskDelta), \
+ mm2mils100(MntDiam), \
+ '"GND"', \
+ '"2"', \
+ "0x0001", ']'
+
+print ' Pin[', \
+ mm2mils100(MntSpacing/2), \
+ mm2mils100(-MntSpacing/2), \
+ mm2mils100(MntDiam+ThicknessDelta), \
+ mm2mils100(Clearance), \
+ mm2mils100(MntDiam+ThicknessDelta+MaskDelta), \
+ mm2mils100(MntDiam), \
+ '"GND"', \
+ '"2"', \
+ "0x0001", ']'
+
+print ' Pin[', \
+ mm2mils100(-MntSpacing/2), \
+ mm2mils100(-MntSpacing/2), \
+ mm2mils100(MntDiam+ThicknessDelta), \
+ mm2mils100(Clearance), \
+ mm2mils100(MntDiam+ThicknessDelta+MaskDelta), \
+ mm2mils100(MntDiam), \
+ '"GND"', \
+ '"2"', \
+ "0x0001", ']'
+
+
+print ' ElementLine[', \
+ mm2mils100(MntSpacing/2+Mnt2Edge-SilkBox), \
+ mm2mils100(SilkBox/2), \
+ mm2mils100(MntSpacing/2+Mnt2Edge), \
+ mm2mils100(SilkBox/2), \
+ LineWidth, ']'
+
+print ' ElementLine[', \
+ mm2mils100(MntSpacing/2+Mnt2Edge-SilkBox), \
+ mm2mils100(-SilkBox/2), \
+ mm2mils100(MntSpacing/2+Mnt2Edge), \
+ mm2mils100(-SilkBox/2), \
+ LineWidth, ']'
+
+print ' ElementLine[', \
+ mm2mils100(MntSpacing/2+Mnt2Edge-SilkBox), \
+ mm2mils100(SilkBox/2), \
+ mm2mils100(MntSpacing/2+Mnt2Edge-SilkBox), \
+ mm2mils100(-SilkBox/2), \
+ LineWidth, ']'
+
+print ' ElementLine[', \
+ mm2mils100(MntSpacing/2+Mnt2Edge), \
+ mm2mils100(SilkBox/2), \
+ mm2mils100(MntSpacing/2+Mnt2Edge), \
+ mm2mils100(-SilkBox/2), \
+ LineWidth, ']'
+
+print ")"
--- /dev/null
+#!/bin/sh
+
+for i in 2 3 4 5 6 7 8 9 10 11 12 13 14 15
+do
+ FILE="282834-"$i
+ ./buchanan.py $i > $FILE.fp
+done
--- /dev/null
+#!/usr/bin/python
+# Copyright 2007 by Bdale Garbee <bdale@gag.com>. GPLv2
+#
+# Program to emit PCB footprint for
+# Tyco Electronics Buchanan 2.54mm pitch terminal blocks
+#
+# Needs pin count on command line, in range of 2..12
+#
+
+# dimensions in mm from ENG_CS_1308389_EUROSTYLE_TERMINAL_BLOCKS_0607.pdf
+PinDiam = 1.15
+PinSpacing = 2.54
+RowOffset = 3.25
+BoxHeight = 6.5
+BoxEnd = 1.5
+LineWidth = 600
+Thickness = 1.8
+Clearance = .32
+Mask = Thickness + 0.32
+
+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 "282834-%i"' % 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(BoxEnd + (pin-1)*PinSpacing), \
+ mm2mils100(RowOffset), \
+ mm2mils100(Thickness), \
+ mm2mils100(Clearance), \
+ mm2mils100(Mask), \
+ mm2mils100(PinDiam), \
+ '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
+
+BoxWidth = (BoxEnd * 2) + ((pins - 1) * PinSpacing);
+
+print ' ElementLine[', \
+ mm2mils100(0), \
+ mm2mils100(0), \
+ mm2mils100(0), \
+ mm2mils100(BoxHeight), \
+ LineWidth, ']'
+
+print ' ElementLine[', \
+ mm2mils100(0), \
+ mm2mils100(BoxHeight), \
+ mm2mils100(BoxWidth), \
+ mm2mils100(BoxHeight), \
+ LineWidth, ']'
+
+print ' ElementLine[', \
+ mm2mils100(BoxWidth), \
+ mm2mils100(BoxHeight), \
+ mm2mils100(BoxWidth), \
+ mm2mils100(0), \
+ LineWidth, ']'
+
+print ' ElementLine[', \
+ mm2mils100(BoxWidth), \
+ mm2mils100(0), \
+ mm2mils100(0), \
+ mm2mils100(0), \
+ LineWidth, ']'
+
+print ")"
--- /dev/null
+#!/bin/sh
+
+for i in 4 6 8 10 12 14 16 18 20
+do
+ TENS=$(( i / 10 ))
+ ONES=$(( i % 10 ))
+ FILE=$TENS"-215079-"$ONES
+ ./micromatch-th-v.py $i > $FILE.fp
+ FILE=$TENS"-338068-"$ONES
+ ./micromatch-th-v.py $i latch > $FILE.fp
+ FILE=$TENS"-188275-"$ONES
+ ./micromatch-smt-v.py $i > $FILE.fp
+ FILE=$TENS"-338069-"$ONES
+ ./micromatch-smt-v.py $i latch > $FILE.fp
+done
+./micromatch-th-v.py 24 > 2-215079-24.fp
--- /dev/null
+#!/usr/bin/python
+# Copyright 2015 by Bdale Garbee <bdale@gag.com>. GPLv2
+#
+# Program to emit PCB footprint for
+# Tyco/AMP Micro-MaTch vertical surface-mount female connectors
+#
+# Needs pin count on command line, in range of 4..20 even numbers only
+#
+
+# dimensions in mm from ENG_CD_188275_S3_c-188275_drw.pdf
+PadWidth = 1.50
+PadHeight = 3.00
+PadSpacing = 1.27
+RowGap = 1.50 # space between rows
+
+Clearance = 0.006 # in mils
+
+BoxY = 5.2
+BoxXbase = 4.55
+BoxXstep = 2.55
+
+LineWidth = 600
+
+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 < 4:
+ sys.stderr.write('Must be at least 4 pins\n')
+ sys.exit(1)
+if pins > 20:
+ sys.stderr.write('Must be no more than 20 pins\n')
+ sys.exit(1)
+
+if len(sys.argv) > 2:
+ if sys.argv[2] == "latch":
+ BoxXbase = 7.15
+
+BoxXOffset = -((pins - 1) * PadSpacing)/2
+
+print '# author: Bdale Garbee'
+print '# email: bdale@gag.com'
+print '# dist-license: GPL 2'
+print '# use-license: unlimited'
+
+print 'Element[0x0 "MicroMatch%i"' % pins,'"" "" 0 0 0 0 0 100 0x0]'
+print "("
+for col in range ((pins+1)/2):
+ for row in range (2):
+ if row == 1:
+ origin= (RowGap + PadHeight)/2
+ else:
+ origin= -(RowGap + PadHeight)/2
+ pinnum = (col * 2) + row + 1
+ Flags = '"square,nopaste"'
+
+ print ' Pad[', \
+ mm2mils100((pinnum-1)*PadSpacing + BoxXOffset), \
+ mm2mils100(origin + PadHeight/2 - PadWidth/2), \
+ mm2mils100((pinnum-1)*PadSpacing + BoxXOffset), \
+ mm2mils100(origin - PadHeight/2 + PadWidth/2), \
+ mm2mils100(PadWidth), \
+ 0, \
+ mm2mils100(PadWidth)+Clearance*2, \
+ '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
+
+BoxX = BoxXbase + pins/2 * BoxXstep
+BoxX1 = -BoxX/2
+BoxX2 = BoxX/2
+BoxY1 = -BoxY/2
+BoxY2 = BoxY/2
+
+print ' ElementLine[', \
+ mm2mils100(BoxX1), \
+ mm2mils100(BoxY1), \
+ mm2mils100(BoxX1), \
+ mm2mils100(BoxY2), \
+ LineWidth, ']'
+
+print ' ElementLine[', \
+ mm2mils100(BoxX1), \
+ mm2mils100(BoxY2), \
+ mm2mils100(BoxX2), \
+ mm2mils100(BoxY2), \
+ LineWidth, ']'
+
+print ' ElementLine[', \
+ mm2mils100(BoxX2), \
+ mm2mils100(BoxY2), \
+ mm2mils100(BoxX2), \
+ mm2mils100(BoxY1), \
+ LineWidth, ']'
+
+print ' ElementLine[', \
+ mm2mils100(BoxX2), \
+ mm2mils100(BoxY1), \
+ mm2mils100(BoxX1), \
+ mm2mils100(BoxY1), \
+ LineWidth, ']'
+
+print ")"
--- /dev/null
+#!/usr/bin/python
+# Copyright 2009 by Bdale Garbee <bdale@gag.com>. GPLv2
+#
+# Program to emit PCB footprint for
+# Tyco/AMP Micro-MaTch vertical through-hole female connectors
+#
+# Needs pin count on command line, in range of 4..20 even numbers only
+#
+
+# dimensions in mm from C_215079_v.pdf datasheet
+PinDiam = 0.8
+PinSpacing = 1.27
+RowSpacing = 2.54
+
+MntX = 1.4
+MntY = 1.8
+MntDiam = 1.5
+
+BoxY = 5.1
+BoxXbase = 4.79
+
+LineWidth = 600
+
+# freedfm.com round-off error bites us if we make this 700...
+MinAnnular = 725
+MinClearance = 600
+MaskDelta = 300
+
+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 < 4:
+ sys.stderr.write('Must be at least 4 pins\n')
+ sys.exit(1)
+if pins == 22:
+ sys.stderr.write('There is no 22 pin version!\n')
+ sys.exit(1)
+if pins > 24:
+ sys.stderr.write('Must be no more than 24 pins\n')
+ sys.exit(1)
+
+if len(sys.argv) > 2:
+ if sys.argv[2] == "latch":
+ BoxXbase = 5.89
+ if pins == 24:
+ sys.stderr.write('There is no 24 pin latching version!\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 "MicroMatch%i"' % pins,'"" "" 0 0 0 0 0 100 0x0]'
+print "("
+for col in range ((pins+1)/2):
+ for row in range (2):
+ if row == 1:
+ spacing=0
+ else:
+ spacing=RowSpacing
+ pinnum = (col * 2) + row + 1
+ if pinnum == 1:
+ Flags = '0x0101'
+ else:
+ Flags = '0x0001'
+ print ' Pin[', \
+ mm2mils100((pinnum-1)*PinSpacing), \
+ mm2mils100(spacing), \
+ mm2mils100(PinDiam)+(MinAnnular*2), \
+ (MinClearance*2), \
+ mm2mils100(PinDiam)+(MinAnnular*2)+(MaskDelta*2), \
+ mm2mils100(PinDiam), \
+ '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
+
+# add a hole for the index pin. plated to save non-plated-hole extra fab cost.
+print ' Pin[', \
+ mm2mils100(-MntX), \
+ mm2mils100(RowSpacing-MntY), \
+ mm2mils100(MntDiam)+(MinAnnular*2), \
+ (MinClearance*2), \
+ mm2mils100(MntDiam)+(MinAnnular*2)+(MaskDelta*2), \
+ mm2mils100(MntDiam), \
+ '"mnt" "0"', '0x0001', ']'
+
+BoxX = (pins - 1) * PinSpacing + BoxXbase
+BoxX1 = -(BoxXbase/2)
+BoxX2 = BoxX1 + BoxX
+BoxY1 = -(BoxY - RowSpacing)/2
+BoxY2 = BoxY1 + BoxY
+
+print ' ElementLine[', \
+ mm2mils100(BoxX1), \
+ mm2mils100(BoxY1), \
+ mm2mils100(BoxX1), \
+ mm2mils100(BoxY2), \
+ LineWidth, ']'
+
+print ' ElementLine[', \
+ mm2mils100(BoxX1), \
+ mm2mils100(BoxY2), \
+ mm2mils100(BoxX2), \
+ mm2mils100(BoxY2), \
+ LineWidth, ']'
+
+print ' ElementLine[', \
+ mm2mils100(BoxX2), \
+ mm2mils100(BoxY2), \
+ mm2mils100(BoxX2), \
+ mm2mils100(BoxY1), \
+ LineWidth, ']'
+
+print ' ElementLine[', \
+ mm2mils100(BoxX2), \
+ mm2mils100(BoxY1), \
+ mm2mils100(BoxX1), \
+ mm2mils100(BoxY1), \
+ LineWidth, ']'
+
+print ")"
--- /dev/null
+#!/usr/bin/python
+# Copyright 2011 by Bdale Garbee <bdale@gag.com>. GPLv2
+#
+# Program to emit PCB footprint for a 16 pin
+# Tyco/AMP Micro-MaTch vertical through-hole female connectors
+# overlaid with a 10-pin
+# Tyco Electronics Buchanan 2.54mm pitch terminal blocks
+#
+
+# dimensions in mm from C_215079_v.pdf datasheet
+BUPinDiam = 1.1 # screw terminals
+MMPinDiam = 0.8 # micromatch
+PinSpacing = 1.27
+RowSpacing = 2.54
+
+MntX = 1.4
+MntY = 1.8
+MntDiam = 1.5
+
+BoxY = 5.1
+
+LineWidth = 600
+
+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 = 17
+
+BoxXbase = 5.89
+BoxEnd = 1.5
+
+print '# author: Bdale Garbee'
+print '# email: bdale@gag.com'
+print '# dist-license: GPL 2'
+print '# use-license: unlimited'
+
+print 'Element[0x0 "tphybrid" "" "" 0 0 0 0 0 100 0x0]'
+print "("
+for col in range ((pins+1)/2):
+ for row in range (2):
+ if row == 1:
+ spacing=0
+ else:
+ spacing=RowSpacing
+ pinnum = (col * 2) + row + 1
+ if pinnum != 18:
+ if pinnum == 1:
+ Flags = '0x0101'
+ else:
+ Flags = '0x0001'
+ if pinnum % 2 == 0:
+ PinDiam = MMPinDiam
+ else:
+ PinDiam = BUPinDiam
+ print ' Pin[', \
+ mm2mils100((pinnum-1)*PinSpacing), \
+ mm2mils100(spacing), \
+ mm2mils100(PinDiam + 0.70), \
+ 1200, \
+ mm2mils100(PinDiam + 0.86), \
+ mm2mils100(PinDiam), \
+ '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
+
+print ' Pin[', \
+ mm2mils100((-2)*PinSpacing), \
+ mm2mils100(RowSpacing), \
+ mm2mils100(PinDiam + 0.32), \
+ 1200, \
+ mm2mils100(PinDiam + 0.48), \
+ mm2mils100(PinDiam), \
+ '"pin18"' , '"18"', Flags, ']'
+
+# add a hole for the index pin. plated to save non-plated-hole extra fab cost.
+print ' Pin[', \
+ mm2mils100(-MntX), \
+ mm2mils100(RowSpacing-MntY), \
+ mm2mils100(MntDiam)+1400, \
+ 1400, \
+ mm2mils100(MntDiam)+1400+600, \
+ mm2mils100(MntDiam), \
+ '"mnt" "0"', '0x0001', ']'
+
+# pins-2 accounts for the extra pin used by screw terminal overlay
+BoxX = (pins - 2) * PinSpacing + BoxXbase
+BoxX1 = -(BoxXbase/2)
+BoxX2 = BoxX1 + BoxX
+# re-compute X1 after computing X2 to account for screw terminal overlay
+BoxX1 = -2*PinSpacing - BoxEnd
+BoxY1 = -(BoxY - RowSpacing)/2
+BoxY2 = BoxY1 + BoxY
+
+print ' ElementLine[', \
+ mm2mils100(BoxX1), \
+ mm2mils100(BoxY1), \
+ mm2mils100(BoxX1), \
+ mm2mils100(BoxY2), \
+ LineWidth, ']'
+
+print ' ElementLine[', \
+ mm2mils100(BoxX1), \
+ mm2mils100(BoxY2), \
+ mm2mils100(BoxX2), \
+ mm2mils100(BoxY2), \
+ LineWidth, ']'
+
+print ' ElementLine[', \
+ mm2mils100(BoxX2), \
+ mm2mils100(BoxY2), \
+ mm2mils100(BoxX2), \
+ mm2mils100(BoxY1), \
+ LineWidth, ']'
+
+print ' ElementLine[', \
+ mm2mils100(BoxX2), \
+ mm2mils100(BoxY1), \
+ mm2mils100(BoxX1), \
+ mm2mils100(BoxY1), \
+ LineWidth, ']'
+
+print ")"
+++ /dev/null
-#!/usr/bin/python
-# Copyright 2014 by Bdale Garbee <bdale@gag.com>. GPLv2
-#
-# Program to emit PCB footprint for
-# Tyco Electronics 3.5mm pitch right-angle terminal blocks ala 284512-4
-#
-# Needs pin count on command line, in range of 2..25
-#
-
-# dimensions in mm from ENG_CD_284512_E3.pdf
-PinDiam = 1.2
-PinSpacing = 3.5
-RowOffset = 8.0
-BoxHeight = 9.2
-BoxEnd = 2.75
-LineWidth = 600
-Thickness = 2.0
-Clearance = .32
-Mask = Thickness + 0.32
-
-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 > 25:
- sys.stderr.write('Must be no more than 25 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 "284512-%i"' % 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(BoxEnd + (pin-1)*PinSpacing), \
- mm2mils100(RowOffset), \
- mm2mils100(Thickness), \
- mm2mils100(Clearance), \
- mm2mils100(Mask), \
- mm2mils100(PinDiam), \
- '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
-
-BoxWidth = (BoxEnd * 2) + ((pins - 1) * PinSpacing);
-
-print ' ElementLine[', \
- mm2mils100(0), \
- mm2mils100(0), \
- mm2mils100(0), \
- mm2mils100(BoxHeight), \
- LineWidth, ']'
-
-print ' ElementLine[', \
- mm2mils100(0), \
- mm2mils100(BoxHeight), \
- mm2mils100(BoxWidth), \
- mm2mils100(BoxHeight), \
- LineWidth, ']'
-
-print ' ElementLine[', \
- mm2mils100(BoxWidth), \
- mm2mils100(BoxHeight), \
- mm2mils100(BoxWidth), \
- mm2mils100(0), \
- LineWidth, ']'
-
-print ' ElementLine[', \
- mm2mils100(BoxWidth), \
- mm2mils100(0), \
- mm2mils100(0), \
- mm2mils100(0), \
- LineWidth, ']'
-
-print ")"
+++ /dev/null
-#!/bin/sh
-
-for i in 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25
-do
- FILE="284512-"$i
- ./3.5mm-ra.py $i > $FILE.fp
-done
+++ /dev/null
-all: 284512-4.fp 282834-10.fp 0-215079-4.fp tphybrid.fp
-
-284512-4.fp: 3.5mm-ra.py 3.5mm-series.sh
- ./3.5mm-series.sh
-
-282834-10.fp: buchanan.py buchanan-Series.sh
- ./buchanan-Series.sh
-
-0-215079-4.fp: micromatch micromatch-th-v.py
- ./micromatch
-
-tphybrid.fp: tphybrid.py
- ./tphybrid.py > tphybrid.fp
-
-clean:
- rm -f *.fp
+++ /dev/null
-#!/bin/sh
-
-for i in 2 3 4 5 6 7 8 9 10 11 12 13 14 15
-do
- FILE="282834-"$i
- ./buchanan.py $i > $FILE.fp
-done
+++ /dev/null
-#!/usr/bin/python
-# Copyright 2007 by Bdale Garbee <bdale@gag.com>. GPLv2
-#
-# Program to emit PCB footprint for
-# Tyco Electronics Buchanan 2.54mm pitch terminal blocks
-#
-# Needs pin count on command line, in range of 2..12
-#
-
-# dimensions in mm from ENG_CS_1308389_EUROSTYLE_TERMINAL_BLOCKS_0607.pdf
-PinDiam = 1.15
-PinSpacing = 2.54
-RowOffset = 3.25
-BoxHeight = 6.5
-BoxEnd = 1.5
-LineWidth = 600
-Thickness = 1.8
-Clearance = .32
-Mask = Thickness + 0.32
-
-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 "282834-%i"' % 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(BoxEnd + (pin-1)*PinSpacing), \
- mm2mils100(RowOffset), \
- mm2mils100(Thickness), \
- mm2mils100(Clearance), \
- mm2mils100(Mask), \
- mm2mils100(PinDiam), \
- '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
-
-BoxWidth = (BoxEnd * 2) + ((pins - 1) * PinSpacing);
-
-print ' ElementLine[', \
- mm2mils100(0), \
- mm2mils100(0), \
- mm2mils100(0), \
- mm2mils100(BoxHeight), \
- LineWidth, ']'
-
-print ' ElementLine[', \
- mm2mils100(0), \
- mm2mils100(BoxHeight), \
- mm2mils100(BoxWidth), \
- mm2mils100(BoxHeight), \
- LineWidth, ']'
-
-print ' ElementLine[', \
- mm2mils100(BoxWidth), \
- mm2mils100(BoxHeight), \
- mm2mils100(BoxWidth), \
- mm2mils100(0), \
- LineWidth, ']'
-
-print ' ElementLine[', \
- mm2mils100(BoxWidth), \
- mm2mils100(0), \
- mm2mils100(0), \
- mm2mils100(0), \
- LineWidth, ']'
-
-print ")"
+++ /dev/null
-#!/bin/sh
-
-for i in 4 6 8 10 12 14 16 18 20
-do
- TENS=$(( i / 10 ))
- ONES=$(( i % 10 ))
- FILE=$TENS"-215079-"$ONES
- ./micromatch-th-v.py $i > $FILE.fp
- FILE=$TENS"-338068-"$ONES
- ./micromatch-th-v.py $i latch > $FILE.fp
- FILE=$TENS"-188275-"$ONES
- ./micromatch-smt-v.py $i > $FILE.fp
- FILE=$TENS"-338069-"$ONES
- ./micromatch-smt-v.py $i latch > $FILE.fp
-done
-./micromatch-th-v.py 24 > 2-215079-24.fp
+++ /dev/null
-#!/usr/bin/python
-# Copyright 2015 by Bdale Garbee <bdale@gag.com>. GPLv2
-#
-# Program to emit PCB footprint for
-# Tyco/AMP Micro-MaTch vertical surface-mount female connectors
-#
-# Needs pin count on command line, in range of 4..20 even numbers only
-#
-
-# dimensions in mm from ENG_CD_188275_S3_c-188275_drw.pdf
-PadWidth = 1.50
-PadHeight = 3.00
-PadSpacing = 1.27
-RowGap = 1.50 # space between rows
-
-Clearance = 0.006 # in mils
-
-BoxY = 5.2
-BoxXbase = 4.55
-BoxXstep = 2.55
-
-LineWidth = 600
-
-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 < 4:
- sys.stderr.write('Must be at least 4 pins\n')
- sys.exit(1)
-if pins > 20:
- sys.stderr.write('Must be no more than 20 pins\n')
- sys.exit(1)
-
-if len(sys.argv) > 2:
- if sys.argv[2] == "latch":
- BoxXbase = 7.15
-
-BoxXOffset = -((pins - 1) * PadSpacing)/2
-
-print '# author: Bdale Garbee'
-print '# email: bdale@gag.com'
-print '# dist-license: GPL 2'
-print '# use-license: unlimited'
-
-print 'Element[0x0 "MicroMatch%i"' % pins,'"" "" 0 0 0 0 0 100 0x0]'
-print "("
-for col in range ((pins+1)/2):
- for row in range (2):
- if row == 1:
- origin= (RowGap + PadHeight)/2
- else:
- origin= -(RowGap + PadHeight)/2
- pinnum = (col * 2) + row + 1
- Flags = '"square,nopaste"'
-
- print ' Pad[', \
- mm2mils100((pinnum-1)*PadSpacing + BoxXOffset), \
- mm2mils100(origin + PadHeight/2 - PadWidth/2), \
- mm2mils100((pinnum-1)*PadSpacing + BoxXOffset), \
- mm2mils100(origin - PadHeight/2 + PadWidth/2), \
- mm2mils100(PadWidth), \
- 0, \
- mm2mils100(PadWidth)+Clearance*2, \
- '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
-
-BoxX = BoxXbase + pins/2 * BoxXstep
-BoxX1 = -BoxX/2
-BoxX2 = BoxX/2
-BoxY1 = -BoxY/2
-BoxY2 = BoxY/2
-
-print ' ElementLine[', \
- mm2mils100(BoxX1), \
- mm2mils100(BoxY1), \
- mm2mils100(BoxX1), \
- mm2mils100(BoxY2), \
- LineWidth, ']'
-
-print ' ElementLine[', \
- mm2mils100(BoxX1), \
- mm2mils100(BoxY2), \
- mm2mils100(BoxX2), \
- mm2mils100(BoxY2), \
- LineWidth, ']'
-
-print ' ElementLine[', \
- mm2mils100(BoxX2), \
- mm2mils100(BoxY2), \
- mm2mils100(BoxX2), \
- mm2mils100(BoxY1), \
- LineWidth, ']'
-
-print ' ElementLine[', \
- mm2mils100(BoxX2), \
- mm2mils100(BoxY1), \
- mm2mils100(BoxX1), \
- mm2mils100(BoxY1), \
- LineWidth, ']'
-
-print ")"
+++ /dev/null
-#!/usr/bin/python
-# Copyright 2009 by Bdale Garbee <bdale@gag.com>. GPLv2
-#
-# Program to emit PCB footprint for
-# Tyco/AMP Micro-MaTch vertical through-hole female connectors
-#
-# Needs pin count on command line, in range of 4..20 even numbers only
-#
-
-# dimensions in mm from C_215079_v.pdf datasheet
-PinDiam = 0.8
-PinSpacing = 1.27
-RowSpacing = 2.54
-
-MntX = 1.4
-MntY = 1.8
-MntDiam = 1.5
-
-BoxY = 5.1
-BoxXbase = 4.79
-
-LineWidth = 600
-
-# freedfm.com round-off error bites us if we make this 700...
-MinAnnular = 725
-MinClearance = 600
-MaskDelta = 300
-
-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 < 4:
- sys.stderr.write('Must be at least 4 pins\n')
- sys.exit(1)
-if pins == 22:
- sys.stderr.write('There is no 22 pin version!\n')
- sys.exit(1)
-if pins > 24:
- sys.stderr.write('Must be no more than 24 pins\n')
- sys.exit(1)
-
-if len(sys.argv) > 2:
- if sys.argv[2] == "latch":
- BoxXbase = 5.89
- if pins == 24:
- sys.stderr.write('There is no 24 pin latching version!\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 "MicroMatch%i"' % pins,'"" "" 0 0 0 0 0 100 0x0]'
-print "("
-for col in range ((pins+1)/2):
- for row in range (2):
- if row == 1:
- spacing=0
- else:
- spacing=RowSpacing
- pinnum = (col * 2) + row + 1
- if pinnum == 1:
- Flags = '0x0101'
- else:
- Flags = '0x0001'
- print ' Pin[', \
- mm2mils100((pinnum-1)*PinSpacing), \
- mm2mils100(spacing), \
- mm2mils100(PinDiam)+(MinAnnular*2), \
- (MinClearance*2), \
- mm2mils100(PinDiam)+(MinAnnular*2)+(MaskDelta*2), \
- mm2mils100(PinDiam), \
- '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
-
-# add a hole for the index pin. plated to save non-plated-hole extra fab cost.
-print ' Pin[', \
- mm2mils100(-MntX), \
- mm2mils100(RowSpacing-MntY), \
- mm2mils100(MntDiam)+(MinAnnular*2), \
- (MinClearance*2), \
- mm2mils100(MntDiam)+(MinAnnular*2)+(MaskDelta*2), \
- mm2mils100(MntDiam), \
- '"mnt" "0"', '0x0001', ']'
-
-BoxX = (pins - 1) * PinSpacing + BoxXbase
-BoxX1 = -(BoxXbase/2)
-BoxX2 = BoxX1 + BoxX
-BoxY1 = -(BoxY - RowSpacing)/2
-BoxY2 = BoxY1 + BoxY
-
-print ' ElementLine[', \
- mm2mils100(BoxX1), \
- mm2mils100(BoxY1), \
- mm2mils100(BoxX1), \
- mm2mils100(BoxY2), \
- LineWidth, ']'
-
-print ' ElementLine[', \
- mm2mils100(BoxX1), \
- mm2mils100(BoxY2), \
- mm2mils100(BoxX2), \
- mm2mils100(BoxY2), \
- LineWidth, ']'
-
-print ' ElementLine[', \
- mm2mils100(BoxX2), \
- mm2mils100(BoxY2), \
- mm2mils100(BoxX2), \
- mm2mils100(BoxY1), \
- LineWidth, ']'
-
-print ' ElementLine[', \
- mm2mils100(BoxX2), \
- mm2mils100(BoxY1), \
- mm2mils100(BoxX1), \
- mm2mils100(BoxY1), \
- LineWidth, ']'
-
-print ")"
+++ /dev/null
-#!/usr/bin/python
-# Copyright 2011 by Bdale Garbee <bdale@gag.com>. GPLv2
-#
-# Program to emit PCB footprint for a 16 pin
-# Tyco/AMP Micro-MaTch vertical through-hole female connectors
-# overlaid with a 10-pin
-# Tyco Electronics Buchanan 2.54mm pitch terminal blocks
-#
-
-# dimensions in mm from C_215079_v.pdf datasheet
-BUPinDiam = 1.1 # screw terminals
-MMPinDiam = 0.8 # micromatch
-PinSpacing = 1.27
-RowSpacing = 2.54
-
-MntX = 1.4
-MntY = 1.8
-MntDiam = 1.5
-
-BoxY = 5.1
-
-LineWidth = 600
-
-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 = 17
-
-BoxXbase = 5.89
-BoxEnd = 1.5
-
-print '# author: Bdale Garbee'
-print '# email: bdale@gag.com'
-print '# dist-license: GPL 2'
-print '# use-license: unlimited'
-
-print 'Element[0x0 "tphybrid" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-for col in range ((pins+1)/2):
- for row in range (2):
- if row == 1:
- spacing=0
- else:
- spacing=RowSpacing
- pinnum = (col * 2) + row + 1
- if pinnum != 18:
- if pinnum == 1:
- Flags = '0x0101'
- else:
- Flags = '0x0001'
- if pinnum % 2 == 0:
- PinDiam = MMPinDiam
- else:
- PinDiam = BUPinDiam
- print ' Pin[', \
- mm2mils100((pinnum-1)*PinSpacing), \
- mm2mils100(spacing), \
- mm2mils100(PinDiam + 0.70), \
- 1200, \
- mm2mils100(PinDiam + 0.86), \
- mm2mils100(PinDiam), \
- '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
-
-print ' Pin[', \
- mm2mils100((-2)*PinSpacing), \
- mm2mils100(RowSpacing), \
- mm2mils100(PinDiam + 0.32), \
- 1200, \
- mm2mils100(PinDiam + 0.48), \
- mm2mils100(PinDiam), \
- '"pin18"' , '"18"', Flags, ']'
-
-# add a hole for the index pin. plated to save non-plated-hole extra fab cost.
-print ' Pin[', \
- mm2mils100(-MntX), \
- mm2mils100(RowSpacing-MntY), \
- mm2mils100(MntDiam)+1400, \
- 1400, \
- mm2mils100(MntDiam)+1400+600, \
- mm2mils100(MntDiam), \
- '"mnt" "0"', '0x0001', ']'
-
-# pins-2 accounts for the extra pin used by screw terminal overlay
-BoxX = (pins - 2) * PinSpacing + BoxXbase
-BoxX1 = -(BoxXbase/2)
-BoxX2 = BoxX1 + BoxX
-# re-compute X1 after computing X2 to account for screw terminal overlay
-BoxX1 = -2*PinSpacing - BoxEnd
-BoxY1 = -(BoxY - RowSpacing)/2
-BoxY2 = BoxY1 + BoxY
-
-print ' ElementLine[', \
- mm2mils100(BoxX1), \
- mm2mils100(BoxY1), \
- mm2mils100(BoxX1), \
- mm2mils100(BoxY2), \
- LineWidth, ']'
-
-print ' ElementLine[', \
- mm2mils100(BoxX1), \
- mm2mils100(BoxY2), \
- mm2mils100(BoxX2), \
- mm2mils100(BoxY2), \
- LineWidth, ']'
-
-print ' ElementLine[', \
- mm2mils100(BoxX2), \
- mm2mils100(BoxY2), \
- mm2mils100(BoxX2), \
- mm2mils100(BoxY1), \
- LineWidth, ']'
-
-print ' ElementLine[', \
- mm2mils100(BoxX2), \
- mm2mils100(BoxY1), \
- mm2mils100(BoxX1), \
- mm2mils100(BoxY1), \
- LineWidth, ']'
-
-print ")"
RESISTOR 220 0402 smt no ERJ-2RKF2200X digikey P220LCT-ND reel8mm
RESISTOR 22k 0402 smt no ERJ-2RKF2202X digikey P22.0KLCT-ND reel8mm
RESISTOR 26.1k 0402 smt no ERJ-2RKF2612X digikey P26.1KLCT-ND reel8mm
+RESISTOR 2.49k 0402 smt no ERJ-2RKF2491X digikey P2.49KLCT-ND reel8mm
RESISTOR 2.7k 0402 smt no ERJ-2RKF2701X digikey P2.70KLCT-ND reel8mm
RESISTOR 270 0402 smt no ERJ-2RKF2700X digikey P270LCT-ND reel8mm
RESISTOR 200k 0402 smt no ERJ-2RKF2003X digikey P200KLCT-ND reel8mm