OcuLink Expansion Bay Module

All of the products I design and sell will be available both assembled and bare PCBs so this will apply to the OcuLink board.

9 Likes

@Josh_Cook You mentioned you also had a dock of sorts planned? Then I’d assume you can offer that in a bundle /w cable because currently no matter how low the expansion bay card gets, you’d still have to buy the rest which is all marked up individually.
E.g. the 8i to 16x is 55€, the cable (both 8i and dual 4i) is 25-30€.

After doing some calculations the cost of even doing just a batch of 50 with assembly by jlcpcb is much lower (expansion bay cards <300€, cables <800€, PCI-E dock <500€), so a rough raw cost of ~30€. And that’s just with a batch of 50, I assume a lot more people will want this. So if you manage to offer the PCBs + cables for <100€ (+ potential brackets), it makes little sense for me to continue with the dual 4i.

Btw one slight concern is that the only 8i ports I could find are amphenols (even the burndy branded ones), and amphenol only makes internal 8i connectors, which are only rated for 50 insertion cycles. Doubt they’d fail soon after, but still

2 Likes

Amphenol isn’t the only maker of Oculink connectors.

1 Like

If there are plans to design a dock, I would be thankful if you could make a reference in this thread in due course.

I’m still considering what to do. I DO want an open source design, and I doubt Josh will release his. On the other hand, an open source design doesn’t help much when it’s exceedingly expensive to manufacture. The dual 4i design IS quite expensive, jlcpcb has each 4i port listed as 4$, whereas the single 8i can be installed for just 1.8$. In other words, a 8i board can be made for <6$, a dual 4i for more like 12$. Plus, if you’re goal is an 8i link to a dock anyway, the Y-split cable is more expensive.

So there’s two options for me:
a) I test the dual 4i and maybe make a small batch for people who want a 4i over a 8i for various reasons - e.g. they already have a 4i dock, or wouldn’t mind the 40€ 4i bundle that are common for the Win Max, etc. Price hopefully 20-30€+shipping
b) I try to make an open-source 8i design that CAN be mass-manufactured more easily. For that, 6layer is fine so even I’d be ok doing it at this point. I’d also be fine doing a corresponding 8i dock. But at that point I would compete with Josh just for the principle of having an open source version.

So I’m a bit conflicted, and would like to hear your opinions on this.

  1. Would you buy a dual 4i version when the 8i bundle is likely cheaper?
  2. Would you prefer a single 4i design + NVMe SSD slot and/or external battery?
  3. How much value do you give an open source design of the 8i (+ dock), allowing for others to do their own such modifications?

Also maybe Josh can give some input on whether he’ll open source his design once he starts selling. I just think it’d be a shame to not have an actually usable open source version, since it allows for other people to get their priorities integrated into the design (and for others to use, too).

The Expansion Bay is perfect for custom use, and each person will want their own combination of features that fits them just right. E.g. you could add a high quality USB2 audio interface in addition to OcuLink, you have all the space you’d need in there, and this would only EVER be done with an open source design. So I am really tempted to do a proper 8i open source version just for those possibilities. I certainly invested enough time learning all this to make this an easy choice if the demand for it is there.

5 Likes

Well, this is just one opinion, but for me the clear preference is maximum bandwith and future proofing, so if I understand correctly that would be one 8i cable (+ dock). Extra SSD is nice, for sure, but I value FPS most ;). Regarding the dock, my main priority would be that it can incorporate a SFX power supply in a nice way, instead of having a small integrated power supply.

So to answer, only because of these personal reasons, and as one opinion:

  1. No.
  2. No.
  3. Well, a lot, because I might get an even more tailored version in the longer term.

PS: I might be mistaken to think that one 8i cable is most future proof. I simply don’t know a lot about specificities of oculink.

2 Likes

So atm, i have no real plan when to buy the framework laptop, so probably i’m not important for this question.

But what i can say is: If you would make a dock (or a bundle with an existing dock), then it would make no sense to use a 2x 4i Oculink port, because when the dock already is 8i, why going then for 2x 4i?

So you can use 4i adapter with other laptops.

The utility of this is quite situational, but at the least this broadens the maker’s market beyond Framework customers.

How complex would it be to have a switch to share the bandwidth between several devices?
For example to have an OcuLink 8i interface AND one or two NVMe SSD interfaces so that all can work at the same time and each can have the whole bandwidth when the others are not in use?

Personally, I do not see the need to have a battery there as the space is too limited to make a big difference and having a laptop with too big a battery could cause issues when traveling on a plane.
However I think the space should be used in an efficient way and since the FW16 does not have a second full size NVMe interface, the expansion bay could be used for that.

