-
USB PD Programmable Power Supply: How to obtain?
09/07/2017 at 15:22 • 0 commentsIn my quest to make the PD Buddy Sink the best possible device for getting power from USB PD chargers, the next step is to add support for more types of PDO. I still don't know any chargers that advertise variable or battery PDOs, but I just found evidence of one that supports the very exciting Programmable Power Supply PDO from USB PD 3.0: https://www.diodes.com/assets/Evaluation-Boards/QC4-27W-Class-A-Reference-Design-User-Guide-Release-1.0.pdf
Now the question is, "how the heck do I get one?" I haven't found any evidence that these exist beyond the linked PDF and some Chinese articles that don't seem helpful. If anyone out there can tell me how I could get my hands on one of these evaluation boards, I'd really appreciate it!
-
Easily view a charger's capabilities with PD Buddy Sink+Wye
09/04/2017 at 20:48 • 0 commentsSince firmware version 1.1, it's been possible to view the capabilities of a USB Power Delivery source using the PD Buddy Sink. And since the PD Buddy Wye was released, it's been possible to view a standalone charger's capabilities by running the Sink in setup mode while connected to the charger. But the way the GUI showed the capabilities was lacking: they were presented exactly the same as the console gives them! Obviously this couldn't be the best way to show capabilities in a GUI, so I got to work on a new design.
---------- more ----------The main screen for a Sink now shows the maximum power the charger is capable of supplying (termed "PD Power" by the standard). It also shows a warning icon if the advertised capabilities appear to violate the Source Power Rules, which an unfortunately large number of chargers do. To implement these features, I added a few new functions to the pd-buddy-python library. One calculates the maximum power given from a list of PDOs, and the other carefully combs through the PDOs to see if any capability violates the Power Rules. These seemed to be generally useful functions, so I added them to the library rather than just the GUI code.
When the user clicks the Source Capabilities line, the new Source Capabilities dialog appears. It shows all the same information as before, but formatted in a much friendlier way. The PD Power and warning icon (if applicable) are shown at the top, followed by all the extra information from the VSafe5V PDO. Then all the PDOs are shown in a compact, scannable list. If any of the Fixed PDOs have over-current capabilities, they are listed in full in the tooltip of an icon next to the current, so there's no need to check the standard for meanings of numbers.
Overall, I'm really happy with how this new dialog turned out. I hope you like it as much as I do!
-
PD Buddy Wye available on Tindie!
08/29/2017 at 17:45 • 0 commentsThe PD Buddy Wye power/data splitter is now available on Tindie! If you have a PD Buddy Sink and want to make full use of the new features in firmware version 1.1, I encourage you to check it out!
-
PD Buddy Sink v1.0 was briefly in stock
08/07/2017 at 21:28 • 0 commentsA few hours ago, a batch of ten PD Buddy Sink boards arrived from @MacroFab. They're all beautiful, and I photographed them and listed nine on Tindie promptly. As I was preparing to write a post about them over here on Hackaday.io, I saw that three had already sold. When I finished packing those, four more had sold. When I finished packing those, the last two had sold! Running out of inventory quickly isn't a bad problem to have, all things considered.
I've ordered another batch, so they'll probably be back in stock in three to four weeks [Edit: the microcontrollers used aren't available currently, so it'll be longer than that]. Here's hoping they'll continue to sell this well, so I can keep ordering even larger batches in the future!
-
Power/Data Splitter Not Needed
07/27/2017 at 19:39 • 0 commentsI started looking at ways to make the power/data splitter described in the last post, and the situation didn't look good. I didn't want the side that plugs into the PD Buddy Sink to have a female connector because I don't know how e-marked cables would like being chained together. However, all the male connectors I found either had to be reflowed, which I'm not capable of doing at home, or require 0.8 mm PCBs, which I can't find a way to get for under $50 in under 3 weeks. I really don't want to spend that much or wait that long, so I had to think of another way. I thought about hacking apart two USB cables, but again, I'm not sure how e-markers would like that. What to do?
Well, I have two v0.1 PCBs lying around unused. They've already been hacked on quite a bit to fix the schematic errors in that version, so a bit more ugliness wouldn't hurt anyone. I decided to cut the USB D+/- traces and solder a USB cable's GND, D+, and D- wires to the board to have separate data and power connections. After some tricky fine-pitch soldering, the ugly board came to life!
After some testing, I've concluded that the problem I observed yesterday was in fact the fault of the Asus USB 3.1 UPD Panel, not the PD Buddy Sink. This is welcome news, since it means I don't have a weird bug to track down and fix. Now I get to go back to developing new features instead of quietly worrying!
I still might design a power/data splitter board, since it could be useful to people other than myself. But since I personally have no urgent need for one, I'll probably only make it if someone out there asks me to.
-
Working on Firmware 1.1, Power/Data Splitter Needed
07/26/2017 at 20:27 • 0 commentsI'm currently working on the big new feature of firmware version 1.1, Power Delivery communications in Setup mode. It's working partially, but not fully as planned yet. The saved configuration is negotiated on boot in Setup mode, and any time the configuration is written to flash, a new contract is negotiated for the new power. There's no way to control the output from the command shell yet, and I'd like the shell to be able to print information like the power supply's advertised PDOs, but what I've done so far is working well.
Er, it's mostly working well, that is. I'm testing simultaneous Power Delivery and USB data with an Asus USB 3.1 UPD Panel, a device which has a few quirks. It uses the old USB Power Delivery voltages of 5, 12, and 20 V instead of the newer 5, 9, 15, and 20 V. It also only offers 1.5 A at 5 V. However, it offers a full 5 A at 20 V if the cable can carry that much current, so it's not a bad tool to have on hand.
But there's one thing I've run into that I'm not sure whether to blame on the UPD Panel or the PD Buddy Sink's firmware. When I reconfigure the Sink for 12 V and 20 V repeatedly, it happily gets those voltages as expected. But sometimes when I configure it for 5 V, or configure it for something else when it was already configured for 5 V, power is lost entirely. It seems unlikely that the PD Buddy Sink is at fault, since I'm not aware of anything in the USB PD spec that should cause the source to completely remove power until the sink is physically reconnected. However, I'm not 100% sure I'm right about that, and I don't want to read all the way through a >500 page technical document to find the answer. The easy way to test this would be to plug the PD Buddy Sink into a different power supply to see if the problem disappears, but I don't have another power supply that lets me communicate with the Sink via USB at the same time.
The solution I've imagined is a USB Type-C power/data splitter. It could be a funny Y-shaped cable, or a small PCB with 3 USB connectors. One connector would be male, with power, ground, the configuration channels, and the USB 2.0 D+/- lines connected. These would split off so that one female connector would have power, ground, and the configuration channels, and the other would have ground and the D+/- lines. This device would allow me to plug the PD Buddy Sink into any power supply, including standalone ones, while communicating with it from a computer.
I don't know if a device like this already exists, but I could design one easily enough. If you know of anything like this, please let me know in the comments! Otherwise, I'll be designing and ordering a PCB for one in a day or so.
-
PD Buddy Sink v1.0 Released!
07/19/2017 at 19:01 • 0 commentsThe first PCB release considered stable! Very similar to v0.3, this release is optimized for lower cost while retaining all functionality of the previous release.
- D1, Q1, Q2, and SW2 have all been changed to reduce the board's cost
- Many reference designators have been moved closer to their components
- The board's dimensions remain the same, including positions of the parts on the bottom
Due to the last point, the programming jig did not require any changes in this release. I'll be placing an order for a medium quantity of these soon, and I expect to have them in stock on Tindie in 3-4 weeks. I'll hopefully be able to write firmware version 1.1 by then, which will allow the device to do Power Delivery negotiations in setup mode.
-
PD Buddy Sink v0.3 Now Available
07/06/2017 at 01:29 • 0 commentsThe v0.3 prototype boards just arrived from @MacroFab, and boy am I pleased with the work they did! I programmed them with the programming jig that arrived from @oshpark a couple weeks ago, and they all work perfectly. There are still a couple minor changes I'll probably make before v1.0, but with this revision the PD Buddy Sink hardware is in essentially a finished state.
You may notice that I didn't have MacroFab install an output connector. That's because I wanted to give people more connector options than before. The new boards can be purchased with no output connector, the screw terminals used before, or male header pins on the bottom or top of the PCB. I really like the header pins on the bottom, because they can be used to power a breadboard, as seen below.
Two of the three v0.3 prototype boards are available on Tindie. If you miss out on these, don't worry: I'll be putting the finishing touches on v1.0 soon, so there will be even more PD Buddy Sinks available before long.
-
New Firmware and Software Releases
06/19/2017 at 21:01 • 0 commentsI just made two new releases: PD Buddy Sink Firmware v1.0.1 and pd-buddy-python v0.2.1. These are both minor bugfix releases, fixing bounds checking for setting invalid voltages and currents through the configuration interface.
Previously, the firmware allowed the user to set voltages and currents greater than what USB Power Delivery allows. Also, the Python library gave no indication when setting the voltage or current failed. These bugs are both fixed now: the firmware accepts only voltages in the range [0 mV, 20000 mV] and currents in the range [0 mA, 5000 mA]. When the firmware rejects a voltage or current value, the Python library now raises a ValueError in response. After all, errors should never pass silently.
-
PCB v0.3 Released!
06/10/2017 at 20:57 • 0 commentsA PD Buddy Sink designed for automated assembly!
- Sizes of passives reduced from 0805 to 0402, with a few 0603 passives as well
- Surface-mount USB connector instead of hybrid (don't worry, the new connector's shield still has through-hole pins for mechanical strength)
- QFN microcontroller instead of QFP
- Boot switch and programming header moved to bottom of board
- Board size greatly reduced (48 mm × 26 mm ⇒ 30 mm × 25 mm)
- Screw hole spacing changed (18 mm ⇒ 17 mm)
- To accommodate the tighter packing of components, the board now has four layers instead of two
Additionally, a programming jig has been designed to accommodate programming the Sink without a boot switch or programming header installed. The PCB can be found in the programming-jig directory, and a 3D-printed spacer can be found in the pd-buddy-openscad repository.