Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

6 Commits
 
 
 
 

Repository files navigation

AxxPD

A programmable USB-C PD 3.1 power source that delivers 3.3 V to 48 V at up to 240 W, with precision measurement and SCPI automation

AxxPD, a pocket-sized programmable USB-C PD power source, shown front three-quarter with the display lit

AxxPD was designed because we kept missing something on the workbench: a small, powerful, programmable power source that covers a wide voltage range — all the way from 3.3 V up to 48 V and up to 240 W — reports accurately what the supply is actually outputtinhg, and can be controlled from a script. USB-C PD sources are everywhere now, so building on the USB-C PD 3.1 standard was the obvious path. Cheap USB-C trigger boards give you a fixed voltage and no measurement — at best a basic display, an unpolished interface, and little or no enclosure. A proper bench power supply does the job but doesn't fit in your pocket or toolbox, and doesn't run off the charger that's already on your desk. AxxPD is what we built to fill that gap.

It is a USB-C PD 3.1 sink. Plug it into a PD charger or power bank and it negotiates anything from 3.3 V (via PPS) all the way up to 48 V and 240 W over EPR — a ceiling most USB-C tools never reach — and brings that power out on shrouded 4 mm banana jacks and an XT30 connector. The voltages and power you can actually reach depend on what your source advertises: AxxPD requests the best available match and shows you the contract it got.

Close-up of the AxxPD dashboard screen showing live voltage, current, and power

A 20-bit INA228 measures voltage and current continuously, shown on a clear 1.47" full-color display. You control everything with four buttons and six purpose-built screens: a dashboard for live voltage, current, and power; a plotting screen that graphs V and I over time so you can watch transients and load steps; presets for the voltages you use most; an energy screen with running Wh and Ah totals; a PDO browser; and settings.

The whole instrument lives in an anodized CNC aluminum enclosure with embedded magnets in the base, so it takes bench abuse, survives a bag, and sticks to any ferromagnetic surface. A second, independent USB-C port connects it to your PC for SCPI control, data logging, and firmware updates over DFU — separate from the power path.

Set a voltage from the four buttons, a Python script, a serial command, or the browser-based dashboard, and AxxPD shows you exactly what your charger delivers. Protection runs in hardware, independent of the firmware, down to the microsecond. It is a pocket-sized lab instrument rather than a voltage selector — the tool we wanted and couldn't buy.

Applications

As mechatronics engineers, we're constantly testing, validating, and integrating new sensors, actuators, and subsystems — and they all run from different supply voltages. A benchtop supply handles that on the lab desk, but add field testing, moving between workstations and a benchtop unit stops being the convenient choice. One — or a few — small, robust USB-C PD devices turn out to be a remarkably flexible way to cover that whole range of needs, whether you're an engineer, a drone builde, a HAM radio enthusiast. or someone who likes to work with electronics.

On the bench, in the lab, or out in the field running off the USB-C power bank you're already carrying, it's the same tool.

AxxPD in use on the bench, powering a board under test through its banana-jack output

That flexibility shows up in the everyday work. Bringing up a new board. Characterizing a sensor or actuator, you dial i the rail it expects and read the current it pulls or power a single-board computer at a non-standard rail. Whatever you connect to the output, AxxPD measures the real voltage and current flowing to it and shows you the contract it actually negotiated — so with a load drawing current you can watch how the charger and cable hold up to it, not just trust the label.

And it isn't only a manual tool. Because it listens and communicte via serial scripts and the axxpd Python library over USB the same unit that sits on your bench drops straight into an automated test rig — stepping through a voltage profile, logging the current at each point, and flagging anything that falls out of spec.

The browser-based WebSerial dashboard: live readout, the rolling voltage/current chart, and the SCPI terminal

Features & Specifications

USB-C PD input

  • USB-C PD 3.1 sink
  • Modes: Fixed PDO, PPS (3.3–21 V), AVS (15–48 V), and EPR (28 V / 36 V / 48 V)
  • Output range: 3.3 V to 48 V, up to 5 A, up to 240 W — within the connected source's advertised capabilities
  • Detects USB-C cable capability (3 A / 5 A / e-marked EPR)
  • Adaptive negotiation with e-marker emulation and automatic fallback for charger quirks

Outputs

  • Shrouded 4 mm banana jacks (finger-safe at 48 V)
  • XT30 connector
  • Back-to-back MOSFET output stage; output is off by default at power-on and requires an explicit enable
  • Output capacitor discharge switch. The output capacitor of the AxxPD discharges via a active discharge swtch when the output is turned off. The output connectors — shrouded 4 mm banana jacks and the XT30 — alongside the two USB-C ports

Measurement

  • 20-bit INA228 power monitor, ±0.05 % gain error
  • Continuous voltage, current, and power readout
  • Running energy and charge totals (Wh, Ah, elapsed time)
  • 20 Hz CSV telemetry over USB for logging

