2 # Copyright 2008,2024 by Bdale Garbee <bdale@gag.com>. GPLv2
4 # Program to emit PCB footprint for
5 # Molex 1.25mm PicoBlade, vertical through-hole header 53047-XX10, 2-15 pins
7 # Needs pin count on command line, in range of 2..15
10 # dimensions in mm from 903257004_sd.pdf datasheet
24 # we're going to use the 1/100 of a mil fundamental unit form
26 return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
28 pins = int(sys.argv[1])
30 sys.stderr.write('Must be at least 4 pins\n')
33 sys.stderr.write('Must be no more than 26 pins\n')
36 print('# author: Bdale Garbee')
37 print('# email: bdale@gag.com')
38 print('# dist-license: GPL 2')
39 print('# use-license: unlimited')
41 print('Element[0x0 "PicoFlex%i"' % pins,'"" "" 0 0 0 0 0 100 0x0]')
43 for col in range (int((pins+1)/2)):
51 pinnum = (col * 2) + row + 1
57 mm2mils100(col*PinSpacing + offset), \
58 mm2mils100(spacing), \
59 mm2mils100(PinDiam*2), \
61 mm2mils100(PinDiam*2)+1000, \
62 mm2mils100(PinDiam), \
63 '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']')
68 mm2mils100(MntDiam), \
70 mm2mils100(MntDiam), \
71 mm2mils100(MntDiam), \
72 '"mnt" "0"', '0x0008', ']')
75 mm2mils100(((pins+1)/2-1)*PinSpacing+RowOffset+MntX), \
77 mm2mils100(MntDiam), \
79 mm2mils100(MntDiam), \
80 mm2mils100(MntDiam), \
81 '"mnt" "0"', '0x0008', ']')
83 BoxWidth = BoxEnd + ((pins/2-1) * PinSpacing + RowOffset);
84 BoxYOff = MntY + MntDiam/2 + .1524
86 print(' ElementLine[', \
87 mm2mils100(-BoxEnd), \
88 mm2mils100(-BoxYOff), \
89 mm2mils100(-BoxEnd), \
90 mm2mils100(BoxHeight-BoxYOff), \
93 print(' ElementLine[', \
94 mm2mils100(-BoxEnd), \
95 mm2mils100(BoxHeight-BoxYOff), \
96 mm2mils100(BoxWidth), \
97 mm2mils100(BoxHeight-BoxYOff), \
100 print(' ElementLine[', \
101 mm2mils100(BoxWidth), \
102 mm2mils100(BoxHeight-BoxYOff), \
103 mm2mils100(BoxWidth), \
104 mm2mils100(-BoxYOff), \
107 print(' ElementLine[', \
108 mm2mils100(BoxWidth), \
109 mm2mils100(-BoxYOff), \
110 mm2mils100(-BoxEnd), \
111 mm2mils100(-BoxYOff), \