catch up on stuff
[hw/bdale] / pkg / newlib / 50milpitch.py
1 #!/usr/bin/python
2 # Copyright 2011 by Bdale Garbee <bdale@gag.com>.  GPLv2
3 #
4 # Program to emit PCB footprint for
5 #   Sullins Connector Solutions single row 0.050" header pins
6 #
7 # Needs pin count on command line, in range of 2..50
8 #
9
10 # dimensions in mm
11 PinSpacing = 1.27
12
13 import sys
14
15 # we're going to use the 1/100 of a mil fundamental unit form
16 def mm2mils100( mm ):
17         return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
18
19 pins = int(sys.argv[1])
20 if pins < 2:
21         sys.stderr.write('Must be at least 2 pins\n')
22         sys.exit(1)
23 if pins > 15:
24         sys.stderr.write('Must be no more than 15 pins\n')
25         sys.exit(1)
26
27 print '# author: Bdale Garbee'
28 print '# email: bdale@gag.com'
29 print '# dist-license: GPL 2'
30 print '# use-license: unlimited'
31
32 print 'Element[0x0 "50mil%ipin"' % pins,'"" "" 0 0 0 0 0 100 0x0]'
33 print "("
34 for pin in range (1,pins+1):
35     pinnum = pins + 1 - pin
36     if pinnum == 1:
37         Flags = '0x0101'
38     else:
39         Flags = '0x0001'
40     print '   Pin[', \
41         mm2mils100((pins-1)*PinSpacing - (pin-1)*PinSpacing), \
42         0, \
43         4200, \
44         1200, \
45         4800, \
46         2800, \
47         '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
48
49 print ")"