Later in the conversation someone links to a Twitter exchange which I found quite interesting:
> (@m_ou_se) I just tried to charge my phone by connecting it to my laptop (with USB-C), but instead of my phone, my laptop started getting charged, quickly draining my phone's battery. Uh, what.
> (@Gankra_) in case you aren't familiar: there was a semantic function of asymmetric usb cables that symmetric usb-C has broken. to "fix" this, each device picks a number for how subby it is, and the less subby one is the dom and charges the sub. these numbers can be surprising.
> (@m_ou_se) After some experimenting, I concluded that Dell laptops are the most powerful USB-C PD doms followed by ThinkPads, while phones and MacBooks are (equally) subby. Connecting phones and MacBooks with each other results in a switch fight.
> But wasn't there supposed to be a way to change the roles afterwards, according to user input?
At least on Android, there is; it's in the same place where you choose which file sharing protocol should be used (it's in the Android notifications area, it says something like "Charging the device through USB; click here for more options").
In practice this hasn't worked for me. I got a new phone and was trying to charge it on the way home (since it was activated automatically by the store despite me not asking for that). It refused to charge in the direction I wanted. It'd reset this option instantly every time
I thought whichever one is plugged in second is the one that receives the charge, but it may be vice versa. Either way, it's the order of plugging that matters.
Does a device even know that it's connected to a ded cable? I'd imagine that it's only after you plug in the second device that they both suddenly see they're being connected to something.
I believe that some cables (especially conversion cables) can have some sort of processor. I have no idea if that's the case with USB-C cables, though.
If there are two ground pins in the connector and the cable shorts those two ground pins, the connector could use the presence of continuity between those two ground pins to know a cable is plugged in but not connected to another device. Something like that.
Is there like a C function, dll or device manager property I can check to find out how subby or dom my device is or is this only possible via comparison?
My M1 Max MacBook Pro treats my Galaxy Tab A8 like an external battery which makes development quite annoying. It's strange that this hasn't been figured out in 10 years.
On Android you can configure that (usually there's a popup after plugging in, if not it should be in the power settings) on multiple levels - if it should charge, if OTG charging (the phone/tablet providing power) is enabled, etc.
If you've set this and it doesn't work properly still, try swapping out the cable. A bad quality USBC cable would always make my phone (occasionally) charge my MacBook but not the other way around, for some unknown reason. Drove me crazy until I changed the cable.
Didn't have a laptop with USB-C ports until 2021. I've got a couple now.
One does PD, one does not. One does video out, one does not. One charges fast, and you guessed it, one does not.
Is it supposed to be easy because the cables fit? Honestly, it's only made it harder and I know what I'm doing. "It fits but doesn't do what I was told it would" is probably more confusing to the average Joe.
If you plug in a semi recent Samsung phone to a USB-c monitor, not only will it charge, but you will also get some kind of desktop experience on the monitor.
As you're touching on, it doesn't make sense to make a blanket statement for all phones. Also, iPhone is not USB-C, so I guess it doesn't participate in this negotiation.
What about Lightning to USB-C cables? I assume the device is talking the USB protocol at that point? Or does that connection only allow charging in one direction?
I've charged my iPhone off my MBP using a lightning->usb-c cable and I didn't notice anything weird. I've also been able to charge my iPhone off my iPad using the same cable so maybe it is one way.
That particular cable only works in one direction. Lightning itself can power external devices, but the whole mechanism is completely different than how USB PD over USB-C works (it is designed for low power peripherals and thus can output unregulated 3-ish V in order to save on DC/DC conversion losses, similar capability of devices powered entirely from V_CONN is quite recent and hackish addition to USB-C).
That was disappointing
I was expecting a write up and pictures.
Should I know who this person is?
The headline should be modified to lower expectations.
"Guy polls Twitter about the result of connecting usb c laptops with usb c cable."
"Twitter poll on the outcome of connecting two usb c laptops with a usb c cable"
I am no good at headlines obviously.
Further it depends on the USB C cable being used, and the properties / capabilities of the ports being used.
Given all the different things a USB C port can do these days and
the fun smallish fire that happens if you use a cheap usb c cable and
abuse it to do something it was not intended for I think there could
be multiple distinct outcomes.
You'd think the USB-PD spec would have devices exchange their battery capacity, charge level, and AC power state.
There is no scenario where anyone wants a 80-100Ah device like a laptop to charge from a 3-4Ah device like a phone if both are on battery. Only if the device with a small battery is on AC power should it offer anything to the larger device. So the spec should prohibit this.
Secondly you'd think for devices of comparable battery capacity they'd prioritize having the one with AC power feed the one without it. If neither have AC power then have the one with a higher charge level feed the one with a lower charge level only when the one with the lower level reaches 20% and only as much as necessary to maintain 20%. Once the system providing power hits some threshold (40%?) stop feeding power altogether. This would do what most people want when you connect two laptops or two phones: share enough power to keep the other device running but don't completely drain them.
If a "battery bank" flag is set then it should always be a supplier unless the other end is a power supply.
You can have minor quibbles about the exact numbers here but this strategy is simple and does the right thing the vast majority of the time.
USB HID defines a good number of power/battery telemetry/control items. It's bothered me a lot that no battery pack or chargers expose themselves as such in actual USB.
This whole series of resistors in usb legacy and aux channel chat in usb-pd makes me more than a bit sad. I would have liked to have used longstanding usb hid specs to implememt usb-pd, rather than having assorted side-band negotiations.
It still leaves the question of how two laptops would work. The naive "wait to see if there's a device and if not become the device" strategy more or less mirrors what usb-pd already does, with all the weird uncontrollable quirks. Im not sure how usb4 figures out there is a host-to-host link & negotiates networking, that's another wrinkle that might give us a good extension point to build from to enable bidirectional control. Maybe we run usb-ip over the network link - expose our usb hid battery/charger devices over that! ;p
>You'd think the USB-PD spec would have devices exchange their battery capacity, charge level, and AC power state.
Screw that. They just need a signal for one device to tell the other that it wants to charge or be charged. The rest can be left up to the UI. It's better if it isn't smart.
I'm mystified that we have this many USB C cable types, chargers and data transfer speeds and there isn't some protocol for explaining what is available when a cable is plugged in or dictating behavior based upon that.
Total nonsense of technology. I can assemble a whole PC without knowing anything about its components just by virtue of there being only one way to connect components to each other. Yet, one can’t even consistently charge a phone these days by just plugging it to a laptop.
A USB to Lightning cable has worked consistently for me for charging my iPhone (and iPad, Apple keyboard and trackpad, etc.) for the past decade or so.
I ran into a similar issue with thunderbolt and two laptops. Laptop A was being charged by a usb-c dock, I plugged laptop B into laptop A via thunderbolt (for thunderbolt bridge networking). And laptop very slowly drained power in the battery but was running off of the power from Laptop A.
Then I plugged laptop B into it’s own USB-C brick (on the same surge protector), and nothing happened other than it took me a quick second to think if it was okay to do.
I plugged my TitanRidge ThunderBolt PCIe add in card to my Framework Laptop and my 2019 MBP. It didn't charge either. I did plug my power supply in to the TitanRidge.
Very Disappointed. I was under the impression when you plug two thunderbolt devices into each other you got charging and a network connection.
Plugging Dell Vostro 15 5510 into Thinkpad L580 starts charging on Thinkpad and shows a bunch of
`[104408.050983] usb usb2-port1: Cannot enable. Maybe the USB cable is bad?`
messages in dmesg on both machines.
I will do this now with my new macbook pro and an old thinkpad. I will update you with what happened.
Lenovo at 50% charges Macbook at 100% if and only if the right macbook port is used. If another macbook port is used, nothing happens. When using this one macbook port (the one right next to the charging port) lenovo also tried to set up a new "macbook pro device", I didn't let it finish. The Lenovo has just one USB-C port.
I now wonder what two macbook pros or two lenovos would do to each other.
I have a work (intel) and personal MacBook Pro (m1) and sometimes I plug the 2 together using a thunderbolt 3 cable (only one connected to a charging cable). Both charge and internet sharing/networking also works.
Does it matter which one is connected to the charger? If not, that would mean they adjust that "power level" value they send over the other port which is used to determine who charges who. While it would perfectly make sense to implement it that way, I'd also be surprised that manufacturers actually do.
I don't know, I didn't think about or try to see what happens when both are on battery power. I don't see how they could negotiate with each other based on battery level from my knowledge of how usb PD works.
I do know that macbooks only accept one (the highest rated) power input, so when one is plugged in, it will also charge from the plugged in macbook to the other one.
When trying to google for the answer, I noticed a lot of misinformation about this topic, and it doesn't seem well-known that thunderbolt can be used for networking data transfer instead of "target disk mode", which is not even support on Mx macs. Anyway, finally I found a convincing answer: It depends on the order of plugging in the cable and the first mac will plug in the second![1] This is great, the user gets to decide, and I am glad you asked this question!
That depends on what you mean by "faster". Firewire has this weird half-duplex "logical bus on physical star" topology which combined with the IP traffic having pretty low QoS priority (best effort bulk data) means that the latency is horrible compared to switched ethernet.
> (@m_ou_se) I just tried to charge my phone by connecting it to my laptop (with USB-C), but instead of my phone, my laptop started getting charged, quickly draining my phone's battery. Uh, what.
> (@Gankra_) in case you aren't familiar: there was a semantic function of asymmetric usb cables that symmetric usb-C has broken. to "fix" this, each device picks a number for how subby it is, and the less subby one is the dom and charges the sub. these numbers can be surprising.
> (@m_ou_se) After some experimenting, I concluded that Dell laptops are the most powerful USB-C PD doms followed by ThinkPads, while phones and MacBooks are (equally) subby. Connecting phones and MacBooks with each other results in a switch fight.
(https://twitter.com/m_ou_se/status/1502664680602492933)