ShiboSoftwareDev/linux-gameboy-advance

Restores PCB assembly metadata by assigning part numbers and 3D CAD models, removing test-point bodies, and validating top-side SMT solder-paste features without altering copper or pads.

Version
1.0.17
License
unset
Stars
0

modules/f1c100s/src/ClockCrystal.tsx

/** Abracon ABM8: https://abracon.com/Resonators/abm8.pdf, page 2.
 * 12 pF load variant; the two external 18 pF C0G capacitors allow 3 pF stray. */
export function ClockCrystal({
	placement,
}: {
	placement: { x: number; y: number; rotation: number };
}) {
	return (
		<crystal
			name="Y1"
			frequency="24MHz"
			loadCapacitance="12pF"
			pinVariant="four_pin"
			manufacturerPartNumber="ABM8-24.000MHZ-12-B1U-T"
			cadModel={{
				objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C1986477.obj?uuid=02485e56ba8d4732a26526d2983fc729",
				stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C1986477.step?uuid=02485e56ba8d4732a26526d2983fc729",
				pcbRotationOffset: 0,
				modelOriginPosition: { x: 0, y: -0.000012700000070253736, z: 0 },
			}}
			maxTraceLength={10}
			pcbX={placement.x}
			pcbY={placement.y}
			pcbRotation={placement.rotation}
			schX={-25}
			schY={-10}
			layer="top"
		>
			{" "}
			<footprint>
				{/* Abracon ABM8 recommended land pattern, top view. */}
				<smtpad
					portHints={["pin1"]}
					pcbX={-1.15}
					pcbY={-0.875}
					width={1.3}
					height={1.05}
					shape="rect"
				/>
				<smtpad
					portHints={["pin2"]}
					pcbX={1.15}
					pcbY={-0.875}
					width={1.3}
					height={1.05}
					shape="rect"
				/>
				<smtpad
					portHints={["pin3"]}
					pcbX={1.15}
					pcbY={0.875}
					width={1.3}
					height={1.05}
					shape="rect"
				/>
				<smtpad
					portHints={["pin4"]}
					pcbX={-1.15}
					pcbY={0.875}
					width={1.3}
					height={1.05}
					shape="rect"
				/>
				<silkscreenpath
					route={[
						{ x: -1.6, y: -1.25 },
						{ x: 1.6, y: -1.25 },
						{ x: 1.6, y: 1.25 },
						{ x: -1.6, y: 1.25 },
						{ x: -1.6, y: -1.25 },
					]}
				/>
			</footprint>
		</crystal>
	);
}