Skip to main content
Raspberry Pi HATs

Building a USB Power Delivery Trigger HAT

Overview

This tutorial builds a USB Power Delivery trigger HAT for Raspberry Pi projects that need more than the standard 5 V rail. The circuit uses a CH224K-style PD trigger controller to request a fixed USB-C PD voltage, routes the negotiated output to a terminal block, and adds a status LED plus input filtering.

What You Are Building

The board has five blocks:

  • USB-C input connector
  • PD trigger controller for fixed voltage negotiation
  • Configuration header for selecting the requested voltage
  • Bulk and local decoupling capacitors
  • Output terminal block and power-good LED

The HAT shape is useful even when the negotiated output powers an external load instead of the Raspberry Pi itself. Keep the Pi powered through its normal input unless you have designed and tested a safe back-powering path.

Bill of Materials

ReferencePartValue or packageNotes
U1CH224K or similar PD triggerSOIC/QFN breakout-friendly packageRequests fixed PD voltages
J1USB-C receptacleSMD USB-CPD input
J2Terminal block2 pin, 5.08 mmNegotiated output
J3Pin header1x3Voltage selection jumpers
R1, R2Resistors5.1 kOhmCC pulldowns
R3Resistor10 kOhmDefault configuration pull-down
R4Resistor1 kOhmStatus LED current limit
C1Capacitor10 uF or largerOutput bulk filtering
C2Capacitor100 nFController decoupling
LED1LEDGreen, 0603Power-good indicator

Step 1: Add the HAT Board

Start with the standard HAT outline so the board can mount above the Raspberry Pi.

import { RaspberryPiHatBoard } from "@tscircuit/common"

export default () => (
<RaspberryPiHatBoard name="HAT1">
{/* USB PD trigger circuit goes here */}
</RaspberryPiHatBoard>
)

Step 2: Add the PD Controller

The PD trigger controller negotiates with the USB-C charger. VBUS, GND, CC1, and CC2 connect to the USB-C receptacle. Configuration pins choose the requested fixed voltage.

Schematic Circuit Preview

Step 3: Wire USB-C and CC Pulldowns

Add 5.1 kOhm pulldowns on CC1 and CC2. These identify the board as a sink before the PD controller negotiates a higher voltage.

Schematic Circuit Preview

Step 4: Add the Output and Filtering

Route the negotiated voltage to a terminal block and add a bulk capacitor near the output. The terminal block should be clearly labeled because it may carry 9 V, 12 V, 15 V, or 20 V depending on the selected profile and charger.

Schematic Circuit Preview

Step 5: Add Voltage Selection and Status LED

Different PD trigger chips encode voltage selection differently. Use a header or solder jumpers for the configuration pins so you can document the selected profile on the enclosure or silkscreen.

<pinheader
name="J3"
pinCount={3}
pinLabels={["CFG1", "CFG2", "CFG3"]}
schFacingDirection="right"
/>
<led name="LED1" color="green" footprint="0603" />
<resistor name="R4" resistance="1k" footprint="0402" />
<trace from=".U1 .PG" to=".R4 > .pin1" />
<trace from=".R4 > .pin2" to=".LED1 .pos" />
<trace from=".LED1 .neg" to=".U1 .GND" />

Voltage Profiles

Confirm the exact truth table in your PD controller datasheet. A practical build label can look like this:

Selected outputTypical use
5 VLogic test load, LEDs, USB accessories
9 VSmall motors or audio boards
12 VFans, relays, lighting
15 VPortable lab loads
20 VLaptop-style adapters and high-power converters

Only request voltages your downstream circuit can tolerate.

PCB Layout Notes

  • Keep the USB-C connector close to the PD controller.
  • Route VBUS and terminal-block output with wide traces.
  • Place C1 close to the output terminal and C2 close to U1.
  • Put voltage-selection jumpers where they are visible after assembly.
  • Keep the output terminal away from low-voltage Raspberry Pi GPIO pins.
  • Add clear silkscreen labels for VOUT, GND, and the selected voltage.

Test Procedure

  1. Inspect the board for shorts between VOUT and GND.
  2. Plug in a current-limited USB-C PD supply or bench-protected PD source.
  3. Measure VOUT before connecting any load.
  4. Change the configuration jumpers and confirm the requested voltage changes.
  5. Attach a dummy load and verify that the power-good LED remains stable.
  6. Recheck capacitor temperature after several minutes at the highest expected load.

Safety Notes

  • Do not feed 9 V, 12 V, 15 V, or 20 V into the Raspberry Pi 5 V rail.
  • Use a fuse or current-limited source for first power-up.
  • Mark the selected voltage on the board or enclosure.
  • Disconnect the load before changing configuration jumpers.