0hmX/mt41k512m8da-107-it-p-footprints

This code defines the mechanical and physical layout of a Micron digital ball grid array (FBGA) package with 78 balls, including pin positions, footprint geometry, PCB pads, and silkscreen outlines for surface-mount integration.

Version
0.1.1
License
unset
Stars
1

dist/index.js

import { jsxs, jsx } from 'react/jsx-runtime';

var balls = [
	{
		ball: "A1",
		pin: 1,
		x: -3.2,
		y: 4.8
	},
	{
		ball: "B1",
		pin: 2,
		x: -3.2,
		y: 4
	},
	{
		ball: "C1",
		pin: 3,
		x: -3.2,
		y: 3.2
	},
	{
		ball: "D1",
		pin: 4,
		x: -3.2,
		y: 2.4
	},
	{
		ball: "E1",
		pin: 5,
		x: -3.2,
		y: 1.6
	},
	{
		ball: "F1",
		pin: 6,
		x: -3.2,
		y: 0.8
	},
	{
		ball: "G1",
		pin: 7,
		x: -3.2,
		y: 0
	},
	{
		ball: "H1",
		pin: 8,
		x: -3.2,
		y: -0.8
	},
	{
		ball: "J1",
		pin: 9,
		x: -3.2,
		y: -1.6
	},
	{
		ball: "K1",
		pin: 10,
		x: -3.2,
		y: -2.4
	},
	{
		ball: "L1",
		pin: 11,
		x: -3.2,
		y: -3.2
	},
	{
		ball: "M1",
		pin: 12,
		x: -3.2,
		y: -4
	},
	{
		ball: "N1",
		pin: 13,
		x: -3.2,
		y: -4.8
	},
	{
		ball: "A2",
		pin: 14,
		x: -2.4,
		y: 4.8
	},
	{
		ball: "B2",
		pin: 15,
		x: -2.4,
		y: 4
	},
	{
		ball: "C2",
		pin: 16,
		x: -2.4,
		y: 3.2
	},
	{
		ball: "D2",
		pin: 17,
		x: -2.4,
		y: 2.4
	},
	{
		ball: "E2",
		pin: 18,
		x: -2.4,
		y: 1.6
	},
	{
		ball: "F2",
		pin: 19,
		x: -2.4,
		y: 0.8
	},
	{
		ball: "G2",
		pin: 20,
		x: -2.4,
		y: 0
	},
	{
		ball: "H2",
		pin: 21,
		x: -2.4,
		y: -0.8
	},
	{
		ball: "J2",
		pin: 22,
		x: -2.4,
		y: -1.6
	},
	{
		ball: "K2",
		pin: 23,
		x: -2.4,
		y: -2.4
	},
	{
		ball: "L2",
		pin: 24,
		x: -2.4,
		y: -3.2
	},
	{
		ball: "M2",
		pin: 25,
		x: -2.4,
		y: -4
	},
	{
		ball: "N2",
		pin: 26,
		x: -2.4,
		y: -4.8
	},
	{
		ball: "A3",
		pin: 27,
		x: -1.6,
		y: 4.8
	},
	{
		ball: "B3",
		pin: 28,
		x: -1.6,
		y: 4
	},
	{
		ball: "C3",
		pin: 29,
		x: -1.6,
		y: 3.2
	},
	{
		ball: "D3",
		pin: 30,
		x: -1.6,
		y: 2.4
	},
	{
		ball: "E3",
		pin: 31,
		x: -1.6,
		y: 1.6
	},
	{
		ball: "F3",
		pin: 32,
		x: -1.6,
		y: 0.8
	},
	{
		ball: "G3",
		pin: 33,
		x: -1.6,
		y: 0
	},
	{
		ball: "H3",
		pin: 34,
		x: -1.6,
		y: -0.8
	},
	{
		ball: "J3",
		pin: 35,
		x: -1.6,
		y: -1.6
	},
	{
		ball: "K3",
		pin: 36,
		x: -1.6,
		y: -2.4
	},
	{
		ball: "L3",
		pin: 37,
		x: -1.6,
		y: -3.2
	},
	{
		ball: "M3",
		pin: 38,
		x: -1.6,
		y: -4
	},
	{
		ball: "N3",
		pin: 39,
		x: -1.6,
		y: -4.8
	},
	{
		ball: "A7",
		pin: 40,
		x: 1.6,
		y: 4.8
	},
	{
		ball: "B7",
		pin: 41,
		x: 1.6,
		y: 4
	},
	{
		ball: "C7",
		pin: 42,
		x: 1.6,
		y: 3.2
	},
	{
		ball: "D7",
		pin: 43,
		x: 1.6,
		y: 2.4
	},
	{
		ball: "E7",
		pin: 44,
		x: 1.6,
		y: 1.6
	},
	{
		ball: "F7",
		pin: 45,
		x: 1.6,
		y: 0.8
	},
	{
		ball: "G7",
		pin: 46,
		x: 1.6,
		y: 0
	},
	{
		ball: "H7",
		pin: 47,
		x: 1.6,
		y: -0.8
	},
	{
		ball: "J7",
		pin: 48,
		x: 1.6,
		y: -1.6
	},
	{
		ball: "K7",
		pin: 49,
		x: 1.6,
		y: -2.4
	},
	{
		ball: "L7",
		pin: 50,
		x: 1.6,
		y: -3.2
	},
	{
		ball: "M7",
		pin: 51,
		x: 1.6,
		y: -4
	},
	{
		ball: "N7",
		pin: 52,
		x: 1.6,
		y: -4.8
	},
	{
		ball: "A8",
		pin: 53,
		x: 2.4,
		y: 4.8
	},
	{
		ball: "B8",
		pin: 54,
		x: 2.4,
		y: 4
	},
	{
		ball: "C8",
		pin: 55,
		x: 2.4,
		y: 3.2
	},
	{
		ball: "D8",
		pin: 56,
		x: 2.4,
		y: 2.4
	},
	{
		ball: "E8",
		pin: 57,
		x: 2.4,
		y: 1.6
	},
	{
		ball: "F8",
		pin: 58,
		x: 2.4,
		y: 0.8
	},
	{
		ball: "G8",
		pin: 59,
		x: 2.4,
		y: 0
	},
	{
		ball: "H8",
		pin: 60,
		x: 2.4,
		y: -0.8
	},
	{
		ball: "J8",
		pin: 61,
		x: 2.4,
		y: -1.6
	},
	{
		ball: "K8",
		pin: 62,
		x: 2.4,
		y: -2.4
	},
	{
		ball: "L8",
		pin: 63,
		x: 2.4,
		y: -3.2
	},
	{
		ball: "M8",
		pin: 64,
		x: 2.4,
		y: -4
	},
	{
		ball: "N8",
		pin: 65,
		x: 2.4,
		y: -4.8
	},
	{
		ball: "A9",
		pin: 66,
		x: 3.2,
		y: 4.8
	},
	{
		ball: "B9",
		pin: 67,
		x: 3.2,
		y: 4
	},
	{
		ball: "C9",
		pin: 68,
		x: 3.2,
		y: 3.2
	},
	{
		ball: "D9",
		pin: 69,
		x: 3.2,
		y: 2.4
	},
	{
		ball: "E9",
		pin: 70,
		x: 3.2,
		y: 1.6
	},
	{
		ball: "F9",
		pin: 71,
		x: 3.2,
		y: 0.8
	},
	{
		ball: "G9",
		pin: 72,
		x: 3.2,
		y: 0
	},
	{
		ball: "H9",
		pin: 73,
		x: 3.2,
		y: -0.8
	},
	{
		ball: "J9",
		pin: 74,
		x: 3.2,
		y: -1.6
	},
	{
		ball: "K9",
		pin: 75,
		x: 3.2,
		y: -2.4
	},
	{
		ball: "L9",
		pin: 76,
		x: 3.2,
		y: -3.2
	},
	{
		ball: "M9",
		pin: 77,
		x: 3.2,
		y: -4
	},
	{
		ball: "N9",
		pin: 78,
		x: 3.2,
		y: -4.8
	}
];

