add molex footprint builders
authorBdale Garbee <bdale@gag.com>
Mon, 18 Mar 2013 21:53:18 +0000 (15:53 -0600)
committerBdale Garbee <bdale@gag.com>
Mon, 18 Mar 2013 21:53:18 +0000 (15:53 -0600)
packages/Makefile
packages/jst/.gitignore [new file with mode: 0644]
packages/molex/.gitignore [new file with mode: 0644]
packages/molex/Makefile [new file with mode: 0644]
packages/molex/miniusb.py [new file with mode: 0755]
packages/molex/picoblade-smt-ra.py [new file with mode: 0755]
packages/molex/picoblade-th-v.py [new file with mode: 0755]
packages/molex/picoblades [new file with mode: 0755]
packages/molex/picoflex [new file with mode: 0755]
packages/molex/picoflex-th-v.py [new file with mode: 0755]
packages/molex/ufl.py [new file with mode: 0755]

index ab703a49db23082e68a9ec0c0c0f7e913c74f2eb..e9ca92f0cf5b6245a735bd36c70037bebe220e59 100644 (file)
@@ -2,6 +2,7 @@
 
 DIRS= \
        jst \
+       molex \
        pinheader \
        tyco
 
diff --git a/packages/jst/.gitignore b/packages/jst/.gitignore
new file mode 100644 (file)
index 0000000..5f8f282
--- /dev/null
@@ -0,0 +1 @@
+*.fp
diff --git a/packages/molex/.gitignore b/packages/molex/.gitignore
new file mode 100644 (file)
index 0000000..5f8f282
--- /dev/null
@@ -0,0 +1 @@
+*.fp
diff --git a/packages/molex/Makefile b/packages/molex/Makefile
new file mode 100644 (file)
index 0000000..1555370
--- /dev/null
@@ -0,0 +1,16 @@
+all:   532610372.fp 548190572.fp 903259004.fp ufl.fp
+
+903259004.fp:  picoflex picoflex-th-v.py
+       ./picoflex
+
+532610372.fp:  picoblades picoblade-smt-ra.py picoblade-th-v.py
+       ./picoblades
+
+548190572.fp:  miniusb.py
+       ./miniusb.py > 548190572.fp
+
+ufl.fp:        ufl.py
+       ./ufl.py > ufl.fp
+
+clean:
+       rm -f 53261* 53047* 90325* 548190572.fp ufl.fp
diff --git a/packages/molex/miniusb.py b/packages/molex/miniusb.py
new file mode 100755 (executable)
index 0000000..380e1a2
--- /dev/null
@@ -0,0 +1,128 @@
+#!/usr/bin/python
+# Copyright 2007 by Bdale Garbee <bdale@gag.com>.  GPLv2
+#
+# Program to emit PCB footprint for
+#   Molex MiniUSB R/A 5 pos SMD connector 54819-0572, DigiKey WM17116CT-ND
+#
+
+# dimensions in mm from 548190572_sd.pdf datasheet
+TabWidth = 2.05
+Tab1Height = 4.0
+Tab2Height = 3.5
+TabCenters = 4.25
+BetweenTabs = 7.8
+
+PinWidth = 0.5
+PinHeight = 2.25
+PinSpacing = 0.8
+PinStart = 3.1 + Tab1Height/2
+
+CenterLine = TabWidth + BetweenTabs/2
+
+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 "MiniUSB" "" "" 0 0 -10161 -12011 0 100 0x0]'
+print "("
+print '   Pad[', \
+       mm2mils100(CenterLine), \
+       mm2mils100(PinStart + PinWidth/2), \
+       mm2mils100(CenterLine), \
+       mm2mils100(PinStart + PinHeight - PinWidth/2), \
+       mm2mils100(PinWidth), \
+       mm2mils100(PinSpacing - PinWidth), \
+       mm2mils100(PinWidth + 0.2), \
+       '"D+" "3" 0x0100]'
+
+print '   Pad[', \
+       mm2mils100(CenterLine + PinSpacing), \
+       mm2mils100(PinStart + PinWidth/2), \
+       mm2mils100(CenterLine + PinSpacing), \
+       mm2mils100(PinStart + PinHeight - PinWidth/2), \
+       mm2mils100(PinWidth), \
+       mm2mils100(PinSpacing - PinWidth), \
+       mm2mils100(PinWidth + 0.2), \
+       '"D-" "2" 0x0100]'
+
+print '   Pad[', \
+       mm2mils100(CenterLine - PinSpacing), \
+       mm2mils100(PinStart + PinWidth/2), \
+       mm2mils100(CenterLine - PinSpacing), \
+       mm2mils100(PinStart + PinHeight - PinWidth/2), \
+       mm2mils100(PinWidth), \
+       mm2mils100(PinSpacing - PinWidth), \
+       mm2mils100(PinWidth + 0.2), \
+       '"HS" "4" 0x0100]'
+
+print '   Pad[', \
+       mm2mils100(CenterLine + PinSpacing*2), \
+       mm2mils100(PinStart + PinWidth/2), \
+       mm2mils100(CenterLine + PinSpacing*2), \
+       mm2mils100(PinStart + PinHeight - PinWidth/2), \
+       mm2mils100(PinWidth), \
+       mm2mils100(PinSpacing - PinWidth), \
+       mm2mils100(PinWidth + 0.2), \
+       '"VBUS" "1" 0x0100]'
+
+print '   Pad[', \
+       mm2mils100(CenterLine - PinSpacing*2), \
+       mm2mils100(PinStart + PinWidth/2), \
+       mm2mils100(CenterLine - PinSpacing*2), \
+       mm2mils100(PinStart + PinHeight - PinWidth/2), \
+       mm2mils100(PinWidth), \
+       mm2mils100(PinSpacing - PinWidth), \
+       mm2mils100(PinWidth + 0.2), \
+       '"GND" "5" 0x0100]'
+
+TabRowTwo = Tab1Height/2 + TabCenters - Tab2Height/2
+TabColTwo = TabWidth + BetweenTabs
+
+print '   Pad[', \
+       mm2mils100(TabWidth/2), \
+       mm2mils100(TabWidth/2), \
+       mm2mils100(TabWidth/2), \
+       mm2mils100(Tab1Height - TabWidth/2), \
+       mm2mils100(TabWidth), \
+       mm2mils100(PinSpacing - PinWidth), \
+       mm2mils100(TabWidth + 0.2), \
+       '"tab1" "G" 0x0100]'
+
+print '   Pad[', \
+       mm2mils100(TabWidth/2), \
+       mm2mils100(TabRowTwo + TabWidth/2), \
+       mm2mils100(TabWidth/2), \
+       mm2mils100(TabRowTwo + Tab2Height - TabWidth/2), \
+       mm2mils100(TabWidth), \
+       mm2mils100(PinSpacing - PinWidth), \
+       mm2mils100(TabWidth + 0.2), \
+       '"tab2" "G" 0x0100]'
+
+print '   Pad[', \
+       mm2mils100(TabColTwo + TabWidth/2), \
+       mm2mils100(TabWidth/2), \
+       mm2mils100(TabColTwo + TabWidth/2), \
+       mm2mils100(Tab1Height - TabWidth/2), \
+       mm2mils100(TabWidth), \
+       mm2mils100(PinSpacing - PinWidth), \
+       mm2mils100(TabWidth + 0.2), \
+       '"tab3" "G" 0x0100]'
+
+print '   Pad[', \
+       mm2mils100(TabColTwo + TabWidth/2), \
+       mm2mils100(TabRowTwo + TabWidth/2), \
+       mm2mils100(TabColTwo + TabWidth/2), \
+       mm2mils100(TabRowTwo + Tab2Height - TabWidth/2), \
+       mm2mils100(TabWidth), \
+       mm2mils100(PinSpacing - PinWidth), \
+       mm2mils100(TabWidth + 0.2), \
+       '"tab4" "G" 0x0100]'
+
+print ")"
diff --git a/packages/molex/picoblade-smt-ra.py b/packages/molex/picoblade-smt-ra.py
new file mode 100755 (executable)
index 0000000..04205bb
--- /dev/null
@@ -0,0 +1,73 @@
+#!/usr/bin/python
+# Copyright 2007 by Bdale Garbee <bdale@gag.com>.  GPLv2
+#
+# Program to emit PCB footprint for
+#   Molex 1.25mm PicoBlade(tm), right angle SMT header 53261-XX71, 2-15 pins 
+#
+# Needs pin count on command line, in range of 2..15
+#
+
+# dimensions in mm from 532611071_sd.pdf datasheet
+TabWidth = 2.1
+TabHeight = 3.0
+TabPinSpacing = 0.6
+PinWidth = 0.8
+PinHeight = 1.6
+PinSpacing = 1.25
+FirstPin = 3.6
+
+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 "PicoBlade%i"' % pins,'"" "" 0 0 0 0 0 100 0x0]'
+print "("
+for pin in range (1,pins+1):
+    pinnum = pins + 1 - pin
+    print '   Pad[', \
+       mm2mils100(FirstPin + (pin-1)*PinSpacing), \
+       mm2mils100(TabHeight+TabPinSpacing+PinWidth/2), \
+       mm2mils100(FirstPin + (pin-1)*PinSpacing), \
+       mm2mils100(TabHeight+TabPinSpacing+PinHeight-PinWidth/2), \
+       mm2mils100(PinWidth), \
+       mm2mils100(PinSpacing - PinWidth), \
+       mm2mils100(PinWidth + 0.1), \
+       '"pin%i"' % pinnum, '"%i"' % pinnum, '0x0100]'
+
+
+print '   Pad[', \
+       mm2mils100(TabWidth/2), \
+       mm2mils100(TabWidth/2), \
+       mm2mils100(TabWidth/2), \
+       mm2mils100(TabHeight - TabWidth/2), \
+       mm2mils100(TabWidth), \
+       mm2mils100(PinSpacing - PinWidth), \
+       mm2mils100(TabWidth + 0.1), \
+       '"tab1" "G" 0x0100]'
+
+print '   Pad[', \
+       mm2mils100(FirstPin*2 + (pins-1)*PinSpacing - TabWidth/2), \
+       mm2mils100(TabWidth/2), \
+       mm2mils100(FirstPin*2 + (pins-1)*PinSpacing - TabWidth/2), \
+       mm2mils100(TabHeight - TabWidth/2), \
+       mm2mils100(TabWidth), \
+       mm2mils100(PinSpacing - PinWidth), \
+       mm2mils100(TabWidth + 0.1), \
+       '"tab2" "G" 0x0100]'
+
+print ")"
diff --git a/packages/molex/picoblade-th-v.py b/packages/molex/picoblade-th-v.py
new file mode 100755 (executable)
index 0000000..a25f161
--- /dev/null
@@ -0,0 +1,84 @@
+#!/usr/bin/python
+# Copyright 2008 by Bdale Garbee <bdale@gag.com>.  GPLv2
+#
+# Program to emit PCB footprint for
+#   Molex 1.25mm PicoBlade, vertical through-hole header 53047-XX10, 2-15 pins 
+#
+# Needs pin count on command line, in range of 2..15
+#
+
+# dimensions in mm from 530470410_sd.pdf datasheet
+PinDiam = 0.52
+PinSpacing = 1.25
+BoxOffset = 1.15
+BoxHeight = 3.2
+BoxEnd = 1.5
+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 < 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 "PicoBlade%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((pins-1)*PinSpacing - (pin-1)*PinSpacing), \
+       0, \
+       3500, \
+       1200, \
+       4100, \
+       mm2mils100(PinDiam), \
+       '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
+
+BoxWidth = (BoxEnd * 2) + ((pins - 1) * PinSpacing);
+
+print '   ElementLine[', \
+       mm2mils100(-BoxEnd), \
+       mm2mils100(-BoxOffset), \
+       mm2mils100(-BoxEnd), \
+       mm2mils100(BoxHeight-BoxOffset), \
+       LineWidth, ']'
+
+print '   ElementLine[', \
+       mm2mils100(-BoxEnd), \
+       mm2mils100(BoxHeight-BoxOffset), \
+       mm2mils100(BoxWidth-BoxEnd), \
+       mm2mils100(BoxHeight-BoxOffset), \
+       LineWidth, ']'
+
+print '   ElementLine[', \
+       mm2mils100(BoxWidth-BoxEnd), \
+       mm2mils100(BoxHeight-BoxOffset), \
+       mm2mils100(BoxWidth-BoxEnd), \
+       mm2mils100(-BoxOffset), \
+       LineWidth, ']'
+
+print '   ElementLine[', \
+       mm2mils100(BoxWidth-BoxEnd), \
+       mm2mils100(-BoxOffset), \
+       mm2mils100(-BoxEnd), \
+       mm2mils100(-BoxOffset), \
+       LineWidth, ']'
+  
+print ")"
diff --git a/packages/molex/picoblades b/packages/molex/picoblades
new file mode 100755 (executable)
index 0000000..86f9b2c
--- /dev/null
@@ -0,0 +1,9 @@
+#!/bin/sh
+
+for i in 02 03 04 05 06 07 08 09 10 11 12 13 14 15
+do
+       FILE="53261"$i"71"
+       ./picoblade-smt-ra.py $i > $FILE.fp
+       FILE="53047"$i"10"
+       ./picoblade-th-v.py $i > $FILE.fp
+done
diff --git a/packages/molex/picoflex b/packages/molex/picoflex
new file mode 100755 (executable)
index 0000000..d952748
--- /dev/null
@@ -0,0 +1,7 @@
+#!/bin/sh
+
+for i in 04 06 08 10 12 14 16 18 20 22 24 26
+do
+       FILE="9032590"$i
+       ./picoflex-th-v.py $i > $FILE.fp
+done
diff --git a/packages/molex/picoflex-th-v.py b/packages/molex/picoflex-th-v.py
new file mode 100755 (executable)
index 0000000..9d64c05
--- /dev/null
@@ -0,0 +1,114 @@
+#!/usr/bin/python
+# Copyright 2008 by Bdale Garbee <bdale@gag.com>.  GPLv2
+#
+# Program to emit PCB footprint for
+#   Molex 1.25mm PicoBlade, vertical through-hole header 53047-XX10, 2-15 pins 
+#
+# Needs pin count on command line, in range of 2..15
+#
+
+# dimensions in mm from 903257004_sd.pdf datasheet
+PinDiam = 0.8
+PinSpacing = 2.54
+RowSpacing = 2.54
+RowOffset = 1.27
+BoxHeight = 5.98
+BoxEnd = 2.755
+MntX = 1.8
+MntY = 1.48
+MntDiam = 1.5
+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 > 26:
+       sys.stderr.write('Must be no more than 26 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 "PicoFlex%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:
+           offset=RowOffset
+           spacing=RowSpacing
+       else:
+           offset=0
+           spacing=0
+        pinnum = (col * 2) + row + 1
+        if pinnum == 1:
+           Flags = '0x0101'
+        else:
+           Flags = '0x0001'
+        print '   Pin[', \
+           mm2mils100(col*PinSpacing + offset), \
+           mm2mils100(spacing), \
+           mm2mils100(PinDiam*2), \
+           600, \
+           mm2mils100(PinDiam*2)+1000, \
+           mm2mils100(PinDiam), \
+           '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
+
+print '   Pin[', \
+    mm2mils100(-MntX), \
+    mm2mils100(-MntY), \
+    mm2mils100(MntDiam), \
+    0, \
+    mm2mils100(MntDiam), \
+    mm2mils100(MntDiam), \
+    '"mnt" "0"', '0x0008', ']'
+
+print '   Pin[', \
+    mm2mils100(((pins+1)/2-1)*PinSpacing+RowOffset+MntX), \
+    mm2mils100(-MntY), \
+    mm2mils100(MntDiam), \
+    0, \
+    mm2mils100(MntDiam), \
+    mm2mils100(MntDiam), \
+    '"mnt" "0"', '0x0008', ']'
+
+BoxWidth = BoxEnd + ((pins/2-1) * PinSpacing + RowOffset);
+BoxYOff = MntY + MntDiam/2 + .1524
+
+print '   ElementLine[', \
+       mm2mils100(-BoxEnd), \
+       mm2mils100(-BoxYOff), \
+       mm2mils100(-BoxEnd), \
+       mm2mils100(BoxHeight-BoxYOff), \
+       LineWidth, ']'
+
+print '   ElementLine[', \
+       mm2mils100(-BoxEnd), \
+       mm2mils100(BoxHeight-BoxYOff), \
+       mm2mils100(BoxWidth), \
+       mm2mils100(BoxHeight-BoxYOff), \
+       LineWidth, ']'
+
+print '   ElementLine[', \
+       mm2mils100(BoxWidth), \
+       mm2mils100(BoxHeight-BoxYOff), \
+       mm2mils100(BoxWidth), \
+       mm2mils100(-BoxYOff), \
+       LineWidth, ']'
+
+print '   ElementLine[', \
+       mm2mils100(BoxWidth), \
+       mm2mils100(-BoxYOff), \
+       mm2mils100(-BoxEnd), \
+       mm2mils100(-BoxYOff), \
+       LineWidth, ']'
+  
+print ")"
diff --git a/packages/molex/ufl.py b/packages/molex/ufl.py
new file mode 100755 (executable)
index 0000000..b910f27
--- /dev/null
@@ -0,0 +1,61 @@
+#!/usr/bin/python
+# Copyright 2009 by Bdale Garbee <bdale@gag.com>.  GPLv2
+#
+# Program to emit PCB footprint for Molex version of U.FL micro coax connector
+#
+
+# dimensions in mm from 734120110_sd.pdf datasheet
+PinWidth =   1.00
+PinHeight =  1.05
+PinOffset =  1.00
+GndHeight =  2.20
+GndInside =  1.90
+GndOutside = 4.00
+GndWidth = (GndOutside - GndInside) / 2
+
+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 "UFL" "" "" 0 0 0 0 0 100 0x0]'
+print "("
+
+print '   Pad[',\
+       mm2mils100(-(GndOutside - GndInside)/4 - (GndInside / 2) ), \
+       mm2mils100(-(GndHeight / 2) + (GndWidth / 2)), \
+       mm2mils100(-(GndOutside - GndInside)/4 - (GndInside / 2) ), \
+       mm2mils100((GndHeight / 2) - (GndWidth / 2)), \
+       mm2mils100(GndWidth), \
+       mm2mils100(0.1), \
+       mm2mils100(GndWidth+0.2), \
+       '"pin2"', '"2"', '0x0100]'
+
+print '   Pad[',\
+       0, \
+       mm2mils100(PinOffset + PinWidth/2), \
+       0, \
+       mm2mils100(PinOffset + PinHeight - PinWidth/2), \
+       mm2mils100(PinWidth), \
+       mm2mils100(0.1), \
+       mm2mils100(PinWidth+0.2), \
+       '"pin1"', '"1"', '0x0100]'
+
+print '   Pad[',\
+       mm2mils100((GndOutside - GndInside)/4 + (GndInside / 2) ), \
+       mm2mils100(-(GndHeight / 2) + (GndWidth / 2)), \
+       mm2mils100((GndOutside - GndInside)/4 + (GndInside / 2) ), \
+       mm2mils100((GndHeight / 2) - (GndWidth / 2)), \
+       mm2mils100(GndWidth), \
+       mm2mils100(0.1), \
+       mm2mils100(GndWidth+0.2), \
+       '"pin2"', '"2"', '0x0100]'
+
+
+print ")"