mtabini
4 days ago
Bit of self-promotion: I spent the last year or so designing an open-source USB-PD protocol analyzer[1], and the complexity of the protocol can be mind-boggling. Most of the time, the communication between source and sink is really straightforward, but it can get amazingly complicated when both devices are dual-role or come from the same vendor[2].
As messy as it is, however, it's also a very useful protocol that allows even small players to take advantage of the same economies of scale that large companies can take advantage of. Pity that the communication often requires dedicated chips, though thankfully those are relatively inexpensive. I was able to get an RP2350 (the same MCU that's in the Raspberry Pi Pico 2) to interface directly with USB-PD, but they could have made it easier and more accessible.
[1] https://github.com/T76-org/drpd or https://www.crowdsupply.com/t76-org/dr-pd [2] https://hackaday.io/page/399885-a-mac-and-an-ipad-walk-into-...
pseudohadamard
3 days ago
I've been lucky enough to get to play with a pre-release version of this and can confirm that it's a fantastic device for dealing with USB-PD power issues, as well as debugging the ridiculous number of devices out there who get USB-C power in general wrong in any number of stupid ways. I just wish I'd had one of these a couple of years ago to help sort out the mass of devices with broken USB-C power, meaning not even full-on -PD but who couldn't even get plain 5V power because the people who designed it had somehow failed to copy and paste the reference circuit from a data sheet.
Melatonic
3 days ago
What do you think of those cheap chips you can use as USB-C PD control boards ? They usually have a button some way to cycle between a few different output voltages (like 12v, 5v, 18v, etc)
mtabini
3 days ago
It's hard to make a sweeping statement, but I can tell you that I more or less use USB-C exclusively in all my hardware designs now, and I've found that most of these “decoy boards” work well enough. The model I use[1] most often supports basic the USB-C protocol well, is easy to solder to (and remove from) an existing PCB, and is pretty robust.
I cannot stress enough how convenient being able to “plug and play” USB-PD power in an existing project is. Whenever I send a finished device to a client, I no longer have to worry about having to source a compatible power brick, or about them misplacing it. Not to mention that, for the simpler projects, I can literally get a 20W power puck from IKEA that has really good performance and costs all of $5 (Canadian). On top of that, if I find that I need more voltage, I can just change a jumper on the decoy board and I'm ready to go.
The only thing I wish more of these boards came with is better overcurrent protection; with PPS so common these days, it would be pretty easy to let the user choose an appropriate current cutoff. Oh well!
[1] https://www.amazon.ca/dp/B0CNVN1N3J?ref_=ppx_hzsearch_conn_d...
vitaminCPP
3 days ago
This looks awesome. Do you have video show casing you diagnosing a problem with it?
mtabini
3 days ago
Thank you! No videos yet, though both I and out beta testers have used Dr. PD to troubleshoot a bunch of devices. One of our testers actually develops USB-C sources, so it was very interesting to interact with them (and they found oh-so-many bugs :-) ).
There are some screenshots of the UI on the Github page[1], and I wrote a little bit about trying to figure out the mess of USB-C cables that I have accumulated over the years[2] to see which supports what capabilities.
I think some videos are a great idea… now that the device is done and we're starting to send review units out, hopefully I will have some time to actually shoot them :-)
[1] https://hackaday.io/page/399874-silence-the-usb-c-cable-spea... [2] https://hackaday.io/page/399874-silence-the-usb-c-cable-spea...