Dual 4i has the same bandwidth, 8i is just neater if you only ever want to use it for this one dock. If a new motherboard ever used PCIe Gen 5, then as long as the traces had enough headroom, it might be fine. But I doubt my 4 layer version would be really fine, perhaps we already have to move into a more controlled 6 or 8 layer board, idk. Would warrant some research.

That is always the goal, all dock PCBs I’ve seen are designed for this, but how well you can mount them together… well, you can do it cheaply yourself, or get a sheet metal mount (maybe even a preexisting one if we’re clever)

So in the end, you’d find an open source 8i connector valuable, I agree.

Dual 4i should already support splitting between two external devices, and IF you made absolutely sure to not use the dual-use 4i port when an SSD is installed, it might already work. But that’s not worth the risk of potentially damaging devices if you forget. I get the value of a switchable SSD, would very much like that. For a proper implementation (a PCIe MUX, cheap enough) it wouldn’t matter whether the interface is dual 4i or 8i in the end.
So I guess you could connect two external GPUs with the dual 4i already, that’s a teensy advantage.

I believe the batteries count separately, so you’d be fine on the airplane. Especially if you can detach it. I do believe even a 20-30% increase in battery capacity would be beneficial to some people, but even that is stretching it.

Sadly I doubt that’s going to happen, even standalone. Height of 5mm limits it to all but the thinnest drives (and even without the PCB you may just get 1-2mm more), length of 90mm at the low end of drives is also just barely doable (107mm on the board, but need space for the connector), but width of 70mm is just not going to fit. If you’re lucky you have 60mm.

1 Like

Is the empty shell the only expansion bay available “empty” from framework ?

If we need more space the expansion bay framework have for their GPU might also be available empty meaning with the fans but no GPU inside. This would provide more headroom and more width.
Having bigger fans will not hurt as they will spin slower and keep the laptop cooler.

Also a PCB has two sides so we can have the components on one side and the SSD on the other.
I like the idea of having a PCIe MUX because the 8i bandwidth should be available and used by something even if the eGPU is not connected.

If the MUX is able to handle it and space is available, I could use a couple of USB-A ports so that my mouse dongle can be kept out of the way in the back of the laptop.

Doubt it unless it sticks out the back. Only possibility is if it sticks out of the back a big - also has additional “benefit” of being able to swap it out easier. Not sure it’s hot-swappable

No need for a MUX for a few USB-A ports, there is a USB 2 connection and it’s easy to add a USB hub circuit to expose a few, space wise maybe only 2 or 3. If you want USB3, ofc you’d need to have a proper USB controller using the PCIe Lanes. I very much like the idea of having all low-speed ports on the bay and reserve the side ports for actual high-speed stuff that needs the full USB3/4 bandwidth (assuming you can’t / don’t want to use a dock to get many USB2s out of one side port)

I think my dream setup would be an open source OcuLink 8i + DP with a switchable M.2 NVMe SSD for the upper lanes and 2-3 USB2 ports. I’d only be able to do this with quite a bit further research, but it would make a lot of sense, so I just might.

4 Likes

The expansion bay chassis they use for the GPU is slightly thicker and does stick out of the back a bit. I am suggesting using the same chassis part … only without the GPU board inside.
I know it is not hot swappable.
It would provide slightly more space than the empty expansion bay that framework also offer.

2 Likes

Just stumbled across this. Super excited to see people already working on the challenge, but I have one major concern.

Why in the world is no one using retimers?

By hardwiring the occulink connector to the motherboard you are at serious risk of an ESD event destroying the Ryzen APU. You could just be trying to plug in an occulink cable and it could fry the APU with a jolt right to the silicon.

A retimer not only conditions the signal (and helps dramatically with signal integrity over external cables doing high speed signaling), it serves as a 2 fold ESD barrier to protect the APU. The right retimers are already ESD hardened, and if they do get damaged it typically results in needing to replace a few dollar part as opposed to a brand new Ryzen.

For the love of all that is good, please consider doing this correct before tossing a design to the wild.

4 Likes

That would need the bigger expansion buy but empty. So and you can not buy the bigger expansion bay but empty. So that would mean you would have to 3D print it.

That would make it unusable for most people, because they don’t want to use an ugly 3D printed expansion bay. Also it would make it more expensiv.

But even if there would be an option to buy an empty big expansion bay, there would still be the problem, that all have to buy the bigger one then. So its bulkier and therefore i guess a lot people don’t want it bulkier only for a bigger battery.

This would only work, if it would be compatible to both expansion bays (so if you could still buy the Oculink-part alone without being forced to buy the battery). Then it would work. But then the electrical design for the battery is still not made and also there is no battery inside, when the electrical design is made. So a lot of work.

