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

engineering/schematic-style.json

{
  "sheetSize": "A4",
  "nativeChipSymbols": [
    "DRV8452DDWR",
    "AS5600_ASOM",
    "TMP102AIDRLR",
    "SN74LVC1G08DBVR",
    "CH224Q",
    "INA240A1DR",
    "TCA9517DGKR",
    "TPS26630RGER",
    "RP2040",
    "W25Q16JVUXIQ",
    "AP2112K_3_3TRG1",
    "CH224A",
    "TPS26630RGET"
  ],
  "sectionDescriptions": {
    "MCU__usb": "Data USB \u2014 connects the controller to a host",
    "MCU__usb_series": "USB termination \u2014 damps data-line reflections",
    "MCU__programming_supply": "Logic supply \u2014 converts USB power to 3.3 V",
    "MCU__programming_flash": "QSPI flash \u2014 stores RP2040 firmware",
    "MCU__programming_bypass": "Supply bypass \u2014 supplies fast local current",
    "power": "Motor supply \u2014 protects and filters the VM rail",
    "usb_pd": "USB-PD \u2014 negotiates the motor supply voltage",
    "power_protection": "eFuse controls \u2014 set current limit and ramp time",
    "uvlo": "UVLO \u2014 blocks an insufficient input supply",
    "ovp": "OVP \u2014 disconnects an excessive input voltage",
    "power_good": "Power good \u2014 confirms the motor rail is ready",
    "driver": "Motor driver \u2014 regulates current in both windings",
    "thermal": "Interlock \u2014 permits motion only when armed and cool",
    "current_A": "Phase A \u2014 measures winding current at 0.2 V/A",
    "current_B": "Phase B \u2014 measures winding current at 0.2 V/A",
    "rgb": "Status LED \u2014 displays firmware-selected states",
    "alarm": "Alarm \u2014 switches the buzzer from a PWM signal",
    "encoder": "Optional encoder \u2014 reads shaft angle over I2C",
    "test_access": "Test pads \u2014 expose input power, VM and ground",
    "pd_control": "I2C buffer \u2014 isolates the unpowered PD controller",
    "MCU__rp2040": "Motion control \u2014 generates step and direction signals",
    "MCU__clock": "Clock \u2014 provides the 12 MHz timing reference",
    "MCU__power": "Logic checks \u2014 filter ADC power and show supply presence",
    "MCU__controls": "Boot and reset \u2014 select USB loading or restart",
    "MCU__debug": "Debug access \u2014 exposes SWD and logic rails"
  },
  "nativeConnectorSymbols": [
    "TYPE_C_16PIN_2MD_073_",
    "USB4105_GF_A"
  ]
}