1
00:00:00,160 --> 00:00:07,120
In front of me are 127 USB devices, the

2
00:00:04,880 --> 00:00:12,639
theoretical limit that is supported by a standard PC. But USB has [music] a dark

3
00:00:09,840 --> 00:00:17,760
secret. As it turns out, the real world limit is actually much, much lower. And

4
00:00:16,080 --> 00:00:24,640
the only way to find out what it is for sure is to just start plugging devices

5
00:00:20,560 --> 00:00:27,199
in, which oh well, I mean, I guess we

6
00:00:24,640 --> 00:00:31,679
could just read the white paper on the architecture of the spec, but

7
00:00:29,920 --> 00:00:36,000
that would be far less interesting for the people watching on YouTube. So

8
00:00:33,760 --> 00:00:40,239
instead, we're just going to start plugging things in and see what happens.

9
00:00:38,640 --> 00:00:46,000
What do you do once you run out of ports? I mean, hubs, obviously, but can

10
00:00:43,520 --> 00:00:50,480
we just keep plugging in hub after hub after hub until we hit it? What is the

11
00:00:48,480 --> 00:00:53,840
first factor that limits how many USB devices you can connect to your

12
00:00:51,680 --> 00:00:58,640
computer? Is one you know quite well, and that's the number of ports on the

13
00:00:55,920 --> 00:01:04,159
front and back of your PC. But what you might not know is that most computers

14
00:01:00,960 --> 00:01:06,159
only have a single USB host controller.

15
00:01:04,159 --> 00:01:11,119
And all of those ports are going to share not only that controller, but that

16
00:01:09,119 --> 00:01:18,159
controller's bandwidth. So when you have a USB 5 GB per second port, it's 5 Gbit

17
00:01:15,680 --> 00:01:22,880
per second shared with all the other ports on the controller. Now,

18
00:01:20,240 --> 00:01:29,360
fortunately, hitting a bandwidth limit is pretty uncommon. Most peripherals

19
00:01:25,920 --> 00:01:32,000
like mice or keyboards use a negligible

20
00:01:29,360 --> 00:01:37,280
amount of bandwidth. However, you can run into odd behavior if you have, say,

21
00:01:34,400 --> 00:01:42,479
for example, a video capture device or a webcam. This was really common with

22
00:01:39,840 --> 00:01:47,680
early generation VR headsets where the VR tracker sucked up so much bandwidth

23
00:01:45,200 --> 00:01:52,720
that users needed to install a second controller on an add-in card. Of course,

24
00:01:50,399 --> 00:01:56,880
our question today isn't how much bandwidth can we push through one of

25
00:01:54,159 --> 00:02:02,000
these controllers. [music] It's how many devices can we connect to one. So, let's

26
00:01:59,840 --> 00:02:08,160
move beyond the limits of our mere mortal rear IO ports. I summon the hub.

27
00:02:06,880 --> 00:02:16,000
I haven't even plugged the hub in yet, and I think we're already getting kind of weird behavior. None of these. Whoa,

28
00:02:12,720 --> 00:02:20,560
this mouse is crazy hot. Wait,

29
00:02:16,000 --> 00:02:23,280
heatedmouse.com. Oh, it's a feature.

30
00:02:20,560 --> 00:02:30,239
All right. Simple unpowered hub.

31
00:02:27,360 --> 00:02:35,840
Now a mouse. Hey, there it is. Logitech gaming mouse. Now another drive. Ah, but

32
00:02:33,040 --> 00:02:43,120
this is interesting. Every hub is actually two hubs. See that? We've got a

33
00:02:38,800 --> 00:02:44,720
USB 2 hub and a USB 3 hub. And depending

34
00:02:43,120 --> 00:02:48,640
on what kind of devices we plug in, they'll show up under either. Hubs like

35
00:02:46,720 --> 00:02:53,280
this one are an integral part of the various USB specifications. They handle

36
00:02:51,360 --> 00:02:57,599
all the communication between devices that are plugged into them and the host

37
00:02:55,760 --> 00:03:02,400
systems that they're plugged into, as well as handling bandwidth sharing. The

38
00:02:59,760 --> 00:03:06,800
hub will tell the system, hey, I'm a hub. And the system adds that hub's

