Expansion Bay Module for Extension Cards

Thanks for the info!
I had another look myself and this is about the smallest RJ45 that I could easily get: https://docs.rs-online.com/d945/0900766b816e665c.pdf

It is still 10.65mm high, though with the top edge (the size of which is not given in the datasheet) subtracted, it might just be down to 8mm or so. That is still more then the cutout, but maybe it could just about work…
I think I have some generic PCB mount RJ45 connectors lying around, so I can take the expansion bay out of my Framework open the cutout and just hold the connector in there and try to plug a cable in. Ill try that this weekend and give an update here whether or not its possible to plug a network cable into a port through that cutout or not. In the end, thats the main thing that matters.

Well, youd have to remove the expansion bay, plug your dongle or whatever in and then put the expansion bay back into the laptop… Otherwise youd have to cut a hole in the bottom of the expansion bay and there would have to be a large enough cutout in the PCB to fit your dongle through…
But if you want to use an internal port for said dongle, you probably dont want to regularly remove it anyways, as then you would just use an external port…

1 Like

If I was confident enough, and used wireless stuff, I would make an expansion card board, and solder the chips from the dongles and an extra usb hub onto it. Then I would have an expansion card with usbc and multiple receivers.

Actually couldn’t we do this? Have a hub chip, and multiple radios you could program through an IDE instead of dongles, so you could have a community uploading open source software to put on these radios and work with any wireless accessory? They’re all in the same frequency approximately…

Anyway, yeah, you wouldn’t want to change them daily anyway, would you? So just integrate it, the other 3 are external cards. Assuming the hub is a 4 port.

In theory this would be doable, yes. In practice, not so much, at least not easily…
Many of these wireless devices use proprietary protocols for communication that are not open source, as the companies dont want their device to work with a dongle from some other company… In order to be able to do this you would therefore first have to reverse-engineer the protocol for every device you want to use, then implement the same protocol in your own software…

Yeah the USB IC has 4 ports, but Id probably make the internal dongle port just a USB 2.0 as there is a USB 2.0 interface already available on the interposer and I cant think of any dongle that would need the extra bandwidth of a 3.0 port…
Id rather have the 3.0 port available for something else. It could be either a fixed usb c port accessible from the back of the laptop or if I try to implement ethernet, that would also benefit from a usb 3 connection, as that has enough bandwidth for a gigabit ethernet port…

1 Like

i was imagining some of the smarter people in the community sniffing out the protocol by “simply” recording the communication while the device being used. then have a hub (similar to protonDB for games on linux) where they can update the settings needed to make the diy dongle (hub chip with the radios) mimic the original device.

it would be way complicated, and even the same device from the same manufacturer could have like an encryption or handshake difference…so nvm, i was just too enthusiastic…

i think a single extra usb c would be fine. you could use it as a dock connection(add EPR compatibility too and you have a single connector dock for use at home/at work) sure its not exactly in the same vein as the expansion card ethos, but even the GPU module has a fixed usbc. 3 extra cards is better than an empty bay anyway, and the C is just a cherry on top.

1 Like

So I didnt even need a RJ45 socket, I checked a RJ45 plug against the cutout and there is simply no way it would fit in there. It doesnt even fit with the latch completely pressed flat against the top of the plug. They simply made the cutout just a bit to small for that…

I also figured out that even a fixed USB C next to 3 extension card slots is going to be somewhat hard to do, because there are these mounting posts in the plastic, one of which would be exactly where the USB C would need to be…
It might still be possible though and Ill definitely try to make include that…

I was more thinking it was a one-time install when you get the shell… once the dongle is installed, you just insert the whole shell and “forget it”. Doesn’t need to be exposed in any way for later (except by removing the shell).

yeah that would work. but if you can fit a expansion card slot there, then that expansion card would be usable in other computers, too, should the need arise. i dont have an empty shell to check if its possible to fit a 4th card in it sideways or something… but if it IS possible, then you got more possibility than just dongles, say someone makes and LTE card, you can put that there, i want to get a LoRa card someday (i hope someone makes one XD) which could go there. maybe someone would be so crazy to create a woofer speaker in the shape of an expansion card… downward firing mini speaker XD

anyway. yeah. i htink a card slot hidden is a better idea, if possible…

1 Like

That’s been clear to me from the beginning. Hence the proposal of filing a small notch into the frame where the latch would go. The main body of the plug would fit through the slot, but I can’t tell yet if the space inside the module allows for installing of the socket without further modifications.

Its not just the small width of the latch, you would need to increase the height of the opening by at least 2 mm or so.
Apart from that, I can however also tell you that in order to fit a socket you would need to cut out probably min 5 mm or so and at that point the remaining plastic is awfully thin…
There is basically 0 space below the cutout.
Like if you look at the picture, the side where the latch is, is the bottom of the expansion bay and that like maybe half mm black plastic between the cutout and the silver/gray part is the entire height available on the inside or maybe even a bit more then that…

