A few users have asked me about a problem that the PD Buddy Sink has with the RAVPower 26800 USB PD power bank. It's a 99 Wh battery pack with a 30 W USB PD output. I won't give any link to the power bank because as I'm about to describe, it's not a product I can recommend to anyone. The symptom discovered is that after about 30 seconds of being connected to this power bank, the PD Buddy Sink starts resetting rapidly, with its LED blinking wildly.
The first user to report this problem found a workaround, which was to keep a load of at least 100 mA connected at all times. For some applications, this obviously isn't a very nice solution: it's a battery, so power is limited, and keeping a low load when possible would be best. If the load is naturally intermittent, e.g. a soldering iron with bang-bang temperature control, it would be great to not have to keep a dummy load attached when the heater is turned off.
Now, I've been skeptical about this power bank for a while. Some reports like this one made me feel uncertain that it would follow the USB PD spec very well. Once I heard of what was going on with the Sink when connected to this thing, I deduced that the power bank must be sending a bunch of hard resets to the Sink. To the best of my knowledge, a source isn't allowed by the standard to do this simply because of low power draw. My skepticism of the power bank grew.
After hearing a couple more reports of this problem, I finally decided to suck it up and buy one so I could see what's going on first-hand. It arrived a couple days ago, and I just got around to testing it today. I hooked it up to a PD Buddy Sink with my trusty logic analyzer on one of the CC lines, and what I found was even weirder than I imagined.
This power bank has the most extreme example of the "Split PDO" problem that I've ever seen: it first advertises 5V@3A, 9V@3A, and 12V@2.4A. After the Sink makes a request, it accepts it and provides the power, giving a PS_RDY message. It then immediately sends the same source capabilities again, so we have to go through the same negotiation twice for no apparent reason. About a second later, it sends a third Source_Capabilities message, this time with 5V@3A, 9V@3A, 12V@2.4A, 15V@2.1A, and 20V@1.5A. This disagrees with the printing on the back of the power bank, which says it provides 5V@3A, 9V@2A, 15V@2A, and 20V@1.5A (which by the way violates the USB PD power rules: there should be 3A available at 9V if there's 2A available at 15V). The advertised capabilities violate the power rules as well because the pack is sold as having a PD Power of 30 W, but the advertised capabilities go up to 31.5 W. Eek.
But it gets weirder. After about 30 seconds of supplying the power the Sink requested, if the Sink isn't drawing much power, the charger decided to send another Source_Capabilities message. This time, it contains a single PDO offering a paltry 5V@50mA. Not only is this way lower than the PD Power of the device, it's not even one USB 2.0 unit load of 5V@100mA. This is actually where I admit some fault, because the PD Buddy Sink blindly requests 5V@100mA when it can't negotiate the configured power. I expected this to be safe amount of power, but it exceeds what the power bank advertised, which is what caused the hard resets.
So I took an accurate measurement of the Sink's real power consumption, which was just a hair over 20 mA during setup mode. Since all fixed currents must be in increments of 10 mA, I decided that a value of 30 mA would be most sensible. So I tried that, and now at least it doesn't get a series of hard resets. Since this means that the Sink can now remain connected to the power bank while in setup mode, I'll make a firmware bugfix release (version 1.2.1) with this patch shortly.
There's still more to fix here, of course. The PD Buddy Sink still can't maintain a low power draw from the power bank while an explicit contract for higher power is in place. I'll keep looking into this issue, but I suspect the solution won't be pretty (if I can find one at all). Regardless, I can't recommend this power bank to anyone because of the discrepancy between how much power it advertises to the sink and the specified output printed on the device.