Hi, I took a look at the Expansion Card GitHub repo and made a little physical mockup of a 2-port USB-C adapter. I played around with dual USB-A and concluded it would be an incredibly tight squeeze, and even if I could jam them both in, I’d be very concerned about the spacing between the two ports. But, two USB-C ports seem to fit fine.
I noticed a another comment here where someone said that the silicon doesn’t exist to support such a device, but I’m not sure exactly why that is, or what the implied limitations are? For all intents and purposes, this would just be a regular 2-port USB hub, right? Unless I’m missing something important, which is totally possible!
Anyway, I’d probably go about implementing a hub like this using something along the lines of a Microchip USB5742 chip, which supports 1 upstream and 2 downstream ports at both USB 3 and USB 2 speeds, as well as PD (power delivery). It doesn’t even look like a separate microcontroller would be required, just a crystal and some passives. I’d bet there are similar USB hub ICs from other manufacturers too (eg. TI, etc.). But, before I actually start working on something like this, perhaps someone can give it a sanity check? Why wouldn’t this kind of solution work?
Here are some renders of my mockup:
- PCB is 0.8 mm thickness
- USB plug is Molex 1054440001
- USB ports are TE 2129691-1
Hi Daniel, that looks great! Doing this as a two port hub is totally doable. Where it starts to get hard (or maybe impossible currently) is preserving DisplayPort Alt Mode or power input.
Ohhh, I see. Yeah, I can see how DisplayPort, charging, or other specs like Thunderbolt could be much more complicated and/or space hungry, and wouldn’t translate well through a regular USB hub like this.
Would it make sense to move ahead with this anyway, with the consideration that these ports would only support regular USB functions (eg. USB 2, USB 3, and PD)?
It’s worth trying it and checking what the interest level is from folks in the community here (as a proxy for the general Framework audience).
One recommendation on the mechanical design. To keep the look clean when it’s inserted into the laptop, it’s worth keeping the “front” face unbroken and putting the part break on the USB plug hole instead.
Cool. Well, I’ll see if anyone else here chimes in!
I agree about the part break. I was mostly trying to go with the flow of the models you guys posted here: https://github.com/FrameworkComputer/ExpansionCards/tree/main/Mechanical/Printable/3D
But it would be pretty trivial to hide the seam in the back instead.
Just an idea, could having one port fully featured and the other charge only work space wise on the PCB?
If you mean: One port is fully featured, and the other can only be used to charge other devices, then the answer is probably yes, since the fully-featured port would be just a pass-through, and the charge-only port would be basically isolated from the computer, except for receiving power. It would need its own PD chip, but there’d be no need for a hub.
If you mean: One port is fully featured, and the other can only be used to charge the laptop, then the answer is probably no, since the charge-only port would still need to negotiate with the laptop in order to charge the battery, and I imagine that’s all done via USB, so you’d probably need the whole hub solution anyway, and therefore being “fully featured” on one port would probably be reasonably similar to being “fully featured” on both of them.
I don’t have any actual knowledge of the workings of the laptop though, so this is all speculation.
@nrp What is the significance of this indented ridge? From the product photos, it doesn’t look like it slides underneath anything, so is it strictly necessary?
This looks pretty dope. You can count me as interested. I’m not a hardware person, so I couldn’t contribute much, but a USB-C-PD + a USB-A on the same card would be the mouse and charger all on the same card (even if the latter were only USB 2). Looking again though, I’m not sure it has even the surface area for ports, let alone electronics.
This could certainly be a useful card. There are many lower bandwidth applications for USB connections that don’t require all the speed available.
Worth a consideration, even with limitations.
Question for the OP, have done measurements for a USB-A and USB-C combination card?
USB-A + USB-C would still be really tight and would probably require clipping off some of the jacks’ solder lugs before installation in order to fit them both on the same board. Right now, even with just two USB-C jacks, they’d be sharing several lug holes between them.
Thank you for considering this. That still leaves open the possibility for a double size module, taking both ports on one side, with a variety of ports, sharing the bandwidth available.
This would mean something hanging on the side of the laptop, for those that could use it, it would make sense.
@Daniel_Gilbert the ridge is a finger grip to make it easier to slide the card out of the system.
Hi @Daniel_Gilbert, Looks like a great start!
The show stopper for this specific hub part, is you need to support muxing of the SS signals to both sides of the type C port, otherwise you will only be able to plug in your device/cable in one direction, or add an external SS mux, which will probably not fit.
Microchip offers other parts that offer the hub+multiple type-C downstream ports. They seem to double up on the SS transceivers so two sets are used for each port An example is the 5826C.
You can see them parametric-search | Microchip Technology as the parts ending in “C”.
The other consideration for this is power and type-c signalling. You will need to split the input port power (max 15W) to the two downstream ports.
You could do this without PD protocol by using type C resistors on the two dfp ports by setting the RP resistor value for 1.5A or 900mA.
You should also consider the power draw of the hub itself, which is about 1W. So if you set both downstream ports to 1.5A and someone plugged in two high power devices, you will trip the over current sensor in the laptop. You could limit one of the ports to 900mA, or assume that people will not plug in two devices that both are high power.
Since you are looking at microchip parts, take a look at AN1953 section 3. For how type c signalling works without needing PD controllers.
Personally, I think this is a great idea even without passing through DP Alt Mode or power input. Other expansion cards can make use of that functionality, while this is being used for more mundane tasks like connecting to thumb drives/phones.
Check the official spec to see how big the plugs can be, and plan at least 1-2mm of additional space. Right now I’m worried that plugging in two cables won’t work as the plug’s moulding is quite a bit bigger than the connectors themselves.
Apart from that, as a USB only hub without alt modes, I can see this work. More functionality, as others have said, will be tricky.
Can anyone share “USB_C_Plug_Molex_105444” 3D Shape File Link for kiCad?
Even subject to the limitations that have been discussed here on what types of I/O can be managed over a double-port expansion card, I’d cast a vote in favor of double-USB-C and double-USB-A cards. Particularly in combination with the idea elsewhere for double-height cards (What new Expansion Card types do you want to see released? - #72 by matthew3), it could be pleasing to have the two slots on the back end of the computer filled with USB-Cx2 and USB-Ax2 that would also give the keyboard a bit of an upward tilt that I’ve found somewhat more comfortable to type on, probably because of the years of typing on regular desktop keyboards that have the little feet extended. Would also relax some of the spatial constraints, I imagine.
Another vote in favor of more USB ports, however limited they may be. Increased height modules acting as feet giving better airflow also seems very good to me.