seveibar/adm6-breakout

This code defines PCB designs featuring a 60-pin fanout or direct routing layout with multiple signal and power layers, test pads, and component footprints for a high-density electronic breakout board.

Version
1.0.2
License
unset
Stars
0

rp2040-connector-routed.circuit.tsx

PCBPCB preview for rp2040-connector-routed.circuit.tsx
SchematicSchematic preview for rp2040-connector-routed.circuit.tsx
import { Fragment } from "react"
import { ADM6_60_03_5_L_4_0_A_TR } from "./imports/ADM6_60_03_5_L_4_0_A_TR"
import { RP2040 } from "./imports/RP2040"
import { CONNECTOR_ROWS, pinMappings } from "./pin-mapping"

export default () => (
  <board
    title="30 random ADM6 contacts to RP2040 / 4 layers"
    width="48mm"
    height="28mm"
    borderRadius="1.5mm"
    layers={4}
    schematicDisabled
    autorouter="auto-local"
    autorouterEffortLevel="1x"
    minTraceWidth="0.1mm"
    defaultTraceWidth="0.1mm"
    minTraceToPadEdgeClearance="0.08mm"
    minPadEdgeToPadEdgeClearance="0.08mm"
    minViaEdgeToPadEdgeClearance="0.08mm"
    minViaHoleEdgeToViaHoleEdgeClearance="0.1mm"
    minViaHoleDiameter="0.2mm"
    minViaPadDiameter="0.4mm"
  >
    <RP2040 name="U1" pcbX={0} pcbY={7} />
    <fanout
      name="ADM6_FANOUT"
      pcbX={0}
      pcbY={-6}
      width="46mm"
      height="10mm"
      autorouter="fanout"
      autorouterEffortLevel="1x"
      fanoutRoutingLayers={["top", "bottom", "inner1", "inner2"]}
      busFanoutDirections={{
        ADM6_A: "topside_center",
        ADM6_B: "topside_center",
        ADM6_C: "bottomside_center",
        ADM6_D: "bottomside_center",
      }}
    >
      <ADM6_60_03_5_L_4_0_A_TR name="J1" pcbX={0} pcbY={0} />
    </fanout>
    {CONNECTOR_ROWS.map((row) => (
      <Fragment key={row}>
        <bus
          name={`ADM6_${row}`}
          connections={pinMappings
            .filter(({ contact }) => contact.startsWith(row))
            .map(({ name }) => name)}
        />
      </Fragment>
    ))}
    {pinMappings.map(({ contact, gpio, name }) => (
      <Fragment key={name}>
        <trace name={name} from={`.J1 > .${contact}`} to={`.U1 > .${gpio}`} />
      </Fragment>
    ))}
  </board>
)