From: Bdale Garbee Date: Sat, 14 Jun 2025 14:09:36 +0000 (-0400) Subject: datasheet and footprints for "bare" D connectors, 9 female for QuantiMotor X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=df69444d6310b7863540f07a79185a0ef90acf87;p=hw%2Faltusmetrum datasheet and footprints for "bare" D connectors, 9 female for QuantiMotor --- diff --git a/datasheets/assmann/ASS_4887_CO.pdf b/datasheets/assmann/ASS_4887_CO.pdf new file mode 100644 index 0000000..7a30c9a Binary files /dev/null and b/datasheets/assmann/ASS_4887_CO.pdf differ diff --git a/packages/assmann/Makefile b/packages/assmann/Makefile new file mode 100644 index 0000000..27494f7 --- /dev/null +++ b/packages/assmann/Makefile @@ -0,0 +1,26 @@ +all: aaz-f-all aaz-m-all + +aaz-f-all: aaz-f-9.fp aaz-f-15.fp aaz-f-25.fp aaz-f-37.fp + +aaz-f-9.fp: aaz-f.py + ./aaz-f.py 9 > aaz-f-9.fp +aaz-f-15.fp: aaz-f.py + ./aaz-f.py 15 > aaz-f-15.fp +aaz-f-25.fp: aaz-f.py + ./aaz-f.py 25 > aaz-f-25.fp +aaz-f-37.fp: aaz-f.py + ./aaz-f.py 37 > aaz-f-37.fp + +aaz-m-all: aaz-m-9.fp aaz-m-15.fp aaz-m-25.fp aaz-m-37.fp + +aaz-m-9.fp: aaz-m.py + ./aaz-m.py 9 > aaz-m-9.fp +aaz-m-15.fp: aaz-m.py + ./aaz-m.py 15 > aaz-m-15.fp +aaz-m-25.fp: aaz-m.py + ./aaz-m.py 25 > aaz-m-25.fp +aaz-m-37.fp: aaz-m.py + ./aaz-m.py 37 > aaz-m-37.fp + +clean: + rm -f *.fp *- *.backup diff --git a/packages/assmann/aaz-f.py b/packages/assmann/aaz-f.py new file mode 100755 index 0000000..e93a8c7 --- /dev/null +++ b/packages/assmann/aaz-f.py @@ -0,0 +1,87 @@ +#!/usr/bin/python3 +# Copyright 2011 by Bdale Garbee . GPLv2 +# +# Program to emit PCB footprint(for Norcomp 182-YYY-213RYY1 connectors +# Female, right angle, 0.318 setback +# +# Needs pin count on command line, 9/15/25/37 are valid +# + +# dimensions in mm from R182-YYY-213RYY1-1.pdf + +PinDiam = 1.00 +PinSpacing = 2.77 +RowSpacing = 2.84 +FaceY = 9.5 +ARing = 0.8 +Clearance = 0.36 + +LineWidth = 1000 + +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 ) + +pins = int(sys.argv[1]) + +if pins == 9: + FaceX = 30.81 +elif pins == 15: + FaceX = 39.20 +elif pins == 25: + FaceX = 53.05 +elif pins == 37: + FaceX = 69.40 +else: + sys.stderr.write('Valid pin counts are 9|15|25|37\n') + sys.exit(1) + +pinoffset = (pins - 1) / 4 * PinSpacing +if pins == 15: + pinoffset += PinSpacing/2 + +print('# author: Bdale Garbee') +print('# email: bdale@gag.com') +print('# dist-license: GPL 3') +print('# use-license: unlimited') + +print('Element[0x0 "DB%iF"' % pins,'"" "" 0 0 0 0 0 100 0x0]') +print("(") +for col in range (int((pins+1)/2)): + pinnum = col + 1 + if pinnum == 1: + Flags = '0x0101' + else: + Flags = '0x0001' + + print(' Pin[', \ + mm2mils100((pinnum-1)*PinSpacing-pinoffset), \ + mm2mils100(RowSpacing/2), \ + mm2mils100(PinDiam+ARing), \ + mm2mils100(Clearance), \ + mm2mils100(PinDiam+ARing+Clearance), \ + mm2mils100(PinDiam), \ + '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']') + + pinnum = col + 1 + (pins+1)/2 + Flags = '0x0001' + if pinnum <= pins: + print(' Pin[', \ + mm2mils100((col)*PinSpacing-pinoffset+PinSpacing/2), \ + mm2mils100(-RowSpacing/2), \ + mm2mils100(PinDiam+ARing), \ + mm2mils100(Clearance), \ + mm2mils100(PinDiam+ARing+Clearance), \ + mm2mils100(PinDiam), \ + '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']') + +print(' ElementLine[', \ + mm2mils100(-FaceX/2), \ + mm2mils100(-FaceY-RowSpacing/2), \ + mm2mils100(FaceX/2), \ + mm2mils100(-FaceY-RowSpacing/2), \ + LineWidth, ']') + +print(")") diff --git a/packages/assmann/aaz-m.py b/packages/assmann/aaz-m.py new file mode 100755 index 0000000..1e8273e --- /dev/null +++ b/packages/assmann/aaz-m.py @@ -0,0 +1,87 @@ +#!/usr/bin/python3 +# Copyright 2011 by Bdale Garbee . GPLv2 +# +# Program to emit PCB footprint(for Norcomp 182-YYY-213RYY1 connectors +# Female, right angle, 0.318 setback +# +# Needs pin count on command line, 9/15/25/37 are valid +# + +# dimensions in mm from R182-YYY-213RYY1-1.pdf + +PinDiam = 1.00 +PinSpacing = 2.77 +RowSpacing = 2.84 +FaceY = 9.5 +ARing = 0.8 +Clearance = 0.36 + +LineWidth = 1000 + +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 ) + +pins = int(sys.argv[1]) + +if pins == 9: + FaceX = 30.81 +elif pins == 15: + FaceX = 39.20 +elif pins == 25: + FaceX = 53.05 +elif pins == 37: + FaceX = 69.40 +else: + sys.stderr.write('Valid pin counts are 9|15|25|37\n') + sys.exit(1) + +pinoffset = -(pins - 1) / 4 * PinSpacing +if pins == 15: + pinoffset += PinSpacing/2 + +print('# author: Bdale Garbee') +print('# email: bdale@gag.com') +print('# dist-license: GPL 3') +print('# use-license: unlimited') + +print('Element[0x0 "DB%iF"' % pins,'"" "" 0 0 0 0 0 100 0x0]') +print("(") +for col in range (int((pins+1)/2)): + pinnum = col + 1 + if pinnum == 1: + Flags = '0x0101' + else: + Flags = '0x0001' + + print(' Pin[', \ + mm2mils100(-(pinnum-1)*PinSpacing-pinoffset), \ + mm2mils100(RowSpacing/2), \ + mm2mils100(PinDiam+ARing), \ + mm2mils100(Clearance), \ + mm2mils100(PinDiam+ARing+Clearance), \ + mm2mils100(PinDiam), \ + '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']') + + pinnum = col + 1 + (pins+1)/2 + Flags = '0x0001' + if pinnum <= pins: + print(' Pin[', \ + mm2mils100(-(col)*PinSpacing-pinoffset-PinSpacing/2), \ + mm2mils100(-RowSpacing/2), \ + mm2mils100(PinDiam+ARing), \ + mm2mils100(Clearance), \ + mm2mils100(PinDiam+ARing+Clearance), \ + mm2mils100(PinDiam), \ + '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']') + +print(' ElementLine[', \ + mm2mils100(-FaceX/2), \ + mm2mils100(-FaceY-RowSpacing/2), \ + mm2mils100(FaceX/2), \ + mm2mils100(-FaceY-RowSpacing/2), \ + LineWidth, ']') + +print(")")