imrishabh18/nema-23-stepper-controller

A four-layer NEMA23 stepper motor controller PCB featuring an RP2040 MCU, DRV8452 dual-phase driver, USB‑C PD power input/protection, current and temperature sensing, status LED/buzzer, and optional magnetic encoder.

Version
1.3.2
License
unset
Stars
1

checks/fabrication-screen.json

{
  "status": "needs-manufacturer-DFM-review",
  "circuitJsonSha256": "791e1326201938cd4862ebaf835939bc543103c625b509015bf388a69a53409c",
  "fabricatorSelected": false,
  "intendedOuterCopperOz": 2,
  "screenedProfile": "JLCPCB published multilayer 2 oz minimum track width/spacing 0.15/0.15 mm",
  "reference": "https://jlcpcb.com/capabilities/pcb-capabilities",
  "byLayer": {
    "top": {
      "minimumTraceWidthMm": 0.1,
      "tracesBelow015Mm": 139,
      "traceIdsBelow015Mm": [
        "pcb_trace_0",
        "pcb_trace_1",
        "pcb_trace_10",
        "pcb_trace_11",
        "pcb_trace_12",
        "pcb_trace_2",
        "pcb_trace_3",
        "pcb_trace_4",
        "pcb_trace_5",
        "pcb_trace_6",
        "pcb_trace_7",
        "pcb_trace_8",
        "pcb_trace_9",
        "source_net_11_mst0_0",
        "source_net_11_mst1_0",
        "source_net_12_mst0_0",
        "source_net_12_mst1_0",
        "source_net_13_mst0_0",
        "source_net_13_mst1_0",
        "source_net_18_0",
        "source_net_19_mst0_0",
        "source_net_20_0",
        "source_net_21_0",
        "source_net_22_mst0_0",
        "source_net_23_0",
        "source_net_24_mst0_0",
        "source_net_24_mst1_0",
        "source_net_25_mst0_0",
        "source_net_25_mst1_0",
        "source_net_26_mst0_0",
        "source_net_26_mst1_0",
        "source_net_26_mst2_0",
        "source_net_26_mst3_0",
        "source_net_27_mst1_0",
        "source_net_28_mst0_0",
        "source_net_28_mst1_0",
        "source_net_29_mst1_0",
        "source_net_31_0",
        "source_net_32_0",
        "source_net_34_0",
        "source_net_35_0",
        "source_net_38_0",
        "source_net_44_mst1_0",
        "source_net_4_mst0_0",
        "source_net_52_0",
        "source_net_53_mst2_0",
        "source_net_54_mst0_0",
        "source_net_60_0",
        "source_net_6_mst0_0",
        "source_net_7_mst1_0",
        "source_net_8_mst1_0",
        "source_trace_18__source_trace_96_mst0_0",
        "source_trace_18__source_trace_96_mst1_0",
        "source_trace_197__source_trace_222__source_net_45_mst1_0",
        "source_trace_31__source_trace_92__source_trace_94_mst0_0",
        "source_trace_31__source_trace_92__source_trace_94_mst1_0",
        "source_trace_31__source_trace_92__source_trace_94_mst2_0",
        "source_trace_32_0",
        "source_trace_33_0",
        "source_trace_34_0",
        "source_trace_350__source_net_2_mst1_0",
        "source_trace_350__source_net_2_mst2_0",
        "source_trace_353_0",
        "source_trace_35_0",
        "source_trace_36_0",
        "source_trace_48__source_net_5_mst0_0",
        "source_trace_48__source_net_5_mst1_0",
        "source_trace_48__source_net_5_mst2_0",
        "source_trace_52__source_net_1_mst0_0",
        "source_trace_52__source_net_1_mst10_0",
        "source_trace_52__source_net_1_mst12_0",
        "source_trace_52__source_net_1_mst13_0",
        "source_trace_52__source_net_1_mst14_0",
        "source_trace_52__source_net_1_mst15_0",
        "source_trace_52__source_net_1_mst16_0",
        "source_trace_52__source_net_1_mst17_0",
        "source_trace_52__source_net_1_mst18_0",
        "source_trace_52__source_net_1_mst19_0",
        "source_trace_52__source_net_1_mst1_0",
        "source_trace_52__source_net_1_mst20_0",
        "source_trace_52__source_net_1_mst21_0",
        "source_trace_52__source_net_1_mst22_0",
        "source_trace_52__source_net_1_mst23_0",
        "source_trace_52__source_net_1_mst24_0",
        "source_trace_52__source_net_1_mst25_0",
        "source_trace_52__source_net_1_mst26_0",
        "source_trace_52__source_net_1_mst27_0",
        "source_trace_52__source_net_1_mst28_0",
        "source_trace_52__source_net_1_mst29_0",
        "source_trace_52__source_net_1_mst2_0",
        "source_trace_52__source_net_1_mst30_0",
        "source_trace_52__source_net_1_mst31_0",
        "source_trace_52__source_net_1_mst32_0",
        "source_trace_52__source_net_1_mst33_0",
        "source_trace_52__source_net_1_mst34_0",
        "source_trace_52__source_net_1_mst35_0",
        "source_trace_52__source_net_1_mst36_0",
        "source_trace_52__source_net_1_mst37_0",
        "source_trace_52__source_net_1_mst38_0",
        "source_trace_52__source_net_1_mst39_0",
        "source_trace_52__source_net_1_mst40_0",
        "source_trace_52__source_net_1_mst41_0",
        "source_trace_52__source_net_1_mst42_0",
        "source_trace_52__source_net_1_mst43_0",
        "source_trace_52__source_net_1_mst44_0",
        "source_trace_52__source_net_1_mst45_0",
        "source_trace_52__source_net_1_mst46_0",
        "source_trace_52__source_net_1_mst47_0",
        "source_trace_52__source_net_1_mst48_0",
        "source_trace_52__source_net_1_mst49_0",
        "source_trace_52__source_net_1_mst4_0",
        "source_trace_52__source_net_1_mst50_0",
        "source_trace_52__source_net_1_mst51_0",
        "source_trace_52__source_net_1_mst52_0",
        "source_trace_52__source_net_1_mst53_0",
        "source_trace_52__source_net_1_mst54_0",
        "source_trace_52__source_net_1_mst55_0",
        "source_trace_52__source_net_1_mst5_0",
        "source_trace_52__source_net_1_mst6_0",
        "source_trace_52__source_net_1_mst7_0",
        "source_trace_52__source_net_1_mst8_0",
        "source_trace_52__source_net_1_mst9_0",
        "source_trace_55_0",
        "source_trace_56_0",
        "source_trace_57_0",
        "source_trace_58_0",
        "source_trace_68__source_trace_82__source_trace_100__source_net_0_mst1_0",
        "source_trace_68__source_trace_82__source_trace_100__source_net_0_mst27_0",
        "source_trace_68__source_trace_82__source_trace_100__source_net_0_mst28_0",
        "source_trace_68__source_trace_82__source_trace_100__source_net_0_mst32_0",
        "source_trace_68__source_trace_82__source_trace_100__source_net_0_mst36_0",
        "source_trace_68__source_trace_82__source_trace_100__source_net_0_mst40_0",
        "source_trace_68__source_trace_82__source_trace_100__source_net_0_mst50_0",
        "source_trace_68__source_trace_82__source_trace_100__source_net_0_mst55_0",
        "source_trace_68__source_trace_82__source_trace_100__source_net_0_mst57_0",
        "source_trace_68__source_trace_82__source_trace_100__source_net_0_mst64_0",
        "source_trace_68__source_trace_82__source_trace_100__source_net_0_mst81_0",
        "source_trace_68__source_trace_82__source_trace_100__source_net_0_mst84_0",
        "source_trace_68__source_trace_82__source_trace_100__source_net_0_mst96_0"
      ]
    },
    "inner1": {
      "minimumTraceWidthMm": 0.1,
      "tracesBelow015Mm": 26,
      "traceIdsBelow015Mm": [
        "source_net_11_mst1_0",
        "source_net_12_mst1_0",
        "source_net_13_mst1_0",
        "source_net_19_mst0_0",
        "source_net_20_0",
        "source_net_21_0",
        "source_net_23_0",
        "source_net_24_mst0_0",
        "source_net_25_mst1_0",
        "source_net_26_mst1_0",
        "source_net_26_mst3_0",
        "source_net_28_mst1_0",
        "source_net_29_mst1_0",
        "source_net_34_0",
        "source_net_35_0",
        "source_net_44_mst1_0",
        "source_net_60_0",
        "source_net_7_mst1_0",
        "source_net_8_mst1_0",
        "source_trace_31__source_trace_92__source_trace_94_mst1_0",
        "source_trace_31__source_trace_92__source_trace_94_mst2_0",
        "source_trace_32_0",
        "source_trace_34_0",
        "source_trace_56_0",
        "source_trace_68__source_trace_82__source_trace_100__source_net_0_mst28_0",
        "source_trace_68__source_trace_82__source_trace_100__source_net_0_mst81_0"
      ]
    },
    "inner2": {
      "minimumTraceWidthMm": 0.1,
      "tracesBelow015Mm": 27,
      "traceIdsBelow015Mm": [
        "source_net_11_mst1_0",
        "source_net_18_0",
        "source_net_19_mst0_0",
        "source_net_20_0",
        "source_net_24_mst0_0",
        "source_net_24_mst1_0",
        "source_net_25_mst0_0",
        "source_net_25_mst1_0",
        "source_net_26_mst0_0",
        "source_net_26_mst2_0",
        "source_net_27_mst1_0",
        "source_net_31_0",
        "source_net_32_0",
        "source_net_44_mst1_0",
        "source_net_54_mst0_0",
        "source_net_60_0",
        "source_net_7_mst1_0",
        "source_trace_18__source_trace_96_mst1_0",
        "source_trace_33_0",
        "source_trace_36_0",
        "source_trace_55_0",
        "source_trace_57_0",
        "source_trace_68__source_trace_82__source_trace_100__source_net_0_mst24_0",
        "source_trace_68__source_trace_82__source_trace_100__source_net_0_mst27_0",
        "source_trace_68__source_trace_82__source_trace_100__source_net_0_mst40_0",
        "source_trace_68__source_trace_82__source_trace_100__source_net_0_mst55_0",
        "source_trace_68__source_trace_82__source_trace_100__source_net_0_mst96_0"
      ]
    },
    "bottom": {
      "minimumTraceWidthMm": 0.1,
      "tracesBelow015Mm": 39,
      "traceIdsBelow015Mm": [
        "source_net_11_mst0_0",
        "source_net_11_mst1_0",
        "source_net_13_mst1_0",
        "source_net_22_mst0_0",
        "source_net_25_mst0_0",
        "source_net_27_mst1_0",
        "source_net_4_mst0_0",
        "source_net_52_0",
        "source_net_53_mst2_0",
        "source_net_8_mst1_0",
        "source_trace_197__source_trace_222__source_net_45_mst1_0",
        "source_trace_31__source_trace_92__source_trace_94_mst0_0",
        "source_trace_35_0",
        "source_trace_48__source_net_5_mst1_0",
        "source_trace_48__source_net_5_mst2_0",
        "source_trace_52__source_net_1_mst11_0",
        "source_trace_52__source_net_1_mst19_0",
        "source_trace_52__source_net_1_mst22_0",
        "source_trace_52__source_net_1_mst24_0",
        "source_trace_52__source_net_1_mst26_0",
        "source_trace_52__source_net_1_mst27_0",
        "source_trace_52__source_net_1_mst28_0",
        "source_trace_52__source_net_1_mst33_0",
        "source_trace_52__source_net_1_mst34_0",
        "source_trace_52__source_net_1_mst36_0",
        "source_trace_52__source_net_1_mst39_0",
        "source_trace_52__source_net_1_mst3_0",
        "source_trace_52__source_net_1_mst40_0",
        "source_trace_52__source_net_1_mst44_0",
        "source_trace_52__source_net_1_mst48_0",
        "source_trace_52__source_net_1_mst49_0",
        "source_trace_52__source_net_1_mst50_0",
        "source_trace_52__source_net_1_mst51_0",
        "source_trace_52__source_net_1_mst55_0",
        "source_trace_52__source_net_1_mst8_0",
        "source_trace_52__source_net_1_mst9_0",
        "source_trace_68__source_trace_82__source_trace_100__source_net_0_mst24_0",
        "source_trace_68__source_trace_82__source_trace_100__source_net_0_mst40_0",
        "source_trace_68__source_trace_82__source_trace_100__source_net_0_mst65_0"
      ]
    }
  },
  "nominalSmallViaAnnularRingMm": 0.075,
  "smallViaHoleDiameterMm": 0.3,
  "smallViaPadDiameterMm": 0.45,
  "finding": "The intended 2 oz outer copper conflicts with the existing 0.10 mm outer-layer tracks under the screened JLCPCB profile. Do not order this configuration without rerouting to accepted rules or a fabricator-approved process. Copper spacing, hole-to-copper and soldermask limits also require fabricator DFM. Switching to 1 oz requires a new motor-path thermal/current assessment.",
  "assemblyExportWarnings": [
    "J_USB pin-1/rotation unverified",
    "D_PWR supplier pin-1 unverified",
    "U_PD_BUFFER supplier and local pin-1 locations incompatible"
  ],
  "otherOpenRequirements": [
    "Confirm actual motor rear mounting pattern and heatsink attachment/base clearance",
    "Select fabrication/assembly treatment of exposed-pad thermal vias",
    "Qualify temperature/current behavior on the actual motor before full-current service"
  ],
  "checkedAt": "2026-10-06T21:18:13.932Z"
}