Display and controls

  • 1.47" color display (172 × 320)
  • Four buttons (Up / Down / Select / Power)
  • Six screens: dashboard, PDO browser, live V/I graph, presets, energy totals, settings

Control and connectivity

  • A second, independent USB-C port for the PC connection
  • USB CDC virtual COM port — no drivers on current operating systems
  • Full SCPI command set: set voltage and current, read measurements, query the PD contract, run voltage sequences
  • Browser-based WebSerial dashboard — live control and CSV recording from Chrome or Edge, nothing to install
  • Python library, published on PyPI — pip install axxpd
  • Firmware updates over USB DFU

Firmware

  • Built-in self-test: steps through the voltages your source advertises and reports which ones it successfully negotiates and reaches — a quick way to see what a charger and cable can actually do
  • Optional power-on at boot: arms the output automatically once the PD contract settles, with a short on-screen countdown you can cancel
  • Remembers your last voltage and current and restores them at the next boot
  • Configurable protection thresholds and over-current retry behavior

Protection (in hardware, independent of the firmware)

  • Overvoltage, overcurrent, undervoltage, and over-power protection
  • Reverse-current and reverse-polarity protection
  • Redundant overvoltage (LTC4368 plus an analog comparator backup) and redundant overcurrent (LTC4368 plus INA228 backup)
  • CC/SBU short-to-VBUS protection to 63 V
  • Staged thermal protection: warn, derate, then shut down
  • ESD protection per IEC 61000-4-2
  • Fail-safe: the output MOSFETs default to off if the MCU hangs or loses power

Key components

  • STM32G491CCU6 Cortex-M4F MCU
  • LTC4368 hot-swap controller (hardware overvoltage / overcurrent / reverse-current)
  • INA228 20-bit power monitor
  • LM5166 wide-input buck for the 3.3 V system rail
  • Back-to-back N-channel MOSFET output stage

Mechanical

  • CNC aluminum enclosure (which also acts as EMC shielding), with neodymium magnets in the base for mounting
  • 92 × 49 × 20 mm (3.62 × 1.93 × 0.79 in), including connectors
  • Weight: 83 g (2.9 oz)

The anodized CNC aluminum enclosure, showing the recessed display window and the magnets set into the base

Compliance (planned before the campaign)

  • CE marking, RoHS compliance, and pre-compliance EMC and ESD testing per IEC 61000-4-2

The full SCPI command reference and screen-by-screen documentation live in the GitHub repository.

What sets it apart

There are cheap USB-C trigger boards and there are expensive PD compliance analyzers. AxxPD is built for the engineer in the middle. It reaches the full 48 V / 240 W EPR range most USB-C tools never touch, in a rugged aluminum enclosure with protection that runs in hardware — the output shuts down in microseconds even if the firmware hangs. The firmware itself is proven rather than a first-boot prototype: the negotiation, measurement, protection, and recovery logic have been run hard against real chargers and cables, including the awkward edge cases, and the code is open for you to read and modify.

USB-C Power Delivery is quickly becoming the way power moves between everything on a bench, and EPR pushes that well past what a single connector used to carry. AxxPD is built for where that is heading: one cable, up to 48 V and 240 W, measured and scriptable.

What's in the Box

  • The AxxPD unit
  • Two 4 mm banana plugs — one black, one red — for making your own output leads
  • One XT30-to-bare-wire pigtail with 16 AWG silicone cable, ready to solder into your project

What's in the box — the AxxPD unit, two 4 mm banana plugs (black and red), and the XT30 silicone pigtail

A USB-C cable is not included. Any USB-C cable works up to 20 V; reaching the 28–48 V EPR range needs a 240 W e-marked cable.

Open Source

AxxPD's firmware and schematics are open. We want to be precise about what that means, because part of the design is intentionally kept closed.

Layer What Status
Firmware (our code) Bare-metal C++ application: UI, measurement, protection logic, SCPI handler Open — GPL-3.0-only
PD stack pdsink, a third-party PD 3.x negotiation library Open — MIT (original license retained)
Schematics Full circuit, in KiCad Published
SCPI protocol Complete command reference Documented
Tools WebSerial dashboard and the axxpd Python library (on PyPI) Open
PCB layout Board artwork and placement Kept closed
Enclosure CAD Mechanical source files Kept closed

What the open parts give you, concretely: you can read the PD negotiation logic yourself instead of trusting a black box, inspect every circuit decision in the KiCad schematics, write your own automation against the documented SCPI interface, and — because the firmware is GPL-3.0 on GitHub — keep building, fixing, and improving.

The PCB layout and enclosure CAD are the two files a cloner needs and the two you don't, so we keep them closed. Keeping the layout closed is what lets a small project like this fund its own continued development; everything you need to understand, automate, repair, and extend the device is open.

The firmware, schematics, SCPI reference, and tools are available now at https://github.com/AxxAxx/AxxPD, along with a bill of materials covering the main components. Issues and pull requests are welcome, and there's a dedicated AxxPD channel on the community Discord for support, feedback, and feature discussion.


About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors