aura/diy-power-delivery-trigger

This hardware design implements a USB Type-C port with supporting power management and signal conditioning components, including a USB-C connector, a FUSB302 USB-C port controller, ESD protection diodes, a buck converter for 3.3V power regulation, an STM32 microcontroller for control and processing, an RGB LED indicator, push button, terminal block connections, and associated filtering and support components.

Version
0.0.1
License
unset
Stars
0

index.tsx

PCBPCB preview for index.tsx
SchematicSchematic preview for index.tsx
const UsbCPlug = (props: any) => (
  <connector
    {...props}
    supplierPartNumbers={{ jlcpcb: ["C165948"] }}
    footprint="kicad:Connector_USB/USB_C_Receptacle_HRO_TYPE-C-31-M-12"
  />
)

const Fusb302 = (props: any) => (
  <chip
    {...props}
    footprint="kicad:Package_DFN_QFN/WQFN-14-1EP_2.5x2.5mm_P0.5mm_EP1.45x1.45mm"
    supplierPartNumbers={{ jlcpcb: ["C132291"] }}
    pinLabels={{
      pin1: "CC2_B",
      pin2: "VBUS",
      pin3: "VDD_A",
      pin4: "VDD_B",
      pin5: "INT_N",
      pin6: "SCL",
      pin7: "SDA",
      pin8: "GND_A",
      pin9: "GND_B",
      pin10: "CC1_B",
      pin11: "CC1_A",
      pin12: "VCONN_B",
      pin13: "VCONN_A",
      pin14: "CC2_A",
      pin15: "EP",
    }}
    pinAttributes={{
      VBUS: { requiresPower: true },
      VDD_A: { requiresPower: true },
      VDD_B: { requiresPower: true },
      GND_A: { requiresPower: true, requiresGround: true },
      GND_B: { requiresPower: true, requiresGround: true },
      EP: { requiresPower: true, requiresGround: true },
    }}
    schPinArrangement={{
      leftSide: {
        direction: "top-to-bottom",
        pins: [
          "CC2_A",
          "VCONN_A",
          "VCONN_B",
          "CC1_A",
          "CC1_B",
          "GND_A",
          "GND_B",
        ],
      },
      rightSide: {
        direction: "top-to-bottom",
        pins: ["CC2_B", "VBUS", "VDD_A", "VDD_B", "INT_N", "SCL", "SDA"],
      },
      bottomSide: {
        direction: "left-to-right",
        pins: ["EP"],
      },
    }}
  />
)

const Stm32F030 = (props: any) => (
  <chip
    {...props}
    footprint="kicad:Package_SO/TSSOP-20_4.4x6.5mm_P0.65mm"
    supplierPartNumbers={{ jlcpcb: ["C89040"] }}
    pinLabels={{
      pin1: "BOOT0",
      pin2: "PF0_OSC_IN",
      pin3: "PF1_OSC_OUT",
      pin4: "NRST",
      pin5: "VDDA",
      pin6: "PA0",
      pin7: "PA1",
      pin8: "PA2_TX",
      pin9: "PA3_RX",
      pin10: "PA4",
      pin11: "PA5_LED_R",
      pin12: "PA6_LED_G",
      pin13: "PA7_LED_B",
      pin14: "PB1_INT",
      pin15: "VSS",
      pin16: "VDD",
      pin17: "PA9_SCL",
      pin18: "PA10_SDA",
      pin19: "PA13_SWDIO",
      pin20: "PA14_SWCLK",
    }}
    pinAttributes={{
      VDDA: { requiresPower: true },
      VDD: { requiresPower: true },
      VSS: { requiresPower: true, requiresGround: true },
      BOOT0: { mustBeConnected: true },
      NRST: { mustBeConnected: true },
    }}
    schPinArrangement={{
      leftSide: {
        direction: "top-to-bottom",
        pins: [
          "PA0",
          "PA1",
          "PA2_TX",
          "PA3_RX",
          "PA4",
          "PA5_LED_R",
          "PA6_LED_G",
          "PA7_LED_B",
        ],
      },
      rightSide: {
        direction: "top-to-bottom",
        pins: ["PB1_INT", "PF0_OSC_IN", "PF1_OSC_OUT", "BOOT0", "NRST", "VSS"],
      },
      bottomSide: {
        direction: "left-to-right",
        pins: [
          "VDDA",
          "VDD",
          "PA9_SCL",
          "PA10_SDA",
          "PA13_SWDIO",
          "PA14_SWCLK",
        ],
      },
    }}
  />
)

const Buck3V3 = (props: any) => (
  <chip
    {...props}
    footprint="kicad:Package_TO_SOT_SMD/SOT-23-6"
    supplierPartNumbers={{ jlcpcb: ["C780769"] }}
    pinLabels={{
      pin1: "SW",
      pin2: "GND",
      pin3: "FB",
      pin4: "EN",
      pin5: "VIN",
      pin6: "BST",
    }}
    pinAttributes={{
      VIN: { requiresPower: true },
      GND: { requiresPower: true, requiresGround: true },
      SW: { mustBeConnected: true },
      FB: { mustBeConnected: true },
      EN: { mustBeConnected: true },
      BST: { mustBeConnected: true },
    }}
    schPinArrangement={{
      leftSide: {
        direction: "top-to-bottom",
        pins: ["VIN", "EN", "FB"],
      },
      rightSide: {
        direction: "top-to-bottom",
        pins: ["BST", "SW", "GND"],
      },
    }}
  />
)

const EsdDiode = (props: any) => (
  <diode
    {...props}
    footprint="kicad:Diode_SMD/D_SOD-323"
    supplierPartNumbers={{ jlcpcb: ["C5261083"] }}
  />
)

const RgbLed = (props: any) => (
  <chip
    {...props}
    footprint="kicad:LED_SMD/LED_RGB_5050-6"
    supplierPartNumbers={{ jlcpcb: ["C2843868"] }}
    pinLabels={{
      pin1: "GREEN_K",
      pin2: "RED_K",
      pin3: "ANODE",
      pin4: "BLUE_K",
    }}
    pinAttributes={{
      ANODE: { requiresPower: true },
      GREEN_K: { requiresGround: true },
      RED_K: { requiresGround: true },
      BLUE_K: { requiresGround: true },
    }}
    schPinArrangement={{
      leftSide: {
        direction: "top-to-bottom",
        pins: ["BLUE_K", "ANODE"],
      },
      rightSide: {
        direction: "top-to-bottom",
        pins: ["GREEN_K", "RED_K"],
      },
    }}
  />
)

const PushButton2Pin = (props: any) => (
  <chip
    {...props}
    footprint="kicad:Button_Switch_SMD/SW_SPST_B3U-1000P-B"
    pinLabels={{
      pin1: "A",
      pin2: "B",
    }}
    pinAttributes={{
      A: { mustBeConnected: true },
      B: { requiresPower: true, requiresGround: true },
    }}
  />
)

const TerminalBlock2 = (props: any) => (
  <connector
    {...props}
    footprint="kicad:TerminalBlock/TerminalBlock_MaiXu_MX126-5.0-02P_1x02_P5.00mm"
    supplierPartNumbers={{ jlcpcb: ["C8445"] }}
    pinLabels={{
      pin1: "VBUS",
      pin2: "GND",
    }}
    schPinArrangement={{
      leftSide: {
        direction: "top-to-bottom",
        pins: ["VBUS", "GND"],
      },
    }}
  />
)

const SwdHeader = (props: any) => (
  <pinheader
    {...props}
    pinCount={5}
    gender="female"
    pitch="2.54mm"
    showSilkscreenPinLabels={true}
    pinLabels={["3V3", "SWDIO", "SWCLK", "NRST", "GND"]}
    schPinArrangement={{
      leftSide: {
        direction: "top-to-bottom",
        pins: [1, 2, 3, 4, 5],
      },
    }}
  />
)

