I added links to both of these in the Readme. Once they are validated in a prototype, we can bring them into the main repository: ExpansionBay/Electrical/README.md at main · FrameworkComputer/ExpansionBay · GitHub
Amazing ideas… is someone developing something for the expansion bay? Or were these just thoughts on what you could do.
Anyways, I would be interested in buying, if someone wants to build it. ![]()
for me it’s mainly interesting to either have expansion card slots or fixed usb C slots.
Any news on this? I too would like to have some more I/O on the FW16
I want an expansion bay module that has:
- 1x PCIe gen4 x4 M.2 M-key for NVME SSD
- 1x USB-A Internal connector for dongles
- 3x Expansion Card Slots that support power delivery
As far as I can tell these are all within size/physical restraints and should be feasible. If each USB-C (expansion card) slot has it’s own PCIe Gen4 lane, it should be just shy of USB 4 speeds and quite a bit faster than USB 3.2. Or if you hooked up all 4 USBs (3x Expansion Cards + 1x Internal USB A) to one controller, it could achieve higher individual speeds if you’re only using 1-2 ports at a time.
Sorry for my long hiatus here.
To answer a few questions: Yes, this is an actual project I was/am working on not just ideas. I started making the schematic and pcb layout for this last year.
I ultimately stopped working on it as I learned that one of the main things I wanted this to be capable of (charging and display output on a USB C) was not possible back then and afaik is still not possible, because the Embedded Controller (EC) of the mainboard that is responsible for routing power and video signals currently does not support communication with the expansion bay.
Additionally I wasnt really able to find some devices that would be required. Mainly the switching chip needed for any DP Alt Mode capabilities.
I might pick this project up again now with the scope going down to “just” regular IO for the expansion card slots.
It would not be possible to do all of this in one expansion bay, unless you would have the expansion cards hanging out of the back or a custom, much larger expansion bay shell.
With an expansion card and the interposer in, there are only a few mm (I think its around 10 to 15mm) of space left, which is not even close to enough for an M.2 and I dont think there is enough vertical space to put an M.2 above expansion cards. Especially not with it having to be able to slide in or out of the laptop.
SFP would possibly barely fit height-wise, but they are wayyy to long. Like an SFP (not SFP+, which is even longer) slot is so long that it practically takes up the entire size of the expansion bay probably interfering with the interposer or fan connectors already, let alone leave enough space to get PCB traces routed…
So I did some more research.
It appears that framework has still not implemented support for PD in the expansion bay into the EC, which kind of kills that option for the time being.
However, I have found some other interesting information:
- The Expansion Bay connector is PCIe Gen 4 and can be configured as 8x1, 4x1 or 4x2. The GPU module uses 8x1, the dual m.2 module uses 4x2.
- The 4 port USB 3.0 host controller I found that this would be designed around just uses one PCIe lane. This leaves the possibility of a second device using another 4 PCIe lanes if configured as 4x2
- A new discorvery from me just now is that OcuLink has 2 connectors: A 8x version and a 4x version. Unfortunately I cant access the official standard as apparently only member companies of PCI SIG can do so. If anyone here could get access to the official standards that would be great.
With this I have some new ideas.
Here is what I have already decided on for this project:
- 3 Expansion Card slots operating on USB 3.0 - Yes, 3.0. I would love to go with 3.2 or even 4, but as far as I can tell there are simply no host controllers available that I can easily source in low quantities and from within europe. Mouser or DigiKey might have something (I havent checked), but I have had issues with both due to them shipping from the US and me living in germany, so Im only considering parts that would be shipped from within europe
- If possible no or minimal alterations to the base/empty expansion bay shell required (no custom shell)
- 1 internal USB 2.0 Type A for a small dongle
Here are some new ideas I have now:
- Option 1:
- A internal type C or something else internal that makes use of a USB 3 connection
- Cellular modem with internal SIM slot?
- Internal SD-Card slot?
- It MAY just barely be possible to put a micro-SD card slot directly under the PCB (I need to verify some measurements)
- There is NOT enough space for a second dongle, but using the USB 3 for the dongle connector and the USB 2 for something else would be a possibility
- Suggestions are welcome!
- Add a external OcuLink connector that connects to the other 4 PCIe lanes available. This could be used to connect a eGPU, OcuLink dock or basically any PCIe device.
- A internal type C or something else internal that makes use of a USB 3 connection
- Option 2:
- Stay with the original idea of a fixed type C port next to the expansion cards. This port would however be “just” a regular type C without PD or DP Alt Mode support
- The extra 4 PCIe lanes would be wasted unless anyone can think of something small, requiring minimal circuitry that would could be useful and would connect to PCIe. Suggestions for this are also welcome!
I am leaning towards option 1, as I like the idea of basically squeezing the most out of the available connections and a OcuLink port just opens up so many possibilities.
based on the announcement from https://frame.work/pl/en/blog/introducing-the-new-framework-laptop-16-with-nvidia it should be possible to have usb power input over expansion bay (quote from the page)
The GeForce RTX 5070 Laptop GPU now enables display output and power input over the rear USB-C port.
If I good remember we may need to wait on bios v3.7 which was mention in github issue related issue with locking CPU in 500MHz limit and then we get new EC CPU frequency stuck at low values after suspend/resume on firmware 3.06 · Issue #91 · FrameworkComputer/SoftwareFirmwareIssueTracker · GitHub
Yes we need to wait for an update to the EC that enables the capability for this and for documentation from Framework on how to access this capability.
Im hoping that it will be made possible in the somewhat near future and I will design the PCB with this in mind, possibly with a few solder bridges or similar allowing one of the 3 expansion card slots to be configured for PD with a few extra components added and a change to the configuration in the EEPROM.
Hopefully we can also get the schematics for the RTX 5070 board, so we can use them as a reference.
Ultimately I think having a OcuLink port in the back will be a lot more useful, especially in the future when more OcuLink devices get on the market then an extra fixed USB C port. As I said, PD could still be implemented via one of the expansion card slots.
I spent a little bit of time today working on the physical aspect of this project and have now designed a first prototype/concept for a rail and locking mechanism for the expansion cards.
The concept is that the part on the left will sit on the PCB and will be screwed down. The long thing to the right is the sort of rail that slides into the slot in the side of the expansion card. On the left there is a small separate part which can move up and down in this kind of holder. This would be moved by a ideally captive screw that would accessible from the bottom of the laptop. When moved all the way up, the expansion card(s) can be removed. When moved all the way down, they are locked in place, as the wider end of the part engages with the little catch in the expansion card similarly to the way the locking works in the laptop itself.
The version further in the back in the screenshot could be created out of eg stamped and bent sheet metal, which would be pretty durable. The version in the front is suitable for 3d printing, though I am not sure if the small locking part would be strong enough when 3d printed as the entire force of the connectors being plugged in and out on the expansion card essentially gets transferred to a small 1mm x 0.5mm piece. The piece cant be any bigger as I can only have a 1mm gap between expansion cards to make them fit…
Ill try to 3d print a few test parts tomorrow and see how it works.
This is what my current WIP board layout looks like with the OcuLink connector in the top right.
If Framework had just put that mounting hole 10mm further back, it might be possible to work around it, but like this idk…
So I was a little annoyed by this leftover USB 3 connection that I couldnt really find a use for (I guess OCD or perfectionism in me doesnt like unused potential) and was looking if I could move things around just a little bit here or there and see what I could do with any extra space I could possibly find…
IF I basically get rid of the other mounting post in the top left corner too and move everything to the right a little bit I can get around 10mm space, which would be enough for a Type C connector.
I was kind of hoping that I would be able to fit something Ethernet in (obv as pointed out before, a actual RJ 45 is significantly too big to fit) and I was looking at the other smaller connector I had found, but that is still not quite going to fit. (The connector itself including pins is around 9mm high and like 10mm wide, but there is only like 6.5mm of height available)
Im kind of really confused that apparently noone has thought of making a properly small alternative to whats probably the worlds most common connector…
Like a good USB Type C is way smaller and higher bandwidth then a Cat 6 RJ45, but for ethernet RJ45 is in most cases still the smallest connector for the job…
Lenovo appears to have come up with something that could fit the bill, but afaik it seems to be completely proprietary…
The only network connector that I could find so far that would fit without much issues would be a receptical for a single optical fiber, but I dont think that is really useful or makes sense and I definitely lack the knowledge to design a complete optical transceiver… lol
I guess unless I find something that just about fits, the option now is going to be mounting post or fixed type C…
Another good idea for that last usb port would be an internal A port somewhere inside for a dongle. If possible, give it like 2 inches of space so it can accommodate one of those long headset dongles. Of course, all the signal might be blocked by the metal case of the laptop…
I am including a internal USB 2 Type A for dongles although I am not sure how useful it will be as the dongle cannot be more then about 1.5mm thicker then the USB plug in total otherwise it wont fit…
There is a USB 2.0 port available on the interposer which I think makes more sense for a dongle as Im not really aware of any dongles that would benefit or need the USB 3 speeds…
The 2 inches of space should be doable.
Hmm… Id love to do a poll right now, but I dont think this forum has support for polls…
To clarify, this would be in addition to 3 expansion card slots, 1 OcuLink port and 1 internal USB 2.0 Type A for a dongle.
What does everyone think I should do in that corner?
- External USB Type C
- External Ethernet in the form of a ix industrial connector
- Some other external connector (must be less then 10mm wide and less then 7.5mm high incl PCB) and if so which one?
- No external connector and use the USB 3.0 connection internally
- If this, then what should it be used for? A USB 2.0 dongle connector is already planned and there is not enough space for another one. So the spare USB 3 connection would be used for something else.
Ill check this thread in 12+ hours and see what I responses are here.
It should be found here, by clicking the plus button, and scrolling down.
If that’s not present, are you on desktop or mobile? What browser?
If you’re really going for feature creep: expose the Display Port (probably miniDP since it’s space constrained).
I was thinking of the space available for the extended GPU card, not the other one
I see the poll feature now. I guess I just overlooked it before. Thanks for the info ![]()
A mini DP socket would fit in that corner, yeah. Its worth thinking about. Ideally Id like to find a suitable data mux IC and make the DP input available via DP Alt Mode on one of the type C connectors, but if I continue to have trouble finding a suitable mux that might be an option to consider.
Be aware that the displayport link on the expansion bay is only a input for the laptops display though and cannot be used as an output.
Ah, yes in the larger case for the GPU module there would be enough space for an SSD in addition to the expansion cards.
I wonder if those would have enough space for a proper RJ45 in the back?


