18 ms·
USB3: Why it's a bit harder than USB2
- baybal2 6y agoNot just "bit" harder, but much, much. I constantly see "certified" USB3 gear failing.
- usr1106 6y agoWe are using Intel Realsense cameras in our product. Sometimes the USB connection fails completely, sometimes it is USB2 only and the camera cannot work. Sometimes a reboot helps, but sometimes power cycling is required. This is without plugging the cable, plugging adds its own unreliability. From reading the product support forums we are not alone. As a SW engineer my interpretation has always been that USB3 speeds are just too high to work really reliably with consumer grade hardware. This article gives technical details that tell me I have been correct.
- raxxorrax 6y agoThis has also been a problem with USB2 cameras. The signal rates reach physical limits. A 5m cable is probably too long for high speed applications, most camera vendors say that they support only 3m. But if you have a camera in any rugged device, even a bit of EM (electro magnetism) can ruin your connection.
- cpach 6y agoWhat does EM mean in this context?
- tW4r 6y agoBased on the context I would guess it stands for electromagnetic interference
- oso2k 6y agoProbably short for Electromagnetism or short for EMF which is short for Electro Magnetic Field.
- segfaultbuserr 6y agoElectromagnetism. On the other hand, obviously any electronic circuit, including USB, is electromagnetic. A more accurate choice of word would be EMI (i.e. electromagnetic interference), or EMC problems (i.e. electromagnetic compatibility problems).
- MrBuddyCasino 6y agoApple/Intel Thunderbolt does not have this problem in my experience. USB has always been the cheapest alternative (remember Firewire?). Add to that the sheer incompetence of the USB committee (see the USB PD spec, or USB Audio) and its a miracle anything works at all.
- izacus 6y agoYeah, we remember FireWire. And all the burned out FW ports due to poor power regulation on cameras and devices. I don't think I've ever seen a connection protocol more likely to damage a device on either end of the connection. USB is a massive imporovement here.
- mixmastamyk 6y ago> FireWire --> burned out ports Sounds like it delivered what it said on the tin!
- marcan_42 6y agoFireWire is a much better design than USB in many ways. I still use a FireWire audio interface purchased not that long ago (though now it has to go through a Thunderbolt adapter). The problem with USB 1 and 2 is that it was designed by insane committee. This resulted in stuff like those versions not using true differential signaling (like USB3 does) even though that was common technology at the time. Instead they have end of packets delimited by single-ended conditions. That, coupled with a single ground wire for power and data makes for a world of ground loop issues. And then they made the frame rate 1kHz, which is right in the peak of human hearing sensitivity. And so, USB's terrible design is single-handedly responsible for a huge amount of, even most, noise and interference issues in audio systems involving it. Especially in low cost consumer hardware, but it has made its way into many professional productions. Any time you hear a constant 1kHz beep of interference, mixed with some fuzzy crackling, nine times out of ten that's a ground loop with USB and audio involved. It's everywhere once you listen closely. Headphone output on your laptop or phone is noisy when you access a USB drive, or has a 1k beep? USB. USB audio widget has background fuzz and a beep? USB. Slight 1k beep in the background of a news cast? Someone had the bright idea of using USB somewhere along the line. It didn't have to be this way. Ethernet, SATA, plenty of other protocols use proper differential signaling and don't have this issue. How to do this properly was well established long before USB existed. And to add insult to injury, while USB 2 specifies a transaction translator, so you can run USB 1 devices on a USB 2 bus, USB 3 does not. And so, while USB 3 devices don't have this problem any more, you can't plug in a USB 2 device into a USB 3 bus or a USB 3 hub. And nobody uses USB 3 for low channel count audio interfaces, so this problem will remain forever. Oh sure, you can plug it into a USB 3 port, which is actually a USB 3 port and a USB 2 port in one. And you can plug it into a hub labeled "USB 3" which actually has a whole USB 2 hub along side it in parallel. The communication from USB 2 devices remains USB 2 all the way to the host. And so, not only do USB 2 devices only get 480Mbps of total bandwidth on a USB "3" hub (minus a ton of overhead, because the protocol is terrible), it doesn't fix this issue! And did I mention USB 2 is impossible to galvanically isolate in any kind of cost-effective way? I could go on and on about how the polled architecture causes performance bottlenecks, about how it's impossible to tunnel without unfixable corner cases, about how its latency requirements preclude lots of innovative ideas, about how the descriptor and device inquiry protocols are practically designed to guarantee that implementations are vulnerable and have exploitable bugs (yes, your USB stack is vulnerable. They all are. This is how the PS3 got hacked. And the Switch. And tons of other devices. USB developers like me know misbehaving USB devices crash hosts all the time). I don't like USB.
- ladberg 6y agoI've had nearly the same experience! I was working on a project for a robotics class and my team could not figure out why our object tracking went from 30fps to ~5fps seemingly randomly. It turns out the USB3 cable wasn't fully plugged in and couldn't make full contact so it was running on USB2 and didn't have the bandwidth to send the video at 30fps. It took a while to debug because I was absolutely convinced the slowdown was a software or GPU issue. After all, wouldn't you expect most digital ports to be binary: either be plugged in or not? It turns out with USB3 there's a third state.
- raxxorrax 6y agoFull HD raw image data nets you about 5.something FPS on ~480 mbit/s USB2, which already hits physical limits. Higher standards basically just increase the number of data lanes, but we still call that serial.
- rangibaby 6y ago> After all, wouldn't you expect most digital ports to be binary: either be plugged in or not? It's always a good idea to have a known-good extra cable or two and laptop that you know has good ports. All the time and frustration you will save is definitely worth the hassle.
- Isthatablackgsd 6y ago> it was running on USB2 and didn't have the bandwidth to send the video at 30fps. Mmm, I am surprised about that because USB 2.0 is fully capable of 1080p60 without issues. I have Logitech C910 and it does 1080p60 flawlessly. I wonder if it is not actually 2.0 but USB 1.1 which made sense since the transfer rate is abysmally low (1.1 does up to 12 Mbps, 2.0 is up to 480 Mbps). But again, computers does have their quirks and can do weird & strange things that seem impossible but it is possible.
- usr1106 6y ago> Mmm, I am surprised about that because USB 2.0 is fully capable of 1080p60 without issues. I have Logitech C910 and it does 1080p60 flawlessly. I wonder if it is not actually 2.0 but USB 1.1 which made sense since the transfer rate is abysmally low (1.1 does up to 12 Mbps, 2.0 is up to 480 Mbps). I am not who you were responding to, but I can confirm that at 480 Mbps our Intel Realsense does not work, 5000 Mbps are mandatory. We use an Infrared stereo mode at 30 fps. I am not a my desk now and don't remember the exact details by heart.
- colechristensen 6y ago> As a SW engineer my interpretation has always been that USB3 speeds are just too high to work really reliably with consumer grade hardware. This article gives technical details that tell me I have been correct. The last section of the article is the most relevant: the hardware, tools, and documentation for USB3 are of mediocre quality. The whole history of moving bits over cables is adding and adapting tricks for getting more and more data through, we’ve always been at the point where poorly implemented solutions would cause problems, and we’re several orders of magnitude away from it being possible for a novice to implement a hardware and software solution from scratch (bit banging a serial interface on a microcontroller GPIO is possible for a reasonable person to do in a week to achieve less than a megabit connection). Super fast data rates are all over and most of them are very reliable, USB isn’t up to the same quality. You can make any speed reliable and fool proof, you just have to do it.
- segfaultbuserr 6y ago+1. It's true that designing an USB 3.0 PHY/controller is a serious challenge, and bad signal integrity in PCB design can cause many problems, but almost nobody implements one's own USB transceiver or controller from scratch. They're all standard off-the-shelf chips. If the PCB design is careful and a good cable is used, Layer 1 should be relatively stable. A large number of problems appear to be bad hardware compliance, documentation, firmware or driver. For example, I have a PC with an early Renesas USB 3.0 controller. Once in a while, the controller could become completely unresponsive. The reason was that the controller has a firmware bug, and you can actually get some reverse-enginnered firmware update tool on GitHub to fix it.
- jk700 6y agoBad hardware compliance is only part of the problem. With higher speeds all the user facing stuff, like cables, connectors, power without noise - all start to matter too. You know how 100 mbit ethernet works well even with crappy connectors and crappy wires, you literally don't need even a twisted pair for it, but pushing gigabit ethernet over that doesn't work reliably anymore or even at all. It's very much a universal problem with higher speeds. And the notion that "you can make any speed reliable and fool proof" is just absurd denying physics.
- echelon 6y ago> We are using Intel Realsense cameras in our product. That's an interesting domain. What are you working on? Any reason for choosing Realsense over Azure Kinect or other sensors?
- kypro 6y agoAs someone who was involved in a RealSense project I might be able to answer... Firstly, RealSense cameras are really affordable. I think the cameras we were using were around $80 a piece. Cost was an important consideration for us because we were building a multi camera device and to do something similar with Azure Kinect would have cost us several thousand dollars. Another thing we like was how great the Intel RealSense SDK is. They have official wrappers for multiple languages along with sample code to get you started. The RealSense ecosystem is quite healthy too – at least for a niche technology. RealSense cameras have a proven track record in various commercial devices and the development forums are fairly active. We found we could find answers to most common questions and problems we had. Another nice thing about RealSense is that they have a great range of cameras so they have something perfectly suited for every application. For example, some of their cameras use stereo vision while others use LIDAR or structured light. They also use the same SDK for every camera which makes swapping out cameras fairly easy. We were using structured light cameras, but we were able to swap them out with Stereo and LIDAR cameras with no problems at all. Azure Kinect looks interesting. I've wanted to play around with one of a while, although given its price and feature set it wouldn't have been the right camera for us. It's probably a good all-rounder for general robotics / vision projects though.
- tinus_hn 6y agoIf it starts working again after a reboot it’s a problem that can be solved in software. It’s just hard so consumers instead have been trained to accept unreliability.
- tonyedgecombe 6y agoConsumers drive this by buying the cheapest device that just about works.
- Pet_Ant 6y agoManufacturers aide this by not making their devices apples-to-apples comparable and using brand specific marketing terms. Worrying about buying something from a better brand that is the same thing but marked up is real.
- swiley 6y agoIMO: It's not the speed that's the problem, lots of consumer hardware has very fast networks/buses like ethernet. It's the huge number of states and the communication required to negotiate them.
- rubicks 6y agoI can always rely on our Intel Realsense cameras -- to magically transform themselves into USB 2.1 devices after a couple hours' use.
- etaioinshrdlu 6y agoA lot of these issues remind me of twisted pair Ethernet. It's interesting that Ethernet is usually coupled with transformers, but USB3 is typically done with capacitors. Can someone more knowledgable comment on the relative difficulties and problem points in 10Gbe vs. USB3?
- RL_Quine 6y agoCapacitors are cheaper and smaller, and you don't have runs of USB long enough to really need proper galvanic isolation.
- baybal2 6y agoYes, pretty much it. Miniature magnetics are a thing now, possibly provide better signal integrity, but they are still are purpose made parts, and they were not around the time of first USB3 drafting.
- kbumsik 6y ago10GBASE-T has a different story to USB3. 10GBASE-T consumes too much power (2-5 Watts!) and generates too much heat for a single port (a transceiver can go up to 90 celsius!) , so it is not suitable for most of areas, including for home NICs (requires spaces for big coolers) and for enterprise switches (ports cannot be densely placed [1]). But I haven't heard of reliability concerns that USB3 has. Well, they are designed to work up to 100 meters so they should be reliable. Maybe it's all because of the transformers you mentioned? Therefore it's very common to use alternatives like optics and simple DAC copper cables for 10Gbe. I also think home networking industry will eventually give up 10GBASE-T. [1] https://wiki.mikrotik.com/wiki/S%2BRJ10_general_guidance#General_Guidance https://wiki.mikrotik.com/wiki/S%2BRJ10_general_guidance#Gen...
- rkagerer 6y agoI've been using Infiniband at home (cheap second hand equipment on eBay from universities and such) since before 10G was affordable, and loving it.
- neltnerb 6y agoKeep needing to explain this one to clients... sure, I think I can get it to work... it'll be a lot trickier. HDMI though, the routing examples for that one are stunning.
- pfundstein 6y agoDoesn't HDMI also have dedicated pins for Ethernet?
- RL_Quine 6y agoNot literally, no, it's carried along with other data.
- dfox 6y agoAnd the way how that is accomplished is depending on your view either brilliant hack or one giant ugly kludge. There is a pair of wires in the cable onto which two 100-base-T ethernet pairs and digital audio is combined using hybrid transformer and phantom.
- kbumsik 6y agoDoes USB4/Thunderbolt will change the story? I heard their signaling is quite different than USB3.
- baybal2 6y agoYes it will, making it even more complicated. Signal integrity minimums for thunderbolt is more strict than USB3, and it is a bigger EMI issue, but at least the new standard mandates mandatory shielding.
- villgax 6y agoWhats harder is getting mobile phones to work as a damn usb webcam without paying money for it.
- fogihujy 6y agoI keep ending up with USB3 equipment connected through a USB2 port because it won't work in USB3 ports. It's not often, but common enough to be annoying. An interesting question is if the USB2/micro-USB connector era was peak USB and that we're going to see more varied and differing implementations in the future.
- rkagerer 6y agoI gave up trying to get my HTC Vive Pro camera to work over USB3.
- yetihehe 6y agoI've connected popular bluepill board to usb3 on my computer, effect - device works, but is damaged in such a way that it draws additional 200mA (even without usb connection) and uses it for heating. Fixing it requires soldering new chip.
- wjdp 6y agoGetting an Oculus CV1 VR headset working via my mobo's USB was fraught with issues (4 things tyring to run at USB3 speeds). Eventually gave up and bought a known good PCI card. Though I think this was more to do with controller bandwidth than the physical layer.
- bleepblorp 6y agoI wish the industry would bite the bullet and come up with 'USB-hypothetical' based around a strictly enforced standard which used active optical cables with additional conductors for power. An awful lot of USB issues would go away by getting rid of the need to push an electrical protocol too close to physical limits, enforcing sane minimum standards so end users have a clear idea of what a given port can provide (none of the current mess where 'USB-C' represents a connector that could support any number of protocols), and making layer 1 a dumb pipe (no special wires needed to support optional feature X) so functionality could be entirely software-defined. USB is just too complicated for its own good, and has too many optional features, to be friendly to end users.
- baybal2 6y agoUSB certification already exists, and consistently fails regardless of how hard, and arduous it is to pass, and the only option seem to make it actually work is to make it even more strict, which itself will be a turnoff to hardware, and more importantly, chipmakers. Thunderbolt chips already cost an arm, and a leg.
- willis936 6y agoUSB is a good example of why testing should be hard and should be wholly dependent on the problem and not at all on the feelings of the manufacturer. You don’t see 100G Ethernet links dropping out because of a crappy cable.
- xorfish 6y agoOptical cables are not robust enough for the use as everyday cable.
- baybal2 6y agoToday's singlemode is quite abuseproof. Saying this, while having one cable in the office which was ridden over by carts, stepped, and stumbled on for years. I can't imagine UTP5/6, or especially 7 surviving this. I'd say a purpose made, abuse proof optical cable is better than high frequency copper cabling.
- ben509 6y ago> To reduce the amount of harmful interference generated, USB3 links use a technique called scrambling, in which data is XOR'd with a fixed pattern before transmission. So I can take that pattern, repeat it a few million times, and then if someone transmits it (as simple as saving it to disk), it turns their USB devices into transmitters.
- jleahy 6y agoCorrect, and these attacks exist and will cause a link to go down. It’s a problem that was considered in the design of both 10G ethernet and PCIe which both use similar mechanisms. Generally a key defence is the maximum packet size (you can’t keep your evil stream aligned with the scrambler) along with the huge pattern length (for PCIe g1/2 and USB3, 10GE and PCIe g3 works differently) which means that the amount of data you’d have to send is just too large.
- tinus_hn 6y agoProbably too much work to do in that context but QR codes solve that by having multiple possible XOR patterns and choosing the one that generates the best output.
- jleahy 6y agoActually not too much work. Some protocols (I can’t recall which, none of the above) work by sending either the data or its inverse along with an extra bit saying whether it was inverted. Very easy in hardware but has nasty error amplification (an error in that bit causes many other bits to flip), which may or may not be an issue.
- tinus_hn 6y agoNot sure how that really helps but it does mean you have to look at all of the data before sending it.
- 6y ago
- jpm_sd 6y agoI recently learned that USB3 is not only badly designed, flaky and unreliable, it is also an EMI/RFI nightmare. This is woefully understated in the article when it says: "It's hard not to generate harmful interference." We built a prototype sensor payload that included a USB3 external hard drive. Started suffering broad spectrum interference that stomped all over L-band (Iridium and GPS) reception. Made the entire system unusable! Some references on USB3 noise: USB 3.0 Radio Frequency Interference Impact on 2.4 GHz Wireless Devices (by Intel) https://www.usb.org/sites/default/files/327216.pdf https://www.usb.org/sites/default/files/327216.pdf see especially Figure 2-2: "the data spectrum is very broadband, ranging from DC to 5 GHz" USB 3.0 Interference - Cradlepoint Knowledgebase https://customer.cradlepoint.com/s/article/NCOS-USB-3-0-Interference https://customer.cradlepoint.com/s/article/NCOS-USB-3-0-Inte... "USB 3.0, or SuperSpeed USB, uses broadband signaling that can interfere with cellular and 2.4GHz WIFI signaling. This interference can significantly degrade cellular and 2.4GHz WIFI performance. Customers using cellular networks or 2.4GHz WIFI networks near USB 3.0 devices should take measures to reduce the impact of these devices on their network connectivity. Please note that interference is generated by both the actual USB 3.0 device as well as its cable."
- rimliu 6y agoExperienced this first hand. Had a crappy WiFi connection at home, started to investigate and found out that signal qulity degraded a lot when my Seagate SDD was connected on USB3.
- ckosidows 6y agoMy desktop has really flaky WiFi. Its WiFi adapter and a few peripherals are connected using USB3 ports. I just thought I was too far from the router (it's a room away through two walls). Is it possible switching them to the 2.0 ports could make my signal better?
- jk700 6y agoMaybe. Although switching wifi router into something like 802.11b-only or a-only mode and selecting a fixed least busy channel might be a better long term solution, as USB3 isn't the only source of EMI.
- gxx 6y agoDo these problems also apply to USB C?
- droopyEyelids 6y agoUSB C is the shape of the end connector, USB 3 is the protocol. So yes, you can have USB 3 on USB C or older shapes of USB cables.
- MisterTea 6y agoUSB 3 and the idiotic USB C standard can die in a fire. Replace it with a stripped down version of Ethernet with a simple, sane protocol that can encapsulate ethernet frames, display port frames and PCIe frames. Something like firewire where we can memory map a device or perform bulk transfers or byte oriented transfers. Maybe a "converged" controller with some brains can allow it to handle Ethernet frames directly so an Ethernet port or dongle isn't much more than an external MAC. Then we can use existing Ethernet interface hardware, MAC's, jacks and so on. A new connector would be nice too. One that doesn't have the ability to inject 20V into a 5V device. Real-time can be handled using TSN and PTP can also be used. Finally, combine that with single pair Ethernet for local desktop device networking at up to 1GB with PoE over a single pair of wires. Why do we need USB 3 and C again?
- labawi 6y ago> Why do we need USB 3 and C again? Typical copper ethernet is 1Gb/s, while USB 3 is 5 Gb/s, going on 10/20/40 Gb/s with USB 3.2, USB 4 .. thunderbolt. As others have said, 10G ethernet is too power hungry, and even 1G ethernet is inherently more expensive. I resent active cables and do prefer ethernet, but it's not a realistic proposition for most use cases.
- MisterTea 6y ago> Typical copper ethernet is 1Gb/s, while USB 3 is 5 Gb/s, going on 10/20/40 Gb/s with USB 3.2, USB 4 .. thunderbolt. All the bit rates you listed Ethernet also covers. And as for copper - at the speeds you listed thunderbolt and USB3/C are limited to severely short cables, a measly 0.5 meters for 40Gb. Though 20Gb can do 1 or 2m, 2m being the longest thunderbolt cable you can use. As for power, that devil is in the interface details. I see no reason why multi-gigabit Ethernet can't be pushed over a similarly designed low power differential copper serial transceiver. As far as I'm concerned, Ethernet is more mature than USB could ever dream of being.
- labawi 6y agoEthernet is more mature, I like it. But to compete in most USB use-cases it would have to re-engineered so much, it wouldn't really be ethernet any more.
- brian_herman 6y agoI bet USB 4 is like calculus compared to these.