From: Bdale Garbee Date: Mon, 12 Dec 2022 04:42:52 +0000 (-0700) Subject: datasheet and footprint for USB A vertical connector for QuantiMotor X-Git-Url: https://git.gag.com/?p=hw%2Faltusmetrum;a=commitdiff_plain;h=b5599b0313aa3353886c932facac687b23bee0e4 datasheet and footprint for USB A vertical connector for QuantiMotor --- diff --git a/datasheets/cvilux/CU0112S.pdf b/datasheets/cvilux/CU0112S.pdf new file mode 100644 index 0000000..bb057e7 Binary files /dev/null and b/datasheets/cvilux/CU0112S.pdf differ diff --git a/packages/cu01sav.py b/packages/cu01sav.py new file mode 100755 index 0000000..691d1d9 --- /dev/null +++ b/packages/cu01sav.py @@ -0,0 +1,137 @@ +#!/usr/bin/python3 +# Copyright 2022 by Bdale Garbee . GPLv3 +# +# Program to emit PCB footprint for +# CviLux CU01SAV1S00 USB Type-A Single Port Straight Connector +# +# dimensions in mm from cvilux/CU0112S.pdf + +PinDiam = 0.92 +InnerSpacing = 2.00 +OuterSpacing = 7.00 + +MntDiam = 2.33 +MntSpacing = 13.14 + +Pin2Mnt = 2.71 +Pin2Box = 1.69 + +BoxX = 13.2 +BoxY = 5.12 # this is the core box, not including lips, etc + +LineWidth = 600 +ThicknessDelta = 1.0 +Clearance = .32 +MaskDelta = 0.32 + +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 3') +print('# use-license: unlimited') + +print('Element[0x0 "CU01SAV" "" "" 0 0 0 0 0 100 0x0]') +print("(") + +print(' Pin[', \ + mm2mils100(-OuterSpacing/2), \ + 0, \ + mm2mils100(PinDiam+ThicknessDelta/2), \ + mm2mils100(Clearance), \ + mm2mils100(PinDiam+ThicknessDelta/2+MaskDelta), \ + mm2mils100(PinDiam), \ + '"1"', \ + '"1"', \ + "0x0101", ']') + +print(' Pin[', \ + mm2mils100(-InnerSpacing/2), \ + 0, \ + mm2mils100(PinDiam+ThicknessDelta/2), \ + mm2mils100(Clearance), \ + mm2mils100(PinDiam+ThicknessDelta/2+MaskDelta), \ + mm2mils100(PinDiam), \ + '"2"', \ + '"2"', \ + "0x0001", ']') + +print(' Pin[', \ + mm2mils100(InnerSpacing/2), \ + 0, \ + mm2mils100(PinDiam+ThicknessDelta/2), \ + mm2mils100(Clearance), \ + mm2mils100(PinDiam+ThicknessDelta/2+MaskDelta), \ + mm2mils100(PinDiam), \ + '"3"', \ + '"3"', \ + "0x0001", ']') + +print(' Pin[', \ + mm2mils100(OuterSpacing/2), \ + 0, \ + mm2mils100(PinDiam+ThicknessDelta/2), \ + mm2mils100(Clearance), \ + mm2mils100(PinDiam+ThicknessDelta/2+MaskDelta), \ + mm2mils100(PinDiam), \ + '"4"', \ + '"4"', \ + "0x0001", ']') + +# ground the mounting tab holes, which means pin 4 since this is a USB A +print(' Pin[', \ + mm2mils100(-MntSpacing/2), \ + mm2mils100(Pin2Mnt), \ + mm2mils100(MntDiam+ThicknessDelta), \ + mm2mils100(Clearance), \ + mm2mils100(MntDiam+ThicknessDelta+MaskDelta), \ + mm2mils100(MntDiam), \ + '"4"', \ + '"4"', \ + "0x0001", ']') + +print(' Pin[', \ + mm2mils100(MntSpacing/2), \ + mm2mils100(Pin2Mnt), \ + mm2mils100(MntDiam+ThicknessDelta), \ + mm2mils100(Clearance), \ + mm2mils100(MntDiam+ThicknessDelta+MaskDelta), \ + mm2mils100(MntDiam), \ + '"4"', \ + '"4"', \ + "0x0001", ']') + +# silkscreen box +print(' ElementLine[', \ + mm2mils100(BoxX/2), \ + mm2mils100(-Pin2Box), \ + mm2mils100(BoxX/2), \ + mm2mils100(-Pin2Box+BoxY), \ + LineWidth, ']') + +print(' ElementLine[', \ + mm2mils100(-BoxX/2), \ + mm2mils100(-Pin2Box), \ + mm2mils100(-BoxX/2), \ + mm2mils100(-Pin2Box+BoxY), \ + LineWidth, ']') + +print(' ElementLine[', \ + mm2mils100(-BoxX/2), \ + mm2mils100(-Pin2Box), \ + mm2mils100(+BoxX/2), \ + mm2mils100(-Pin2Box), \ + LineWidth, ']') + +print(' ElementLine[', \ + mm2mils100(-BoxX/2), \ + mm2mils100(-Pin2Box+BoxY), \ + mm2mils100(+BoxX/2), \ + mm2mils100(-Pin2Box+BoxY), \ + LineWidth, ']') + +print(")")