Prior to the introduction of USB PD (Power Delivery) Standards in 2012, USB always supplied a fixed 5V voltage. If you needed a voltage different from 5V, or required currents larger than 500mA, then USB was no power supply option.

This has changed today: almost all USB power supplies (like wall chargers or power banks) support the flexible USB PD (Power Delivery) standard. Your USB-C connector can now deliver almost any voltage in a wide range, with up to 5A.

To enable this, you need a way to engage in USB PD negotiation. Since the USB PD protocol is too complex to be emulated by microcontrollers, very affordable chips exist that specialize in USB PD negotiation.

You find these chips for example on USB Trigger Boards: such boards connect to your USB power supply via USB-C and provide the requested voltage on solder pads.

The requested voltage can be set in a variety of ways, i.e. via DIP switches, solder bridges, or push buttons. Some USB Trigger Boards are pre-configured to a specific output voltage. With such boards you could, for example, power 12V devices from a USB power bank.

Overview

To use USB as a flexible power source, you need to negotiate the requested voltage via one of the protocols supported by your USB power source.

Most USB power sources today support PD 3.0, so triggering is possible with almost any USB power source. Simpler or lower-cost power sources may not support higher voltages such as 20V or above, even if they claim PD compatibility.

To select a fully adjustable voltage (and not just fixed voltages such as 9V or 15V), protocol extensions like PPS (Programmable Power Supply) or AVS (Adjustable Voltage Supply) are required.

These features are optional in the USB PD specification, so your power source may or may not support them. If you are unsure, use a USB tester to check which protocols and extensions are available.

If you require less than 36W of power, QC 3.0 (Quick Charge 3.0) is also a viable option, as it is widely supported and provides adjustable voltages by design. Another advantage of QC 3.0 is its much simpler protocol: microcontrollers like Arduino and ESP32 can easily emulate it, and no external trigger hardware is required.

Takeaways:

  • PPS is optional in USB PD 3.1 (and 3.0).
  • Not all USB PD 3.1 chargers, powerbanks, or devices support PPS.
  • Always check product details if you specifically need PPS support
  • QC 3.0 supports adjustable voltages, too, but only up to 36W.
  • QC 3.0 uses a simpler protocol that can be directly emulated by MCUs such as Arduino/ESP32

Suitable USB Protocols

It is important to understand that triggering can only use the protocols and voltage levels that the power source exposes. Today, a wide variety of protocols exist, and chargers and powerbanks often support multiple of these:

Standard / Protocol Supported Voltages (V) Max Current (A) Max Power (W) Protocol Features / Notes E-marker Cables Required
USB 1.0 / 2.0 5 0.5 2.5 Fixed voltage No
USB 3.0 / 3.1 5 0.9 4.5 Fixed voltage No
USB Battery Charging 1.2 5 1.5 7.5 Fixed voltage No
USB Type-C 1.2 5 3 15 Fixed voltage No (recommended >3A)
USB PD 1.0 5, 9, 12, 15, 20 up to 5 100 Fixed steps, up to 100W Yes (for >3A/20V)
USB PD 2.0 / 3.0 (SPR) 5, 9, 15, 20 up to 5 100 Programmable steps, PPS optional (3.3–21V) Yes (for >3A/20V)
USB PD 3.1 (EPR) 5, 9, 15, 20, 28, 36, 48 up to 5 240 Adds EPR (28/36/48V), AVS (15–48V, 100mV steps) Yes (required >100W)
Qualcomm Quick Charge 2.0 5, 9, 12 up to 3 18 Proprietary protocol No
Qualcomm Quick Charge 3.0 3.6–20 (200mV steps) up to 3 36 Adjustable voltage, easy MCU emulation, widely supported No
Qualcomm Quick Charge 4/4+ 5, 9, 12, 20 up to 5 100 USB PD compatible, not widely supported Yes (for >3A/20V PD)
Apple Fast Charge 5, 9, 14.5, 20 up to 4.7 18–96 Uses USB PD Yes (for >3A/20V)
Samsung Super Fast Charging 5, 9, 15 up to 3 45 Uses PPS No (unless >3A/20V PD)
Huawei SuperCharge 5, 9, 10, 12 up to 6 66 Proprietary No (proprietary cable)
Oppo Super VOOC 5, 10, 20 up to 12 240 Proprietary, high current Yes (proprietary cable)
OnePlus Warp Charge 5, 10 up to 6.5 65 Proprietary Yes (proprietary cable)
MediaTek Pump Express 5, 7, 9, 12 up to 4.5 30 Proprietary No
  • E-marker cables are required by the USB spec for any USB-C cable supporting more than 3A or voltages above 20V, as well as for all USB PD 3.1 EPR (Extended Power Range) applications.

  • Proprietary fast charging (VOOC, Warp, SuperCharge) often requires manufacturer-specific cables for full performance, which function similarly to e-marker cables.

  • For Apple Fast Charge and Samsung Super Fast Charging, e-marker is only needed if the device draws more than 3A or uses >20V (rare for phones/tablets, common for laptops).

