From 067b0828c32525ff23ae0321716d439ac2cc029d Mon Sep 17 00:00:00 2001 From: Bdale Garbee Date: Fri, 2 May 2025 22:02:47 -0600 Subject: [PATCH] add XLR connector footprints for QuantiMotor --- packages/.gitignore | 25 +----- packages/Makefile | 4 +- packages/XLR3.py | 126 +++++++++++++++++++++++++++++ packages/XLR4.py | 135 ++++++++++++++++++++++++++++++++ packages/{AC5MAH.py => XLR5.py} | 0 5 files changed, 268 insertions(+), 22 deletions(-) create mode 100755 packages/XLR3.py create mode 100755 packages/XLR4.py rename packages/{AC5MAH.py => XLR5.py} (100%) diff --git a/packages/.gitignore b/packages/.gitignore index e6bb9cd..e142040 100644 --- a/packages/.gitignore +++ b/packages/.gitignore @@ -1,3 +1,4 @@ +.gitignore ssop-16.fp ssop-28.fp soic-16.fp @@ -163,25 +164,7 @@ TSOT26.fp NRS50.fp ARJM11D7009ABEW2.fp pizero.fp -AC5MAH.fp +XLR3.fp +XLR4.fp +XLR5.fp sj-63033a.fp -1051330011.fp -11071.fp -1551NGY.fp -1W_Carbon_Resistor.fp -3568.fp -BM70BLES1FC2.fp -PNswitchDPDT.fp -RGT16_1P7X1P7.fp -SSOP16.fp -foo.fp -m50-31-4.fp -m50-31-8.fp -mlp8.fp -new.fp -pico-ezmate-4.fp -servo.fp.ps -ssop-16.fp.ps -ssop-old-16.fp -ufqfpn16.fp -vbrite.fp diff --git a/packages/Makefile b/packages/Makefile index 971d022..986fe31 100644 --- a/packages/Makefile +++ b/packages/Makefile @@ -180,7 +180,9 @@ FOOTPRINTS= \ NRS50.fp \ ARJM11D7009ABEW2.fp \ pizero.fp \ - AC5MAH.fp \ + XLR3.fp \ + XLR4.fp \ + XLR5.fp \ sj-63033a.fp .5c.fp: diff --git a/packages/XLR3.py b/packages/XLR3.py new file mode 100755 index 0000000..d7db5db --- /dev/null +++ b/packages/XLR3.py @@ -0,0 +1,126 @@ +#!/usr/bin/python3 +# Copyright 2025 by Bdale Garbee . GPLv3 +# +# Program to emit PCB footprint for Amphenol AC3MAH-AU-PRE 3-pin XLR connector. +# + +# dimensions in mm +Row1Spacing = 3.81 +Row2Spacing = 6.98 +SmallHole = 1.20 +LargeHole = 1.60 +Mnt1_Y = 3.81 +Mnt2_Y = 8.89 +Row1_Y = 12.70 +Row2_Y = 17.78 + +Shell_Width = 25.0 +Shell_Height = 19.5 + +# and a couple in 1/100 of a mil +Clearance = 1200 + +# 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 "XLR3" "" "" 0 0 0 0 0 100 0x0]') +print ("(") + +# alignment pin holes +print (' Pin[', \ + mm2mils100(-Row1Spacing), \ + mm2mils100(Mnt1_Y), \ + mm2mils100(LargeHole*2), + Clearance, + mm2mils100(LargeHole*2) + Clearance, + mm2mils100(LargeHole), \ + '"pin4" "4"', '0x0001', ']') + +print (' Pin[', \ + mm2mils100(Row1Spacing), \ + mm2mils100(Mnt2_Y), \ + mm2mils100(LargeHole*2), + Clearance, + mm2mils100(LargeHole*2) + Clearance, + mm2mils100(LargeHole), \ + '"pin4" "4"', '0x0001', ']') + +print (' Pin[', \ + 0, \ + mm2mils100(Row1_Y), \ + mm2mils100(SmallHole*2), + Clearance, + mm2mils100(SmallHole*2) + Clearance, + mm2mils100(SmallHole), \ + '"pin4" "4"', '0x0001', ']') + +print (' Pin[', \ + mm2mils100(-Row2Spacing), \ + mm2mils100(Row2_Y), \ + mm2mils100(LargeHole*2), + Clearance, + mm2mils100(LargeHole*2) + Clearance, + mm2mils100(LargeHole), \ + '"pin2" "2"', '0x0001', ']') + +print (' Pin[', \ + 0, \ + mm2mils100(Row2_Y), \ + mm2mils100(SmallHole*2), + Clearance, + mm2mils100(SmallHole*2) + Clearance, + mm2mils100(SmallHole), \ + '"pin3" "3"', '0x0001', ']') + +print (' Pin[', \ + mm2mils100(Row2Spacing), \ + mm2mils100(Row2_Y), \ + mm2mils100(LargeHole*2), + Clearance, + mm2mils100(LargeHole*2) + Clearance, + mm2mils100(LargeHole), \ + '"pin1" "1"', '0x0001', ']') + + +print(' ElementLine[',\ + mm2mils100(-Shell_Width/2), \ + 0, \ + mm2mils100(Shell_Width/2), \ + 0, \ + '1000 ]') + +print(' ElementLine[',\ + mm2mils100(-Shell_Width/2), \ + mm2mils100(Shell_Height), \ + mm2mils100(-Shell_Width/2+2), \ + mm2mils100(Shell_Height), \ + '1000 ]') + +print(' ElementLine[',\ + mm2mils100(Shell_Width/2), \ + mm2mils100(Shell_Height), \ + mm2mils100(Shell_Width/2-2), \ + mm2mils100(Shell_Height), \ + '1000 ]') + +print(' ElementLine[',\ + mm2mils100(Shell_Width/2), \ + mm2mils100(0), \ + mm2mils100(Shell_Width/2), \ + mm2mils100(Shell_Height), \ + '1000 ]') + +print(' ElementLine[',\ + mm2mils100(-Shell_Width/2), \ + mm2mils100(0), \ + mm2mils100(-Shell_Width/2), \ + mm2mils100(Shell_Height), \ + '1000 ]') + +print (")") diff --git a/packages/XLR4.py b/packages/XLR4.py new file mode 100755 index 0000000..9b1f566 --- /dev/null +++ b/packages/XLR4.py @@ -0,0 +1,135 @@ +#!/usr/bin/python3 +# Copyright 2025 by Bdale Garbee . GPLv3 +# +# Program to emit PCB footprint for Neutrik NC4MAH 4-pin XLR connector. +# + +# dimensions in mm +Row1Spacing = 3.81 +Row2Spacing = 6.98 +SmallHole = 1.20 +LargeHole = 1.60 +Mnt1_Y = 3.81 +Mnt2_Y = 8.89 +Row1_Y = 12.70 +Row2_Y = 17.78 + +Shell_Width = 25.0 +Shell_Height = 19.0 + +# and a couple in 1/100 of a mil +Clearance = 1200 + +# 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 "XLR4" "" "" 0 0 0 0 0 100 0x0]') +print ("(") + +# alignment pin holes +print (' Pin[', \ + mm2mils100(-Row1Spacing), \ + mm2mils100(Mnt1_Y), \ + mm2mils100(LargeHole*2), + Clearance, + mm2mils100(LargeHole*2) + Clearance, + mm2mils100(LargeHole), \ + '"pin5" "5"', '0x0001', ']') + +print (' Pin[', \ + mm2mils100(Row1Spacing), \ + mm2mils100(Mnt2_Y), \ + mm2mils100(LargeHole*2), + Clearance, + mm2mils100(LargeHole*2) + Clearance, + mm2mils100(LargeHole), \ + '"pin5" "5"', '0x0001', ']') + +print (' Pin[', \ + mm2mils100(-Row1Spacing), \ + mm2mils100(Row1_Y), \ + mm2mils100(SmallHole*2), + Clearance, + mm2mils100(SmallHole*2) + Clearance, + mm2mils100(SmallHole), \ + '"pin3" "3"', '0x0001', ']') + +print (' Pin[', \ + 0, \ + mm2mils100(Row1_Y), \ + mm2mils100(SmallHole*2), + Clearance, + mm2mils100(SmallHole*2) + Clearance, + mm2mils100(SmallHole), \ + '"pin5" "5"', '0x0001', ']') + +print (' Pin[', \ + mm2mils100(Row1Spacing), \ + mm2mils100(Row1_Y), \ + mm2mils100(SmallHole*2), + Clearance, + mm2mils100(SmallHole*2) + Clearance, + mm2mils100(SmallHole), \ + '"pin2" "2"', '0x0001', ']') + +print (' Pin[', \ + mm2mils100(-Row2Spacing), \ + mm2mils100(Row2_Y), \ + mm2mils100(LargeHole*2), + Clearance, + mm2mils100(LargeHole*2) + Clearance, + mm2mils100(LargeHole), \ + '"pin4" "4"', '0x0001', ']') + +print (' Pin[', \ + mm2mils100(Row2Spacing), \ + mm2mils100(Row2_Y), \ + mm2mils100(LargeHole*2), + Clearance, + mm2mils100(LargeHole*2) + Clearance, + mm2mils100(LargeHole), \ + '"pin1" "1"', '0x0001', ']') + + +print(' ElementLine[',\ + mm2mils100(-Shell_Width/2), \ + 0, \ + mm2mils100(Shell_Width/2), \ + 0, \ + '1000 ]') + +print(' ElementLine[',\ + mm2mils100(-Shell_Width/2), \ + mm2mils100(Shell_Height), \ + mm2mils100(-Shell_Width/2+2), \ + mm2mils100(Shell_Height), \ + '1000 ]') + +print(' ElementLine[',\ + mm2mils100(Shell_Width/2), \ + mm2mils100(Shell_Height), \ + mm2mils100(Shell_Width/2-2), \ + mm2mils100(Shell_Height), \ + '1000 ]') + +print(' ElementLine[',\ + mm2mils100(Shell_Width/2), \ + mm2mils100(0), \ + mm2mils100(Shell_Width/2), \ + mm2mils100(Shell_Height), \ + '1000 ]') + +print(' ElementLine[',\ + mm2mils100(-Shell_Width/2), \ + mm2mils100(0), \ + mm2mils100(-Shell_Width/2), \ + mm2mils100(Shell_Height), \ + '1000 ]') + +print (")") diff --git a/packages/AC5MAH.py b/packages/XLR5.py similarity index 100% rename from packages/AC5MAH.py rename to packages/XLR5.py -- 2.47.2