From: Bdale Garbee Date: Wed, 17 Jul 2024 05:07:35 +0000 (-0600) Subject: add footprint generator for Abracon RF-45 with magnetics and LEDs X-Git-Tag: telelco-v3.0~13 X-Git-Url: https://git.gag.com/?a=commitdiff_plain;h=cc2dbdf15439e5dcaa446af7485120cbb818756a;p=hw%2Faltusmetrum add footprint generator for Abracon RF-45 with magnetics and LEDs --- diff --git a/packages/ARJM11D7009ABEW2.py b/packages/ARJM11D7009ABEW2.py new file mode 100755 index 0000000..fac13b9 --- /dev/null +++ b/packages/ARJM11D7009ABEW2.py @@ -0,0 +1,178 @@ +#!/usr/bin/python3 +# Copyright 2024 by Bdale Garbee . GPLv3 +# +# Program to emit PCB footprint for Abracon ARJM11D7-009-AB-EW2 +# 100baseT connector with magnetics and LEDs +# + +# dimensions in mm +PinDiam = 0.9 +PinSpacing = 1.27 +RowSpacing = 2.54 +Row1Y = -8.89 + +MntY = 0.0 +MntSpacing = 11.43 +MntDiam = 3.2 + +ShieldY = -3.05 +ShieldSpacing = 15.7 +ShieldDiam = 1.6 + +BoxYSize = 21.5 +BoxYBack = -10.85 +LineWidth = 0.25 +LEDplus = 2.54 +LEDminus = 2.54 + 2.03 +LEDspacing = 13.57 +LEDPinDiam = 1.0 + +MinAnnular = 700 +MinClearance = 600 +MaskDelta = 300 + +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 "ARJM11D7009ABEW2" "" "" 0 0 0 0 0 100 0x0]') +print("(") + +# mounting holes + +print(' Pin[', \ + mm2mils100(-MntSpacing / 2), \ + mm2mils100(MntY), \ + mm2mils100(MntDiam)+(MinAnnular*2), \ + (MinClearance*2), \ + mm2mils100(MntDiam)+(MinAnnular*2)+(MaskDelta*2), \ + mm2mils100(MntDiam), \ + '"pin8" "8"', '0x0001', ']') + +print(' Pin[', \ + mm2mils100(MntSpacing / 2), \ + mm2mils100(MntY), \ + mm2mils100(MntDiam)+(MinAnnular*2), \ + (MinClearance*2), \ + mm2mils100(MntDiam)+(MinAnnular*2)+(MaskDelta*2), \ + mm2mils100(MntDiam), \ + '"pin8" "8"', '0x0001', ']') + +# shield grounding holes + +print(' Pin[', \ + mm2mils100(ShieldSpacing / 2), \ + mm2mils100(ShieldY), \ + mm2mils100(ShieldDiam)+(MinAnnular*2), \ + (MinClearance*2), \ + mm2mils100(ShieldDiam)+(MinAnnular*2)+(MaskDelta*2), \ + mm2mils100(ShieldDiam), \ + '"pin8" "8"', '0x0001', ']') + +print(' Pin[', \ + mm2mils100(-ShieldSpacing / 2), \ + mm2mils100(ShieldY), \ + mm2mils100(ShieldDiam)+(MinAnnular*2), \ + (MinClearance*2), \ + mm2mils100(ShieldDiam)+(MinAnnular*2)+(MaskDelta*2), \ + mm2mils100(ShieldDiam), \ + '"pin8" "8"', '0x0001', ']') + +# main interface pins +pins = 8; +for col in range (int((pins+1)/2)): + for row in range (2): + if row == 1: + spacing=Row1Y+RowSpacing + Xmax = 3.5 + else: + spacing=Row1Y + Xmax = 2.5 + pinnum = (col * 2) + row + 1 + if pinnum == 1: + Flags = '0x0101' + else: + Flags = '0x0001' + print(' Pin[', \ + mm2mils100((Xmax - (pinnum - 1) - (row - 1))*PinSpacing), \ + mm2mils100(spacing), \ + mm2mils100(PinDiam)+(MinAnnular*2), \ + (MinClearance*2), \ + mm2mils100(PinDiam)+(MinAnnular*2)+(MaskDelta*2), \ + mm2mils100(PinDiam), \ + '"pin%i"' % pinnum, '"%i"' % pinnum, Flags, ']') + +# LED pins + +print(' Pin[', \ + mm2mils100(-LEDspacing / 2), \ + mm2mils100(LEDplus), \ + mm2mils100(LEDPinDiam)+(MinAnnular*2), \ + (MinClearance*2), \ + mm2mils100(PinDiam)+(MinAnnular*2)+(MaskDelta*2), \ + mm2mils100(PinDiam), \ + '"pin9" "9"', Flags, ']') + +print(' Pin[', \ + mm2mils100(-LEDspacing / 2), \ + mm2mils100(LEDminus), \ + mm2mils100(LEDPinDiam)+(MinAnnular*2), \ + (MinClearance*2), \ + mm2mils100(PinDiam)+(MinAnnular*2)+(MaskDelta*2), \ + mm2mils100(PinDiam), \ + '"pin10" "10"', Flags, ']') + +print(' Pin[', \ + mm2mils100(LEDspacing / 2), \ + mm2mils100(LEDplus), \ + mm2mils100(LEDPinDiam)+(MinAnnular*2), \ + (MinClearance*2), \ + mm2mils100(PinDiam)+(MinAnnular*2)+(MaskDelta*2), \ + mm2mils100(PinDiam), \ + '"pin11" "11"', Flags, ']') + +print(' Pin[', \ + mm2mils100(LEDspacing / 2), \ + mm2mils100(LEDminus), \ + mm2mils100(LEDPinDiam)+(MinAnnular*2), \ + (MinClearance*2), \ + mm2mils100(PinDiam)+(MinAnnular*2)+(MaskDelta*2), \ + mm2mils100(PinDiam), \ + '"pin12" "12"', Flags, ']') + +print(' ElementLine[', \ + mm2mils100(ShieldSpacing / 2), \ + mm2mils100(BoxYBack), \ + mm2mils100(ShieldSpacing / 2), \ + mm2mils100(BoxYBack + BoxYSize), \ + mm2mils100(LineWidth), ']') + +print(' ElementLine[', \ + mm2mils100(-ShieldSpacing / 2), \ + mm2mils100(BoxYBack), \ + mm2mils100(-ShieldSpacing / 2), \ + mm2mils100(BoxYBack + BoxYSize), \ + mm2mils100(LineWidth), ']') + +print(' ElementLine[', \ + mm2mils100(ShieldSpacing / 2), \ + mm2mils100(BoxYBack), \ + mm2mils100(-ShieldSpacing / 2), \ + mm2mils100(BoxYBack), \ + mm2mils100(LineWidth), ']') + +print(' ElementLine[', \ + mm2mils100(ShieldSpacing / 2), \ + mm2mils100(BoxYBack + BoxYSize), \ + mm2mils100(-ShieldSpacing / 2), \ + mm2mils100(BoxYBack + BoxYSize), \ + mm2mils100(LineWidth), ']') + +print(")") diff --git a/packages/Makefile b/packages/Makefile index 2a1f72c..92798cd 100644 --- a/packages/Makefile +++ b/packages/Makefile @@ -174,7 +174,8 @@ FOOTPRINTS= \ Omega2S.fp \ cu01sav.fp \ TSOT26.fp \ - NRS50.fp + NRS50.fp \ + ARJM11D7009ABEW2.fp .5c.fp: nickle $*.5c -o $@