39
00:03:04,800 --> 00:03:11,120
address to the path of any devices that are plugged in down the chain. When

40
00:03:09,120 --> 00:03:16,000
multiple hubs are used, multiple addresses are added to the path. So if

41
00:03:13,599 --> 00:03:21,519
hub A, for example, is plugged into port four of the host, hub B is plugged into

42
00:03:19,040 --> 00:03:27,040
port two of hub A, and then a mouse is plugged into port one of hub B, the

43
00:03:23,840 --> 00:03:28,800
address might read something like 0421,

44
00:03:27,040 --> 00:03:33,599
where zero is the address of the controller's root hub. Powered or

45
00:03:31,840 --> 00:03:38,799
unpowered, it doesn't change the addressing system. However, according to

46
00:03:36,239 --> 00:03:43,680
the USB spec, a hub that is powered entirely by the port that it's plugged

47
00:03:40,560 --> 00:03:45,977
into, like this one, cannot allow this

48
00:03:43,680 --> 00:03:51,200
sort of daisy chaining. According [music] to the spec, anyway, as we are

49
00:03:48,319 --> 00:04:00,080
about to see, however, that is not the case here, right? Look at this. But why

50
00:03:55,920 --> 00:04:02,319
though? Because unpowered hubs are liars

51
00:04:00,080 --> 00:04:07,760
sometimes. Actually, not just sometimes, most of the time. And if that shocks

52
00:04:04,480 --> 00:04:10,720
you, well, it shouldn't. Consider their

53
00:04:07,760 --> 00:04:16,239
predicament. According to the spec, only low power devices, so devices that draw

54
00:04:13,680 --> 00:04:21,120
less than 100 milliamps, are [music] supposed to be used on hubs that are

55
00:04:18,400 --> 00:04:27,199
powered by the port itself and not by an external power brick. So, if people buy

56
00:04:24,479 --> 00:04:31,840
a spec compliant unpowered hub, they're going to be in for a rude shock when

57
00:04:29,440 --> 00:04:38,720
many of their devices, I mean, even mice with too many RGB lights won't work for

58
00:04:35,360 --> 00:04:41,919
some unclear reason. So, as a result,

59
00:04:38,720 --> 00:04:43,840
manufacturers can either have mostly

60
00:04:41,919 --> 00:04:48,880
happy customers and with an [music] out ofspec product or they can have USB

61
00:04:46,639 --> 00:04:52,960
implement form certification. Well, average Joe customer doesn't care about

62
00:04:50,960 --> 00:04:55,759
USB if certification. They might not even know that they exist.

63
00:04:54,479 --> 00:05:04,000
Whose castle is this? They just want a hub that works with their devices, and it usually will.

64
00:05:01,280 --> 00:05:08,160
However, draw too much current and your USB controller will shut down the

65
00:05:05,919 --> 00:05:12,160
connection from the source. Huh. Hopefully before anything gets damaged.

66
00:05:10,720 --> 00:05:19,440
Should we try that? Why don't we plug the heated mouse into this thing?

67
00:05:15,919 --> 00:05:22,880
Okay, working now. But what happens when

68
00:05:19,440 --> 00:05:25,199
we turn our heat to high? Oh wow, this

69
00:05:22,880 --> 00:05:31,360
is still working somehow. [music] I NEED MORE POWER. HOW ABOUT THIS K95 keyboard?

70
00:05:29,039 --> 00:05:36,080
Really? How is this all still working? More

71
00:05:33,199 --> 00:05:41,440
brightness. That was max brightness. Let's plug into a USB 2 port. That'll do

72
00:05:39,840 --> 00:05:47,840
it. And

73
00:05:43,440 --> 00:05:48,960
oh, the heat on. Really? Were you

74
00:05:47,840 --> 00:05:55,199
expecting this to work? I mean, no, not really. But

75
00:05:52,240 --> 00:06:00,039
time for another RGB keyboard. Okay, come on. This will

76
00:06:04,960 --> 00:06:10,560
two full RGB keyboards and a heated mouse. Do we have any bigger unpowered

77
00:06:10,080 --> 00:06:15,919
hubs? No, the these are the two unpowered hubs I could find. Most of our stuff seems to

78
00:06:14,400 --> 00:06:21,680
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,

79
00:06:19,840 --> 00:06:26,080
which is crazy that all of that stuff just works. Okay,

