pixalynx/esp32-usb-ducky

This design features a PCB with key components including an SOT-223 AMS1117 voltage regulator, a USB Type-C connector with ESD protection array, an ESP32-S3-WROOM-1 module with integrated USB, a microSD card socket, power management chips, status LED, reset and boot buttons, and associated decoupling and signal routing, all arranged on a compact 26mm x 84.5mm dual-layer PCB.

Version
1.2.4
License
unset
Stars
0

imports/U261_121N_4BS2S.tsx

import type { ChipProps } from "@tscircuit/props"

const pinLabels = {
  pin25: ["SHELL1"],
  pin26: ["SHELL2"],
  pin27: ["A1","GND1"],
  pin28: ["A2","SSTXP1"],
  pin29: ["A3","SSTXN1"],
  pin30: ["A4","VBUS1"],
  pin31: ["B12","GND2"],
  pin32: ["B11","SSRXP1"],
  pin33: ["B10","SSRXN1"],
  pin34: ["B9","VBUS2"],
  pin35: ["A5","CC1"],
  pin36: ["A6","DP1"],
  pin37: ["A7","DN1"],
  pin38: ["A12","GND3"]
} as const

const pinAttributes = {
  pin30: { requiresPower: true },
  pin34: { requiresPower: true },
  pin27: { requiresGround: true },
  pin31: { requiresGround: true },
  pin38: { requiresGround: true },
  pin25: { requiresGround: true },
  pin26: { requiresGround: true },
} as const

export const U261_121N_4BS2S = (props: ChipProps<typeof pinLabels>) => {
  return (
    <chip
      pinLabels={pinLabels}
      pinAttributes={pinAttributes}
      supplierPartNumbers={{
  "jlcpcb": [
    "C2879827"
  ]
}}
      manufacturerPartNumber="U261-121N-4BS2S"
      footprint={<footprint>
        <platedhole  portHints={["pin25"]} pcbX="-4.275074mm" pcbY="0.17498695mm" holeWidth="0.5000244mm" holeHeight="1.700022mm" outerWidth="1.1999976mm" outerHeight="2.3999952mm" shape="pill" />
<platedhole  portHints={["pin26"]} pcbX="4.27482mm" pcbY="0.17498695mm" holeWidth="0.5000244mm" holeHeight="1.700022mm" outerWidth="1.1999976mm" outerHeight="2.3999952mm" shape="pill" />
<smtpad portHints={["pin27"]} pcbX="2.749804mm" pcbY="0.52499895mm" width="0.2999994mm" height="0.8999982mm" shape="rect" />
<smtpad portHints={["pin28"]} pcbX="2.249932mm" pcbY="0.52499895mm" width="0.2999994mm" height="0.8999982mm" shape="rect" />
<smtpad portHints={["pin29"]} pcbX="1.749806mm" pcbY="0.52499895mm" width="0.2999994mm" height="0.8999982mm" shape="rect" />
<smtpad portHints={["pin30"]} pcbX="1.249934mm" pcbY="0.52499895mm" width="0.2999994mm" height="0.8999982mm" shape="rect" />
<smtpad portHints={["pin31"]} pcbX="0.749808mm" pcbY="0.52499895mm" width="0.2999994mm" height="0.8999982mm" shape="rect" />
<smtpad portHints={["pin32"]} pcbX="0.249936mm" pcbY="0.52499895mm" width="0.2999994mm" height="0.8999982mm" shape="rect" />
<smtpad portHints={["pin33"]} pcbX="-0.25019mm" pcbY="0.52499895mm" width="0.2999994mm" height="0.8999982mm" shape="rect" />
<smtpad portHints={["pin34"]} pcbX="-0.750062mm" pcbY="0.52499895mm" width="0.2999994mm" height="0.8999982mm" shape="rect" />
<smtpad portHints={["pin35"]} pcbX="-1.250188mm" pcbY="0.52499895mm" width="0.2999994mm" height="0.8999982mm" shape="rect" />
<smtpad portHints={["pin36"]} pcbX="-1.75006mm" pcbY="0.52499895mm" width="0.2999994mm" height="0.8999982mm" shape="rect" />
<smtpad portHints={["pin37"]} pcbX="-2.250186mm" pcbY="0.52499895mm" width="0.2999994mm" height="0.8999982mm" shape="rect" />
<smtpad portHints={["pin38"]} pcbX="-2.750058mm" pcbY="0.52499895mm" width="0.2999994mm" height="0.8999982mm" shape="rect" />
<smtpad portHints={["pin25"]} pcbX="-3.999992mm" pcbY="-0.47499905mm" width="1.4299946mm" height="0.999998mm" shape="rect" />
<smtpad portHints={["pin26"]} pcbX="3.999992mm" pcbY="-0.47499905mm" width="1.4299946mm" height="0.999998mm" shape="rect" />
<silkscreenpath route={[{"x":-4.31901599999992,"y":-0.7551610499999697},{"x":-4.235170599999947,"y":-12.955085850000046},{"x":4.294809800000053,"y":-12.955085850000046},{"x":4.316983999999934,"y":-0.7551610499999697}]} />
<silkscreenpath route={[{"x":2.96458640000003,"y":1.1949747499999148},{"x":3.6769040000001496,"y":1.1949747499999148}]} />
<silkscreenpath route={[{"x":-3.6772595999999567,"y":1.1949747499999148},{"x":-2.9649673999999777,"y":1.1949747499999148}]} />
<silkscreencircle pcbX="2.579878mm" pcbY="1.34491095mm" radius="0.127mm" />
<silkscreentext text="{NAME}" pcbX="0.006604mm" pcbY="2.46479895mm" anchorAlignment="center" fontSize="1mm" />
<courtyardoutline outline={[{"x":-5.145595999999955,"y":1.7147989499999312},{"x":5.158804000000032,"y":1.7147989499999312},{"x":5.158804000000032,"y":-13.212401050000153},{"x":-5.145595999999955,"y":-13.212401050000153},{"x":-5.145595999999955,"y":1.7147989499999312}]} />
      </footprint>}
      cadModel={{
        objUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C2879827.obj?uuid=f20717cda2a24fedb1b3a085e3246fc0",
        stepUrl: "https://modelcdn.tscircuit.com/easyeda_models/assets/C2879827.step?uuid=f20717cda2a24fedb1b3a085e3246fc0",
        pcbRotationOffset: 0,
        // The EasyEDA importer's origin (y 1.94, z 2.3) rendered the plug
        // 2.55mm below the board surface, so it looked detached. Measured from
        // the OBJ: the mounting flange's underside is at z=-0.25 and the two
        // shell pegs are centred at y=2.30, while the footprint's peg slots are
        // centred at y=0.175. Shifting the origin puts the flange on the board
        // top and the pegs in their slots; the 10mm plug body then overhangs
        // the board edge as the datasheet's recommended layout shows.
        modelOriginPosition: { x: 0.00013970000009067007, y: 2.125, z: -0.25 },
      }}
      {...props}
    />
  )
}