AnasSarkiz/rp2040-usb-c-single-axis-dm542t-motion-controller--01a0e89c

A USB‑C RP2040 controller board with external QSPI flash, crystal clock, regulated 3.3/1.1/5 V power, boost-converted motor-driver supply, protected USB and limit inputs, status LEDs, reset/boot switches, and AO3400A MOSFET outputs for stepper-control signals.

Version
0.1.0-prototype.19
License
unset
Stars
0

lib/schematic-notes.tsx

import { Fragment } from "react"
import { schematicPosition, schematicSheets } from "./schematic-layout"

// Board operating points and component ratings; sources in DESIGN-REVIEW.md.
// IC ratings do not override the USB budget or imply measured board performance.
const chipNotes = [
  {
    name: "U1",
    x: -11,
    y: 8,
    lines: [
      "U1 / RP2040 motion + USB controller",
      "3.3 V I/O; internal 1.1 V core rail",
      "12 MHz crystal; firmware limit 2000 steps/s",
    ],
  },
  {
    name: "U2",
    x: -10,
    y: 7,
    lines: [
      "U2 / QSPI program flash",
      "16 Mbit (2 MiB); powered from 3.3 V",
      "Device supply range: 2.7-3.6 V",
    ],
  },
  {
    name: "U3",
    x: -10,
    y: 8,
    lines: [
      "U3 / 3.3 V linear regulator",
      "5 V input; IC rated 600 mA",
      "Board load is USB / thermal limited",
    ],
  },
  {
    name: "U4",
    x: -3,
    y: 3,
    lines: [
      "U4 / USB D+ and D- ESD clamp",
      "USB full speed; VBUS clamp rail 5 V",
      "ESD protection, not sustained overvoltage",
    ],
  },
  {
    name: "U5",
    x: -3,
    y: 9,
    lines: [
      "U5 / reverse-current blocking diode",
      "5 V USB path; IC rated 1.5 A",
      "Board USB request: 500 mA after config",
    ],
  },
  {
    name: "U6",
    x: -10,
    y: 7,
    lines: [
      "U6 / dual limit-input ESD clamp",
      "3.3 V logic; NC dry contacts only",
      "No 24 V sensors; open wire asserts limit",
    ],
  },
  {
    name: "U7",
    x: 1,
    y: 8,
    lines: [
      "U7 / buck-boost driver supply",
      "VDRV = 4.75 V nominal; 48.5 mA budget",
      "IC input range 1.8-5.5 V; forced PWM",
    ],
  },
  {
    name: "U8",
    x: -11,
    y: 8,
    lines: [
      "U8 / switched branch current limiter",
      "5 V input; ILIM = 100k to ground",
      "Calculated current limit: 232-306 mA",
    ],
  },
  {
    name: "U9",
    x: -11,
    y: 8,
    lines: [
      "U9 / 3.3 V brownout supervisor",
      "Reset threshold 2.93 V nominal",
      "Reset release delay: 120-350 ms",
    ],
  },
]

export function SchematicNotes({
  sheetName,
}: {
  sheetName: (typeof schematicSheets)[number]
}) {
  return (
    <>
      {chipNotes
        .filter(
          (note) => schematicPosition(note.name).schSheetName === sheetName,
        )
        .map((note) =>
          note.lines.map((text, index) => (
            <Fragment key={`${note.name}-${index}`}>
              <schematictext
                text={text}
                schX={note.x}
                schY={note.y - index * 0.48}
                anchor="left"
                fontSize={0.28}
                color="#24364b"
              />
            </Fragment>
          )),
        )}
      <schematictext
        text={`REV A0 / ${schematicSheets.indexOf(sheetName) + 1} of ${schematicSheets.length} / ${sheetName} / Untested prototype`}
        schX={-11}
        schY={-10}
        anchor="left"
        fontSize={0.25}
      />
    </>
  )
}