If a given protocol or feature isn’t supported by the USB power source you use, triggering may not work or fall back to the next available lower voltage.

Fixed Voltage Steps

To request one of the fixed voltage steps, these protocols are commonly used in voltage triggering:

Protocol Voltages (V) Power Remarks
USB PD 1.0 5,9,(12,)15,20 60W/3A superseded by PD 3.0
USB PD 3.0 5,9,(12,)15,20 100W/5A widely adopted
USB PD 3.1 5,9,(12,)15,20 100W/5A widely adopted
USB PD 3.1 EPR 5,9,(12,)15,20,28,36,48 240W/5A less common
QC 3.0 (QuickCharge) 5,9,12,20 36W/1.8A by Qualcomm, commonly supported

Adjustable Voltage

Adjustable voltage can be requested by one of these protocols/extensions:

Extension Voltages (V) Power Steps Remarks Protocol Requirements
PPS (Programmable Power Supply) 3.3–21V 20mV also supports Constant Current in 50mA increments (1A minimum) USB PD 3.0 or better (optional feature)  
AVS (Adjustable Voltage Supply) 15-48V 100mV no Constant Current USB PD 3.1 or better (optional feature)  
QC3.0 3.6-20V 200mV simple protocol, can be emulated by MCUs part of QuickCharge 3.0  

USB PD (Power Delivery)

USB PD the official non-proprietary USB protocol which exists in different versions (1,2,3,3.1,4) and with optional features (PPS, EPR, AVS).

USB PD is the industry standard, provides the most power, and includes sophisticated security features. For example, in order to unlock its higher currents, it requires USB-C cables to be equipped with e-marker chips. Such cables can then actively expose their ratings, i.e. their maximum current capability.

Without e-marked cables (or underrated cables), USB PD limits the maximum currents to safe levels.

For DIY projects, when working with USB trigger boards, make sure you use a e-marked USB-C cable with the appropriate rating to connect the USB power supply to your trigger board.

PPS and PD 3.1 Clarification

PPS (Programmable Power Supply) is an optional feature within both USB PD 3.0 and USB PD 3.1. Not all PD 3.1-compliant chargers or devices support PPS. Support must be explicitly stated in product documentation, and if in doubt, you can use a USB tester to test the available protocols and extensions.

PPS enables real-time, fine-grained voltage and current adjustments, which is especially useful for fast charging modern devices. However, a charger or device can be fully PD 3.1 compliant without supporting PPS.

QC 3.0 (QuickCharge)

Although QC3 is an older proprietary protocol developed by Qualcomm, today it is widely supported by most chargers and power banks.

QC3 offers adjustable voltage via a very simple protocol that can be easily emulated by microcontrollers and does not require cabling with e-markers. So no special hardware is needed. On the down side, QC 3.0 is limited to a maximum of 36W.

Triggering Options

There are four popular ways of triggering a voltage:

  • Manual Trigger Boards:
    Dedicated trigger boards contain all logic required to negotiate a given fixed voltage via USB PD.
    • Boards can typically be set manually to a requested fixed voltage (DIP switch, solder bridge, buttons).
    • Some are set by hardware (via a soldered resistor) to one specific trigger voltage (i.e. 12V) and cannot be adjusted.
    • While trigger boards exist that can also request adjustable voltage, these are much more uncommon and expensive
  • Programmable Trigger Boards (I2C):
    Dedicated breakout boards with an I2C interface, allowing MCUs like Arduino or ESP32 to programmatically request a voltage via USB PD.
    • Often based on the same USB PD chips used by manual trigger boards
    • Simple and affordable boards support fixed voltages only
    • More sophisticated boards support PPS (adjustable voltages)
    • The latest generation of boards also supports EPR/AVS for voltages up to 48V
  • QuickCharge 3.0: Software emulation for ESP32 and other MCUs to emulate the QuickCharge protocol. Requires no specialized USB PD hardware.
    • Allows for adjustable voltages in the range of 3.6-20V at a maximum of 36W
    • Requires no e-marker cables
    • Real limits depend on the USB power source that you use and can be lower (i.e. 12V max)
  • Resistors:
    Simple resistors can be used for limited control, typically to unlock fast charge modes with higher currents.

    • For any voltage above 5V on USB-C, or for true USB Power Delivery or Quick Charge negotiation, a dedicated IC or microcontroller is usually required.
    • Pure resistor/discrete methods are limited to 5V (USB-C) or basic fast charge signaling (USB-A/B).

    Here is a list of commony-used “resistor hacks”:

    Method Output Voltage(s) Max Current Components Needed Notes
    Short D+ and D- (USB-A/B) 5V 1.5A+ Wire or 0Ω resistor Works with many Android devices for “fast charge”
    Apple Divider (USB-A/B) 5V 2.1A+ Resistor dividers Specific voltages on D+/D- for Apple devices
    QC 2.0/3.0 Divider (USB-A) 5V–12V (QC2) Up to 3A Resistor dividers Not universally reliable; true QC needs protocol
    5.1kΩ on CC (USB-C, non-PD) 5V 3A Two 5.1kΩ resistors not really a “hack” but the official way to get at least 5V out of USB PD

