OcuLink eGPU works with the Dual M.2 expansion bay module

Well, why wouldn’t it really, but I was curious.

I pre-ordered Josh Cook’s OcuLink expansion module, and wanted to have something to test it when it arrives, but didn’t want to invest too much money before I know the solution works and suits me, so I ordered these parts:

Once the dual M.2 PCB from Framework went on sale, I got it as well, and stuck the M.2 to OcuLink 4i adapter into it with the OcuLink port sticking out the back. The thickness of M.2 PCB was too high for the included retention screws, so I had to file down the PCB at the retention screw location a lil bit, checking that I didn’t short any layers. (Be sure to also do the filing at a different location than your laptop because you’ll produce a lot of fine copper dust and you don’t want it getting into your laptop. Wipe the PCB after filing with a cloth damp with alcohol as well.)

To make the eGPU appear in the device manager I had to enable power to the GPU via the switch on the OcuLink 4i to PCIe board couple seconds before pressing the laptops power button.

  • Then I downloaded latest Nvidia drivers, installed them
  • Restarted to see the eGPU showing error 43 in device manager
  • Ran the error 43 fix script

And that’s it, the GPU outputs to my 4k60 screen no problem.

I didn’t run any performance benchmarks, if anyone’s curious of any numbers, I can do this. But I suspect it’s going to be similar to prior benchmarks of people attaching the eGPU directly to the M.2 slot on the motherboard (see the whole thread there!).

I also did this with a PCIe gen3 GPU, and I don’t have any gen4 devices to test, unfortunately, so can’t tell how good it would be at negotiating higher link speeds.

Since the M.2 to OcuLink adapter I linked even has retention screw holes, I can see it being possible to 3D-print a holder for it that would make the port flush with the laptop’s rear wall and would look quite decent.

Photos:

Testing how fully internal connector could look like:

Cable is probably not flat enough, and it couldn’t be situated like that. It’s not bendable too much, but I would try forming it into a shape that fits next.

8 Likes

Excellent.
At the height that the M.2 adapter PCB sits at, would an oculink port mounted on that PCB be clear to be plugged into though the opening in the back?
I’m thinking of an adapter in this style, that they make to fit specific laptops


Only, of course, with the oculink port rotated and facing the back.

Or thinking about it more, perhaps the port could fit to the left side of the backplate. With the port mounted upside down to the bottom of a custom M.2 adapter. Seems there could be just enough room there.
Something like this:

1 Like

Did you try to rotate the OcuLink-connector of the adapter by 180 degrees?
Maybe it could fit that way…
Also, I guess, the 10cm variant of the adapter would be more practical in this case.

What speed difference do people get between usb4 / thunderbolt. And oculink?

Has anyone got a speed test result for say, memory transfer between host and gpu?

Theory:

  1. USB 4. 40Gbps, with overheads results in about 32Gbps data rate bandwidth.
  2. oculink 4 lane: PCIe gen 4, 16Gbps data per lane, giving a total of 64Gbps data rate.

So, in theory oculink 4 lane might be twice as fast as usb 4?

Yep, this kind of PCB should be possible.

When holding the board with OcuLink port at the same level as the SSD in M.2 port, it looks like the port would need to be mounted upside-down as there’s more clearance that way.


Looking at this picture some more, I think some filing of the lower bezel might be required as the port is too thick to fully be visible.

You can see also that the port would have to sit lower than the base PCB, so a shape like this is the most likely to work:


Although a port there would be pretty wobbly and might require additional retention.

Would have been neater if there wasn’t any PCB where the Framework logo is (marked in red)


Well, maybe an idea for a second revision! Or something @Josh_Cook could address in his design :slight_smile:

Could illustrate? I’m not sure I’m getting this fully, sorry

Oooh, nice, thank you, I’ll try that at some point.

1 Like

You did that in the first picture of your last post.
Basically, I meant to use the Oculink connector upside down to avoid the pcb of the Framework Dual M.2 Adapter to get in the way of mounting the cable connector.

Btw, as I’m not a hardcore gamer, I wonder, if the exposed PCIe slot could also be used with other PCIe cards than dGPUs. Never seen anyone trying that yet…

1 Like

If you used a single pcb that fills both m.2 slots, could you get pcie 8x lane output? I.e. no 2 off 4lane, but a normal 8 lane pcie?

Josh_Cook answered that here.

1 Like

Trying to understand what Josh said, that you refer to about.
I think his answer means yes, having a single pcb plug into both m.2 slots will support 8 lanes and not 2x 4 lanes.

Could you demel the Framework label off in good red shirt Jeff approach ?

Should totally work with anything PCIe, not only GPUs. When I just got a Thurnderbolt 3 eGPU box, I tried storage and network controllers in it and they all worked. Since this is just raw PCIe, other cards should do too here.

Although I remember seeing somewhere that the particular board with the PCIe connector that I use might have not routed the 3.3V rail from the power supply connector to the PCIe connector, so even though 3.3V is required by PCIe spec, it’s missing and the cards that require it will not work. Can be solved by using a better adapter, though

Nice idea! Would depend on whether there are any signaling traces on that part of the PCB. I’d guess not cause everything seems to be rather on the left side. So indeed, you would probably be able to shave that part off. Only problem, of course, is that trimming PCBs is not an easy thing to do because simple methods tend to create connections between layers.

Yes, but the dual M.2 board must support it - i.e. tell CPU to not bifurcate if it detects this special dial-M.2 PCB inserted. Framework’s obviously was developed without such a consideration.

There should be no need. The OcuLink port can just go on the left side.


Mockup with OcuLink 8i port to the left side on a dual 2242 M.2 adapter PCB. Made in Kicad, so actual size. In reality the OcuLink port would be on the underside of the PCB.

If it works i’ll need one :grin:

1 Like

Both my 3D printing and PCB design skills are at zero right now. I tried doing something in KiCAD, but got quickly intimidated by it. I’ll have to invest quite a bit of time to get better at both, and truth is, I unfortunately have higher-priority things in my life for the foreseeable future.

If someone in Germany wants to design an M.2 to OcuLink 4i board specific to the Dual M.2 module (i.e. something like in one of the mockups above), I can loan you the whole thing (expansion bay shell with dual M.2 board installed, a working set of M.2->OcuLink 4i adapter, OcuLink 4i cable and OcuLink 4i → PCIe x16 eGPU board, you’ll need to have the GPU interposer, an ATX PSU and a desktop GPU) for up to a year, will pay shipping both ways and will buy couple of boards from you at full price, if the project is successful. DM me, if you’re interested.

2 Likes