A Software-Defined USB PD Charger (ESP32, FPGA, Open Source Hardware)
We built a multi-port USB-C PD3.2 system that treats power delivery as a software-defined problem rather than fixed-function silicon. This started as our internal R&D platform while developing a consumer charger. We were uncomfortable with the typical “the FAE handles the firmware, you just build the hardware” model that dominates the PD ecosystem. In that model, key behavior lives in vendor-controlled binaries, arbitration rules are opaque, and meaningful customization is either discouraged or impossible. We wanted full ownership of the system — from power stage to protocol logic — and we…
What it does
In the maker’s words, at launch
We built a multi-port USB-C PD3.2 system that treats power delivery as a software-defined problem rather than fixed-function silicon. This started as our internal R&D platform while developing a consumer charger. We were uncomfortable with the typical “the FAE handles the firmware, you just build the hardware” model that dominates the PD ecosystem. In that model, key behavior lives in vendor-controlled binaries, arbitration rules are opaque, and meaningful customization is either discouraged or impossible. We wanted full ownership of the system — from power stage to protocol logic — and we wanted the ability to inspect, version, test, and evolve the charging algorithms ourselves. Instead of treating firmware as a thin configuration layer on top of fixed-function silicon, we designed the charger as a programmable system from the beginning. Furthermore, we want to empower everyone. So we redesigned the stack with a clean separation of concerns: * ESP32-C3 (Wi-Fi + BLE) running open firmware * FPGA handling safety features and control plane management * 5× PD3.2 controllers (up to 140W per port capability) The ESP32 chip offers: * Local HTTP/JSON API * MQTT client * Prometheus exporter * OTA updates * Telemetry aggregation Everything works locally; no cloud required (although cloud is available). We approached this using software engineering discipline instead of traditional embedded shortcuts: * Software defined, and software as an asset not a liability * Open Source firmware * Reviewable, testable modules * Exposed APIs instead of hidden vendor blobs The idea is simple: if modern infrastructure is observable and programmable, power delivery should be too. It’s fully solid-state, built with industrial components (Coilcraft inductors, Murata/Samsung MLCCs), and powered by an off-the-shelf Mean Well PSU for reliability and traceability. Repo: https://github.com/ifanrx/IonBridge Happy to answer technical questions.
Does the same job
all alternatives →- WBWe built an open USB-C Power Delivery analyzer and programmable sinkAug 2026 · github.com · ▲8
Title: Show HN: We built an open USB-C Power Delivery analyzer and programmable sink Hi HN! We’re Arbi, Marco, and Rob, and we built Dr. PD to make USB-C power problems easier to understand. It sits between a power source and device, captures and decodes their USB-PD negotiation, and correlates it with voltage and current measurements. It can also act as a programmable sink, with support for fixed supplies, PPS, AVS, and USB-PD 3.2 EPR up to 240 W. Commercial USB-PD analyzers are often priced beyond the reach of hobbyists and independent designers. We are on a mission to make high-quality…
- TSThe SC4-HSM, a fully open USB hardware secure module2016 · sc4.us · ▲137
- PAPdsink – A new USB-PD 3.2 sink stack for embedded devicesNov 2025 · github.com · ▲6

- UPUSB PD Stand-Alone Sink Controller2019 · blog.oxplot.com · ▲124

More dev tools this month
the category →



Open-source GTM skills for technical founders
Dev tools · 29d ago · gtmcofounder.com

OpenTrailPaper is open-source bike computer firmware for the LilyGO T5S3 4.7" E-Paper PRO. It supports offline maps, GPX routes, FIT recording and Bluetooth sensors.
Dev tools · 2d ago · opentrailpaper.com

Launched alongside, March 2026
the whole month →

Switch from ChatGPT to Claude with import memory feature
AI · Mar 2026 · claude.com


