Bulky bench power supplies and dedicated adapters are still common on electronics workbenches, but they are often inconvenient to carry around and overkill for many portable or field setups. With USB Power Delivery and newer GaN chargers now able to provide high power from compact adapters, developers are starting to treat USB-C as a serious power source rather than just a charging port. Theo Heng’s PD240W project builds on this shift by turning a USB-C PD adapter into an adjustable high-power supply suitable for driving motors and other demanding loads. The compact unit uses a Raspberry Pi RP2040 microcontroller to negotiate power profiles from a USB Power Delivery source, allowing it to request different voltage and current levels depending on the connected charger and the selected mode.
The design supports standard USB PD fixed profiles, PPS (programmable power supply) for finer voltage control in the lower range, and higher-voltage profiles intended for extended power range operation. In practice, the project has been validated primarily with USB PD 3.0 sources up to 20 V, with higher-voltage operation depending on the capabilities of the connected charger and the user’s own testing. This makes the device more suitable for controlled lab or prototyping use rather than as a finished, safety-certified power product.
The hardware is built around a custom PCB that integrates the RP2040 with a dedicated USB Power Delivery controller, allowing the device to request and manage power contracts from the charger. Output power is switched using a high-side MOSFET driver, and voltage and current are monitored in real time using a precision power monitor IC, enabling adjustable current limiting and basic protection features. The board also includes temperature sensing for thermal monitoring, along with electrostatic discharge protection on the USB-C interface.
User interaction is handled through a small colour LCD driven over SPI and a rotary encoder with push-button input, providing a local interface to select voltage profiles, adjust current limits, and view live power readings. An onboard buck regulator provides an auxiliary 17 V output intended for motor drive safety or control circuits, and user settings are stored in the RP2040’s flash memory so the device can retain configuration across power cycles. The electronics are housed in a 3D-printed enclosure, with the design files and PCB manufacturing data made available for builders who want to reproduce the hardware. The project’s documentation, firmware, and PCB design files are published on GitHub under a permissive license, and the enclosure can be produced with consumer 3D printers.