I have a power bank that is PD capable, but I cannot charge it from my MacBook even if the MacBook is plugged in to power. I get around it by using a USB-C/A dongle and corresponding USB-C/A cable. Presumably this "downgrades" the connection and since the MacBook doesn't support traditional USB charging it has to charge the power bank. Does USB-C not have a way to indicate that a potential power source is a battery so that the MacBook can charge it if it's plugged in to power, and reverse roles otherwise? Is this a fault how the power bank or macOS implements power negotiation, or is this scenario simply unaddressed in USB-C?
Funny enough, if I plug the USB-C/A dongle on the end of the power bank and the cable into the MacBook, it also won't charge.
I also have a Philips One toothbrush with a USB-C charging input. Similarly, I can't charge it with a USB-C cable directly from my MacBook but have to use A in between (I unsuccessfully tried using either a thinner "lower speed" or a thicker "higher speed" USB-C cable). I'm assuming the toothbrush doesn't support PD, so then why can't it fall back to traditional charging with a C-to-C cable?
> I also have a Philips One toothbrush with a USB-C charging input. Similarly, I can't charge it with a USB-C cable directly from my MacBook but have to use A in between (I unsuccessfully tried using either a thinner "lower speed" or a thicker "higher speed" USB-C cable). I'm assuming the toothbrush doesn't support PD, so then why can't it fall back to traditional charging with a C-to-C cable?
Because USB-C says that a power source cannot provide 5V onto Vbus until negotiation has happened to prevent both endpoints of the link "competing" for power which can have disastrous results - for USB-C devices, that is either two resistors on cc1/2 that is pretty dumb 5V, or it is actual bi-directional communication. Early USB-C devices, most infamously the Raspberry Pi 4, various vapes and likely your toothbrush managed to mess that up [1], although I recently came across a flashlight at Lidl which also has broken resistors.
Using an USB-C male to USB-A female adapter fixes this because the adapter has the two cc1/2 5K resistors correctly in place. The adapter can safely do that because - other than early USB 1 era hubs - 99.999% of USB-A devices with a separate power source have backfeed prevention, and so the source side will just provide 5V at either 100 mA or 500 mA cutoff.
More sophisticated power source devices will also try negotiation over D+/D- after the sink device has started to negotiate higher voltages using various proprietary schemes, there's controller chips available that speak everything from plain 5V@100mA bootstrap over 5V@500mA USB2 and proprietary schemes up to 20V@3A (and probably, given the newest USB-C PD specs, even higher), without even needing an external microcontroller (but of course, muxing the bus for everything up to USB4/TB should there be one). Absolutely wild.
It's "early" until the sockets and controllers are standard Shenzhen factory pick-and-place jellybeans. For the first few years of USB-C, it was essentially just being supported by one or two suppliers that most factories didn't work with — because that's all that needed to exist in the market when it was only Apple and maybe Intel sticking those chips and sockets on things.
See also: Thunderbolt, which still has this problem even today. (With the move to merging it into "USB4" in large part an attempt to solve the chicken-and-egg board-design-vs-part-supply problem by at least allowing use of the now-jellybean USB-C sockets, thus reducing the problem to "just" one of Thunderbolt-enabled controller-chip sourcing. And having an SoC that speaks PCIe in the first place.)
It's even simpler, I think: you're forcing it to avoid a PD negotiation, and fall back to the lowest common denominator, "500 mA on the PWR line supplied to the USB device". This goes, I believe, as far back as USB 1.1, as a slow-but-generally-safe power source for things that are barely more than "use USB PWR and GND as a dumb 5V source."
A C-to-C cable, OTOH, doesn't have this requirement, and if there's no PD negotiation, the MacBook is not required to provide power IIRC.
- note that all components need to be compliant (macbook, cable, toothbrush)
That's a lot of ifs just to charge a toothbrush. I would be greatly surprised if someone actually did (yes, it might already be cheaper to source SuperSpeed components at scale; I don't yet find it likely though)
> Does USB-C not have a way to indicate that a potential power source is a battery so that the MacBook can charge it if it's plugged in to power, and reverse roles otherwise? Is this a fault how the power bank or macOS implements power negotiation, or is this scenario simply unaddressed in USB-C?
USB-C does support this. It's known as a DRP (Dual Role Port). USB PD can be used to signal switching between downstream and upstream facing ports depending on state of charge of the battery for instance. The problem is that many devices do not support this, and I strongly suspect your power bank is the issue here. iPhones and Apple stuff in general supports DRP renegotiation quite well. They tend to be USB-C compliant as much as possible, which can lead to issues with interfacing with 'USB-C' devices that are not actually properly compliant.
I'd have thought that iPhones would have sane defaults with USB-C, but it's a real pain when using USB-C to provide tethered internet to a laptop. No, I don't want the phone to charge the laptop, they both have batteries of their own
And there's seemingly no way to get the phone to not try to charge things regardless of what the other side thinks (and when plugging the laptop in, it starts to charge the phone).
The alternative would be using WiFi (in a very RF polluted space) or Bluetooth (horribly slow), versus USB-C where 5g via my phone in Bangkok can get 250mbit easily. Whereas my Android phone has options for 'data only' etc. without charging which seems like it's more of a UX 'Apple' thing than anything else.
PD can certainly do it, but most laptops don’t choose to support high power sourcing, only providing 5V at max 900 mA for devices or taking high power as a sink (charging the laptop).
I have the same issue, but the other way around. I cannot charge my laptop (framework 13, amd) from my power bank. Which sometimes would be super useful.
I don't know nor understand why it doesn't work and if it's a bug in the power bank or the laptop
I have a Framework 13 and I've found that it's fairly finicky about what power sources it will accept. Anything 60W and higher seems to mostly work, but lower wattage chargers are much more dicey.
The one trick I've heard works (but haven't tried) is to "kick start" it by connecting two chargers, one with higher wattage and one with lower, then giving it a minute to begin charging, then disconnecting the higher-powered one. Apparently that's enough to get it past the initial issue and then it will continue charging (more slowly) from the lower wattage charger.
There was a firmware update a while back that was supposed to improve things, but it didn't change the behavior with my 27W charger.
As another data point, the firmware update fixed everything for me and I have no problems charging my Framework 13 from my 18w Pixel charger or 20w iPad charger.
By converting to USB A you cut out USB-PD completely from the equation. At that point the macbook simply provides 5V as it would to any legacy downstream device.
Funny enough, if I plug the USB-C/A dongle on the end of the power bank and the cable into the MacBook, it also won't charge.
I also have a Philips One toothbrush with a USB-C charging input. Similarly, I can't charge it with a USB-C cable directly from my MacBook but have to use A in between (I unsuccessfully tried using either a thinner "lower speed" or a thicker "higher speed" USB-C cable). I'm assuming the toothbrush doesn't support PD, so then why can't it fall back to traditional charging with a C-to-C cable?