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>
  </>
);