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.cjs
'use strict';
var jsxRuntime = require('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 (jsxRuntime.jsxs("footprint", { children: [balls.map(({ pin, ball, x, y }) => (jsxRuntime.jsx("smtpad", { portHints: [`pin${pin}`, ball, `ball_${ball}`], pcbX: x, pcbY: y, shape: "circle", radius: 0.21, layer: "top" }, ball))), jsxRuntime.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 }
] }), jsxRuntime.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 }
] }), jsxRuntime.jsx("silkscreenpath", { strokeWidth: 0.12, route: [
{ x: -4.4, y: 4.85 }, { x: -4.4, y: 5.65 }, { x: -3.6, y: 5.65 }
] }), jsxRuntime.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 = () => (jsxRuntime.jsx("board", { width: 15, height: 17, routingDisabled: true, children: jsxRuntime.jsx("chip", { name: "U1", pinLabels: ballPinLabels, footprint: jsxRuntime.jsx(MicronDaFbga78Footprint, {}) }) }));
module.exports = preview_circuit;