80
00:06:23,919 --> 00:06:31,520
you know what? Probably overdrawing. What I [music] suspect is that this

81
00:06:28,240 --> 00:06:33,680
motherboard is just like,

82
00:06:31,520 --> 00:06:37,520
I will deliver more than spec. Unbelievable. I can't believe they just

83
00:06:35,199 --> 00:06:40,720
allow more power draw so that things function properly.

84
00:06:40,209 --> 00:06:47,199
[sighs] This will do it. Heated mouse, RGB

85
00:06:43,520 --> 00:06:49,680
keyboard, and stream deck. No, it

86
00:06:47,199 --> 00:06:55,120
doesn't have the software. That should I want it to light up full brightness. Oh,

87
00:06:51,759 --> 00:06:57,360
wait. Hold on. USB device not

88
00:06:55,120 --> 00:07:03,520
recognized. Last USB device you connected has malfunctioned. Yes, we've

89
00:06:59,759 --> 00:07:07,120
overwhelmed it. Wow. What the devil is

90
00:07:03,520 --> 00:07:08,880
that? She real unhappy. I suspect if we

91
00:07:07,120 --> 00:07:11,880
plug this directly into the back of the PC

92
00:07:13,120 --> 00:07:19,039
it would show up just fine. Elgato

93
00:07:16,639 --> 00:07:24,080
Stream Deck XL. There it is. Everything working perfectly. But we take it back

94
00:07:22,000 --> 00:07:33,039
out of here and we plug it into our unpowered hub

95
00:07:26,319 --> 00:07:34,575
and boom. Problem. Yes. Suck.

96
00:07:33,039 --> 00:07:40,080
Okay. It doesn't matter. The point is [music] there's a solution to that.

97
00:07:37,280 --> 00:07:46,080
powered USB hubs like this one from Sabrin that does a whopping

98
00:07:42,639 --> 00:07:48,880
16 devices. Now, something funky about

99
00:07:46,080 --> 00:07:53,440
these is that they are power mandatory hubs. Some are power optional. Remember

100
00:07:51,199 --> 00:07:58,479
that first one that I had over here? It actually has a barrel jack, so it can

101
00:07:55,759 --> 00:08:05,039
operate as a powered hub. This one, on the other hand, is like, uh-uh, no can

102
00:08:01,759 --> 00:08:09,520
do. Where's my cable?

103
00:08:05,039 --> 00:08:11,199
Zip, zilt, nada. But plug in a 90 watt

104
00:08:09,520 --> 00:08:15,919
charger. And hey, there we go. Ah, this is

105
00:08:14,800 --> 00:08:21,520
interesting. We're going to talk about this later. All the different hubs that

106
00:08:18,400 --> 00:08:23,680
are present here. But first,

107
00:08:21,520 --> 00:08:28,160
let's see if we can get our stream deck and our heated mouse and our RGB

108
00:08:26,319 --> 00:08:34,880
keyboard running at the same time. We got to turn on those ports, of course.

109
00:08:31,840 --> 00:08:37,599
No problem. With these, I can greatly

110
00:08:34,880 --> 00:08:43,120
expand my USB connectivity. All I have to do is daisy chain my hubs together,

111
00:08:40,719 --> 00:08:50,560
which should give me pretty much unlimited hubbery.

112
00:08:47,279 --> 00:08:54,160
Uh, except for one small problem. Too

113
00:08:50,560 --> 00:08:56,240
many USB hubs. A hub will not function

114
00:08:54,160 --> 00:09:00,560
when it's connected more than five hubs away from the root port. But this is

115
00:08:58,399 --> 00:09:06,959
only three hubs. Remember when we noticed that each of these one hubs was

116
00:09:03,600 --> 00:09:11,440
identifying as five hubs in software

117
00:09:06,959 --> 00:09:15,680
sort of okay USB hub chips can have up

118
00:09:11,440 --> 00:09:19,040
to seven downstreamfacing ports or DFPs.

119
00:09:15,680 --> 00:09:21,519
Most hub chips have only four DFPs. So,

120
00:09:19,040 --> 00:09:26,720
a manufacturer looking to make a big tough USB bar that doubles as a

121
00:09:24,240 --> 00:09:31,360
self-defense weapon could achieve their desired number of ports by doing what