I’m not a professional designer - but luckily someone brought that up before in this thread. I also considered this and brought this up to the framework team early on (issue, though not quite focussed on ESD yet). But yes, in the end I do not know for sure whether AC decoupling capacitors are enough (as OcuLink spec asks for) or if retimers are the better option. If retimers aren’t too expensive, that might be a no-brainer. Especially after that interposer cable.
EDIT: They are expensive afaik. So likely, no. AC Decoupling Caps should suffice, distance isn’t too long, and as long as the interposer doesn’t add too much intra-pair skew, it should be fine. If you disagree and have a reason, please enlighten me. But I’m not going to add a 20$+ part to a 6-12$ design without a solid reason. Will make production upfront cost too high for future modifications to be manufactured in low-ish quantities.

PS: As for not throwing out unfinished designs, you are right, I even threw out my very first one that is definitely wrong. I did add warnings to not build it yet ofc. The reason I did is because I want this to be a more open discussion, so anybody could drop in and verify / extend the design early on. Partly because I am not an electronical engineer (just a programmer), and partly because I believe others might already want to design their own modification or completely original expansion bay cards, and an existing open source design might give them the starting point needed.

1 Like

Yea, PCIe really needs a retimer especially as we don’t know how long the cables will be, ideal setup will be AC coupling caps, ESD protection and retimer, which I’m implementing in my design. Paying more for a design is better than spending 6-800 (or more) on a new mainboard.

5 Likes

If you’re going for the full setup with a retimer, I really appreciate that, but I’ll try my design without first. If it is needed, then at least I tried. Ofc, ESD protections will be needed, but that is independant from needing expensive retimers or redrivers.

My reasoning being:
Afaik, AC coupling caps already protect against ESD on the differential lanes at least.
I do not know if a PCIe driver on a laptop chip would be comparable, but at least on desktop motherboards the signal strength is rarely a problem, with multiple sequential risers being no problem (though I don’t think the eye diagram would look good). So I suspect desktop GPUs are going to be fine. Ontop of that, the OCuLink spec itself doesn’t even mention redrivers, only AC decoupling caps, if that has any weight. Worst case, at most a redriver is needed, not a retimer.
Of course this all becomes quite a bit more difficult once you also consider the interposer, which doesn’t even use the correct impedances for DisplayPort (though DP should handle that fine). Any potential reflection problems could only be addressed with a retimer ofc.

I did a few calculations with the option jlcpcb assembly provides.
The muxing card would require two identical 4-channel muxes at 3€ each (TMUXHS4412IRUAT), for a total of 6€.

When adding redrivers for both ends, that’d increase to ~ 4 x 8€ 4-channel redrivers (integrated mux for those needed - DS160PR412RUAR, DS160PR421RUAR and perhaps SN75LVPE4410RNQR) plus a remaining 3€ mux, for a total of 35€.

For retimers - options are few for jlcpcb pcba, DS160PT801 is 16 channel, but wouldn’t allow for placement at the right ends, plus it’s 30€ with 250MOQ.

If you got contacts and can get it done cheaper, then that’s cool ofc, I’m sure a lot of people will appreciate that - but that might not be relevant to open source designs.

I also agree that a retimer would most likely be beneficial in this setup. I read a post about making a custom pcie bifurcation board, and that was only able to run at gen 3 speeds. I haven’t done much research into what a retimer chip actually does to condition a signal. But, for pcbs designed and built by hobbyists, I think that using the retimer gives us the best chance of getting full gen 4 speeds over potentially long occulink cable runs.
This could all just be nonsense from me, but was a very big worry of mine when attempting to approach this style of design in my head. I have ZERO experience in working with pcie and pcs on pcb design, so take my $0.02 with a grain of salt. In the end I am mostly just echoing @Josh_Cook on his decisions.

link to bifurcation site that I was going to use in designing my own board:
https://www.mattmillman.com/rolling-your-own-pcie-bifurcation-riser/

EDIT: I have done a bit more digging, and according to this source, Pcie retimers are used instead of redrivers in gen4 and gen5 applications.
I have also found on this site is a diagram that shows that only one retimer, on the processor side of the connection, would be needed to be in spec for proper gen 4 function.
@Sea_Shadow and @Seneral I suggest you take a look at the linked source, I feel that it is more clear then I am on this topic.

2 Likes

Yes, that is the plan, and it doesn’t need to be anything fancy. Preexisting would be great indeed. Alternatively, I am even thinking about putting it into my (already DIY modded) Razer Core X ;). But likely I won’t as selling the Core X as a whole makes more sense, rather than just the board. But this is all to be seen ;).