imrishabh18/rp2040-motor-controller
The circuit implements a powered USB interface with a W25Q16 flash memory chip, a RP2040 microcontroller, and AO3400A MOSFETs for switch control, enabling USB communication, memory storage, and device power management.
- Version
- 1.0.19
- License
- unset
- Stars
- 0
scripts/render-route-plan.tsx
import { Circuit } from 'tscircuit';
import { readFileSync, writeFileSync } from 'node:fs';
import Board from '../index.circuit';
import { canonicalRoutingInput } from '../routing/saved-routing';
const plan = JSON.parse(readFileSync(process.argv[2] ?? 'dist/feedback/route-plan.json','utf8'));
const routingAlgorithm=async(input:unknown)=>{
if(canonicalRoutingInput(input)!==canonicalRoutingInput(plan.expectedInput)) throw new Error('Candidate routing input mismatch');
const handlers=new Map<string,Function>();
return {on(name:string,fn:Function){handlers.set(name,fn)},stop(){},start(){handlers.get('complete')?.({traces:structuredClone(plan.traces)})}};
};
const circuit=new Circuit();circuit.add(<Board routingAlgorithm={routingAlgorithm as any}/>);await circuit.renderUntilSettled();
const json=circuit.getCircuitJson();writeFileSync('dist/feedback/circuit.json',JSON.stringify(json,null,2));
const errors=json.filter(e=>e.type.endsWith('_error'));console.log(JSON.stringify(errors,null,2));if(errors.length)process.exitCode=1;