122
00:09:28,399 --> 00:09:34,320
anyone else would, by chaining them together. This particular model from

123
00:09:33,680 --> 00:09:40,640
Sabrant [music] has one main chip with four DFPs that

124
00:09:37,920 --> 00:09:46,560
each branch off into four more chips with four more [music] DFPs each. That

125
00:09:43,120 --> 00:09:51,600
gives us a total of 16 ports, each of

126
00:09:46,560 --> 00:09:53,839
which are two hubs deep. So if we put

127
00:09:51,600 --> 00:09:58,720
three of these together, that's [music] six hubs in a row. Of course, all of

128
00:09:56,399 --> 00:10:03,600
this hub into hub tom foolery was just an excuse for me to talk about hub depth

129
00:10:00,800 --> 00:10:09,920
limitations. The real way to plug in as many devices as we can is to plug each

130
00:10:06,880 --> 00:10:12,560
of our hubs into the back of our PC.

131
00:10:09,920 --> 00:10:18,079
Now, we're only two hubs deep on every one of these ports, meaning we can start

132
00:10:15,200 --> 00:10:23,040
loading things up. I could use a couple of extra hands here, boys.

133
00:10:20,959 --> 00:10:28,320
I'm actually going to turn these off just so that I can do this.

134
00:10:26,842 --> 00:10:31,920
[laughter] We're not going to be able to use USB thumb drives forever, though.

135
00:10:30,079 --> 00:10:35,200
Windows gets kind of fussy about how many drive letters it will assign. So,

136
00:10:33,600 --> 00:10:40,480
I'm just going to do one hub worth of these. We'll start bringing over mice. Yeah.

137
00:10:38,399 --> 00:10:44,800
Why don't we have a mouse hub, a USB thumb drive hub, and a keyboard hub?

138
00:10:42,720 --> 00:10:53,279
What do you guys think? Sound good? Yeah. We are up to 30 devices now. And I got

139
00:10:49,120 --> 00:10:54,720
to say, good old USB. You know, we kind

140
00:10:53,279 --> 00:11:00,720
of take it for granted. You know, you just use it every day and don't think about it. But it is shockingly robust.

141
00:10:59,120 --> 00:11:04,079
Are you guys um What are you guys doing with the keyboards over there?

142
00:11:02,240 --> 00:11:07,920
Uh we need to plug some in right now is what we need to do. All right. Hit me with some cables.

143
00:11:06,320 --> 00:11:12,240
Cable me. Plug these two in. Better believe it. We've made it to 48

144
00:11:10,320 --> 00:11:18,320
devices, all of which are showing up correctly. And while there is some weird

145
00:11:14,160 --> 00:11:20,800
behavior, uh I can't click sometimes,

146
00:11:18,320 --> 00:11:25,120
for example. Yep, that's uh Hold on. Maybe a different mouse will click. No.

147
00:11:22,560 --> 00:11:31,200
Um how about this? No. Nope. That doesn't work. But uh what

148
00:11:27,839 --> 00:11:34,000
about the Windows key? Oh. Uh control

149
00:11:31,200 --> 00:11:40,800
shift escape. Hello. Oh yeah, but could bring up task manager. So that's good.

150
00:11:36,079 --> 00:11:42,959
Alt F4. Anything, buddy? Shoot. Okay,

151
00:11:40,800 --> 00:11:48,640
let's go. Just one keyboard and one mouse for a

152
00:11:46,880 --> 00:11:52,079
sec here. Why was I able to click on that one thing and not a different

153
00:11:50,240 --> 00:12:03,279
thing? This is so weird. Okay. Yes, we're back.

154
00:11:58,800 --> 00:12:08,720
And come back all my pretties. Okay.

155
00:12:03,279 --> 00:12:10,639
Excellent. May I have another hub?

156
00:12:08,720 --> 00:12:13,440
There is a point to this. We're on a different screen now. And I'll show you

157
00:12:11,760 --> 00:12:19,880
why this is important. Let me just get everything lit back up here first. It's

158
00:12:15,600 --> 00:12:19,880
at 114 right now.

159
00:12:20,880 --> 00:12:27,320
We're at 172.

160
00:12:24,320 --> 00:12:27,320
Uh,

