The HUSB238 USB PD sink chip is neat in that you can either use jumpers (really, resistor selection) to set the desired PD voltage and current or you can use I2C for dynamic querying and setting. We’ve build a nice Adafruit USB Type C Power Delivery Dummy Breakout board around the HUSB238 to make it very easy to configure and integrate without having to solder any tiny resistors.
It’s perfect for use with USB Type C wall adapters that can provide multiple voltages, the standard offerings are 5V, 9V, 12V, 15V, 18V and 20V. This HUSB238 breakout plugs into the USB C cable and then over the CC lines will negotiate the PD request and commands. For example we can ask what voltages are available and then pick the highest one. Or if you need a specific voltage it will specifically select that one.
This breakout will be handy for projects where you need a lot more than 5V @ 2A power: this adapter can give up to 20V at 5A – yes you can get 100W over USB C! – and you could buck that down to get a ton of current at 5V or 12V if that’s needed. Or use it to convert a DC or battery-powered device into a USB C powered one!
Jumper-configured usage is simple: by default its hard-wired for 5V 1A output since that’s what USB C will always provide at first. Cut the 5V jumper and solder closed the 9V, 12V, 15V, 18V or 20V jumper to select the resistor that sets the voltage. You can also select the desired current from 2A to 3A, although we have found that this isn’t as essential, you could always just pull as much as the adapter will provide. No microcontroller or microcomputer is required!
I2C-configured usage is a little more challenging. Since the Vout can be as high as 20V we don’t have an onboard voltage regulator or pullup resistors. Connect to a microcontroller or microcomputer board that has a separate power supply (or that can regulate from up-to-20V if you plan on selecting that high) and I2C pullup resistors to your desired logic level. Then use the Arduino library and example code to query the USB Type C PD source for available voltages and currents and select the desired voltage dynamically. When configuring over I2C, the jumper settings are used on startup until the I2C commands come over.
Comes with a small bit of header and a terminal block so you can decide whether you want to use it in a breadboard, or free-wired.
Adafruit publishes a wide range of writing and video content, including interviews and reporting on the maker market and the wider technology world. Our standards page is intended as a guide to best practices that Adafruit uses, as well as an outline of the ethical standards Adafruit aspires to. While Adafruit is not an independent journalistic institution, Adafruit strives to be a fair, informative, and positive voice within the community – check it out here: adafruit.com/editorialstandards
Stop breadboarding and soldering – start making immediately! Adafruit’s Circuit Playground is jam-packed with LEDs, sensors, buttons, alligator clip pads and more. Build projects with Circuit Playground in a few minutes with the drag-and-drop MakeCode programming site, learn computer science using the CS Discoveries class on code.org, jump into CircuitPython to learn Python and hardware together, TinyGO, or even use the Arduino IDE. Circuit Playground Express is the newest and best Circuit Playground board, with support for CircuitPython, MakeCode, and Arduino. It has a powerful processor, 10 NeoPixels, mini speaker, InfraRed receive and transmit, two buttons, a switch, 14 alligator clip pads, and lots of sensors: capacitive touch, IR proximity, temperature, light, motion and sound. A whole wide world of electronics and coding is waiting for you, and it fits in the palm of your hand.
Have an amazing project to share? The Electronics Show and Tell is every Wednesday at 7:30pm ET! To join, head over to YouTube and check out the show’s live chat and our Discord!