January 9, 2026 12:19
Just a very quick post, as I invested some time into a proper, parameterized FreeCAD model for the PCIe brackets of Mellanox network cards. I recently installed two of these cards into some server and only had the short brackets available, which are, of course, not fitting into a standard PC case. As I could not find any ready-to-print models online for all the variations I needed, I have created my own. You can download this model from here or from Thingiverse.

Currently supported cards are:
- MCX4121A-ACAT (ConnectX-4, SFP28, dual 25G) short / long
- MCX354A-FCCT (ConnectX-3 Pro, QSFP+, dual 40G) short / long
…you can quickly change through the different variants in the FreeCAD project by copy-pasting over the values from your model’s column (should work mostly glitch-free).
Here is a quick story…
Just measure the short brackets and create a parametrized FreeCAD model. I thought. Should only take one hour. I assumed. Then one quick print. I hoped for. Finally, a few photos for the blog. I anticipated.
Famous last words… Meh.
Here is a photo of the very first iteration I printed, which is basically 1:1 the short bracket, just extended to fit the 120mm width of a standard PC case:

Let me summarize all the mistakes I made. To address each of them, I have done many reprints and thus wasted quite some time - the next iteration was always the “final one”:
- The “nibble” going beside the mainboard was too thick, since normally metal would be used instead of PLA, the PC case only supports up to 1mm thickness. The red design from above was 3mm thick.
- I forgot the slots for the port activity LEDs on the 25G SFP28 bracket.
- The overall length of my bracket was too short, as I counted the L-part against the overall limit of 120mm
- I displaced the L-part by 1mm to account for the metal inset but swapped the sign in the formula
- The long bracket requires the ports to be 4mm further away from the mainboard, as the short bracket moved the card closer to the mainboard
- I made the portholes a bit too tight, removing any play I had with my too wide spacer between the ports
- The L-part was displaced in the wrong direction on the lang variant, as they swapped the directions between the variants
- …and I ran into a FreeCAD bug with negative distances, which is already fixed, but not for Flatpak
- …my original construction for the 4x-port LEDs on the QSFP+ bracket experienced glitches during resizing with alternative dimensions (maybe also a FreeCAD bug?), so I redesigned that
- The U-hole on the L-part is not only flipped in the long-variant, but is also using another inset distance
- The QSFP+ connector is not a through-hole (like on the SFP28 model), but is instead sitting 2mm behind the bracket with some conductive material as padding
The “final+final; FINAL, v2 (3)_4” version
I have not included holes for the card intentionally, so you have a bit of play to align the bracket properly. Just grab a soldering iron and melt holes where the screws would go through. Make sure to displace the material a bit so it reaches into the PCB holes as well, because then the screw can properly be fastened:

Here is the final print for the MCX4121A-ACAT long bracket:

And here is the final print for the MCX354A-FCCT long bracket:

Finally, a few pictures of the installed cards with their new brackets:

I think I have learned quite a bit about the minor details of these brackets and the minuscule differences between the variants. Overall, I am quite happy with the result, even though it took way longer than expected. Maybe you can also benefit from my work here and append additional model configurations for other Mellanox cards… I’m also open for (working!) donations. 😋