Well this was annoying to do…
But now I have a full footprint of the connector in KiCad!
Ill make a github repo tomorrow and publish the library files there.

If anyone from Framework is reading this, Id be happy to provide the files if you want to add them to the official github repo. :slight_smile:

1 Like

I have now also created the schematic symbols for the interposer, as well as a blank schematic and PCB for the expansion bay. These only have the interposer connector and the two fan connectors, for which I found suitable and readily available molex connectors.
The PCB also has the outline exactly according to the specifications in the official framework github repo and all mounting holes.

The schematic symbol for the interposer is split in two parts (the power and the data part) as those are already huge and will effectively need their own sheet in the schematic…

All of the above is now publicly available in a github repo I made.
I will include the schematics and board for this project in there as well, when I have something worth uploading…
As it stands right now anyone is free to use the contents of the github repo as a starting point for any expansion bay modules.


I had already made this, the kicad files are still up to date FYI

1 Like

Oh lol
Well I didnt know that that existed, so I redid it…
Now there are two places where one can get it, I guess. :slight_smile:

About the expansion bay module for extension cards:
I did start working on the schematic on the weekend and made some progress with that.
Im not anywhere near done yet though.
I also had a look at a rough board layout and discovered a few things:
When trying to put one USB C directly accessible to the back, that may end up conflicting with one of the mounting posts, though it is possible that the PCB could just ‘sit’ on top of the mounting post, not using it.
It will be very hard or near impossible even, to make something to lock the center of the three extension cards in, as there will only be a 1mm gap between the extension cards. This also means that there probably wont be these rails that the extension cards slide on, but I dont think that that will be much of a problem, as they have like maybe half a millimeter room vertically anyways, so wouldnt need those rails to guide them or hold them vertically. To bridge the 1mm gap between extension cards, a small 3D-printed piece of plastic can be used to take care of horizontal alignment.

The internal USB A for dongles is another potential problem, as there is very little space left inside the expansion bay when there are 3 extension cards in it. It looks like the dongle could only have about max 3cm length (including the USB connector) to fit. There is not much I can do there, as the PCB will need to have a cutout where the dongle will sit due to the height constraints of the expansion bay. This cutout then is very limited in size as I will need to be able to route all the traces for the PCIE and the USB C ports around it and the physical strength of the PCB also needs to be taken into account, as a giant hole in the middle of the PCB could cause it to bend and flex and potentially even crack or break when inserting and removing extension cards, which obviously would be a very bad thing.

Update for this project:
Im still working on the schematics and searching for a couple parts.
I have a good part of the schematics done now. The main part of the schematic that is still missing is most of the “USB PD” sheet which will contain everything to do with the external USB C that will be directly accessible at the back of the module. The main reason that this is still missing is that I have not yet found a suitable MUX for the data lines, as it has to be able to work up to at least 5GHz, which is not exactly easy to find…

One thing that I found out is that this USB C PD connector will, at least for the time being, not be able to be used as a power input to charge the laptop. The reason for this is that in order to do so, the USB PD controller would need to communicate with the Frameworks EC to negotiate the power delivery into the laptop and this functionality is currently not implemented in the EC. Therefore charging of the laptop via a connector on the expansion bay is currently not possible and will only be possible after a firmware update for the EC from Framework and implementation of the correct protocol in the expansion bay.
I will include the serial data connection between the EC and the PD controller in the schematic and board, so that it would be possible to implement charging of the laptop via the port in the expansion bay in the future.

And finally: The current version of the schematics is now on github in the same repository I made 2 weeks ago, which is linked in one of my posts above!
Feel free to take a look, make suggestions, etc.
Ill get back to you all when I have more progress to report :slight_smile:


Yeah I saw that as well a few days ago, but the socket not fitting wasnt the biggest problem. The biggest problem is that the RJ45 plug thats on the end of the cable doesnt fit through the cutout in the expansion bay shell. That is even acknowledged in that thread and the person that posted this is talking about making a custom expansion bay shell.

For this particular project I have pretty much decided to drop the ethernet idea, as with 3 extension cards and another USB C thats directly accessible from the back there isnt any space for any ethernet connector anyways…
When I was doing a bit of research on this, I did however find that as it turns out, someone DID make a smaller connector for ethernet. Its called ix-industrial and is meant for industrial and automotive applications, but the connectors seem to be relatively readily available and as far as I can tell it should be pretty easy and straight forward to make a cable that is ix-industrial on one end and RJ45 on the other.
Im pretty sure one of those ix-industrial connectors would fit into a regular size extension card btw. So maybe the way to go is for someone to make an extension card with this connector.
Here is a link to the manufatureres page for anyone thats interested in this:

1 Like