shibosoftwaredev/f1c100s-linux-nema17-stepper-controller
A four-layer NEMA 17 motor-controller PCB combining an Allwinner F1C100S Linux computer, USB‑PD/buck power system, W5500 Ethernet, STM32 real-time motion control, DRV8825 stepper driver, protection/temperature/current telemetry, USB interfaces, and local LED/buzzer diagnostics.
- Version
- 0.4.56
- License
- unset
- Stars
- 0
scripts/prepare-round8-extended.mjs
import fs from "node:fs"
import assert from "node:assert/strict"
import { routingSignature } from "../routing-signature"
const read=p=>JSON.parse(fs.readFileSync(p,"utf8"))
const before=read("reports/round8-validated-local-circuit.json")
const after=read("dist/index/circuit.json")
assert.deepEqual(after.filter(e=>e.type.endsWith("_error")),[],"valid placement before routing")
const moved=new Set(["C_ETH_TCT"])
const ids=new Set(before.filter(e=>e.type==="source_component"&&moved.has(e.name)).map(e=>e.source_component_id))
const ports=new Set(before.filter(e=>e.type==="source_port"&&ids.has(e.source_component_id)).map(e=>e.source_port_id))
const affected=before.filter(e=>e.type==="source_trace"&&e.connected_source_port_ids.some(id=>ports.has(id))).map(e=>e.source_trace_id)
const retained=read("routing/round8-validated-local-routes.json").filter(t=>!affected.includes(t.source_trace_id))
fs.writeFileSync("routing/round8-extended-retained.json",JSON.stringify(retained,null,2)+"\n")
fs.writeFileSync("routing/placement.json",JSON.stringify(after,null,2)+"\n")
fs.writeFileSync("routing/expected-input.json",JSON.stringify(routingSignature(after),null,2)+"\n")
fs.writeFileSync("reports/round8-extended-routing-plan.json",JSON.stringify({notInstalled:true,moved:[...moved],affectedSourceTraceIds:affected},null,2)+"\n")
console.log(JSON.stringify({retained:retained.length,affected}))