seveibar/adm6-breakout
This code defines PCB designs featuring a 60-pin fanout or direct routing layout with multiple signal and power layers, test pads, and component footprints for a high-density electronic breakout board.
- Version
- 1.0.2
- License
- unset
- Stars
- 0
scripts/render-fanout-stage.mjs
import { mkdirSync, readFileSync, writeFileSync } from "node:fs"
import { Resvg } from "@resvg/resvg-js"
import { convertCircuitJsonToPcbSvg } from "circuit-to-svg"
const debugDir = "dist/autorouter-debug"
const outputDir = "dist/adm6-fanout"
const circuit = JSON.parse(
readFileSync(`${debugDir}/board.source-and-pcb.circuit.json`, "utf8"),
)
const fanoutTraces = JSON.parse(
readFileSync(`${debugDir}/phase-1.previous-output.traces.json`, "utf8"),
)
const fanoutCircuit = [...circuit, ...fanoutTraces]
mkdirSync(outputDir, { recursive: true })
writeFileSync(
`${outputDir}/fanout-stage.circuit.json`,
JSON.stringify(fanoutCircuit, null, 2),
)
const svg = convertCircuitJsonToPcbSvg(fanoutCircuit, {
width: 1800,
height: 700,
matchBoardAspectRatio: true,
backgroundColor: "#111827",
showPinNumbers: false,
})
writeFileSync(`${outputDir}/fanout-stage.svg`, svg)
const png = new Resvg(svg, {
fitTo: { mode: "width", value: 2400 },
}).render()
writeFileSync(`${outputDir}/fanout-stage.png`, png.asPng())