export default () => (
  <board layers={2}>
    <group pcbX="-41mm" pcbY="0mm">
      <UsbCPlug
        name="USB2"
        pcbX="-40mm"
        pcbY="0mm"
        pcbRotation={270}
        schX="-19mm"
        schY="-2mm"
      />
      <resistor
        name="R1"
        resistance="100ohm"
        footprint="0402"
        pcbX="4mm"
        pcbY="-5.5mm"
        schX="-13mm"
        schY="-3.5mm"
      />
      <resistor
        name="R2"
        resistance="100ohm"
        footprint="0402"
        pcbX="4mm"
        pcbY="5.5mm"
        schX="-13mm"
        schY="2.5mm"
      />
      <EsdDiode
        name="D1"
        pcbX="4mm"
        pcbY="-9mm"
        pcbRotation={180}
        schX="-10mm"
        schY="-4mm"
      />
      <EsdDiode
        name="D2"
        pcbX="4mm"
        pcbY="9mm"
        pcbRotation={180}
        schX="-10mm"
        schY="3mm"
      />
      <Fusb302 name="U1" pcbX="28mm" pcbY="0mm" schX="-5mm" schY="0mm" />
      <capacitor
        name="C7"
        capacitance="100nF"
        footprint="0402"
        pcbX="34mm"
        pcbY="-4mm"
        schX="-1mm"
        schY="-5mm"
      />
      <capacitor
        name="C8"
        capacitance="1uF"
        footprint="0603"
        pcbX="34mm"
        pcbY="4mm"
        schX="1mm"
        schY="-5mm"
      />
      <capacitor
        name="C9"
        capacitance="220pF"
        footprint="0402"
        pcbX="12mm"
        pcbY="-10mm"
        schX="-4mm"
        schY="-6mm"
      />
      <capacitor
        name="C10"
        capacitance="220pF"
        footprint="0402"
        pcbX="12mm"
        pcbY="10mm"
        schX="-4mm"
        schY="6mm"
      />
    </group>

    <group pcbX="-12mm" pcbY="17mm">
      <capacitor
        name="C2"
        capacitance="100nF"
        footprint="0603"
        pcbX="-9mm"
        pcbY="-6mm"
        schX="-13mm"
        schY="10mm"
      />
      <capacitor
        name="C4"
        capacitance="10uF"
        footprint="1206"
        pcbX="-9mm"
        pcbY="6mm"
        schX="-11mm"
        schY="10mm"
      />
      <Buck3V3 name="U3" pcbX="0mm" pcbY="0mm" schX="-6.5mm" schY="10.5mm" />
      <capacitor
        name="C11"
        capacitance="100nF"
        footprint="0402"
        pcbX="1mm"
        pcbY="-8mm"
        schX="-4mm"
        schY="14mm"
      />
      <inductor
        name="L1"
        inductance="6.8uH"
        footprint="kicad:Inductor_SMD/L_1210_3225Metric"
        pcbX="12mm"
        pcbY="0mm"
        schX="-1mm"
        schY="10.5mm"
      />
      <capacitor
        name="C5"
        capacitance="22uF"
        footprint="1206"
        pcbX="21mm"
        pcbY="-6mm"
        schX="3mm"
        schY="10mm"
      />
      <capacitor
        name="C3"
        capacitance="22uF"
        footprint="1206"
        pcbX="21mm"
        pcbY="6mm"
        schX="5mm"
        schY="10mm"
      />
    </group>

    <group pcbX="10mm" pcbY="-2mm">
      <Stm32F030 name="U2" pcbX="0mm" pcbY="0mm" schX="7mm" schY="-1mm" />
      <resistor
        name="R3"
        resistance="2.2kohm"
        footprint="0402"
        pcbX="-11mm"
        pcbY="-7mm"
        schX="1mm"
        schY="-8mm"
      />
      <resistor
        name="R4"
        resistance="2.2kohm"
        footprint="0402"
        pcbX="-11mm"
        pcbY="-3.5mm"
        schX="-1mm"
        schY="-8mm"
      />
      <resistor
        name="R8"
        resistance="4.7kohm"
        footprint="0402"
        pcbX="-11mm"
        pcbY="1mm"
        schX="1mm"
        schY="-10mm"
      />
      <capacitor
        name="C1"
        capacitance="100nF"
        footprint="0402"
        pcbX="11mm"
        pcbY="5mm"
        schX="12mm"
        schY="5mm"
      />
      <resistor
        name="R9"
        resistance="10kohm"
        footprint="0402"
        pcbX="18mm"
        pcbY="-10mm"
        schX="3mm"
        schY="12mm"
      />
      <PushButton2Pin
        name="SW1"
        pcbX="16mm"
        pcbY="-14mm"
        schX="4mm"
        schY="10mm"
      />
      <capacitor
        name="C6"
        capacitance="100nF"
        footprint="0402"
        pcbX="28mm"
        pcbY="-14mm"
        schX="6.5mm"
        schY="10mm"
      />
    </group>

    <group pcbX="30mm" pcbY="12mm">
      <RgbLed name="LED1" pcbX="-2mm" pcbY="0mm" schX="13mm" schY="10mm" />
      <resistor
        name="R7"
        resistance="2.2kohm"
        footprint="0402"
        pcbX="-12mm"
        pcbY="4mm"
        schX="9.5mm"
        schY="12mm"
      />
      <resistor
        name="R6"
        resistance="5.6kohm"
        footprint="0402"
        pcbX="7mm"
        pcbY="-6mm"
        schX="18mm"
        schY="10mm"
      />
      <resistor
        name="R5"
        resistance="2.2kohm"
        footprint="0402"
        pcbX="7mm"
        pcbY="6mm"
        schX="18mm"
        schY="12mm"
      />
    </group>

    <SwdHeader
      name="J1"
      pcbX="46mm"
      pcbY="6mm"
      pcbRotation={90}
      schX="20mm"
      schY="6mm"
    />
    <TerminalBlock2
      name="CN1"
      pcbX="52mm"
      pcbY="-14mm"
      pcbRotation={90}
      schX="20mm"
      schY="-6mm"
    />
    <trace from="USB2.pin2" to="net.VBUS" />
    <trace from="USB2.pin7" to="net.VBUS" />
    <trace from="USB2.pin10" to="net.VBUS" />
    <trace from="USB2.pin15" to="net.VBUS" />
    <trace from="USB2.pin1" to="net.GND" />
    <trace from="USB2.pin8" to="net.GND" />
    <trace from="USB2.pin9" to="net.GND" />
    <trace from="USB2.pin16" to="net.GND" />
    <trace from="USB2.pin17" to="net.GND" />
    <trace from="USB2.pin18" to="net.GND" />
    <trace from="USB2.pin19" to="net.GND" />
    <trace from="USB2.pin20" to="net.GND" />
    <trace from="USB2.pin11" to="R1.pin1" />
    <trace from="USB2.pin3" to="R2.pin1" />

    <trace from="R1.pin2" to="U1.CC2_A" />
    <trace from="R1.pin2" to="U1.CC2_B" />
    <trace from="R1.pin2" to="C9.pin1" />
    <trace from="C9.pin2" to="net.GND" />
    <trace from="R2.pin2" to="U1.CC1_A" />
    <trace from="R2.pin2" to="U1.CC1_B" />
    <trace from="R2.pin2" to="C10.pin1" />
    <trace from="C10.pin2" to="net.GND" />
    <trace from="R1.pin2" to="D1.pin1" />
    <trace from="D1.pin2" to="net.GND" />
    <trace from="R2.pin2" to="D2.pin1" />
    <trace from="D2.pin2" to="net.GND" />

    <trace from="U1.VBUS" to="net.VBUS" />
    <trace from="U1.VDD_A" to="net.V3_3" />
    <trace from="U1.VDD_B" to="net.V3_3" />
    <trace from="C7.pin1" to="net.V3_3" />
    <trace from="C7.pin2" to="net.GND" />
    <trace from="C8.pin1" to="net.V3_3" />
    <trace from="C8.pin2" to="net.GND" />
    <trace from="U1.GND_A" to="net.GND" />
    <trace from="U1.GND_B" to="net.GND" />
    <trace from="U1.EP" to="net.GND" />
    <trace from="U1.INT_N" to="net.INT" />
    <trace from="U1.SCL" to="net.SCL" />
    <trace from="U1.SDA" to="net.SDA" />

    <trace from="C2.pin1" to="net.VBUS" />
    <trace from="C2.pin2" to="net.GND" />
    <trace from="C4.pin1" to="net.VBUS" />
    <trace from="C4.pin2" to="net.GND" />
    <trace from="U3.VIN" to="net.VBUS" />
    <trace from="U3.EN" to="net.VBUS" />
    <trace from="U3.GND" to="net.GND" />
    <trace from="U3.SW" to="L1.pin1" />
    <trace from="L1.pin2" to="net.V3_3" />
    <trace from="U3.FB" to="net.V3_3" />
    <trace from="U3.BST" to="C11.pin1" />
    <trace from="C11.pin2" to="U3.SW" />
    <trace from="C5.pin1" to="net.V3_3" />
    <trace from="C5.pin2" to="net.GND" />
    <trace from="C3.pin1" to="net.V3_3" />
    <trace from="C3.pin2" to="net.GND" />

    <trace from="U2.VDD" to="net.V3_3" />
    <trace from="U2.VDDA" to="net.V3_3" />
    <trace from="U2.VSS" to="net.GND" />
    <trace from="U2.BOOT0" to="net.GND" />
    <trace from="U2.NRST" to="C1.pin1" />
    <trace from="C1.pin2" to="net.GND" />
    <trace from="U2.PA9_SCL" to="net.SCL" />
    <trace from="U2.PA10_SDA" to="net.SDA" />
    <trace from="U2.PB1_INT" to="net.INT" />
    <trace from="U2.PF1_OSC_OUT" to="net.BTN" />

    <trace from="R3.pin1" to="net.V3_3" />
    <trace from="R3.pin2" to="net.SDA" />
    <trace from="R4.pin1" to="net.V3_3" />
    <trace from="R4.pin2" to="net.SCL" />
    <trace from="R8.pin1" to="net.V3_3" />
    <trace from="R8.pin2" to="net.INT" />

    <trace from="R9.pin1" to="net.V3_3" />
    <trace from="R9.pin2" to="net.BTN" />
    <trace from="SW1.A" to="net.BTN" />
    <trace from="SW1.B" to="net.GND" />
    <trace from="C6.pin1" to="net.BTN" />
    <trace from="C6.pin2" to="net.GND" />

    <trace from="LED1.ANODE" to="net.V3_3" />
    <trace from="U2.PA7_LED_B" to="R7.pin1" />
    <trace from="R7.pin2" to="LED1.BLUE_K" />
    <trace from="U2.PA6_LED_G" to="R6.pin1" />
    <trace from="R6.pin2" to="LED1.GREEN_K" />
    <trace from="U2.PA5_LED_R" to="R5.pin1" />
    <trace from="R5.pin2" to="LED1.RED_K" />

    <trace from="J1.pin1" to="net.V3_3" />
    <trace from="J1.pin2" to="U2.PA13_SWDIO" />
    <trace from="J1.pin3" to="U2.PA14_SWCLK" />
    <trace from="J1.pin4" to="U2.NRST" />
    <trace from="J1.pin5" to="net.GND" />

    <trace from="CN1.VBUS" to="net.VBUS" />
    <trace from="CN1.GND" to="net.GND" />
  </board>
)