imrishabh18/nema-23-stepper-controller

A 57 mm four-layer RP2040 NEMA23 stepper-controller PCB with USB‑C/USB‑PD power input, protected motor rail, DRV8452 dual-winding driver, bidirectional current sensing, temperature/enable interlock, optional magnetic encoder, RGB LED and buzzer status indicators, and motor/test connectors.

Version
1.2.3
License
unset
Stars
0

passives.tsx

const driver = { schSheetName: "driver", schSectionName: "driver" };
const thermal = { schSheetName: "thermal", schSectionName: "thermal" };
// Explicit voltage ratings, PCB locations; schematic placement is automatic.
export function Passives() {
    return <>
  {[
            ["C_VM1", "10nF", "100V", "0603", -0.5, -14.8, "VM", "GND"],
            ["C_VM2", "10nF", "100V", "0603", 17, -12.5, "VM", "GND"],
            ["C_VM3", "2.2uF", "100V", "1210", 24, -12.3, "VM", "GND"],
            ["C_CP", "100nF", "100V", "0805", 1, -2.8, "CPH", "CPL"],
            ["C_VCP", "1uF", "25V", "0805", -2.5, -11, "VCP", "VM"],
            ["C_DVDD", "1uF", "10V", "0603", 15, -2.5, "DVDD", "GND"],
            ["C_VCC", "100nF", "16V", "0603", 12, -2.5, "V3V3", "GND"],
            ["C_VREF", "10nF", "16V", "0603", 5.6, 0.8, "VREF", "GND"],
        ].map(([name, value, voltage, fp, x, y, a, b]) => <capacitor schMarginX={0.35} schMarginY={0.7} key={name} name={String(name)} capacitance={String(value)} maxVoltageRating={String(voltage)} footprint={String(fp)} pcbX={Number(x)} pcbY={Number(y)} schOrientation="vertical" {...driver} connections={{ pin1: `net.${a}`, pin2: `net.${b}` }}/>)}
  {[
            ["R_REF_TOP", "2.61k", 6, 4.5, "V3V3", "VREF"],
            ["R_REF_BOT", "10k", 6, 2.7, "VREF", "GND"],
            ["R_CS", "10k", 4.5, -2.5, "SPI_CS", "V3V3"],
            ["R_FAULT", "10k", 19, -1, "FAULT_N", "V3V3"],
            ["R_HOME", "10k", 19, -3, "HOME_N", "V3V3"],
            ["R_WAKE", "100k", 1, -0.9, "WAKE", "GND"],
            ["R_ENABLE", "100k", 4.5, -0.9, "ENABLE_SAFE", "GND"],
            ["R_STEP", "100k", 7.5, -2.5, "STEP", "GND"],
        ].map(([name, value, x, y, a, b]) => <resistor schMarginX={0.35} schMarginY={0.7} key={name} name={String(name)} resistance={String(value)} tolerance="1%" footprint="0603" pcbX={Number(x)} pcbY={Number(y)} schOrientation="vertical" {...driver} connections={{ pin1: `net.${a}`, pin2: `net.${b}` }}/>)}
  {[
            ["R_SDA", "4.7k", 21, -6, "TEMP_SDA", "V3V3"],
            ["R_SCL", "4.7k", 21, -8, "TEMP_SCL", "V3V3"],
            ["R_ALERT", "10k", 20.2, -10, "TEMP_OK", "V3V3"],
            ["R_ARM", "100k", 1, 5.5, "ARM", "GND"],
        ].map(([name, value, x, y, a, b]) => <resistor schMarginX={0.35} schMarginY={0.7} key={name} name={String(name)} resistance={String(value)} tolerance="1%" footprint="0603" pcbX={Number(x)} pcbY={Number(y)} schOrientation="vertical" {...thermal} connections={{ pin1: `net.${a}`, pin2: `net.${b}` }}/>)}
  <capacitor schMarginX={0.35} schMarginY={0.7} name="C_TEMP" capacitance="100nF" footprint="0603" pcbX={18} pcbY={-5.5} schOrientation="vertical" {...thermal} connections={{ pin1: "net.V3V3", pin2: "net.GND" }}/>
  <capacitor schMarginX={0.35} schMarginY={0.7} name="C_GATE" capacitance="100nF" footprint="0603" pcbX={-2} pcbY={7} schOrientation="vertical" {...thermal} connections={{ pin1: "net.V3V3", pin2: "net.GND" }}/>
    </>;
}