imrishabh18/nema-23-stepper-controller
A 57 mm four-layer RP2040 NEMA23 stepper-controller PCB with USB‑C/USB‑PD power input, protected motor rail, DRV8452 dual-winding driver, bidirectional current sensing, temperature/enable interlock, optional magnetic encoder, RGB LED and buzzer status indicators, and motor/test connectors.
- Version
- 1.2.3
- License
- unset
- Stars
- 0
start-preview.mjs
import {createRequire} from 'node:module'
import {readFileSync,writeFileSync,mkdirSync} from 'node:fs'
import {dirname,resolve} from 'node:path'
import {fileURLToPath} from 'node:url'
import {spawn} from 'node:child_process'
// The current experimental WebGPU renderer rejects through-pad routes.
// Use the CLI's supported standalone override to change only the default
// renderer in a disposable copy. Installed dependencies remain untouched.
const project=resolve(process.argv[2]??dirname(fileURLToPath(import.meta.url)))
const require=createRequire(resolve(project,'package.json'))
const input=require.resolve('tscircuit/browser')
const source=readFileSync(input,'utf8')
const pattern=/renderer:(\w+)="webgpu"/g
if([...source.matchAll(pattern)].length!==1)throw Error('Review the Canvas default adapter for this tscircuit version')
const output=resolve(project,'.tscircuit/runframe-canvas.js')
mkdirSync(dirname(output),{recursive:true})
writeFileSync(output,source.replace(pattern,'renderer:$1="canvas"'))
const child=spawn(resolve(project,'node_modules/.bin/tsci'),['dev','--port',process.env.PORT??'3020'],{
cwd:project,stdio:'inherit',env:{...process.env,RUNFRAME_STANDALONE_FILE_PATH:output},
})
for(const signal of ['SIGINT','SIGTERM'])process.on(signal,()=>child.kill(signal))
child.on('exit',code=>process.exit(code??0))