Specialized ICs

Specialized ICs are required to control USB PD:

IC Fixed Voltage Programmable Voltage (PPS) I2C Interface Extended Power Range (>20V, 240W)
CH224K ✔️
HUSB238 ✔️ ✔️
HUSB238A ✔️ ✔️ ✔️ ✔️
AP33772 ✔️ ✔️ ✔️
AP33772S ✔️ ✔️ ✔️ ✔️

CH224K

The CH224K is a low-cost USB Power Delivery (PD) sink controller designed to trigger and negotiate fixed voltages from USB-C power sources. It simulates e-marker chips and automatically detects VCONN, enabling requests for up to 100W (20V/5A) from compliant USB PD sources.

CH224K cannot be used to request adjustable voltages (PPS) and has no I2C interface. This chip is used by the majority of simple and affordable manual trigger boards with fixed voltage steps:

Feature Details
Supported Protocols USB PD 3.0/2.0, BC1.2, others
Voltage Selection DIP switch, jumpers, resistor, or MCU (CFG1–CFG3 pins)
Output Voltages 5V, 9V, 12V, 15V, 20V
Max Power Up to 100W (20V/5A, requires e-marked cable for >3A)
E-marker Simulation Yes (supports high-power negotiation)
Power-Good Output Yes (PG pin for status indication)
Protection Over-voltage, over-temperature

HUSB238

The HUSB238 is a USB Power Delivery (PD) sink controller IC with I2C support. This allows microcontrollers (such as Arduino, ESP32, or ATMega328) to dynamically select PD profiles, voltages, and monitor status in real time.

This chip supports fixed voltages only and has no support for adjustable voltages.

Thanks to its I2C interface, HUSB238 can be found on many affordable breakout boards. Occasionally, this chip is also used on manual trigger boards (in which case the I2C interface is inaccessible).

Feature Details
Supported Protocols USB PD 3.0/2.0
Voltage Selection I2C interface (dynamic), or preset via resistors
Output Voltages 5V, 9V, 12V, 15V, 20V
Max Power Up to 100W (20V/5A, requires e-marked cable for >3A)
E-marker Simulation Yes (negotiates up to 5A if cable supports)
Microcontroller Required No (for preset voltage), Yes (for dynamic control/monitoring)
Power-Good Output Yes (PG pin for status indication)
Protection Over-voltage, over-current, over-temperature

HUSB238A

The HUSB238A is a direct, pin-compatible upgrade to the HUSB238, offering significant new features—most notably, full support for USB PD 3.1 EPR (Extended Power Range) up to 48V/5A in I2C mode, as well as AVS and PPS modes.

According to community reports, the I2C mode in the HUSB238A-BB001-QN16R variant may present a safety concern:
In I2C mode, the chip reportedly defaults to requesting 28V immediately upon startup, before any user configuration is possible. This behavior could potentially damage devices that are not rated for high voltage.

Additionally, users have noted limited I2C control over the output PMOS transistor and a lack of publicly available documentation for critical I2C register maps. Due to these concerns, the referenced project was halted as of October 2024, with the authors stating:

We consider this as dangerous behavior and suggest not to use the HUSB238A-BB001-QN16R in I2C mode.

It is not clear whether these issues are inherent to all HUSB238A chips or specific to certain revisions or implementations. Users are advised to thoroughly test the device in their intended applications and consult the latest manufacturer documentation for updates or errata.

Feature HUSB238 HUSB238A
USB PD Version 3.0 3.1 (EPR, AVS, PPS)
Max Negotiated Voltage 20V 48V (I2C), 28V (GPIO)
PPS/AVS/EPR No Yes
Pin Compatibility QFN-16, same pins QFN-16, same pins
Firmware Update Needed N/A Yes, for I2C mode

AP33772

