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
imports/DMT6009LFG_7.tsx
import type { ChipProps } from "@tscircuit/props"
// Copper lands verified identical to the exact C439728 supplier import.
// Retains the reviewed native schematic symbol, courtyard and paste windows.
const pinLabels = {
pin1: ["S3"],
pin2: ["S2"],
pin3: ["S1"],
pin4: ["G"],
pin5: ["D"]
} as const
export const DMT6009LFG_7 = (props: ChipProps<typeof pinLabels>) => {
const pcbAngle = parseFloat(String(props.pcbRotation ?? 0)) * Math.PI / 180
const rotate = (points: Array<{x:number;y:number}>) => points.map(({x,y})=>({x:y*1.8,y:(x-.1)*1.8}))
return (
<chip
pinAttributes={{pin1:{isPassive:true},pin2:{isPassive:true},pin3:{isPassive:true},pin4:{isInput:true,mustBeConnected:true},pin5:{isPassive:true}}}
pinLabels={pinLabels}
symbol={
<symbol>
<schematictext text="{NAME}" schX={0} schY={1.05} fontSize={0.22} anchor="center" />
<schematictext text="DMT6009LFG-7" schX={0} schY={0.72} fontSize={0.18} anchor="center" />
<schematicpath points={rotate([{"x":-0.1,"y":0},{"x":0.02,"y":-0.04},{"x":0.02,"y":0.04},{"x":-0.1,"y":0}])} strokeColor="#880000" isFilled fillColor="#880000" />
<schematicpath points={rotate([{"x":0.3,"y":0.04},{"x":0.24,"y":-0.06},{"x":0.36,"y":-0.06},{"x":0.3,"y":0.04}])} strokeColor="#880000" isFilled fillColor="#880000" />
<schematicpath points={rotate([{"x":-0.1,"y":0.14},{"x":0.1,"y":0.14},{"x":0.1,"y":0.2},{"x":0.3,"y":0.2},{"x":0.3,"y":0.04}])} strokeColor="#880000" />
<schematicpath points={rotate([{"x":-0.1,"y":0},{"x":0.1,"y":0},{"x":0.1,"y":-0.2},{"x":0.3,"y":-0.2},{"x":0.3,"y":-0.06}])} strokeColor="#880000" />
<schematicpath points={rotate([{"x":0.1,"y":-0.14},{"x":-0.1,"y":-0.14}])} strokeColor="#880000" />
<schematicpath points={rotate([{"x":-0.14,"y":0.18},{"x":-0.14,"y":-0.18}])} strokeColor="#880000" />
<schematicpath points={rotate([{"x":-0.1,"y":0.18},{"x":-0.1,"y":0.1}])} strokeColor="#880000" />
<schematicpath points={rotate([{"x":-0.1,"y":-0.04},{"x":-0.1,"y":0.04}])} strokeColor="#880000" />
<schematicpath points={rotate([{"x":-0.1,"y":-0.18},{"x":-0.1,"y":-0.1}])} strokeColor="#880000" />
<schematicpath points={rotate([{"x":0.38,"y":0.04},{"x":0.34,"y":0.04},{"x":0.26,"y":0.04},{"x":0.22,"y":0.04}])} strokeColor="#880000" />
<port name="D" pinNumber={5} aliases={["pin5"]} direction="right" schX={rotate([{x:0.1,y:0.4}])[0].x} schY={rotate([{x:0.1,y:0.4}])[0].y} schStemLength={0.36} />
<port name="G" pinNumber={4} aliases={["pin4"]} direction="down" schX={rotate([{x:-0.3,y:0}])[0].x} schY={rotate([{x:-0.3,y:0}])[0].y} schStemLength={0.288} />
<port name="S2" pinNumber={2} aliases={["pin2"]} direction="left" schX={rotate([{x:0.1,y:-0.4}])[0].x} schY={rotate([{x:0.1,y:-0.4}])[0].y} schStemLength={0.36} />
<schematicpath points={rotate([{x:-0.1,y:-0.3},{x:0.3,y:-0.3}])} strokeColor="#880000" />
<port name="S3" pinNumber={1} aliases={["pin1"]} direction="left" schX={rotate([{x:-0.1,y:-0.4}])[0].x} schY={rotate([{x:-0.1,y:-0.4}])[0].y} schStemLength={0.18} />
<port name="S1" pinNumber={3} aliases={["pin3"]} direction="left" schX={rotate([{x:0.3,y:-0.4}])[0].x} schY={rotate([{x:0.3,y:-0.4}])[0].y} schStemLength={0.18} />
</symbol>
}
supplierPartNumbers={{
"jlcpcb": [
"C439728"
]
}}
manufacturerPartNumber="DMT6009LFG-7"
footprint={<footprint>
<smtpad portHints={["pin4"]} pcbX="0.974852mm" pcbY="-1.541526mm" width="0.419989mm" height="0.6999986mm" shape="rect" />
<smtpad portHints={["pin3"]} pcbX="0.324866mm" pcbY="-1.541526mm" width="0.419989mm" height="0.6999986mm" shape="rect" />
<smtpad portHints={["pin2"]} pcbX="-0.32512mm" pcbY="-1.541526mm" width="0.419989mm" height="0.6999986mm" shape="rect" />
<smtpad portHints={["pin1"]} pcbX="-0.975106mm" pcbY="-1.541526mm" width="0.419989mm" height="0.6999986mm" shape="rect" />
<smtpad portHints={["pin5"]} points={[{x: "-1.2001246mm", y: "-0.4315206mm"}, {x: "-1.2001246mm", y: "1.8184622mm"}, {x: "-0.7501128mm", y: "1.8184622mm"}, {x: "-0.7501128mm", y: "1.228471mm"}, {x: "-0.5501132mm", y: "1.228471mm"}, {x: "-0.5501132mm", y: "1.8184622mm"}, {x: "-0.1001268mm", y: "1.8184622mm"}, {x: "-0.1001268mm", y: "1.228471mm"}, {x: "0.0998728mm", y: "1.228471mm"}, {x: "0.0998728mm", y: "1.8184622mm"}, {x: "0.5498846mm", y: "1.8184622mm"}, {x: "0.5498846mm", y: "1.228471mm"}, {x: "0.7498842mm", y: "1.228471mm"}, {x: "0.7498842mm", y: "1.8184622mm"}, {x: "1.1998706mm", y: "1.8184622mm"}, {x: "1.1998706mm", y: "-0.4315206mm"}, {x: "-1.2001246mm", y: "-0.4315206mm"}]} shape="polygon" solderPasteMargin={-2} />
{/* Independent rectangular stencil windows over the unchanged drain land.
Four exposed-pad windows plus four drain fingers; factory process review required. */}
{[-0.575127, 0.574873].flatMap(x => [-0.031525, 0.828475].map(y => (
<solderpaste key={`drain-${x}-${y}`} shape="rect" layer="top" pcbX={x} pcbY={y} width={1.05} height={0.7} />
)))}
{[-0.975106, -0.32512, 0.324866, 0.974852].map(x => (
<solderpaste key={`finger-${x}`} shape="rect" layer="top" pcbX={x} pcbY={1.523467} width={0.35} height={0.49} />
))}
<silkscreencircle pcbX="-1.010158mm" pcbY="-2.521458mm" radius="0.124968mm" />
<silkscreenrect pcbX="0mm" pcbY="0mm" width="3.556mm" height="4.191mm" strokeWidth="0.254mm" />
<silkscreentext text="{NAME}" pcbX="0mm" pcbY="3.085594mm" anchorAlignment="center" fontSize="1mm" />
<courtyardoutline outline={[{"x":-2.02800000000002,"y":2.3355940000001283},{"x":2.02800000000002,"y":2.3355940000001283},{"x":2.02800000000002,"y":-2.9142059999998082},{"x":-2.02800000000002,"y":-2.9142059999998082},{"x":-2.02800000000002,"y":2.3355940000001283}]} />
</footprint>}
cadModel={{
objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C439728.obj?uuid=7326ba298fbd406bbed597220d6d7da9",
stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C439728.step?uuid=7326ba298fbd406bbed597220d6d7da9",
pcbRotationOffset: 0,
// The current native bounds include stencil apertures. Register CAD to
// the catalog/body datum, not the asymmetric pad/paste bounding box.
positionOffset: { x: -0.06152915*Math.sin(pcbAngle), y: 0.06152915*Math.cos(pcbAngle), z: 0 },
modelOriginPosition: { x: 0.00013969999997698324, y: 0.03150869999990391, z: -0.01 },
}}
{...props}
/>
)
}