astra/nema17-stepper-motor-controller-spring-clamp-rp2040

A 4-layer RP2040 controller board that negotiates USB‑C PD motor power and drives a NEMA17 stepper via a DRV8825, with current sensing, thermal shutdown, RGB status LED, buzzer alarm, optional AS5600 encoder, protection/filtering, and test points.

Version
1.4.0
License
unset
Stars
0

imports/KLJ_4020.tsx

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

const pinLabels = {
  pin1: ["_POS"],
  pin2: ["_NEG"]
} as const

export const KLJ_4020 = (props: ChipProps<typeof pinLabels>) => {
  return (
    <chip
      pinLabels={pinLabels}
      symbol={
        <symbol>
          <schematicpath points={[{"x":0.1,"y":0.22},{"x":0.18,"y":0.22}]} strokeColor="#000000" />
          <schematicpath points={[{"x":0.14,"y":0.26},{"x":0.14,"y":0.18}]} strokeColor="#000000" />
          <port name="pin2" pinNumber={2} aliases={["_NEG"]} direction="left" schX={-0.4} schY={0} schStemLength={0.4} />
          <port name="pin1" pinNumber={1} aliases={["_POS"]} direction="left" schX={-0.4} schY={0.2} schStemLength={0.4} />
          <schematicpath points={[{"x":0.32,"y":-0.12},{"x":0,"y":-0.12},{"x":0,"y":0.32},{"x":0.32,"y":0.32},{"x":0.6,"y":0.6},{"x":0.6,"y":-0.4},{"x":0.32,"y":-0.12}]} strokeColor="#880000" />
        </symbol>
      }
      supplierPartNumbers={{
  "jlcpcb": [
    "C556936"
  ]
}}
      manufacturerPartNumber="KLJ-4020"
      footprint={<footprint>
        <smtpad portHints={["pin1"]} pcbX={-1.75} pcbY={0} width={1} height={1.8} shape="rect"/>
        <smtpad portHints={["pin2"]} pcbX={1.75} pcbY={0} width={1} height={1.8} shape="rect"/>
        <silkscreenrect width={4} height={4} strokeWidth={0.1}/>
        <courtyardrect width={5} height={4.5}/>
      </footprint>}
      cadModel={{
        objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C556936.obj?uuid=87c01f599c7149efa758bc4161bebe59",
        stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C556936.step?uuid=87c01f599c7149efa758bc4161bebe59",
        pcbRotationOffset: 0,
        modelOriginPosition: { x: 0, y: 0, z: 0 },
      }}
      {...props}
    />
  )
}