--- /dev/null
+# author: andrew mccubbin
+# email: andrewm@thehacktory.com
+# dist-license: GPL 2
+# use-license: unlimited
+
+# IPC 7351 ref SON50PP300X300X80-11WEED3M
+# Dimensions taken from allegro datasheet
+
+# Element[element_flags, description, pcb-name, value, mark_x,
+# mark_y, text_x, text_y, text_direction, text_scale, text_flags
+Element[0x00000000 "Dual-Flat-Nolead-DFN-10pin-0.5mm-pitch-exposed-pad-package-3x3x0.8mm" "" "" 1000 1000 -13000 8000 1 100 0x00000000]
+(
+
+# Silk screen around package
+ ElementLine[ 6405 8785 6405 -8785 1000]
+ ElementLine[ 6405 -8785 -6405 -8785 1000]
+ ElementLine[-6405 -8785 -6405 8785 1000]
+ ElementLine[-6405 8785 6405 8785 1000]
+# Pin 1 indicator
+ ElementLine[-7005 9385 -6405 8785 1000]
+
+
+# Pad[X1, Y1, X2, Y3, width, clearance,
+# soldermask, "pin name", "pin number", flags]
+
+# bottom row
+ Pad[-3937 7185 -3937 5020 1181 1600 1381 "1" "1" 0x00000100]
+ Pad[-1969 7185 -1969 5020 1181 1600 1381 "2" "2" 0x00000100]
+ Pad[ 0 7185 0 5020 1181 1600 1381 "3" "3" 0x00000100]
+ Pad[ 1969 7185 1969 5020 1181 1600 1381 "4" "4" 0x00000100]
+ Pad[ 3937 7185 3937 5020 1181 1600 1381 "5" "5" 0x00000100]
+
+# top row
+ Pad[ 3937 -7185 3937 -5020 1181 1600 1381 "6" "6" 0x00000100]
+ Pad[ 1969 -7185 1969 -5020 1181 1600 1381 "7" "7" 0x00000100]
+ Pad[ 0 -7185 0 -5020 1181 1600 1381 "8" "8" 0x00000100]
+ Pad[-1969 -7185 -1969 -5020 1181 1600 1381 "9" "9" 0x00000100]
+ Pad[-3937 -7185 -3937 -5020 1181 1600 1381 "10" "10" 0x00000100]
+
+# Exposed paddle (if this is an exposed paddle part)
+ Pad[ -1457 0 1457 0 6496 1600 6796 "11" "11" 0x00000100]
+)
for i in 2 3 4 5 6 7 8 9 10 11 12 13 14 15
do
- FILE="S"$i"B-PH"
+ # side entry surface mount
+ FILE="S"$i"B-PH-SM4"
./PH-smt-ra.py $i > $FILE.fp
+
+ # top entry through hole
FILE="B"$i"B-PH"
./PH-th-v.py $i > $FILE.fp
+
+ # side entry through hole
+ FILE="S"$i"B-PH"
+ ./PH-th-ra.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
+# JST PH series 2mm side entry through-hole (shrouded) connectors
+#
+# Needs pin count on command line, in range of 2..15
+#
+
+# dimensions in mm from ePH.pdf datasheet
+PinDiam = 0.75
+PinSpacing = 2.0
+RowOffset = 6.0
+BoxHeight = 7.6
+BoxEnd = 1.95
+LineWidth = 600
+Thickness = 1.3
+Clearance = .305
+Mask = 1.46
+
+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 "B%iB-PH"' % 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 ")"
mm2mils100(BoxEnd + (pin-1)*PinSpacing), \
mm2mils100(RowOffset), \
3500, \
- 600, \
+ 1200, \
4100, \
mm2mils100(PinDiam), \
'"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
--- /dev/null
+v 20100214 2
+P 0 900 300 900 1 0 0
+{
+T 0 900 5 10 0 0 0 0 1
+pintype=unknown
+T 355 895 5 10 1 1 0 0 1
+pinlabel=STAT2
+T 205 945 5 10 1 1 0 6 1
+pinnumber=4
+T 0 900 5 10 0 0 0 0 1
+pinseq=0
+}
+P 2400 2500 2100 2500 1 0 0
+{
+T 2400 2500 5 10 0 0 0 0 1
+pintype=unknown
+T 2045 2495 5 10 1 1 0 6 1
+pinlabel=Vbat
+T 2195 2545 5 10 1 1 0 0 1
+pinnumber=10
+T 2400 2500 5 10 0 0 0 0 1
+pinseq=0
+}
+P 1200 0 1200 300 1 0 0
+{
+T 1200 0 5 10 0 0 0 0 1
+pintype=unknown
+T 1345 500 5 10 1 1 180 0 1
+pinlabel=VSS
+T 1295 250 5 10 1 1 180 6 1
+pinnumber=5
+T 1200 0 5 10 0 0 0 0 1
+pinseq=0
+}
+B 300 300 1800 2700 3 0 0 0 -1 -1 0 -1 -1 -1 -1 -1
+T 795 2795 8 10 1 1 0 0 1
+device=MCP73837
+T 395 3095 8 10 1 1 0 0 1
+refdes=U?
+T -5 -5 8 10 0 1 0 0 1
+footprint=DFN10_EP
+P 0 500 300 500 1 0 0
+{
+T 0 500 5 10 0 0 0 0 1
+pintype=unknown
+T 355 495 5 10 1 1 0 0 1
+pinlabel=PG
+T 205 545 5 10 1 1 0 6 1
+pinnumber=8
+T 0 500 5 10 0 0 0 0 1
+pinseq=0
+}
+P 2400 1700 2100 1700 1 0 0
+{
+T 2400 1700 5 10 0 0 0 0 1
+pintype=unknown
+T 2045 1695 5 10 1 1 0 6 1
+pinlabel=THERM
+T 2195 1745 5 10 1 1 0 0 1
+pinnumber=9
+T 2400 1700 5 10 0 0 0 0 1
+pinseq=0
+}
+P 0 1300 300 1300 1 0 0
+{
+T 0 1300 5 10 0 0 0 0 1
+pintype=unknown
+T 355 1295 5 10 1 1 0 0 1
+pinlabel=STAT1
+T 205 1345 5 10 1 1 0 6 1
+pinnumber=3
+T 0 1300 5 10 0 0 0 0 1
+pinseq=0
+}
+P 0 2100 300 2100 1 0 0
+{
+T 0 2100 5 10 0 0 0 0 1
+pintype=unknown
+T 355 2095 5 10 1 1 0 0 1
+pinlabel=Vusb
+T 205 2145 5 10 1 1 0 6 1
+pinnumber=2
+T 0 2100 5 10 0 0 0 0 1
+pinseq=0
+}
+P 0 2500 300 2500 1 0 0
+{
+T 0 2500 5 10 0 0 0 0 1
+pintype=unknown
+T 355 2495 5 10 1 1 0 0 1
+pinlabel=Vac
+T 205 2545 5 10 1 1 0 6 1
+pinnumber=1
+T 0 2500 5 10 0 0 0 0 1
+pinseq=0
+}
+P 2400 500 2100 500 1 0 0
+{
+T 2400 500 5 10 0 0 0 0 1
+pintype=unknown
+T 2045 495 5 10 1 1 0 6 1
+pinlabel=PROG1
+T 2195 545 5 10 1 1 0 0 1
+pinnumber=6
+T 2400 500 5 10 0 0 0 0 1
+pinseq=0
+}
+P 2400 900 2100 900 1 0 0
+{
+T 2400 900 5 10 0 0 0 0 1
+pintype=unknown
+T 2045 895 5 10 1 1 0 6 1
+pinlabel=PROG2
+T 2195 945 5 10 1 1 0 0 1
+pinnumber=7
+T 2400 900 5 10 0 0 0 0 1
+pinseq=0
+}