imrishabh18/nema17-motor-controller-flex
An RP2040-based USB‑C/USB‑PD controller board that powers and drives a NEMA17 stepper via a DRV8825, with current/temperature/voltage monitoring, optional AS5600 encoder, buzzer/RGB status indicators, QSPI flash, and flexible motor/encoder connections.
- Version
- 1.2.0
- License
- unset
- Stars
- 0
schematic/SchematicSheets.tsx
import { schematicSections, schematicSheets } from "./config";
export const SchematicSheets = () => (
<>
<schematicsheet
name={schematicSheets.controller}
displayName="RP2040 Controller"
sheetIndex={1}
/>
<schematicsheet
name={schematicSheets.programming}
displayName="Programming USB-C & QSPI"
sheetIndex={2}
>
<schematicsection
name="MCU__usb"
/>
<schematicsection name="MCU__programming_supply" />
<schematicsection name="MCU__programming_flash" displayName="QSPI Flash" />
<schematicsection name="MCU__programming_bypass" />
<schematictext text="3.3 V Supply" schX={-10} schY={4.5} anchor="top_left" fontSize={0.22} />
<schematictext text="3.3 V Bypass" schX={-3} schY={-4.8} anchor="top_left" fontSize={0.22} />
<schematictext text="Programming USB-C" schX={-1.7} schY={5.5} anchor="top_left" fontSize={0.22} />
</schematicsheet>
<schematicsheet
name={schematicSheets.motorDriver}
displayName="Stepper Motor Driver"
sheetIndex={3}
>
<schematicsection
name={schematicSections.driverCore}
displayName="H-Bridge, Power & Control"
/>
<schematicsection
name={schematicSections.motorOutputs}
displayName="Stepper Motor Output"
/>
</schematicsheet>
<schematicsheet
name={schematicSheets.motorPower}
displayName="USB-C PD Motor Power"
sheetIndex={4}
>
<schematicsection
name={schematicSections.pdNegotiation}
/>
<schematicsection
name={schematicSections.pdFiltering}
/>
<schematicsection
name={schematicSections.pdMonitor}
displayName="PD Bus Voltage Monitor"
/>
<schematictext text="USB-C PD Negotiation" schX={-9} schY={4.5} anchor="top_left" fontSize={0.22} />
<schematictext text="Power Filtering" schX={-6} schY={-5.7} anchor="top_left" fontSize={0.22} />
<schematictext text="INA226 reads raw PD VBUS over I2C (0x40). MCU compares actual versus requested voltage before enabling the motor." schX={11} schY={4.5} anchor="top_left" fontSize={0.22} />
</schematicsheet>
<schematicsheet name={schematicSheets.thermalProtection}
displayName="Temperature Telemetry" sheetIndex={5}>
<schematicsection name="thermal_protection" />
<schematictext text="Temperature Sensing & MCU Alert" schX={-9} schY={4} anchor="top_left" fontSize={0.22} />
</schematicsheet>
</>
);