161
00:12:29,279 --> 00:12:37,360
this is not what I was expecting to happen, but we have a total of 234 end

162
00:12:35,279 --> 00:12:40,399
points. Um, Tanner. Yeah,

163
00:12:38,560 --> 00:12:46,079
that's not what we were expecting to happen, is it?

164
00:12:41,600 --> 00:12:48,800
Not at all. I haven't found so much as a

165
00:12:46,079 --> 00:12:55,040
data sheet for a USB root hub that can handle more than 128. [music]

166
00:12:50,639 --> 00:12:57,200
It's supposed to fail at 127. Well, 128.

167
00:12:55,040 --> 00:13:02,320
Um, it did not.

168
00:12:58,880 --> 00:13:05,360
Apparently, the AMD

169
00:13:02,320 --> 00:13:07,120
chipset is just very powerful when it

170
00:13:05,360 --> 00:13:10,120
comes to the amount of USB it can handle.

171
00:13:10,240 --> 00:13:15,600
More devices. Tanner, what is it supposed to do?

172
00:13:14,000 --> 00:13:19,760
Uh, it's supposed to tell you that it's out of resources.

173
00:13:17,279 --> 00:13:24,320
I see. And were you ever actually able to create that condition? tons of times.

174
00:13:23,360 --> 00:13:30,959
Cool. It became something I could do in less than five minutes on both my laptop and

175
00:13:29,120 --> 00:13:35,360
the system I was testing on. I see. Those are both Intelbased [music]

176
00:13:32,959 --> 00:13:38,720
systems and for some reason AMD just decided to go ham on the amount of USB

177
00:13:37,279 --> 00:13:43,519
they [music] can handle. Starting with AM4, but back then it was still limited

178
00:13:41,120 --> 00:13:50,160
to 128 and I expected it to be at least somewhere near 128

179
00:13:47,120 --> 00:13:53,959
still. But no, it What are we at right

180
00:13:50,160 --> 00:13:53,959
now? 304.

181
00:13:54,639 --> 00:14:01,920
Let's go. World new world record.

182
00:13:58,720 --> 00:14:04,720
Sum of hubs and devices is 101 right

183
00:14:01,920 --> 00:14:09,360
now. We are getting dangerously close to the goal we set out at the beginning of

184
00:14:06,399 --> 00:14:14,800
the video and we haven't even pulled out the USBator yet. I will be very

185
00:14:12,160 --> 00:14:22,639
disappointed if I don't need this. The theoretical limit of XHCI is like 8,000.

186
00:14:21,989 --> 00:14:27,199
[laughter] But how often do we reach theoretical

187
00:14:25,519 --> 00:14:31,440
limits for these things? I haven't been able to

188
00:14:29,839 --> 00:14:38,320
get anywhere near it without things breaking. And yet here we are with AMD

189
00:14:33,760 --> 00:14:40,320
just tanking it. Surely this final hub

190
00:14:38,320 --> 00:14:46,560
will be enough, he said, not really convinced. Oh, this

191
00:14:44,240 --> 00:14:52,480
video is completely off the rails now. There were rails. There was a script.

192
00:14:48,720 --> 00:14:54,399
There was a plan. Weeks of testing. And

193
00:14:52,480 --> 00:14:58,040
then we just happened to grab an AMD system. 106.

194
00:14:58,160 --> 00:15:04,959
Remember, cuz there's five hubs in here, right? Plus the one thing I replugged

195
00:15:01,945 --> 00:15:07,680
[music] back in. Uh,

196
00:15:04,959 --> 00:15:13,440
okay. I'm just going to start finding plugs and plugging them into things.

197
00:15:10,320 --> 00:15:18,680
Why, thank you, good sir.

198
00:15:13,440 --> 00:15:18,680
Holy 337 end points.

199
00:15:18,880 --> 00:15:26,399
Wait. Oh. Oh, we just lost a bunch. We're down to 270 end points all of a

200
00:15:24,800 --> 00:15:31,360
sudden. The keyboards are dead. Whoa. We are

201
00:15:28,560 --> 00:15:37,440
losing devices left and right here. We're

202
00:15:33,760 --> 00:15:40,079
Did we just completely

203
00:15:37,440 --> 00:15:45,839
Oh, wow. They're coming back. Okay. Wow. This is not what you want to see.

204
00:15:42,800 --> 00:15:47,920
Well, cool. At any rate, here's screen

205
00:15:45,839 --> 00:15:52,380
capture of the normal way that this happens that Tanner will get later. And

206
00:15:50,800 --> 00:15:59,440
this is also a thing that can happen [music] when you have too many endpoints. Allow me to explain. It's not

207
00:15:56,399 --> 00:16:01,550
a device limit or a power limit or a

208
00:15:59,440 --> 00:16:07,199
bandwidth limit. This is an endpoint [music] limit. An end point is a data

209
00:16:04,399 --> 00:16:11,279
pipe between the host and the device. And a device will typically have

210
00:16:08,959 --> 00:16:16,160
multiple end points for things like configuration, um, occasional small low

211
00:16:14,399 --> 00:16:21,040
latency data transfer, [music] non-timeritical large data transfer, and

212
00:16:19,199 --> 00:16:25,519
continuous data flow for things like microphones or cameras. Now, remember

213
00:16:23,839 --> 00:16:30,800
when I said that, well, they're all buried now, but these hubs were actually

214
00:16:28,320 --> 00:16:38,079
five hubs. Well, that was half true. They are five USB 3 hubs [music]

215
00:16:33,600 --> 00:16:40,959
and they are also five USB 2 hubs for a

216
00:16:38,079 --> 00:16:47,440
total of 10 hubs. Each hub [music] uses two endpoints for a total of 20. Now

217
00:16:44,320 --> 00:16:49,519
technically XHCI extended host control

218
00:16:47,440 --> 00:16:55,920
protocol supports up to [music] 31 endpoints per device which assuming a

219
00:16:52,959 --> 00:17:00,399
reasonable 127 device limit like we encountered in our testing [music] is

220
00:16:57,680 --> 00:17:04,000
nearly 4,000 end points. That's enough endpoints to fill up a tech sack from

221
00:17:02,160 --> 00:17:07,039
ltdstore.com. But you're not going to be able to

222
00:17:05,439 --> 00:17:12,480
actually hit that limit with modern hardware because controllers almost

223
00:17:09,280 --> 00:17:15,120
always have a limit [music] of 64 to 128

224
00:17:12,480 --> 00:17:19,679
endpoints, typically settling on around 96.

225
00:17:16,640 --> 00:17:22,319
Except that this one didn't. It had like

226
00:17:19,679 --> 00:17:28,720
over 300 or something. But that doesn't matter because we are still going to get

227
00:17:24,559 --> 00:17:31,919
to our goal of plugging in 128 devices

228
00:17:28,720 --> 00:17:34,400
with the USBator.

229
00:17:31,919 --> 00:17:38,799
And it should actually behave less flakier than this. Maybe.

230
00:17:37,120 --> 00:17:45,039
Don't make promises you can't keep. The one with all the USB drives in it is

231
00:17:42,240 --> 00:17:48,679
flipping hot. Like unhappy.

232
00:17:48,720 --> 00:17:55,200
Wow. Ow. You know, it kind of is a good

233
00:17:53,679 --> 00:18:01,280
representation of the difference in philosophy between Intel and AMD. Intel

234
00:17:58,080 --> 00:18:03,919
has a tendency to just say this is what

235
00:18:01,280 --> 00:18:07,600
we know we can support reasonably well and just no, you actually may not have

236
00:18:05,600 --> 00:18:12,400
any more than that. Whereas AMD tends to be kind of more yolo like I don't know,

237
00:18:10,799 --> 00:18:18,447
see what happens. We're not going to put a limit on it. What you are looking at

238
00:18:15,280 --> 00:18:19,840
here is an ASUS mining motherboard. Not

239
00:18:18,447 --> 00:18:27,760
[music] because we're doing any Bitcoin mining or anything like that, but because we want a whole bunch of PCIe by

240
00:18:24,720 --> 00:18:30,640
one slots plugged into a whole bunch of

241
00:18:27,760 --> 00:18:35,919
these little mining daughter boards that instead of being loaded up with graphics

242
00:18:32,400 --> 00:18:40,880
cards are loaded up with USB controller

243
00:18:35,919 --> 00:18:44,559
cards. In total, I believe we have 30

244
00:18:40,880 --> 00:18:47,360
total USB controllers, meaning that we

