2 # Copyright 2007 by Bdale Garbee <bdale@gag.com>. GPLv2
4 # Program to emit PCB footprint for
5 # JST PH series 2mm side entry through-hole (shrouded) connectors
7 # Needs pin count on command line, in range of 2..15
10 # dimensions in mm from ePH.pdf datasheet
23 # we're going to use the 1/100 of a mil fundamental unit form
25 return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
27 pins = int(sys.argv[1])
29 sys.stderr.write('Must be at least 2 pins\n')
32 sys.stderr.write('Must be no more than 15 pins\n')
35 print '# author: Bdale Garbee'
36 print '# email: bdale@gag.com'
37 print '# dist-license: GPL 2'
38 print '# use-license: unlimited'
40 print 'Element[0x0 "B%iB-PH"' % pins,'"" "" 0 0 0 0 0 100 0x0]'
42 for pin in range (1,pins+1):
43 pinnum = pins + 1 - pin
49 mm2mils100(BoxEnd + (pin-1)*PinSpacing), \
50 mm2mils100(RowOffset), \
51 mm2mils100(Thickness), \
52 mm2mils100(Clearance), \
54 mm2mils100(PinDiam), \
55 '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
57 BoxWidth = (BoxEnd * 2) + ((pins - 1) * PinSpacing);
59 print ' ElementLine[', \
63 mm2mils100(BoxHeight), \
66 print ' ElementLine[', \
68 mm2mils100(BoxHeight), \
69 mm2mils100(BoxWidth), \
70 mm2mils100(BoxHeight), \
73 print ' ElementLine[', \
74 mm2mils100(BoxWidth), \
75 mm2mils100(BoxHeight), \
76 mm2mils100(BoxWidth), \
80 print ' ElementLine[', \
81 mm2mils100(BoxWidth), \