datasheet and footprint for USB A vertical connector for QuantiMotor
authorBdale Garbee <bdale@gag.com>
Mon, 12 Dec 2022 04:42:52 +0000 (21:42 -0700)
committerBdale Garbee <bdale@gag.com>
Mon, 12 Dec 2022 04:42:52 +0000 (21:42 -0700)
datasheets/cvilux/CU0112S.pdf [new file with mode: 0644]
packages/cu01sav.py [new file with mode: 0755]

diff --git a/datasheets/cvilux/CU0112S.pdf b/datasheets/cvilux/CU0112S.pdf
new file mode 100644 (file)
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 (executable)
index 0000000..691d1d9
--- /dev/null
@@ -0,0 +1,137 @@
+#!/usr/bin/python3
+# Copyright 2022 by Bdale Garbee <bdale@gag.com>.  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(")")