245
00:18:44,559 --> 00:18:54,480
are going to be nowhere near any kind of endpoint limit shenanigans to get to our

246
00:18:50,880 --> 00:18:56,640
127 devices. From the outside, the USB

247
00:18:54,480 --> 00:19:00,559
and is very similar to what we were just doing. We've got these Sabrin 16 port

248
00:18:58,880 --> 00:19:04,480
hubs, and we're going to plug them into ports in the back of our computer. But

249
00:19:02,559 --> 00:19:09,760
it's these ports that make this system different. StarTech sent over two

250
00:19:06,880 --> 00:19:14,400
different kinds of USB controller cards. These ones with seven plugs and these

251
00:19:12,160 --> 00:19:19,039
ones with four. [music] And believe it or not, the ones with four plugs are

252
00:19:16,960 --> 00:19:22,160
actually better than the ones with seven. And that's because, and if you've

253
00:19:20,880 --> 00:19:26,880
been paying close attention, you'll know why this matters. Four of these ports,

254
00:19:24,720 --> 00:19:31,200
namely the top ones, are running off of an integrated hub. Meaning that it would

255
00:19:29,039 --> 00:19:36,080
be much easier to hit an endpoint limit using these. So, for example, if you had

256
00:19:33,520 --> 00:19:41,280
a couple more multiport hubs and then one of these multi-dis adapter things,

257
00:19:39,440 --> 00:19:46,720
it would work in any of these bottom three, which are directly connected to

258
00:19:43,600 --> 00:19:48,640
the controller, but would cease to work

259
00:19:46,720 --> 00:19:54,640
if it was connected to one of the top four. That is not true of our four port

260
00:19:52,160 --> 00:19:58,640
cards. Each of these is running off of its own controller, meaning that the

261
00:19:56,480 --> 00:20:04,880
theoretical maximum number of endpoints going into just one of these cards would

262
00:20:00,960 --> 00:20:08,640
be 508 or something like that, assuming

263
00:20:04,880 --> 00:20:11,120
each of these can do 127 endpoints. What

264
00:20:08,640 --> 00:20:16,000
that means is that if all goes according to plan, it should be basically

265
00:20:13,360 --> 00:20:21,120
impossible for us to reach an endpoint limit on this system. I say we power the

266
00:20:18,880 --> 00:20:26,000
thing on. All right, because the first thing that we need to do is uh

267
00:20:23,600 --> 00:20:28,960
is verify which of these cards currently feels like working. Ah,

268
00:20:27,360 --> 00:20:32,240
it's not the card's fault. It's the risers, right? Mining stuff. Definitely [snorts]

269
00:20:31,600 --> 00:20:38,080
reliable. Oh, so reliable. This one has no lights. This one has no

270
00:20:35,360 --> 00:20:42,240
lights. That's okay. I can work with that. I regret taking the approach we

271
00:20:40,559 --> 00:20:45,760
did last time. Why? How many total drives did you say that

272
00:20:44,880 --> 00:20:51,120
you could handle? As many as there are letters in the alphabet. But really the problem is when

273
00:20:49,600 --> 00:20:55,440
a whole bunch of them connect at the same time, then Windows tries and give

274
00:20:53,039 --> 00:20:59,600
tries to give the drive letter to multiple drives at once.

275
00:20:56,799 --> 00:21:04,320
Sick. It is time to painstakingly plug in 127 USB devices. How are we doing

276
00:21:03,120 --> 00:21:10,640
here? What how are we doing for endpoints, boys? We're we're at 56 total peripherals. End

277
00:21:08,640 --> 00:21:13,360
points are going to be just based on the controller itself. So, we've got

278
00:21:12,080 --> 00:21:20,320
multiple controllers, but yeah, we're at 56. 56 and 122 standard hubs.

279
00:21:16,480 --> 00:21:23,440
Not bad. Let's do more. We are up to 86

280
00:21:20,320 --> 00:21:25,440
peripheral devices. The question is, are

281
00:21:23,440 --> 00:21:29,760
they still functioning at all? Let's do my caps lock test.

282
00:21:28,480 --> 00:21:37,760
So, you should be able to kind of see them going going nuts. Okay. What about

283
00:21:33,520 --> 00:21:40,799
the Windows key? Wow.

