add footprint for 5-pin mini-XLR connector
authorBdale Garbee <bdale@gag.com>
Mon, 16 Nov 2020 03:13:10 +0000 (20:13 -0700)
committerBdale Garbee <bdale@gag.com>
Mon, 16 Nov 2020 03:13:10 +0000 (20:13 -0700)
packages/Makefile
packages/trapc5mx.py [new file with mode: 0755]

index 91162ad5364710f11fed92589506c6d7bc3937ec..0c576b4a9b13a74beefb94f7a49df0f1d994c37f 100644 (file)
@@ -140,7 +140,8 @@ FOOTPRINTS= \
        VQFN-HR-12.fp \
        wqfn-16.fp \
        TSX-3225.fp \
-       ECX2236.fp
+       ECX2236.fp \
+       trapc5mx.fp
 
 .5c.fp:
        nickle $*.5c -o $@
diff --git a/packages/trapc5mx.py b/packages/trapc5mx.py
new file mode 100755 (executable)
index 0000000..c8a1d2b
--- /dev/null
@@ -0,0 +1,168 @@
+#!/usr/bin/python3
+# Copyright 2020 by Bdale Garbee <bdale@gag.com>.  GPLv3
+#
+# Program to emit PCB footprint for switchcraft 5-pin mini-XLR, TRAPC5MX
+#
+
+# dimensions in mils from TRAPC_X-TRASM_X_SERIES_CD.PDF
+# reference plane is board edge (shoulder for box wall opening)
+
+BodyWidth = 530                # connector body outline
+BodyHeight = 400
+NoseWidth = 437                # threaded "snout" that projects through box wall
+NoseHeight = 280
+
+Mnt_Y = 135            # how far mounting studs are back from plane
+Mnt_X = 470            # mounting studs center to center
+Mnt_Drill = 70         # mounting hole diameter
+Mnt_Thickness = 120    # mounting hole pad diameter
+Mnt_Mask = 130         # opening in mask for mounting hole
+
+Pin_Y = (110 + Mnt_Y)  # how far first pin row is back from plane
+PinSpacing = 100       # space between rows and between pins in a row
+Pin_Drill = 40         # signal pin hole diameter
+Pin_Thickness = 65     # signal pin hole pad diameter
+Pin_Mask = 75          # opening in mask for signal pin
+
+Clearance = 15
+SilkLine = 5
+
+import sys
+
+print ('# author: Bdale Garbee')
+print ('# email: bdale@gag.com')
+print ('# dist-license: GPL 3')
+print ('# use-license: unlimited')
+
+# Pin (rX rY Thickness Clearance Mask Drill "Name" "Number" NFlags)
+
+print ('Element[0x0 "trapc5mx" "" "" 0 0 0 0 0 100 0x0]')
+print ("(")
+print ('   Pin(',\
+               (Mnt_X / 2), \
+               Mnt_Y, \
+               Mnt_Thickness, \
+               Clearance, \
+               Mnt_Mask, \
+               Mnt_Drill, \
+               '"pin6" "6" 0x0001)')
+
+print ('   Pin(',\
+               -(Mnt_X / 2), \
+               Mnt_Y, \
+               Mnt_Thickness, \
+               Clearance, \
+               Mnt_Mask, \
+               Mnt_Drill, \
+               '"pin6" "6" 0x0001)')
+
+print ('   Pin(',\
+               (PinSpacing / 2), \
+               Pin_Y, \
+               Pin_Thickness, \
+               Clearance, \
+               Pin_Mask, \
+               Pin_Drill, \
+               '"pin2" "2" 0x0001)')
+
+print ('   Pin(',\
+               -(PinSpacing / 2), \
+               Pin_Y, \
+               Pin_Thickness, \
+               Clearance, \
+               Pin_Mask, \
+               Pin_Drill, \
+               '"pin3" "3" 0x0001)')
+
+print ('   Pin(',\
+               PinSpacing, \
+               (Pin_Y + PinSpacing), \
+               Pin_Thickness, \
+               Clearance, \
+               Pin_Mask, \
+               Pin_Drill, \
+               '"pin1" "1" 0x0001)')
+
+print ('   Pin(',\
+               0, \
+               (Pin_Y + PinSpacing), \
+               Pin_Thickness, \
+               Clearance, \
+               Pin_Mask, \
+               Pin_Drill, \
+               '"pin5" "5" 0x0001)')
+
+print ('   Pin(',\
+               -PinSpacing, \
+               (Pin_Y + PinSpacing), \
+               Pin_Thickness, \
+               Clearance, \
+               Pin_Mask, \
+               Pin_Drill, \
+               '"pin4" "4" 0x0001)')
+
+print ('   ElementLine(',\
+       -(BodyWidth/2), \
+       0, \
+       (BodyWidth/2), \
+       0, \
+       SilkLine, \
+       ')')
+
+print ('   ElementLine(',\
+       -(BodyWidth/2), \
+       BodyHeight, \
+       (BodyWidth/2), \
+       BodyHeight, \
+       SilkLine, \
+       ')')
+
+print ('   ElementLine(',\
+       -(BodyWidth/2), \
+       BodyHeight, \
+       -(BodyWidth/2), \
+       0, \
+       SilkLine, \
+       ')')
+
+print ('   ElementLine(',\
+       (BodyWidth/2), \
+       BodyHeight, \
+       (BodyWidth/2), \
+       0, \
+       SilkLine, \
+       ')')
+
+print ('   ElementLine(',\
+       -(NoseWidth/2), \
+       0, \
+       (NoseWidth/2), \
+       0, \
+       SilkLine, \
+       ')')
+
+print ('   ElementLine(',\
+       -(NoseWidth/2), \
+       -NoseHeight, \
+       (NoseWidth/2), \
+       -NoseHeight, \
+       SilkLine, \
+       ')')
+
+print ('   ElementLine(',\
+       -(NoseWidth/2), \
+       -NoseHeight, \
+       -(NoseWidth/2), \
+       0, \
+       SilkLine, \
+       ')')
+
+print ('   ElementLine(',\
+       (NoseWidth/2), \
+       -NoseHeight, \
+       (NoseWidth/2), \
+       0, \
+       SilkLine, \
+       ')')
+
+print (")")