Total Nightmare: USB-C and Thunderbolt 3(blog.fosketts.net)
blog.fosketts.net
Total Nightmare: USB-C and Thunderbolt 3
http://blog.fosketts.net/2016/10/29/total-nightmare-usb-c-thunderbolt-3/
446 comments
The spec [1] is a long read, but interesting. Misc. stuff that's not well known:
- The 24 pin connector does not have symmetrical connections. The interface IC senses which way it is plugged in.
- It's still a master/slave system, but either side can be the USB master or the power master. Those need not be the same.
- Who powers whom is an interesting issue. It's up to the OS to decide. There's special support for the dead-battery case - what happens when you plug something with a dead battery into something else? Can you charge your phone from your laptop? Laptop from phone? Tablet from laptop? Phone from phone? It's complicated.
- There's something called the "billboard device", which is the interface IC's mechanism for sending error messages when both ends are not in agreement about modes. The devices at each end are supposed to display this information. Hopefully they do. At least the designers thought about this.
- Hubs are more restrictive. They don't pass through much more than USB mode and power. They don't pass any of the more exotic modes, like HDMI, since those are not multipoint protocols. It is supposed to be possible to pass power upstream through a hub, though.
- Anything with a female USB-C connector has to talk USB-C. It is prohibited to have cables with a female USB-C on one end and some other USB connector on the the other. Male USB-C to other USB is permitted, and will provide backwards compatibility.
- There are extensions defined for "proprietary charging methods" to allow higher current levels. (I wonder who wanted that?)
- There's a mode called "Debug Accessory Mode". This is totally different than normal operation and requires a special cable as a security measure. (In a regular cable, pins A5 and B5 are connected together and there's only one wire in the cable for them. Debug Test devices use a cable where pins A5 and B5 have their own wires and there's a voltage difference between them.) Debug Accessory Mode, once entered, is vendor-specific. It may include JTAG low-level hardware access. Look for exploits based on this. If you find an public charger with an attached USB-C cable, worry. Always use your own cable.
[1] http://www.usb.org/developers/docs/
- The 24 pin connector does not have symmetrical connections. The interface IC senses which way it is plugged in.
- It's still a master/slave system, but either side can be the USB master or the power master. Those need not be the same.
- Who powers whom is an interesting issue. It's up to the OS to decide. There's special support for the dead-battery case - what happens when you plug something with a dead battery into something else? Can you charge your phone from your laptop? Laptop from phone? Tablet from laptop? Phone from phone? It's complicated.
- There's something called the "billboard device", which is the interface IC's mechanism for sending error messages when both ends are not in agreement about modes. The devices at each end are supposed to display this information. Hopefully they do. At least the designers thought about this.
- Hubs are more restrictive. They don't pass through much more than USB mode and power. They don't pass any of the more exotic modes, like HDMI, since those are not multipoint protocols. It is supposed to be possible to pass power upstream through a hub, though.
- Anything with a female USB-C connector has to talk USB-C. It is prohibited to have cables with a female USB-C on one end and some other USB connector on the the other. Male USB-C to other USB is permitted, and will provide backwards compatibility.
- There are extensions defined for "proprietary charging methods" to allow higher current levels. (I wonder who wanted that?)
- There's a mode called "Debug Accessory Mode". This is totally different than normal operation and requires a special cable as a security measure. (In a regular cable, pins A5 and B5 are connected together and there's only one wire in the cable for them. Debug Test devices use a cable where pins A5 and B5 have their own wires and there's a voltage difference between them.) Debug Accessory Mode, once entered, is vendor-specific. It may include JTAG low-level hardware access. Look for exploits based on this. If you find an public charger with an attached USB-C cable, worry. Always use your own cable.
[1] http://www.usb.org/developers/docs/
Personally, I am rather sad to see the Magsafe connector go, and having to sacrifice IO for charging while mobile seems like quite the headscratcher.
It's somewhat funny that not only will you have to carry dongles for everything for a few years time, but also make sure you carry the right USB-C cables, as your friend's might not work. Yay we have superlight laptops, but need to carry a backpack full of spaghettied cables.
It's somewhat funny that not only will you have to carry dongles for everything for a few years time, but also make sure you carry the right USB-C cables, as your friend's might not work. Yay we have superlight laptops, but need to carry a backpack full of spaghettied cables.
I liked when we just had USB2 and all you had to do was try to plug it in once, flip it over, try to plug it in again, flip it over once more, now it plugs in, and now you're reasonably sure it'll work.
And now the near-future seems to be full of dongles, shame.
And now the near-future seems to be full of dongles, shame.
It is not easy to see, but we ARE on a converging path, instead of the other way around. Current high-speed off-board point-to-point data links (SATA, USB3, DisplayPort, PCIe, etc.) have converged onto some sort of 8b/10b differential signaling. We used to have totally separate OSI stacks, but now we are seeing potential to leverage the same physical layer (i.e. USB Type-C). Sure, we would have to carry different protocols, but I am optimistic --- eventually ASIC makers roll out adaptive chips (just like the cross-wire RJ45 @jws mentioned was solved by Auto MDI-X) that are smart enough to negotiate the correct protocol (MAC layer upwards) between the two sides.
And then there's this: http://www.macrumors.com/2016/10/28/macbook-pro-tb3-reduced-...
"MacBook Pro (13-inch, Late 2016, Four Thunderbolt 3 Ports) The two right-hand ports deliver Thunderbolt 3 functionality, but have reduced PCI Express bandwidth."
"MacBook Pro (13-inch, Late 2016, Four Thunderbolt 3 Ports) The two right-hand ports deliver Thunderbolt 3 functionality, but have reduced PCI Express bandwidth."
And some vendors are apparently not having all ports do all things, so two USB-C ports, one can charge at high power and one can't, but from the outside they look identical, plugging into either can charge, but the low power one will take forever.
While I'm a big fan of backward compatibility, I feel that at some point it is better to start fresh rather than try to wedge another solution into the same mechanical configuration. And while I get that people didn't appreciate motherboards that went ISA->PCI->AGP->PCI_e, it saved people from the frustration of plugging cards in that wouldn't work.
While I'm a big fan of backward compatibility, I feel that at some point it is better to start fresh rather than try to wedge another solution into the same mechanical configuration. And while I get that people didn't appreciate motherboards that went ISA->PCI->AGP->PCI_e, it saved people from the frustration of plugging cards in that wouldn't work.
I once had a large plastic tub, full of SCSI cables, there were around 10 kinds of connectors, in both male and female configurations and about 10 different kinds of cables. Disk drives would have one kind of connector and often computers would have a different style connector necessitating lots of A to B connection issues. And the cables were expensive, often over $100. It was an absolute mess.
It seems that the USB-C connector, finally, represents a small, robust, easy to use connector that is capable of high data bandwidths.
It wouldn't make anything any better to have different connectors and different cables for charging, mice, keyboards, disk drives, monitors, etc. I just hope that I'll be able to get by with a handful of different lengths of the highest end cables (e.g. the thunderbolt 3) and use them for everything.
It seems that the USB-C connector, finally, represents a small, robust, easy to use connector that is capable of high data bandwidths.
It wouldn't make anything any better to have different connectors and different cables for charging, mice, keyboards, disk drives, monitors, etc. I just hope that I'll be able to get by with a handful of different lengths of the highest end cables (e.g. the thunderbolt 3) and use them for everything.
There's actually a semi-legit reason to make a usb2-only c-c cable: because it can get away with not having the high-(super)speed differential pairs, it can be thinner, lighter and cheaper than a full-function cable. Compare to charge-only microusb cables - they are indistinguishable from real cables, but lack critical functionality. If they were easily distinguishable, this would not be nearly as much of a problem.
One really major (to me at least) concern with moving from USB to thunderbolt is that thunderbolt is a PCIe connection, with the same security issues as firewire (a device can basically access all your RAM, extract keys and passwords, plant exploits etc). By bundling that into the same form factor as the (by comparison) far safer USB and hdmi/displayport we're putting users at risk.
One really major (to me at least) concern with moving from USB to thunderbolt is that thunderbolt is a PCIe connection, with the same security issues as firewire (a device can basically access all your RAM, extract keys and passwords, plant exploits etc). By bundling that into the same form factor as the (by comparison) far safer USB and hdmi/displayport we're putting users at risk.
Back when we had different connectors for different things, we knew one thing: if it fit, it worked. But the proliferation of incompatible connectors, driven by the advancement of technology, meant that nothing fit! So we created one connector to rule them all: USB-C. Now everything fits, but nothing works.
Food for thought: will USB-C be the "last" standard connector? Speaking in terms of the physical connector, not the data protocol. I'm sure it will eventually prove not to be, but it's got a lot going for it and I suspect it will last for a very long time. If USB-A was the dominant connector for nearly 20 years I think C could see a run of 50 years or more. RJ45 connectors are around 40 years old and aren't going anywhere soon. I wonder what the qualities would be of a connector to replace USB-C.
Why doesn't the USB consortium standardize (and, ideally, enforce) labeling of ports and cables by capabilities? Kind of like washing instructions labels on clothes, only printed on the cable.
The ports on a laptop wouldn't have to be physically labeled if the OS could display a list of their capabilities in a user-friendly manner. Or, perhaps, they should have the most important label (e.g. thunderbolt or not). Something the committee would decide.
The ports on a laptop wouldn't have to be physically labeled if the OS could display a list of their capabilities in a user-friendly manner. Or, perhaps, they should have the most important label (e.g. thunderbolt or not). Something the committee would decide.
USB3 ports and cables are (when spec compliant) easily distinguishable from USB2 due to them being blue. Why was the same not done for USB-C (black for USB3, red for Thunderbolt)?
Very interesting article.
Can here anybody maybe even explain a little bit more about the video (Displayport) alternate mode? As far as I understand now both USB3 and Thunderbolt support it, but they support it with a different Displayport standard. How will that work if I plug in a future monitor with USB-C? Will there first be some negotiation in which both devices clarify whether to use USB oder Thunderbolt. And then another one in which the alternate mode is set? Or is displayport directly available on some dedicated pins of the cable and if yes, would it be the same for both cases? Or is displayport somehow modulated/multiplexed on the remaining data stream, and in a different fashion for USB3 than for Thunderbolt?
Can here anybody maybe even explain a little bit more about the video (Displayport) alternate mode? As far as I understand now both USB3 and Thunderbolt support it, but they support it with a different Displayport standard. How will that work if I plug in a future monitor with USB-C? Will there first be some negotiation in which both devices clarify whether to use USB oder Thunderbolt. And then another one in which the alternate mode is set? Or is displayport directly available on some dedicated pins of the cable and if yes, would it be the same for both cases? Or is displayport somehow modulated/multiplexed on the remaining data stream, and in a different fashion for USB3 than for Thunderbolt?
Color-coding would have helped solve the cable mess, especially for users who are not tech-savvy. Imagine if USB-C were green, Thunderbolt were blue, Lightning was yellow, and DisplayPort red. If you have a rat's nest of cables behind your desk, it becomes easier to tell what's what, which makes it more manageable and less frustrating.
Also easier to guide non-tech-savvy family and friends on the phone: "See the red cable? Is one end plugged into the monitor?" "Yes" "Good, now plug the other end into the laptop."
is a better conversation than:
"There are a dozen cables here, all alike!"
Also easier to guide non-tech-savvy family and friends on the phone: "See the red cable? Is one end plugged into the monitor?" "Yes" "Good, now plug the other end into the laptop."
is a better conversation than:
"There are a dozen cables here, all alike!"
I think I can answer at least one of the questions, on why make 2.0 only C cables.
When I got my Nexus 5X, I bought some assorted A to C cables to go with it. I noticed that the 3.0-capable cables are awfully thick and heavy, and not so convenient to carry around with a mobile device. I bought some 2.0-only A to C cables that are much thinner, lighter, and more flexible, and use those instead. Considering that I will basically never need the extra 3.0 speed for connection to my phone, I'll take the cheaper, lighter, more flexible cable every time.
When I got my Nexus 5X, I bought some assorted A to C cables to go with it. I noticed that the 3.0-capable cables are awfully thick and heavy, and not so convenient to carry around with a mobile device. I bought some 2.0-only A to C cables that are much thinner, lighter, and more flexible, and use those instead. Considering that I will basically never need the extra 3.0 speed for connection to my phone, I'll take the cheaper, lighter, more flexible cable every time.
Is the long term dongle free? C to C everywhere? My TV could have USB-C instead of HDMI ports. I could use the same cable I use for charging my phone to hook my laptop up to the TV.
This solves the cable problem (every cable should support the full spec) but it doesn't quite solve the support question. Just because I have a cable that works between my phone and TV doesn't mean it will actually do anything.
This solves the cable problem (every cable should support the full spec) but it doesn't quite solve the support question. Just because I have a cable that works between my phone and TV doesn't mean it will actually do anything.
>The core issue with USB-C is confusion: Not every USB-C cable, port, device, and power supply will be compatible
Not every USB-A port, device, cable, and power supply are compatible. I'm not sure I understand what his point is. That people who refuse to do research are going to occasionally run into incompatibility problems? Like they have since the dawn of the computing age? And?
Not every USB-A port, device, cable, and power supply are compatible. I'm not sure I understand what his point is. That people who refuse to do research are going to occasionally run into incompatibility problems? Like they have since the dawn of the computing age? And?
A meta comment. There are many other threads lamenting that this is not a "Pro" machine, but all this cable discussion is not foreign to audio, video and IT professionals and prosumers. If you want to get the max of your pro computer's IO you will need to learn your cable specs and protocols.
It does look that the future will require some rebuilding of our cabling. I have a thunderbolt hub that connects to my screen, my external thunderbolt drive, and a plethora of USB devices. I only use a single Thunderbolt port on my laptop. I like this Future. With these bandwidths I can see us connecting more interesting devices to our laptops
It does look that the future will require some rebuilding of our cabling. I have a thunderbolt hub that connects to my screen, my external thunderbolt drive, and a plethora of USB devices. I only use a single Thunderbolt port on my laptop. I like this Future. With these bandwidths I can see us connecting more interesting devices to our laptops
This strikes me as being the same situation as hdmi cabling. Anyone who has bought a 1080p tv then a 3D tv then a 4K tv then an hdr tv knows that not all hdmi cables are made equally. This is not great, but it's very far from a nightmare.
Is it possible to make one Type-C cable that supports every possible protocol that can go over Type-C and works as long as the devices are compatible? I.e., if the two devices can talk over Type-C, then the cable will work?
One interesting thing is that when the port is the same for everything, the port itself (the shape, size, look and whether it matches the other thing you're looking at) ceases to be a useful interface for connecting things together physically. Instead we need other indicators, labels, and on-screen error messages to tell us those things, which is a much more indirect and less clear way of understanding connectivity.
Did anyone ever stop to ask if we really wanted everything to go through one port, even if everything wasn't really inter-compatible? I think we had it pretty right before, with a mix of ports, some of which were exclusive to a purpose (like HDMI, power, audio), some of which were generic (like USB, FireWire, Thunderbolt). Now we've removed clarity for what exactly? Aesthetics? "Simplicity?" The technological advancement of a single standard? There could be good reasons, but we should be aware of the usability tradeoff.
Did anyone ever stop to ask if we really wanted everything to go through one port, even if everything wasn't really inter-compatible? I think we had it pretty right before, with a mix of ports, some of which were exclusive to a purpose (like HDMI, power, audio), some of which were generic (like USB, FireWire, Thunderbolt). Now we've removed clarity for what exactly? Aesthetics? "Simplicity?" The technological advancement of a single standard? There could be good reasons, but we should be aware of the usability tradeoff.
The USB 3.1 gen1 and gen2 thing still really boggles my mind. It's almost as if the USB-IF was trying to confuse people. Who retroactively renames a standard?
I'm a bit confused. The ports on the computers themselves can have different protocols- that makes sense.
But the cables themselves can also support different protocols? Maybe I'm just naive, but can someone explain how a "dumb" cable supports different specs?
USB standard bodies can borrow a page from the Ethernet port and signal standards. 10-mbps to Gbps evolution does not have to be painful for users.
Generally the cable hasn't mattered in consumer devices - as long as the device and cable are good and you plug it in to the right port, it'll work. A cable's a cable, after all, right? Unfortunately, that's not true, hasn't been true for a bit, and Apple's only partially to blame. DVI-A, anyone?
Some of Apple's dongles have a microcontroller inside in order to do the signal conversion, so it's a wonder they're only $30. That lighting-to-3.5mm jack that comes with the iPhone 7? Tiiiiny DAC - http://www.macrumors.com/2016/09/20/lightning-earpods-teardo... (The other option being dumb signaling with the iPhone itself doing the DAC and passing the signal, as USB-C allows with alternate mode).
Past Apple's dongle madness though, the bleeding edge of technology has always had a few edges. Despite the connector at the end fitting, HDMI 1.0 cables won't work where HDMI High Speed cables are necessary (though monster cables are still a rip off). High-end 4k TVs need the proper cables or else it won't work, just like a random cable with RJ-45s on the end won't necessarily support gigabit connection speed (or even support ethernet, for that matter).
If Monoprice listing all the possible variations of USB-C cables seems frustrating, and you're allergic to details, only buy the expensive Apple cables and certified Apple accessories and you'll be fine, same as it's always been.
If you need to venture outside their walled garden, yeah, there are some details to know about that the article doesn't go into, but I'm quite excited for what's become known as the USB-C connector to become the global consumer connector standard. Once that's true, the fewer weird dongles we'll all need, and you'll always be able to charge your phone-that-has-usb-c (we'll see if the iPhone 8 picks up USB-C).
What the author glosses over in the article is actually an interesting part of USB Type-C spec, which is Alternate Mode. This allows a device and host to negotiate to speak something other than USB on the pins, be it video, networking, or in Apple's case Thunderbolt 3.
Apple's definitely gone and made things confusing with Thunderbolt 3 - for everyone else. Buying only Apple stuff is going to "just work" as long as you keep buying their newest shiniest gadget, and, well, they're in the business of selling gadgets.
Some of Apple's dongles have a microcontroller inside in order to do the signal conversion, so it's a wonder they're only $30. That lighting-to-3.5mm jack that comes with the iPhone 7? Tiiiiny DAC - http://www.macrumors.com/2016/09/20/lightning-earpods-teardo... (The other option being dumb signaling with the iPhone itself doing the DAC and passing the signal, as USB-C allows with alternate mode).
Past Apple's dongle madness though, the bleeding edge of technology has always had a few edges. Despite the connector at the end fitting, HDMI 1.0 cables won't work where HDMI High Speed cables are necessary (though monster cables are still a rip off). High-end 4k TVs need the proper cables or else it won't work, just like a random cable with RJ-45s on the end won't necessarily support gigabit connection speed (or even support ethernet, for that matter).
If Monoprice listing all the possible variations of USB-C cables seems frustrating, and you're allergic to details, only buy the expensive Apple cables and certified Apple accessories and you'll be fine, same as it's always been.
If you need to venture outside their walled garden, yeah, there are some details to know about that the article doesn't go into, but I'm quite excited for what's become known as the USB-C connector to become the global consumer connector standard. Once that's true, the fewer weird dongles we'll all need, and you'll always be able to charge your phone-that-has-usb-c (we'll see if the iPhone 8 picks up USB-C).
What the author glosses over in the article is actually an interesting part of USB Type-C spec, which is Alternate Mode. This allows a device and host to negotiate to speak something other than USB on the pins, be it video, networking, or in Apple's case Thunderbolt 3.
Apple's definitely gone and made things confusing with Thunderbolt 3 - for everyone else. Buying only Apple stuff is going to "just work" as long as you keep buying their newest shiniest gadget, and, well, they're in the business of selling gadgets.
The proliferation of various ports and interfaces has been disturbing, even in the PC arena where Thunderbolt is rather hypothetical.
Displays alone drive me insane these days. Twenty years ago, you had a VGA connector, and that was it. Then came DVI, which allegedly worked better with TFT panels. Then came HDMI, but there is also DisplayPort which appears to be similar, yet different. I have not seen a display or beamer that will accept DisplayPort input. Does such a thing even exist?
And laptops have, of course, the "mini" version of these, so there is mini-DisplayPort (which looks suspiciously like ThunderBolt) and there is mini-HDMI (which looks suspiciously like USB-C).
I am still telling myself this is a transition, and in five years everything will be USB-C. Once we are there, that sounds like a nice future, but I am not certain we'll get there in time. (Plus, a tea leaf got stuck my Galaxy Tab's USB-C port while riding the train - it took me an hour to scrape and shake everything out before that thing could be charged again. Something that never happened to me with good old USB ports for some reason, even though they were much larger.)
Displays alone drive me insane these days. Twenty years ago, you had a VGA connector, and that was it. Then came DVI, which allegedly worked better with TFT panels. Then came HDMI, but there is also DisplayPort which appears to be similar, yet different. I have not seen a display or beamer that will accept DisplayPort input. Does such a thing even exist?
And laptops have, of course, the "mini" version of these, so there is mini-DisplayPort (which looks suspiciously like ThunderBolt) and there is mini-HDMI (which looks suspiciously like USB-C).
I am still telling myself this is a transition, and in five years everything will be USB-C. Once we are there, that sounds like a nice future, but I am not certain we'll get there in time. (Plus, a tea leaf got stuck my Galaxy Tab's USB-C port while riding the train - it took me an hour to scrape and shake everything out before that thing could be charged again. Something that never happened to me with good old USB ports for some reason, even though they were much larger.)
Thunderbolt 3 is a great thing (really), though some time is needed for the transition period.
That's just the start of it. So the new MBP has what, four USB-C ports.
Can I put power into all of them? What if I try to do 4xHDMI for all of them? Surely I can't connect four external graphics cards over Thunderbolt 3? Can I chain Thunderbolt devices?
The author also missed the "audio accessory mode". That's right, in some unique star constellation, some of these USB-C pins can be repurposed for pumping out analog audio! Supported? Who knows.
I think before long every USB-C accessory will have to come with some sort of EEPROM that the host reads first to figure out 1) what is this you are plugging in and 2) is this going to work. So that there is at least some user feedback instead of "plain doesn't work" or "oopsie now the port is dead".
Can I put power into all of them? What if I try to do 4xHDMI for all of them? Surely I can't connect four external graphics cards over Thunderbolt 3? Can I chain Thunderbolt devices?
The author also missed the "audio accessory mode". That's right, in some unique star constellation, some of these USB-C pins can be repurposed for pumping out analog audio! Supported? Who knows.
I think before long every USB-C accessory will have to come with some sort of EEPROM that the host reads first to figure out 1) what is this you are plugging in and 2) is this going to work. So that there is at least some user feedback instead of "plain doesn't work" or "oopsie now the port is dead".
It is a pity that they didn't introduce a common color coding for USB-C connector cables.
USB has already had this problem for 16 years. When they went from USB 1.0 at 11mbps to USB 2.0 at 480mpbs they had to change the shielding. The only visible change on the connectors was a tiny + sign in the three branched USB tree molded on the end of the cable, which was apparently so useless to users that no one bothered to put them on. At least, my quick rummage of cables didn't find any. There is alleged to be a color code. The plastic inside the connector is white for 1.x, black or white for 2.0, blue for 3.0, and yellow or red for sleep/charge. My quick rummage of cables suggests this is not necessarily known to cable manufacturers. I think the ports on devices are more rigorous about this, at least, I think all my USB 3 ports are blue.