AnasSarkiz/rp2040-usb-c-single-axis-dm542t-motion-controller--01a0e89c
A USB‑C RP2040 controller board with external QSPI flash, crystal clock, regulated 3.3/1.1/5 V power, boost-converted motor-driver supply, protected USB and limit inputs, status LEDs, reset/boot switches, and AO3400A MOSFET outputs for stepper-control signals.
- Version
- 0.1.0-prototype.19
- License
- unset
- Stars
- 0
scripts/render-gerbers.cjs
const gerberToSvg = require("gerber-to-svg")
const fs = require("node:fs")
const { Resvg } = require("@resvg/resvg-js")
const project = require("../project.json")
const iteration = project.source_version.split(".").at(-1)
const folder = `fabrication/${project.hardware_revision}-${project.source_version.replace("0.1.0-", "")}`
if (!fs.existsSync(folder))
throw new Error(`No current fabrication export: ${folder}`)
for (const layer of [
"F_Cu",
"B_Cu",
"F_Mask",
"B_Mask",
"F_Paste",
"F_SilkScreen",
"Edge_Cuts",
]) {
const converter = gerberToSvg(
fs.readFileSync(`${folder}/exported/${layer}.gbr`, "utf8"),
)
converter.on("data", (svg) => {
fs.writeFileSync(`evidence/iteration-${iteration}-gerber-${layer}.svg`, svg)
fs.writeFileSync(
`evidence/iteration-${iteration}-gerber-${layer}.png`,
new Resvg(svg, {
background: "white",
fitTo: { mode: "width", value: 1600 },
})
.render()
.asPng(),
)
})
converter.on("error", (error) => {
throw error
})
}