From: Keith Packard Date: Fri, 20 Mar 2015 20:28:40 +0000 (-0700) Subject: Split out usb A male footprint into two styles X-Git-Tag: telelco-v3.0~723^2 X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=22f58332d593b2be1daa0849c1c21eff6e5df7c1;p=hw%2Faltusmetrum Split out usb A male footprint into two styles On using a hole for the clips, one designed to wrap around the board Signed-off-by: Keith Packard --- diff --git a/packages/Makefile b/packages/Makefile index 2327ea7..3e8a5ab 100644 --- a/packages/Makefile +++ b/packages/Makefile @@ -71,6 +71,7 @@ FOOTPRINTS= \ wire-ant.fp \ PCM12SMTR.fp \ usbAmale.fp \ + usbAmale-around.fp \ nx3215sa.fp \ DR127.fp \ PowerPAD32.fp \ diff --git a/packages/usbAmale-around.py b/packages/usbAmale-around.py new file mode 100755 index 0000000..688a200 --- /dev/null +++ b/packages/usbAmale-around.py @@ -0,0 +1,140 @@ +#!/usr/bin/python +# Copyright 2014 by Bdale Garbee . GPLv2 +# +# Program to emit PCB footprint for Keystone model 931 USB A male connector, +# should also work fine for 4ucon 10017 / 10019, and Acon C-UAR70-00-00 +# + +# dimensions in mm homogenized from Keystone, 4ucon, and Acon datasheets + + # note that in practice we may not want + # holes for the tabs in a USB key form factor, + # in which case just delete the features in + # the PCB layout and make board width right +TabDiam = 2.50 +TabMinor = 1.00 +TabSpacing = 11.70 + +PinDiam = 1.10 +PinSpacing = 4.50 # keystone wants 4.6 here .. really? + +PadHeight = 2.0 # keystone says 1.99 but is 0.1 closer +PadWidth = 1.20 # keystone says 1.1 but wider will work +Pad14 = 7.0 +Pad23 = 2.0 +PadRowOffset = 2.60 +EdgeOffset = 2.70 # keystone says 2.9, but shorter should be ok + +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 ) + +print '# author: Bdale Garbee' +print '# email: bdale@gag.com' +print '# dist-license: GPL 2' +print '# use-license: unlimited' + +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(PadRowOffset + PadHeight / 2 - PadWidth/2), \ + mm2mils100(PadWidth), \ + mm2mils100(0), \ + mm2mils100(PadWidth)+600, \ + '"pin4" "4" 0x0100]' + +print ' Pad[',\ + mm2mils100(-Pad14/2), \ + mm2mils100(PadRowOffset - PadHeight / 2 + PadWidth/2), \ + mm2mils100(-Pad14/2), \ + mm2mils100(PadRowOffset + PadHeight / 2 - PadWidth/2), \ + mm2mils100(PadWidth), \ + mm2mils100(0), \ + mm2mils100(PadWidth)+600, \ + '"pin1" "1" 0x0100]' + +print ' Pad[',\ + mm2mils100(Pad23/2), \ + mm2mils100(PadRowOffset - PadHeight / 2 + PadWidth/2), \ + mm2mils100(Pad23/2), \ + mm2mils100(PadRowOffset + PadHeight / 2 - PadWidth/2), \ + mm2mils100(PadWidth), \ + mm2mils100(0), \ + mm2mils100(PadWidth)+600, \ + '"pin3" "3" 0x0100]' + +print ' Pad[',\ + mm2mils100(-Pad23/2), \ + mm2mils100(PadRowOffset - PadHeight / 2 + PadWidth/2), \ + mm2mils100(-Pad23/2), \ + mm2mils100(PadRowOffset + PadHeight / 2 - PadWidth/2), \ + mm2mils100(PadWidth), \ + mm2mils100(0), \ + mm2mils100(PadWidth)+600, \ + '"pin2" "2" 0x0100]' + +print ' Pin[',\ + mm2mils100(-PinSpacing/2), \ + mm2mils100(0), \ + mm2mils100(PinDiam+0.3556), \ + mm2mils100(0.31), \ + mm2mils100(PinDiam+0.66), \ + mm2mils100(PinDiam), \ + '"mnt" "G" 0x0000]' + +print ' Pin[',\ + mm2mils100(PinSpacing/2), \ + mm2mils100(0), \ + mm2mils100(PinDiam+0.3556), \ + mm2mils100(0.31), \ + mm2mils100(PinDiam+0.66), \ + mm2mils100(PinDiam), \ + '"mnt" "G" 0x0000]' + +print ' Pad[',\ + mm2mils100(-TabSpacing/2 + PadWidth/2 + TabMinor/2), \ + mm2mils100(-TabDiam/2), \ + mm2mils100(-TabSpacing/2 + PadWidth/2 + TabMinor/2), \ + mm2mils100(TabDiam/2), \ + mm2mils100(PadWidth), \ + mm2mils100(0.31), \ + mm2mils100(PadWidth + 0.15), \ + '"mnt" "G" "onsolder,nopaste"]' + +print ' Pad[',\ + mm2mils100(TabSpacing/2 - PadWidth/2 - TabMinor/2), \ + mm2mils100(-TabDiam/2), \ + mm2mils100(TabSpacing/2 - PadWidth/2 - TabMinor/2), \ + mm2mils100(TabDiam/2), \ + mm2mils100(PadWidth), \ + mm2mils100(0.31), \ + mm2mils100(PadWidth + 0.15), \ + '"mnt" "G" "onsolder,nopaste"]' + +print ' ElementLine[',\ + mm2mils100(-TabSpacing/2), \ + mm2mils100(-EdgeOffset)+500, \ + mm2mils100(TabSpacing/2), \ + mm2mils100(-EdgeOffset)+500, \ + '1000 ]' + +print ' ElementLine[',\ + mm2mils100(-TabSpacing/2 + TabMinor/2), \ + mm2mils100(-TabDiam/2), \ + mm2mils100(-TabSpacing/2 + TabMinor/2), \ + mm2mils100(TabDiam/2), \ + '1000 ]' + +print ' ElementLine[',\ + mm2mils100(TabSpacing/2 - TabMinor/2), \ + mm2mils100(-TabDiam/2), \ + mm2mils100(TabSpacing/2 - TabMinor/2), \ + mm2mils100(TabDiam/2), \ + '1000 ]' + +print ")"