ESP32 based USB C Programmable Power Supply

ESP32 USB-C Power Supply

The idea for this ESP32 usb-c power supply project came to me when I discovered that components exist that communicate to parts inside usb-c wall chargers. These parts send out a request to the charger asking it to deliver specific voltage and current values if possible. Small chargers cannot deliver as much power as the larger ones. The small navigation button allows the user to select values with the top button as a power switch.

Hardware design instead of software is my strength so Larry Bank (https://github.com/bitbank2) was kind enough to write the software. I've changed a few things around and damaged it so it is still work in progress.

IMG_0867 Hardware

To upload an Arduino sketch to the board it is connected to a pc using a USB-C cable but the output is only ever +5V. When the board is plugged into a dedicated usb-c charger like the 60 watt apple one that I use, multiple voltages and current options are available. Text on the back of your charger will let you know what values are available.

wall_charger usbc

A +5V LDO with a maximum input of 36V provides power to the CP2104N USB-C interface chip. Current consumption is so low for this part that and LDO will not get warm.

5v

Because the ESP32 current draw a few hundred milliamps, an earlier revision using an LCD was too hot when +15v and +20V was selected. (power=voltage x current) A small switching buck power supply with a maximum input of +40V now runs cool.

3_3v

Measuring current draw at every voltage would be ideal so I've chosen the INA199 because at this time it is the only component that I can find in stock. Right now it's performance not good so I will try and find something better for the next revision.

INA

Similar Resources

ESP32 S2 USB host with examples.

This new USB host library based is based on changed and hopefully somehow final API from espressif. The idea is to make this library usable with esp-i

Nov 10, 2022

An USB Rubberducky example for ESP32-S2 module with SD Card 🦆

An USB Rubberducky example for ESP32-S2 module with SD Card 🦆

ESP32-S2 WUD-Ducky This project is an attempt to add USB HID to the default example provided with @AprilBrother's WUD (*), however it also supports an

Nov 14, 2022

Scrollytroller is a crank-based USB controller, initially inteneded for use with Playdate's Pulp web-based game development tool

Scrollytroller is a crank-based USB controller, initially inteneded for use with Playdate's Pulp web-based game development tool

Scrollytroller Scrollytroller is a crank-based USB controller, initially inteneded for use with Playdate's Pulp web-based game development tool. This

Feb 17, 2022

Firebase Arduino Client Library for ESP8266 and ESP32. The unified version of Firebase-ESP8266 and Firebase-ESP32 Realtime database libraries with Cloud Firestore, Firebase and Google Cloud Storage, Cloud messaging and Cloud Functions supports.

Firebase Arduino Client Library for ESP8266 and ESP32. The unified version of Firebase-ESP8266 and Firebase-ESP32 Realtime database libraries with Cloud Firestore, Firebase and Google Cloud Storage, Cloud messaging and Cloud Functions supports.

Firebase Arduino Client Library for ESP8266 and ESP32 Google's Firebase Arduino Client Library for ESP8266 and ESP32 v 2.0.3 This library supports ESP

Nov 29, 2022

Allows for multiple SwitchBot buttons and curtains to be controlled via MQTT sent to ESP32. ESP32 will send BLE commands to switchbots and return MQTT responses to the broker. Also supports Meter/Temp Sensor

SwitchBot-MQTT-BLE-ESP32 Switchbot local control using ESP32. no switchbot hub used/required. works with any smarthub that supports MQTT https://githu

Nov 26, 2022

AnalogWrite for ESP32 and ESP32-S2 with LEDC PWM. Includes PWM Phase Control, DAC and Smart GPIO resource management.

AnalogWrite for ESP32 and ESP32-S2 with LEDC PWM. Includes PWM Phase Control, DAC and Smart GPIO resource management.

analogWrite() ESP32 Installation Instructions This library was tested using using the ESP32 Arduino IDE Boards Manager installation method. Stable rel

Nov 26, 2022

ESP32 + GitHub Actions + Husarnet. A boilerplate project for ESP32 allowing in-field firmware update using GitHub Actions workflow.

esp32-internet-ota ESP32 + GitHub Actions + Husarnet. A boilerplate project for ESP32 allowing in-field firmware update using GitHub Actions workflow.

Sep 22, 2022

Super ATX Power!

Super ATX Power!

KCORES-CSPS-to-ATX-Converter 项目视频: 1元10瓦 垃圾佬的超级ATX电源-Youtube KCORES 交流群: 826702309 KCORES 官方网站: KCORES.com 从零开始制作: 入门指南 Specification 12V 5V 3.3V 5VSB

Nov 27, 2022

Bringing the power, stability and functional capabilities of C++ to Python.

going-native-py Bringing the power, stability and functional capabilities of C++ to Python. This is just a get your hands dirty approach and should be

May 22, 2021
Comments
  • Software Fixes

    Software Fixes

    Have you been able to resolve the problems you had with the software? You mentioned that someone else wrote the code but you "damaged" it and it was a work in progress? I'm planning on having some PCBs made and purchasing some parts so that I could make a few of these for myself and coworkers.

  • Update USB-C_Power.ino

    Update USB-C_Power.ino

    Updated logic to use PD0 as a non-active, default state.

    This fixes the persistent PDO profile issue, where the last loaded PDO config is present when re-connecting a USB-C PD source to the board.

    This change means that the board will default to no output - which is more suitable for this use case!

ESP32 software USB host through general IO pins. We can connect up to 4 USB-LS HID (keyboard mouse joystick) devices simultaneously.

esp32_usb_soft_host esp32 USB-LS pure software host thru general IO pins. Up to 4 HID devices simultaneously. board ~$3 :https://www.aliexpress.com/pr

Nov 25, 2022
ESP32-Skid-Steer - Bruder Catepillar Skid Steer model converted to RC, controlled by an ESP32 with 2 analog joysticks and a receiver that is an ESP32 on the model.
ESP32-Skid-Steer - Bruder Catepillar Skid Steer model converted to RC, controlled by an ESP32 with 2 analog joysticks and a receiver that is an ESP32 on the model.

ESP32-Skid-Steer Bruder Catepillar Skid Steer model converted to RC, controlled by an ESP32 with 2 analog joysticks and a receiver that is an ESP32 on

Oct 27, 2022
A laser cut Dreamcast Pop'n Music controller and integrated memory card using the Raspberry Pi Pico's Programmable IO
A laser cut Dreamcast Pop'n Music controller and integrated memory card using the Raspberry Pi Pico's Programmable IO

Dreamcast Pop'n Music Controller Using Raspbery Pi Pico (RP2040) Intro This is a homebrew controller for playing the Pop'n Music games on the Sega Dre

Nov 20, 2022
Next gen. of NekoCal: An open-source hackable and programmable e-paper display

NekoInk NekoInk is an open-source, programmable, and versatile E-paper display platform. It offers connectivity options to various type of E-paper scr

Nov 16, 2022
A couple of demos showing how to use the Ultra Low Power coprocessor on the ESP32
A couple of demos showing how to use the Ultra Low Power coprocessor on the ESP32

ESP32 Ultra Low Power (ULP) coprocessor You can watch a video explanation of this code here This repo contains two demo project: ulp-gpio Shows you ho

Nov 9, 2022
Save battery power and put your ESP32 to (deep) sleep - but what happens when it wakes up?
Save battery power and put your ESP32 to (deep) sleep - but what happens when it wakes up?

#229 ESP32 Deep Sleep Save battery power and put your ESP32 to (deep) sleep - but what happens when it wakes up? Direct link to video: https://youtu.b

Nov 15, 2022
ESP8266 software USB host through general IO pins. We can connect up to 2 USB-LS HID (keyboard mouse joystick) devices simultaneously.
ESP8266 software USB host through general IO pins. We can connect up to 2 USB-LS HID (keyboard mouse joystick) devices simultaneously.

esp8266_usb_soft_host Test for esp8266 usb host . Works with ESP-IDF v3.4 80MHz and 160MHz. WorkInProgress Test run with mouse & combined mouse & keyb

Sep 1, 2022
Tiny and portable usb host and device stack for mcu with usb ip

Tiny and portable usb host and device stack for mcu with usb ip

Nov 29, 2022
USB-C_PCB_experiments - USB-C ports made from a flex PCB and an ATtiny84A
USB-C_PCB_experiments - USB-C ports made from a flex PCB and an ATtiny84A

USB-C PCB Experiments This is part of an ongoing series of projects involving creative interpretations of the USB mechanical standards. You've probabl

Sep 5, 2022
Anotter USB temperature logger that can record up to four channels with thermocouple or NTCs connected via CDC directly or SCPI to USB.
Anotter USB temperature logger that can record up to four channels with thermocouple or NTCs connected via CDC directly or SCPI to USB.

temperature-logger Anotter USB temperature logger that can record up to four channels with thermocouple or NTCs connected via CDC directly or SCPI to

Nov 24, 2022