The AP33772 is a USB Type-C Power Delivery (PD) sink controller IC from Diodes Incorporated that supports PPS and I2C: a microcontroller (Arduino, ESP32, etc.) can use software libraries to control the AP3372.

Thanks to its PPS support, this allows for MCU-controlled programmable output voltages in the PPS range of 3.3-21V:

  • Voltage Steps:
    20mV voltage increments
  • Constant Current:
    50mA current increments for constant current, with a minimum current of 1A
  • Integrated Protection:
    Built-in over-voltage, over-current, and over-temperature protection, with support for external NTC thermistor for thermal monitoring and derating.
  • Status & Fault Reporting:
    Provides GPIO pins for interrupt/fault signaling and a “Power Good” output for status indication.
  • Dead Battery Mode: Supports powering up from a dead battery state, making it suitable for battery-powered devices.
  • QC4/4+ Compatibility: Also supports Quick Charge 4/4+ protocol for broader charger compatibility.
Feature Details
Supported Protocols USB PD 3.0 (Rev 1.2), PPS, QC4/4+
Voltage Selection I2C interface (address 0x51), supports PPS/APDO (20mV steps)
Output Voltages 5V, 9V, 12V, 15V, 20V (PD); 3.3V–21V (PPS, 20mV steps)
Max Power Up to 100W (20V/5A, requires e-marked cable for >3A)
E-marker Simulation Yes (detects and negotiates up to 5A if cable supports)
Microcontroller Required Yes (for dynamic control/monitoring via I2C)
Power-Good Output Yes (PG pin for status indication)
Protection Over-voltage, over-current, over-temperature, NTC support
Dead Battery Mode Yes
Status/Fault Reporting Interrupt pin, I2C status registers
NRND Status Not recommended for new designs (see AP33772S for new projects)

Not Recommended for New Designs: As of 2024, AP33772 is marked NRND (Not Recommended for New Design); the AP33772S is suggested for new projects.

AP33772S

The AP33772S is a backwards-compatible successor to the AP33772,

It is a drop-in replacement, meaning that it is fully backwards compatible, and the AP33772S can do everything that the older AP33772 can do.

In addition, the AP33772S adds support for USB PD 3.1 EPR/AVS (up to 28V), additional safety features, and more status outputs.

The register map and command set of AP33772S have been expanded and modified to support these new features. The I2C slave address remains the same (0x51), and the basic I2C transaction format (start, stop, read/write) is unchanged.

Here is a comparison table:

Feature / Spec AP33772 AP33772S
USB PD Version USB PD 3.0 (Rev 1.2), PPS, QC4/4+ USB PD 3.1 (v1.6), EPR/AVS up to 28V, SPR/PPS up to 21V
Max Supported Voltage 20V (PD), 21V (PPS) 28V (EPR/AVS), 21V (SPR/PPS)
Max Supported Power 100W (20V/5A, e-marker cable required) 140W (28V/5A, e-marker cable required for >3A/20V)
Voltage/Current Steps 20mV (PPS), 50mA (PPS) 20mV (PPS/AVS), 50mA (PPS/AVS)
Protection Features OVP, OCP, OTP, UVLO OVP, UVP, OCP, OTP, moisture detection, NTC support
Cable Orientation/FLIP Pin No Yes
LED Indicator Pin No Yes
GPIO / Status Outputs Power Good, Interrupt Power Good, Interrupt, FLIP, LED
EPR/AVS (PD 3.1) Support No Yes

Slow Website?

This website is very fast, and pages should appear instantly. If this site is slow for you, then your routing may be messed up, and this issue does not only affect done.land, but potentially a few other websites and downloads as well. Here are simple steps to speed up your Internet experience and fix issues with slow websites and downloads..

Comments

Please do leave comments below. I am using utteran.ce, an open-source and ad-free light-weight commenting system.

Here is how your comments are stored

Whenever you leave a comment, a new github issue is created on your behalf.

  • All comments become trackable issues in the Github Issues section, and I (and you) can follow up on them.

  • There is no third-party provider, no disrupting ads, and everything remains transparent inside github.

Github Users Yes, Spammers No

To keep spammers out and comments attributable, all you do is log in using your (free) github account and grant utteranc.es the permission to submit issues on your behalf.

If you don’t have a github account yet, go get yourself one - it’s free and simple.

If for any reason you do not feel comfortable with letting the commenting system submit issues for you, then visit Github Issues directly, i.e. by clicking the red button Submit Issue at the bottom of each page, and submit your issue manually. You control everything.

Discussions

For chit-chat and quick questions, feel free to visit and participate in Discussions. They work much like classic forums or bulletin boards. Just keep in mind: your valued input isn’t equally well trackable there.

  Show on Github    Submit Issue

(content created Jun 27, 2025)