From ff2c907e89b039efaa5aaf98dbc143071745ae26 Mon Sep 17 00:00:00 2001 From: Bdale Garbee Date: Sat, 12 Feb 2011 12:38:24 -0700 Subject: [PATCH] add a reasonable looking micro USB B connector --- pkg/newlib/hirose/Makefile | 7 ++ pkg/newlib/hirose/ZX62-B-5PA.py | 208 ++++++++++++++++++++++++++++++++ 2 files changed, 215 insertions(+) create mode 100644 pkg/newlib/hirose/Makefile create mode 100755 pkg/newlib/hirose/ZX62-B-5PA.py diff --git a/pkg/newlib/hirose/Makefile b/pkg/newlib/hirose/Makefile new file mode 100644 index 0000000..b0449ea --- /dev/null +++ b/pkg/newlib/hirose/Makefile @@ -0,0 +1,7 @@ +all: ZX62-B-5PA.fp + +ZX62-B-5PA.fp: ZX62-B-5PA.py + ./ZX62-B-5PA.py > ZX62-B-5PA.fp + +clean: + rm -f ZX62-B-5PA.fp* diff --git a/pkg/newlib/hirose/ZX62-B-5PA.py b/pkg/newlib/hirose/ZX62-B-5PA.py new file mode 100755 index 0000000..5b61bf1 --- /dev/null +++ b/pkg/newlib/hirose/ZX62-B-5PA.py @@ -0,0 +1,208 @@ +#!/usr/bin/python +# Copyright 2011 by Bdale Garbee . GPLv2 +# +# Program to emit PCB footprint for +# Hirose Micro USB B SMD R/A connector ZX62-B-5PA(11), DigiKey H11634CT-ND +# + +# dimensions in mm from e24200011.pdf page 4 +PinWidth = 0.4 +PinHeight = 1.35 +PinSpacing = 0.65 + +TabWidth = 2.1 +TabHeight = 1.6 +TabInner = 2.05 + +PadWidth = 1.9 +PadHeight = 1.9 +PadInner = 0.25 +PadCenter = 3.35 + +WingWidth = 1.8 +WingHeight = 1.9 +WingInner = 3.1 + +# draw a box around the actual connector, and a line a the PCB edge +# connector is 7.9mm wide and 5.6mm deep overall, but wants to stick over +# the board edge due to flare around opening. The flare should be only 0.6mm +# deep, but the recommendation is that the connector face be 1.3mm out... +BoxHeight = 6.1 +BoxWidth = 7.9 +EdgeHeight = 4.8 +EdgeWidth = 2 * (WingInner + WingWidth) + +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 "USBmicroB" "" "" 0 0 -10161 -12011 0 100 0x0]' +print "(" +print ' Pad[', \ + mm2mils100(0), \ + mm2mils100(PinWidth/2), \ + mm2mils100(0), \ + mm2mils100(PinHeight - PinWidth/2), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinWidth + 0.2), \ + '"D+" "3" 0x0100]' + +print ' Pad[', \ + mm2mils100(-PinSpacing), \ + mm2mils100(PinWidth/2), \ + mm2mils100(-PinSpacing), \ + mm2mils100(PinHeight - PinWidth/2), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinWidth + 0.2), \ + '"D-" "2" 0x0100]' + +print ' Pad[', \ + mm2mils100(PinSpacing), \ + mm2mils100(PinWidth/2), \ + mm2mils100(PinSpacing), \ + mm2mils100(PinHeight - PinWidth/2), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinWidth + 0.2), \ + '"HS" "4" 0x0100]' + +print ' Pad[', \ + mm2mils100(-PinSpacing*2), \ + mm2mils100(PinWidth/2), \ + mm2mils100(-PinSpacing*2), \ + mm2mils100(PinHeight - PinWidth/2), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinWidth + 0.2), \ + '"VBUS" "1" 0x0100]' + +print ' Pad[', \ + mm2mils100(PinSpacing*2), \ + mm2mils100(PinWidth/2), \ + mm2mils100(PinSpacing*2), \ + mm2mils100(PinHeight - PinWidth/2), \ + mm2mils100(PinWidth), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PinWidth + 0.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), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(TabHeight + 0.2), \ + '"tab1" "G" 0x0100]' + +print ' Pad[', \ + mm2mils100(-TabInner - TabHeight/2), \ + mm2mils100(TabHeight/2), \ + mm2mils100(-TabInner - TabWidth + TabHeight/2), \ + mm2mils100(TabHeight/2), \ + mm2mils100(TabHeight), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(TabHeight + 0.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), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PadHeight + 0.2), \ + '"tab3" "G" 0x0100]' + +print ' Pad[', \ + mm2mils100(-PadInner - PadHeight/2), \ + mm2mils100(PadCenter), \ + mm2mils100(-PadInner - PadWidth + PadHeight/2), \ + mm2mils100(PadCenter), \ + mm2mils100(PadHeight), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(PadHeight + 0.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), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(WingWidth + 0.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), \ + mm2mils100(PinSpacing - PinWidth), \ + mm2mils100(WingWidth + 0.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 ")" -- 2.30.2