/** Physical ball labels only. These are NOT DRAM signal names. */
const ballPinLabels = Object.fromEntries(balls.map(({ pin, ball }) => [`pin${pin}`, [ball, `ball_${ball}`]]));
/** Micron DA package; top view, A1 upper left, +Y up.
 * 0.42 mm copper pads selected from the independent KiCad grid reference.
 * See README for the distinction between land geometry and package dimensions.
 * No schematic, signal mapping, 3D model, or circuit is included here.
 */
function MicronDaFbga78Footprint() {
    return (jsxs("footprint", { children: [balls.map(({ pin, ball, x, y }) => (jsx("smtpad", { portHints: [`pin${pin}`, ball, `ball_${ball}`], pcbX: x, pcbY: y, shape: "circle", radius: 0.21, layer: "top" }, ball))), jsx("fabricationnotepath", { strokeWidth: 0.1, route: [
                    { x: -3.6, y: 5.25 }, { x: 4, y: 5.25 }, { x: 4, y: -5.25 },
                    { x: -4, y: -5.25 }, { x: -4, y: 4.85 }, { x: -3.6, y: 5.25 }
                ] }), jsx("silkscreenpath", { strokeWidth: 0.12, route: [
                    { x: -4.15, y: 5.4 }, { x: 4.15, y: 5.4 }, { x: 4.15, y: -5.4 },
                    { x: -4.15, y: -5.4 }, { x: -4.15, y: 5.4 }
                ] }), jsx("silkscreenpath", { strokeWidth: 0.12, route: [
                    { x: -4.4, y: 4.85 }, { x: -4.4, y: 5.65 }, { x: -3.6, y: 5.65 }
                ] }), jsx("courtyardoutline", { outline: [
                    { x: -4.55, y: 5.8 }, { x: 4.55, y: 5.8 }, { x: 4.55, y: -5.8 },
                    { x: -4.55, y: -5.8 }, { x: -4.55, y: 5.8 }
                ] })] }));
}

// Preview fixture only; no DRAM electrical model or connections.
var preview_circuit = () => (jsx("board", { width: 15, height: 17, routingDisabled: true, children: jsx("chip", { name: "U1", pinLabels: ballPinLabels, footprint: jsx(MicronDaFbga78Footprint, {}) }) }));

export { preview_circuit as default };