1212-8.fp
AN3111.fp
lqfp32.fp
+tqfp44.fp
lqfp48.fp
lqfp64.fp
lqfp80.fp
8ufson2x2.fp
ti-qfn20.fp
qfn-16.fp
+qfn-44.fp
ap.10g.fp
BTM182.fp
NHD-C0216.fp
SD.fp
microSD.fp
microSDold.fp
+microSDpush.fp
v-bite.fp
qfn16-3x3.fp
-1051330011.fp
2013499-1.fp
servo.fp
servo-motor.fp
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2013 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for Vishay 1212-8 dual FET package
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "1212-8" "" "" 0 0 -10161 -12011 0 100 0x0]'
-print "("
+print('Element[0x0 "1212-8" "" "" 0 0 -10161 -12011 0 100 0x0]')
+print("(")
for pin in range (0,4):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pin-1.5) * PinSpacing), \
mm2mils100(-(RowOuter/2 - PinWidth/2)), \
mm2mils100((pin-1.5) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinWidth)+600, \
- '"pin%i"' % (8 - pin), '"%i"' % (8 - pin), '0x0100]'
+ '"pin%i"' % (8 - pin), '"%i"' % (8 - pin), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pin-1.5) * PinSpacing), \
mm2mils100(RowOuter/2 - PinWidth/2), \
mm2mils100((pin-1.5) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinWidth)+600, \
- '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]'
+ '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(-(DrainSpacing/2 + DrainWidth/2)), \
mm2mils100(RowOuter/2 - PinHeight - 0.635 - DrainWidth/2), \
mm2mils100(-(DrainSpacing/2 + DrainWidth/2)), \
mm2mils100(DrainWidth), \
mm2mils100(DrainSpacing - DrainWidth), \
mm2mils100(DrainWidth)+600, \
- '"pin8" "8" 0x0100]'
+ '"pin8" "8" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(DrainSpacing/2 + DrainWidth/2), \
mm2mils100(RowOuter/2 - PinHeight - 0.635 - DrainWidth/2), \
mm2mils100(DrainSpacing/2 + DrainWidth/2), \
mm2mils100(DrainWidth), \
mm2mils100(DrainSpacing - DrainWidth), \
mm2mils100(DrainWidth)+600, \
- '"pin5" "5" 0x0100]'
+ '"pin5" "5" 0x0100]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodyHeight/2), \
mm2mils100(-BodyWidth/2), \
mm2mils100(-BodyHeight/2), \
mm2mils100( BodyWidth/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodyHeight/2), \
mm2mils100( BodyWidth/2), \
mm2mils100( BodyHeight/2), \
mm2mils100( BodyWidth/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100( BodyHeight/2), \
mm2mils100( BodyWidth/2), \
mm2mils100( BodyHeight/2), \
mm2mils100(-BodyWidth/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100( BodyHeight/2), \
mm2mils100(-BodyWidth/2), \
mm2mils100(-BodyHeight/2), \
mm2mils100(-BodyWidth/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100(-2 * PinSpacing), \
mm2mils100(0.60 * RowOuter), \
- '500 500 0 360 1000 ]'
+ '500 500 0 360 1000 ]')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2014 by Bdale Garbee <bdale@gag.com>. GPLv3
#
# Program to emit PCB footprint for 2512 package used by Vishay resistors
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "2512" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print ' Pad[',\
+print('Element[0x0 "2512" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print(' Pad[',\
mm2mils100(-PinSpacing/2 - PinWidth/2), \
mm2mils100(-PinHeight/2 + PinWidth/2), \
mm2mils100(-PinSpacing/2 - PinWidth/2), \
mm2mils100(PinWidth), \
0, \
mm2mils100(PinWidth+0.4), \
- '"pin1" "1" 0x0100]'
+ '"pin1" "1" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(PinSpacing/2 + PinWidth/2), \
mm2mils100(-PinHeight/2 + PinWidth/2), \
mm2mils100(PinSpacing/2 + PinWidth/2), \
mm2mils100(PinWidth), \
0, \
mm2mils100(PinWidth+0.4), \
- '"pin2" "2" 0x0100]'
+ '"pin2" "2" 0x0100]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-PinSpacing/2 + 0.5), \
mm2mils100(PinHeight/2), \
mm2mils100(PinSpacing/2 - 0.5), \
mm2mils100(PinHeight/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-PinSpacing/2 + 0.5), \
mm2mils100(-PinHeight/2), \
mm2mils100(PinSpacing/2 - 0.5), \
mm2mils100(-PinHeight/2), \
- '1000 ]'
+ '1000 ]')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2018 by Bdale Garbee <bdale@gag.com>. GPLv3
#
# Program to emit PCB footprint for Omnetics A29100-009 connector
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 3+'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "A29100-009" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "A29100-009" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
for pad in range (0,5):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pad-2) * Row1Spacing), \
mm2mils100(PadHeight/2 - PadWidth/2), \
mm2mils100((pad-2) * Row1Spacing), \
mm2mils100(PadWidth), \
mm2mils100(0), \
mm2mils100(PadWidth)+600, \
- '"pin%i"' % (pad+1), '"%i"' % (pad+1), '0x0100]'
+ '"pin%i"' % (pad+1), '"%i"' % (pad+1), '0x0100]')
for pad in range (0,4):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pad-1.5) * Row2Spacing), \
mm2mils100(-PadRowSpacing - PadHeight/2 + PadWidth/2), \
mm2mils100((pad-1.5) * Row2Spacing), \
mm2mils100(PadWidth), \
mm2mils100(0), \
mm2mils100(PadWidth)+600, \
- '"pin%i"' % (pad+6), '"%i"' % (pad+6), '0x0100]'
+ '"pin%i"' % (pad+6), '"%i"' % (pad+6), '0x0100]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(PinSpacing/2), \
mm2mils100(PinOffset), \
mm2mils100(PinDiam+ARing), \
mm2mils100(Clearance), \
mm2mils100(PinDiam+ARing+Clearance ), \
mm2mils100(PinDiam), \
- '"mnt" "G" 0x0000]'
+ '"mnt" "G" 0x0000]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(-PinSpacing/2), \
mm2mils100(PinOffset), \
mm2mils100(PinDiam+ARing), \
mm2mils100(Clearance), \
mm2mils100(PinDiam+ARing+Clearance ), \
mm2mils100(PinDiam), \
- '"mnt" "G" 0x0000]'
+ '"mnt" "G" 0x0000]')
-print ")"
+print(")")
print('# author: Bdale Garbee')
print('# email: bdale@gag.com')
-print('# dist-license: GPL 2')
+print('# dist-license: GPL 3')
print('# use-license: unlimited')
print('Element[0x0 "ABM3B" "" "" 0 0 0 0 0 100 0x0]')
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2019 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for ABM3C package used by Xtals
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 3'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "ABM3C" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print ' Pad[',\
+print('Element[0x0 "ABM3C" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print(' Pad[',\
mm2mils100(WSpacing/2 + PinWidth/2), \
mm2mils100(-(HSpacing/2 + PinWidth/2)), \
mm2mils100(WSpacing/2 + PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(WSpacing - PinWidth), \
mm2mils100(PinWidth)+600, \
- '"pin2" "2" 0x0100]'
+ '"pin2" "2" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(WSpacing/2 + PinWidth/2), \
mm2mils100(HSpacing/2 + PinWidth/2), \
mm2mils100(WSpacing/2 + PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(WSpacing - PinWidth), \
mm2mils100(PinWidth)+600, \
- '"pin1" "1" 0x0100]'
+ '"pin1" "1" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(-(WSpacing/2 + PinWidth/2)), \
mm2mils100(HSpacing/2 + PinWidth/2), \
mm2mils100(-(WSpacing/2 + PinWidth/2)), \
mm2mils100(PinWidth), \
mm2mils100(WSpacing - PinWidth), \
mm2mils100(PinWidth)+600, \
- '"pin4" "4" 0x0100]'
+ '"pin4" "4" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(-(WSpacing/2 + PinWidth/2)), \
mm2mils100(-(HSpacing/2 + PinWidth/2)), \
mm2mils100(-(WSpacing/2 + PinWidth/2)), \
mm2mils100(PinWidth), \
mm2mils100(WSpacing - PinWidth), \
mm2mils100(PinWidth)+600, \
- '"pin3" "3" 0x0100]'
+ '"pin3" "3" 0x0100]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100(WSpacing*0.2), \
mm2mils100(HSpacing/2+PinHeight*0.8), \
- '500 500 0 360 1000 ]'
+ '500 500 0 360 1000 ]')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2007 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for ABM8 package used by Xtals
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "ABM8" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print ' Pad[',\
+print('Element[0x0 "ABM8" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print(' Pad[',\
mm2mils100(WSpacing/2 + PinWidth/2), \
mm2mils100(-(HSpacing/2 + PinWidth/2)), \
mm2mils100(WSpacing/2 + PinWidth/2), \
mm2mils100(PinWidth), \
(MinClearance*2), \
mm2mils100(PinWidth)+(MaskDelta*2), \
- '"pin2" "2" 0x0100]'
+ '"pin2" "2" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(WSpacing/2 + PinWidth/2), \
mm2mils100(HSpacing/2 + PinWidth/2), \
mm2mils100(WSpacing/2 + PinWidth/2), \
mm2mils100(PinWidth), \
(MinClearance*2), \
mm2mils100(PinWidth)+(MaskDelta*2), \
- '"pin1" "1" 0x0100]'
+ '"pin1" "1" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(-(WSpacing/2 + PinWidth/2)), \
mm2mils100(HSpacing/2 + PinWidth/2), \
mm2mils100(-(WSpacing/2 + PinWidth/2)), \
mm2mils100(PinWidth), \
(MinClearance*2), \
mm2mils100(PinWidth)+(MaskDelta*2), \
- '"pin4" "4" 0x0100]'
+ '"pin4" "4" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(-(WSpacing/2 + PinWidth/2)), \
mm2mils100(-(HSpacing/2 + PinWidth/2)), \
mm2mils100(-(WSpacing/2 + PinWidth/2)), \
mm2mils100(PinWidth), \
(MinClearance*2), \
mm2mils100(PinWidth)+(MaskDelta*2), \
- '"pin3" "3" 0x0100]'
+ '"pin3" "3" 0x0100]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100(WSpacing*0.2), \
mm2mils100(HSpacing/2+PinHeight*0.8), \
- '500 500 0 360 1000 ]'
+ '500 500 0 360 1000 ]')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2011 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for Analog Devices ADXL78 accelerometer
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "ADXL78" "" "" 0 0 -10161 -12011 0 100 0x0]'
-print "("
+print('Element[0x0 "ADXL78" "" "" 0 0 -10161 -12011 0 100 0x0]')
+print("(")
for pin in range (0,3):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-(RowSpacing/2 + PinWidth/2)), \
mm2mils100((pin-1) * PinSpacing), \
mm2mils100(-(RowSpacing/2 + PinHeight - PinWidth/2)), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinWidth)+600, \
- '"pin%i"' % (pin+1), '"%i"' % (pin+1), '0x0100]'
+ '"pin%i"' % (pin+1), '"%i"' % (pin+1), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(RowSpacing/2 + PinWidth/2), \
mm2mils100((pin-1) * PinSpacing), \
mm2mils100(RowSpacing/2 + PinHeight - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinWidth)+600, \
- '"pin%i"' % (7 - pin), '"%i"' % (7 - pin), '0x0100]'
+ '"pin%i"' % (7 - pin), '"%i"' % (7 - pin), '0x0100]')
-print ' Pad[',\
+print(' Pad[',\
0, \
mm2mils100(RowSpacing/2 + PinWidth/2), \
0, \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinWidth)+600, \
- '"pin%i"' % (4), '"%i"' % (4), '0x0100]'
+ '"pin%i"' % (4), '"%i"' % (4), '0x0100]')
-print ' Pad[',\
+print(' Pad[',\
0, \
mm2mils100(-RowSpacing/2 - PinWidth/2), \
0, \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinWidth)+600, \
- '"pin%i"' % (8), '"%i"' % (8), '0x0100]'
+ '"pin%i"' % (8), '"%i"' % (8), '0x0100]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodyHeight/2), \
mm2mils100(-BodyWidth/2), \
mm2mils100(-BodyHeight/2), \
mm2mils100( BodyWidth/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodyHeight/2), \
mm2mils100( BodyWidth/2), \
mm2mils100( BodyHeight/2), \
mm2mils100( BodyWidth/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100( BodyHeight/2), \
mm2mils100( BodyWidth/2), \
mm2mils100( BodyHeight/2), \
mm2mils100(-BodyWidth/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100( BodyHeight/2), \
mm2mils100(-BodyWidth/2), \
mm2mils100(-BodyHeight/2), \
mm2mils100(-BodyWidth/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100(-0.6 * BodyWidth), \
mm2mils100(-0.45 * BodyHeight), \
- '500 500 0 360 1000 ]'
+ '500 500 0 360 1000 ]')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2007 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for 16-lead QFN, 6x6mm
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "AN3111" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "AN3111" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
# pad under the chip, no overall paste so we can control subset that gets paste
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(CoreSquare), \
mm2mils100(0), \
mm2mils100(CoreSquare + MaskAdd), \
- '"17" "17" "square,nopaste"]'
+ '"17" "17" "square,nopaste"]')
# copper sub-squares in a grid to set paste area
for viarow in range (-1, 2):
for viacol in range (-1, 2):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(viacol * 1.4), \
mm2mils100(viarow * 1.4), \
mm2mils100(viacol * 1.4), \
mm2mils100(1.0), \
0, \
mm2mils100(1.0), \
- '"17" "17" "square"]'
+ '"17" "17" "square"]')
# corner mounting squares .. tied to Vss on chip, but don't connect on board
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(CoreSquare/2 + 0.37 + CornerSquare/2), \
mm2mils100(CoreSquare/2 + 0.37 + CornerSquare/2), \
mm2mils100(CoreSquare/2 + 0.37 + CornerSquare/2), \
mm2mils100(CornerSquare), \
mm2mils100(0), \
mm2mils100(CornerSquare + MaskAdd), \
- '"NC" "NC" 0x0100]'
+ '"NC" "NC" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(CoreSquare/2 + 0.37 + CornerSquare/2), \
mm2mils100(-(CoreSquare/2 + 0.37 + CornerSquare/2)), \
mm2mils100(CoreSquare/2 + 0.37 + CornerSquare/2), \
mm2mils100(CornerSquare), \
mm2mils100(0), \
mm2mils100(CornerSquare + MaskAdd), \
- '"NC" "NC" 0x0100]'
+ '"NC" "NC" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(-(CoreSquare/2 + 0.37 + CornerSquare/2)), \
mm2mils100(CoreSquare/2 + 0.37 + CornerSquare/2), \
mm2mils100(-(CoreSquare/2 + 0.37 + CornerSquare/2)), \
mm2mils100(CornerSquare), \
mm2mils100(0), \
mm2mils100(CornerSquare + MaskAdd), \
- '"NC" "NC" 0x0100]'
+ '"NC" "NC" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(-(CoreSquare/2 + 0.37 + CornerSquare/2)), \
mm2mils100(-(CoreSquare/2 + 0.37 + CornerSquare/2)), \
mm2mils100(-(CoreSquare/2 + 0.37 + CornerSquare/2)), \
mm2mils100(CornerSquare), \
mm2mils100(0), \
mm2mils100(CornerSquare + MaskAdd), \
- '"NC" "NC" 0x0100]'
+ '"NC" "NC" 0x0100]')
for pin in range (1,5):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-2.5 + pin * PinSpacing), \
mm2mils100(-Overall/2 - 0.30 + PinWidth/2), \
mm2mils100(-2.5 + pin * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(0), \
mm2mils100(PinWidth + MaskAdd), \
- '"pin%i"' % (13-pin), '"%i"' % (13-pin), '0x0100]'
+ '"pin%i"' % (13-pin), '"%i"' % (13-pin), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-2.5 + pin * PinSpacing), \
mm2mils100(+Overall/2 - 0.55 + PinWidth/2), \
mm2mils100(-2.5 + pin * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(0), \
mm2mils100(PinWidth + MaskAdd), \
- '"pin%i"' % pin, '"%i"' % pin, '0x0100]'
+ '"pin%i"' % pin, '"%i"' % pin, '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(Overall/2 - 0.55 + PinWidth/2), \
mm2mils100(-2.5 + pin * PinSpacing), \
mm2mils100(Overall/2 + 0.30 - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(0), \
mm2mils100(PinWidth + MaskAdd), \
- '"pin%i"' % (9-pin), '"%i"' % (9-pin), '0x0100]'
+ '"pin%i"' % (9-pin), '"%i"' % (9-pin), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-Overall/2 - 0.30 + PinWidth/2), \
mm2mils100(-2.5 + pin * PinSpacing), \
mm2mils100(-Overall/2 + 0.55 - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(0), \
mm2mils100(PinWidth + MaskAdd), \
- '"pin%i"' % (12+pin), '"%i"' % (12+pin), '0x0100]'
+ '"pin%i"' % (12+pin), '"%i"' % (12+pin), '0x0100]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100(-3.2), \
mm2mils100(3.2), \
- '500 500 0 360 1000 ]'
-print ")"
+ '500 500 0 360 1000 ]')
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2011 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for Rayson BTM-182 Bluetooth module
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "BTM182" "" "" 0 0 -10161 -12011 0 100 0x0]'
-print "("
+print('Element[0x0 "BTM182" "" "" 0 0 -10161 -12011 0 100 0x0]')
+print("(")
for pin in range (0,15):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pin-7) * PinSpacing), \
mm2mils100(-(RowSpacing/2 + PinWidth/2)), \
mm2mils100((pin-7) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinWidth)+600, \
- '"pin%i"' % (30 - pin), '"%i"' % (30 - pin), '0x0100]'
+ '"pin%i"' % (30 - pin), '"%i"' % (30 - pin), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pin-7) * PinSpacing), \
mm2mils100(RowSpacing/2 + PinWidth/2), \
mm2mils100((pin-7) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinWidth)+600, \
- '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]'
+ '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(-(9.44+SmallPinWidth/2-SmallPinHeight)), \
mm2mils100(RowCenters/2 - 2.96), \
mm2mils100(-(9.44-SmallPinWidth/2+SmallPinHeight)), \
mm2mils100(SmallPinHeight), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(SmallPinHeight)+600, \
- '"pin%i"' % 31, '"%i"' % 31, '0x0100]'
+ '"pin%i"' % 31, '"%i"' % 31, '0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(-(9.44+SmallPinWidth/2-SmallPinHeight)), \
mm2mils100(RowCenters/2 - 1.69), \
mm2mils100(-(9.44-SmallPinWidth/2+SmallPinHeight)), \
mm2mils100(SmallPinHeight), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(SmallPinHeight)+600, \
- '"pin%i"' % 32, '"%i"' % 32, '0x0100]'
+ '"pin%i"' % 32, '"%i"' % 32, '0x0100]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodyHeight/2-BodyOffset), \
mm2mils100(-BodyWidth/2), \
mm2mils100(-BodyHeight/2-BodyOffset), \
mm2mils100( BodyWidth/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodyHeight/2-BodyOffset), \
mm2mils100( BodyWidth/2), \
mm2mils100(-BodyHeight/2-BodyOffset+5.13), \
mm2mils100( BodyWidth/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodyHeight/2-BodyOffset+5.13), \
mm2mils100( BodyWidth/2), \
mm2mils100(-BodyHeight/2-BodyOffset+5.13), \
mm2mils100( BodyWidth/2-3.595), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodyHeight/2-BodyOffset+5.13), \
mm2mils100( BodyWidth/2-3.595), \
mm2mils100(-BodyHeight/2-BodyOffset+5.13+0.76), \
mm2mils100( BodyWidth/2-3.595), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodyHeight/2-BodyOffset+5.13+0.76), \
mm2mils100( BodyWidth/2), \
mm2mils100(-BodyHeight/2-BodyOffset+5.13+0.76), \
mm2mils100( BodyWidth/2-3.595), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodyHeight/2-BodyOffset+5.13+0.76), \
mm2mils100( BodyWidth/2), \
mm2mils100( BodyHeight/2-BodyOffset), \
mm2mils100( BodyWidth/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100( BodyHeight/2-BodyOffset), \
mm2mils100( BodyWidth/2), \
mm2mils100( BodyHeight/2-BodyOffset), \
mm2mils100(-BodyWidth/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100( BodyHeight/2-BodyOffset), \
mm2mils100(-BodyWidth/2), \
mm2mils100(-BodyHeight/2-BodyOffset), \
mm2mils100(-BodyWidth/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100(-7 * PinSpacing), \
mm2mils100(RowSpacing/2-PinHeight/6), \
- '500 500 0 360 1000 ]'
+ '500 500 0 360 1000 ]')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2015 by Bdale Garbee <bdale@gag.com>. GPLv3
#
# Program to emit PCB footprint for BU2032 battery holder by Memory Protection Devices
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 3'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "BU2032" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print ' Pad[',\
+print('Element[0x0 "BU2032" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print(' Pad[',\
mm2mils100(-PinSpacing/2 - PinWidth/2), \
mm2mils100(-PinHeight/2 + PinWidth/2), \
mm2mils100(-PinSpacing/2 - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(1.5), \
mm2mils100(PinWidth+0.4), \
- '"pin1" "1" 0x0100]'
+ '"pin1" "1" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(PinSpacing/2 + PinWidth/2), \
mm2mils100(-PinHeight/2 + PinWidth/2), \
mm2mils100(PinSpacing/2 + PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(1.5), \
mm2mils100(PinWidth+0.4), \
- '"pin2" "2" 0x0100]'
+ '"pin2" "2" 0x0100]')
-print ' ElementArc[',\
+print(' ElementArc[',\
0, \
0, \
mm2mils100(BodyDiam/2), \
0, \
360, \
1000, \
- ']'
+ ']')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodyWidth/2), \
mm2mils100(-BodyHeight/2), \
mm2mils100(BodyWidth/2), \
mm2mils100(-BodyHeight/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodyWidth/2), \
mm2mils100(BodyHeight/2), \
mm2mils100(BodyWidth/2), \
mm2mils100(BodyHeight/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(BodyWidth/2), \
mm2mils100(-BodyHeight/2), \
mm2mils100(BodyWidth/2), \
mm2mils100(BodyHeight/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodyWidth/2), \
mm2mils100(-BodyHeight/2), \
mm2mils100(-BodyWidth/2), \
mm2mils100(BodyHeight/2), \
- '1000 ]'
+ '1000 ]')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2014 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for 8mm diameter Panasonic FC series
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "CAP_FC8" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print ' Pin[',\
+print('Element[0x0 "CAP_FC8" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print(' Pin[',\
mm2mils100(-PinSpacing/2), \
0, \
mm2mils100(2), \
mm2mils100(1), \
mm2mils100(2.2), \
mm2mils100(0.80), \
- '"pin1" "1" 0x0101]'
+ '"pin1" "1" 0x0101]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(PinSpacing/2), \
0, \
mm2mils100(2), \
mm2mils100(1), \
mm2mils100(2.2), \
mm2mils100(0.80), \
- '"pin2" "2" 0x0001]'
+ '"pin2" "2" 0x0001]')
-print ' ElementArc[',\
+print(' ElementArc[',\
0, \
0, \
mm2mils100(BodyDiam/2), \
0, \
360, \
1000, \
- ']'
+ ']')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodyDiam/2), \
mm2mils100(-BodyDiam/2), \
mm2mils100(-BodyDiam/4), \
mm2mils100(-BodyDiam/2), \
1000, \
- ']'
+ ']')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-3*BodyDiam/8), \
mm2mils100(-5*BodyDiam/8), \
mm2mils100(-3*BodyDiam/8), \
mm2mils100(-3*BodyDiam/8), \
1000, \
- ']'
+ ']')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2012 by Bdale Garbee <bdale@gag.com>. GPLv3
#
# Program to emit PCB footprint for SMA package used by Diodes, Inc
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "DIODE-SMA" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print ' Pad[',\
+print('Element[0x0 "DIODE-SMA" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print(' Pad[',\
mm2mils100(-PinSpacing/2 - PinWidth + PinHeight/2), \
0, \
mm2mils100(-PinSpacing/2 - PinHeight/2), \
mm2mils100(PinHeight), \
0, \
mm2mils100(PinHeight+0.4), \
- '"pin1" "1" 0x0100]'
+ '"pin1" "1" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(PinSpacing/2 + PinWidth - PinHeight/2), \
0, \
mm2mils100(PinSpacing/2 + PinHeight/2), \
mm2mils100(PinHeight), \
0, \
mm2mils100(PinHeight+0.4), \
- '"pin2" "2" 0x0100]'
+ '"pin2" "2" 0x0100]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(PinSpacing * 2.5), \
mm2mils100(-PinHeight/2), \
mm2mils100(PinSpacing * 2.5), \
mm2mils100(PinHeight/2), \
- '1000 ]'
+ '1000 ]')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2011 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for QFN32 package used by FTDI FT232RQ
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "QFN32" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "QFN32" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
# pad under the chip, must be grounded
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(GndSquare), \
0, \
0, \
- '"pin33" "33" "square,nopaste"]'
+ '"pin33" "33" "square,nopaste"]')
# vias in the ground pad under the chip
for viarow in range (-1,2):
for viacol in range (-1,2):
- print ' Pin[',\
+ print(' Pin[',\
mm2mils100(2 * viacol * CoreSquare / 5), \
mm2mils100(2 * viarow * CoreSquare / 5), \
2900, \
2500, \
0, \
1500, \
- '"pin33" "33" 0x0002]'
+ '"pin33" "33" 0x0002]')
# break pad under chip into a grid to control the resist and paste masks
for viarow in range (-2, 3):
for viacol in range (-2, 3):
if (viarow in (-2, 0, 2)) and (viacol in (-2, 0, 2)):
# copper sub-square with resist over vias
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(viacol * CoreSquare / 5), \
mm2mils100(viarow * CoreSquare / 5), \
mm2mils100(viacol * CoreSquare / 5), \
mm2mils100((CoreSquare)/5), \
0, \
0, \
- '"pin33" "33" "square,nopaste"]'
+ '"pin33" "33" "square,nopaste"]')
else:
# copper sub-square without resist
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(viacol * CoreSquare / 5), \
mm2mils100(viarow * CoreSquare / 5), \
mm2mils100(viacol * CoreSquare / 5), \
mm2mils100((CoreSquare)/5), \
0, \
mm2mils100((CoreSquare)/5), \
- '"pin33" "33" "square,nopaste"]'
+ '"pin33" "33" "square,nopaste"]')
# copper spot to control paste mask generation
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(viacol * CoreSquare / 5), \
mm2mils100(viarow * CoreSquare / 5), \
mm2mils100(viacol * CoreSquare / 5), \
1500, \
0, \
mm2mils100((CoreSquare)/5), \
- '"pin33" "33" "square"]'
+ '"pin33" "33" "square"]')
# pins
for pin in range (1,9):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((-4.5 + pin) * PinSpacing), \
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100((-4.5 + pin) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (25-pin), '"%i"' % (25-pin), '"square"]'
+ '"pin%i"' % (25-pin), '"%i"' % (25-pin), '"square"]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((-4.5 + pin) * PinSpacing), \
mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
mm2mils100((-4.5 + pin) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % pin, '"%i"' % pin, '"square"]'
+ '"pin%i"' % pin, '"%i"' % pin, '"square"]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
mm2mils100((-4.5 + pin) * PinSpacing), \
mm2mils100(Overall/2 - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (17-pin), '"%i"' % (17-pin), '"square"]'
+ '"pin%i"' % (17-pin), '"%i"' % (17-pin), '"square"]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100((-4.5 + pin) * PinSpacing), \
mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (24+pin), '"%i"' % (24+pin), '"square"]'
+ '"pin%i"' % (24+pin), '"%i"' % (24+pin), '"square"]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100(-2.6), \
mm2mils100(2.6), \
- '500 500 0 360 1000 ]'
-print ")"
+ '500 500 0 360 1000 ]')
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2017 by Bdale Garbee <bdale@gag.com>. GPLv3+
#
# Program to emit PCB footprint for Johanson balun/filter modules
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "JTIBM15" "" "" 0 0 -10161 -12011 0 100 0x0]'
-print "("
+print('Element[0x0 "JTIBM15" "" "" 0 0 -10161 -12011 0 100 0x0]')
+print("(")
for pin in range (0,3):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pin-1) * PinSpacing), \
mm2mils100(-(RowSpacing/2 + PinWidth/2)), \
mm2mils100((pin-1) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinWidth)+600, \
- '"pin%i"' % (6 - pin), '"%i"' % (6 - pin), '0x0100]'
+ '"pin%i"' % (6 - pin), '"%i"' % (6 - pin), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pin-1) * PinSpacing), \
mm2mils100(RowSpacing/2 + PinWidth/2), \
mm2mils100((pin-1) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinWidth)+600, \
- '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]'
+ '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodyHeight/2), \
mm2mils100(-BodyWidth/2), \
mm2mils100(-BodyHeight/2), \
mm2mils100( BodyWidth/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodyHeight/2), \
mm2mils100( BodyWidth/2), \
mm2mils100( BodyHeight/2), \
mm2mils100( BodyWidth/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100( BodyHeight/2), \
mm2mils100( BodyWidth/2), \
mm2mils100( BodyHeight/2), \
mm2mils100(-BodyWidth/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100( BodyHeight/2), \
mm2mils100(-BodyWidth/2), \
mm2mils100(-BodyHeight/2), \
mm2mils100(-BodyWidth/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100(-1.8 * PinSpacing), \
mm2mils100(RowSpacing*1.3), \
- '500 500 0 360 1000 ]'
+ '500 500 0 360 1000 ]')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2007 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for C&K KSCJ SPST switch
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "PCM12SMTR" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print ' Pad[',\
+print('Element[0x0 "PCM12SMTR" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print(' Pad[',\
mm2mils100(WSpacing/2 + PadHeight/2), \
mm2mils100(-HSpacing/2), \
mm2mils100(WSpacing/2 + PadWidth - PadHeight/2), \
mm2mils100(PadHeight), \
0, \
mm2mils100(PadHeight)+600, \
- '"pin2" "2" 0x0100]'
+ '"pin2" "2" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(WSpacing/2 + PadHeight/2), \
mm2mils100(HSpacing/2), \
mm2mils100(WSpacing/2 + PadWidth - PadHeight/2), \
mm2mils100(PadHeight), \
0, \
mm2mils100(PadHeight)+600, \
- '"pin1" "1" 0x0100]'
+ '"pin1" "1" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(-WSpacing/2 - PadHeight/2), \
mm2mils100(HSpacing/2), \
mm2mils100(-WSpacing/2 - PadWidth + PadHeight/2), \
mm2mils100(PadHeight), \
0, \
mm2mils100(PadHeight)+600, \
- '"pin1" "1" 0x0100]'
+ '"pin1" "1" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(-WSpacing/2 - PadHeight/2), \
mm2mils100(-HSpacing/2), \
mm2mils100(-WSpacing/2 - PadWidth + PadHeight/2), \
mm2mils100(PadHeight), \
0, \
mm2mils100(PadHeight)+600, \
- '"pin2" "2" 0x0100]'
+ '"pin2" "2" 0x0100]')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2012 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for LPCC 16 package used by HMC5883L
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "LPCC16" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "LPCC16" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
for pin in range (1,5):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((-2.5 + pin) * PinSpacing), \
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100((-2.5 + pin) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinWidth + 0.1), \
- '"pin%i"' % (13-pin), '"%i"' % (13-pin), '0x0100]'
+ '"pin%i"' % (13-pin), '"%i"' % (13-pin), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((-2.5 + pin) * PinSpacing), \
mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
mm2mils100((-2.5 + pin) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinWidth + 0.1), \
- '"pin%i"' % pin, '"%i"' % pin, '0x0100]'
+ '"pin%i"' % pin, '"%i"' % pin, '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
mm2mils100((-2.5 + pin) * PinSpacing), \
mm2mils100(Overall/2 - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinWidth + 0.1), \
- '"pin%i"' % (9-pin), '"%i"' % (9-pin), '0x0100]'
+ '"pin%i"' % (9-pin), '"%i"' % (9-pin), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100((-2.5 + pin) * PinSpacing), \
mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinWidth + 0.1), \
- '"pin%i"' % (12+pin), '"%i"' % (12+pin), '0x0100]'
+ '"pin%i"' % (12+pin), '"%i"' % (12+pin), '0x0100]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100(-Overall/2), \
mm2mils100(Overall/2), \
- '500 500 0 360 1000 ]'
-print ")"
+ '500 500 0 360 1000 ]')
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2016 by Bdale Garbee <bdale@gag.com>. GPLv3+
#
# Program to emit PCB footprint for CUI MD-60S Mini DIN Connector
#
-# dimensions in mm from footprint drawing at DigiKey
+# dimensions in mm from footprint(drawing at DigiKey
BodyWidth = 14.0 # body outline
BodyHeight = 12.4
InnerPinSpace = 2.6
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 3+'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "MD-60S" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print ' Pin[',\
+print('Element[0x0 "MD-60S" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print(' Pin[',\
mm2mils100(-InnerPinSpace/2), \
mm2mils100(Row1Setback), \
mm2mils100(PinDiam+ARing), \
mm2mils100(Clearance), \
mm2mils100(PinDiam+ARing+Clearance), \
mm2mils100(PinDiam), \
- '"pin1" "1" 0x0001]'
+ '"pin1" "1" 0x0001]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(InnerPinSpace/2), \
mm2mils100(Row1Setback), \
mm2mils100(PinDiam+ARing), \
mm2mils100(Clearance), \
mm2mils100(PinDiam+ARing+Clearance), \
mm2mils100(PinDiam), \
- '"pin2" "2" 0x0001]'
+ '"pin2" "2" 0x0001]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(-OuterPinSpace/2), \
mm2mils100(Row1Setback), \
mm2mils100(PinDiam+ARing), \
mm2mils100(Clearance), \
mm2mils100(PinDiam+ARing+Clearance), \
mm2mils100(PinDiam), \
- '"pin3" "3" 0x0001]'
+ '"pin3" "3" 0x0001]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(OuterPinSpace/2), \
mm2mils100(Row1Setback), \
mm2mils100(PinDiam+ARing), \
mm2mils100(Clearance), \
mm2mils100(PinDiam+ARing+Clearance), \
mm2mils100(PinDiam), \
- '"pin4" "4" 0x0001]'
+ '"pin4" "4" 0x0001]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(-OuterPinSpace/2), \
mm2mils100(Row2Setback), \
mm2mils100(PinDiam+ARing), \
mm2mils100(Clearance), \
mm2mils100(PinDiam+ARing+Clearance), \
mm2mils100(PinDiam), \
- '"pin5" "5" 0x0001]'
+ '"pin5" "5" 0x0001]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(OuterPinSpace/2), \
mm2mils100(Row2Setback), \
mm2mils100(PinDiam+ARing), \
mm2mils100(Clearance), \
mm2mils100(PinDiam+ARing+Clearance), \
mm2mils100(PinDiam), \
- '"pin6" "6" 0x0001]'
+ '"pin6" "6" 0x0001]')
-print ' Pin[',\
+print(' Pin[',\
0, \
mm2mils100(MntSetback), \
mm2mils100(MntDiam+ARing), \
mm2mils100(Clearance), \
mm2mils100(MntDiam+ARing+Clearance), \
mm2mils100(MntDiam), \
- '"pin7" "7" 0x0001]'
+ '"pin7" "7" 0x0001]')
-print ' ElementLine[',\
+print(' ElementLine[',\
-mm2mils100(BodyWidth/2), \
0, \
mm2mils100(BodyWidth/2), \
0, \
LineWidth, \
- ']'
-print ' ElementLine[',\
+ ']')
+print(' ElementLine[',\
-mm2mils100(BodyWidth/2), \
mm2mils100(BodyHeight), \
mm2mils100(BodyWidth/2), \
mm2mils100(BodyHeight), \
LineWidth, \
- ']'
-print ' ElementLine[',\
+ ']')
+print(' ElementLine[',\
-mm2mils100(BodyWidth/2), \
0, \
-mm2mils100(BodyWidth/2), \
mm2mils100(BodyHeight), \
LineWidth, \
- ']'
-print ' ElementLine[',\
+ ']')
+print(' ElementLine[',\
mm2mils100(BodyWidth/2), \
0, \
mm2mils100(BodyWidth/2), \
mm2mils100(BodyHeight), \
LineWidth, \
- ']'
+ ']')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2011 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for MO-220 package used by the ATTiny85
def mm2mils100( mm ):
return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
-print '# author: Keith Packard'
-print '# email: keithp@keithp.com'
-print '# dist-license: GPL 2'
-print '# use-license: unlimited'
+print('# author: Keith Packard')
+print('# email: keithp@keithp.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "MO-220" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "MO-220" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
# pad under the chip, must be grounded
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(GndSquare), \
mm2mils100(PinClearance), \
mm2mils100(PinResist), \
- '"pin21" "21" "square,nopaste"]'
+ '"pin21" "21" "square,nopaste"]')
# vias in the ground pad under the chip
#for viarow in range (-1,2):
# for viacol in range (-1,2):
-# print ' Pin[',\
+# print(' Pin[',\
# mm2mils100(2 * viacol * CoreSquare / 5), \
# mm2mils100(2 * viarow * CoreSquare / 5), \
# 2900, \
for viacol in range (-1, 2):
if (viarow in (-1, 1)) and (viacol in (-1, 1)):
# copper sub-square with resist over vias
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(viacol * CoreSquare / blocks), \
mm2mils100(viarow * CoreSquare / blocks), \
mm2mils100(viacol * CoreSquare / blocks), \
mm2mils100((CoreSquare)/blocks), \
0, \
0, \
- '"pin21" "21" "square,nopaste"]'
+ '"pin21" "21" "square,nopaste"]')
else:
# copper sub-square without resist
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(viacol * CoreSquare / blocks), \
mm2mils100(viarow * CoreSquare / blocks), \
mm2mils100(viacol * CoreSquare / blocks), \
mm2mils100((CoreSquare)/blocks), \
0, \
mm2mils100((CoreSquare)/blocks), \
- '"pin21" "21" "square,nopaste"]'
+ '"pin21" "21" "square,nopaste"]')
# copper spot to control paste mask generation
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(viacol * CoreSquare / blocks), \
mm2mils100(viarow * CoreSquare / blocks), \
mm2mils100(viacol * CoreSquare / blocks), \
1500, \
0, \
mm2mils100((CoreSquare)/blocks), \
- '"pin21" "21" "square"]'
+ '"pin21" "21" "square"]')
# pins
for pin in range (1,6):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((-3 + pin) * PinSpacing), \
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100((-3 + pin) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinClearance), \
mm2mils100(PinResist), \
- '"pin%i"' % (16-pin), '"%i"' % (16-pin), '0x0000]'
+ '"pin%i"' % (16-pin), '"%i"' % (16-pin), '0x0000]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((-3 + pin) * PinSpacing), \
mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
mm2mils100((-3 + pin) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinClearance), \
mm2mils100(PinResist), \
- '"pin%i"' % pin, '"%i"' % pin, '0x0000]'
+ '"pin%i"' % pin, '"%i"' % pin, '0x0000]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
mm2mils100((-3 + pin) * PinSpacing), \
mm2mils100(Overall/2 - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinClearance), \
mm2mils100(PinResist), \
- '"pin%i"' % (11-pin), '"%i"' % (11-pin), '0x0000]'
+ '"pin%i"' % (11-pin), '"%i"' % (11-pin), '0x0000]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100((-3 + pin) * PinSpacing), \
mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinClearance), \
mm2mils100(PinResist), \
- '"pin%i"' % (15+pin), '"%i"' % (15+pin), '0x0000]'
+ '"pin%i"' % (15+pin), '"%i"' % (15+pin), '0x0000]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100(-2.0), \
mm2mils100(2.0), \
- '500 500 0 360 1000 ]'
-print ")"
+ '500 500 0 360 1000 ]')
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2007 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for Motorola 1317 package used by MP3H6115A
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "MOT1317" "" "" 0 0 -10161 -12011 0 100 0x0]'
-print "("
+print('Element[0x0 "MOT1317" "" "" 0 0 -10161 -12011 0 100 0x0]')
+print("(")
for pin in range (0,4):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pin-1.5) * PinSpacing), \
mm2mils100(-(RowSpacing/2 + PinWidth/2)), \
mm2mils100((pin-1.5) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinWidth)+600, \
- '"pin%i"' % (8 - pin), '"%i"' % (8 - pin), '0x0100]'
+ '"pin%i"' % (8 - pin), '"%i"' % (8 - pin), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pin-1.5) * PinSpacing), \
mm2mils100(RowSpacing/2 + PinWidth/2), \
mm2mils100((pin-1.5) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinWidth)+600, \
- '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]'
+ '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100( BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100(-BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100( BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100(-2.5 * PinSpacing), \
mm2mils100(RowSpacing/2), \
- '500 500 0 360 1000 ]'
+ '500 500 0 360 1000 ]')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2011 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for QFN24 package used by ITG-3200 gyro
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "ITG3200" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "ITG3200" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
# pins
for pin in range (1,7):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((-3.5 + pin) * PinSpacing), \
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100((-3.5 + pin) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (19-pin), '"%i"' % (19-pin), '0x0000]'
+ '"pin%i"' % (19-pin), '"%i"' % (19-pin), '0x0000]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((-3.5 + pin) * PinSpacing), \
mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
mm2mils100((-3.5 + pin) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % pin, '"%i"' % pin, '0x0000]'
+ '"pin%i"' % pin, '"%i"' % pin, '0x0000]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
mm2mils100((-3.5 + pin) * PinSpacing), \
mm2mils100(Overall/2 - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (13-pin), '"%i"' % (13-pin), '0x0000]'
+ '"pin%i"' % (13-pin), '"%i"' % (13-pin), '0x0000]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100((-3.5 + pin) * PinSpacing), \
mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (18+pin), '"%i"' % (18+pin), '0x0000]'
+ '"pin%i"' % (18+pin), '"%i"' % (18+pin), '0x0000]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100(-(Overall/2)), \
mm2mils100(Overall/2), \
- '500 500 0 360 1000 ]'
-print ")"
+ '500 500 0 360 1000 ]')
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2007 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for Measurement Systems MS5607 & MS5611 sensors
# 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 )
+ 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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "MOT1317" "" "" 0 0 -10161 -12011 0 100 0x0]'
-print "("
+print('Element[0x0 "MOT1317" "" "" 0 0 -10161 -12011 0 100 0x0]')
+print("(")
for pin in range (0,4):
- print ' Pad[',\
- mm2mils100((pin-1.5) * PinSpacing), \
- mm2mils100(-(RowSpacing/2 + PinWidth/2)), \
- mm2mils100((pin-1.5) * PinSpacing), \
- mm2mils100(-(RowSpacing/2 + PinHeight - PinWidth/2)), \
- mm2mils100(PinWidth), \
- mm2mils100(PinSpacing - PinWidth), \
- mm2mils100(PinWidth)+600, \
- '"pin%i"' % (8 - pin), '"%i"' % (8 - pin), '0x0100]'
+ print(' Pad[',\
+ mm2mils100((pin-1.5) * PinSpacing), \
+ mm2mils100(-(RowSpacing/2 + PinWidth/2)), \
+ mm2mils100((pin-1.5) * PinSpacing), \
+ mm2mils100(-(RowSpacing/2 + PinHeight - PinWidth/2)), \
+ mm2mils100(PinWidth), \
+ mm2mils100(PinSpacing - PinWidth), \
+ mm2mils100(PinWidth)+600, \
+ '"pin%i"' % (8 - pin), '"%i"' % (8 - pin), '0x0100]')
- print ' Pad[',\
- mm2mils100((pin-1.5) * PinSpacing), \
- mm2mils100(RowSpacing/2 + PinWidth/2), \
- mm2mils100((pin-1.5) * PinSpacing), \
- mm2mils100(RowSpacing/2 + PinHeight - PinWidth/2), \
- mm2mils100(PinWidth), \
- mm2mils100(PinSpacing - PinWidth), \
- mm2mils100(PinWidth)+600, \
- '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]'
+ print(' Pad[',\
+ mm2mils100((pin-1.5) * PinSpacing), \
+ mm2mils100(RowSpacing/2 + PinWidth/2), \
+ mm2mils100((pin-1.5) * PinSpacing), \
+ mm2mils100(RowSpacing/2 + PinHeight - PinWidth/2), \
+ mm2mils100(PinWidth), \
+ mm2mils100(PinSpacing - PinWidth), \
+ mm2mils100(PinWidth)+600, \
+ '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]')
-print ' ElementLine[',\
- mm2mils100(-BodyHeight/2), \
- mm2mils100(-BodyWidth/2), \
- mm2mils100(-BodyHeight/2), \
- mm2mils100( BodyWidth/2), \
- '1000 ]'
+print(' ElementLine[',\
+ mm2mils100(-BodyHeight/2), \
+ mm2mils100(-BodyWidth/2), \
+ mm2mils100(-BodyHeight/2), \
+ mm2mils100( BodyWidth/2), \
+ '1000 ]')
-print ' ElementLine[',\
- mm2mils100(-BodyHeight/2), \
- mm2mils100( BodyWidth/2), \
- mm2mils100( BodyHeight/2), \
- mm2mils100( BodyWidth/2), \
- '1000 ]'
+print(' ElementLine[',\
+ mm2mils100(-BodyHeight/2), \
+ mm2mils100( BodyWidth/2), \
+ mm2mils100( BodyHeight/2), \
+ mm2mils100( BodyWidth/2), \
+ '1000 ]')
-print ' ElementLine[',\
- mm2mils100( BodyHeight/2), \
- mm2mils100( BodyWidth/2), \
- mm2mils100( BodyHeight/2), \
- mm2mils100(-BodyWidth/2), \
- '1000 ]'
+print(' ElementLine[',\
+ mm2mils100( BodyHeight/2), \
+ mm2mils100( BodyWidth/2), \
+ mm2mils100( BodyHeight/2), \
+ mm2mils100(-BodyWidth/2), \
+ '1000 ]')
-print ' ElementLine[',\
- mm2mils100( BodyHeight/2), \
- mm2mils100(-BodyWidth/2), \
- mm2mils100(-BodyHeight/2), \
- mm2mils100(-BodyWidth/2), \
- '1000 ]'
+print(' ElementLine[',\
+ mm2mils100( BodyHeight/2), \
+ mm2mils100(-BodyWidth/2), \
+ mm2mils100(-BodyHeight/2), \
+ mm2mils100(-BodyWidth/2), \
+ '1000 ]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100(-1.75 * PinSpacing), \
mm2mils100(RowSpacing*1.75), \
- '500 500 0 360 1000 ]'
+ '500 500 0 360 1000 ]')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2011 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for package used by NDK 32mhz crystal
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "NDK32" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print ' Pad[',\
+print('Element[0x0 "NDK32" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print(' Pad[',\
mm2mils100(WSpacing/2 + PinWidth/2), \
mm2mils100(-(HSpacing/2 + PinWidth/2)), \
mm2mils100(WSpacing/2 + PinWidth/2), \
mm2mils100(PinWidth), \
1400, \
mm2mils100(PinWidth)+600, \
- '"pin2" "2" 0x0100]'
+ '"pin2" "2" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(WSpacing/2 + PinWidth/2), \
mm2mils100(HSpacing/2 + PinWidth/2), \
mm2mils100(WSpacing/2 + PinWidth/2), \
mm2mils100(PinWidth), \
1400, \
mm2mils100(PinWidth)+600, \
- '"pin1" "1" 0x0100]'
+ '"pin1" "1" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(-(WSpacing/2 + PinWidth/2)), \
mm2mils100(HSpacing/2 + PinWidth/2), \
mm2mils100(-(WSpacing/2 + PinWidth/2)), \
mm2mils100(PinWidth), \
1400, \
mm2mils100(PinWidth)+600, \
- '"pin4" "4" 0x0100]'
+ '"pin4" "4" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(-(WSpacing/2 + PinWidth/2)), \
mm2mils100(-(HSpacing/2 + PinWidth/2)), \
mm2mils100(-(WSpacing/2 + PinWidth/2)), \
mm2mils100(PinWidth), \
1400, \
mm2mils100(PinWidth)+600, \
- '"pin3" "3" 0x0100]'
+ '"pin3" "3" 0x0100]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100(PinWidth*1.4), \
mm2mils100(PinHeight*1.4), \
- '500 500 0 360 1000 ]'
+ '500 500 0 360 1000 ]')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2010 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for NHD-C0216CU-FN-GBW-3V 2x16 text LCD
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "NHD-C0216" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "NHD-C0216" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
# pins
# pin( x y thickness clearance mask drillhole name number flags)
else:
Flags = '0x0001'
- print ' Pin[',\
+ print(' Pin[',\
mm2mils100((pin - 9)*PinSpacing), \
mm2mils100(-BodyHeight/2), \
mm2mils100(PinDiam * 1.75), \
1200, \
mm2mils100(PinDiam * 1.75) + 600, \
mm2mils100(PinDiam), \
- '"pin%i"' % (pin), '"%i"' % (pin), Flags, ']'
+ '"pin%i"' % (pin), '"%i"' % (pin), Flags, ']')
-print ' ElementLine[',\
+print(' ElementLine[',\
-mm2mils100(BodyWidth/2), \
-mm2mils100(BodyHeight/2), \
mm2mils100(BodyWidth/2), \
-mm2mils100(BodyHeight/2), \
500, \
- ']'
-print ' ElementLine[',\
+ ']')
+print(' ElementLine[',\
-mm2mils100(BodyWidth/2), \
-mm2mils100(BodyHeight/2), \
-mm2mils100(BodyWidth/2), \
mm2mils100(BodyHeight/2), \
500, \
- ']'
-print ' ElementLine[',\
+ ']')
+print(' ElementLine[',\
-mm2mils100(BodyWidth/2), \
mm2mils100(BodyHeight/2), \
mm2mils100(BodyWidth/2), \
mm2mils100(BodyHeight/2), \
500, \
- ']'
-print ' ElementLine[',\
+ ']')
+print(' ElementLine[',\
mm2mils100(BodyWidth/2), \
mm2mils100(BodyHeight/2), \
mm2mils100(BodyWidth/2), \
-mm2mils100(BodyHeight/2), \
500, \
- ']'
+ ']')
# mark viewable area
# ViewWidth = 45.70
# ViewHeight = 14.30
# ViewHCtr = BodyHeight - (18.30 / 2)
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-ViewWidth/2), \
mm2mils100(ViewHCtr + ViewHeight/2), \
mm2mils100(ViewWidth/2), \
mm2mils100(ViewHCtr + ViewHeight/2), \
500, \
- ']'
+ ']')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-ViewWidth/2), \
mm2mils100(ViewHCtr - ViewHeight/2), \
mm2mils100(ViewWidth/2), \
mm2mils100(ViewHCtr - ViewHeight/2), \
500, \
- ']'
+ ']')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-ViewWidth/2), \
mm2mils100(ViewHCtr - ViewHeight/2), \
mm2mils100(-ViewWidth/2), \
mm2mils100(ViewHCtr + ViewHeight/2), \
500, \
- ']'
+ ']')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(ViewWidth/2), \
mm2mils100(ViewHCtr - ViewHeight/2), \
mm2mils100(ViewWidth/2), \
mm2mils100(ViewHCtr + ViewHeight/2), \
500, \
- ']'
+ ']')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(ViewWidth/2), \
mm2mils100(ViewHCtr - ViewHeight/2), \
mm2mils100(-ViewWidth/2), \
mm2mils100(ViewHCtr + ViewHeight/2), \
500, \
- ']'
+ ']')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-ViewWidth/2), \
mm2mils100(ViewHCtr - ViewHeight/2), \
mm2mils100(ViewWidth/2), \
mm2mils100(ViewHCtr + ViewHeight/2), \
500, \
- ']'
+ ']')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2007-2022 by Bdale Garbee <bdale@gag.com>. GPLv3
#
# Program to emit PCB footprint for C&K PCM12SMTR SPDT switch
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
Clearance = 800 # 8 mils in fp native units
-print 'Element[0x0 "PCM12SMTR" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print ' Pad[',\
+print('Element[0x0 "PCM12SMTR" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print(' Pad[',\
mm2mils100(WSpacing/2 + PadHeight/2), \
mm2mils100(-HSpacing/2 - PadHeight/2), \
mm2mils100(WSpacing/2 + PadWidth - PadHeight/2), \
mm2mils100(PadHeight), \
Clearance, \
mm2mils100(PadWidth)+600, \
- '"mnt" "frame" 0x0100]'
+ '"mnt" "frame" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(WSpacing/2 + PadHeight/2), \
mm2mils100(HSpacing/2 + PadHeight/2), \
mm2mils100(WSpacing/2 + PadWidth - PadHeight/2), \
mm2mils100(PadHeight), \
Clearance, \
mm2mils100(PadWidth)+600, \
- '"mnt" "frame" 0x0100]'
+ '"mnt" "frame" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(-WSpacing/2 - PadHeight/2), \
mm2mils100(HSpacing/2 + PadHeight/2), \
mm2mils100(-WSpacing/2 - PadWidth + PadHeight/2), \
mm2mils100(PadHeight), \
Clearance, \
mm2mils100(PadWidth)+600, \
- '"mnt" "frame" 0x0100]'
+ '"mnt" "frame" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(-WSpacing/2 - PadHeight/2), \
mm2mils100(-HSpacing/2 - PadHeight/2), \
mm2mils100(-WSpacing/2 - PadWidth + PadHeight/2), \
mm2mils100(PadHeight), \
Clearance, \
mm2mils100(PadWidth)+600, \
- '"mnt" "frame" 0x0100]'
+ '"mnt" "frame" 0x0100]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(-HoleSpacing/2), \
mm2mils100(0), \
mm2mils100(HoleSize+0.3556), \
Clearance, \
mm2mils100(HoleSize+0.66), \
mm2mils100(HoleSize), \
- '"mnt" "holes" 0x0000]'
+ '"mnt" "holes" 0x0000]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(HoleSpacing/2), \
mm2mils100(0), \
mm2mils100(HoleSize+0.3556), \
Clearance, \
mm2mils100(HoleSize+0.66), \
mm2mils100(HoleSize), \
- '"mnt" "holes" 0x0000]'
+ '"mnt" "holes" 0x0000]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(Pin2Offset - Pin12), \
mm2mils100(- PinBase - (PinWidth/2)), \
mm2mils100(Pin2Offset - Pin12), \
mm2mils100(PinWidth), \
Clearance, \
mm2mils100(PinWidth + .1524), \
- '"pin1" "1" 0x0100]'
+ '"pin1" "1" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(Pin2Offset), \
mm2mils100(- PinBase - (PinWidth/2)), \
mm2mils100(Pin2Offset), \
mm2mils100(PinWidth), \
Clearance, \
mm2mils100(PinWidth + .1524), \
- '"pin2" "2" 0x0100]'
+ '"pin2" "2" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(Pin2Offset + Pin23), \
mm2mils100(- PinBase - (PinWidth/2)), \
mm2mils100(Pin2Offset + Pin23), \
mm2mils100(PinWidth), \
Clearance, \
mm2mils100(PinWidth + .1524), \
- '"pin3" "3" 0x0100]'
+ '"pin3" "3" 0x0100]')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2022 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for Taiwan Semiconductor PDFN33 dual FETs
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "1212-8" "" "" 0 0 -10161 -12011 0 100 0x0]'
-print "("
+print('Element[0x0 "1212-8" "" "" 0 0 -10161 -12011 0 100 0x0]')
+print("(")
for pin in range (0,4):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pin-1.5) * PinSpacing), \
mm2mils100(-(RowOuter/2 - PinWidth/2)), \
mm2mils100((pin-1.5) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(Clearance), \
mm2mils100(PinWidth)+600, \
- '"pin%i"' % (8 - pin), '"%i"' % (8 - pin), '0x0100]'
+ '"pin%i"' % (8 - pin), '"%i"' % (8 - pin), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pin-1.5) * PinSpacing), \
mm2mils100(RowOuter/2 - PinWidth/2), \
mm2mils100((pin-1.5) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(Clearance), \
mm2mils100(PinWidth)+600, \
- '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]'
+ '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(-(DrainSpacing/2 + DrainWidth/2)), \
mm2mils100(RowOuter/2 - PinHeight - DrainGap - DrainWidth/2), \
mm2mils100(-(DrainSpacing/2 + DrainWidth/2)), \
mm2mils100(DrainWidth), \
mm2mils100(Clearance), \
mm2mils100(DrainWidth)+600, \
- '"pin8" "8" 0x0100]'
+ '"pin8" "8" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(DrainSpacing/2 + DrainWidth/2), \
mm2mils100(RowOuter/2 - PinHeight - DrainGap - DrainWidth/2), \
mm2mils100(DrainSpacing/2 + DrainWidth/2), \
mm2mils100(DrainWidth), \
mm2mils100(Clearance), \
mm2mils100(DrainWidth)+600, \
- '"pin5" "5" 0x0100]'
+ '"pin5" "5" 0x0100]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodyHeight/2), \
mm2mils100(-BodyWidth/2), \
mm2mils100(-BodyHeight/2), \
mm2mils100( BodyWidth/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodyHeight/2), \
mm2mils100( BodyWidth/2), \
mm2mils100( BodyHeight/2), \
mm2mils100( BodyWidth/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100( BodyHeight/2), \
mm2mils100( BodyWidth/2), \
mm2mils100( BodyHeight/2), \
mm2mils100(-BodyWidth/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100( BodyHeight/2), \
mm2mils100(-BodyWidth/2), \
mm2mils100(-BodyHeight/2), \
mm2mils100(-BodyWidth/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100(-2 * PinSpacing), \
mm2mils100(0.60 * RowOuter), \
- '500 500 0 360 1000 ]'
+ '500 500 0 360 1000 ]')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2014 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for PowerPAD 32-pin package used by TPA3118
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "PowerPAD32" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "PowerPAD32" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
# vias in the ground pad under the chip
for viarow in range (-2,2):
for viacol in range (-4,4):
- print ' Pin[',\
+ print(' Pin[',\
mm2mils100(viacol * ViaGrid + ViaGrid/2), \
mm2mils100(viarow * ViaGrid + ViaGrid/2), \
2700, \
2500, \
0, \
1300, \
- '"pin33" "33" 0x0002]'
+ '"pin33" "33" 0x0002]')
# break pad under chip into a grid to control the resist and paste masks
for viarow in range (-3, 4):
for viacol in range (-8, 9):
if (viacol in (-3, -2, -1, 0, 1, 2, 3)):
# copper sub-square without resist, with paste
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(viacol * ViaGrid/2), \
mm2mils100(viarow * ViaGrid/2), \
mm2mils100(viacol * ViaGrid/2), \
mm2mils100(ViaGrid/2), \
0, \
mm2mils100(ViaGrid/2), \
- '"pin33" "33" "square"]'
+ '"pin33" "33" "square"]')
else:
# copper sub-square with resist over vias
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(viacol * ViaGrid/2), \
mm2mils100(viarow * ViaGrid/2), \
mm2mils100(viacol * ViaGrid/2), \
mm2mils100(ViaGrid/2), \
0, \
0, \
- '"pin33" "33" "square,nopaste"]'
+ '"pin33" "33" "square,nopaste"]')
# pins
for pin in range (1,17):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pin - 8.5) * PinSpacing), \
mm2mils100(PinRow/2 - PinHeight/2 + PinWidth/2), \
mm2mils100((pin - 8.5) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (pin), '"%i"' % (pin), '"square"]'
+ '"pin%i"' % (pin), '"%i"' % (pin), '"square"]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pin - 8.5) * PinSpacing), \
mm2mils100(-PinRow/2 + PinHeight/2 - PinWidth/2), \
mm2mils100((pin - 8.5) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (33-pin), '"%i"' % (33-pin), '"square"]'
+ '"pin%i"' % (33-pin), '"%i"' % (33-pin), '"square"]')
-# print ' Pad[',\
-# mm2mils100(-2.5 + pin * PinSpacing), \
-# mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
-# mm2mils100(-2.5 + pin * PinSpacing), \
-# mm2mils100(+Overall/2 - PinWidth/2), \
-# mm2mils100(PinWidth), \
-# mm2mils100(PinSpacing - PinWidth), \
-# mm2mils100(PinResist), \
-# '"pin%i"' % pin, '"%i"' % pin, '0x0000]'
-#
-# print ' Pad[',\
-# mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
-# mm2mils100(-2.5 + pin * PinSpacing), \
-# mm2mils100(Overall/2 - PinWidth/2), \
-# mm2mils100(-2.5 + pin * PinSpacing), \
-# mm2mils100(PinWidth), \
-# mm2mils100(PinSpacing - PinWidth), \
-# mm2mils100(PinResist), \
-# '"pin%i"' % (19-pin), '"%i"' % (19-pin), '0x0000]'
-#
-# print ' Pad[',\
-# mm2mils100(-Overall/2 + PinWidth/2), \
-# mm2mils100(-2.5 + pin * PinSpacing), \
-# mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
-# mm2mils100(-2.5 + pin * PinSpacing), \
-# mm2mils100(PinWidth), \
-# mm2mils100(PinSpacing - PinWidth), \
-# mm2mils100(PinResist), \
-# '"pin%i"' % (27+pin), '"%i"' % (27+pin), '0x0000]'
-
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100(-7.5 * PinSpacing), \
mm2mils100(PinRow/2 + PinHeight * 0.75), \
- '500 500 0 360 1000 ]'
-print ")"
+ '500 500 0 360 1000 ]')
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2021 by Bdale Garbee <bdale@gag.com>. GPLv3
#
# Emit PCB footprint for RGZ0048A package used by TI CC1310 with RGZT suffix
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 3'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "QFN48" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "QFN48" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
# pad under the chip, must be grounded
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(GndSquare), \
0, \
mm2mils100(GndSquareMask), \
- '"pin49" "49" "square,nopaste"]'
+ '"pin49" "49" "square,nopaste"]')
# vias in the ground pad under the chip
for viarow in range (-1,2):
# outer rows
- print ' Pin[',\
+ print(' Pin[',\
mm2mils100(-CoreViaSpacing - SideViaSpacing), \
mm2mils100(viarow * CoreViaSpacing), \
mm2mils100(ViaPadSize), \
mm2mils100(ViaPadSize), \
0, \
mm2mils100(ViaDrill), \
- '"pin49" "49" 0x0002]'
+ '"pin49" "49" 0x0002]')
- print ' Pin[',\
+ print(' Pin[',\
mm2mils100(CoreViaSpacing + SideViaSpacing), \
mm2mils100(viarow * CoreViaSpacing), \
mm2mils100(ViaPadSize), \
mm2mils100(ViaPadSize), \
0, \
mm2mils100(ViaDrill), \
- '"pin49" "49" 0x0002]'
+ '"pin49" "49" 0x0002]')
- print ' Pin[',\
+ print(' Pin[',\
mm2mils100(viarow * CoreViaSpacing), \
mm2mils100(-CoreViaSpacing - SideViaSpacing), \
mm2mils100(ViaPadSize), \
mm2mils100(ViaPadSize), \
0, \
mm2mils100(ViaDrill), \
- '"pin49" "49" 0x0002]'
+ '"pin49" "49" 0x0002]')
- print ' Pin[',\
+ print(' Pin[',\
mm2mils100(viarow * CoreViaSpacing), \
mm2mils100(CoreViaSpacing + SideViaSpacing), \
mm2mils100(ViaPadSize), \
mm2mils100(ViaPadSize), \
0, \
mm2mils100(ViaDrill), \
- '"pin49" "49" 0x0002]'
+ '"pin49" "49" 0x0002]')
# center array
for viacol in range (-1,2):
- print ' Pin[',\
+ print(' Pin[',\
mm2mils100(viacol * CoreViaSpacing), \
mm2mils100(viarow * CoreViaSpacing), \
mm2mils100(ViaPadSize), \
mm2mils100(ViaPadSize), \
0, \
mm2mils100(ViaDrill), \
- '"pin49" "49" 0x0002]'
+ '"pin49" "49" 0x0002]')
# solder paste squares in a grid on central ground pad
for pasterow in range (-2, 2):
for pastecol in range (-2, 2):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(pastecol * PasteGrid + PasteGrid/2), \
mm2mils100(pasterow * PasteGrid + PasteGrid/2), \
mm2mils100(pastecol * PasteGrid + PasteGrid/2), \
mm2mils100((PasteSquare)), \
0, \
mm2mils100((PasteSquare)), \
- '"pin49" "49" "square"]'
+ '"pin49" "49" "square"]')
# pins
for pin in range (1,13):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-3.25 + pin * PinSpacing), \
mm2mils100(-Overall/2 - PinHeight/2 + PinWidth/2), \
mm2mils100(-3.25 + pin * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (37-pin), '"%i"' % (37-pin), '"square"]'
+ '"pin%i"' % (37-pin), '"%i"' % (37-pin), '"square"]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-3.25 + pin * PinSpacing), \
mm2mils100(+Overall/2 - PinHeight/2 + PinWidth/2), \
mm2mils100(-3.25 + pin * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % pin, '"%i"' % pin, '"square"]'
+ '"pin%i"' % pin, '"%i"' % pin, '"square"]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(Overall/2 - PinHeight/2 + PinWidth/2), \
mm2mils100(-3.25 + pin * PinSpacing), \
mm2mils100(Overall/2 + PinHeight/2 - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (25-pin), '"%i"' % (25-pin), '"square"]'
+ '"pin%i"' % (25-pin), '"%i"' % (25-pin), '"square"]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-Overall/2 - PinHeight/2 + PinWidth/2), \
mm2mils100(-3.25 + pin * PinSpacing), \
mm2mils100(-Overall/2 + PinHeight/2 - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (36+pin), '"%i"' % (36+pin), '"square"]'
+ '"pin%i"' % (36+pin), '"%i"' % (36+pin), '"square"]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100(-3.6), \
mm2mils100(3.6), \
- '500 500 0 360 1000 ]'
-print ")"
+ '500 500 0 360 1000 ]')
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2021 by Bdale Garbee <bdale@gag.com>. GPLv3
#
# Emit PCB footprint for RHB0032E package used by TI CC1310 with RHMR suffix
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 3'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "RHB0032E" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "RHB0032E" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
# pad under the chip, must be grounded
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(GndSquare), \
0, \
mm2mils100(GndSquareMask), \
- '"pin33" "33" "square,nopaste"]'
+ '"pin33" "33" "square,nopaste"]')
# vias in the ground pad under the chip
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(-CoreViaSpacing), \
mm2mils100(0), \
mm2mils100(ViaPadSize), \
mm2mils100(ViaPadSize), \
0, \
mm2mils100(ViaDrill), \
- '"pin33" "33" 0x0002]'
+ '"pin33" "33" 0x0002]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(ViaPadSize), \
mm2mils100(ViaPadSize), \
0, \
mm2mils100(ViaDrill), \
- '"pin33" "33" 0x0002]'
+ '"pin33" "33" 0x0002]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(CoreViaSpacing), \
mm2mils100(0), \
mm2mils100(ViaPadSize), \
mm2mils100(ViaPadSize), \
0, \
mm2mils100(ViaDrill), \
- '"pin33" "33" 0x0002]'
+ '"pin33" "33" 0x0002]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(0), \
mm2mils100(-CoreViaSpacing), \
mm2mils100(ViaPadSize), \
mm2mils100(ViaPadSize), \
0, \
mm2mils100(ViaDrill), \
- '"pin33" "33" 0x0002]'
+ '"pin33" "33" 0x0002]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(0), \
mm2mils100(CoreViaSpacing), \
mm2mils100(ViaPadSize), \
mm2mils100(ViaPadSize), \
0, \
mm2mils100(ViaDrill), \
- '"pin33" "33" 0x0002]'
+ '"pin33" "33" 0x0002]')
# solder paste squares in a grid on central ground pad
for pasterow in range (-1, 1):
for pastecol in range (-1, 1):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(pastecol * PasteGrid + PasteGrid/2), \
mm2mils100(pasterow * PasteGrid + PasteGrid/2), \
mm2mils100(pastecol * PasteGrid + PasteGrid/2), \
mm2mils100((PasteSquare)), \
0, \
mm2mils100((PasteSquare)), \
- '"pin33" "33" "square"]'
+ '"pin33" "33" "square"]')
# pins
for pin in range (1,9):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pin - 4.5) * PinSpacing), \
mm2mils100(-Overall/2 - PinHeight/2 + PinWidth/2), \
mm2mils100((pin - 4.5) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (25-(pin)), '"%i"' % (25-(pin)), '"square"]'
+ '"pin%i"' % (25-(pin)), '"%i"' % (25-(pin)), '"square"]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pin - 4.5) * PinSpacing), \
mm2mils100(Overall/2 - PinHeight/2 + PinWidth/2), \
mm2mils100((pin - 4.5) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % pin, '"%i"' % pin, '"square"]'
+ '"pin%i"' % pin, '"%i"' % pin, '"square"]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(Overall/2 - PinHeight/2 + PinWidth/2), \
mm2mils100((pin - 4.5) * PinSpacing), \
mm2mils100(Overall/2 + PinHeight/2 - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (17-pin), '"%i"' % (17-pin), '"square"]'
+ '"pin%i"' % (17-pin), '"%i"' % (17-pin), '"square"]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-Overall/2 - PinHeight/2 + PinWidth/2), \
mm2mils100((pin - 4.5) * PinSpacing), \
mm2mils100(-Overall/2 + PinHeight/2 - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (24+pin), '"%i"' % (24+pin), '"square"]'
+ '"pin%i"' % (24+pin), '"%i"' % (24+pin), '"square"]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100(-2.5), \
mm2mils100(2.5), \
- '500 500 0 360 1000 ]'
-print ")"
+ '500 500 0 360 1000 ]')
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2016 by Bdale Garbee <bdale@gag.com>. GPLv3+
#
# Program to emit PCB footprint for Microchip RN4678 Bluetooth LE module
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 3+'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "BM70BLES1FC2" "" "" 0 0 -10161 -12011 0 100 0x0]'
-print "("
-print ' Pad[',\
+print('Element[0x0 "BM70BLES1FC2" "" "" 0 0 -10161 -12011 0 100 0x0]')
+print("(")
+print(' Pad[',\
mm2mils100(BodyHeight - 21.2), \
mm2mils100(BodyWidth + PinOffset - PinWidth/2), \
mm2mils100(BodyHeight - 21.2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinWidth)+600, \
- '"pin1" "1" 0x0100]'
+ '"pin1" "1" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(BodyHeight - 21.2), \
mm2mils100(-PinOffset + PinWidth/2), \
mm2mils100(BodyHeight - 21.2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinWidth)+600, \
- '"pin33" "33" 0x0100]'
+ '"pin33" "33" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(BodyHeight - 20.1), \
mm2mils100(BodyWidth + PinOffset - PinWidth/2), \
mm2mils100(BodyHeight - 20.1), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinWidth)+600, \
- '"pin2" "2" 0x0100]'
+ '"pin2" "2" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(BodyHeight - 20.1), \
mm2mils100(-PinOffset + PinWidth/2), \
mm2mils100(BodyHeight - 20.1), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinWidth)+600, \
- '"pin32" "32" 0x0100]'
+ '"pin32" "32" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(BodyHeight - 13.9), \
mm2mils100(BodyWidth + PinOffset - PinWidth/2), \
mm2mils100(BodyHeight - 13.9), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinWidth)+600, \
- '"pin3" "3" 0x0100]'
+ '"pin3" "3" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(BodyHeight - 12.8), \
mm2mils100(BodyWidth + PinOffset - PinWidth/2), \
mm2mils100(BodyHeight - 12.8), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinWidth)+600, \
- '"pin4" "4" 0x0100]'
+ '"pin4" "4" 0x0100]')
for pin in range (5,15):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(BodyHeight - 11.7 + ((pin - 5) * PinSpacing)), \
mm2mils100(BodyWidth + PinOffset - PinWidth/2), \
mm2mils100(BodyHeight - 11.7 + ((pin - 5) * PinSpacing)), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinWidth)+600, \
- '"pin%i"' % pin, '"%i"' % pin, '0x0100]'
+ '"pin%i"' % pin, '"%i"' % pin, '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(BodyHeight - 11.7 + ((pin - 5) * PinSpacing)), \
mm2mils100(- PinOffset + PinWidth/2), \
mm2mils100(BodyHeight - 11.7 + ((pin - 5) * PinSpacing)), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinWidth)+600, \
- '"pin%i"' % (36 - pin), '"%i"' % (36 - pin), '0x0100]'
+ '"pin%i"' % (36 - pin), '"%i"' % (36 - pin), '0x0100]')
for pin in range (15,22):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(BodyHeight + PinOffset - PinWidth/2), \
mm2mils100(BodyWidth - 2.7 + (-(pin - 15) * PinSpacing)), \
mm2mils100(BodyHeight - PinHeight + PinOffset + PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinWidth)+600, \
- '"pin%i"' % pin, '"%i"' % pin, '0x0100]'
+ '"pin%i"' % pin, '"%i"' % pin, '0x0100]')
# body outline
-print ' ElementLine[',\
+print(' ElementLine[',\
0, \
0, \
0, \
mm2mils100(BodyWidth), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
0, \
mm2mils100(BodyWidth), \
mm2mils100(BodyHeight), \
mm2mils100(BodyWidth), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(BodyHeight), \
mm2mils100(BodyWidth), \
mm2mils100(BodyHeight), \
0, \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(BodyHeight), \
0, \
0, \
0, \
- '1000 ]'
+ '1000 ]')
# hash marks where gnd plane should end
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(BodyHeight-GndEdgeLine), \
mm2mils100(BodyWidth-1), \
mm2mils100(BodyHeight-GndEdgeLine), \
mm2mils100(BodyWidth-3), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(BodyHeight-GndEdgeLine), \
mm2mils100(1), \
mm2mils100(BodyHeight-GndEdgeLine), \
mm2mils100(3), \
- '1000 ]'
+ '1000 ]')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2021 by Bdale Garbee <bdale@gag.com>. GPLv3
#
# Emit PCB footprint for RSM0032B package used by TI CC1310 with RSMR suffix
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 3'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "RSM0032B" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "RSM0032B" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
# pad under the chip, must be grounded
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(GndSquare), \
0, \
mm2mils100(GndSquareMask), \
- '"pin33" "33" "square,nopaste"]'
+ '"pin33" "33" "square,nopaste"]')
# vias in the ground pad under the chip
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(-CoreViaSpacing), \
mm2mils100(0), \
mm2mils100(ViaPadSize), \
mm2mils100(ViaPadSize), \
0, \
mm2mils100(ViaDrill), \
- '"pin33" "33" 0x0002]'
+ '"pin33" "33" 0x0002]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(ViaPadSize), \
mm2mils100(ViaPadSize), \
0, \
mm2mils100(ViaDrill), \
- '"pin33" "33" 0x0002]'
+ '"pin33" "33" 0x0002]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(CoreViaSpacing), \
mm2mils100(0), \
mm2mils100(ViaPadSize), \
mm2mils100(ViaPadSize), \
0, \
mm2mils100(ViaDrill), \
- '"pin33" "33" 0x0002]'
+ '"pin33" "33" 0x0002]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(0), \
mm2mils100(-CoreViaSpacing), \
mm2mils100(ViaPadSize), \
mm2mils100(ViaPadSize), \
0, \
mm2mils100(ViaDrill), \
- '"pin33" "33" 0x0002]'
+ '"pin33" "33" 0x0002]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(0), \
mm2mils100(CoreViaSpacing), \
mm2mils100(ViaPadSize), \
mm2mils100(ViaPadSize), \
0, \
mm2mils100(ViaDrill), \
- '"pin33" "33" 0x0002]'
+ '"pin33" "33" 0x0002]')
# solder paste squares in a grid on central ground pad
for pasterow in range (-1, 1):
for pastecol in range (-1, 1):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(pastecol * PasteGrid + PasteGrid/2), \
mm2mils100(pasterow * PasteGrid + PasteGrid/2), \
mm2mils100(pastecol * PasteGrid + PasteGrid/2), \
mm2mils100((PasteSquare)), \
0, \
mm2mils100((PasteSquare)), \
- '"pin33" "33" "square"]'
+ '"pin33" "33" "square"]')
# pins
for pin in range (1,9):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pin - 4.5) * PinSpacing), \
mm2mils100(-Overall/2 - PinHeight/2 + PinWidth/2), \
mm2mils100((pin - 4.5) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (25-(pin)), '"%i"' % (25-(pin)), '"square"]'
+ '"pin%i"' % (25-(pin)), '"%i"' % (25-(pin)), '"square"]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pin - 4.5) * PinSpacing), \
mm2mils100(Overall/2 - PinHeight/2 + PinWidth/2), \
mm2mils100((pin - 4.5) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % pin, '"%i"' % pin, '"square"]'
+ '"pin%i"' % pin, '"%i"' % pin, '"square"]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(Overall/2 - PinHeight/2 + PinWidth/2), \
mm2mils100((pin - 4.5) * PinSpacing), \
mm2mils100(Overall/2 + PinHeight/2 - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (17-pin), '"%i"' % (17-pin), '"square"]'
+ '"pin%i"' % (17-pin), '"%i"' % (17-pin), '"square"]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-Overall/2 - PinHeight/2 + PinWidth/2), \
mm2mils100((pin - 4.5) * PinSpacing), \
mm2mils100(-Overall/2 + PinHeight/2 - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (24+pin), '"%i"' % (24+pin), '"square"]'
+ '"pin%i"' % (24+pin), '"%i"' % (24+pin), '"square"]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100(-2.25), \
mm2mils100(2.25), \
- '500 500 0 360 1000 ]'
-print ")"
+ '500 500 0 360 1000 ]')
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2015 by Bdale Garbee <bdale@gag.com>. GPLv3
#
# Program to emit PCB footprint for Amphenol SD connector
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 3'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "microSD" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "microSD" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
# mounting pads
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(MntX1 - MntWidth/2 + MntHeight/2), \
mm2mils100(MntY1), \
mm2mils100(MntX1 + MntWidth/2 - MntHeight/2), \
mm2mils100(MntHeight), \
mm2mils100(0), \
mm2mils100(MntHeight + MaskAdd), \
- '"12" "12" 0x0100]'
+ '"12" "12" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(MntX2 - MntWidth/2 + MntHeight/2), \
mm2mils100(MntY2), \
mm2mils100(MntX2 + MntWidth/2 - MntHeight/2), \
mm2mils100(MntHeight), \
mm2mils100(0), \
mm2mils100(MntHeight + MaskAdd), \
- '"12" "12" 0x0100]'
+ '"12" "12" 0x0100]')
# signal pads
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
mm2mils100(Pad1Y), \
mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
mm2mils100(PadHeight), \
mm2mils100(0), \
mm2mils100(PadHeight + MaskAdd), \
- '"1" "1" 0x0100]'
+ '"1" "1" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
mm2mils100(Pad2Y), \
mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
mm2mils100(PadHeight), \
mm2mils100(0), \
mm2mils100(PadHeight + MaskAdd), \
- '"2" "2" 0x0100]'
+ '"2" "2" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
mm2mils100(Pad3Y), \
mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
mm2mils100(PadHeight), \
mm2mils100(0), \
mm2mils100(PadHeight + MaskAdd), \
- '"3" "3" 0x0100]'
+ '"3" "3" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
mm2mils100(Pad4Y), \
mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
mm2mils100(PadHeight), \
mm2mils100(0), \
mm2mils100(PadHeight + MaskAdd), \
- '"4" "4" 0x0100]'
+ '"4" "4" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
mm2mils100(Pad5Y), \
mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
mm2mils100(PadHeight), \
mm2mils100(0), \
mm2mils100(PadHeight + MaskAdd), \
- '"5" "5" 0x0100]'
+ '"5" "5" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
mm2mils100(Pad6Y), \
mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
mm2mils100(PadHeight), \
mm2mils100(0), \
mm2mils100(PadHeight + MaskAdd), \
- '"6" "6" 0x0100]'
+ '"6" "6" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
mm2mils100(Pad7Y), \
mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
mm2mils100(PadHeight), \
mm2mils100(0), \
mm2mils100(PadHeight + MaskAdd), \
- '"7" "7" 0x0100]'
+ '"7" "7" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
mm2mils100(Pad8Y), \
mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
mm2mils100(PadHeight), \
mm2mils100(0), \
mm2mils100(PadHeight + MaskAdd), \
- '"8" "8" 0x0100]'
+ '"8" "8" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
mm2mils100(Pad9Y), \
mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
mm2mils100(PadHeight), \
mm2mils100(0), \
mm2mils100(PadHeight + MaskAdd), \
- '"9" "9" 0x0100]'
+ '"9" "9" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
mm2mils100(PadCDY), \
mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
mm2mils100(PadHeight), \
mm2mils100(0), \
mm2mils100(PadHeight + MaskAdd), \
- '"10" "10" 0x0100]'
+ '"10" "10" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(PadX - PadWidth/2 + PadHeight/2), \
mm2mils100(PadWPY), \
mm2mils100(PadX + PadWidth/2 - PadHeight/2), \
mm2mils100(PadHeight), \
mm2mils100(0), \
mm2mils100(PadHeight + MaskAdd), \
- '"11" "11" 0x0100]'
+ '"11" "11" 0x0100]')
# mounting holes
-print ' Pin[',\
+print(' Pin[',\
0, \
mm2mils100(Hole1Y), \
mm2mils100(HoleDiam+0.3556), \
mm2mils100(0.31), \
mm2mils100(HoleDiam+0.66), \
mm2mils100(HoleDiam), \
- '"12" "12" 0x0000]'
+ '"12" "12" 0x0000]')
-print ' Pin[',\
+print(' Pin[',\
0, \
mm2mils100(Hole2Y), \
mm2mils100(HoleDiam+0.3556), \
mm2mils100(0.31), \
mm2mils100(HoleDiam+0.66), \
mm2mils100(HoleDiam), \
- '"12" "12" 0x0000]'
+ '"12" "12" 0x0000]')
BoxX = 29.1 + 1.16
BoxXLeft = -23.5 - 1.16
BoxY = 28.9
# silkscreen box
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(BoxXLeft), \
mm2mils100(-BoxY/2), \
mm2mils100(BoxXLeft), \
mm2mils100(BoxY/2), \
- LineWidth, ']'
+ LineWidth, ']')
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(BoxXLeft + BoxX), \
mm2mils100(-BoxY/2), \
mm2mils100(BoxXLeft + BoxX), \
mm2mils100(BoxY/2), \
- LineWidth, ']'
+ LineWidth, ']')
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(BoxXLeft), \
mm2mils100(-BoxY/2), \
mm2mils100(BoxXLeft + BoxX), \
mm2mils100(-BoxY/2), \
- LineWidth, ']'
+ LineWidth, ']')
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(BoxXLeft), \
mm2mils100(BoxY/2), \
mm2mils100(BoxXLeft + BoxX), \
mm2mils100(BoxY/2), \
- LineWidth, ']'
+ LineWidth, ']')
-print ")"
+print(")")
print('# author: Bdale Garbee')
print('# email: bdale@gag.com')
-print('# dist-license: GPL 2')
+print('# dist-license: GPL 3')
print('# use-license: unlimited')
print('Element[0x0 "SJ-352X-SMT" "" "" 0 0 0 0 0 100 0x0]')
print ('# author: Bdale Garbee')
print ('# email: bdale@gag.com')
-print ('# dist-license: GPL 2')
+print ('# dist-license: GPL 3')
print ('# use-license: unlimited')
print ('Element[0x0 "SOIJ8" "" "" 0 0 -10161 -12011 0 100 0x0]')
print ('# author: Bdale Garbee')
print ('# email: bdale@gag.com')
-print ('# dist-license: GPL 2')
+print ('# dist-license: GPL 3')
print ('# use-license: unlimited')
print ('Element[0x0 "SOIJ8" "" "" 0 0 -10161 -12011 0 100 0x0]')
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2007 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for TDK beeper
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "TDK_PS12" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print ' Pin[',\
+print('Element[0x0 "TDK_PS12" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print(' Pin[',\
mm2mils100(-PinSpacing/2), \
0, \
mm2mils100(2), \
mm2mils100(1), \
mm2mils100(2.2), \
mm2mils100(0.70), \
- '"pin1" "1" 0x0101]'
+ '"pin1" "1" 0x0101]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(PinSpacing/2), \
0, \
mm2mils100(2), \
mm2mils100(1), \
mm2mils100(2.2), \
mm2mils100(0.70), \
- '"pin2" "2" 0x0001]'
+ '"pin2" "2" 0x0001]')
-print ' ElementArc[',\
+print(' ElementArc[',\
0, \
0, \
mm2mils100(BodyDiam/2), \
0, \
360, \
1000, \
- ']'
+ ']')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2011 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for QFN32 package used by TI CC1120
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "QFN36" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "QFN36" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
# pad under the chip, must be grounded
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(GndSquare), \
0, \
0, \
- '"pin33" "33" "square,nopaste"]'
+ '"pin33" "33" "square,nopaste"]')
# vias in the ground pad under the chip
for viarow in range (-1,2):
for viacol in range (-1,2):
- print ' Pin[',\
+ print(' Pin[',\
mm2mils100(2 * viacol * CoreSquare / 5), \
mm2mils100(2 * viarow * CoreSquare / 5), \
2900, \
2500, \
0, \
1500, \
- '"pin33" "33" 0x0002]'
+ '"pin33" "33" 0x0002]')
# break pad under chip into a grid to control the resist and paste masks
for viarow in range (-2, 3):
for viacol in range (-2, 3):
if (viarow in (-2, 0, 2)) and (viacol in (-2, 0, 2)):
# copper sub-square with resist over vias
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(viacol * CoreSquare / 5), \
mm2mils100(viarow * CoreSquare / 5), \
mm2mils100(viacol * CoreSquare / 5), \
mm2mils100((CoreSquare)/5), \
0, \
0, \
- '"pin33" "33" "square,nopaste"]'
+ '"pin33" "33" "square,nopaste"]')
else:
# copper sub-square without resist
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(viacol * CoreSquare / 5), \
mm2mils100(viarow * CoreSquare / 5), \
mm2mils100(viacol * CoreSquare / 5), \
mm2mils100((CoreSquare)/5), \
0, \
mm2mils100((CoreSquare)/5), \
- '"pin33" "33" "square,nopaste"]'
+ '"pin33" "33" "square,nopaste"]')
# copper spot to control paste mask generation
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(viacol * CoreSquare / 5), \
mm2mils100(viarow * CoreSquare / 5), \
mm2mils100(viacol * CoreSquare / 5), \
1500, \
0, \
mm2mils100((CoreSquare)/5), \
- '"pin33" "33" "square"]'
+ '"pin33" "33" "square"]')
# pins
for pin in range (1,9):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((-4.5 + pin) * PinSpacing), \
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100((-4.5 + pin) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (25-pin), '"%i"' % (25-pin), '"square"]'
+ '"pin%i"' % (25-pin), '"%i"' % (25-pin), '"square"]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((-4.5 + pin) * PinSpacing), \
mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
mm2mils100((-4.5 + pin) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % pin, '"%i"' % pin, '"square"]'
+ '"pin%i"' % pin, '"%i"' % pin, '"square"]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
mm2mils100((-4.5 + pin) * PinSpacing), \
mm2mils100(Overall/2 - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (17-pin), '"%i"' % (17-pin), '"square"]'
+ '"pin%i"' % (17-pin), '"%i"' % (17-pin), '"square"]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100((-4.5 + pin) * PinSpacing), \
mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (24+pin), '"%i"' % (24+pin), '"square"]'
+ '"pin%i"' % (24+pin), '"%i"' % (24+pin), '"square"]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100(-2.6), \
mm2mils100(2.6), \
- '500 500 0 360 1000 ]'
-print ")"
+ '500 500 0 360 1000 ]')
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2011 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for QFN32 package used by TI CC1120
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "QFN36" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "QFN36" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
# pad under the chip, must be grounded
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(GndSquare), \
0, \
0, \
- '"pin33" "33" "square,nopaste"]'
+ '"pin33" "33" "square,nopaste"]')
# vias in the ground pad under the chip
for viarow in range (-1,2):
for viacol in range (-1,2):
- print ' Pin[',\
+ print(' Pin[',\
mm2mils100(2 * viacol * CoreSquare / 5), \
mm2mils100(2 * viarow * CoreSquare / 5), \
2900, \
2500, \
0, \
1500, \
- '"pin33" "33" 0x0002]'
+ '"pin33" "33" 0x0002]')
# break pad under chip into a grid to control the resist and paste masks
for viarow in range (-2, 3):
for viacol in range (-2, 3):
if (viarow in (-2, 0, 2)) and (viacol in (-2, 0, 2)):
# copper sub-square with resist over vias
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(viacol * CoreSquare / 5), \
mm2mils100(viarow * CoreSquare / 5), \
mm2mils100(viacol * CoreSquare / 5), \
mm2mils100((CoreSquare)/5), \
0, \
0, \
- '"pin33" "33" "square,nopaste"]'
+ '"pin33" "33" "square,nopaste"]')
else:
# copper sub-square without resist
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(viacol * CoreSquare / 5), \
mm2mils100(viarow * CoreSquare / 5), \
mm2mils100(viacol * CoreSquare / 5), \
mm2mils100((CoreSquare)/5), \
0, \
mm2mils100((CoreSquare)/5), \
- '"pin33" "33" "square,nopaste"]'
+ '"pin33" "33" "square,nopaste"]')
# copper spot to control paste mask generation
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(viacol * CoreSquare / 5), \
mm2mils100(viarow * CoreSquare / 5), \
mm2mils100(viacol * CoreSquare / 5), \
1500, \
0, \
mm2mils100((CoreSquare)/5), \
- '"pin33" "33" "square"]'
+ '"pin33" "33" "square"]')
# pins
for pin in range (1,9):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((-4.5 + pin) * PinSpacing), \
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100((-4.5 + pin) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (25-pin), '"%i"' % (25-pin), '"square"]'
+ '"pin%i"' % (25-pin), '"%i"' % (25-pin), '"square"]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((-4.5 + pin) * PinSpacing), \
mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
mm2mils100((-4.5 + pin) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % pin, '"%i"' % pin, '"square"]'
+ '"pin%i"' % pin, '"%i"' % pin, '"square"]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
mm2mils100((-4.5 + pin) * PinSpacing), \
mm2mils100(Overall/2 - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (17-pin), '"%i"' % (17-pin), '"square"]'
+ '"pin%i"' % (17-pin), '"%i"' % (17-pin), '"square"]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100((-4.5 + pin) * PinSpacing), \
mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (24+pin), '"%i"' % (24+pin), '"square"]'
+ '"pin%i"' % (24+pin), '"%i"' % (24+pin), '"square"]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100(-2.6), \
mm2mils100(2.6), \
- '500 500 0 360 1000 ]'
-print ")"
+ '500 500 0 360 1000 ]')
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2008 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for QFN36 package used by TI CC1111
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "QFN36" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "QFN36" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
# pad under the chip, must be grounded
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(GndSquare), \
0, \
0, \
- '"pin37" "37" "square,nopaste"]'
+ '"pin37" "37" "square,nopaste"]')
# vias in the ground pad under the chip
for viarow in range (-1,2):
for viacol in range (-1,2):
- print ' Pin[',\
+ print(' Pin[',\
mm2mils100(2 * viacol * CoreSquare / 5), \
mm2mils100(2 * viarow * CoreSquare / 5), \
2900, \
2500, \
0, \
1500, \
- '"pin37" "37" 0x0002]'
+ '"pin37" "37" 0x0002]')
# break pad under chip into a grid to control the resist and paste masks
for viarow in range (-2, 3):
for viacol in range (-2, 3):
if (viarow in (-2, 0, 2)) and (viacol in (-2, 0, 2)):
# copper sub-square with resist over vias
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(viacol * CoreSquare / 5), \
mm2mils100(viarow * CoreSquare / 5), \
mm2mils100(viacol * CoreSquare / 5), \
mm2mils100((CoreSquare)/5), \
0, \
0, \
- '"pin37" "37" "square,nopaste"]'
+ '"pin37" "37" "square,nopaste"]')
else:
# copper sub-square without resist
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(viacol * CoreSquare / 5), \
mm2mils100(viarow * CoreSquare / 5), \
mm2mils100(viacol * CoreSquare / 5), \
mm2mils100((CoreSquare)/5), \
0, \
mm2mils100((CoreSquare)/5), \
- '"pin37" "37" "square,nopaste"]'
+ '"pin37" "37" "square,nopaste"]')
# copper spot to control paste mask generation
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(viacol * CoreSquare / 5), \
mm2mils100(viarow * CoreSquare / 5), \
mm2mils100(viacol * CoreSquare / 5), \
1500, \
0, \
mm2mils100((CoreSquare)/5), \
- '"pin37" "37" "square"]'
+ '"pin37" "37" "square"]')
# pins
for pin in range (1,10):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-2.5 + pin * PinSpacing), \
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100(-2.5 + pin * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (28-pin), '"%i"' % (28-pin), '"square"]'
+ '"pin%i"' % (28-pin), '"%i"' % (28-pin), '"square"]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-2.5 + pin * PinSpacing), \
mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
mm2mils100(-2.5 + pin * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % pin, '"%i"' % pin, '"square"]'
+ '"pin%i"' % pin, '"%i"' % pin, '"square"]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
mm2mils100(-2.5 + pin * PinSpacing), \
mm2mils100(Overall/2 - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (19-pin), '"%i"' % (19-pin), '"square"]'
+ '"pin%i"' % (19-pin), '"%i"' % (19-pin), '"square"]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100(-2.5 + pin * PinSpacing), \
mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (27+pin), '"%i"' % (27+pin), '"square"]'
+ '"pin%i"' % (27+pin), '"%i"' % (27+pin), '"square"]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100(-2.6), \
mm2mils100(2.6), \
- '500 500 0 360 1000 ]'
-print ")"
+ '500 500 0 360 1000 ]')
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2015 by Bdale Garbee <bdale@gag.com>. GPLv3
#
# Emit PCB footprint for TO-252AA parts from International Rectifier
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 3'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "TO252AA" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print ' Pad[',\
+print('Element[0x0 "TO252AA" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print(' Pad[',\
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(PadSquare), \
mm2mils100(1.5), \
mm2mils100(PadSquare+0.4), \
- '"pin1" "1" 0x0100]'
+ '"pin1" "1" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(-PinSpacing/2 - PinWidth/2), \
mm2mils100(Pad2Pin + PinWidth/2), \
mm2mils100(-PinSpacing/2 - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(1.5), \
mm2mils100(PinWidth+0.4), \
- '"pin3" "3" 0x0100]'
+ '"pin3" "3" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(PinSpacing/2 + PinWidth/2), \
mm2mils100(Pad2Pin + PinWidth/2), \
mm2mils100(PinSpacing/2 + PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(1.5), \
mm2mils100(PinWidth+0.4), \
- '"pin2" "2" 0x0100]'
+ '"pin2" "2" 0x0100]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodyWidth/2), \
mm2mils100(BodyOffset - BodyHeight/2), \
mm2mils100(BodyWidth/2), \
mm2mils100(BodyOffset - BodyHeight/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodyWidth/2), \
mm2mils100(BodyOffset + BodyHeight/2), \
mm2mils100(BodyWidth/2), \
mm2mils100(BodyOffset + BodyHeight/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(BodyWidth/2), \
mm2mils100(BodyOffset - BodyHeight/2), \
mm2mils100(BodyWidth/2), \
mm2mils100(BodyOffset + BodyHeight/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodyWidth/2), \
mm2mils100(BodyOffset - BodyHeight/2), \
mm2mils100(-BodyWidth/2), \
mm2mils100(BodyOffset + BodyHeight/2), \
- '1000 ]'
+ '1000 ]')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2013 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for U-Blox MAX-6 GPS receiver
#
# dimensions in mm fromL
-# LEA-6_NEO-6_MAX-6_HardwareIntegrationManual_(GPS.G6-HW-09007).pdf
+# LEA-6_NEO-6_MAX-6_HardwareIntegrationManual_(GPS.G6-HW-09007).pdf
BodyHeight = 10.1
-BodyWidth = 12.5 # physical is 9.7, 12.5 includes paste
+BodyWidth = 12.5 # physical is 9.7, 12.5 includes paste
CornerPinWidth = 0.7
MainPinWidth = 0.8
PasteTongueWidthDelta = 0.2
PasteRowSpacing = 9.7
PasteHeight = (12.5 - 9.7) / 2
-#PasteHeight = 0.8 # not quite what the manual says
+#PasteHeight = 0.8 # not quite what the manual says
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 )
+ 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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "UBLOX-MAX" "" "" 0 0 -10161 -12011 0 100 0x0]'
-print "("
+print('Element[0x0 "UBLOX-MAX" "" "" 0 0 -10161 -12011 0 100 0x0]')
+print("(")
# first, lay down the copper but with no paste mask defined
for pin in range (0,9):
if (pin == 0) or (pin == 8):
- PinWidth = CornerPinWidth
+ PinWidth = CornerPinWidth
else:
- PinWidth = MainPinWidth
- print ' Pad[',\
- mm2mils100((pin-4) * PinSpacing), \
- mm2mils100(-(RowSpacing/2 + PinWidth/2)), \
- mm2mils100((pin-4) * PinSpacing), \
- mm2mils100(-(RowSpacing/2 + PinHeight - PinWidth/2)), \
- mm2mils100(PinWidth), \
- mm2mils100(PinSpacing - PinWidth), \
- mm2mils100(PinWidth)+600, \
- '"pin%i"' % (18 - pin), '"%i"' % (18 - pin), '"square,nopaste"]'
-
- print ' Pad[',\
- mm2mils100((pin-4) * PinSpacing), \
- mm2mils100(RowSpacing/2 + PinWidth/2), \
- mm2mils100((pin-4) * PinSpacing), \
- mm2mils100(RowSpacing/2 + PinHeight - PinWidth/2), \
- mm2mils100(PinWidth), \
- mm2mils100(PinSpacing - PinWidth), \
- mm2mils100(PinWidth)+600, \
- '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '"square,nopaste"]'
+ PinWidth = MainPinWidth
+ print(' Pad[',\
+ mm2mils100((pin-4) * PinSpacing), \
+ mm2mils100(-(RowSpacing/2 + PinWidth/2)), \
+ mm2mils100((pin-4) * PinSpacing), \
+ mm2mils100(-(RowSpacing/2 + PinHeight - PinWidth/2)), \
+ mm2mils100(PinWidth), \
+ mm2mils100(PinSpacing - PinWidth), \
+ mm2mils100(PinWidth)+600, \
+ '"pin%i"' % (18 - pin), '"%i"' % (18 - pin), '"square,nopaste"]')
+
+ print(' Pad[',\
+ mm2mils100((pin-4) * PinSpacing), \
+ mm2mils100(RowSpacing/2 + PinWidth/2), \
+ mm2mils100((pin-4) * PinSpacing), \
+ mm2mils100(RowSpacing/2 + PinHeight - PinWidth/2), \
+ mm2mils100(PinWidth), \
+ mm2mils100(PinSpacing - PinWidth), \
+ mm2mils100(PinWidth)+600, \
+ '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '"square,nopaste"]')
# now define the paste mask, which needs two rectangles per pad in T-shape
# the first rectangle is full pin height but narrower
for pin in range (0,9):
if (pin == 0) or (pin == 8):
- PinWidth = CornerPinWidth - PasteTongueWidthDelta
+ PinWidth = CornerPinWidth - PasteTongueWidthDelta
else:
- PinWidth = MainPinWidth - PasteTongueWidthDelta
- print ' Pad[',\
- mm2mils100((pin-4) * PinSpacing), \
- mm2mils100(-(RowSpacing/2 + PinWidth/2)), \
- mm2mils100((pin-4) * PinSpacing), \
- mm2mils100(-(RowSpacing/2 + PinHeight - PinWidth/2)), \
- mm2mils100(PinWidth), \
- mm2mils100(PinSpacing - PinWidth), \
- mm2mils100(PinWidth)+600, \
- '"pin%i"' % (18 - pin), '"%i"' % (18 - pin), '"square"]'
-
- print ' Pad[',\
- mm2mils100((pin-4) * PinSpacing), \
- mm2mils100(RowSpacing/2 + PinWidth/2), \
- mm2mils100((pin-4) * PinSpacing), \
- mm2mils100(RowSpacing/2 + PinHeight - PinWidth/2), \
- mm2mils100(PinWidth), \
- mm2mils100(PinSpacing - PinWidth), \
- mm2mils100(PinWidth)+600, \
- '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '"square"]'
+ PinWidth = MainPinWidth - PasteTongueWidthDelta
+ print(' Pad[',\
+ mm2mils100((pin-4) * PinSpacing), \
+ mm2mils100(-(RowSpacing/2 + PinWidth/2)), \
+ mm2mils100((pin-4) * PinSpacing), \
+ mm2mils100(-(RowSpacing/2 + PinHeight - PinWidth/2)), \
+ mm2mils100(PinWidth), \
+ mm2mils100(PinSpacing - PinWidth), \
+ mm2mils100(PinWidth)+600, \
+ '"pin%i"' % (18 - pin), '"%i"' % (18 - pin), '"square"]')
+
+ print(' Pad[',\
+ mm2mils100((pin-4) * PinSpacing), \
+ mm2mils100(RowSpacing/2 + PinWidth/2), \
+ mm2mils100((pin-4) * PinSpacing), \
+ mm2mils100(RowSpacing/2 + PinHeight - PinWidth/2), \
+ mm2mils100(PinWidth), \
+ mm2mils100(PinSpacing - PinWidth), \
+ mm2mils100(PinWidth)+600, \
+ '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '"square"]')
# the second rectangle is partial height but full width
for pin in range (0,9):
if (pin == 0) or (pin == 8):
- PinWidth = CornerPinWidth
+ PinWidth = CornerPinWidth
else:
- PinWidth = MainPinWidth
- print ' Pad[',\
- mm2mils100((pin-4) * PinSpacing), \
- mm2mils100(-(PasteRowSpacing/2 + PinWidth/2)), \
- mm2mils100((pin-4) * PinSpacing), \
- mm2mils100(-(PasteRowSpacing/2 + PasteHeight - PinWidth/2)), \
- mm2mils100(PinWidth), \
- mm2mils100(PinSpacing - PinWidth), \
- mm2mils100(PinWidth)+600, \
- '"pin%i"' % (18 - pin), '"%i"' % (18 - pin), '"square"]'
-
- print ' Pad[',\
- mm2mils100((pin-4) * PinSpacing), \
- mm2mils100(PasteRowSpacing/2 + PinWidth/2), \
- mm2mils100((pin-4) * PinSpacing), \
- mm2mils100(PasteRowSpacing/2 + PasteHeight - PinWidth/2), \
- mm2mils100(PinWidth), \
- mm2mils100(PinSpacing - PinWidth), \
- mm2mils100(PinWidth)+600, \
- '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '"square"]'
-
-
-print ' ElementLine[',\
- mm2mils100(-BodyHeight/2), \
- mm2mils100(-BodyWidth/2), \
- mm2mils100(-BodyHeight/2), \
- mm2mils100( BodyWidth/2), \
- '1000 ]'
-
-print ' ElementLine[',\
- mm2mils100(-BodyHeight/2), \
- mm2mils100( BodyWidth/2), \
- mm2mils100( BodyHeight/2), \
- mm2mils100( BodyWidth/2), \
- '1000 ]'
-
-print ' ElementLine[',\
- mm2mils100( BodyHeight/2), \
- mm2mils100( BodyWidth/2), \
- mm2mils100( BodyHeight/2), \
- mm2mils100(-BodyWidth/2), \
- '1000 ]'
-
-print ' ElementLine[',\
- mm2mils100( BodyHeight/2), \
- mm2mils100(-BodyWidth/2), \
- mm2mils100(-BodyHeight/2), \
- mm2mils100(-BodyWidth/2), \
- '1000 ]'
-
-print ' ElementArc[',\
- mm2mils100(-4 * PinSpacing), \
- mm2mils100(RowSpacing/2-PinHeight/2), \
- '500 500 0 360 1000 ]'
-
-print ")"
+ PinWidth = MainPinWidth
+ print(' Pad[',\
+ mm2mils100((pin-4) * PinSpacing), \
+ mm2mils100(-(PasteRowSpacing/2 + PinWidth/2)), \
+ mm2mils100((pin-4) * PinSpacing), \
+ mm2mils100(-(PasteRowSpacing/2 + PasteHeight - PinWidth/2)), \
+ mm2mils100(PinWidth), \
+ mm2mils100(PinSpacing - PinWidth), \
+ mm2mils100(PinWidth)+600, \
+ '"pin%i"' % (18 - pin), '"%i"' % (18 - pin), '"square"]')
+
+ print(' Pad[',\
+ mm2mils100((pin-4) * PinSpacing), \
+ mm2mils100(PasteRowSpacing/2 + PinWidth/2), \
+ mm2mils100((pin-4) * PinSpacing), \
+ mm2mils100(PasteRowSpacing/2 + PasteHeight - PinWidth/2), \
+ mm2mils100(PinWidth), \
+ mm2mils100(PinSpacing - PinWidth), \
+ mm2mils100(PinWidth)+600, \
+ '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '"square"]')
+
+
+print(' ElementLine[',\
+ mm2mils100(-BodyHeight/2), \
+ mm2mils100(-BodyWidth/2), \
+ mm2mils100(-BodyHeight/2), \
+ mm2mils100( BodyWidth/2), \
+ '1000 ]')
+
+print(' ElementLine[',\
+ mm2mils100(-BodyHeight/2), \
+ mm2mils100( BodyWidth/2), \
+ mm2mils100( BodyHeight/2), \
+ mm2mils100( BodyWidth/2), \
+ '1000 ]')
+
+print(' ElementLine[',\
+ mm2mils100( BodyHeight/2), \
+ mm2mils100( BodyWidth/2), \
+ mm2mils100( BodyHeight/2), \
+ mm2mils100(-BodyWidth/2), \
+ '1000 ]')
+
+print(' ElementLine[',\
+ mm2mils100( BodyHeight/2), \
+ mm2mils100(-BodyWidth/2), \
+ mm2mils100(-BodyHeight/2), \
+ mm2mils100(-BodyWidth/2), \
+ '1000 ]')
+
+print(' ElementArc[',\
+ mm2mils100(-4 * PinSpacing), \
+ mm2mils100(RowSpacing/2-PinHeight/2), \
+ '500 500 0 360 1000 ]')
+
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2020 by Bdale Garbee <bdale@gag.com>. GPLv3
#
# Program to emit PCB footprint for U-Blox ZOE-8 GPS receiver
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 3'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "UBLOX-ZOE" "" "" 0 0 11000 0 0 100 0x0]'
-print "("
+print('Element[0x0 "UBLOX-ZOE" "" "" 0 0 11000 0 0 100 0x0]')
+print("(")
rows = ['A','B','C','D','E','F','G','H','J']
for row in rows:
for col in range (1,10): # col wil run 1..9
ThisPin = row+str(col)
if ThisPin in ValidPin:
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((col-5) * PadSpacing), \
mm2mils100((rownum-4) * PadSpacing), \
mm2mils100((col-5) * PadSpacing), \
mm2mils100(PadDiam), \
mm2mils100(Clearance), \
mm2mils100(Mask), \
- '"%s"' % ThisPin, '"%s"' % ThisPin, '""]'
+ '"%s"' % ThisPin, '"%s"' % ThisPin, '""]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100( BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100(-BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100( BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100(-5 * PadSpacing), \
mm2mils100(-5 * PadSpacing), \
- '500 500 0 360 1000 ]'
+ '500 500 0 360 1000 ]')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2007 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for Pulse Electronics W3011A GPS chip antenna
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "W3011A" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "W3011A" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
# pad 1 (signal trace)
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(+PinSpacing/2+PinHeight/2), \
mm2mils100(1.60 - PinHeight/2), \
mm2mils100(+PinSpacing/2+PinWidth+PinHeight/2), \
mm2mils100(PinHeight), \
0, \
mm2mils100(PinHeight + 0.1), \
- '"pin1" "1" 0x0100]'
+ '"pin1" "1" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(+PinSpacing/2+PinHeight/2), \
mm2mils100(PinHeight/2), \
mm2mils100(+PinSpacing/2+PinWidth+PinHeight/2), \
mm2mils100(PinHeight), \
0, \
mm2mils100(PinHeight + 0.1), \
- '"pin2" "2" 0x0100]'
+ '"pin2" "2" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(-PinSpacing/2-PinWidth/2), \
mm2mils100(PinWidth/2), \
mm2mils100(-PinSpacing/2-PinWidth/2), \
mm2mils100(PinWidth), \
0, \
mm2mils100(PinWidth + 0.1), \
- '"pin3" "3" 0x0100]'
+ '"pin3" "3" 0x0100]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(ClearWidth/2), \
mm2mils100(0), \
mm2mils100(ClearWidth/2), \
mm2mils100(ClearHeight), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-ClearWidth/2), \
mm2mils100(0), \
mm2mils100(-ClearWidth/2), \
mm2mils100(ClearHeight), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-ClearWidth/2-0.2), \
mm2mils100(0), \
mm2mils100(ClearWidth/2+0.2), \
mm2mils100(0), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-ClearWidth/2), \
mm2mils100(ClearHeight), \
mm2mils100(ClearWidth/2), \
mm2mils100(ClearHeight), \
- '1000 ]'
+ '1000 ]')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2011 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for
# 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 "USBmicroB" "" "" 0 0 -10161 -12011 0 100 0x0]'
-print "("
-print ' Pad[', \
- mm2mils100(0), \
- mm2mils100(PinWidth/2), \
- mm2mils100(0), \
- mm2mils100(PinHeight - PinWidth/2), \
- mm2mils100(PinWidth), \
- (MinClearance*2), \
- mm2mils100(PinWidth)+(MaskDelta*2), \
- '"D+" "3" 0x0100]'
-
-print ' Pad[', \
- mm2mils100(-PinSpacing), \
- mm2mils100(PinWidth/2), \
- mm2mils100(-PinSpacing), \
- mm2mils100(PinHeight - PinWidth/2), \
- mm2mils100(PinWidth), \
- (MinClearance*2), \
- mm2mils100(PinWidth)+(MaskDelta*2), \
- '"D-" "2" 0x0100]'
-
-print ' Pad[', \
- mm2mils100(PinSpacing), \
- mm2mils100(PinWidth/2), \
- mm2mils100(PinSpacing), \
- mm2mils100(PinHeight - PinWidth/2), \
- mm2mils100(PinWidth), \
- (MinClearance*2), \
- mm2mils100(PinWidth)+(MaskDelta*2), \
- '"HS" "4" 0x0100]'
-
-print ' Pad[', \
- mm2mils100(-PinSpacing*2), \
- mm2mils100(PinWidth/2), \
- mm2mils100(-PinSpacing*2), \
- mm2mils100(PinHeight - PinWidth/2), \
- mm2mils100(PinWidth), \
- (MinClearance*2), \
- mm2mils100(PinWidth)+(MaskDelta*2), \
- '"VBUS" "1" 0x0100]'
-
-print ' Pad[', \
- mm2mils100(PinSpacing*2), \
- mm2mils100(PinWidth/2), \
- mm2mils100(PinSpacing*2), \
- mm2mils100(PinHeight - PinWidth/2), \
- mm2mils100(PinWidth), \
- (MinClearance*2), \
- mm2mils100(PinWidth)+(MaskDelta*2), \
- '"GND" "5" 0x0100]'
+ return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
+
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
+
+print('Element[0x0 "USBmicroB" "" "" 0 0 -10161 -12011 0 100 0x0]')
+print("(")
+print(' Pad[', \
+ mm2mils100(0), \
+ mm2mils100(PinWidth/2), \
+ mm2mils100(0), \
+ mm2mils100(PinHeight - PinWidth/2), \
+ mm2mils100(PinWidth), \
+ (MinClearance*2), \
+ mm2mils100(PinWidth)+(MaskDelta*2), \
+ '"D+" "3" 0x0100]')
+
+print(' Pad[', \
+ mm2mils100(-PinSpacing), \
+ mm2mils100(PinWidth/2), \
+ mm2mils100(-PinSpacing), \
+ mm2mils100(PinHeight - PinWidth/2), \
+ mm2mils100(PinWidth), \
+ (MinClearance*2), \
+ mm2mils100(PinWidth)+(MaskDelta*2), \
+ '"D-" "2" 0x0100]')
+
+print(' Pad[', \
+ mm2mils100(PinSpacing), \
+ mm2mils100(PinWidth/2), \
+ mm2mils100(PinSpacing), \
+ mm2mils100(PinHeight - PinWidth/2), \
+ mm2mils100(PinWidth), \
+ (MinClearance*2), \
+ mm2mils100(PinWidth)+(MaskDelta*2), \
+ '"HS" "4" 0x0100]')
+
+print(' Pad[', \
+ mm2mils100(-PinSpacing*2), \
+ mm2mils100(PinWidth/2), \
+ mm2mils100(-PinSpacing*2), \
+ mm2mils100(PinHeight - PinWidth/2), \
+ mm2mils100(PinWidth), \
+ (MinClearance*2), \
+ mm2mils100(PinWidth)+(MaskDelta*2), \
+ '"VBUS" "1" 0x0100]')
+
+print(' Pad[', \
+ mm2mils100(PinSpacing*2), \
+ mm2mils100(PinWidth/2), \
+ mm2mils100(PinSpacing*2), \
+ mm2mils100(PinHeight - PinWidth/2), \
+ mm2mils100(PinWidth), \
+ (MinClearance*2), \
+ mm2mils100(PinWidth)+(MaskDelta*2), \
+ '"GND" "5" 0x0100]')
# the two ground / mounting tabs in line with signal pins
-print ' Pad[', \
- mm2mils100(TabInner + TabHeight/2), \
- mm2mils100(TabHeight/2), \
- mm2mils100(TabInner + TabWidth - TabHeight/2), \
- mm2mils100(TabHeight/2), \
- mm2mils100(TabHeight), \
- (MinClearance*2), \
- mm2mils100(TabHeight)+(MaskDelta*2), \
- '"tab1" "G" 0x0100]'
-
-print ' Pad[', \
- mm2mils100(-TabInner - TabHeight/2), \
- mm2mils100(TabHeight/2), \
- mm2mils100(-TabInner - TabWidth + TabHeight/2), \
- mm2mils100(TabHeight/2), \
- mm2mils100(TabHeight), \
- (MinClearance*2), \
- mm2mils100(TabHeight)+(MaskDelta*2), \
- '"tab2" "G" 0x0100]'
+print(' Pad[', \
+ mm2mils100(TabInner + TabHeight/2), \
+ mm2mils100(TabHeight/2), \
+ mm2mils100(TabInner + TabWidth - TabHeight/2), \
+ mm2mils100(TabHeight/2), \
+ mm2mils100(TabHeight), \
+ (MinClearance*2), \
+ mm2mils100(TabHeight)+(MaskDelta*2), \
+ '"tab1" "G" 0x0100]')
+
+print(' Pad[', \
+ mm2mils100(-TabInner - TabHeight/2), \
+ mm2mils100(TabHeight/2), \
+ mm2mils100(-TabInner - TabWidth + TabHeight/2), \
+ mm2mils100(TabHeight/2), \
+ mm2mils100(TabHeight), \
+ (MinClearance*2), \
+ mm2mils100(TabHeight)+(MaskDelta*2), \
+ '"tab2" "G" 0x0100]')
# the two ground / mounting tabs near the center of area
-print ' Pad[', \
- mm2mils100(PadInner + PadHeight/2), \
- mm2mils100(PadCenter), \
- mm2mils100(PadInner + PadWidth - PadHeight/2), \
- mm2mils100(PadCenter), \
- mm2mils100(PadHeight), \
- (MinClearance*2), \
- mm2mils100(PadHeight)+(MaskDelta*2), \
- '"tab3" "G" 0x0100]'
-
-print ' Pad[', \
- mm2mils100(-PadInner - PadHeight/2), \
- mm2mils100(PadCenter), \
- mm2mils100(-PadInner - PadWidth + PadHeight/2), \
- mm2mils100(PadCenter), \
- mm2mils100(PadHeight), \
- (MinClearance*2), \
- mm2mils100(PadHeight)+(MaskDelta*2), \
- '"tab4" "G" 0x0100]'
+print(' Pad[', \
+ mm2mils100(PadInner + PadHeight/2), \
+ mm2mils100(PadCenter), \
+ mm2mils100(PadInner + PadWidth - PadHeight/2), \
+ mm2mils100(PadCenter), \
+ mm2mils100(PadHeight), \
+ (MinClearance*2), \
+ mm2mils100(PadHeight)+(MaskDelta*2), \
+ '"tab3" "G" 0x0100]')
+
+print(' Pad[', \
+ mm2mils100(-PadInner - PadHeight/2), \
+ mm2mils100(PadCenter), \
+ mm2mils100(-PadInner - PadWidth + PadHeight/2), \
+ mm2mils100(PadCenter), \
+ mm2mils100(PadHeight), \
+ (MinClearance*2), \
+ mm2mils100(PadHeight)+(MaskDelta*2), \
+ '"tab4" "G" 0x0100]')
# the two "wing tab" ground / mounting pads on the sides
-print ' Pad[', \
- mm2mils100(WingInner + WingWidth/2), \
- mm2mils100(PadCenter - WingHeight/2 + WingWidth/2), \
- mm2mils100(WingInner + WingWidth/2), \
- mm2mils100(PadCenter + WingHeight/2 - WingWidth/2), \
- mm2mils100(WingWidth), \
- (MinClearance*2), \
- mm2mils100(WingWidth)+(MaskDelta*2), \
- '"tab5" "G" 0x0100]'
-
-print ' Pad[', \
- mm2mils100(-WingInner - WingWidth/2), \
- mm2mils100(PadCenter - WingHeight/2 + WingWidth/2), \
- mm2mils100(-WingInner - WingWidth/2), \
- mm2mils100(PadCenter + WingHeight/2 - WingWidth/2), \
- mm2mils100(WingWidth), \
- (MinClearance*2), \
- mm2mils100(WingWidth)+(MaskDelta*2), \
- '"tab6" "G" 0x0100]'
-
-# box around actual connector size, with line at PCB edge
-#
-#print ' ElementLine[',\
-# mm2mils100(-BoxWidth/2), \
-# mm2mils100(0), \
-# mm2mils100(-BoxWidth/2), \
-# mm2mils100(BoxHeight), \
-# '1000 ]'
-#
-#print ' ElementLine[',\
-# mm2mils100(BoxWidth/2), \
-# mm2mils100(0), \
-# mm2mils100(BoxWidth/2), \
-# mm2mils100(BoxHeight), \
-# '1000 ]'
-#
-#print ' ElementLine[',\
-# mm2mils100(-BoxWidth/2), \
-# mm2mils100(0), \
-# mm2mils100(BoxWidth/2), \
-# mm2mils100(0), \
-# '1000 ]'
-#
-#print ' ElementLine[',\
-# mm2mils100(-BoxWidth/2), \
-# mm2mils100(BoxHeight), \
-# mm2mils100(BoxWidth/2), \
-# mm2mils100(BoxHeight), \
-# '1000 ]'
-#
-#print ' ElementLine[',\
-# mm2mils100(-EdgeWidth/2), \
-# mm2mils100(EdgeHeight), \
-# mm2mils100(-BoxWidth/2), \
-# mm2mils100(EdgeHeight), \
-# '1000 ]'
-#
-#print ' ElementLine[',\
-# mm2mils100(BoxWidth/2), \
-# mm2mils100(EdgeHeight), \
-# mm2mils100(EdgeWidth/2), \
-# mm2mils100(EdgeHeight), \
-# '1000 ]'
-#
-print ")"
+print(' Pad[', \
+ mm2mils100(WingInner + WingWidth/2), \
+ mm2mils100(PadCenter - WingHeight/2 + WingWidth/2), \
+ mm2mils100(WingInner + WingWidth/2), \
+ mm2mils100(PadCenter + WingHeight/2 - WingWidth/2), \
+ mm2mils100(WingWidth), \
+ (MinClearance*2), \
+ mm2mils100(WingWidth)+(MaskDelta*2), \
+ '"tab5" "G" 0x0100]')
+
+print(' Pad[', \
+ mm2mils100(-WingInner - WingWidth/2), \
+ mm2mils100(PadCenter - WingHeight/2 + WingWidth/2), \
+ mm2mils100(-WingInner - WingWidth/2), \
+ mm2mils100(PadCenter + WingHeight/2 - WingWidth/2), \
+ mm2mils100(WingWidth), \
+ (MinClearance*2), \
+ mm2mils100(WingWidth)+(MaskDelta*2), \
+ '"tab6" "G" 0x0100]')
+
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2015 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for littlefuse 345 fuse holder
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "littlefuse345" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print ' Pin(',\
+print('Element[0x0 "littlefuse345" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print(' Pin(',\
0, \
0, \
125, \
30, \
150, \
56, \
- '"pin1" "1" 0x0001)'
+ '"pin1" "1" 0x0001)')
-print ' Pin(',\
+print(' Pin(',\
PinSpace1, \
0, \
125, \
30, \
150, \
56, \
- '"pin2" "2" 0x0001)'
+ '"pin2" "2" 0x0001)')
-print ' Pin(',\
+print(' Pin(',\
PinSpace1 + PinSpace2, \
0, \
125, \
30, \
150, \
56, \
- '"pin3" "3" 0x0001)'
+ '"pin3" "3" 0x0001)')
-print ' ElementLine(',\
+print(' ElementLine(',\
0, \
-(BodyHeight/2), \
0, \
(BodyHeight/2), \
5, \
- ')'
+ ')')
-print ' ElementLine(',\
+print(' ElementLine(',\
0, \
-(BodyHeight/2), \
BodyWidth, \
-(BodyHeight/2), \
5, \
- ')'
+ ')')
-print ' ElementLine(',\
+print(' ElementLine(',\
0, \
(BodyHeight/2), \
BodyWidth, \
(BodyHeight/2), \
5, \
- ')'
+ ')')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2015 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for Omron G5RL-1A-E relays
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "G5RL-1A-E" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print ' Pin[',\
+print('Element[0x0 "G5RL-1A-E" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print(' Pin[',\
mm2mils100(0), \
mm2mils100(RowSpace/2), \
mm2mils100(Thickness), \
mm2mils100(Clearance), \
mm2mils100(Mask), \
mm2mils100(Drill), \
- '"pin1" "1" 0x0001]'
+ '"pin1" "1" 0x0001]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(PinSpace1), \
mm2mils100(RowSpace/2), \
mm2mils100(Thickness), \
mm2mils100(Clearance), \
mm2mils100(Mask), \
mm2mils100(Drill), \
- '"pin3" "3" 0x0001]'
+ '"pin3" "3" 0x0001]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(PinSpace1 + PinSpace2), \
mm2mils100(RowSpace/2), \
mm2mils100(Thickness), \
mm2mils100(Clearance), \
mm2mils100(Mask), \
mm2mils100(Drill), \
- '"pin4" "4" 0x0001]'
+ '"pin4" "4" 0x0001]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(0), \
mm2mils100(-RowSpace/2), \
mm2mils100(Thickness), \
mm2mils100(Clearance), \
mm2mils100(Mask), \
mm2mils100(Drill), \
- '"pin8" "8" 0x0001]'
+ '"pin8" "8" 0x0001]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(PinSpace1), \
mm2mils100(-RowSpace/2), \
mm2mils100(Thickness), \
mm2mils100(Clearance), \
mm2mils100(Mask), \
mm2mils100(Drill), \
- '"pin6" "6" 0x0001]'
+ '"pin6" "6" 0x0001]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(PinSpace1 + PinSpace2), \
mm2mils100(-RowSpace/2), \
mm2mils100(Thickness), \
mm2mils100(Clearance), \
mm2mils100(Mask), \
mm2mils100(Drill), \
- '"pin5" "5" 0x0001]'
+ '"pin5" "5" 0x0001]')
-print ' ElementLine[',\
+print(' ElementLine[',\
-mm2mils100(BackSpace), \
-mm2mils100(BodyHeight/2), \
mm2mils100(BodyWidth-BackSpace), \
-mm2mils100(BodyHeight/2), \
500, \
- ']'
+ ']')
-print ' ElementLine[',\
+print(' ElementLine[',\
-mm2mils100(BackSpace), \
mm2mils100(BodyHeight/2), \
mm2mils100(BodyWidth-BackSpace), \
mm2mils100(BodyHeight/2), \
500, \
- ']'
+ ']')
-print ' ElementLine[',\
+print(' ElementLine[',\
-mm2mils100(BackSpace), \
mm2mils100(BodyHeight/2), \
-mm2mils100(BackSpace), \
-mm2mils100(BodyHeight/2), \
500, \
- ']'
+ ']')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(BodyWidth-BackSpace), \
mm2mils100(BodyHeight/2), \
mm2mils100(BodyWidth-BackSpace), \
-mm2mils100(BodyHeight/2), \
500, \
- ']'
+ ']')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2018 by Bdale Garbee <bdale@gag.com>. GPLv3
#
# Program to emit PCB footprint for LGA 14 such as ADXL375
# 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 )
+ return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
-print '# author: Bdale Garbee'
-print '# email: bdale@gag.com'
-print '# dist-license: GPL 3'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "lga14" "" "" 0 0 -10161 -12011 0 100 0x0]'
-print "("
+print('Element[0x0 "lga14" "" "" 0 0 -10161 -12011 0 100 0x0]')
+print("(")
for pin in range (0,6):
- print ' Pad[',\
- mm2mils100((pin-2.5) * PinSpacing), \
- mm2mils100(-(RowSpacing/2 + PinWidth/2)), \
- mm2mils100((pin-2.5) * PinSpacing), \
- mm2mils100(-(RowSpacing/2 + PinHeight - PinWidth/2)), \
- mm2mils100(PinWidth), \
- mm2mils100(PinSpacing - PinWidth), \
- mm2mils100(PinWidth)+600, \
- '"pin%i"' % (13 - pin), '"%i"' % (13 - pin), '0x0100]'
+ print(' Pad[',\
+ mm2mils100((pin-2.5) * PinSpacing), \
+ mm2mils100(-(RowSpacing/2 + PinWidth/2)), \
+ mm2mils100((pin-2.5) * PinSpacing), \
+ mm2mils100(-(RowSpacing/2 + PinHeight - PinWidth/2)), \
+ mm2mils100(PinWidth), \
+ mm2mils100(PinSpacing - PinWidth), \
+ mm2mils100(PinWidth)+600, \
+ '"pin%i"' % (13 - pin), '"%i"' % (13 - pin), '0x0100]')
- print ' Pad[',\
- mm2mils100((pin-2.5) * PinSpacing), \
- mm2mils100(RowSpacing/2 + PinWidth/2), \
- mm2mils100((pin-2.5) * PinSpacing), \
- mm2mils100(RowSpacing/2 + PinHeight - PinWidth/2), \
- mm2mils100(PinWidth), \
- mm2mils100(PinSpacing - PinWidth), \
- mm2mils100(PinWidth)+600, \
- '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]'
+ print(' Pad[',\
+ mm2mils100((pin-2.5) * PinSpacing), \
+ mm2mils100(RowSpacing/2 + PinWidth/2), \
+ mm2mils100((pin-2.5) * PinSpacing), \
+ mm2mils100(RowSpacing/2 + PinHeight - PinWidth/2), \
+ mm2mils100(PinWidth), \
+ mm2mils100(PinSpacing - PinWidth), \
+ mm2mils100(PinWidth)+600, \
+ '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]')
- print ' Pad[',\
- mm2mils100(EndSpacing/2 + PinWidth/2), \
- 0, \
- mm2mils100(EndSpacing/2 + PinHeight - PinWidth/2), \
- 0, \
- mm2mils100(PinWidth), \
- mm2mils100(PinSpacing - PinWidth), \
- mm2mils100(PinWidth)+600, \
- '"pin%i"' % 7, '"%i"' % 7, '0x0100]'
+ print(' Pad[',\
+ mm2mils100(EndSpacing/2 + PinWidth/2), \
+ 0, \
+ mm2mils100(EndSpacing/2 + PinHeight - PinWidth/2), \
+ 0, \
+ mm2mils100(PinWidth), \
+ mm2mils100(PinSpacing - PinWidth), \
+ mm2mils100(PinWidth)+600, \
+ '"pin%i"' % 7, '"%i"' % 7, '0x0100]')
- print ' Pad[',\
- -mm2mils100(EndSpacing/2 + PinWidth/2), \
- 0, \
- -mm2mils100(EndSpacing/2 + PinHeight - PinWidth/2), \
- 0, \
- mm2mils100(PinWidth), \
- mm2mils100(PinSpacing - PinWidth), \
- mm2mils100(PinWidth)+600, \
- '"pin%i"' % 14, '"%i"' % 14, '0x0100]'
+ print(' Pad[',\
+ -mm2mils100(EndSpacing/2 + PinWidth/2), \
+ 0, \
+ -mm2mils100(EndSpacing/2 + PinHeight - PinWidth/2), \
+ 0, \
+ mm2mils100(PinWidth), \
+ mm2mils100(PinSpacing - PinWidth), \
+ mm2mils100(PinWidth)+600, \
+ '"pin%i"' % 14, '"%i"' % 14, '0x0100]')
-print ' ElementLine[',\
- mm2mils100(-BodyHeight/2), \
- mm2mils100(-BodyWidth/2), \
- mm2mils100(-BodyHeight/2), \
- mm2mils100( BodyWidth/2), \
- '1000 ]'
+print(' ElementLine[',\
+ mm2mils100(-BodyHeight/2), \
+ mm2mils100(-BodyWidth/2), \
+ mm2mils100(-BodyHeight/2), \
+ mm2mils100( BodyWidth/2), \
+ '1000 ]')
-print ' ElementLine[',\
- mm2mils100(-BodyHeight/2), \
- mm2mils100( BodyWidth/2), \
- mm2mils100( BodyHeight/2), \
- mm2mils100( BodyWidth/2), \
- '1000 ]'
+print(' ElementLine[',\
+ mm2mils100(-BodyHeight/2), \
+ mm2mils100( BodyWidth/2), \
+ mm2mils100( BodyHeight/2), \
+ mm2mils100( BodyWidth/2), \
+ '1000 ]')
-print ' ElementLine[',\
- mm2mils100( BodyHeight/2), \
- mm2mils100( BodyWidth/2), \
- mm2mils100( BodyHeight/2), \
- mm2mils100(-BodyWidth/2), \
- '1000 ]'
+print(' ElementLine[',\
+ mm2mils100( BodyHeight/2), \
+ mm2mils100( BodyWidth/2), \
+ mm2mils100( BodyHeight/2), \
+ mm2mils100(-BodyWidth/2), \
+ '1000 ]')
-print ' ElementLine[',\
- mm2mils100( BodyHeight/2), \
- mm2mils100(-BodyWidth/2), \
- mm2mils100(-BodyHeight/2), \
- mm2mils100(-BodyWidth/2), \
- '1000 ]'
+print(' ElementLine[',\
+ mm2mils100( BodyHeight/2), \
+ mm2mils100(-BodyWidth/2), \
+ mm2mils100(-BodyHeight/2), \
+ mm2mils100(-BodyWidth/2), \
+ '1000 ]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100(-2.75 * PinSpacing), \
mm2mils100(RowSpacing*2), \
- '500 500 0 360 1000 ]'
+ '500 500 0 360 1000 ]')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2019 by Bdale Garbee <bdale@gag.com>. GPLv3
#
# Program to emit PCB footprint for Bosch LGA 14 such as BMX160
# 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 )
+ return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
-print '# author: Bdale Garbee'
-print '# email: bdale@gag.com'
-print '# dist-license: GPL 3'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "lga14b" "" "" 0 0 -10161 -12011 0 100 0x0]'
-print "("
+print('Element[0x0 "lga14b" "" "" 0 0 -10161 -12011 0 100 0x0]')
+print("(")
for pin in range (0,4):
- print ' Pad[',\
- mm2mils100(-(HRowSpacing/2 + PinWidth/2)), \
- mm2mils100((pin-1.5) * PinSpacing), \
- mm2mils100(-(HRowSpacing/2 + PinHeight - PinWidth/2)), \
- mm2mils100((pin-1.5) * PinSpacing), \
- mm2mils100(PinWidth), \
- mm2mils100(PinSpacing - PinWidth), \
- mm2mils100(PinWidth)+600, \
- '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]'
-
- print ' Pad[',\
- mm2mils100(HRowSpacing/2 + PinWidth/2), \
- mm2mils100((pin-1.5) * PinSpacing), \
- mm2mils100(HRowSpacing/2 + PinHeight - PinWidth/2), \
- mm2mils100((pin-1.5) * PinSpacing), \
- mm2mils100(PinWidth), \
- mm2mils100(PinSpacing - PinWidth), \
- mm2mils100(PinWidth)+600, \
- '"pin%i"' % (11 - pin), '"%i"' % (11 - pin), '0x0100]'
+ print(' Pad[',\
+ mm2mils100(-(HRowSpacing/2 + PinWidth/2)), \
+ mm2mils100((pin-1.5) * PinSpacing), \
+ mm2mils100(-(HRowSpacing/2 + PinHeight - PinWidth/2)), \
+ mm2mils100((pin-1.5) * PinSpacing), \
+ mm2mils100(PinWidth), \
+ mm2mils100(PinSpacing - PinWidth), \
+ mm2mils100(PinWidth)+600, \
+ '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]')
+
+ print(' Pad[',\
+ mm2mils100(HRowSpacing/2 + PinWidth/2), \
+ mm2mils100((pin-1.5) * PinSpacing), \
+ mm2mils100(HRowSpacing/2 + PinHeight - PinWidth/2), \
+ mm2mils100((pin-1.5) * PinSpacing), \
+ mm2mils100(PinWidth), \
+ mm2mils100(PinSpacing - PinWidth), \
+ mm2mils100(PinWidth)+600, \
+ '"pin%i"' % (11 - pin), '"%i"' % (11 - pin), '0x0100]')
for pin in range (0,3):
- print ' Pad[',\
- mm2mils100((pin-1) * PinSpacing), \
- mm2mils100(-(VRowSpacing/2 + PinWidth/2)), \
- mm2mils100((pin-1) * PinSpacing), \
- mm2mils100(-(VRowSpacing/2 + PinHeight - PinWidth/2)), \
- mm2mils100(PinWidth), \
- mm2mils100(PinSpacing - PinWidth), \
- mm2mils100(PinWidth)+600, \
- '"pin%i"' % (14 - pin), '"%i"' % (14 - pin), '0x0100]'
-
- print ' Pad[',\
- mm2mils100((pin-1) * PinSpacing), \
- mm2mils100(VRowSpacing/2 + PinWidth/2), \
- mm2mils100((pin-1) * PinSpacing), \
- mm2mils100(VRowSpacing/2 + PinHeight - PinWidth/2), \
- mm2mils100(PinWidth), \
- mm2mils100(PinSpacing - PinWidth), \
- mm2mils100(PinWidth)+600, \
- '"pin%i"' % (5 + pin), '"%i"' % (5 + pin), '0x0100]'
-
-print ' ElementLine[',\
- mm2mils100(-BodyHeight/2), \
- mm2mils100(-BodyWidth/2), \
- mm2mils100(-BodyHeight/2), \
- mm2mils100( BodyWidth/2), \
- '1000 ]'
-
-print ' ElementLine[',\
- mm2mils100(-BodyHeight/2), \
- mm2mils100( BodyWidth/2), \
- mm2mils100( BodyHeight/2), \
- mm2mils100( BodyWidth/2), \
- '1000 ]'
-
-print ' ElementLine[',\
- mm2mils100( BodyHeight/2), \
- mm2mils100( BodyWidth/2), \
- mm2mils100( BodyHeight/2), \
- mm2mils100(-BodyWidth/2), \
- '1000 ]'
-
-print ' ElementLine[',\
- mm2mils100( BodyHeight/2), \
- mm2mils100(-BodyWidth/2), \
- mm2mils100(-BodyHeight/2), \
- mm2mils100(-BodyWidth/2), \
- '1000 ]'
-
-print ' ElementArc[',\
- mm2mils100(-HRowSpacing), \
+ print(' Pad[',\
+ mm2mils100((pin-1) * PinSpacing), \
+ mm2mils100(-(VRowSpacing/2 + PinWidth/2)), \
+ mm2mils100((pin-1) * PinSpacing), \
+ mm2mils100(-(VRowSpacing/2 + PinHeight - PinWidth/2)), \
+ mm2mils100(PinWidth), \
+ mm2mils100(PinSpacing - PinWidth), \
+ mm2mils100(PinWidth)+600, \
+ '"pin%i"' % (14 - pin), '"%i"' % (14 - pin), '0x0100]')
+
+ print(' Pad[',\
+ mm2mils100((pin-1) * PinSpacing), \
+ mm2mils100(VRowSpacing/2 + PinWidth/2), \
+ mm2mils100((pin-1) * PinSpacing), \
+ mm2mils100(VRowSpacing/2 + PinHeight - PinWidth/2), \
+ mm2mils100(PinWidth), \
+ mm2mils100(PinSpacing - PinWidth), \
+ mm2mils100(PinWidth)+600, \
+ '"pin%i"' % (5 + pin), '"%i"' % (5 + pin), '0x0100]')
+
+print(' ElementLine[',\
+ mm2mils100(-BodyHeight/2), \
+ mm2mils100(-BodyWidth/2), \
+ mm2mils100(-BodyHeight/2), \
+ mm2mils100( BodyWidth/2), \
+ '1000 ]')
+
+print(' ElementLine[',\
+ mm2mils100(-BodyHeight/2), \
+ mm2mils100( BodyWidth/2), \
+ mm2mils100( BodyHeight/2), \
+ mm2mils100( BodyWidth/2), \
+ '1000 ]')
+
+print(' ElementLine[',\
+ mm2mils100( BodyHeight/2), \
+ mm2mils100( BodyWidth/2), \
+ mm2mils100( BodyHeight/2), \
+ mm2mils100(-BodyWidth/2), \
+ '1000 ]')
+
+print(' ElementLine[',\
+ mm2mils100( BodyHeight/2), \
+ mm2mils100(-BodyWidth/2), \
+ mm2mils100(-BodyHeight/2), \
+ mm2mils100(-BodyWidth/2), \
+ '1000 ]')
+
+print(' ElementArc[',\
+ mm2mils100(-HRowSpacing), \
mm2mils100(-2.25 * PinSpacing), \
- '500 500 0 360 1000 ]'
+ '500 500 0 360 1000 ]')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2013 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for Linear Technologies S8 footprint,
def inch2mils100( inch ):
return int( inch * 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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "MOT1317" "" "" 0 0 -10161 -12011 0 100 0x0]'
-print "("
+print('Element[0x0 "MOT1317" "" "" 0 0 -10161 -12011 0 100 0x0]')
+print("(")
for pin in range (0,4):
- print ' Pad[',\
+ print(' Pad[',\
inch2mils100((pin-1.5) * PinSpacing), \
inch2mils100(-(RowSpacing/2 + PinWidth/2)), \
inch2mils100((pin-1.5) * PinSpacing), \
inch2mils100(PinWidth), \
inch2mils100(PinSpacing - PinWidth), \
inch2mils100(PinWidth)+600, \
- '"pin%i"' % (8 - pin), '"%i"' % (8 - pin), '0x0100]'
+ '"pin%i"' % (8 - pin), '"%i"' % (8 - pin), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
inch2mils100((pin-1.5) * PinSpacing), \
inch2mils100(RowSpacing/2 + PinWidth/2), \
inch2mils100((pin-1.5) * PinSpacing), \
inch2mils100(PinWidth), \
inch2mils100(PinSpacing - PinWidth), \
inch2mils100(PinWidth)+600, \
- '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]'
+ '"pin%i"' % (1 + pin), '"%i"' % (1 + pin), '0x0100]')
-#print ' ElementLine[',\
+#print(' ElementLine[',\
# inch2mils100(-BodyHeight/2), \
# inch2mils100(-BodyWidth/2), \
# inch2mils100(-BodyHeight/2), \
# inch2mils100( BodyWidth/2), \
-# '1000 ]'
+# '1000 ]')
#
-#print ' ElementLine[',\
+#print(' ElementLine[',\
# inch2mils100(-BodyHeight/2), \
# inch2mils100( BodyWidth/2), \
# inch2mils100( BodyHeight/2), \
# inch2mils100( BodyWidth/2), \
-# '1000 ]'
+# '1000 ]')
#
-#print ' ElementLine[',\
+#print(' ElementLine[',\
# inch2mils100( BodyHeight/2), \
# inch2mils100( BodyWidth/2), \
# inch2mils100( BodyHeight/2), \
# inch2mils100(-BodyWidth/2), \
-# '1000 ]'
+# '1000 ]')
#
-#print ' ElementLine[',\
+#print(' ElementLine[',\
# inch2mils100( BodyHeight/2), \
# inch2mils100(-BodyWidth/2), \
# inch2mils100(-BodyHeight/2), \
# inch2mils100(-BodyWidth/2), \
-# '1000 ]'
+# '1000 ]')
-print ' ElementArc[',\
+print(' ElementArc[',\
inch2mils100(-1.5 * PinSpacing), \
inch2mils100(RowSpacing/3), \
- '500 500 0 360 1000 ]'
+ '500 500 0 360 1000 ]')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2011 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for STM32L151 LQFP100 14 x 14 mm package
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "LQFP100" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "LQFP100" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
# pins
for pin in range (1,26):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pin - 13) * PinSpacing), \
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100((pin - 13) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (26-pin), '"%i"' % (26-pin), '0x0100]'
+ '"pin%i"' % (26-pin), '"%i"' % (26-pin), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pin - 13) * PinSpacing), \
mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
mm2mils100((pin - 13) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (50+pin), '"%i"' % (50+pin), '0x0100]'
+ '"pin%i"' % (50+pin), '"%i"' % (50+pin), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
mm2mils100((pin - 13) * PinSpacing), \
mm2mils100(Overall/2 - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (101-pin), '"%i"' % (101-pin), '0x0100]'
+ '"pin%i"' % (101-pin), '"%i"' % (101-pin), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100((pin - 13) * PinSpacing), \
mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (25+pin), '"%i"' % (25+pin), '0x0100]'
+ '"pin%i"' % (25+pin), '"%i"' % (25+pin), '0x0100]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100( BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100(-BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100( BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100( (BodySize/2)+0.3), \
mm2mils100(-((BodySize/2)+0.3)), \
- '500 500 0 360 1000 ]'
-print ")"
+ '500 500 0 360 1000 ]')
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2012 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for STM32L151 LQFP48 7 x 7 mm package
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "LQFP100" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "LQFP100" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
# pins
for pin in range (1,9):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pin - 4.5) * PinSpacing), \
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100((pin - 4.5) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (9-pin), '"%i"' % (9-pin), '0x0100]'
+ '"pin%i"' % (9-pin), '"%i"' % (9-pin), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pin - 4.5) * PinSpacing), \
mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
mm2mils100((pin - 4.5) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (16+pin), '"%i"' % (16+pin), '0x0100]'
+ '"pin%i"' % (16+pin), '"%i"' % (16+pin), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
mm2mils100((pin - 4.5) * PinSpacing), \
mm2mils100(Overall/2 - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (33-pin), '"%i"' % (33-pin), '0x0100]'
+ '"pin%i"' % (33-pin), '"%i"' % (33-pin), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100((pin - 4.5) * PinSpacing), \
mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (8+pin), '"%i"' % (8+pin), '0x0100]'
+ '"pin%i"' % (8+pin), '"%i"' % (8+pin), '0x0100]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100( BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100(-BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100( BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100( (BodySize/2)+0.3), \
mm2mils100(-((BodySize/2)+0.3)), \
- '500 500 0 360 1000 ]'
-print ")"
+ '500 500 0 360 1000 ]')
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2012 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for STM32L151 LQFP48 7 x 7 mm package
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "LQFP100" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "LQFP100" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
# pins
for pin in range (1,13):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pin - 6.5) * PinSpacing), \
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100((pin - 6.5) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (13-pin), '"%i"' % (13-pin), '0x0100]'
+ '"pin%i"' % (13-pin), '"%i"' % (13-pin), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pin - 6.5) * PinSpacing), \
mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
mm2mils100((pin - 6.5) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (24+pin), '"%i"' % (24+pin), '0x0100]'
+ '"pin%i"' % (24+pin), '"%i"' % (24+pin), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
mm2mils100((pin - 6.5) * PinSpacing), \
mm2mils100(Overall/2 - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (49-pin), '"%i"' % (49-pin), '0x0100]'
+ '"pin%i"' % (49-pin), '"%i"' % (49-pin), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100((pin - 6.5) * PinSpacing), \
mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (12+pin), '"%i"' % (12+pin), '0x0100]'
+ '"pin%i"' % (12+pin), '"%i"' % (12+pin), '0x0100]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100( BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100(-BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100( BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100( (BodySize/2)+0.3), \
mm2mils100(-((BodySize/2)+0.3)), \
- '500 500 0 360 1000 ]'
-print ")"
+ '500 500 0 360 1000 ]')
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2011 by Bdale Garbee <bdale@gag.com>. GPLv2
#
-# Program to emit PCB footprint for STM32L151 LQFP100 14 x 14 mm package
+# Program to emit PCB footprint(for STM32L151 LQFP100 14 x 14 mm package
#
# dimensions in mm from STM32L151 data sheet
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "LQFP100" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "LQFP100" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
# pins
for pin in range (1,17):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pin - 8.5) * PinSpacing), \
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100((pin - 8.5) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (17-pin), '"%i"' % (17-pin), '0x0100]'
+ '"pin%i"' % (17-pin), '"%i"' % (17-pin), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pin - 8.5) * PinSpacing), \
mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
mm2mils100((pin - 8.5) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (32+pin), '"%i"' % (32+pin), '0x0100]'
+ '"pin%i"' % (32+pin), '"%i"' % (32+pin), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
mm2mils100((pin - 8.5) * PinSpacing), \
mm2mils100(Overall/2 - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (65-pin), '"%i"' % (65-pin), '0x0100]'
+ '"pin%i"' % (65-pin), '"%i"' % (65-pin), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100((pin - 8.5) * PinSpacing), \
mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (16+pin), '"%i"' % (16+pin), '0x0100]'
+ '"pin%i"' % (16+pin), '"%i"' % (16+pin), '0x0100]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100( BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100(-BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100( BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100( (BodySize/2)+0.3), \
mm2mils100(-((BodySize/2)+0.3)), \
- '500 500 0 360 1000 ]'
-print ")"
+ '500 500 0 360 1000 ]')
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2021 by Bdale Garbee <bdale@gag.com>. GPLv3
#
# Program to emit PCB footprint for LQFP80 12x12 mm package, ala STM32G491
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 3'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "LQFP80" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "LQFP80" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
# pins
for pin in range (1,21):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pin - 10.5) * PinSpacing), \
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100((pin - 10.5) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (21-pin), '"%i"' % (21-pin), '0x0100]'
+ '"pin%i"' % (21-pin), '"%i"' % (21-pin), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pin - 10.5) * PinSpacing), \
mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
mm2mils100((pin - 10.5) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (40+pin), '"%i"' % (40+pin), '0x0100]'
+ '"pin%i"' % (40+pin), '"%i"' % (40+pin), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
mm2mils100((pin - 10.5) * PinSpacing), \
mm2mils100(Overall/2 - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (81-pin), '"%i"' % (81-pin), '0x0100]'
+ '"pin%i"' % (81-pin), '"%i"' % (81-pin), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100((pin - 10.5) * PinSpacing), \
mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (20+pin), '"%i"' % (20+pin), '0x0100]'
+ '"pin%i"' % (20+pin), '"%i"' % (20+pin), '0x0100]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100( BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100(-BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100( BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100( (BodySize/2)+0.3), \
mm2mils100(-((BodySize/2)+0.3)), \
- '500 500 0 360 1000 ]'
-print ")"
+ '500 500 0 360 1000 ]')
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2011 by Bdale Garbee <bdale@gag.com>. GPLv2
#
-# Program to emit PCB footprint for Amphenol micro SD connector
+# Program to emit PCB footprint(for Amphenol micro SD connector
#
# dimensions in mm from 101-00303-xx.pdf
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "microSD" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "microSD" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
# mounting pads
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(-MntX/2), \
mm2mils100(MntY1-(MntHeight/2)+(MntWidth/2)), \
mm2mils100(-MntX/2), \
mm2mils100(MntWidth), \
mm2mils100(0), \
mm2mils100(MntWidth + MaskAdd), \
- '"9" "9" 0x0100]'
+ '"9" "9" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(MntX/2), \
mm2mils100(MntY1-(MntHeight/2)+(MntWidth/2)), \
mm2mils100(MntX/2), \
mm2mils100(MntWidth), \
mm2mils100(0), \
mm2mils100(MntWidth + MaskAdd), \
- '"9" "9" 0x0100]'
+ '"9" "9" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(-MntX/2), \
mm2mils100(MntY2-(MntHeight/2)+(MntWidth/2)), \
mm2mils100(-MntX/2), \
mm2mils100(MntWidth), \
mm2mils100(0), \
mm2mils100(MntWidth + MaskAdd), \
- '"9" "9" 0x0100]'
+ '"9" "9" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(MntX/2), \
mm2mils100(MntY2-(MntHeight/2)+(MntWidth/2)), \
mm2mils100(MntX/2), \
mm2mils100(MntWidth), \
mm2mils100(0), \
mm2mils100(MntWidth + MaskAdd), \
- '"9" "9" 0x0100]'
+ '"9" "9" 0x0100]')
# signal pads
for pin in range (1,9):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-PinXOffset + (8-pin) * PinSpacing), \
mm2mils100(PinY-(PinHeight/2)+(PinWidth/2)), \
mm2mils100(-PinXOffset + (8-pin) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(0), \
mm2mils100(PinWidth + MaskAdd), \
- '"pin%i"' % (pin), '"%i"' % (pin), '0x0100]'
+ '"pin%i"' % (pin), '"%i"' % (pin), '0x0100]')
# silkscreen box
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(BoxX/2), \
mm2mils100(0), \
mm2mils100(BoxX/2), \
mm2mils100(BoxY), \
- LineWidth, ']'
+ LineWidth, ']')
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(-BoxX/2), \
mm2mils100(0), \
mm2mils100(-BoxX/2), \
mm2mils100(BoxY), \
- LineWidth, ']'
+ LineWidth, ']')
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(-BoxX/2), \
mm2mils100(0), \
mm2mils100(+BoxX/2), \
mm2mils100(0), \
- LineWidth, ']'
+ LineWidth, ']')
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(-BoxX/2), \
mm2mils100(BoxY), \
mm2mils100(+BoxX/2), \
mm2mils100(BoxY), \
- LineWidth, ']'
+ LineWidth, ']')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2016 by Bdale Garbee <bdale@gag.com>. GPLv3+
#
# Program to emit PCB footprint for Norcomp 182-YYY-113RYY1 connectors
if pins == 15:
pinoffset += PinSpacing/2
-print '# author: Bdale Garbee'
-print '# email: bdale@gag.com'
-print '# dist-license: GPL 3+'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3+')
+print('# use-license: unlimited')
-print 'Element[0x0 "DB%iM"' % pins,'"" "" 0 0 0 0 0 100 0x0]'
-print "("
-for col in range ((pins+1)/2):
- pinnum = col + 1
+print('Element[0x0 "DB%iM"' % pins,'"" "" 0 0 0 0 0 100 0x0]')
+print("(")
+for col in range (int((pins+1)/2)):
+ pinnum = col + 1
if pinnum == 1:
- Flags = '0x0101'
+ Flags = '0x0101'
else:
- Flags = '0x0001'
+ Flags = '0x0001'
- print ' Pin[', \
+ print(' Pin[', \
mm2mils100(-(pinnum-1)*PinSpacing-pinoffset), \
mm2mils100(RowSpacing/2), \
mm2mils100(PinDiam+ARing), \
mm2mils100(Clearance), \
mm2mils100(PinDiam+ARing+Clearance), \
mm2mils100(PinDiam), \
- '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
+ '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']')
- pinnum = col + 1 + (pins+1)/2
- Flags = '0x0001'
- if pinnum <= pins:
- print ' Pin[', \
+ pinnum = col + 1 + (pins+1)/2
+ Flags = '0x0001'
+ if pinnum <= pins:
+ print(' Pin[', \
mm2mils100(-(col)*PinSpacing-pinoffset-PinSpacing/2), \
mm2mils100(-RowSpacing/2), \
mm2mils100(PinDiam+ARing), \
mm2mils100(Clearance), \
mm2mils100(PinDiam+ARing+Clearance), \
mm2mils100(PinDiam), \
- '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
+ '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']')
pinnum = pins + 1
-print ' Pin[', \
+print(' Pin[', \
mm2mils100(MntX/2), \
mm2mils100(0), \
mm2mils100(MntDiam+ARing), \
mm2mils100(Clearance), \
mm2mils100(MntDiam+ARing+Clearance), \
mm2mils100(MntDiam), \
- '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
+ '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']')
-print ' Pin[', \
+print(' Pin[', \
mm2mils100(-MntX/2), \
mm2mils100(0), \
mm2mils100(MntDiam+ARing), \
mm2mils100(Clearance), \
mm2mils100(MntDiam+ARing+Clearance), \
mm2mils100(MntDiam), \
- '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
+ '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']')
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(-BoxX/2), \
mm2mils100(-FaceY-RowSpacing/2), \
mm2mils100(BoxX/2), \
mm2mils100(-FaceY-RowSpacing/2), \
- LineWidth, ']'
+ LineWidth, ']')
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(-BoxX/2), \
mm2mils100(BoxY-FaceY-RowSpacing/2), \
mm2mils100(BoxX/2), \
mm2mils100(BoxY-FaceY-RowSpacing/2), \
- LineWidth, ']'
+ LineWidth, ']')
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(BoxX/2), \
mm2mils100(-FaceY-RowSpacing/2), \
mm2mils100(BoxX/2), \
mm2mils100(BoxY-FaceY-RowSpacing/2), \
- LineWidth, ']'
+ LineWidth, ']')
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(-BoxX/2), \
mm2mils100(-FaceY-RowSpacing/2), \
mm2mils100(-BoxX/2), \
mm2mils100(BoxY-FaceY-RowSpacing/2), \
- LineWidth, ']'
+ LineWidth, ']')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2011 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for Norcomp 182-YYY-213RYY1 connectors
if pins == 15:
pinoffset += PinSpacing/2
-print '# author: Bdale Garbee'
-print '# email: bdale@gag.com'
-print '# dist-license: GPL 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 2')
+print('# use-license: unlimited')
-print 'Element[0x0 "DB%iF"' % pins,'"" "" 0 0 0 0 0 100 0x0]'
-print "("
-for col in range ((pins+1)/2):
- pinnum = col + 1
+print('Element[0x0 "DB%iF"' % pins,'"" "" 0 0 0 0 0 100 0x0]')
+print("(")
+for col in range (int((pins+1)/2)):
+ pinnum = col + 1
if pinnum == 1:
- Flags = '0x0101'
+ Flags = '0x0101'
else:
- Flags = '0x0001'
+ Flags = '0x0001'
- print ' Pin[', \
+ print(' Pin[', \
mm2mils100((pinnum-1)*PinSpacing-pinoffset), \
mm2mils100(RowSpacing/2), \
mm2mils100(PinDiam+ARing), \
mm2mils100(Clearance), \
mm2mils100(PinDiam+ARing+Clearance), \
mm2mils100(PinDiam), \
- '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
+ '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']')
- pinnum2 = pinnum + pins
- print ' Pin[', \
+ pinnum2 = pinnum + pins
+ print(' Pin[', \
mm2mils100((pinnum-1)*PinSpacing-pinoffset), \
mm2mils100(RowSpacing/2+DualSpacing), \
mm2mils100(PinDiam+ARing), \
mm2mils100(Clearance), \
mm2mils100(PinDiam+ARing+Clearance), \
mm2mils100(PinDiam), \
- '"pin%i"' % pinnum2, '"%i"' % pinnum2, Flags, ']'
+ '"pin%i"' % pinnum2, '"%i"' % pinnum2, Flags, ']')
- pinnum = col + 1 + (pins+1)/2
- Flags = '0x0001'
- if pinnum <= pins:
- print ' Pin[', \
+ pinnum = col + 1 + (pins+1)/2
+ Flags = '0x0001'
+ if pinnum <= pins:
+ print(' Pin[', \
mm2mils100((col)*PinSpacing-pinoffset+PinSpacing/2), \
mm2mils100(-RowSpacing/2), \
mm2mils100(PinDiam+ARing), \
mm2mils100(Clearance), \
mm2mils100(PinDiam+ARing+Clearance), \
mm2mils100(PinDiam), \
- '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
+ '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']')
- pinnum2 = pinnum + pins
- print ' Pin[', \
+ pinnum2 = pinnum + pins
+ print(' Pin[', \
mm2mils100((col)*PinSpacing-pinoffset+PinSpacing/2), \
mm2mils100(-RowSpacing/2+DualSpacing), \
mm2mils100(PinDiam+ARing), \
mm2mils100(Clearance), \
mm2mils100(PinDiam+ARing+Clearance), \
mm2mils100(PinDiam), \
- '"pin%i"' % pinnum2, '"%i"' % pinnum2, Flags, ']'
+ '"pin%i"' % pinnum2, '"%i"' % pinnum2, Flags, ']')
-print ' Pin[', \
+print(' Pin[', \
mm2mils100(MntX/2), \
mm2mils100(-RowSpacing/2), \
mm2mils100(MntDiam+ARing), \
mm2mils100(Clearance), \
mm2mils100(MntDiam+ARing+Clearance), \
mm2mils100(MntDiam), \
- '"mnt" "0"', '0x0001', ']'
+ '"mnt" "0"', '0x0001', ']')
-print ' Pin[', \
+print(' Pin[', \
mm2mils100(-MntX/2), \
mm2mils100(-RowSpacing/2), \
mm2mils100(MntDiam+ARing), \
mm2mils100(Clearance), \
mm2mils100(MntDiam+ARing+Clearance), \
mm2mils100(MntDiam), \
- '"mnt" "0"', '0x0001', ']'
+ '"mnt" "0"', '0x0001', ']')
-print ' Pin[', \
+print(' Pin[', \
mm2mils100(MntX/2), \
mm2mils100(DualSpacing), \
mm2mils100(MntDiam+ARing), \
mm2mils100(Clearance), \
mm2mils100(MntDiam+ARing+Clearance), \
mm2mils100(MntDiam), \
- '"mnt" "0"', '0x0001', ']'
+ '"mnt" "0"', '0x0001', ']')
-print ' Pin[', \
+print(' Pin[', \
mm2mils100(-MntX/2), \
mm2mils100(DualSpacing), \
mm2mils100(MntDiam+ARing), \
mm2mils100(Clearance), \
mm2mils100(MntDiam+ARing+Clearance), \
mm2mils100(MntDiam), \
- '"mnt" "0"', '0x0001', ']'
+ '"mnt" "0"', '0x0001', ']')
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(-BoxX/2), \
mm2mils100(-FaceY-RowSpacing/2), \
mm2mils100(BoxX/2), \
mm2mils100(-FaceY-RowSpacing/2), \
- LineWidth, ']'
+ LineWidth, ']')
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(-BoxX/2), \
mm2mils100(BoxY-FaceY-RowSpacing/2), \
mm2mils100(BoxX/2), \
mm2mils100(BoxY-FaceY-RowSpacing/2), \
- LineWidth, ']'
+ LineWidth, ']')
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(BoxX/2), \
mm2mils100(-FaceY-RowSpacing/2), \
mm2mils100(BoxX/2), \
mm2mils100(BoxY-FaceY-RowSpacing/2), \
- LineWidth, ']'
+ LineWidth, ']')
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(-BoxX/2), \
mm2mils100(-FaceY-RowSpacing/2), \
mm2mils100(-BoxX/2), \
mm2mils100(BoxY-FaceY-RowSpacing/2), \
- LineWidth, ']'
+ LineWidth, ']')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2011 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for QFN-16 package used by the RFPA0133
def mm2mils100( mm ):
return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
-print '# author: Keith Packard'
-print '# email: keithp@keithp.com'
-print '# dist-license: GPL 2'
-print '# use-license: unlimited'
+print('# author: Keith Packard')
+print('# email: keithp@keithp.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "qfn-16" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "qfn-16" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
# pad under the chip, must be grounded
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(GndSquare), \
mm2mils100(PinClearance), \
mm2mils100(PinResist), \
- '"pin17" "17" "square,nopaste"]'
+ '"pin17" "17" "square,nopaste"]')
# vias in the ground pad under the chip
for viarow in range (-1,1):
for viacol in range (-1,1):
- print ' Pin[',\
+ print(' Pin[',\
mm2mils100(1.8 * viacol * CoreSquare / 3 + .9 * CoreSquare/3), \
mm2mils100(1.8 * viarow * CoreSquare / 3 + .9 * CoreSquare/3), \
2600, \
2500, \
0, \
1300, \
- '"pin17" "17" 0x0002]'
+ '"pin17" "17" 0x0002]')
# break pad under chip into a grid to control the resist and paste masks
for viacol in range (-1, 2):
if (viarow in (-1, 1)) and (viacol in (-1, 1)):
# copper sub-square with resist over vias
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(viacol * CoreSquare / blocks), \
mm2mils100(viarow * CoreSquare / blocks), \
mm2mils100(viacol * CoreSquare / blocks), \
mm2mils100((CoreSquare)/blocks), \
0, \
0, \
- '"pin17" "17" "square,nopaste"]'
+ '"pin17" "17" "square,nopaste"]')
else:
# copper sub-square without resist
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(viacol * CoreSquare / blocks), \
mm2mils100(viarow * CoreSquare / blocks), \
mm2mils100(viacol * CoreSquare / blocks), \
mm2mils100((CoreSquare)/blocks), \
0, \
mm2mils100((CoreSquare)/blocks), \
- '"pin17" "17" "square,nopaste"]'
+ '"pin17" "17" "square,nopaste"]')
# copper spot to control paste mask generation
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(viacol * CoreSquare / blocks), \
mm2mils100(viarow * CoreSquare / blocks), \
mm2mils100(viacol * CoreSquare / blocks), \
1500, \
0, \
mm2mils100((CoreSquare)/blocks), \
- '"pin17" "17" "square"]'
+ '"pin17" "17" "square"]')
# pins
for pin in range (1,5):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((-2.5 + pin) * PinSpacing), \
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100((-2.5 + pin) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinClearance), \
mm2mils100(PinResist), \
- '"pin%i"' % (13-pin), '"%i"' % (13-pin), '0x0000]'
+ '"pin%i"' % (13-pin), '"%i"' % (13-pin), '0x0000]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((-2.5 + pin) * PinSpacing), \
mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
mm2mils100((-2.5 + pin) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinClearance), \
mm2mils100(PinResist), \
- '"pin%i"' % pin, '"%i"' % pin, '0x0000]'
+ '"pin%i"' % pin, '"%i"' % pin, '0x0000]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
mm2mils100((-2.5 + pin) * PinSpacing), \
mm2mils100(Overall/2 - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinClearance), \
mm2mils100(PinResist), \
- '"pin%i"' % (9-pin), '"%i"' % (9-pin), '0x0000]'
+ '"pin%i"' % (9-pin), '"%i"' % (9-pin), '0x0000]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100((-2.5 + pin) * PinSpacing), \
mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinClearance), \
mm2mils100(PinResist), \
- '"pin%i"' % (12+pin), '"%i"' % (12+pin), '0x0000]'
+ '"pin%i"' % (12+pin), '"%i"' % (12+pin), '0x0000]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100(-2.0), \
mm2mils100(2.0), \
- '500 500 0 360 1000 ]'
-print ")"
+ '500 500 0 360 1000 ]')
+print(")")
print('# author: Bdale Garbee')
print('# email: bdale@gag.com')
-print('# dist-license: GPL 2+')
+print('# dist-license: GPL 3+')
print('# use-license: unlimited')
print('Element[0x0 "RP-SMA" "" "" 0 0 0 0 0 100 0x0]')
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2017 by Bdale Garbee <bdale@gag.com>. GPLv3
#
# Program to emit PCB footprint for TI ADS124S0X in LQFP32 package
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 3'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "S-PQFP-G32" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "S-PQFP-G32" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
# pins
for pin in range (1,9):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pin - 4.5) * PinSpacing), \
mm2mils100(-Inside/2 - PinWidth/2), \
mm2mils100((pin - 4.5) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (9-pin), '"%i"' % (9-pin), '0x0100]'
+ '"pin%i"' % (9-pin), '"%i"' % (9-pin), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((pin - 4.5) * PinSpacing), \
mm2mils100(+Inside/2 + PinHeight - PinWidth/2), \
mm2mils100((pin - 4.5) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (16+pin), '"%i"' % (16+pin), '0x0100]'
+ '"pin%i"' % (16+pin), '"%i"' % (16+pin), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(Inside/2 + PinHeight - PinWidth/2), \
mm2mils100((pin - 4.5) * PinSpacing), \
mm2mils100(Inside/2 + PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (33-pin), '"%i"' % (33-pin), '0x0100]'
+ '"pin%i"' % (33-pin), '"%i"' % (33-pin), '0x0100]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-Inside/2 - PinWidth/2), \
mm2mils100((pin - 4.5) * PinSpacing), \
mm2mils100(-Inside/2 - PinHeight + PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinSpacing - PinWidth), \
mm2mils100(PinResist), \
- '"pin%i"' % (8+pin), '"%i"' % (8+pin), '0x0100]'
+ '"pin%i"' % (8+pin), '"%i"' % (8+pin), '0x0100]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100( BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100( BodySize/2), \
mm2mils100(-BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100( BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
mm2mils100(-BodySize/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100( (BodySize/2)+0.3), \
mm2mils100(-((BodySize/2)+0.3)), \
- '500 500 0 360 1000 ]'
-print ")"
+ '500 500 0 360 1000 ]')
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2007 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for edge-launch SMA connector
import sys
-print '# author: Bdale Garbee'
-print '# email: bdale@gag.com'
-print '# dist-license: GPL 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "sma-edge" "" "" 0 0 0 0 0 0 0x0]'
-print "("
+print('Element[0x0 "sma-edge" "" "" 0 0 0 0 0 0 0x0]')
+print("(")
-print ' Pad[',\
+print(' Pad[',\
(-PinSpacing - GndWidth/2), \
(GndWidth/2), \
(-PinSpacing - GndWidth/2), \
(GndWidth), \
0, \
(GndWidth + 600), \
- '"pin2"', '"2"', '"square,nopaste"]'
-print ' Pad[',\
+ '"pin2"', '"2"', '"square,nopaste"]')
+print(' Pad[',\
(-PinSpacing - GndWidth/2), \
(GndWidth/2), \
(-PinSpacing - GndWidth/2), \
(GndWidth), \
0, \
(GndWidth + 600), \
- '"pin2"', '"2"', '"onsolder,square,nopaste"]'
-print ' Pad[',\
+ '"pin2"', '"2"', '"onsolder,square,nopaste"]')
+print(' Pad[',\
0, \
(PinWidth/2), \
0, \
(PinWidth), \
0, \
(PinWidth + 600), \
- '"pin1"', '"1"', '"square,nopaste"]'
-print ' Pad[',\
+ '"pin1"', '"1"', '"square,nopaste"]')
+print(' Pad[',\
(PinSpacing + GndWidth/2), \
(GndWidth/2), \
(PinSpacing + GndWidth/2), \
(GndWidth), \
0, \
(GndWidth + 600), \
- '"pin2"', '"2"', '"square,nopaste"]'
-print ' Pad[',\
+ '"pin2"', '"2"', '"square,nopaste"]')
+print(' Pad[',\
(PinSpacing + GndWidth/2), \
(GndWidth/2), \
(PinSpacing + GndWidth/2), \
(GndWidth), \
0, \
(GndWidth + 600), \
- '"pin2"', '"2"', '"onsolder,square,nopaste"]'
+ '"pin2"', '"2"', '"onsolder,square,nopaste"]')
-print ")"
+print(")")
nickle $*.5c -o $@
.py.fp:
- python2 $*.py > $@
+ python3 $*.py > $@
all: $(FOOTPRINTS) .gitignore
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2010 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for C&K PN22SJNA03QE DPDT switch
#
-# dimensions in mm from footprint drawing at DigiKey
+# dimensions in mm from footprint(drawing at DigiKey
BodyWidth = 12 # body outline
BodyHeight = 6.8
PinSpace = 2.49
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 2')
+print('# use-license: unlimited')
-print 'Element[0x0 "PN22SJNA03QE" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print ' Pin[',\
+print('Element[0x0 "PN22SJNA03QE" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print(' Pin[',\
mm2mils100(-PinSpace), \
mm2mils100(-PinSpace/2), \
mm2mils100(2), \
mm2mils100(1), \
mm2mils100(2.2), \
mm2mils100(PinDiam), \
- '"pin1" "1" 0x0101]'
+ '"pin1" "1" 0x0101]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(0), \
mm2mils100(-PinSpace/2), \
mm2mils100(2), \
mm2mils100(1), \
mm2mils100(2.2), \
mm2mils100(PinDiam), \
- '"pin2" "2" 0x0001]'
+ '"pin2" "2" 0x0001]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(PinSpace), \
mm2mils100(-PinSpace/2), \
mm2mils100(2), \
mm2mils100(1), \
mm2mils100(2.2), \
mm2mils100(PinDiam), \
- '"pin3" "3" 0x0001]'
+ '"pin3" "3" 0x0001]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(PinSpace), \
mm2mils100(PinSpace/2), \
mm2mils100(2), \
mm2mils100(1), \
mm2mils100(2.2), \
mm2mils100(PinDiam), \
- '"pin6" "6" 0x0001]'
+ '"pin6" "6" 0x0001]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(0), \
mm2mils100(PinSpace/2), \
mm2mils100(2), \
mm2mils100(1), \
mm2mils100(2.2), \
mm2mils100(PinDiam), \
- '"pin5" "5" 0x0001]'
+ '"pin5" "5" 0x0001]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(-PinSpace), \
mm2mils100(PinSpace/2), \
mm2mils100(2), \
mm2mils100(1), \
mm2mils100(2.2), \
mm2mils100(PinDiam), \
- '"pin4" "4" 0x0001]'
+ '"pin4" "4" 0x0001]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(-MntWidth/2), \
mm2mils100(MntHeight/2), \
mm2mils100(2), \
mm2mils100(1), \
mm2mils100(2.2), \
mm2mils100(MntDiam), \
- '"pin7" "G" 0x0001]'
+ '"pin7" "G" 0x0001]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(MntWidth/2), \
mm2mils100(-MntHeight/2), \
mm2mils100(2), \
mm2mils100(1), \
mm2mils100(2.2), \
mm2mils100(MntDiam), \
- '"pin8" "G" 0x0001]'
+ '"pin8" "G" 0x0001]')
-print ' ElementLine[',\
+print(' ElementLine[',\
-mm2mils100(BodyWidth/2), \
-mm2mils100(BodyHeight/2), \
mm2mils100(BodyWidth/2), \
-mm2mils100(BodyHeight/2), \
500, \
- ']'
-print ' ElementLine[',\
+ ']')
+print(' ElementLine[',\
-mm2mils100(BodyWidth/2), \
-mm2mils100(BodyHeight/2), \
-mm2mils100(BodyWidth/2), \
mm2mils100(BodyHeight/2), \
500, \
- ']'
-print ' ElementLine[',\
+ ']')
+print(' ElementLine[',\
-mm2mils100(BodyWidth/2), \
mm2mils100(BodyHeight/2), \
mm2mils100(BodyWidth/2), \
mm2mils100(BodyHeight/2), \
500, \
- ']'
-print ' ElementLine[',\
+ ']')
+print(' ElementLine[',\
mm2mils100(BodyWidth/2), \
mm2mils100(BodyHeight/2), \
mm2mils100(BodyWidth/2), \
-mm2mils100(BodyHeight/2), \
500, \
- ']'
+ ']')
-print ")"
+print(")")
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 3')
-print ('# use-license: unlimited')
-
-print ('Element[0x0 "SK-12F17" "" "" 0 0 0 0 0 100 0x0]')
-print ("(")
-print ' Pin[',\
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
+
+print('Element[0x0 "SK-12F17" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print(' Pin[',\
mm2mils100(-PinSpacing), \
0, \
mm2mils100(Thickness), \
mm2mils100(Clearance), \
mm2mils100(Mask), \
mm2mils100(Drill), \
- '"pin1" "1" 0x0101]'
+ '"pin1" "1" 0x0101]')
-print ' Pin[',\
+print(' Pin[',\
0, \
0, \
mm2mils100(Thickness), \
mm2mils100(Clearance), \
mm2mils100(Mask), \
mm2mils100(Drill), \
- '"pin2" "2" 0x0001]'
+ '"pin2" "2" 0x0001]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(PinSpacing), \
0, \
mm2mils100(Thickness), \
mm2mils100(Clearance), \
mm2mils100(Mask), \
mm2mils100(Drill), \
- '"pin3" "3" 0x0001]'
+ '"pin3" "3" 0x0001]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(MntX/2), \
mm2mils100(MntY/2), \
mm2mils100(Thickness), \
mm2mils100(Clearance), \
mm2mils100(Mask), \
mm2mils100(Drill), \
- '"GND" "4" 0x0001]'
+ '"GND" "4" 0x0001]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(MntX/2), \
mm2mils100(-MntY/2), \
mm2mils100(Thickness), \
mm2mils100(Clearance), \
mm2mils100(Mask), \
mm2mils100(Drill), \
- '"GND" "4" 0x0001]'
+ '"GND" "4" 0x0001]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(-MntX/2), \
mm2mils100(MntY/2), \
mm2mils100(Thickness), \
mm2mils100(Clearance), \
mm2mils100(Mask), \
mm2mils100(Drill), \
- '"GND" "4" 0x0001]'
+ '"GND" "4" 0x0001]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(-MntX/2), \
mm2mils100(-MntY/2), \
mm2mils100(Thickness), \
mm2mils100(Clearance), \
mm2mils100(Mask), \
mm2mils100(Drill), \
- '"GND" "4" 0x0001]'
+ '"GND" "4" 0x0001]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodyX/2), \
mm2mils100(-BodyY/2), \
mm2mils100(-BodyX/2), \
mm2mils100( BodyY/2), \
- SilkNative, ']'
+ SilkNative, ']')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodyX/2), \
mm2mils100(-BodyY/2), \
mm2mils100(BodyX/2), \
mm2mils100(- BodyY/2), \
- SilkNative, ']'
+ SilkNative, ']')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(BodyX/2), \
mm2mils100(-BodyY/2), \
mm2mils100(BodyX/2), \
mm2mils100( BodyY/2), \
- SilkNative, ']'
+ SilkNative, ']')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-BodyX/2), \
mm2mils100(BodyY/2), \
mm2mils100(BodyX/2), \
mm2mils100(BodyY/2), \
- SilkNative, ']'
+ SilkNative, ']')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-ActuatorX/2), \
mm2mils100(BodyY/2 + ActuatorY), \
mm2mils100(ActuatorX/2), \
mm2mils100(BodyY/2 + ActuatorY), \
- SilkNative, ']'
+ SilkNative, ']')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-ActuatorX/2), \
mm2mils100(BodyY/2), \
mm2mils100(-ActuatorX/2), \
mm2mils100(BodyY/2 + ActuatorY), \
- SilkNative, ']'
+ SilkNative, ']')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(ActuatorX/2), \
mm2mils100(BodyY/2), \
mm2mils100(ActuatorX/2), \
mm2mils100(BodyY/2 + ActuatorY), \
- SilkNative, ']'
+ SilkNative, ']')
-print (")")
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2014 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for
sys.stderr.write('Must be no more than 25 pins\n')
sys.exit(1)
-print '# author: Bdale Garbee'
-print '# email: bdale@gag.com'
-print '# dist-license: GPL 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 2')
+print('# use-license: unlimited')
-print 'Element[0x0 "284512-%i"' % pins,'"" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "284512-%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'
+ Flags = '0x0101'
else:
- Flags = '0x0001'
- print ' Pin[', \
+ 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, ']'
+ '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']')
BoxWidth = (BoxEnd * 2) + ((pins - 1) * PinSpacing);
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(BoxHeight), \
- LineWidth, ']'
+ LineWidth, ']')
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(0), \
mm2mils100(BoxHeight), \
mm2mils100(BoxWidth), \
mm2mils100(BoxHeight), \
- LineWidth, ']'
+ LineWidth, ']')
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(BoxWidth), \
mm2mils100(BoxHeight), \
mm2mils100(BoxWidth), \
mm2mils100(0), \
- LineWidth, ']'
+ LineWidth, ']')
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(BoxWidth), \
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(0), \
- LineWidth, ']'
+ LineWidth, ']')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2017 by Bdale Garbee <bdale@gag.com>. GPLv2+
#
# Program to emit PCB footprint for
# 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 )
+ 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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 2+')
+print('# use-license: unlimited')
-print 'Element[0x0 "AMP BNC" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "AMP BNC" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
-print ' Pin[', \
+print(' Pin[', \
0, \
0, \
mm2mils100(PinDiam+ThicknessDelta), \
mm2mils100(Clearance), \
mm2mils100(PinDiam+ThicknessDelta+MaskDelta), \
mm2mils100(PinDiam), \
- '"1"', \
- '"1"', \
- "0x0001", ']'
+ '"1"', \
+ '"1"', \
+ "0x0001", ']')
-print ' Pin[', \
+print(' Pin[', \
0, \
mm2mils100(-PinSpacing), \
mm2mils100(PinDiam+ThicknessDelta), \
mm2mils100(Clearance), \
mm2mils100(PinDiam+ThicknessDelta+MaskDelta), \
mm2mils100(PinDiam), \
- '"GND"', \
- '"2"', \
- "0x0001", ']'
+ '"GND"', \
+ '"2"', \
+ "0x0001", ']')
-print ' Pin[', \
+print(' Pin[', \
mm2mils100(MntSpacing/2), \
mm2mils100(MntSpacing/2), \
mm2mils100(MntDiam+ThicknessDelta), \
mm2mils100(Clearance), \
mm2mils100(MntDiam+ThicknessDelta+MaskDelta), \
mm2mils100(MntDiam), \
- '"GND"', \
- '"2"', \
- "0x0001", ']'
+ '"GND"', \
+ '"2"', \
+ "0x0001", ']')
-print ' Pin[', \
+print(' Pin[', \
mm2mils100(-MntSpacing/2), \
mm2mils100(MntSpacing/2), \
mm2mils100(MntDiam+ThicknessDelta), \
mm2mils100(Clearance), \
mm2mils100(MntDiam+ThicknessDelta+MaskDelta), \
mm2mils100(MntDiam), \
- '"GND"', \
- '"2"', \
- "0x0001", ']'
+ '"GND"', \
+ '"2"', \
+ "0x0001", ']')
-print ' Pin[', \
+print(' Pin[', \
mm2mils100(MntSpacing/2), \
mm2mils100(-MntSpacing/2), \
mm2mils100(MntDiam+ThicknessDelta), \
mm2mils100(Clearance), \
mm2mils100(MntDiam+ThicknessDelta+MaskDelta), \
mm2mils100(MntDiam), \
- '"GND"', \
- '"2"', \
- "0x0001", ']'
+ '"GND"', \
+ '"2"', \
+ "0x0001", ']')
-print ' Pin[', \
+print(' Pin[', \
mm2mils100(-MntSpacing/2), \
mm2mils100(-MntSpacing/2), \
mm2mils100(MntDiam+ThicknessDelta), \
mm2mils100(Clearance), \
mm2mils100(MntDiam+ThicknessDelta+MaskDelta), \
mm2mils100(MntDiam), \
- '"GND"', \
- '"2"', \
- "0x0001", ']'
+ '"GND"', \
+ '"2"', \
+ "0x0001", ']')
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(MntSpacing/2+Mnt2Edge-SilkBox), \
mm2mils100(SilkBox/2), \
mm2mils100(MntSpacing/2+Mnt2Edge), \
mm2mils100(SilkBox/2), \
- LineWidth, ']'
+ LineWidth, ']')
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(MntSpacing/2+Mnt2Edge-SilkBox), \
mm2mils100(-SilkBox/2), \
mm2mils100(MntSpacing/2+Mnt2Edge), \
mm2mils100(-SilkBox/2), \
- LineWidth, ']'
+ LineWidth, ']')
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(MntSpacing/2+Mnt2Edge-SilkBox), \
mm2mils100(SilkBox/2), \
mm2mils100(MntSpacing/2+Mnt2Edge-SilkBox), \
mm2mils100(-SilkBox/2), \
- LineWidth, ']'
+ LineWidth, ']')
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(MntSpacing/2+Mnt2Edge), \
mm2mils100(SilkBox/2), \
mm2mils100(MntSpacing/2+Mnt2Edge), \
mm2mils100(-SilkBox/2), \
- LineWidth, ']'
+ LineWidth, ']')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2007 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 2')
+print('# use-license: unlimited')
-print 'Element[0x0 "282834-%i"' % pins,'"" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "282834-%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'
+ Flags = '0x0101'
else:
- Flags = '0x0001'
- print ' Pin[', \
+ 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, ']'
+ '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']')
BoxWidth = (BoxEnd * 2) + ((pins - 1) * PinSpacing);
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(BoxHeight), \
- LineWidth, ']'
+ LineWidth, ']')
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(0), \
mm2mils100(BoxHeight), \
mm2mils100(BoxWidth), \
mm2mils100(BoxHeight), \
- LineWidth, ']'
+ LineWidth, ']')
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(BoxWidth), \
mm2mils100(BoxHeight), \
mm2mils100(BoxWidth), \
mm2mils100(0), \
- LineWidth, ']'
+ LineWidth, ']')
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(BoxWidth), \
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(0), \
- LineWidth, ']'
+ LineWidth, ']')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2015 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for
PadWidth = 1.50
PadHeight = 3.00
PadSpacing = 1.27
-RowGap = 1.50 # space between rows
+RowGap = 1.50 # space between rows
-Clearance = 0.006 # in mils
+Clearance = 0.006 # in mils
BoxY = 5.2
BoxXbase = 4.55
# 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 )
+ 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)
+ sys.stderr.write('Must be at least 4 pins\n')
+ sys.exit(1)
if pins > 20:
- sys.stderr.write('Must be no more than 20 pins\n')
- sys.exit(1)
+ sys.stderr.write('Must be no more than 20 pins\n')
+ sys.exit(1)
if len(sys.argv) > 2:
if sys.argv[2] == "latch":
- BoxXbase = 7.15
+ BoxXbase = 7.15
BoxXOffset = -((pins - 1) * PadSpacing)/2
-print '# author: Bdale Garbee'
-print '# email: bdale@gag.com'
-print '# dist-license: GPL 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 2')
+print('# use-license: unlimited')
-print 'Element[0x0 "MicroMatch%i"' % pins,'"" "" 0 0 0 0 0 100 0x0]'
-print "("
-for col in range ((pins+1)/2):
+print('Element[0x0 "MicroMatch%i"' % pins,'"" "" 0 0 0 0 0 100 0x0]')
+print("(")
+for col in range (int((pins+1)/2)):
for row in range (2):
- if row == 1:
- origin= (RowGap + PadHeight)/2
- else:
- origin= -(RowGap + PadHeight)/2
+ if row == 1:
+ origin= (RowGap + PadHeight)/2
+ else:
+ origin= -(RowGap + PadHeight)/2
pinnum = (col * 2) + row + 1
- Flags = '"square,nopaste"'
-
- print ' Pad[', \
- mm2mils100((pinnum-1)*PadSpacing + BoxXOffset), \
- mm2mils100(origin + PadHeight/2 - PadWidth/2), \
- mm2mils100((pinnum-1)*PadSpacing + BoxXOffset), \
- mm2mils100(origin - PadHeight/2 + PadWidth/2), \
- mm2mils100(PadWidth), \
- 0, \
- mm2mils100(PadWidth)+Clearance*2, \
- '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
-
+ Flags = '"square,nopaste"'
+
+ print(' Pad[', \
+ mm2mils100((pinnum-1)*PadSpacing + BoxXOffset), \
+ mm2mils100(origin + PadHeight/2 - PadWidth/2), \
+ mm2mils100((pinnum-1)*PadSpacing + BoxXOffset), \
+ mm2mils100(origin - PadHeight/2 + PadWidth/2), \
+ mm2mils100(PadWidth), \
+ 0, \
+ mm2mils100(PadWidth)+Clearance*2, \
+ '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']')
+
BoxX = BoxXbase + pins/2 * BoxXstep
BoxX1 = -BoxX/2
BoxX2 = BoxX/2
BoxY1 = -BoxY/2
BoxY2 = BoxY/2
-print ' ElementLine[', \
- mm2mils100(BoxX1), \
- mm2mils100(BoxY1), \
- mm2mils100(BoxX1), \
- mm2mils100(BoxY2), \
- LineWidth, ']'
-
-print ' ElementLine[', \
- mm2mils100(BoxX1), \
- mm2mils100(BoxY2), \
- mm2mils100(BoxX2), \
- mm2mils100(BoxY2), \
- LineWidth, ']'
-
-print ' ElementLine[', \
- mm2mils100(BoxX2), \
- mm2mils100(BoxY2), \
- mm2mils100(BoxX2), \
- mm2mils100(BoxY1), \
- LineWidth, ']'
-
-print ' ElementLine[', \
- mm2mils100(BoxX2), \
- mm2mils100(BoxY1), \
- mm2mils100(BoxX1), \
- mm2mils100(BoxY1), \
- LineWidth, ']'
+print(' ElementLine[', \
+ mm2mils100(BoxX1), \
+ mm2mils100(BoxY1), \
+ mm2mils100(BoxX1), \
+ mm2mils100(BoxY2), \
+ LineWidth, ']')
+
+print(' ElementLine[', \
+ mm2mils100(BoxX1), \
+ mm2mils100(BoxY2), \
+ mm2mils100(BoxX2), \
+ mm2mils100(BoxY2), \
+ LineWidth, ']')
+
+print(' ElementLine[', \
+ mm2mils100(BoxX2), \
+ mm2mils100(BoxY2), \
+ mm2mils100(BoxX2), \
+ mm2mils100(BoxY1), \
+ LineWidth, ']')
+
+print(' ElementLine[', \
+ mm2mils100(BoxX2), \
+ mm2mils100(BoxY1), \
+ mm2mils100(BoxX1), \
+ mm2mils100(BoxY1), \
+ LineWidth, ']')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2009 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for
if len(sys.argv) > 2:
if sys.argv[2] == "latch":
- BoxXbase = 5.89
- if pins == 24:
- sys.stderr.write('There is no 24 pin latching version!\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 "MicroMatch%i"' % pins,'"" "" 0 0 0 0 0 100 0x0]'
-print "("
-for col in range ((pins+1)/2):
+ BoxXbase = 5.89
+ if pins == 24:
+ sys.stderr.write('There is no 24 pin latching version!\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 "MicroMatch%i"' % pins,'"" "" 0 0 0 0 0 100 0x0]')
+print("(")
+for col in range (int((pins+1)/2)):
for row in range (2):
- if row == 1:
- spacing=0
- else:
- spacing=RowSpacing
+ if row == 1:
+ spacing=0
+ else:
+ spacing=RowSpacing
pinnum = (col * 2) + row + 1
if pinnum == 1:
- Flags = '0x0101'
+ Flags = '0x0101'
else:
- Flags = '0x0001'
- print ' Pin[', \
+ Flags = '0x0001'
+ print(' Pin[', \
mm2mils100((pinnum-1)*PinSpacing), \
mm2mils100(spacing), \
mm2mils100(PinDiam)+(MinAnnular*2), \
(MinClearance*2), \
mm2mils100(PinDiam)+(MinAnnular*2)+(MaskDelta*2), \
mm2mils100(PinDiam), \
- '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
+ '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']')
# add a hole for the index pin. plated to save non-plated-hole extra fab cost.
-print ' Pin[', \
+print(' Pin[', \
mm2mils100(-MntX), \
mm2mils100(RowSpacing-MntY), \
mm2mils100(MntDiam)+(MinAnnular*2), \
(MinClearance*2), \
mm2mils100(MntDiam)+(MinAnnular*2)+(MaskDelta*2), \
mm2mils100(MntDiam), \
- '"mnt" "0"', '0x0001', ']'
+ '"mnt" "0"', '0x0001', ']')
BoxX = (pins - 1) * PinSpacing + BoxXbase
BoxX1 = -(BoxXbase/2)
BoxY1 = -(BoxY - RowSpacing)/2
BoxY2 = BoxY1 + BoxY
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(BoxX1), \
mm2mils100(BoxY1), \
mm2mils100(BoxX1), \
mm2mils100(BoxY2), \
- LineWidth, ']'
+ LineWidth, ']')
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(BoxX1), \
mm2mils100(BoxY2), \
mm2mils100(BoxX2), \
mm2mils100(BoxY2), \
- LineWidth, ']'
+ LineWidth, ']')
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(BoxX2), \
mm2mils100(BoxY2), \
mm2mils100(BoxX2), \
mm2mils100(BoxY1), \
- LineWidth, ']'
+ LineWidth, ']')
-print ' ElementLine[', \
+print(' ElementLine[', \
mm2mils100(BoxX2), \
mm2mils100(BoxY1), \
mm2mils100(BoxX1), \
mm2mils100(BoxY1), \
- LineWidth, ']'
+ LineWidth, ']')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2011 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for a 16 pin
#
# dimensions in mm from C_215079_v.pdf datasheet
-BUPinDiam = 1.1 # screw terminals
-MMPinDiam = 0.8 # micromatch
+BUPinDiam = 1.1 # screw terminals
+MMPinDiam = 0.8 # micromatch
PinSpacing = 1.27
RowSpacing = 2.54
# 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 )
+ return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
pins = 17
BoxXbase = 5.89
BoxEnd = 1.5
-print '# author: Bdale Garbee'
-print '# email: bdale@gag.com'
-print '# dist-license: GPL 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 2')
+print('# use-license: unlimited')
-print 'Element[0x0 "tphybrid" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-for col in range ((pins+1)/2):
+print('Element[0x0 "tphybrid" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+for col in range (int((pins+1)/2)):
for row in range (2):
- if row == 1:
- spacing=0
- else:
- spacing=RowSpacing
+ if row == 1:
+ spacing=0
+ else:
+ spacing=RowSpacing
pinnum = (col * 2) + row + 1
- if pinnum != 18:
+ if pinnum != 18:
if pinnum == 1:
- Flags = '0x0101'
+ Flags = '0x0101'
else:
- Flags = '0x0001'
- if pinnum % 2 == 0:
- PinDiam = MMPinDiam
- else:
- PinDiam = BUPinDiam
- print ' Pin[', \
- mm2mils100((pinnum-1)*PinSpacing), \
- mm2mils100(spacing), \
- mm2mils100(PinDiam + 0.70), \
- 1200, \
- mm2mils100(PinDiam + 0.86), \
- mm2mils100(PinDiam), \
- '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']'
-
-print ' Pin[', \
+ Flags = '0x0001'
+ if pinnum % 2 == 0:
+ PinDiam = MMPinDiam
+ else:
+ PinDiam = BUPinDiam
+ print(' Pin[', \
+ mm2mils100((pinnum-1)*PinSpacing), \
+ mm2mils100(spacing), \
+ mm2mils100(PinDiam + 0.70), \
+ 1200, \
+ mm2mils100(PinDiam + 0.86), \
+ mm2mils100(PinDiam), \
+ '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']')
+
+print(' Pin[', \
mm2mils100((-2)*PinSpacing), \
mm2mils100(RowSpacing), \
mm2mils100(PinDiam + 0.32), \
1200, \
mm2mils100(PinDiam + 0.48), \
mm2mils100(PinDiam), \
- '"pin18"' , '"18"', Flags, ']'
+ '"pin18"' , '"18"', Flags, ']')
# add a hole for the index pin. plated to save non-plated-hole extra fab cost.
-print ' Pin[', \
+print(' Pin[', \
mm2mils100(-MntX), \
mm2mils100(RowSpacing-MntY), \
mm2mils100(MntDiam)+1400, \
1400, \
mm2mils100(MntDiam)+1400+600, \
mm2mils100(MntDiam), \
- '"mnt" "0"', '0x0001', ']'
+ '"mnt" "0"', '0x0001', ']')
# pins-2 accounts for the extra pin used by screw terminal overlay
BoxX = (pins - 2) * PinSpacing + BoxXbase
BoxY1 = -(BoxY - RowSpacing)/2
BoxY2 = BoxY1 + BoxY
-print ' ElementLine[', \
- mm2mils100(BoxX1), \
- mm2mils100(BoxY1), \
- mm2mils100(BoxX1), \
- mm2mils100(BoxY2), \
- LineWidth, ']'
-
-print ' ElementLine[', \
- mm2mils100(BoxX1), \
- mm2mils100(BoxY2), \
- mm2mils100(BoxX2), \
- mm2mils100(BoxY2), \
- LineWidth, ']'
-
-print ' ElementLine[', \
- mm2mils100(BoxX2), \
- mm2mils100(BoxY2), \
- mm2mils100(BoxX2), \
- mm2mils100(BoxY1), \
- LineWidth, ']'
-
-print ' ElementLine[', \
- mm2mils100(BoxX2), \
- mm2mils100(BoxY1), \
- mm2mils100(BoxX1), \
- mm2mils100(BoxY1), \
- LineWidth, ']'
+print(' ElementLine[', \
+ mm2mils100(BoxX1), \
+ mm2mils100(BoxY1), \
+ mm2mils100(BoxX1), \
+ mm2mils100(BoxY2), \
+ LineWidth, ']')
+
+print(' ElementLine[', \
+ mm2mils100(BoxX1), \
+ mm2mils100(BoxY2), \
+ mm2mils100(BoxX2), \
+ mm2mils100(BoxY2), \
+ LineWidth, ']')
+
+print(' ElementLine[', \
+ mm2mils100(BoxX2), \
+ mm2mils100(BoxY2), \
+ mm2mils100(BoxX2), \
+ mm2mils100(BoxY1), \
+ LineWidth, ']')
+
+print(' ElementLine[', \
+ mm2mils100(BoxX2), \
+ mm2mils100(BoxY1), \
+ mm2mils100(BoxX1), \
+ mm2mils100(BoxY1), \
+ LineWidth, ']')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2011 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for QFN-20 package used by the CC115L
def mm2mils100( mm ):
return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
-print '# author: Keith Packard'
-print '# email: keithp@keithp.com'
-print '# dist-license: GPL 2'
-print '# use-license: unlimited'
+print('# author: Keith Packard')
+print('# email: keithp@keithp.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "qfn-20" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "qfn-20" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
# pad under the chip, must be grounded
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(GndSquare), \
mm2mils100(PinClearance), \
mm2mils100(PinResist), \
- '"pin21" "21" "square,nopaste"]'
+ '"pin21" "21" "square,nopaste"]')
# vias in the ground pad under the chip
for viarow in range (-1,1):
for viacol in range (-1,1):
- print ' Pin[',\
+ print(' Pin[',\
mm2mils100(2 * viacol * CoreSquare / 3 + CoreSquare/3), \
mm2mils100(2 * viarow * CoreSquare / 3 + CoreSquare/3), \
2900, \
2500, \
0, \
1500, \
- '"pin21" "21" 0x0002]'
+ '"pin21" "21" 0x0002]')
# break pad under chip into a grid to control the resist and paste masks
for viacol in range (-1, 2):
if (viarow in (-1, 1)) and (viacol in (-1, 1)):
# copper sub-square with resist over vias
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(viacol * CoreSquare / blocks), \
mm2mils100(viarow * CoreSquare / blocks), \
mm2mils100(viacol * CoreSquare / blocks), \
mm2mils100((CoreSquare)/blocks), \
0, \
0, \
- '"pin21" "21" "square,nopaste"]'
+ '"pin21" "21" "square,nopaste"]')
else:
# copper sub-square without resist
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(viacol * CoreSquare / blocks), \
mm2mils100(viarow * CoreSquare / blocks), \
mm2mils100(viacol * CoreSquare / blocks), \
mm2mils100((CoreSquare)/blocks), \
0, \
mm2mils100((CoreSquare)/blocks), \
- '"pin21" "21" "square,nopaste"]'
+ '"pin21" "21" "square,nopaste"]')
# copper spot to control paste mask generation
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(viacol * CoreSquare / blocks), \
mm2mils100(viarow * CoreSquare / blocks), \
mm2mils100(viacol * CoreSquare / blocks), \
1500, \
0, \
mm2mils100((CoreSquare)/blocks), \
- '"pin21" "21" "square"]'
+ '"pin21" "21" "square"]')
# pins
for pin in range (1,6):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((-3 + pin) * PinSpacing), \
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100((-3 + pin) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinClearance), \
mm2mils100(PinResist), \
- '"pin%i"' % (16-pin), '"%i"' % (16-pin), '0x0000]'
+ '"pin%i"' % (16-pin), '"%i"' % (16-pin), '0x0000]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((-3 + pin) * PinSpacing), \
mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
mm2mils100((-3 + pin) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinClearance), \
mm2mils100(PinResist), \
- '"pin%i"' % pin, '"%i"' % pin, '0x0000]'
+ '"pin%i"' % pin, '"%i"' % pin, '0x0000]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
mm2mils100((-3 + pin) * PinSpacing), \
mm2mils100(Overall/2 - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinClearance), \
mm2mils100(PinResist), \
- '"pin%i"' % (11-pin), '"%i"' % (11-pin), '0x0000]'
+ '"pin%i"' % (11-pin), '"%i"' % (11-pin), '0x0000]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100((-3 + pin) * PinSpacing), \
mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinClearance), \
mm2mils100(PinResist), \
- '"pin%i"' % (15+pin), '"%i"' % (15+pin), '0x0000]'
+ '"pin%i"' % (15+pin), '"%i"' % (15+pin), '0x0000]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100(-2.0), \
mm2mils100(2.0), \
- '500 500 0 360 1000 ]'
-print ")"
+ '500 500 0 360 1000 ]')
+print(")")
print( '# author: Bdale Garbee')
print( '# email: bdale@gag.com')
-print( '# dist-license: GPL 2')
+print( '# dist-license: GPL 3')
print( '# use-license: unlimited')
print( 'Element[0x0 "TQFP44" "" "" 0 0 0 0 0 100 0x0]')
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2014 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for Keystone model 931 USB A male connector,
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "usbAmale" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print ' Pad[',\
+print('Element[0x0 "usbAmale" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print(' Pad[',\
mm2mils100(Pad14/2), \
mm2mils100(PadRowOffset - PadHeight / 2 + PadWidth/2), \
mm2mils100(Pad14/2), \
mm2mils100(PadWidth), \
mm2mils100(0), \
mm2mils100(PadWidth)+600, \
- '"pin4" "4" 0x0100]'
+ '"pin4" "4" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(-Pad14/2), \
mm2mils100(PadRowOffset - PadHeight / 2 + PadWidth/2), \
mm2mils100(-Pad14/2), \
mm2mils100(PadWidth), \
mm2mils100(0), \
mm2mils100(PadWidth)+600, \
- '"pin1" "1" 0x0100]'
+ '"pin1" "1" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(Pad23/2), \
mm2mils100(PadRowOffset - PadHeight / 2 + PadWidth/2), \
mm2mils100(Pad23/2), \
mm2mils100(PadWidth), \
mm2mils100(0), \
mm2mils100(PadWidth)+600, \
- '"pin3" "3" 0x0100]'
+ '"pin3" "3" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(-Pad23/2), \
mm2mils100(PadRowOffset - PadHeight / 2 + PadWidth/2), \
mm2mils100(-Pad23/2), \
mm2mils100(PadWidth), \
mm2mils100(0), \
mm2mils100(PadWidth)+600, \
- '"pin2" "2" 0x0100]'
+ '"pin2" "2" 0x0100]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(-PinSpacing/2), \
mm2mils100(0), \
mm2mils100(PinDiam+0.3556), \
mm2mils100(0.31), \
mm2mils100(PinDiam+0.66), \
mm2mils100(PinDiam), \
- '"mnt" "G" 0x0000]'
+ '"mnt" "G" 0x0000]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(PinSpacing/2), \
mm2mils100(0), \
mm2mils100(PinDiam+0.3556), \
mm2mils100(0.31), \
mm2mils100(PinDiam+0.66), \
mm2mils100(PinDiam), \
- '"mnt" "G" 0x0000]'
+ '"mnt" "G" 0x0000]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(-TabSpacing/2 + PadWidth/2 + TabMinor/2), \
mm2mils100(-TabDiam/2), \
mm2mils100(-TabSpacing/2 + PadWidth/2 + TabMinor/2), \
mm2mils100(PadWidth), \
mm2mils100(0.31), \
mm2mils100(PadWidth + 0.15), \
- '"mnt" "G" "onsolder,nopaste"]'
+ '"mnt" "G" "onsolder,nopaste"]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(TabSpacing/2 - PadWidth/2 - TabMinor/2), \
mm2mils100(-TabDiam/2), \
mm2mils100(TabSpacing/2 - PadWidth/2 - TabMinor/2), \
mm2mils100(PadWidth), \
mm2mils100(0.31), \
mm2mils100(PadWidth + 0.15), \
- '"mnt" "G" "onsolder,nopaste"]'
+ '"mnt" "G" "onsolder,nopaste"]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-TabSpacing/2), \
mm2mils100(-EdgeOffset)+500, \
mm2mils100(TabSpacing/2), \
mm2mils100(-EdgeOffset)+500, \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-TabSpacing/2 + TabMinor/2), \
mm2mils100(-TabDiam/2), \
mm2mils100(-TabSpacing/2 + TabMinor/2), \
mm2mils100(TabDiam/2), \
- '1000 ]'
+ '1000 ]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(TabSpacing/2 - TabMinor/2), \
mm2mils100(-TabDiam/2), \
mm2mils100(TabSpacing/2 - TabMinor/2), \
mm2mils100(TabDiam/2), \
- '1000 ]'
+ '1000 ]')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2014 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for Keystone model 931 USB A male connector,
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('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "usbAmale" "" "" 0 0 0 0 0 100 0x0]'
-print "("
-print ' Pad[',\
+print('Element[0x0 "usbAmale" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
+print(' Pad[',\
mm2mils100(Pad14/2), \
mm2mils100(PadRowOffset - PadHeight / 2 + PadWidth/2), \
mm2mils100(Pad14/2), \
mm2mils100(PadWidth), \
mm2mils100(0), \
mm2mils100(PadWidth)+600, \
- '"pin4" "4" 0x0100]'
+ '"pin4" "4" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(-Pad14/2), \
mm2mils100(PadRowOffset - PadHeight / 2 + PadWidth/2), \
mm2mils100(-Pad14/2), \
mm2mils100(PadWidth), \
mm2mils100(0), \
mm2mils100(PadWidth)+600, \
- '"pin1" "1" 0x0100]'
+ '"pin1" "1" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(Pad23/2), \
mm2mils100(PadRowOffset - PadHeight / 2 + PadWidth/2), \
mm2mils100(Pad23/2), \
mm2mils100(PadWidth), \
mm2mils100(0), \
mm2mils100(PadWidth)+600, \
- '"pin3" "3" 0x0100]'
+ '"pin3" "3" 0x0100]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(-Pad23/2), \
mm2mils100(PadRowOffset - PadHeight / 2 + PadWidth/2), \
mm2mils100(-Pad23/2), \
mm2mils100(PadWidth), \
mm2mils100(0), \
mm2mils100(PadWidth)+600, \
- '"pin2" "2" 0x0100]'
+ '"pin2" "2" 0x0100]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(-PinSpacing/2), \
mm2mils100(0), \
mm2mils100(PinDiam+0.3556), \
mm2mils100(0.31), \
mm2mils100(PinDiam+0.66), \
mm2mils100(PinDiam), \
- '"mnt" "G" 0x0000]'
+ '"mnt" "G" 0x0000]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(PinSpacing/2), \
mm2mils100(0), \
mm2mils100(PinDiam+0.3556), \
mm2mils100(0.31), \
mm2mils100(PinDiam+0.66), \
mm2mils100(PinDiam), \
- '"mnt" "G" 0x0000]'
+ '"mnt" "G" 0x0000]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(-TabSpacing/2), \
mm2mils100(-(TabLen-TabDiam)/2), \
mm2mils100(TabDiam+TabMetal), \
mm2mils100(0.31), \
mm2mils100(TabDiam+0.66), \
mm2mils100(TabDiam), \
- '"mnt" "G" 0x0000]'
+ '"mnt" "G" 0x0000]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(-TabSpacing/2), \
mm2mils100((TabLen-TabDiam)/2), \
mm2mils100(TabDiam+TabMetal), \
mm2mils100(0.31), \
mm2mils100(TabDiam+0.66), \
mm2mils100(TabDiam), \
- '"mnt" "G" 0x0000]'
+ '"mnt" "G" 0x0000]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(-TabSpacing/2), \
mm2mils100(-(TabLen - TabDiam)/2), \
mm2mils100(-TabSpacing/2), \
mm2mils100(TabDiam + TabMetal), \
mm2mils100(0.31), \
mm2mils100(PadWidth)+600, \
- '"mnt" "G" ""]'
+ '"mnt" "G" ""]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(-TabSpacing/2), \
mm2mils100(-(TabLen - TabDiam)/2), \
mm2mils100(-TabSpacing/2), \
mm2mils100(TabDiam + TabMetal), \
mm2mils100(0.31), \
mm2mils100(PadWidth)+600, \
- '"mnt" "G" "onsolder"]'
+ '"mnt" "G" "onsolder"]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(TabSpacing/2), \
mm2mils100(-(TabLen-TabDiam)/2), \
mm2mils100(TabDiam+TabMetal), \
mm2mils100(0.31), \
mm2mils100(TabDiam+0.66), \
mm2mils100(TabDiam), \
- '"mnt" "G" 0x0000]'
+ '"mnt" "G" 0x0000]')
-print ' Pin[',\
+print(' Pin[',\
mm2mils100(TabSpacing/2), \
mm2mils100((TabLen-TabDiam)/2), \
mm2mils100(TabDiam+TabMetal), \
mm2mils100(0.31), \
mm2mils100(TabDiam+0.66), \
mm2mils100(TabDiam), \
- '"mnt" "G" 0x0000]'
+ '"mnt" "G" 0x0000]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(TabSpacing/2), \
mm2mils100(-(TabLen - TabDiam)/2), \
mm2mils100(TabSpacing/2), \
mm2mils100(TabDiam + TabMetal), \
mm2mils100(0.31), \
mm2mils100(PadWidth)+600, \
- '"mnt" "G" ""]'
+ '"mnt" "G" ""]')
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(TabSpacing/2), \
mm2mils100(-(TabLen - TabDiam)/2), \
mm2mils100(TabSpacing/2), \
mm2mils100(TabDiam + TabMetal), \
mm2mils100(0.31), \
mm2mils100(PadWidth)+600, \
- '"mnt" "G" "onsolder"]'
+ '"mnt" "G" "onsolder"]')
-print ' ElementLine[',\
+print(' ElementLine[',\
mm2mils100(-TabSpacing/2), \
mm2mils100(-EdgeOffset)+500, \
mm2mils100(TabSpacing/2), \
mm2mils100(-EdgeOffset)+500, \
- '1000 ]'
+ '1000 ]')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2022 by Bdale Garbee <bdale@gag.com>. GPLv3
#
# emit PCB footprint for Atmel VQFN-48 package used by SAM21D
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 3'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "vqfn-48" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "vqfn-48" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
## pad under the chip
-#print ' Pad[',\
+#print(' Pad[',\
# mm2mils100(0), \
# mm2mils100(0), \
# mm2mils100(0), \
# mm2mils100(GndSquare), \
# mm2mils100(PinClearance), \
# mm2mils100(PinResist), \
-# '"pin49" "49" "square,nopaste"]'
+# '"pin49" "49" "square,nopaste"]')
#
## vias in the ground pad under the chip
#for viarow in range (-1,1):
# for viacol in range (-1,1):
-# print ' Pin[',\
+# print(' Pin[',\
# mm2mils100(1.8 * viacol * CoreSquare / 3 + .9 * CoreSquare/3), \
# mm2mils100(1.8 * viarow * CoreSquare / 3 + .9 * CoreSquare/3), \
# 2600, \
# 2500, \
# 0, \
# 1300, \
-# '"pin17" "17" 0x0002]'
+# '"pin17" "17" 0x0002]')
#
## break pad under chip into a grid to control the resist and paste masks
#
# for viacol in range (-1, 2):
# if (viarow in (-1, 1)) and (viacol in (-1, 1)):
# # copper sub-square with resist over vias
-# print ' Pad[',\
+# print(' Pad[',\
# mm2mils100(viacol * CoreSquare / blocks), \
# mm2mils100(viarow * CoreSquare / blocks), \
# mm2mils100(viacol * CoreSquare / blocks), \
# mm2mils100((CoreSquare)/blocks), \
# 0, \
# 0, \
-# '"pin17" "17" "square,nopaste"]'
+# '"pin17" "17" "square,nopaste"]')
# else:
# # copper sub-square without resist
-# print ' Pad[',\
+# print(' Pad[',\
# mm2mils100(viacol * CoreSquare / blocks), \
# mm2mils100(viarow * CoreSquare / blocks), \
# mm2mils100(viacol * CoreSquare / blocks), \
# mm2mils100((CoreSquare)/blocks), \
# 0, \
# mm2mils100((CoreSquare)/blocks), \
-# '"pin17" "17" "square,nopaste"]'
+# '"pin17" "17" "square,nopaste"]')
# # copper spot to control paste mask generation
-# print ' Pad[',\
+# print(' Pad[',\
# mm2mils100(viacol * CoreSquare / blocks), \
# mm2mils100(viarow * CoreSquare / blocks), \
# mm2mils100(viacol * CoreSquare / blocks), \
# 1500, \
# 0, \
# mm2mils100((CoreSquare)/blocks), \
-# '"pin17" "17" "square"]'
+# '"pin17" "17" "square"]')
# pins
for pin in range (1,13):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((-6.5 + pin) * PinSpacing), \
mm2mils100(-RowSpacing/2 - PinHeight/2 + PinWidth/2), \
mm2mils100((-6.5 + pin) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinClearance), \
mm2mils100(PinResist), \
- '"pin%i"' % (37-pin), '"%i"' % (37-pin), '0x0000]'
+ '"pin%i"' % (37-pin), '"%i"' % (37-pin), '0x0000]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((-6.5 + pin) * PinSpacing), \
mm2mils100(RowSpacing/2 - PinHeight/2 + PinWidth/2), \
mm2mils100((-6.5 + pin) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinClearance), \
mm2mils100(PinResist), \
- '"pin%i"' % pin, '"%i"' % pin, '0x0000]'
+ '"pin%i"' % pin, '"%i"' % pin, '0x0000]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-RowSpacing/2 - PinHeight/2 + PinWidth/2), \
mm2mils100((-6.5 + pin) * PinSpacing), \
mm2mils100(-RowSpacing/2 + PinHeight/2 - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinClearance), \
mm2mils100(PinResist), \
- '"pin%i"' % (36+pin), '"%i"' % (36+pin), '0x0000]'
+ '"pin%i"' % (36+pin), '"%i"' % (36+pin), '0x0000]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(RowSpacing/2 - PinHeight/2 + PinWidth/2), \
mm2mils100((-6.5 + pin) * PinSpacing), \
mm2mils100(RowSpacing/2 + PinHeight/2 - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinClearance), \
mm2mils100(PinResist), \
- '"pin%i"' % (25-pin), '"%i"' % (25-pin), '0x0000]'
+ '"pin%i"' % (25-pin), '"%i"' % (25-pin), '0x0000]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100(-Overall/2 - PinWidth), \
mm2mils100(Overall/2 + PinWidth), \
- '500 500 0 360 1000 ]'
-print ")"
+ '500 500 0 360 1000 ]')
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2014 by Bdale Garbee <bdale@gag.com>. GPLv2
#
# Program to emit PCB footprint for edge-launch wire antenna
import sys
-print '# author: Bdale Garbee'
-print '# email: bdale@gag.com'
-print '# dist-license: GPL 2'
-print '# use-license: unlimited'
+print('# author: Bdale Garbee')
+print('# email: bdale@gag.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "wire-ant" "" "" 0 0 0 0 0 0 0x0]'
-print "("
+print('Element[0x0 "wire-ant" "" "" 0 0 0 0 0 0 0x0]')
+print("(")
-print ' Pad[',\
+print(' Pad[',\
(-PinSpacing - GndWidth/2), \
(GndWidth/2), \
(-PinSpacing - GndWidth/2), \
(GndWidth), \
0, \
(GndWidth + 600), \
- '"pin2"', '"2"', '"square,nopaste"]'
-print ' Pad[',\
+ '"pin2"', '"2"', '"square,nopaste"]')
+print(' Pad[',\
0, \
(PinWidth/2), \
0, \
(PinWidth), \
0, \
(PinWidth + 600), \
- '"pin1"', '"1"', '"square,nopaste"]'
-print ' Pad[',\
+ '"pin1"', '"1"', '"square,nopaste"]')
+print(' Pad[',\
(PinSpacing + GndWidth/2), \
(GndWidth/2), \
(PinSpacing + GndWidth/2), \
(GndWidth), \
0, \
(GndWidth + 600), \
- '"pin2"', '"2"', '"square,nopaste"]'
+ '"pin2"', '"2"', '"square,nopaste"]')
-print ")"
+print(")")
-#!/usr/bin/python2
+#!/usr/bin/python3
# Copyright 2011 by Bdale Garbee <bdale@gag.com>. GPLv2
# Copyright 2019 by Keith Packard <keithp@keithp.com>. GPLv2+
+# Copyright 2024 by Bdale Garbee <bdale@gag.com>. GPLv3
#
# Program to emit PCB footprint for WQFN-16 package used by the DRV8800
#
def mm2mils100( mm ):
return int( mm / 25.4 * 1000.0 * 100.0 + 0.5 )
-print '# author: Keith Packard'
-print '# email: keithp@keithp.com'
-print '# dist-license: GPL 2'
-print '# use-license: unlimited'
+print('# author: Keith Packard')
+print('# email: keithp@keithp.com')
+print('# dist-license: GPL 3')
+print('# use-license: unlimited')
-print 'Element[0x0 "qfn-16" "" "" 0 0 0 0 0 100 0x0]'
-print "("
+print('Element[0x0 "qfn-16" "" "" 0 0 0 0 0 100 0x0]')
+print("(")
# pad under the chip, must be grounded
-print ' Pad[',\
+print(' Pad[',\
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(0), \
mm2mils100(GndSquare), \
mm2mils100(PinClearance), \
mm2mils100(PinResist), \
- '"pin17" "17" "square,nopaste"]'
+ '"pin17" "17" "square,nopaste"]')
# vias in the ground pad under the chip
for viarow in range (-1,1):
for viacol in range (-1,1):
- print ' Pin[',\
+ print(' Pin[',\
mm2mils100(1.8 * viacol * CoreSquare / 3 + .9 * CoreSquare/3), \
mm2mils100(1.8 * viarow * CoreSquare / 3 + .9 * CoreSquare/3), \
2600, \
2500, \
0, \
1300, \
- '"pin17" "17" 0x0002]'
+ '"pin17" "17" 0x0002]')
# break pad under chip into a grid to control the resist and paste masks
for viacol in range (-1, 2):
if (viarow in (-1, 1)) and (viacol in (-1, 1)):
# copper sub-square with resist over vias
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(viacol * CoreSquare / blocks), \
mm2mils100(viarow * CoreSquare / blocks), \
mm2mils100(viacol * CoreSquare / blocks), \
mm2mils100((CoreSquare)/blocks), \
0, \
0, \
- '"pin17" "17" "square,nopaste"]'
+ '"pin17" "17" "square,nopaste"]')
else:
# copper sub-square without resist
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(viacol * CoreSquare / blocks), \
mm2mils100(viarow * CoreSquare / blocks), \
mm2mils100(viacol * CoreSquare / blocks), \
mm2mils100((CoreSquare)/blocks), \
0, \
mm2mils100((CoreSquare)/blocks), \
- '"pin17" "17" "square,nopaste"]'
+ '"pin17" "17" "square,nopaste"]')
# copper spot to control paste mask generation
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(viacol * CoreSquare / blocks), \
mm2mils100(viarow * CoreSquare / blocks), \
mm2mils100(viacol * CoreSquare / blocks), \
1500, \
0, \
mm2mils100((CoreSquare)/blocks), \
- '"pin17" "17" "square"]'
+ '"pin17" "17" "square"]')
# pins
for pin in range (1,5):
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((-2.5 + pin) * PinSpacing), \
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100((-2.5 + pin) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinClearance), \
mm2mils100(PinResist), \
- '"pin%i"' % (13-pin), '"%i"' % (13-pin), '0x0000]'
+ '"pin%i"' % (13-pin), '"%i"' % (13-pin), '0x0000]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100((-2.5 + pin) * PinSpacing), \
mm2mils100(+Overall/2 - PinHeight + PinWidth/2), \
mm2mils100((-2.5 + pin) * PinSpacing), \
mm2mils100(PinWidth), \
mm2mils100(PinClearance), \
mm2mils100(PinResist), \
- '"pin%i"' % pin, '"%i"' % pin, '0x0000]'
+ '"pin%i"' % pin, '"%i"' % pin, '0x0000]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(Overall/2 - PinHeight + PinWidth/2), \
mm2mils100((-2.5 + pin) * PinSpacing), \
mm2mils100(Overall/2 - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinClearance), \
mm2mils100(PinResist), \
- '"pin%i"' % (9-pin), '"%i"' % (9-pin), '0x0000]'
+ '"pin%i"' % (9-pin), '"%i"' % (9-pin), '0x0000]')
- print ' Pad[',\
+ print(' Pad[',\
mm2mils100(-Overall/2 + PinWidth/2), \
mm2mils100((-2.5 + pin) * PinSpacing), \
mm2mils100(-Overall/2 + PinHeight - PinWidth/2), \
mm2mils100(PinWidth), \
mm2mils100(PinClearance), \
mm2mils100(PinResist), \
- '"pin%i"' % (12+pin), '"%i"' % (12+pin), '0x0000]'
+ '"pin%i"' % (12+pin), '"%i"' % (12+pin), '0x0000]')
-print ' ElementArc[',\
+print(' ElementArc[',\
mm2mils100(-2.0), \
mm2mils100(2.0), \
- '500 500 0 360 1000 ]'
-print ")"
+ '500 500 0 360 1000 ]')
+print(")")