component
925-126J-51P
Public Made by Adomby adom
Amphenol RF RF Coaxial Connectors (SMPM jack), 925-126j-51p. KiCad symbol, footprint and 3D as used on Adom boards.
main
12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667
#!/usr/bin/env python3
"""Write the 925-126J-51P footprint from Amphenol RF's RECOMMENDED PCB LAYOUT (drawing 925-126J-51P Rev A).
x = 0 is the board edge, the connector runs into the board along +x. All numbers from the drawing:
board slot 3.6 +-0.05 wide x 5.03 deep; outer pads 8.12 long from the board edge, outer edges 4.92 apart,
inner edges 3.60 apart over the slot (x 0..5.03) then 2.08 apart (x 5.03..8.12);
centre pad 0.97 wide from the end of the slot (5.03) to 8.28 from the board edge.
Each outer pad is two plain rectangles with the same number (an L), so every EDA export keeps the full copper.
usage: mkfp.py <out.kicad_mod>"""
import sys, uuid
out = sys.argv[1]
U = lambda: str(uuid.uuid4())
SLOT_W, SLOT_D = 3.60, 5.03
OUT_W, IN_W_SLOT, IN_W_REAR, PAD_L = 4.92, 3.60, 2.08, 8.12
C_W, C_END = 0.97, 8.28
def rect_pad(num, x0, x1, y0, y1):
return (f'\t(pad "{num}" smd rect\n\t\t(at {round((x0 + x1) / 2, 4)} {round((y0 + y1) / 2, 4)})\n'
f'\t\t(size {round(x1 - x0, 4)} {round(y1 - y0, 4)})\n\t\t(layers "F.Cu" "F.Mask" "F.Paste")\n'
f'\t\t(uuid "{U()}")\n\t)\n')
def line(x0, y0, x1, y1, layer, w):
return (f'\t(fp_line\n\t\t(start {x0} {y0})\n\t\t(end {x1} {y1})\n\t\t(stroke (width {w}) (type default))\n'
f'\t\t(layer "{layer}")\n\t\t(uuid "{U()}")\n\t)\n')
def prop(name, val, x, y, layer, hide, size=1.0, th=0.15):
return (f'\t(property "{name}" "{val}"\n\t\t(at {x} {y})\n\t\t(unlocked yes)\n\t\t(layer "{layer}")\n'
+ ('\t\t(hide yes)\n' if hide else '') + f'\t\t(uuid "{U()}")\n\t\t(effects\n\t\t\t(font (size {size} {size}) (thickness {th}))\n\t\t)\n\t)\n')
s = '(footprint "925-126j-51p"\n\t(layer "F.Cu")\n'
s += '\t(descr "Amphenol RF 925-126J-51P SMPM jack, full detent, edge mount; land pattern and board slot per the RECOMMENDED PCB LAYOUT of customer outline drawing 925-126J-51P Rev A (x = 0 is the board edge)")\n'
s += '\t(tags "SMPM edge mount coaxial Amphenol RF 925-126J-51P")\n'
s += prop('Reference', 'REF**', 4.06, -3.6, 'F.SilkS', False)
s += prop('Value', '925-126j-51p', 4.06, 3.6, 'F.Fab', False)
s += prop('Datasheet', 'https://www.amphenolrf.com/en-us/assets/file/4065789372/', 0, 0, 'F.Fab', True)
s += prop('Description', 'SMPM jack, full detent, edge mount (Amphenol RF 925-126J-51P)', 0, 0, 'F.Fab', True)
s += '\t(attr smd)\n\t(duplicate_pad_numbers_are_jumpers no)\n'
# board slot (Edge.Cuts) and short board-edge stubs either side of it
h = SLOT_W / 2
for a in [(0, -h, SLOT_D, -h), (SLOT_D, -h, SLOT_D, h), (SLOT_D, h, 0, h), (0, -h, 0, -2.7), (0, h, 0, 2.7)]:
s += line(*a, 'Edge.Cuts', 0.05)
# F.Fab body outline (7.95 x 4.47 above the board) and the contact end (8.11)
bw = 4.47 / 2
for a in [(0, -bw, 7.95, -bw), (7.95, -bw, 7.95, bw), (7.95, bw, 0, bw), (0, bw, 0, -bw), (7.95, -0.355, 8.11, -0.355),
(8.11, -0.355, 8.11, 0.355), (8.11, 0.355, 7.95, 0.355)]:
s += line(*a, 'F.Fab', 0.1)
s += (f'\t(fp_text user "${{REFERENCE}}"\n\t\t(at 2.5 0 0)\n\t\t(unlocked yes)\n\t\t(layer "F.Fab")\n\t\t(uuid "{U()}")\n'
'\t\t(effects\n\t\t\t(font (size 0.6 0.6) (thickness 0.09))\n\t\t)\n\t)\n')
# F.SilkS: sides and rear, clear of the copper (copper ends at y +-2.46 and x 8.28)
for a in [(0, -2.66, 8.48, -2.66), (8.48, -2.66, 8.48, 2.66), (8.48, 2.66, 0, 2.66)]:
s += line(*a, 'F.SilkS', 0.12)
# F.CrtYd: copper + 0.25
s += (f'\t(fp_rect\n\t\t(start -0.25 -2.71)\n\t\t(end 8.53 2.71)\n\t\t(stroke (width 0.05) (type default))\n\t\t(fill no)\n'
f'\t\t(layer "F.CrtYd")\n\t\t(uuid "{U()}")\n\t)\n')
# pads
s += rect_pad('1', SLOT_D, C_END, -C_W / 2, C_W / 2)
for sg in (-1, 1):
yo, yi_s, yi_r = sg * OUT_W / 2, sg * IN_W_SLOT / 2, sg * IN_W_REAR / 2
s += rect_pad('2', 0, PAD_L, min(yo, yi_s), max(yo, yi_s)) # strip along the slot, x 0..8.12
ov = sg * 0.10 # 0.10 overlap into the strip
s += rect_pad('2', SLOT_D, PAD_L, min(yi_s + ov, yi_r), max(yi_s + ov, yi_r)) # widening behind the slot
s += '\t(embedded_fonts no)\n\t(model "${KIPRJMOD}/925-126j-51p.step"\n\t\t(offset (xyz 0 0 0))\n\t\t(scale (xyz 1 1 1))\n\t\t(rotate (xyz 0 0 0))\n\t)\n)\n'
open(out, 'w').write(s)
print('wrote', out)