In front of me are 127 USB devices, the
theoretical limit that is supported by a standard PC. But USB has [music] a dark
secret. As it turns out, the real world limit is actually much, much lower. And
the only way to find out what it is for sure is to just start plugging devices
in, which oh well, I mean, I guess we
could just read the white paper on the architecture of the spec, but
that would be far less interesting for the people watching on YouTube. So
instead, we're just going to start plugging things in and see what happens.
What do you do once you run out of ports? I mean, hubs, obviously, but can
we just keep plugging in hub after hub after hub until we hit it? What is the
first factor that limits how many USB devices you can connect to your
computer? Is one you know quite well, and that's the number of ports on the
front and back of your PC. But what you might not know is that most computers
only have a single USB host controller.
And all of those ports are going to share not only that controller, but that
controller's bandwidth. So when you have a USB 5 GB per second port, it's 5 Gbit
per second shared with all the other ports on the controller. Now,
fortunately, hitting a bandwidth limit is pretty uncommon. Most peripherals
like mice or keyboards use a negligible
amount of bandwidth. However, you can run into odd behavior if you have, say,
for example, a video capture device or a webcam. This was really common with
early generation VR headsets where the VR tracker sucked up so much bandwidth
that users needed to install a second controller on an add-in card. Of course,
our question today isn't how much bandwidth can we push through one of
these controllers. [music] It's how many devices can we connect to one. So, let's
move beyond the limits of our mere mortal rear IO ports. I summon the hub.
I haven't even plugged the hub in yet, and I think we're already getting kind of weird behavior. None of these. Whoa,
this mouse is crazy hot. Wait,
heatedmouse.com. Oh, it's a feature.
All right. Simple unpowered hub.
Now a mouse. Hey, there it is. Logitech gaming mouse. Now another drive. Ah, but
this is interesting. Every hub is actually two hubs. See that? We've got a
USB 2 hub and a USB 3 hub. And depending
on what kind of devices we plug in, they'll show up under either. Hubs like
this one are an integral part of the various USB specifications. They handle
all the communication between devices that are plugged into them and the host
systems that they're plugged into, as well as handling bandwidth sharing. The
hub will tell the system, hey, I'm a hub. And the system adds that hub's
address to the path of any devices that are plugged in down the chain. When
multiple hubs are used, multiple addresses are added to the path. So if
hub A, for example, is plugged into port four of the host, hub B is plugged into
port two of hub A, and then a mouse is plugged into port one of hub B, the
address might read something like 0421,
where zero is the address of the controller's root hub. Powered or
unpowered, it doesn't change the addressing system. However, according to
the USB spec, a hub that is powered entirely by the port that it's plugged
into, like this one, cannot allow this
sort of daisy chaining. According [music] to the spec, anyway, as we are
about to see, however, that is not the case here, right? Look at this. But why
though? Because unpowered hubs are liars
sometimes. Actually, not just sometimes, most of the time. And if that shocks
you, well, it shouldn't. Consider their
predicament. According to the spec, only low power devices, so devices that draw
less than 100 milliamps, are [music] supposed to be used on hubs that are
powered by the port itself and not by an external power brick. So, if people buy
a spec compliant unpowered hub, they're going to be in for a rude shock when
many of their devices, I mean, even mice with too many RGB lights won't work for
some unclear reason. So, as a result,
manufacturers can either have mostly
happy customers and with an [music] out ofspec product or they can have USB
implement form certification. Well, average Joe customer doesn't care about
USB if certification. They might not even know that they exist.
Whose castle is this? They just want a hub that works with their devices, and it usually will.
However, draw too much current and your USB controller will shut down the
connection from the source. Huh. Hopefully before anything gets damaged.
Should we try that? Why don't we plug the heated mouse into this thing?
Okay, working now. But what happens when
we turn our heat to high? Oh wow, this
is still working somehow. [music] I NEED MORE POWER. HOW ABOUT THIS K95 keyboard?
Really? How is this all still working? More
brightness. That was max brightness. Let's plug into a USB 2 port. That'll do
it. And
oh, the heat on. Really? Were you
expecting this to work? I mean, no, not really. But
time for another RGB keyboard. Okay, come on. This will
two full RGB keyboards and a heated mouse. Do we have any bigger unpowered
hubs? No, the these are the two unpowered hubs I could find. Most of our stuff seems to
just be powered. And it's plugged into a USB 2 port, which means that it's [music] pulling at most 2 and 1/2 watts,
which is crazy that all of that stuff just works. Okay,
you know what? Probably overdrawing. What I [music] suspect is that this
motherboard is just like,
I will deliver more than spec. Unbelievable. I can't believe they just
allow more power draw so that things function properly.
[sighs] This will do it. Heated mouse, RGB
keyboard, and stream deck. No, it
doesn't have the software. That should I want it to light up full brightness. Oh,
wait. Hold on. USB device not
recognized. Last USB device you connected has malfunctioned. Yes, we've
overwhelmed it. Wow. What the devil is
that? She real unhappy. I suspect if we
plug this directly into the back of the PC
it would show up just fine. Elgato
Stream Deck XL. There it is. Everything working perfectly. But we take it back
out of here and we plug it into our unpowered hub
and boom. Problem. Yes. Suck.
Okay. It doesn't matter. The point is [music] there's a solution to that.
powered USB hubs like this one from Sabrin that does a whopping
16 devices. Now, something funky about
these is that they are power mandatory hubs. Some are power optional. Remember
that first one that I had over here? It actually has a barrel jack, so it can
operate as a powered hub. This one, on the other hand, is like, uh-uh, no can
do. Where's my cable?
Zip, zilt, nada. But plug in a 90 watt
charger. And hey, there we go. Ah, this is
interesting. We're going to talk about this later. All the different hubs that
are present here. But first,
let's see if we can get our stream deck and our heated mouse and our RGB
keyboard running at the same time. We got to turn on those ports, of course.
No problem. With these, I can greatly
expand my USB connectivity. All I have to do is daisy chain my hubs together,
which should give me pretty much unlimited hubbery.
Uh, except for one small problem. Too
many USB hubs. A hub will not function
when it's connected more than five hubs away from the root port. But this is
only three hubs. Remember when we noticed that each of these one hubs was
identifying as five hubs in software
sort of okay USB hub chips can have up
to seven downstreamfacing ports or DFPs.
Most hub chips have only four DFPs. So,
a manufacturer looking to make a big tough USB bar that doubles as a
self-defense weapon could achieve their desired number of ports by doing what
anyone else would, by chaining them together. This particular model from
Sabrant [music] has one main chip with four DFPs that
each branch off into four more chips with four more [music] DFPs each. That
gives us a total of 16 ports, each of
which are two hubs deep. So if we put
three of these together, that's [music] six hubs in a row. Of course, all of
this hub into hub tom foolery was just an excuse for me to talk about hub depth
limitations. The real way to plug in as many devices as we can is to plug each
of our hubs into the back of our PC.
Now, we're only two hubs deep on every one of these ports, meaning we can start
loading things up. I could use a couple of extra hands here, boys.
I'm actually going to turn these off just so that I can do this.
[laughter] We're not going to be able to use USB thumb drives forever, though.
Windows gets kind of fussy about how many drive letters it will assign. So,
I'm just going to do one hub worth of these. We'll start bringing over mice. Yeah.
Why don't we have a mouse hub, a USB thumb drive hub, and a keyboard hub?
What do you guys think? Sound good? Yeah. We are up to 30 devices now. And I got
to say, good old USB. You know, we kind
of take it for granted. You know, you just use it every day and don't think about it. But it is shockingly robust.
Are you guys um What are you guys doing with the keyboards over there?
Uh we need to plug some in right now is what we need to do. All right. Hit me with some cables.
Cable me. Plug these two in. Better believe it. We've made it to 48
devices, all of which are showing up correctly. And while there is some weird
behavior, uh I can't click sometimes,
for example. Yep, that's uh Hold on. Maybe a different mouse will click. No.
Um how about this? No. Nope. That doesn't work. But uh what
about the Windows key? Oh. Uh control
shift escape. Hello. Oh yeah, but could bring up task manager. So that's good.
Alt F4. Anything, buddy? Shoot. Okay,
let's go. Just one keyboard and one mouse for a
sec here. Why was I able to click on that one thing and not a different
thing? This is so weird. Okay. Yes, we're back.
And come back all my pretties. Okay.
Excellent. May I have another hub?
There is a point to this. We're on a different screen now. And I'll show you
why this is important. Let me just get everything lit back up here first. It's
at 114 right now.
We're at 172.
Uh,
this is not what I was expecting to happen, but we have a total of 234 end
points. Um, Tanner. Yeah,
that's not what we were expecting to happen, is it?
Not at all. I haven't found so much as a
data sheet for a USB root hub that can handle more than 128. [music]
It's supposed to fail at 127. Well, 128.
Um, it did not.
Apparently, the AMD
chipset is just very powerful when it
comes to the amount of USB it can handle.
More devices. Tanner, what is it supposed to do?
Uh, it's supposed to tell you that it's out of resources.
I see. And were you ever actually able to create that condition? tons of times.
Cool. It became something I could do in less than five minutes on both my laptop and
the system I was testing on. I see. Those are both Intelbased [music]
systems and for some reason AMD just decided to go ham on the amount of USB
they [music] can handle. Starting with AM4, but back then it was still limited
to 128 and I expected it to be at least somewhere near 128
still. But no, it What are we at right
now? 304.
Let's go. World new world record.
Sum of hubs and devices is 101 right
now. We are getting dangerously close to the goal we set out at the beginning of
the video and we haven't even pulled out the USBator yet. I will be very
disappointed if I don't need this. The theoretical limit of XHCI is like 8,000.
[laughter] But how often do we reach theoretical
limits for these things? I haven't been able to
get anywhere near it without things breaking. And yet here we are with AMD
just tanking it. Surely this final hub
will be enough, he said, not really convinced. Oh, this
video is completely off the rails now. There were rails. There was a script.
There was a plan. Weeks of testing. And
then we just happened to grab an AMD system. 106.
Remember, cuz there's five hubs in here, right? Plus the one thing I replugged
[music] back in. Uh,
okay. I'm just going to start finding plugs and plugging them into things.
Why, thank you, good sir.
Holy 337 end points.
Wait. Oh. Oh, we just lost a bunch. We're down to 270 end points all of a
sudden. The keyboards are dead. Whoa. We are
losing devices left and right here. We're
Did we just completely
Oh, wow. They're coming back. Okay. Wow. This is not what you want to see.
Well, cool. At any rate, here's screen
capture of the normal way that this happens that Tanner will get later. And
this is also a thing that can happen [music] when you have too many endpoints. Allow me to explain. It's not
a device limit or a power limit or a
bandwidth limit. This is an endpoint [music] limit. An end point is a data
pipe between the host and the device. And a device will typically have
multiple end points for things like configuration, um, occasional small low
latency data transfer, [music] non-timeritical large data transfer, and
continuous data flow for things like microphones or cameras. Now, remember
when I said that, well, they're all buried now, but these hubs were actually
five hubs. Well, that was half true. They are five USB 3 hubs [music]
and they are also five USB 2 hubs for a
total of 10 hubs. Each hub [music] uses two endpoints for a total of 20. Now
technically XHCI extended host control
protocol supports up to [music] 31 endpoints per device which assuming a
reasonable 127 device limit like we encountered in our testing [music] is
nearly 4,000 end points. That's enough endpoints to fill up a tech sack from
ltdstore.com. But you're not going to be able to
actually hit that limit with modern hardware because controllers almost
always have a limit [music] of 64 to 128
endpoints, typically settling on around 96.
Except that this one didn't. It had like
over 300 or something. But that doesn't matter because we are still going to get
to our goal of plugging in 128 devices
with the USBator.
And it should actually behave less flakier than this. Maybe.
Don't make promises you can't keep. The one with all the USB drives in it is
flipping hot. Like unhappy.
Wow. Ow. You know, it kind of is a good
representation of the difference in philosophy between Intel and AMD. Intel
has a tendency to just say this is what
we know we can support reasonably well and just no, you actually may not have
any more than that. Whereas AMD tends to be kind of more yolo like I don't know,
see what happens. We're not going to put a limit on it. What you are looking at
here is an ASUS mining motherboard. Not
[music] because we're doing any Bitcoin mining or anything like that, but because we want a whole bunch of PCIe by
one slots plugged into a whole bunch of
these little mining daughter boards that instead of being loaded up with graphics
cards are loaded up with USB controller
cards. In total, I believe we have 30
total USB controllers, meaning that we
are going to be nowhere near any kind of endpoint limit shenanigans to get to our
127 devices. From the outside, the USB
and is very similar to what we were just doing. We've got these Sabrin 16 port
hubs, and we're going to plug them into ports in the back of our computer. But
it's these ports that make this system different. StarTech sent over two
different kinds of USB controller cards. These ones with seven plugs and these
ones with four. [music] And believe it or not, the ones with four plugs are
actually better than the ones with seven. And that's because, and if you've
been paying close attention, you'll know why this matters. Four of these ports,
namely the top ones, are running off of an integrated hub. Meaning that it would
be much easier to hit an endpoint limit using these. So, for example, if you had
a couple more multiport hubs and then one of these multi-dis adapter things,
it would work in any of these bottom three, which are directly connected to
the controller, but would cease to work
if it was connected to one of the top four. That is not true of our four port
cards. Each of these is running off of its own controller, meaning that the
theoretical maximum number of endpoints going into just one of these cards would
be 508 or something like that, assuming
each of these can do 127 endpoints. What
that means is that if all goes according to plan, it should be basically
impossible for us to reach an endpoint limit on this system. I say we power the
thing on. All right, because the first thing that we need to do is uh
is verify which of these cards currently feels like working. Ah,
it's not the card's fault. It's the risers, right? Mining stuff. Definitely [snorts]
reliable. Oh, so reliable. This one has no lights. This one has no
lights. That's okay. I can work with that. I regret taking the approach we
did last time. Why? How many total drives did you say that
you could handle? As many as there are letters in the alphabet. But really the problem is when
a whole bunch of them connect at the same time, then Windows tries and give
tries to give the drive letter to multiple drives at once.
Sick. It is time to painstakingly plug in 127 USB devices. How are we doing
here? What how are we doing for endpoints, boys? We're we're at 56 total peripherals. End
points are going to be just based on the controller itself. So, we've got
multiple controllers, but yeah, we're at 56. 56 and 122 standard hubs.
Not bad. Let's do more. We are up to 86
peripheral devices. The question is, are
they still functioning at all? Let's do my caps lock test.
So, you should be able to kind of see them going going nuts. Okay. What about
the Windows key? Wow.
Okay. With all these controllers, it's
actually still kind of working. Can I Can I click on something? Yes.
Very nice. MORE THUMB DRIVES. I AM uh
I'm getting kind of nervous about the lean going on here. Like that is that is
some pizza level almost. And there is a
single strip of tape holding these on. It's good tape, but that's 16 ports
worth of stress. We're at 100 devices right now. 100 devices. Let's go. I have to say my
side much more organized.
I did take the only rack though. Yeah.
We have a mouse infestation. 104.
Okay. Are any of these not lit up? Oh, that's that heated one. Yeah.
Weirds me out, man. Oh crap. Something is depressed.
Uh-oh. Oh, sorry. No, no, not that kind of depressed. Oh,
are some of the ports not powered? Are some of them not powered on this side?
Okay. No, they're definitely all powered away. Oh, okay. What are we up to now,
Colin? Ah, 112. Oh, we're so close. 113. Come
on. That didn't count. That also didn't
count. Oh, we're down. We're down to 110.
Okay. What about this one? Oh no. Oh no.
Oh, I just saw keyboard lose power. I wonder if this is more of a driver
level limit just trying to manage all of these flipping. What does our CPU usage
look like? Look at my cursor now. Just hold on a gosh darn second
here.
Okay, it's not exactly a super powerful CPU.
It's only a quad core, but
we were pulling 60% when I opened this
and it's sitting at 30 40% [music] now, just doing nothing. While I'm
disappointed that we couldn't get to 127
concurrent devices, we learned a lot along the way. And in fact, I have had
multiple times in the past when I've run into issues that would have been caused
by these kinds of topology limitations that just I didn't understand in the
past [music] and now I will. So, the main things to take away here are that
if you're using a hub, you're going to [music] want to connect that directly to
the root controller. And if you're using an unpowered hub, hey, it might [music]
be running out of spec. So, make sure you're only plugging in low power
devices or get yourself a powered hub. We're down to 99, guys.
I think she can't take it anymore.
If you guys enjoyed this video, maybe check out the one where we oh connected
as many PCIe risers as we could to see what would happen. You actually [music]
ended up getting really