techmannih/nema34-mounted-stepper-controller

A 48 V USB‑C PD 3.1 EPR NEMA‑34 stepper controller PCB combining STM32/TMC5160 control, external MOSFET motor bridges, protected power and regenerative braking, USB data, telemetry, diagnostics, status LEDs, and buzzer alarms.

Version
0.3.92
License
unset
Stars
1

imports/CSD19534Q5A.tsx

import type { ChipProps } from "@tscircuit/props"

const pinLabels = {
  pin1: ["S1", "source"],
  pin2: ["S2"],
  pin3: ["S3"],
  pin4: ["G", "gate"],
  pin5: ["D1", "drain"],
  pin6: ["D2"],
  pin7: ["D3"],
  pin8: ["D4"],
  pin9: ["D5"],
} as const

type PowerMosfetConnections = {
  source?: string
  gate?: string
  drain?: string
}
type PowerMosfetProps = Omit<
  ChipProps<typeof pinLabels>,
  "connections"
> & {
  connections?: PowerMosfetConnections
}

export const CSD19534Q5A = ({ connections, ...props }: PowerMosfetProps) => {
  return (
    <>
    <mosfet
      channelType="n"
      mosfetMode="enhancement"
      symbol={
        <symbol>
          <schematicpath points={[{ x: -0.65, y: -0.6 }, { x: 0.65, y: -0.6 }, { x: 0.65, y: 0.6 }, { x: -0.65, y: 0.6 }, { x: -0.65, y: -0.6 }]} fillColor="#ffffc2" isFilled />
          <port name="pin1" pinNumber={1} aliases={["S1", "source"]} direction="left" schX={-1.05} schY={0.4} schStemLength={0.4} />
          <port name="pin2" pinNumber={2} aliases={["S2"]} direction="left" schX={-1.05} schY={0.2} schStemLength={0.4} />
          <port name="pin3" pinNumber={3} aliases={["S3"]} direction="left" schX={-1.05} schY={0} schStemLength={0.4} />
          <port name="pin4" pinNumber={4} aliases={["G", "gate"]} direction="left" schX={-1.05} schY={-0.2} schStemLength={0.4} />
          <port name="pin5" pinNumber={5} aliases={["D1", "drain"]} direction="left" schX={-1.05} schY={-0.4} schStemLength={0.4} />
          <port name="pin6" pinNumber={6} aliases={["D2"]} direction="right" schX={1.05} schY={-0.3} schStemLength={0.4} />
          <port name="pin7" pinNumber={7} aliases={["D3"]} direction="right" schX={1.05} schY={-0.1} schStemLength={0.4} />
          <port name="pin8" pinNumber={8} aliases={["D4"]} direction="right" schX={1.05} schY={0.1} schStemLength={0.4} />
          <port name="pin9" pinNumber={9} aliases={["D5"]} direction="right" schX={1.05} schY={0.3} schStemLength={0.4} />
          <schematictext text="{NAME}" schX={0} schY={0.8} fontSize={0.2} anchor="bottom_center" />
          <schematictext text="CSD19534Q5A" schX={0} schY={-0.8} fontSize={0.2} anchor="top_center" />
        </symbol>
      }
      supplierPartNumbers={{
  "jlcpcb": [
    "C114200"
  ]
}}
      manufacturerPartNumber="CSD19534Q5A"
      footprint={<footprint>
        <smtpad portHints={["pin1"]} pcbX="-1.905mm" pcbY="-3.025394mm" width="0.7999984mm" height="1.3210032mm" shape="rect" />
<smtpad portHints={["pin2"]} pcbX="-0.635mm" pcbY="-3.025394mm" width="0.7999984mm" height="1.3210032mm" shape="rect" />
<smtpad portHints={["pin3"]} pcbX="0.635mm" pcbY="-3.025394mm" width="0.7999984mm" height="1.3210032mm" shape="rect" />
<smtpad portHints={["pin4"]} pcbX="1.905mm" pcbY="-3.025394mm" width="0.7999984mm" height="1.3210032mm" shape="rect" />
<smtpad portHints={["pin5"]} pcbX="1.905mm" pcbY="3.025394mm" width="0.7999984mm" height="1.3210032mm" shape="rect" />
<smtpad portHints={["pin6"]} pcbX="0.635mm" pcbY="3.025394mm" width="0.7999984mm" height="1.3210032mm" shape="rect" />
<smtpad portHints={["pin7"]} pcbX="-0.635mm" pcbY="3.025394mm" width="0.7999984mm" height="1.3210032mm" shape="rect" />
<smtpad portHints={["pin8"]} pcbX="-1.905mm" pcbY="3.025394mm" width="0.7999984mm" height="1.3210032mm" shape="rect" />
<smtpad portHints={["pin9"]} pcbX="0mm" pcbY="0.649986mm" width="4.5999908mm" height="3.5999928mm" shape="rect" />
<fabricationnotepath route={[{"x":-2.3755096000001004,"y":-3.101187600000003},{"x":-2.5862026000000924,"y":-3.101187600000003},{"x":-2.5862026000000924,"y":-3.101187600000003},{"x":-2.5862026000000924,"y":3.101187600000003},{"x":-2.5862026000000924,"y":3.101187600000003},{"x":-2.3755096000001004,"y":3.101187600000003}]} />
<fabricationnotepath route={[{"x":2.3755095999999867,"y":-3.101187600000003},{"x":2.5862025999999787,"y":-3.101187600000003},{"x":2.5862025999999787,"y":-3.101187600000003},{"x":2.5862025999999787,"y":3.101187600000003},{"x":2.5862025999999787,"y":3.101187600000003},{"x":2.3755095999999867,"y":3.101187600000003}]} />
<silkscreencircle pcbX="-2.84988mm" pcbY="-3.800094mm" radius="0.199898mm" />
<courtyardoutline outline={[{"x":-2.8899997999999414,"y":3.9358955999999807},{"x":2.889999800000055,"y":3.9358955999999807},{"x":2.889999800000055,"y":-3.9358955999999807},{"x":-2.8899997999999414,"y":-3.9358955999999807},{"x":-2.8899997999999414,"y":3.9358955999999807}]} />
      <silkscreentext text="{NAME}" pcbX="0mm" pcbY="4.94mm" anchorAlignment="center" />
      </footprint>}
      cadModel={{
        objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C114200.obj?uuid=92497acca17b48098aa21a0e69681f58",
        stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C114200.step?uuid=92497acca17b48098aa21a0e69681f58",
        pcbRotationOffset: 0,
        modelOriginPosition: { x: -0.0058669999999998446, y: -0.000012700000070253736, z: 0 },
      }}
      {...props}
    />
    {connections?.source && <trace name={`${props.name}_PIN1_SOURCE`} from={`.${props.name} > .pin1`} to={connections.source} />}
    {connections?.source && <trace name={`${props.name}_PIN2_SOURCE`} from={`.${props.name} > .pin2`} to={connections.source} />}
    {connections?.source && <trace name={`${props.name}_PIN3_SOURCE`} from={`.${props.name} > .pin3`} to={connections.source} />}
    {connections?.gate && <trace name={`${props.name}_PIN4_GATE`} from={`.${props.name} > .pin4`} to={connections.gate} />}
    {connections?.drain && <trace name={`${props.name}_PIN5_DRAIN`} from={`.${props.name} > .pin5`} to={connections.drain} />}
    {connections?.drain && <trace name={`${props.name}_PIN6_DRAIN`} from={`.${props.name} > .pin6`} to={connections.drain} />}
    {connections?.drain && <trace name={`${props.name}_PIN7_DRAIN`} from={`.${props.name} > .pin7`} to={connections.drain} />}
    {connections?.drain && <trace name={`${props.name}_PIN8_DRAIN`} from={`.${props.name} > .pin8`} to={connections.drain} />}
    {connections?.drain && <trace name={`${props.name}_PIN9_DRAIN`} from={`.${props.name} > .pin9`} to={connections.drain} />}
    </>
  )
}