284
00:21:37,760 --> 00:21:42,720
Okay. With all these controllers, it's

285
00:21:40,799 --> 00:21:50,159
actually still kind of working. Can I Can I click on something? Yes.

286
00:21:46,640 --> 00:21:52,320
Very nice. MORE THUMB DRIVES. I AM uh

287
00:21:50,159 --> 00:21:58,799
I'm getting kind of nervous about the lean going on here. Like that is that is

288
00:21:55,280 --> 00:22:00,880
some pizza level almost. And there is a

289
00:21:58,799 --> 00:22:05,919
single strip of tape holding these on. It's good tape, but that's 16 ports

290
00:22:03,679 --> 00:22:12,799
worth of stress. We're at 100 devices right now. 100 devices. Let's go. I have to say my

291
00:22:09,360 --> 00:22:14,960
side much more organized.

292
00:22:12,799 --> 00:22:18,799
I did take the only rack though. Yeah.

293
00:22:16,640 --> 00:22:24,320
We have a mouse infestation. 104.

294
00:22:21,520 --> 00:22:29,679
Okay. Are any of these not lit up? Oh, that's that heated one. Yeah.

295
00:22:27,360 --> 00:22:33,360
Weirds me out, man. Oh crap. Something is depressed.

296
00:22:32,720 --> 00:22:39,919
Uh-oh. Oh, sorry. No, no, not that kind of depressed. Oh,

297
00:22:37,200 --> 00:22:42,880
are some of the ports not powered? Are some of them not powered on this side?

298
00:22:41,360 --> 00:22:46,480
Okay. No, they're definitely all powered away. Oh, okay. What are we up to now,

299
00:22:44,480 --> 00:22:52,640
Colin? Ah, 112. Oh, we're so close. 113. Come

300
00:22:50,880 --> 00:22:57,760
on. That didn't count. That also didn't

301
00:22:55,440 --> 00:23:04,240
count. Oh, we're down. We're down to 110.

302
00:22:59,280 --> 00:23:06,480
Okay. What about this one? Oh no. Oh no.

303
00:23:04,240 --> 00:23:11,440
Oh, I just saw keyboard lose power. I wonder if this is more of a driver

304
00:23:08,960 --> 00:23:17,039
level limit just trying to manage all of these flipping. What does our CPU usage

305
00:23:14,240 --> 00:23:22,200
look like? Look at my cursor now. Just hold on a gosh darn second

306
00:23:19,200 --> 00:23:22,200
here.

307
00:23:23,760 --> 00:23:31,120
Okay, it's not exactly a super powerful CPU.

308
00:23:28,000 --> 00:23:35,039
It's only a quad core, but

309
00:23:31,120 --> 00:23:38,000
we were pulling 60% when I opened this

310
00:23:35,039 --> 00:23:44,480
and it's sitting at 30 40% [music] now, just doing nothing. While I'm

311
00:23:41,360 --> 00:23:47,200
disappointed that we couldn't get to 127

312
00:23:44,480 --> 00:23:51,520
concurrent devices, we learned a lot along the way. And in fact, I have had

313
00:23:49,600 --> 00:23:55,280
multiple times in the past when I've run into issues that would have been caused

314
00:23:53,039 --> 00:24:00,080
by these kinds of topology limitations that just I didn't understand in the

315
00:23:58,080 --> 00:24:04,291
past [music] and now I will. So, the main things to take away here are that

316
00:24:02,240 --> 00:24:09,200
if you're using a hub, you're going to [music] want to connect that directly to

317
00:24:06,559 --> 00:24:14,159
the root controller. And if you're using an unpowered hub, hey, it might [music]

318
00:24:12,320 --> 00:24:18,080
be running out of spec. So, make sure you're only plugging in low power

319
00:24:15,600 --> 00:24:22,520
devices or get yourself a powered hub. We're down to 99, guys.

320
00:24:23,840 --> 00:24:28,880
I think she can't take it anymore.

321
00:24:27,039 --> 00:24:34,320
If you guys enjoyed this video, maybe check out the one where we oh connected

322
00:24:31,679 --> 00:24:38,799
as many PCIe risers as we could to see what would happen. You actually [music]

323
00:24:35,760 --> 00:24:38,799
ended up getting really
