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>
}