MustafaMulla29/rp2040-bldc-motor-controller-new
73×72 mm 4-layer USB‑C PD (5/9/15/20 V) RP2040 controller PCB with protected power switching, MCT8329A sensorless BLDC three-phase MOSFET bridge, USB data/programming, onboard controls, and three motor outputs feeding a 2212 motor through rigid bullet adapters.
- Version
- 0.3.100
- License
- unset
- Stars
- 0
assembly/full-assembly.tsx
import React from "react"
import {assembly} from "@tscircuit/core"
import type {CadComponent,CircuitJson} from "circuit-json"
import MotorAssembly from "./index"
import {jscad,renderToJscadPlan} from "jscad-fiber/headless"
import {usbConnections} from "./usb-connections"
const enclosurePlan=()=>renderToJscadPlan(<jscad.colorize color="#3a4048"><jscad.subtract><jscad.cuboid size={[40,20,20]}/><jscad.cuboid size={[14,9,3]} center={[17,0,0]}/></jscad.subtract></jscad.colorize>)
export default function FullAssembly({includeBoard=true,socketCad,pcb}:{includeBoard?:boolean;socketCad:CadComponent[];pcb:CircuitJson}) {
return <MotorAssembly includeBoard={includeBoard} socketCad={socketCad}>
{usbConnections(pcb).map(c=><React.Fragment key={c.ref}>
<assembly.subassembly name={c.owner} displayName={c.displayName}
cadModel={{jscad:enclosurePlan(),positionOffset:c.enclosure}} />
<assembly.cable name={c.name} from=".TOP_ASSEMBLY_CONTROLLER" to={`.${c.owner}`}
model="usb_c" fromMatingPoint={c.from} toMatingPoint={c.to}/>
</React.Fragment>)}
</MotorAssembly>
}