Skip to content
Rau7hanPublic

About

ESP32-based USB-C Power Delivery programmable power supply

Resources

Stars

20 stars

Watchers

0 watching

Forks

Latest commit

Β 

History

9 Commits

Folders and files

NameName
Last commit message
Last commit date
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

PowerPD - ESP32 USB-C PD/PPS Programmable Power Supply

PowerPD Thumbnail

A Compact, Feature-Rich USB-C Power Delivery Programmable Bench Power Supply

Hackster Hackaday Instructables


πŸ“‹ Table of Contents


Introduction

PowerPD is an innovative ESP32-based USB-C Power Delivery (PD) and Power Profile Specification (PPS) programmable bench power supply. It leverages modern USB-C PD technology to provide a flexible, programmable power source that can deliver various voltage and current levels.

Perfect for electronics enthusiasts, makers, and professionals who need a compact, feature-rich power supply for prototyping, testing, and DIY projects.


✨ Features

  • ⚑ USB-C Power Delivery Support - Harness power from modern USB-C PD chargers (5V-20V)
  • πŸŽ›οΈ Programmable Voltage & Current - User-configurable output with real-time control
  • πŸ”§ ESP32 Powered - Full-featured microcontroller for advanced functionality
  • πŸ“± Interactive Menu System - Intuitive interface for easy configuration
  • πŸ“Š Real-time Monitoring - Display current voltage and current output
  • πŸŽ“ Easy Programming - UART to USB interface for firmware updates
  • πŸ’Ύ Compact Design - Space-efficient bench power supply form factor
  • πŸ—οΈ Open Source - All designs, schematics, and code included

Specifications

Parameter Value
Microcontroller ESP32
Input USB-C Power Delivery / PPS Charger
Output Voltage Range 5V to 20V (via USB PD/PPS protocols)
Programmable Voltage User-configurable voltage selection
Programmable Current User-adjustable current limits
Control Interface Interactive menu system via ESP32
Communication UART to USB interface for programming
Form Factor Compact bench power supply

How It Works

The PowerPD system operates through a simple but powerful workflow:

  1. Power Input πŸ”Œ

    • A USB-C PD/PPS charger supplies power to the system
    • The system negotiates the desired voltage with the charger
  2. ESP32 Control 🧠

    • The ESP32 microcontroller manages voltage negotiation and current limiting
    • The AP33772S power manager IC provides precise voltage and current regulation
  3. User Configuration βš™οΈ

    • Users set desired voltage and current values through an intuitive menu interface
    • Real-time feedback shows current operating parameters
  4. Power Output ⚑

    • The regulated output is available as a programmable bench power supply
    • Suitable for powering various electronics projects and testing scenarios

Hardware Overview

3D Model & Design

PowerPD 3D Design

3D Rendered View of PowerPD Enclosure

PowerPD 3D Model

3D-Printable Enclosure Model

PCB & Manufacturing

PowerPD PCB

High-Quality PCB from NextPCB


Gallery

Power Output Demonstrations

5V Output Mode

5V Output

PowerPD delivering stable 5V output

16V Output Mode

16V Output

PowerPD delivering high-voltage 16V output

20V Output Mode

20V Output

Maximum 20V output capability

Alternative 5V Output View

5V Output Secondary

5V output measurement configuration

5V Output (Scaled)

5V Output Scaled

Compact 5V output demonstration

Control Interface & Menu System

Main Menu Display

Menu System

Interactive menu system for voltage/current selection

PPS Adjustment Menu

PPS Menu

Power Profile Specification (PPS) adjustment interface

Integration & Monitoring

Live Working Setup

PowerPD Working

PowerPD in action - live demonstration

Adafruit IoT Dashboard

Adafruit Dashboard

IoT monitoring with Adafruit IO integration

Adafruit IoT Integration

Adafruit Integration

Remote monitoring and control via Adafruit IoT

Development & Programming

Programming Interface

UART to USB Programming

UART to USB interface for firmware programming

NextPCB Promotion

NextPCB Promotion

PCB fabrication courtesy of NextPCB


Repository Files

Directory Description
Firmware ESP32 Arduino code (PowerPD.ino) with AP33772S power manager driver for voltage and current control
Gerber Files Complete PCB manufacturing files including schematics BOM and centroid files ready for fabrication
Picture High-quality project photos, gallery images, and demonstration screenshots
PowerPD Schematic Detailed circuit schematics for reference and replication
STL 3D-printable enclosure files for project housing

Getting Started

Prerequisites

  • ESP32 Development Board or PowerPD PCB
  • USB-C Power Delivery (PD) Charger (5V-20V recommended)
  • Arduino IDE with ESP32 support
  • UART to USB adapter (CH340G or similar) for programming

Quick Start

  1. Clone/Download the Repository

    git clone https://github.com/Rau7han/PowerPD.git
  2. Prepare the Firmware

    • Open Firmware/PowerPD.ino in Arduino IDE
    • Include the AP33772S.cpp and AP33772S.h libraries
    • Select ESP32 board and appropriate COM port
  3. Upload Firmware

    • Connect UART to USB adapter to programming header
    • Upload the firmware to your ESP32
  4. Power On

    • Connect USB-C PD charger to the PowerPD input
    • The system will boot and display the menu
  5. Configure Output

    • Use the menu system to select desired voltage (5V-20V)
    • Adjust current limits as needed
    • Your programmable power supply is ready to use!

Project Links

Platform Link
Hackster.io PowerPD ESP32 USB-C PD/PPS Programmable Power Supply
Hackaday.io PowerPD - ESP32 USB-C PD/PPS Bench Power Supply
Instructables PowerPD: ESP32 USB-C PD Bench Power Supply

License & Author

Author: Rau7han

License: See repository for detailed license information


Contributions, suggestions, and feedback are welcome! πŸŽ‰

If you build PowerPD, we'd love to hear about it! Share your projects and improvements.

About

ESP32-based USB-C Power Delivery programmable power supply

Resources

Stars

20 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages