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"
]
}